1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3use std::collections::HashMap;
4
5#[derive(Debug, Clone, Serialize, Deserialize, Default)]
6pub struct PaginationInfo {
7 pub count: Option<u64>,
8 pub page: Option<u64>,
9 pub per_page: Option<u64>,
10 pub total_count: Option<u64>,
11 pub total_pages: Option<u64>,
12}
13
14#[derive(Debug, Clone, Serialize, Deserialize)]
15pub struct CloudflareEnvelope<T> {
16 pub success: bool,
17 #[serde(default)]
18 pub errors: Vec<CloudflareEnvelopeMessage>,
19 #[serde(default)]
20 pub messages: Vec<CloudflareEnvelopeMessage>,
21 pub result: T,
22 #[serde(default)]
23 pub result_info: Option<PaginationInfo>,
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
27pub struct CloudflareEnvelopeMessage {
28 pub code: Option<i64>,
29 pub message: Option<String>,
30 #[serde(default)]
31 pub documentation_url: Option<String>,
32 #[serde(default)]
33 pub source: Option<Value>,
34}
35
36#[derive(Debug, Clone, Serialize, Deserialize)]
37pub struct ProviderErrorResponse {
38 pub provider: String,
39 pub message: String,
40}
41
42#[derive(Debug, Clone, Serialize, Deserialize)]
43pub struct SecretsStore {
44 pub id: String,
45 pub created: String,
46 pub modified: String,
47 pub name: String,
48 #[serde(default)]
49 pub account_id: Option<String>,
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize)]
53#[serde(rename_all = "snake_case")]
54pub enum SecretStatus {
55 Pending,
56 Active,
57 Deleted,
58}
59
60#[derive(Debug, Clone, Serialize, Deserialize)]
61pub struct SecretRecord {
62 pub id: String,
63 pub created: String,
64 pub modified: String,
65 pub name: String,
66 pub status: SecretStatus,
67 pub store_id: String,
68 #[serde(default)]
69 pub comment: Option<String>,
70 #[serde(default)]
71 pub scopes: Option<Vec<String>>,
72}
73
74#[derive(Debug, Clone, Serialize, Deserialize)]
75pub struct SecretsQuotaUsage {
76 pub quota: u64,
77 pub usage: u64,
78}
79
80#[derive(Debug, Clone, Serialize, Deserialize)]
81pub struct SecretsQuota {
82 pub secrets: SecretsQuotaUsage,
83}
84
85#[derive(Debug, Clone, Serialize, Deserialize)]
86pub struct CloudflareWorkerSecret {
87 pub name: String,
88 #[serde(rename = "type")]
89 pub secret_type: String,
90 #[serde(default)]
91 pub text: Option<String>,
92}
93
94#[derive(Debug, Clone, Serialize, Deserialize, Default)]
95pub struct CloudflareWorkerRoute {
96 #[serde(default)]
97 pub pattern: Option<String>,
98 #[serde(default)]
99 pub script: Option<String>,
100}
101
102#[derive(Debug, Clone, Serialize, Deserialize, Default)]
103pub struct CloudflareWorkerScript {
104 #[serde(alias = "name")]
105 pub id: String,
106 #[serde(default)]
107 pub tag: Option<String>,
108 #[serde(default)]
109 pub created_on: Option<String>,
110 #[serde(default)]
111 pub modified_on: Option<String>,
112 #[serde(default)]
113 pub usage_model: Option<String>,
114 #[serde(default)]
115 pub placement_status: Option<String>,
116 #[serde(default)]
117 pub last_deployed_from: Option<String>,
118 #[serde(default)]
119 pub routes: Option<Vec<CloudflareWorkerRoute>>,
120}
121
122#[derive(Debug, Clone, Serialize, Deserialize)]
123pub struct CloudflareWorkerBuild {
124 pub build_uuid: String,
125 #[serde(default)]
126 pub status: Option<String>,
127 #[serde(default)]
128 pub branch: Option<String>,
129 #[serde(default)]
130 pub created_at: Option<String>,
131 #[serde(flatten, default)]
132 pub extra: HashMap<String, Value>,
133}
134
135#[derive(Debug, Clone, Serialize, Deserialize, Default)]
136pub struct CloudflareWorkerSettings {
137 #[serde(default)]
138 pub annotations: Option<Value>,
139 #[serde(default)]
140 pub bindings: Vec<Value>,
141 #[serde(default)]
142 pub compatibility_date: Option<String>,
143 #[serde(default)]
144 pub compatibility_flags: Option<Vec<String>>,
145 #[serde(default)]
146 pub keep_assets: Option<bool>,
147 #[serde(default)]
148 pub keep_bindings: Option<Vec<String>>,
149 #[serde(default)]
150 pub keep_vars: Option<bool>,
151 #[serde(default)]
152 pub logpush: Option<bool>,
153 #[serde(default)]
154 pub observability: Option<Value>,
155 #[serde(default)]
156 pub placement: Option<Value>,
157 #[serde(default)]
158 pub preview_urls: Option<bool>,
159 #[serde(default)]
160 pub tail_consumers: Option<Vec<Value>>,
161 #[serde(default)]
162 pub usage_model: Option<String>,
163 #[serde(default)]
164 pub workers_dev: Option<bool>,
165 #[serde(default)]
166 pub routes: Vec<Value>,
167}
168
169#[derive(Debug, Clone, Serialize, Deserialize, Default)]
170pub struct CloudflareDurableObjectNamespace {
171 pub id: String,
172 pub name: String,
173 #[serde(default)]
174 pub script: Option<String>,
175 #[serde(default)]
176 pub class: Option<String>,
177 #[serde(default)]
178 pub use_sqlite: bool,
179 #[serde(default)]
180 pub use_containers: bool,
181 #[serde(flatten, default)]
182 pub extra: HashMap<String, Value>,
183}
184
185#[derive(Debug, Clone, Serialize, Deserialize)]
186pub struct CloudflareAccountRef {
187 #[serde(default)]
188 pub id: Option<String>,
189 #[serde(default)]
190 pub name: Option<String>,
191}
192
193#[derive(Debug, Clone, Serialize, Deserialize)]
194pub struct CloudflareOwnerRef {
195 #[serde(default)]
196 pub id: Option<String>,
197 #[serde(default)]
198 pub name: Option<String>,
199 #[serde(default)]
200 pub r#type: Option<String>,
201}
202
203#[derive(Debug, Clone, Serialize, Deserialize)]
204pub struct CloudflareTenantRef {
205 #[serde(default)]
206 pub id: Option<String>,
207 #[serde(default)]
208 pub name: Option<String>,
209}
210
211#[derive(Debug, Clone, Serialize, Deserialize)]
212pub struct CloudflareTenantUnitRef {
213 #[serde(default)]
214 pub id: Option<String>,
215 #[serde(default)]
216 pub r#type: Option<String>,
217}
218
219#[derive(Debug, Clone, Serialize, Deserialize)]
220pub struct CloudflareZonePlan {
221 #[serde(default)]
222 pub id: Option<String>,
223 #[serde(default)]
224 pub can_subscribe: Option<bool>,
225 #[serde(default)]
226 pub currency: Option<String>,
227 #[serde(default)]
228 pub externally_managed: Option<bool>,
229 #[serde(default)]
230 pub frequency: Option<String>,
231 #[serde(default)]
232 pub is_subscribed: Option<bool>,
233 #[serde(default)]
234 pub legacy_discount: Option<bool>,
235 #[serde(default)]
236 pub legacy_id: Option<String>,
237 #[serde(default)]
238 pub name: Option<String>,
239 #[serde(default)]
240 pub price: Option<f64>,
241}
242
243#[derive(Debug, Clone, Serialize, Deserialize, Default)]
244pub struct CloudflareZoneMeta {
245 #[serde(default)]
246 pub cdn_only: Option<bool>,
247 #[serde(default)]
248 pub dns_only: Option<bool>,
249 #[serde(default)]
250 pub foundation_dns: Option<bool>,
251 #[serde(default)]
252 pub custom_certificate_quota: Option<i64>,
253 #[serde(default)]
254 pub page_rule_quota: Option<i64>,
255 #[serde(default)]
256 pub phishing_detected: Option<bool>,
257 #[serde(default)]
258 pub step: Option<i64>,
259}
260
261#[derive(Debug, Clone, Serialize, Deserialize)]
262pub struct CloudflareZone {
263 pub id: String,
264 pub name: String,
265 #[serde(default)]
266 pub status: Option<String>,
267 #[serde(default)]
268 pub r#type: Option<String>,
269 #[serde(default)]
270 pub paused: Option<bool>,
271 #[serde(default)]
272 pub account: Option<CloudflareAccountRef>,
273 #[serde(default)]
274 pub owner: Option<CloudflareOwnerRef>,
275 #[serde(default)]
276 pub tenant: Option<CloudflareTenantRef>,
277 #[serde(default)]
278 pub tenant_unit: Option<CloudflareTenantUnitRef>,
279 #[serde(default)]
280 pub plan: Option<CloudflareZonePlan>,
281 #[serde(default)]
282 pub name_servers: Vec<String>,
283 #[serde(default)]
284 pub vanity_name_servers: Option<Vec<String>>,
285 #[serde(default)]
286 pub original_dnshost: Option<String>,
287 #[serde(default)]
288 pub original_name_servers: Option<Vec<String>>,
289 #[serde(default)]
290 pub original_registrar: Option<String>,
291 #[serde(default)]
292 pub activated_on: Option<String>,
293 pub created_on: String,
294 pub modified_on: String,
295 #[serde(default)]
296 pub development_mode: Option<f64>,
297 #[serde(default)]
298 pub cname_suffix: Option<String>,
299 #[serde(default)]
300 pub verification_key: Option<String>,
301 #[serde(default)]
302 pub permissions: Option<Vec<String>>,
303 #[serde(default)]
304 pub meta: CloudflareZoneMeta,
305}
306
307#[derive(Debug, Clone, Serialize, Deserialize, Default)]
308pub struct CloudflareZoneFilters {
309 #[serde(rename = "account.id", default)]
310 pub account_id: Option<String>,
311 #[serde(rename = "account.name", default)]
312 pub account_name: Option<String>,
313 #[serde(rename = "account.name[operator]", default)]
314 pub account_name_op: Option<String>,
315 #[serde(default)]
316 pub name: Option<String>,
317 #[serde(rename = "name[operator]", default)]
318 pub name_op: Option<String>,
319 #[serde(default)]
320 pub status: Option<String>,
321 #[serde(default)]
322 pub r#type: Vec<String>,
323 #[serde(default)]
324 pub r#match: Option<String>,
325 #[serde(default)]
326 pub order: Option<String>,
327 #[serde(default)]
328 pub direction: Option<String>,
329 #[serde(default)]
330 pub page: Option<u64>,
331 #[serde(default)]
332 pub per_page: Option<u64>,
333}
334
335#[derive(Debug, Clone, Serialize, Deserialize)]
336pub struct CloudflareDnsRecord {
337 pub id: String,
338 pub zone_id: String,
339 #[serde(default)]
340 pub zone_name: Option<String>,
341 pub name: String,
342 #[serde(rename = "type")]
343 pub record_type: String,
344 #[serde(default)]
345 pub content: Option<String>,
346 #[serde(default)]
347 pub ttl: Option<u32>,
348 #[serde(default)]
349 pub proxied: Option<bool>,
350 #[serde(default)]
351 pub priority: Option<u32>,
352 #[serde(default)]
353 pub comment: Option<String>,
354 #[serde(default)]
355 pub tags: Option<Vec<Value>>,
356 #[serde(default)]
357 pub data: Option<Value>,
358 #[serde(default)]
359 pub settings: Option<Value>,
360 #[serde(default)]
361 pub meta: Option<Value>,
362 #[serde(default)]
363 pub proxiable: Option<bool>,
364 #[serde(default)]
365 pub created_on: Option<String>,
366 #[serde(default)]
367 pub modified_on: Option<String>,
368}
369
370#[derive(Debug, Clone, Serialize, Deserialize)]
371pub struct CloudflareDnsRecordWrite {
372 #[serde(rename = "type")]
373 pub record_type: Option<String>,
374 #[serde(default)]
375 pub name: Option<String>,
376 #[serde(default)]
377 pub content: Option<String>,
378 #[serde(default)]
379 pub ttl: Option<u32>,
380 #[serde(default)]
381 pub proxied: Option<bool>,
382 #[serde(default)]
383 pub priority: Option<u32>,
384 #[serde(default)]
385 pub comment: Option<String>,
386 #[serde(default)]
387 pub tags: Option<Vec<String>>,
388 #[serde(default)]
389 pub data: Option<Value>,
390 #[serde(default)]
391 pub settings: Option<Value>,
392}
393
394#[derive(Debug, Clone, Serialize, Deserialize, Default)]
395pub struct CloudflareDnsRecordBatch {
396 #[serde(default)]
397 pub deletes: Vec<HashMap<String, String>>,
398 #[serde(default)]
399 pub patches: Vec<Value>,
400 #[serde(default)]
401 pub posts: Vec<Value>,
402}
403
404#[derive(Debug, Clone, Serialize, Deserialize)]
405pub struct CloudflareDnssec {
406 #[serde(default)]
407 pub status: Option<String>,
408 #[serde(default)]
409 pub flags: Option<u32>,
410 #[serde(default)]
411 pub algorithm: Option<String>,
412 #[serde(default)]
413 pub key_tag: Option<u32>,
414 #[serde(default)]
415 pub digest_type: Option<String>,
416 #[serde(default)]
417 pub digest_algorithm: Option<String>,
418 #[serde(default)]
419 pub digest: Option<String>,
420 #[serde(default)]
421 pub ds: Option<String>,
422 #[serde(default)]
423 pub public_key: Option<String>,
424 #[serde(default)]
425 pub modified_on: Option<String>,
426}
427
428#[derive(Debug, Clone, Serialize, Deserialize, Default)]
429pub struct CloudflareDnssecEdit {
430 #[serde(default)]
431 pub status: Option<String>,
432 #[serde(default)]
433 pub dnssec_multi_signer: Option<bool>,
434 #[serde(default)]
435 pub dnssec_presigned: Option<bool>,
436 #[serde(default)]
437 pub dnssec_use_nsec3: Option<bool>,
438}
439
440#[derive(Debug, Clone, Serialize, Deserialize)]
441pub struct CloudflareDnsSettingsNameservers {
442 #[serde(default)]
443 pub r#type: Option<String>,
444 #[serde(default)]
445 pub ns_set: Option<u32>,
446}
447
448#[derive(Debug, Clone, Serialize, Deserialize)]
449pub struct CloudflareDnsSettingsInternalDns {
450 #[serde(default)]
451 pub reference_zone_id: Option<String>,
452}
453
454#[derive(Debug, Clone, Serialize, Deserialize)]
455pub struct CloudflareDnsSettingsSoa {
456 #[serde(default)]
457 pub expire: Option<u32>,
458 #[serde(default)]
459 pub min_ttl: Option<u32>,
460 #[serde(default)]
461 pub mname: Option<String>,
462 #[serde(default)]
463 pub refresh: Option<u32>,
464 #[serde(default)]
465 pub retry: Option<u32>,
466 #[serde(default)]
467 pub rname: Option<String>,
468 #[serde(default)]
469 pub ttl: Option<u32>,
470}
471
472#[derive(Debug, Clone, Serialize, Deserialize, Default)]
473pub struct CloudflareDnsSettings {
474 #[serde(default)]
475 pub flatten_all_cnames: Option<bool>,
476 #[serde(default)]
477 pub foundation_dns: Option<bool>,
478 #[serde(default)]
479 pub multi_provider: Option<bool>,
480 #[serde(default)]
481 pub nameservers: Option<CloudflareDnsSettingsNameservers>,
482 #[serde(default)]
483 pub ns_ttl: Option<u32>,
484 #[serde(default)]
485 pub secondary_overrides: Option<bool>,
486 #[serde(default)]
487 pub soa: Option<CloudflareDnsSettingsSoa>,
488 #[serde(default)]
489 pub zone_mode: Option<String>,
490 #[serde(default)]
491 pub internal_dns: Option<CloudflareDnsSettingsInternalDns>,
492}
493
494#[derive(Debug, Clone, Serialize, Deserialize)]
495pub struct DomainPricing {
496 #[serde(default)]
497 pub currency: Option<String>,
498 #[serde(default)]
499 pub registration_cost: Option<String>,
500 #[serde(default)]
501 pub renewal_cost: Option<String>,
502}
503
504#[derive(Debug, Clone, Serialize, Deserialize)]
505pub struct DomainAvailability {
506 pub name: String,
507 pub registrable: bool,
508 #[serde(default)]
509 pub pricing: Option<DomainPricing>,
510 #[serde(default)]
511 pub reason: Option<String>,
512 #[serde(default)]
513 pub tier: Option<String>,
514}
515
516#[derive(Debug, Clone, Serialize, Deserialize, Default)]
517pub struct DomainRegistration {
518 #[serde(default)]
519 pub id: Option<String>,
520 #[serde(default)]
521 pub status: Option<String>,
522 #[serde(default)]
523 pub created_at: Option<String>,
524 #[serde(default)]
525 pub updated_at: Option<String>,
526 #[serde(flatten, default)]
527 pub extra: HashMap<String, Value>,
528}
529
530#[derive(Debug, Clone, Serialize, Deserialize, Default)]
531pub struct DomainWorkflowStatus {
532 #[serde(default)]
533 pub id: Option<String>,
534 #[serde(default)]
535 pub status: Option<String>,
536 #[serde(flatten, default)]
537 pub extra: HashMap<String, Value>,
538}
539
540#[derive(Debug, Clone, Serialize, Deserialize, Default)]
541pub struct RegisteredDomain {
542 pub name: String,
543 #[serde(default)]
544 pub account_id: Option<String>,
545 #[serde(default)]
546 pub auto_renew: Option<bool>,
547 #[serde(default)]
548 pub expires_at: Option<String>,
549 #[serde(default)]
550 pub registered_at: Option<String>,
551 #[serde(default)]
552 pub registration: Option<DomainRegistration>,
553 #[serde(default)]
554 pub workflow: Option<DomainWorkflowStatus>,
555 #[serde(flatten, default)]
556 pub extra: HashMap<String, Value>,
557}