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 CloudflareWorkerSettings {
96 #[serde(default)]
97 pub annotations: Option<Value>,
98 #[serde(default)]
99 pub bindings: Vec<Value>,
100 #[serde(default)]
101 pub compatibility_date: Option<String>,
102 #[serde(default)]
103 pub compatibility_flags: Option<Vec<String>>,
104 #[serde(default)]
105 pub keep_assets: Option<bool>,
106 #[serde(default)]
107 pub keep_bindings: Option<Vec<String>>,
108 #[serde(default)]
109 pub keep_vars: Option<bool>,
110 #[serde(default)]
111 pub logpush: Option<bool>,
112 #[serde(default)]
113 pub observability: Option<Value>,
114 #[serde(default)]
115 pub placement: Option<Value>,
116 #[serde(default)]
117 pub preview_urls: Option<bool>,
118 #[serde(default)]
119 pub tail_consumers: Option<Vec<Value>>,
120 #[serde(default)]
121 pub usage_model: Option<String>,
122 #[serde(default)]
123 pub workers_dev: Option<bool>,
124 #[serde(default)]
125 pub routes: Vec<Value>,
126}
127
128#[derive(Debug, Clone, Serialize, Deserialize)]
129pub struct CloudflareAccountRef {
130 #[serde(default)]
131 pub id: Option<String>,
132 #[serde(default)]
133 pub name: Option<String>,
134}
135
136#[derive(Debug, Clone, Serialize, Deserialize)]
137pub struct CloudflareOwnerRef {
138 #[serde(default)]
139 pub id: Option<String>,
140 #[serde(default)]
141 pub name: Option<String>,
142 #[serde(default)]
143 pub r#type: Option<String>,
144}
145
146#[derive(Debug, Clone, Serialize, Deserialize)]
147pub struct CloudflareTenantRef {
148 #[serde(default)]
149 pub id: Option<String>,
150 #[serde(default)]
151 pub name: Option<String>,
152}
153
154#[derive(Debug, Clone, Serialize, Deserialize)]
155pub struct CloudflareTenantUnitRef {
156 #[serde(default)]
157 pub id: Option<String>,
158 #[serde(default)]
159 pub r#type: Option<String>,
160}
161
162#[derive(Debug, Clone, Serialize, Deserialize)]
163pub struct CloudflareZonePlan {
164 #[serde(default)]
165 pub id: Option<String>,
166 #[serde(default)]
167 pub can_subscribe: Option<bool>,
168 #[serde(default)]
169 pub currency: Option<String>,
170 #[serde(default)]
171 pub externally_managed: Option<bool>,
172 #[serde(default)]
173 pub frequency: Option<String>,
174 #[serde(default)]
175 pub is_subscribed: Option<bool>,
176 #[serde(default)]
177 pub legacy_discount: Option<bool>,
178 #[serde(default)]
179 pub legacy_id: Option<String>,
180 #[serde(default)]
181 pub name: Option<String>,
182 #[serde(default)]
183 pub price: Option<f64>,
184}
185
186#[derive(Debug, Clone, Serialize, Deserialize, Default)]
187pub struct CloudflareZoneMeta {
188 #[serde(default)]
189 pub cdn_only: Option<bool>,
190 #[serde(default)]
191 pub dns_only: Option<bool>,
192 #[serde(default)]
193 pub foundation_dns: Option<bool>,
194 #[serde(default)]
195 pub custom_certificate_quota: Option<i64>,
196 #[serde(default)]
197 pub page_rule_quota: Option<i64>,
198 #[serde(default)]
199 pub phishing_detected: Option<bool>,
200 #[serde(default)]
201 pub step: Option<i64>,
202}
203
204#[derive(Debug, Clone, Serialize, Deserialize)]
205pub struct CloudflareZone {
206 pub id: String,
207 pub name: String,
208 #[serde(default)]
209 pub status: Option<String>,
210 #[serde(default)]
211 pub r#type: Option<String>,
212 #[serde(default)]
213 pub paused: Option<bool>,
214 #[serde(default)]
215 pub account: Option<CloudflareAccountRef>,
216 #[serde(default)]
217 pub owner: Option<CloudflareOwnerRef>,
218 #[serde(default)]
219 pub tenant: Option<CloudflareTenantRef>,
220 #[serde(default)]
221 pub tenant_unit: Option<CloudflareTenantUnitRef>,
222 #[serde(default)]
223 pub plan: Option<CloudflareZonePlan>,
224 #[serde(default)]
225 pub name_servers: Vec<String>,
226 #[serde(default)]
227 pub vanity_name_servers: Option<Vec<String>>,
228 #[serde(default)]
229 pub original_dnshost: Option<String>,
230 #[serde(default)]
231 pub original_name_servers: Option<Vec<String>>,
232 #[serde(default)]
233 pub original_registrar: Option<String>,
234 #[serde(default)]
235 pub activated_on: Option<String>,
236 pub created_on: String,
237 pub modified_on: String,
238 #[serde(default)]
239 pub development_mode: Option<f64>,
240 #[serde(default)]
241 pub cname_suffix: Option<String>,
242 #[serde(default)]
243 pub verification_key: Option<String>,
244 #[serde(default)]
245 pub permissions: Option<Vec<String>>,
246 #[serde(default)]
247 pub meta: CloudflareZoneMeta,
248}
249
250#[derive(Debug, Clone, Serialize, Deserialize, Default)]
251pub struct CloudflareZoneFilters {
252 #[serde(rename = "account.id", default)]
253 pub account_id: Option<String>,
254 #[serde(rename = "account.name", default)]
255 pub account_name: Option<String>,
256 #[serde(rename = "account.name[operator]", default)]
257 pub account_name_op: Option<String>,
258 #[serde(default)]
259 pub name: Option<String>,
260 #[serde(rename = "name[operator]", default)]
261 pub name_op: Option<String>,
262 #[serde(default)]
263 pub status: Option<String>,
264 #[serde(default)]
265 pub r#type: Vec<String>,
266 #[serde(default)]
267 pub r#match: Option<String>,
268 #[serde(default)]
269 pub order: Option<String>,
270 #[serde(default)]
271 pub direction: Option<String>,
272 #[serde(default)]
273 pub page: Option<u64>,
274 #[serde(default)]
275 pub per_page: Option<u64>,
276}
277
278#[derive(Debug, Clone, Serialize, Deserialize)]
279pub struct CloudflareDnsRecord {
280 pub id: String,
281 pub zone_id: String,
282 #[serde(default)]
283 pub zone_name: Option<String>,
284 pub name: String,
285 #[serde(rename = "type")]
286 pub record_type: String,
287 #[serde(default)]
288 pub content: Option<String>,
289 #[serde(default)]
290 pub ttl: Option<u32>,
291 #[serde(default)]
292 pub proxied: Option<bool>,
293 #[serde(default)]
294 pub priority: Option<u32>,
295 #[serde(default)]
296 pub comment: Option<String>,
297 #[serde(default)]
298 pub tags: Option<Vec<Value>>,
299 #[serde(default)]
300 pub data: Option<Value>,
301 #[serde(default)]
302 pub settings: Option<Value>,
303 #[serde(default)]
304 pub meta: Option<Value>,
305 #[serde(default)]
306 pub proxiable: Option<bool>,
307 #[serde(default)]
308 pub created_on: Option<String>,
309 #[serde(default)]
310 pub modified_on: Option<String>,
311}
312
313#[derive(Debug, Clone, Serialize, Deserialize)]
314pub struct CloudflareDnsRecordWrite {
315 #[serde(rename = "type")]
316 pub record_type: Option<String>,
317 #[serde(default)]
318 pub name: Option<String>,
319 #[serde(default)]
320 pub content: Option<String>,
321 #[serde(default)]
322 pub ttl: Option<u32>,
323 #[serde(default)]
324 pub proxied: Option<bool>,
325 #[serde(default)]
326 pub priority: Option<u32>,
327 #[serde(default)]
328 pub comment: Option<String>,
329 #[serde(default)]
330 pub tags: Option<Vec<String>>,
331 #[serde(default)]
332 pub data: Option<Value>,
333 #[serde(default)]
334 pub settings: Option<Value>,
335}
336
337#[derive(Debug, Clone, Serialize, Deserialize, Default)]
338pub struct CloudflareDnsRecordBatch {
339 #[serde(default)]
340 pub deletes: Vec<HashMap<String, String>>,
341 #[serde(default)]
342 pub patches: Vec<Value>,
343 #[serde(default)]
344 pub posts: Vec<Value>,
345}
346
347#[derive(Debug, Clone, Serialize, Deserialize)]
348pub struct CloudflareDnssec {
349 #[serde(default)]
350 pub status: Option<String>,
351 #[serde(default)]
352 pub flags: Option<u32>,
353 #[serde(default)]
354 pub algorithm: Option<String>,
355 #[serde(default)]
356 pub key_tag: Option<u32>,
357 #[serde(default)]
358 pub digest_type: Option<String>,
359 #[serde(default)]
360 pub digest_algorithm: Option<String>,
361 #[serde(default)]
362 pub digest: Option<String>,
363 #[serde(default)]
364 pub ds: Option<String>,
365 #[serde(default)]
366 pub public_key: Option<String>,
367 #[serde(default)]
368 pub modified_on: Option<String>,
369}
370
371#[derive(Debug, Clone, Serialize, Deserialize, Default)]
372pub struct CloudflareDnssecEdit {
373 #[serde(default)]
374 pub status: Option<String>,
375 #[serde(default)]
376 pub dnssec_multi_signer: Option<bool>,
377 #[serde(default)]
378 pub dnssec_presigned: Option<bool>,
379 #[serde(default)]
380 pub dnssec_use_nsec3: Option<bool>,
381}
382
383#[derive(Debug, Clone, Serialize, Deserialize)]
384pub struct CloudflareDnsSettingsNameservers {
385 #[serde(default)]
386 pub r#type: Option<String>,
387 #[serde(default)]
388 pub ns_set: Option<u32>,
389}
390
391#[derive(Debug, Clone, Serialize, Deserialize)]
392pub struct CloudflareDnsSettingsInternalDns {
393 #[serde(default)]
394 pub reference_zone_id: Option<String>,
395}
396
397#[derive(Debug, Clone, Serialize, Deserialize)]
398pub struct CloudflareDnsSettingsSoa {
399 #[serde(default)]
400 pub expire: Option<u32>,
401 #[serde(default)]
402 pub min_ttl: Option<u32>,
403 #[serde(default)]
404 pub mname: Option<String>,
405 #[serde(default)]
406 pub refresh: Option<u32>,
407 #[serde(default)]
408 pub retry: Option<u32>,
409 #[serde(default)]
410 pub rname: Option<String>,
411 #[serde(default)]
412 pub ttl: Option<u32>,
413}
414
415#[derive(Debug, Clone, Serialize, Deserialize, Default)]
416pub struct CloudflareDnsSettings {
417 #[serde(default)]
418 pub flatten_all_cnames: Option<bool>,
419 #[serde(default)]
420 pub foundation_dns: Option<bool>,
421 #[serde(default)]
422 pub multi_provider: Option<bool>,
423 #[serde(default)]
424 pub nameservers: Option<CloudflareDnsSettingsNameservers>,
425 #[serde(default)]
426 pub ns_ttl: Option<u32>,
427 #[serde(default)]
428 pub secondary_overrides: Option<bool>,
429 #[serde(default)]
430 pub soa: Option<CloudflareDnsSettingsSoa>,
431 #[serde(default)]
432 pub zone_mode: Option<String>,
433 #[serde(default)]
434 pub internal_dns: Option<CloudflareDnsSettingsInternalDns>,
435}
436
437#[derive(Debug, Clone, Serialize, Deserialize)]
438pub struct DomainPricing {
439 #[serde(default)]
440 pub currency: Option<String>,
441 #[serde(default)]
442 pub registration_cost: Option<String>,
443 #[serde(default)]
444 pub renewal_cost: Option<String>,
445}
446
447#[derive(Debug, Clone, Serialize, Deserialize)]
448pub struct DomainAvailability {
449 pub name: String,
450 pub registrable: bool,
451 #[serde(default)]
452 pub pricing: Option<DomainPricing>,
453 #[serde(default)]
454 pub reason: Option<String>,
455 #[serde(default)]
456 pub tier: Option<String>,
457}
458
459#[derive(Debug, Clone, Serialize, Deserialize, Default)]
460pub struct DomainRegistration {
461 #[serde(default)]
462 pub id: Option<String>,
463 #[serde(default)]
464 pub status: Option<String>,
465 #[serde(default)]
466 pub created_at: Option<String>,
467 #[serde(default)]
468 pub updated_at: Option<String>,
469 #[serde(flatten, default)]
470 pub extra: HashMap<String, Value>,
471}
472
473#[derive(Debug, Clone, Serialize, Deserialize, Default)]
474pub struct DomainWorkflowStatus {
475 #[serde(default)]
476 pub id: Option<String>,
477 #[serde(default)]
478 pub status: Option<String>,
479 #[serde(flatten, default)]
480 pub extra: HashMap<String, Value>,
481}
482
483#[derive(Debug, Clone, Serialize, Deserialize, Default)]
484pub struct RegisteredDomain {
485 pub name: String,
486 #[serde(default)]
487 pub account_id: Option<String>,
488 #[serde(default)]
489 pub auto_renew: Option<bool>,
490 #[serde(default)]
491 pub expires_at: Option<String>,
492 #[serde(default)]
493 pub registered_at: Option<String>,
494 #[serde(default)]
495 pub registration: Option<DomainRegistration>,
496 #[serde(default)]
497 pub workflow: Option<DomainWorkflowStatus>,
498 #[serde(flatten, default)]
499 pub extra: HashMap<String, Value>,
500}