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)]
170pub struct CloudflareAccountRef {
171 #[serde(default)]
172 pub id: Option<String>,
173 #[serde(default)]
174 pub name: Option<String>,
175}
176
177#[derive(Debug, Clone, Serialize, Deserialize)]
178pub struct CloudflareOwnerRef {
179 #[serde(default)]
180 pub id: Option<String>,
181 #[serde(default)]
182 pub name: Option<String>,
183 #[serde(default)]
184 pub r#type: Option<String>,
185}
186
187#[derive(Debug, Clone, Serialize, Deserialize)]
188pub struct CloudflareTenantRef {
189 #[serde(default)]
190 pub id: Option<String>,
191 #[serde(default)]
192 pub name: Option<String>,
193}
194
195#[derive(Debug, Clone, Serialize, Deserialize)]
196pub struct CloudflareTenantUnitRef {
197 #[serde(default)]
198 pub id: Option<String>,
199 #[serde(default)]
200 pub r#type: Option<String>,
201}
202
203#[derive(Debug, Clone, Serialize, Deserialize)]
204pub struct CloudflareZonePlan {
205 #[serde(default)]
206 pub id: Option<String>,
207 #[serde(default)]
208 pub can_subscribe: Option<bool>,
209 #[serde(default)]
210 pub currency: Option<String>,
211 #[serde(default)]
212 pub externally_managed: Option<bool>,
213 #[serde(default)]
214 pub frequency: Option<String>,
215 #[serde(default)]
216 pub is_subscribed: Option<bool>,
217 #[serde(default)]
218 pub legacy_discount: Option<bool>,
219 #[serde(default)]
220 pub legacy_id: Option<String>,
221 #[serde(default)]
222 pub name: Option<String>,
223 #[serde(default)]
224 pub price: Option<f64>,
225}
226
227#[derive(Debug, Clone, Serialize, Deserialize, Default)]
228pub struct CloudflareZoneMeta {
229 #[serde(default)]
230 pub cdn_only: Option<bool>,
231 #[serde(default)]
232 pub dns_only: Option<bool>,
233 #[serde(default)]
234 pub foundation_dns: Option<bool>,
235 #[serde(default)]
236 pub custom_certificate_quota: Option<i64>,
237 #[serde(default)]
238 pub page_rule_quota: Option<i64>,
239 #[serde(default)]
240 pub phishing_detected: Option<bool>,
241 #[serde(default)]
242 pub step: Option<i64>,
243}
244
245#[derive(Debug, Clone, Serialize, Deserialize)]
246pub struct CloudflareZone {
247 pub id: String,
248 pub name: String,
249 #[serde(default)]
250 pub status: Option<String>,
251 #[serde(default)]
252 pub r#type: Option<String>,
253 #[serde(default)]
254 pub paused: Option<bool>,
255 #[serde(default)]
256 pub account: Option<CloudflareAccountRef>,
257 #[serde(default)]
258 pub owner: Option<CloudflareOwnerRef>,
259 #[serde(default)]
260 pub tenant: Option<CloudflareTenantRef>,
261 #[serde(default)]
262 pub tenant_unit: Option<CloudflareTenantUnitRef>,
263 #[serde(default)]
264 pub plan: Option<CloudflareZonePlan>,
265 #[serde(default)]
266 pub name_servers: Vec<String>,
267 #[serde(default)]
268 pub vanity_name_servers: Option<Vec<String>>,
269 #[serde(default)]
270 pub original_dnshost: Option<String>,
271 #[serde(default)]
272 pub original_name_servers: Option<Vec<String>>,
273 #[serde(default)]
274 pub original_registrar: Option<String>,
275 #[serde(default)]
276 pub activated_on: Option<String>,
277 pub created_on: String,
278 pub modified_on: String,
279 #[serde(default)]
280 pub development_mode: Option<f64>,
281 #[serde(default)]
282 pub cname_suffix: Option<String>,
283 #[serde(default)]
284 pub verification_key: Option<String>,
285 #[serde(default)]
286 pub permissions: Option<Vec<String>>,
287 #[serde(default)]
288 pub meta: CloudflareZoneMeta,
289}
290
291#[derive(Debug, Clone, Serialize, Deserialize, Default)]
292pub struct CloudflareZoneFilters {
293 #[serde(rename = "account.id", default)]
294 pub account_id: Option<String>,
295 #[serde(rename = "account.name", default)]
296 pub account_name: Option<String>,
297 #[serde(rename = "account.name[operator]", default)]
298 pub account_name_op: Option<String>,
299 #[serde(default)]
300 pub name: Option<String>,
301 #[serde(rename = "name[operator]", default)]
302 pub name_op: Option<String>,
303 #[serde(default)]
304 pub status: Option<String>,
305 #[serde(default)]
306 pub r#type: Vec<String>,
307 #[serde(default)]
308 pub r#match: Option<String>,
309 #[serde(default)]
310 pub order: Option<String>,
311 #[serde(default)]
312 pub direction: Option<String>,
313 #[serde(default)]
314 pub page: Option<u64>,
315 #[serde(default)]
316 pub per_page: Option<u64>,
317}
318
319#[derive(Debug, Clone, Serialize, Deserialize)]
320pub struct CloudflareDnsRecord {
321 pub id: String,
322 pub zone_id: String,
323 #[serde(default)]
324 pub zone_name: Option<String>,
325 pub name: String,
326 #[serde(rename = "type")]
327 pub record_type: String,
328 #[serde(default)]
329 pub content: Option<String>,
330 #[serde(default)]
331 pub ttl: Option<u32>,
332 #[serde(default)]
333 pub proxied: Option<bool>,
334 #[serde(default)]
335 pub priority: Option<u32>,
336 #[serde(default)]
337 pub comment: Option<String>,
338 #[serde(default)]
339 pub tags: Option<Vec<Value>>,
340 #[serde(default)]
341 pub data: Option<Value>,
342 #[serde(default)]
343 pub settings: Option<Value>,
344 #[serde(default)]
345 pub meta: Option<Value>,
346 #[serde(default)]
347 pub proxiable: Option<bool>,
348 #[serde(default)]
349 pub created_on: Option<String>,
350 #[serde(default)]
351 pub modified_on: Option<String>,
352}
353
354#[derive(Debug, Clone, Serialize, Deserialize)]
355pub struct CloudflareDnsRecordWrite {
356 #[serde(rename = "type")]
357 pub record_type: Option<String>,
358 #[serde(default)]
359 pub name: Option<String>,
360 #[serde(default)]
361 pub content: Option<String>,
362 #[serde(default)]
363 pub ttl: Option<u32>,
364 #[serde(default)]
365 pub proxied: Option<bool>,
366 #[serde(default)]
367 pub priority: Option<u32>,
368 #[serde(default)]
369 pub comment: Option<String>,
370 #[serde(default)]
371 pub tags: Option<Vec<String>>,
372 #[serde(default)]
373 pub data: Option<Value>,
374 #[serde(default)]
375 pub settings: Option<Value>,
376}
377
378#[derive(Debug, Clone, Serialize, Deserialize, Default)]
379pub struct CloudflareDnsRecordBatch {
380 #[serde(default)]
381 pub deletes: Vec<HashMap<String, String>>,
382 #[serde(default)]
383 pub patches: Vec<Value>,
384 #[serde(default)]
385 pub posts: Vec<Value>,
386}
387
388#[derive(Debug, Clone, Serialize, Deserialize)]
389pub struct CloudflareDnssec {
390 #[serde(default)]
391 pub status: Option<String>,
392 #[serde(default)]
393 pub flags: Option<u32>,
394 #[serde(default)]
395 pub algorithm: Option<String>,
396 #[serde(default)]
397 pub key_tag: Option<u32>,
398 #[serde(default)]
399 pub digest_type: Option<String>,
400 #[serde(default)]
401 pub digest_algorithm: Option<String>,
402 #[serde(default)]
403 pub digest: Option<String>,
404 #[serde(default)]
405 pub ds: Option<String>,
406 #[serde(default)]
407 pub public_key: Option<String>,
408 #[serde(default)]
409 pub modified_on: Option<String>,
410}
411
412#[derive(Debug, Clone, Serialize, Deserialize, Default)]
413pub struct CloudflareDnssecEdit {
414 #[serde(default)]
415 pub status: Option<String>,
416 #[serde(default)]
417 pub dnssec_multi_signer: Option<bool>,
418 #[serde(default)]
419 pub dnssec_presigned: Option<bool>,
420 #[serde(default)]
421 pub dnssec_use_nsec3: Option<bool>,
422}
423
424#[derive(Debug, Clone, Serialize, Deserialize)]
425pub struct CloudflareDnsSettingsNameservers {
426 #[serde(default)]
427 pub r#type: Option<String>,
428 #[serde(default)]
429 pub ns_set: Option<u32>,
430}
431
432#[derive(Debug, Clone, Serialize, Deserialize)]
433pub struct CloudflareDnsSettingsInternalDns {
434 #[serde(default)]
435 pub reference_zone_id: Option<String>,
436}
437
438#[derive(Debug, Clone, Serialize, Deserialize)]
439pub struct CloudflareDnsSettingsSoa {
440 #[serde(default)]
441 pub expire: Option<u32>,
442 #[serde(default)]
443 pub min_ttl: Option<u32>,
444 #[serde(default)]
445 pub mname: Option<String>,
446 #[serde(default)]
447 pub refresh: Option<u32>,
448 #[serde(default)]
449 pub retry: Option<u32>,
450 #[serde(default)]
451 pub rname: Option<String>,
452 #[serde(default)]
453 pub ttl: Option<u32>,
454}
455
456#[derive(Debug, Clone, Serialize, Deserialize, Default)]
457pub struct CloudflareDnsSettings {
458 #[serde(default)]
459 pub flatten_all_cnames: Option<bool>,
460 #[serde(default)]
461 pub foundation_dns: Option<bool>,
462 #[serde(default)]
463 pub multi_provider: Option<bool>,
464 #[serde(default)]
465 pub nameservers: Option<CloudflareDnsSettingsNameservers>,
466 #[serde(default)]
467 pub ns_ttl: Option<u32>,
468 #[serde(default)]
469 pub secondary_overrides: Option<bool>,
470 #[serde(default)]
471 pub soa: Option<CloudflareDnsSettingsSoa>,
472 #[serde(default)]
473 pub zone_mode: Option<String>,
474 #[serde(default)]
475 pub internal_dns: Option<CloudflareDnsSettingsInternalDns>,
476}
477
478#[derive(Debug, Clone, Serialize, Deserialize)]
479pub struct DomainPricing {
480 #[serde(default)]
481 pub currency: Option<String>,
482 #[serde(default)]
483 pub registration_cost: Option<String>,
484 #[serde(default)]
485 pub renewal_cost: Option<String>,
486}
487
488#[derive(Debug, Clone, Serialize, Deserialize)]
489pub struct DomainAvailability {
490 pub name: String,
491 pub registrable: bool,
492 #[serde(default)]
493 pub pricing: Option<DomainPricing>,
494 #[serde(default)]
495 pub reason: Option<String>,
496 #[serde(default)]
497 pub tier: Option<String>,
498}
499
500#[derive(Debug, Clone, Serialize, Deserialize, Default)]
501pub struct DomainRegistration {
502 #[serde(default)]
503 pub id: Option<String>,
504 #[serde(default)]
505 pub status: Option<String>,
506 #[serde(default)]
507 pub created_at: Option<String>,
508 #[serde(default)]
509 pub updated_at: Option<String>,
510 #[serde(flatten, default)]
511 pub extra: HashMap<String, Value>,
512}
513
514#[derive(Debug, Clone, Serialize, Deserialize, Default)]
515pub struct DomainWorkflowStatus {
516 #[serde(default)]
517 pub id: Option<String>,
518 #[serde(default)]
519 pub status: Option<String>,
520 #[serde(flatten, default)]
521 pub extra: HashMap<String, Value>,
522}
523
524#[derive(Debug, Clone, Serialize, Deserialize, Default)]
525pub struct RegisteredDomain {
526 pub name: String,
527 #[serde(default)]
528 pub account_id: Option<String>,
529 #[serde(default)]
530 pub auto_renew: Option<bool>,
531 #[serde(default)]
532 pub expires_at: Option<String>,
533 #[serde(default)]
534 pub registered_at: Option<String>,
535 #[serde(default)]
536 pub registration: Option<DomainRegistration>,
537 #[serde(default)]
538 pub workflow: Option<DomainWorkflowStatus>,
539 #[serde(flatten, default)]
540 pub extra: HashMap<String, Value>,
541}