Skip to main content

fizzy_sdk/generated/
types.rs

1// Generated by fizzy-sdk-generator from openapi.json and behavior-model.json. DO NOT EDIT.
2
3use std::collections::BTreeMap;
4
5use serde::{Deserialize, Serialize};
6
7use crate::types::{DateTime, SensitiveString};
8
9/// `AccessToken`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
10#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
11#[non_exhaustive]
12pub struct AccessToken {
13    /// `id`.
14    #[serde(
15        default,
16        deserialize_with = "crate::types::null_as_default::deserialize"
17    )]
18    pub id: String,
19    /// `description`.
20    #[serde(
21        default,
22        deserialize_with = "crate::types::null_as_default::deserialize"
23    )]
24    pub description: String,
25    /// `permission`.
26    #[serde(
27        default,
28        deserialize_with = "crate::types::null_as_default::deserialize"
29    )]
30    pub permission: String,
31    /// `created_at`.
32    pub created_at: DateTime,
33    /// `token`.
34    #[serde(default, skip_serializing_if = "Option::is_none")]
35    pub token: Option<SensitiveString>,
36}
37
38/// `Account`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
39#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
40#[non_exhaustive]
41pub struct Account {
42    /// `id`.
43    #[serde(
44        default,
45        deserialize_with = "crate::types::null_as_default::deserialize"
46    )]
47    pub id: String,
48    /// `name`.
49    #[serde(
50        default,
51        deserialize_with = "crate::types::null_as_default::deserialize"
52    )]
53    pub name: String,
54    /// `slug`.
55    #[serde(
56        default,
57        deserialize_with = "crate::types::null_as_default::deserialize"
58    )]
59    pub slug: String,
60    /// `created_at`.
61    pub created_at: DateTime,
62    /// `url`.
63    #[serde(
64        default,
65        deserialize_with = "crate::types::null_as_default::deserialize"
66    )]
67    pub url: String,
68    /// `user`.
69    #[serde(default, skip_serializing_if = "Option::is_none")]
70    pub user: Option<User>,
71}
72
73/// `AccountExport`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
74#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
75#[non_exhaustive]
76pub struct AccountExport {
77    /// `id`.
78    #[serde(
79        default,
80        deserialize_with = "crate::types::null_as_default::deserialize"
81    )]
82    pub id: String,
83    /// `status`.
84    #[serde(
85        default,
86        deserialize_with = "crate::types::null_as_default::deserialize"
87    )]
88    pub status: String,
89    /// `created_at`.
90    pub created_at: DateTime,
91    /// `download_url`.
92    #[serde(default, skip_serializing_if = "Option::is_none")]
93    pub download_url: Option<String>,
94}
95
96/// `AccountSettings`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
97#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
98#[non_exhaustive]
99pub struct AccountSettings {
100    /// `id`.
101    #[serde(
102        default,
103        deserialize_with = "crate::types::null_as_default::deserialize"
104    )]
105    pub id: String,
106    /// `name`.
107    #[serde(
108        default,
109        deserialize_with = "crate::types::null_as_default::deserialize"
110    )]
111    pub name: String,
112    /// `cards_count`.
113    #[serde(
114        default,
115        deserialize_with = "crate::types::null_as_default::deserialize"
116    )]
117    pub cards_count: i32,
118    /// `created_at`.
119    pub created_at: DateTime,
120    /// `auto_postpone_period_in_days`.
121    #[serde(default, skip_serializing_if = "Option::is_none")]
122    pub auto_postpone_period_in_days: Option<i32>,
123}
124
125/// `Activity`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
126#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
127#[non_exhaustive]
128pub struct Activity {
129    /// `id`.
130    #[serde(
131        default,
132        deserialize_with = "crate::types::null_as_default::deserialize"
133    )]
134    pub id: String,
135    /// `action`.
136    #[serde(
137        default,
138        deserialize_with = "crate::types::null_as_default::deserialize"
139    )]
140    pub action: String,
141    /// `created_at`.
142    pub created_at: DateTime,
143    /// `description`.
144    #[serde(
145        default,
146        deserialize_with = "crate::types::null_as_default::deserialize"
147    )]
148    pub description: String,
149    /// `particulars`.
150    #[serde(default)]
151    pub particulars: ActivityParticulars,
152    /// `url`.
153    #[serde(
154        default,
155        deserialize_with = "crate::types::null_as_default::deserialize"
156    )]
157    pub url: String,
158    /// `eventable_type`.
159    #[serde(
160        default,
161        deserialize_with = "crate::types::null_as_default::deserialize"
162    )]
163    pub eventable_type: String,
164    /// `eventable`.
165    #[serde(default)]
166    pub eventable: ActivityEventable,
167    /// `board`.
168    #[serde(default)]
169    pub board: Board,
170    /// `creator`.
171    #[serde(default)]
172    pub creator: User,
173}
174
175/// `ActivityEventable`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
176#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
177#[non_exhaustive]
178pub struct ActivityEventable {
179    /// `id`.
180    #[serde(
181        default,
182        deserialize_with = "crate::types::null_as_default::deserialize"
183    )]
184    pub id: String,
185    /// `number`.
186    #[serde(default, skip_serializing_if = "Option::is_none")]
187    pub number: Option<i32>,
188    /// `title`.
189    #[serde(default, skip_serializing_if = "Option::is_none")]
190    pub title: Option<String>,
191    /// `status`.
192    #[serde(default, skip_serializing_if = "Option::is_none")]
193    pub status: Option<String>,
194    /// `description`.
195    #[serde(default, skip_serializing_if = "Option::is_none")]
196    pub description: Option<String>,
197    /// `description_html`.
198    #[serde(default, skip_serializing_if = "Option::is_none")]
199    pub description_html: Option<String>,
200    /// `image_url`.
201    #[serde(default, skip_serializing_if = "Option::is_none")]
202    pub image_url: Option<String>,
203    /// `has_attachments`.
204    #[serde(default, skip_serializing_if = "Option::is_none")]
205    pub has_attachments: Option<bool>,
206    /// `tags`.
207    #[serde(default, skip_serializing_if = "Option::is_none")]
208    pub tags: Option<Vec<String>>,
209    /// `closed`.
210    #[serde(default, skip_serializing_if = "Option::is_none")]
211    pub closed: Option<bool>,
212    /// `postponed`.
213    #[serde(default, skip_serializing_if = "Option::is_none")]
214    pub postponed: Option<bool>,
215    /// `golden`.
216    #[serde(default, skip_serializing_if = "Option::is_none")]
217    pub golden: Option<bool>,
218    /// `last_active_at`.
219    #[serde(default, skip_serializing_if = "Option::is_none")]
220    pub last_active_at: Option<DateTime>,
221    /// `created_at`.
222    #[serde(default, skip_serializing_if = "Option::is_none")]
223    pub created_at: Option<DateTime>,
224    /// `updated_at`.
225    #[serde(default, skip_serializing_if = "Option::is_none")]
226    pub updated_at: Option<DateTime>,
227    /// `body`.
228    #[serde(default, skip_serializing_if = "Option::is_none")]
229    pub body: Option<RichTextBody>,
230    /// `creator`.
231    #[serde(default, skip_serializing_if = "Option::is_none")]
232    pub creator: Option<User>,
233    /// `card`.
234    #[serde(default, skip_serializing_if = "Option::is_none")]
235    pub card: Option<CardRef>,
236    /// `board`.
237    #[serde(default, skip_serializing_if = "Option::is_none")]
238    pub board: Option<Board>,
239    /// `column`.
240    #[serde(default, skip_serializing_if = "Option::is_none")]
241    pub column: Option<Column>,
242    /// `assignees`.
243    #[serde(default, skip_serializing_if = "Option::is_none")]
244    pub assignees: Option<Vec<User>>,
245    /// `has_more_assignees`.
246    #[serde(default, skip_serializing_if = "Option::is_none")]
247    pub has_more_assignees: Option<bool>,
248    /// `comments_url`.
249    #[serde(default, skip_serializing_if = "Option::is_none")]
250    pub comments_url: Option<String>,
251    /// `reactions_url`.
252    #[serde(default, skip_serializing_if = "Option::is_none")]
253    pub reactions_url: Option<String>,
254    /// `steps`.
255    #[serde(default, skip_serializing_if = "Option::is_none")]
256    pub steps: Option<Vec<Step>>,
257    /// `url`.
258    #[serde(
259        default,
260        deserialize_with = "crate::types::null_as_default::deserialize"
261    )]
262    pub url: String,
263}
264
265/// `ActivityParticulars`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
266#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
267#[non_exhaustive]
268pub struct ActivityParticulars {
269    /// `assignee_ids`.
270    #[serde(default, skip_serializing_if = "Option::is_none")]
271    pub assignee_ids: Option<Vec<String>>,
272    /// `old_board`.
273    #[serde(default, skip_serializing_if = "Option::is_none")]
274    pub old_board: Option<String>,
275    /// `new_board`.
276    #[serde(default, skip_serializing_if = "Option::is_none")]
277    pub new_board: Option<String>,
278    /// `old_title`.
279    #[serde(default, skip_serializing_if = "Option::is_none")]
280    pub old_title: Option<String>,
281    /// `new_title`.
282    #[serde(default, skip_serializing_if = "Option::is_none")]
283    pub new_title: Option<String>,
284    /// `column`.
285    #[serde(default, skip_serializing_if = "Option::is_none")]
286    pub column: Option<String>,
287}
288
289/// `AssignCardRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
290#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
291pub struct AssignCardRequestContent {
292    /// `assignee_id`.
293    #[serde(
294        default,
295        deserialize_with = "crate::types::null_as_default::deserialize"
296    )]
297    pub assignee_id: String,
298}
299
300/// `BadRequestErrorResponseContent`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
301#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
302#[non_exhaustive]
303pub struct BadRequestErrorResponseContent {
304    /// `message`.
305    #[serde(
306        default,
307        deserialize_with = "crate::types::null_as_default::deserialize"
308    )]
309    pub message: String,
310}
311
312/// `Board`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
313#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
314#[non_exhaustive]
315pub struct Board {
316    /// `id`.
317    #[serde(
318        default,
319        deserialize_with = "crate::types::null_as_default::deserialize"
320    )]
321    pub id: String,
322    /// `name`.
323    #[serde(
324        default,
325        deserialize_with = "crate::types::null_as_default::deserialize"
326    )]
327    pub name: String,
328    /// `all_access`.
329    #[serde(
330        default,
331        deserialize_with = "crate::types::null_as_default::deserialize"
332    )]
333    pub all_access: bool,
334    /// `created_at`.
335    pub created_at: DateTime,
336    /// `auto_postpone_period_in_days`.
337    #[serde(default, skip_serializing_if = "Option::is_none")]
338    pub auto_postpone_period_in_days: Option<i32>,
339    /// `public_description`.
340    #[serde(default, skip_serializing_if = "Option::is_none")]
341    pub public_description: Option<String>,
342    /// `public_description_html`.
343    #[serde(default, skip_serializing_if = "Option::is_none")]
344    pub public_description_html: Option<String>,
345    /// `public_url`.
346    #[serde(default, skip_serializing_if = "Option::is_none")]
347    pub public_url: Option<String>,
348    /// `user_ids`.
349    #[serde(default, skip_serializing_if = "Option::is_none")]
350    pub user_ids: Option<Vec<String>>,
351    /// `url`.
352    #[serde(
353        default,
354        deserialize_with = "crate::types::null_as_default::deserialize"
355    )]
356    pub url: String,
357    /// `creator`.
358    #[serde(default, skip_serializing_if = "Option::is_none")]
359    pub creator: Option<User>,
360}
361
362/// `BoardAccessUser`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
363#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
364#[non_exhaustive]
365pub struct BoardAccessUser {
366    /// `id`.
367    #[serde(
368        default,
369        deserialize_with = "crate::types::null_as_default::deserialize"
370    )]
371    pub id: String,
372    /// `name`.
373    #[serde(
374        default,
375        deserialize_with = "crate::types::null_as_default::deserialize"
376    )]
377    pub name: SensitiveString,
378    /// `role`.
379    #[serde(
380        default,
381        deserialize_with = "crate::types::null_as_default::deserialize"
382    )]
383    pub role: String,
384    /// `active`.
385    #[serde(
386        default,
387        deserialize_with = "crate::types::null_as_default::deserialize"
388    )]
389    pub active: bool,
390    /// `email_address`.
391    #[serde(
392        default,
393        deserialize_with = "crate::types::null_as_default::deserialize"
394    )]
395    pub email_address: SensitiveString,
396    /// `created_at`.
397    pub created_at: DateTime,
398    /// `url`.
399    #[serde(
400        default,
401        deserialize_with = "crate::types::null_as_default::deserialize"
402    )]
403    pub url: String,
404    /// `avatar_url`.
405    #[serde(default, skip_serializing_if = "Option::is_none")]
406    pub avatar_url: Option<String>,
407    /// `has_access`.
408    #[serde(
409        default,
410        deserialize_with = "crate::types::null_as_default::deserialize"
411    )]
412    pub has_access: bool,
413    /// `involvement`.
414    #[serde(default, skip_serializing_if = "Option::is_none")]
415    pub involvement: Option<String>,
416}
417
418/// `BoardAccesses`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
419#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
420#[non_exhaustive]
421pub struct BoardAccesses {
422    /// `board_id`.
423    #[serde(
424        default,
425        deserialize_with = "crate::types::null_as_default::deserialize"
426    )]
427    pub board_id: String,
428    /// `all_access`.
429    #[serde(
430        default,
431        deserialize_with = "crate::types::null_as_default::deserialize"
432    )]
433    pub all_access: bool,
434    /// `users`.
435    #[serde(
436        default,
437        deserialize_with = "crate::types::null_as_default::deserialize"
438    )]
439    pub users: Vec<BoardAccessUser>,
440}
441
442/// `BulkReadNotificationsRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
443#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
444pub struct BulkReadNotificationsRequestContent {
445    /// `notification_ids`.
446    #[serde(default, skip_serializing_if = "Option::is_none")]
447    pub notification_ids: Option<Vec<String>>,
448}
449
450/// `Card`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
451#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
452#[non_exhaustive]
453pub struct Card {
454    /// `id`.
455    #[serde(
456        default,
457        deserialize_with = "crate::types::null_as_default::deserialize"
458    )]
459    pub id: String,
460    /// `number`.
461    #[serde(
462        default,
463        deserialize_with = "crate::types::null_as_default::deserialize"
464    )]
465    pub number: i32,
466    /// `title`.
467    #[serde(
468        default,
469        deserialize_with = "crate::types::null_as_default::deserialize"
470    )]
471    pub title: String,
472    /// `status`.
473    #[serde(
474        default,
475        deserialize_with = "crate::types::null_as_default::deserialize"
476    )]
477    pub status: String,
478    /// `description`.
479    #[serde(default, skip_serializing_if = "Option::is_none")]
480    pub description: Option<String>,
481    /// `description_html`.
482    #[serde(default, skip_serializing_if = "Option::is_none")]
483    pub description_html: Option<String>,
484    /// `image_url`.
485    #[serde(default, skip_serializing_if = "Option::is_none")]
486    pub image_url: Option<String>,
487    /// `has_attachments`.
488    #[serde(
489        default,
490        deserialize_with = "crate::types::null_as_default::deserialize"
491    )]
492    pub has_attachments: bool,
493    /// `tags`.
494    #[serde(default, skip_serializing_if = "Option::is_none")]
495    pub tags: Option<Vec<String>>,
496    /// `closed`.
497    #[serde(
498        default,
499        deserialize_with = "crate::types::null_as_default::deserialize"
500    )]
501    pub closed: bool,
502    /// `postponed`.
503    #[serde(
504        default,
505        deserialize_with = "crate::types::null_as_default::deserialize"
506    )]
507    pub postponed: bool,
508    /// `golden`.
509    #[serde(
510        default,
511        deserialize_with = "crate::types::null_as_default::deserialize"
512    )]
513    pub golden: bool,
514    /// `last_active_at`.
515    #[serde(default, skip_serializing_if = "Option::is_none")]
516    pub last_active_at: Option<DateTime>,
517    /// `created_at`.
518    pub created_at: DateTime,
519    /// `url`.
520    #[serde(
521        default,
522        deserialize_with = "crate::types::null_as_default::deserialize"
523    )]
524    pub url: String,
525    /// `board`.
526    #[serde(default, skip_serializing_if = "Option::is_none")]
527    pub board: Option<Board>,
528    /// `column`.
529    #[serde(default, skip_serializing_if = "Option::is_none")]
530    pub column: Option<Column>,
531    /// `creator`.
532    #[serde(default, skip_serializing_if = "Option::is_none")]
533    pub creator: Option<User>,
534    /// `assignees`.
535    #[serde(default, skip_serializing_if = "Option::is_none")]
536    pub assignees: Option<Vec<User>>,
537    /// `has_more_assignees`.
538    #[serde(default, skip_serializing_if = "Option::is_none")]
539    pub has_more_assignees: Option<bool>,
540    /// `comments_url`.
541    #[serde(default, skip_serializing_if = "Option::is_none")]
542    pub comments_url: Option<String>,
543    /// `reactions_url`.
544    #[serde(default, skip_serializing_if = "Option::is_none")]
545    pub reactions_url: Option<String>,
546    /// `steps`.
547    #[serde(default, skip_serializing_if = "Option::is_none")]
548    pub steps: Option<Vec<Step>>,
549}
550
551/// `CardRef`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
552#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
553#[non_exhaustive]
554pub struct CardRef {
555    /// `id`.
556    #[serde(
557        default,
558        deserialize_with = "crate::types::null_as_default::deserialize"
559    )]
560    pub id: String,
561    /// `url`.
562    #[serde(
563        default,
564        deserialize_with = "crate::types::null_as_default::deserialize"
565    )]
566    pub url: String,
567}
568
569/// `Color`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
570#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
571#[non_exhaustive]
572pub struct Color {
573    /// `name`.
574    #[serde(
575        default,
576        deserialize_with = "crate::types::null_as_default::deserialize"
577    )]
578    pub name: String,
579    /// `value`.
580    #[serde(
581        default,
582        deserialize_with = "crate::types::null_as_default::deserialize"
583    )]
584    pub value: String,
585}
586
587/// `Column`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
588#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
589#[non_exhaustive]
590pub struct Column {
591    /// `id`.
592    #[serde(
593        default,
594        deserialize_with = "crate::types::null_as_default::deserialize"
595    )]
596    pub id: String,
597    /// `name`.
598    #[serde(
599        default,
600        deserialize_with = "crate::types::null_as_default::deserialize"
601    )]
602    pub name: String,
603    /// `color`.
604    #[serde(default, skip_serializing_if = "Option::is_none")]
605    pub color: Option<Color>,
606    /// `created_at`.
607    pub created_at: DateTime,
608    /// `cards_url`.
609    #[serde(default, skip_serializing_if = "Option::is_none")]
610    pub cards_url: Option<String>,
611}
612
613/// `Comment`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
614#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
615#[non_exhaustive]
616pub struct Comment {
617    /// `id`.
618    #[serde(
619        default,
620        deserialize_with = "crate::types::null_as_default::deserialize"
621    )]
622    pub id: String,
623    /// `created_at`.
624    pub created_at: DateTime,
625    /// `updated_at`.
626    pub updated_at: DateTime,
627    /// `body`.
628    #[serde(default)]
629    pub body: RichTextBody,
630    /// `creator`.
631    #[serde(default)]
632    pub creator: User,
633    /// `card`.
634    #[serde(default, skip_serializing_if = "Option::is_none")]
635    pub card: Option<CardRef>,
636    /// `reactions_url`.
637    #[serde(default, skip_serializing_if = "Option::is_none")]
638    pub reactions_url: Option<String>,
639    /// `url`.
640    #[serde(
641        default,
642        deserialize_with = "crate::types::null_as_default::deserialize"
643    )]
644    pub url: String,
645}
646
647/// `CompleteJoinRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
648#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
649pub struct CompleteJoinRequestContent {
650    /// `name`.
651    #[serde(
652        default,
653        deserialize_with = "crate::types::null_as_default::deserialize"
654    )]
655    pub name: SensitiveString,
656}
657
658/// `CompleteSignupRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
659#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
660pub struct CompleteSignupRequestContent {
661    /// `full_name`.
662    #[serde(
663        default,
664        deserialize_with = "crate::types::null_as_default::deserialize"
665    )]
666    pub full_name: SensitiveString,
667}
668
669/// `CreateAccessTokenRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
670#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
671pub struct CreateAccessTokenRequestContent {
672    /// `description`.
673    #[serde(
674        default,
675        deserialize_with = "crate::types::null_as_default::deserialize"
676    )]
677    pub description: String,
678    /// `permission`.
679    #[serde(
680        default,
681        deserialize_with = "crate::types::null_as_default::deserialize"
682    )]
683    pub permission: String,
684}
685
686/// `CreateAccessTokenResponseContent`, as the model names it.
687pub type CreateAccessTokenResponseContent = AccessToken;
688
689/// `CreateAccountExportResponseContent`, as the model names it.
690pub type CreateAccountExportResponseContent = AccountExport;
691
692/// `CreateBoardRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
693#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
694pub struct CreateBoardRequestContent {
695    /// `name`.
696    #[serde(
697        default,
698        deserialize_with = "crate::types::null_as_default::deserialize"
699    )]
700    pub name: String,
701    /// `all_access`.
702    #[serde(default, skip_serializing_if = "Option::is_none")]
703    pub all_access: Option<bool>,
704    /// `auto_postpone_period_in_days`.
705    #[serde(default, skip_serializing_if = "Option::is_none")]
706    pub auto_postpone_period_in_days: Option<i32>,
707    /// `public_description`.
708    #[serde(default, skip_serializing_if = "Option::is_none")]
709    pub public_description: Option<String>,
710}
711
712/// `CreateBoardResponseContent`, as the model names it.
713pub type CreateBoardResponseContent = Board;
714
715/// `CreateCardReactionRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
716#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
717pub struct CreateCardReactionRequestContent {
718    /// `content`.
719    #[serde(
720        default,
721        deserialize_with = "crate::types::null_as_default::deserialize"
722    )]
723    pub content: String,
724}
725
726/// `CreateCardReactionResponseContent`, as the model names it.
727pub type CreateCardReactionResponseContent = Reaction;
728
729/// `CreateCardRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
730#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
731pub struct CreateCardRequestContent {
732    /// `title`.
733    #[serde(
734        default,
735        deserialize_with = "crate::types::null_as_default::deserialize"
736    )]
737    pub title: String,
738    /// `board_id`.
739    #[serde(default, skip_serializing_if = "Option::is_none")]
740    pub board_id: Option<String>,
741    /// `column_id`.
742    #[serde(default, skip_serializing_if = "Option::is_none")]
743    pub column_id: Option<String>,
744    /// `description`.
745    #[serde(default, skip_serializing_if = "Option::is_none")]
746    pub description: Option<String>,
747    /// `assignee_ids`.
748    #[serde(default, skip_serializing_if = "Option::is_none")]
749    pub assignee_ids: Option<Vec<String>>,
750    /// `tag_names`.
751    #[serde(default, skip_serializing_if = "Option::is_none")]
752    pub tag_names: Option<Vec<String>>,
753    /// `image`.
754    #[serde(default, skip_serializing_if = "Option::is_none")]
755    pub image: Option<String>,
756    /// `created_at`.
757    #[serde(default, skip_serializing_if = "Option::is_none")]
758    pub created_at: Option<DateTime>,
759    /// `last_active_at`.
760    #[serde(default, skip_serializing_if = "Option::is_none")]
761    pub last_active_at: Option<DateTime>,
762}
763
764/// `CreateCardResponseContent`, as the model names it.
765pub type CreateCardResponseContent = Card;
766
767/// `CreateColumnRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
768#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
769pub struct CreateColumnRequestContent {
770    /// `name`.
771    #[serde(
772        default,
773        deserialize_with = "crate::types::null_as_default::deserialize"
774    )]
775    pub name: String,
776    /// `color`.
777    #[serde(default, skip_serializing_if = "Option::is_none")]
778    pub color: Option<String>,
779}
780
781/// `CreateColumnResponseContent`, as the model names it.
782pub type CreateColumnResponseContent = Column;
783
784/// `CreateCommentReactionRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
785#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
786pub struct CreateCommentReactionRequestContent {
787    /// `content`.
788    #[serde(
789        default,
790        deserialize_with = "crate::types::null_as_default::deserialize"
791    )]
792    pub content: String,
793}
794
795/// `CreateCommentReactionResponseContent`, as the model names it.
796pub type CreateCommentReactionResponseContent = Reaction;
797
798/// `CreateCommentRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
799#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
800pub struct CreateCommentRequestContent {
801    /// `body`.
802    #[serde(
803        default,
804        deserialize_with = "crate::types::null_as_default::deserialize"
805    )]
806    pub body: String,
807    /// `created_at`.
808    #[serde(default, skip_serializing_if = "Option::is_none")]
809    pub created_at: Option<DateTime>,
810}
811
812/// `CreateCommentResponseContent`, as the model names it.
813pub type CreateCommentResponseContent = Comment;
814
815/// `CreateDirectUploadRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
816#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
817pub struct CreateDirectUploadRequestContent {
818    /// `filename`.
819    #[serde(
820        default,
821        deserialize_with = "crate::types::null_as_default::deserialize"
822    )]
823    pub filename: String,
824    /// `content_type`.
825    #[serde(
826        default,
827        deserialize_with = "crate::types::null_as_default::deserialize"
828    )]
829    pub content_type: String,
830    /// `byte_size`.
831    #[serde(
832        default,
833        deserialize_with = "crate::types::null_as_default::deserialize"
834    )]
835    pub byte_size: i64,
836    /// `checksum`.
837    #[serde(
838        default,
839        deserialize_with = "crate::types::null_as_default::deserialize"
840    )]
841    pub checksum: String,
842}
843
844/// `CreateDirectUploadResponseContent`, as the model names it.
845pub type CreateDirectUploadResponseContent = DirectUpload;
846
847/// `CreatePushSubscriptionRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
848#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
849pub struct CreatePushSubscriptionRequestContent {
850    /// `endpoint`.
851    #[serde(
852        default,
853        deserialize_with = "crate::types::null_as_default::deserialize"
854    )]
855    pub endpoint: String,
856    /// `p256dh_key`.
857    #[serde(
858        default,
859        deserialize_with = "crate::types::null_as_default::deserialize"
860    )]
861    pub p256dh_key: String,
862    /// `auth_key`.
863    #[serde(
864        default,
865        deserialize_with = "crate::types::null_as_default::deserialize"
866    )]
867    pub auth_key: String,
868}
869
870/// `CreateSessionRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
871#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
872pub struct CreateSessionRequestContent {
873    /// `email_address`.
874    #[serde(
875        default,
876        deserialize_with = "crate::types::null_as_default::deserialize"
877    )]
878    pub email_address: SensitiveString,
879}
880
881/// `CreateSessionResponseContent`, as the model names it.
882pub type CreateSessionResponseContent = PendingAuthentication;
883
884/// `CreateStepRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
885#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
886pub struct CreateStepRequestContent {
887    /// `content`.
888    #[serde(
889        default,
890        deserialize_with = "crate::types::null_as_default::deserialize"
891    )]
892    pub content: String,
893    /// `completed`.
894    #[serde(default, skip_serializing_if = "Option::is_none")]
895    pub completed: Option<bool>,
896}
897
898/// `CreateStepResponseContent`, as the model names it.
899pub type CreateStepResponseContent = Step;
900
901/// `CreateUserDataExportResponseContent`, as the model names it.
902pub type CreateUserDataExportResponseContent = DataExport;
903
904/// `CreateWebhookRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
905#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
906pub struct CreateWebhookRequestContent {
907    /// `name`.
908    #[serde(
909        default,
910        deserialize_with = "crate::types::null_as_default::deserialize"
911    )]
912    pub name: String,
913    /// `url`.
914    #[serde(
915        default,
916        deserialize_with = "crate::types::null_as_default::deserialize"
917    )]
918    pub url: String,
919    /// `subscribed_actions`.
920    #[serde(default, skip_serializing_if = "Option::is_none")]
921    pub subscribed_actions: Option<Vec<String>>,
922}
923
924/// `CreateWebhookResponseContent`, as the model names it.
925pub type CreateWebhookResponseContent = Webhook;
926
927/// `DataExport`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
928#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
929#[non_exhaustive]
930pub struct DataExport {
931    /// `id`.
932    #[serde(
933        default,
934        deserialize_with = "crate::types::null_as_default::deserialize"
935    )]
936    pub id: String,
937    /// `status`.
938    #[serde(
939        default,
940        deserialize_with = "crate::types::null_as_default::deserialize"
941    )]
942    pub status: String,
943    /// `created_at`.
944    pub created_at: DateTime,
945    /// `download_url`.
946    #[serde(default, skip_serializing_if = "Option::is_none")]
947    pub download_url: Option<String>,
948}
949
950/// `DirectUpload`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
951#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
952#[non_exhaustive]
953pub struct DirectUpload {
954    /// `id`.
955    #[serde(
956        default,
957        deserialize_with = "crate::types::null_as_default::deserialize"
958    )]
959    pub id: String,
960    /// `key`.
961    #[serde(
962        default,
963        deserialize_with = "crate::types::null_as_default::deserialize"
964    )]
965    pub key: String,
966    /// `filename`.
967    #[serde(
968        default,
969        deserialize_with = "crate::types::null_as_default::deserialize"
970    )]
971    pub filename: String,
972    /// `content_type`.
973    #[serde(
974        default,
975        deserialize_with = "crate::types::null_as_default::deserialize"
976    )]
977    pub content_type: String,
978    /// `byte_size`.
979    #[serde(
980        default,
981        deserialize_with = "crate::types::null_as_default::deserialize"
982    )]
983    pub byte_size: i64,
984    /// `checksum`.
985    #[serde(
986        default,
987        deserialize_with = "crate::types::null_as_default::deserialize"
988    )]
989    pub checksum: String,
990    /// `direct_upload`.
991    #[serde(default)]
992    pub direct_upload: DirectUploadMetadata,
993}
994
995/// `DirectUploadHeaders`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
996#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
997#[non_exhaustive]
998pub struct DirectUploadHeaders {
999    /// `Content_Type`.
1000    #[serde(rename = "Content_Type")]
1001    #[serde(
1002        default,
1003        deserialize_with = "crate::types::null_as_default::deserialize"
1004    )]
1005    pub content_type: String,
1006    /// `Content_MD5`.
1007    #[serde(rename = "Content_MD5")]
1008    #[serde(default, skip_serializing_if = "Option::is_none")]
1009    pub content_md5: Option<String>,
1010}
1011
1012/// `DirectUploadMetadata`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1013#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1014#[non_exhaustive]
1015pub struct DirectUploadMetadata {
1016    /// `url`.
1017    #[serde(
1018        default,
1019        deserialize_with = "crate::types::null_as_default::deserialize"
1020    )]
1021    pub url: String,
1022    /// `headers`.
1023    #[serde(default)]
1024    pub headers: DirectUploadHeaders,
1025}
1026
1027/// `ForbiddenErrorResponseContent`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1028#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1029#[non_exhaustive]
1030pub struct ForbiddenErrorResponseContent {
1031    /// `message`.
1032    #[serde(
1033        default,
1034        deserialize_with = "crate::types::null_as_default::deserialize"
1035    )]
1036    pub message: String,
1037}
1038
1039/// `GetAccountExportResponseContent`, as the model names it.
1040pub type GetAccountExportResponseContent = AccountExport;
1041
1042/// `GetAccountSettingsResponseContent`, as the model names it.
1043pub type GetAccountSettingsResponseContent = AccountSettings;
1044
1045/// `GetBoardResponseContent`, as the model names it.
1046pub type GetBoardResponseContent = Board;
1047
1048/// `GetCardResponseContent`, as the model names it.
1049pub type GetCardResponseContent = Card;
1050
1051/// `GetColumnResponseContent`, as the model names it.
1052pub type GetColumnResponseContent = Column;
1053
1054/// `GetCommentResponseContent`, as the model names it.
1055pub type GetCommentResponseContent = Comment;
1056
1057/// `GetJoinCodeResponseContent`, as the model names it.
1058pub type GetJoinCodeResponseContent = JoinCode;
1059
1060/// `GetMyIdentityResponseContent`, as the model names it.
1061pub type GetMyIdentityResponseContent = Identity;
1062
1063/// `GetNotificationSettingsResponseContent`, as the model names it.
1064pub type GetNotificationSettingsResponseContent = NotificationSettings;
1065
1066/// `GetNotificationTrayResponseContent`, as the model names it.
1067pub type GetNotificationTrayResponseContent = Vec<Notification>;
1068
1069/// `GetStepResponseContent`, as the model names it.
1070pub type GetStepResponseContent = Step;
1071
1072/// `GetUserDataExportResponseContent`, as the model names it.
1073pub type GetUserDataExportResponseContent = DataExport;
1074
1075/// `GetUserResponseContent`, as the model names it.
1076pub type GetUserResponseContent = User;
1077
1078/// `GetWebhookResponseContent`, as the model names it.
1079pub type GetWebhookResponseContent = Webhook;
1080
1081/// `Identity`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1082#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1083#[non_exhaustive]
1084pub struct Identity {
1085    /// `id`.
1086    #[serde(
1087        default,
1088        deserialize_with = "crate::types::null_as_default::deserialize"
1089    )]
1090    pub id: String,
1091    /// `name`.
1092    #[serde(default, skip_serializing_if = "Option::is_none")]
1093    pub name: Option<SensitiveString>,
1094    /// `email_address`.
1095    #[serde(default, skip_serializing_if = "Option::is_none")]
1096    pub email_address: Option<SensitiveString>,
1097    /// `accounts`.
1098    #[serde(
1099        default,
1100        deserialize_with = "crate::types::null_as_default::deserialize"
1101    )]
1102    pub accounts: Vec<Account>,
1103}
1104
1105/// `InternalServerErrorResponseContent`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1106#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1107#[non_exhaustive]
1108pub struct InternalServerErrorResponseContent {
1109    /// `message`.
1110    #[serde(
1111        default,
1112        deserialize_with = "crate::types::null_as_default::deserialize"
1113    )]
1114    pub message: String,
1115}
1116
1117/// `JoinCode`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1118#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1119#[non_exhaustive]
1120pub struct JoinCode {
1121    /// `code`.
1122    #[serde(
1123        default,
1124        deserialize_with = "crate::types::null_as_default::deserialize"
1125    )]
1126    pub code: String,
1127    /// `url`.
1128    #[serde(
1129        default,
1130        deserialize_with = "crate::types::null_as_default::deserialize"
1131    )]
1132    pub url: String,
1133    /// `usage_count`.
1134    #[serde(default, skip_serializing_if = "Option::is_none")]
1135    pub usage_count: Option<i32>,
1136    /// `usage_limit`.
1137    #[serde(default, skip_serializing_if = "Option::is_none")]
1138    pub usage_limit: Option<i32>,
1139    /// `active`.
1140    #[serde(default, skip_serializing_if = "Option::is_none")]
1141    pub active: Option<bool>,
1142}
1143
1144/// `ListAccessTokensResponseContent`, as the model names it.
1145pub type ListAccessTokensResponseContent = Vec<AccessToken>;
1146
1147/// `ListActivitiesResponseContent`, as the model names it.
1148pub type ListActivitiesResponseContent = Vec<Activity>;
1149
1150/// `ListBoardAccessesResponseContent`, as the model names it.
1151pub type ListBoardAccessesResponseContent = BoardAccesses;
1152
1153/// `ListBoardsResponseContent`, as the model names it.
1154pub type ListBoardsResponseContent = Vec<Board>;
1155
1156/// `ListCardReactionsResponseContent`, as the model names it.
1157pub type ListCardReactionsResponseContent = Vec<Reaction>;
1158
1159/// `ListCardsResponseContent`, as the model names it.
1160pub type ListCardsResponseContent = Vec<Card>;
1161
1162/// `ListClosedCardsResponseContent`, as the model names it.
1163pub type ListClosedCardsResponseContent = Vec<Card>;
1164
1165/// `ListColumnCardsResponseContent`, as the model names it.
1166pub type ListColumnCardsResponseContent = Vec<Card>;
1167
1168/// `ListColumnsResponseContent`, as the model names it.
1169pub type ListColumnsResponseContent = Vec<Column>;
1170
1171/// `ListCommentReactionsResponseContent`, as the model names it.
1172pub type ListCommentReactionsResponseContent = Vec<Reaction>;
1173
1174/// `ListCommentsResponseContent`, as the model names it.
1175pub type ListCommentsResponseContent = Vec<Comment>;
1176
1177/// `ListNotificationsResponseContent`, as the model names it.
1178pub type ListNotificationsResponseContent = Vec<Notification>;
1179
1180/// `ListPinsResponseContent`, as the model names it.
1181pub type ListPinsResponseContent = Vec<Card>;
1182
1183/// `ListPostponedCardsResponseContent`, as the model names it.
1184pub type ListPostponedCardsResponseContent = Vec<Card>;
1185
1186/// `ListStepsResponseContent`, as the model names it.
1187pub type ListStepsResponseContent = Vec<Step>;
1188
1189/// `ListStreamCardsResponseContent`, as the model names it.
1190pub type ListStreamCardsResponseContent = Vec<Card>;
1191
1192/// `ListTagsResponseContent`, as the model names it.
1193pub type ListTagsResponseContent = Vec<Tag>;
1194
1195/// `ListUsersResponseContent`, as the model names it.
1196pub type ListUsersResponseContent = Vec<User>;
1197
1198/// `ListWebhookDeliveriesResponseContent`, as the model names it.
1199pub type ListWebhookDeliveriesResponseContent = Vec<WebhookDelivery>;
1200
1201/// `ListWebhooksResponseContent`, as the model names it.
1202pub type ListWebhooksResponseContent = Vec<Webhook>;
1203
1204/// `MoveCardRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1205#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1206pub struct MoveCardRequestContent {
1207    /// `board_id`.
1208    #[serde(
1209        default,
1210        deserialize_with = "crate::types::null_as_default::deserialize"
1211    )]
1212    pub board_id: String,
1213    /// `column_id`.
1214    #[serde(default, skip_serializing_if = "Option::is_none")]
1215    pub column_id: Option<String>,
1216}
1217
1218/// `MoveCardResponseContent`, as the model names it.
1219pub type MoveCardResponseContent = Card;
1220
1221/// `NotFoundErrorResponseContent`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1222#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1223#[non_exhaustive]
1224pub struct NotFoundErrorResponseContent {
1225    /// `message`.
1226    #[serde(
1227        default,
1228        deserialize_with = "crate::types::null_as_default::deserialize"
1229    )]
1230    pub message: String,
1231}
1232
1233/// `Notification`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1234#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1235#[non_exhaustive]
1236pub struct Notification {
1237    /// `id`.
1238    #[serde(
1239        default,
1240        deserialize_with = "crate::types::null_as_default::deserialize"
1241    )]
1242    pub id: String,
1243    /// `unread_count`.
1244    #[serde(
1245        default,
1246        deserialize_with = "crate::types::null_as_default::deserialize"
1247    )]
1248    pub unread_count: i32,
1249    /// `read`.
1250    #[serde(
1251        default,
1252        deserialize_with = "crate::types::null_as_default::deserialize"
1253    )]
1254    pub read: bool,
1255    /// `read_at`.
1256    #[serde(default, skip_serializing_if = "Option::is_none")]
1257    pub read_at: Option<DateTime>,
1258    /// `created_at`.
1259    pub created_at: DateTime,
1260    /// `source_type`.
1261    #[serde(
1262        default,
1263        deserialize_with = "crate::types::null_as_default::deserialize"
1264    )]
1265    pub source_type: String,
1266    /// `title`.
1267    #[serde(default, skip_serializing_if = "Option::is_none")]
1268    pub title: Option<String>,
1269    /// `body`.
1270    #[serde(default, skip_serializing_if = "Option::is_none")]
1271    pub body: Option<String>,
1272    /// `creator`.
1273    #[serde(default)]
1274    pub creator: User,
1275    /// `card`.
1276    #[serde(default, skip_serializing_if = "Option::is_none")]
1277    pub card: Option<NotificationCard>,
1278    /// `url`.
1279    #[serde(
1280        default,
1281        deserialize_with = "crate::types::null_as_default::deserialize"
1282    )]
1283    pub url: String,
1284}
1285
1286/// `NotificationCard`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1287#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1288#[non_exhaustive]
1289pub struct NotificationCard {
1290    /// `id`.
1291    #[serde(
1292        default,
1293        deserialize_with = "crate::types::null_as_default::deserialize"
1294    )]
1295    pub id: String,
1296    /// `number`.
1297    #[serde(
1298        default,
1299        deserialize_with = "crate::types::null_as_default::deserialize"
1300    )]
1301    pub number: i32,
1302    /// `title`.
1303    #[serde(
1304        default,
1305        deserialize_with = "crate::types::null_as_default::deserialize"
1306    )]
1307    pub title: String,
1308    /// `status`.
1309    #[serde(
1310        default,
1311        deserialize_with = "crate::types::null_as_default::deserialize"
1312    )]
1313    pub status: String,
1314    /// `board_name`.
1315    #[serde(default, skip_serializing_if = "Option::is_none")]
1316    pub board_name: Option<String>,
1317    /// `closed`.
1318    #[serde(
1319        default,
1320        deserialize_with = "crate::types::null_as_default::deserialize"
1321    )]
1322    pub closed: bool,
1323    /// `postponed`.
1324    #[serde(
1325        default,
1326        deserialize_with = "crate::types::null_as_default::deserialize"
1327    )]
1328    pub postponed: bool,
1329    /// `url`.
1330    #[serde(
1331        default,
1332        deserialize_with = "crate::types::null_as_default::deserialize"
1333    )]
1334    pub url: String,
1335    /// `column`.
1336    #[serde(default, skip_serializing_if = "Option::is_none")]
1337    pub column: Option<Column>,
1338}
1339
1340/// `NotificationSettings`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1341#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1342#[non_exhaustive]
1343pub struct NotificationSettings {
1344    /// `bundle_email_frequency`.
1345    #[serde(
1346        default,
1347        deserialize_with = "crate::types::null_as_default::deserialize"
1348    )]
1349    pub bundle_email_frequency: String,
1350}
1351
1352/// `PendingAuthentication`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1353#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1354#[non_exhaustive]
1355pub struct PendingAuthentication {
1356    /// `pending_authentication_token`.
1357    #[serde(
1358        default,
1359        deserialize_with = "crate::types::null_as_default::deserialize"
1360    )]
1361    pub pending_authentication_token: SensitiveString,
1362}
1363
1364/// `RateLimitErrorResponseContent`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1365#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1366#[non_exhaustive]
1367pub struct RateLimitErrorResponseContent {
1368    /// `message`.
1369    #[serde(
1370        default,
1371        deserialize_with = "crate::types::null_as_default::deserialize"
1372    )]
1373    pub message: String,
1374}
1375
1376/// `Reaction`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1377#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1378#[non_exhaustive]
1379pub struct Reaction {
1380    /// `id`.
1381    #[serde(
1382        default,
1383        deserialize_with = "crate::types::null_as_default::deserialize"
1384    )]
1385    pub id: String,
1386    /// `content`.
1387    #[serde(
1388        default,
1389        deserialize_with = "crate::types::null_as_default::deserialize"
1390    )]
1391    pub content: String,
1392    /// `reacter`.
1393    #[serde(default)]
1394    pub reacter: User,
1395    /// `url`.
1396    #[serde(
1397        default,
1398        deserialize_with = "crate::types::null_as_default::deserialize"
1399    )]
1400    pub url: String,
1401}
1402
1403/// `RedeemMagicLinkRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1404#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1405pub struct RedeemMagicLinkRequestContent {
1406    /// `token`.
1407    #[serde(
1408        default,
1409        deserialize_with = "crate::types::null_as_default::deserialize"
1410    )]
1411    pub token: SensitiveString,
1412}
1413
1414/// `RedeemMagicLinkResponseContent`, as the model names it.
1415pub type RedeemMagicLinkResponseContent = SessionAuthorization;
1416
1417/// `RegisterDeviceRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1418#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1419pub struct RegisterDeviceRequestContent {
1420    /// `token`.
1421    #[serde(
1422        default,
1423        deserialize_with = "crate::types::null_as_default::deserialize"
1424    )]
1425    pub token: String,
1426    /// `platform`.
1427    #[serde(
1428        default,
1429        deserialize_with = "crate::types::null_as_default::deserialize"
1430    )]
1431    pub platform: String,
1432    /// `name`.
1433    #[serde(default, skip_serializing_if = "Option::is_none")]
1434    pub name: Option<String>,
1435}
1436
1437/// `RequestEmailAddressChangeRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1438#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1439pub struct RequestEmailAddressChangeRequestContent {
1440    /// `email_address`.
1441    #[serde(
1442        default,
1443        deserialize_with = "crate::types::null_as_default::deserialize"
1444    )]
1445    pub email_address: SensitiveString,
1446}
1447
1448/// `RichTextBody`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1449#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1450#[non_exhaustive]
1451pub struct RichTextBody {
1452    /// `plain_text`.
1453    #[serde(
1454        default,
1455        deserialize_with = "crate::types::null_as_default::deserialize"
1456    )]
1457    pub plain_text: String,
1458    /// `html`.
1459    #[serde(
1460        default,
1461        deserialize_with = "crate::types::null_as_default::deserialize"
1462    )]
1463    pub html: String,
1464}
1465
1466/// `SearchCardsResponseContent`, as the model names it.
1467pub type SearchCardsResponseContent = Vec<Card>;
1468
1469/// `SessionAuthorization`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1470#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1471#[non_exhaustive]
1472pub struct SessionAuthorization {
1473    /// `session_token`.
1474    #[serde(
1475        default,
1476        deserialize_with = "crate::types::null_as_default::deserialize"
1477    )]
1478    pub session_token: SensitiveString,
1479    /// `requires_signup_completion`.
1480    #[serde(
1481        default,
1482        deserialize_with = "crate::types::null_as_default::deserialize"
1483    )]
1484    pub requires_signup_completion: bool,
1485}
1486
1487/// `Step`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1488#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1489#[non_exhaustive]
1490pub struct Step {
1491    /// `id`.
1492    #[serde(
1493        default,
1494        deserialize_with = "crate::types::null_as_default::deserialize"
1495    )]
1496    pub id: String,
1497    /// `content`.
1498    #[serde(
1499        default,
1500        deserialize_with = "crate::types::null_as_default::deserialize"
1501    )]
1502    pub content: String,
1503    /// `completed`.
1504    #[serde(
1505        default,
1506        deserialize_with = "crate::types::null_as_default::deserialize"
1507    )]
1508    pub completed: bool,
1509}
1510
1511/// `StringMap`, as the model names it.
1512pub type StringMap = BTreeMap<String, String>;
1513
1514/// `Tag`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1515#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1516#[non_exhaustive]
1517pub struct Tag {
1518    /// `id`.
1519    #[serde(
1520        default,
1521        deserialize_with = "crate::types::null_as_default::deserialize"
1522    )]
1523    pub id: String,
1524    /// `title`.
1525    #[serde(
1526        default,
1527        deserialize_with = "crate::types::null_as_default::deserialize"
1528    )]
1529    pub title: String,
1530    /// `created_at`.
1531    pub created_at: DateTime,
1532    /// `url`.
1533    #[serde(default, skip_serializing_if = "Option::is_none")]
1534    pub url: Option<String>,
1535}
1536
1537/// `TagCardRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1538#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1539pub struct TagCardRequestContent {
1540    /// `tag_title`.
1541    #[serde(
1542        default,
1543        deserialize_with = "crate::types::null_as_default::deserialize"
1544    )]
1545    pub tag_title: String,
1546}
1547
1548/// `TriageCardRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1549#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1550pub struct TriageCardRequestContent {
1551    /// `column_id`.
1552    #[serde(default, skip_serializing_if = "Option::is_none")]
1553    pub column_id: Option<String>,
1554}
1555
1556/// `UnauthorizedErrorResponseContent`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1557#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1558#[non_exhaustive]
1559pub struct UnauthorizedErrorResponseContent {
1560    /// `message`.
1561    #[serde(
1562        default,
1563        deserialize_with = "crate::types::null_as_default::deserialize"
1564    )]
1565    pub message: String,
1566}
1567
1568/// `UpdateAccountEntropyRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1569#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1570pub struct UpdateAccountEntropyRequestContent {
1571    /// `auto_postpone_period_in_days`.
1572    #[serde(default, skip_serializing_if = "Option::is_none")]
1573    pub auto_postpone_period_in_days: Option<i32>,
1574}
1575
1576/// `UpdateAccountEntropyResponseContent`, as the model names it.
1577pub type UpdateAccountEntropyResponseContent = AccountSettings;
1578
1579/// `UpdateAccountSettingsRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1580#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1581pub struct UpdateAccountSettingsRequestContent {
1582    /// `name`.
1583    #[serde(default, skip_serializing_if = "Option::is_none")]
1584    pub name: Option<String>,
1585}
1586
1587/// `UpdateBoardEntropyRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1588#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1589pub struct UpdateBoardEntropyRequestContent {
1590    /// `auto_postpone_period_in_days`.
1591    #[serde(default, skip_serializing_if = "Option::is_none")]
1592    pub auto_postpone_period_in_days: Option<i32>,
1593}
1594
1595/// `UpdateBoardEntropyResponseContent`, as the model names it.
1596pub type UpdateBoardEntropyResponseContent = Board;
1597
1598/// `UpdateBoardInvolvementRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1599#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1600pub struct UpdateBoardInvolvementRequestContent {
1601    /// `involvement`.
1602    #[serde(default, skip_serializing_if = "Option::is_none")]
1603    pub involvement: Option<String>,
1604}
1605
1606/// `UpdateBoardRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1607#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1608pub struct UpdateBoardRequestContent {
1609    /// `name`.
1610    #[serde(default, skip_serializing_if = "Option::is_none")]
1611    pub name: Option<String>,
1612    /// `all_access`.
1613    #[serde(default, skip_serializing_if = "Option::is_none")]
1614    pub all_access: Option<bool>,
1615    /// `auto_postpone_period_in_days`.
1616    #[serde(default, skip_serializing_if = "Option::is_none")]
1617    pub auto_postpone_period_in_days: Option<i32>,
1618    /// `public_description`.
1619    #[serde(default, skip_serializing_if = "Option::is_none")]
1620    pub public_description: Option<String>,
1621    /// `user_ids`.
1622    #[serde(default, skip_serializing_if = "Option::is_none")]
1623    pub user_ids: Option<Vec<String>>,
1624}
1625
1626/// `UpdateBoardResponseContent`, as the model names it.
1627pub type UpdateBoardResponseContent = Board;
1628
1629/// `UpdateCardRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1630#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1631pub struct UpdateCardRequestContent {
1632    /// `title`.
1633    #[serde(default, skip_serializing_if = "Option::is_none")]
1634    pub title: Option<String>,
1635    /// `description`.
1636    #[serde(default, skip_serializing_if = "Option::is_none")]
1637    pub description: Option<String>,
1638    /// `column_id`.
1639    #[serde(default, skip_serializing_if = "Option::is_none")]
1640    pub column_id: Option<String>,
1641    /// `image`.
1642    #[serde(default, skip_serializing_if = "Option::is_none")]
1643    pub image: Option<String>,
1644    /// `created_at`.
1645    #[serde(default, skip_serializing_if = "Option::is_none")]
1646    pub created_at: Option<DateTime>,
1647}
1648
1649/// `UpdateCardResponseContent`, as the model names it.
1650pub type UpdateCardResponseContent = Card;
1651
1652/// `UpdateColumnRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1653#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1654pub struct UpdateColumnRequestContent {
1655    /// `name`.
1656    #[serde(default, skip_serializing_if = "Option::is_none")]
1657    pub name: Option<String>,
1658    /// `color`.
1659    #[serde(default, skip_serializing_if = "Option::is_none")]
1660    pub color: Option<String>,
1661}
1662
1663/// `UpdateColumnResponseContent`, as the model names it.
1664pub type UpdateColumnResponseContent = Column;
1665
1666/// `UpdateCommentRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1667#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1668pub struct UpdateCommentRequestContent {
1669    /// `body`.
1670    #[serde(
1671        default,
1672        deserialize_with = "crate::types::null_as_default::deserialize"
1673    )]
1674    pub body: String,
1675}
1676
1677/// `UpdateCommentResponseContent`, as the model names it.
1678pub type UpdateCommentResponseContent = Comment;
1679
1680/// `UpdateJoinCodeRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1681#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1682pub struct UpdateJoinCodeRequestContent {
1683    /// `usage_limit`.
1684    #[serde(default, skip_serializing_if = "Option::is_none")]
1685    pub usage_limit: Option<i32>,
1686}
1687
1688/// `UpdateMyTimezoneRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1689#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1690pub struct UpdateMyTimezoneRequestContent {
1691    /// `timezone_name`.
1692    #[serde(
1693        default,
1694        deserialize_with = "crate::types::null_as_default::deserialize"
1695    )]
1696    pub timezone_name: String,
1697}
1698
1699/// `UpdateNotificationSettingsRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1700#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1701pub struct UpdateNotificationSettingsRequestContent {
1702    /// `bundle_email_frequency`.
1703    #[serde(default, skip_serializing_if = "Option::is_none")]
1704    pub bundle_email_frequency: Option<String>,
1705}
1706
1707/// `UpdateStepRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1708#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1709pub struct UpdateStepRequestContent {
1710    /// `content`.
1711    #[serde(default, skip_serializing_if = "Option::is_none")]
1712    pub content: Option<String>,
1713    /// `completed`.
1714    #[serde(default, skip_serializing_if = "Option::is_none")]
1715    pub completed: Option<bool>,
1716}
1717
1718/// `UpdateStepResponseContent`, as the model names it.
1719pub type UpdateStepResponseContent = Step;
1720
1721/// `UpdateUserRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1722#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1723pub struct UpdateUserRequestContent {
1724    /// `name`.
1725    #[serde(default, skip_serializing_if = "Option::is_none")]
1726    pub name: Option<String>,
1727}
1728
1729/// `UpdateUserResponseContent`, as the model names it.
1730pub type UpdateUserResponseContent = User;
1731
1732/// `UpdateUserRoleRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1733#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1734pub struct UpdateUserRoleRequestContent {
1735    /// `role`.
1736    #[serde(
1737        default,
1738        deserialize_with = "crate::types::null_as_default::deserialize"
1739    )]
1740    pub role: String,
1741}
1742
1743/// `UpdateWebhookRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1744#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1745pub struct UpdateWebhookRequestContent {
1746    /// `name`.
1747    #[serde(default, skip_serializing_if = "Option::is_none")]
1748    pub name: Option<String>,
1749    /// `url`.
1750    #[serde(default, skip_serializing_if = "Option::is_none")]
1751    pub url: Option<String>,
1752    /// `subscribed_actions`.
1753    #[serde(default, skip_serializing_if = "Option::is_none")]
1754    pub subscribed_actions: Option<Vec<String>>,
1755}
1756
1757/// `UpdateWebhookResponseContent`, as the model names it.
1758pub type UpdateWebhookResponseContent = Webhook;
1759
1760/// `User`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1761#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1762#[non_exhaustive]
1763pub struct User {
1764    /// `id`.
1765    #[serde(
1766        default,
1767        deserialize_with = "crate::types::null_as_default::deserialize"
1768    )]
1769    pub id: String,
1770    /// `name`.
1771    #[serde(
1772        default,
1773        deserialize_with = "crate::types::null_as_default::deserialize"
1774    )]
1775    pub name: SensitiveString,
1776    /// `role`.
1777    #[serde(
1778        default,
1779        deserialize_with = "crate::types::null_as_default::deserialize"
1780    )]
1781    pub role: String,
1782    /// `active`.
1783    #[serde(
1784        default,
1785        deserialize_with = "crate::types::null_as_default::deserialize"
1786    )]
1787    pub active: bool,
1788    /// `email_address`.
1789    #[serde(
1790        default,
1791        deserialize_with = "crate::types::null_as_default::deserialize"
1792    )]
1793    pub email_address: SensitiveString,
1794    /// `created_at`.
1795    pub created_at: DateTime,
1796    /// `url`.
1797    #[serde(
1798        default,
1799        deserialize_with = "crate::types::null_as_default::deserialize"
1800    )]
1801    pub url: String,
1802    /// `avatar_url`.
1803    #[serde(default, skip_serializing_if = "Option::is_none")]
1804    pub avatar_url: Option<String>,
1805}
1806
1807/// `ValidationErrorResponseContent`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1808#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1809#[non_exhaustive]
1810pub struct ValidationErrorResponseContent {
1811    /// `message`.
1812    #[serde(
1813        default,
1814        deserialize_with = "crate::types::null_as_default::deserialize"
1815    )]
1816    pub message: String,
1817    /// `errors`.
1818    #[serde(default, skip_serializing_if = "Option::is_none")]
1819    pub errors: Option<Vec<String>>,
1820}
1821
1822/// `Webhook`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1823#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1824#[non_exhaustive]
1825pub struct Webhook {
1826    /// `id`.
1827    #[serde(
1828        default,
1829        deserialize_with = "crate::types::null_as_default::deserialize"
1830    )]
1831    pub id: String,
1832    /// `name`.
1833    #[serde(
1834        default,
1835        deserialize_with = "crate::types::null_as_default::deserialize"
1836    )]
1837    pub name: String,
1838    /// `payload_url`.
1839    #[serde(
1840        default,
1841        deserialize_with = "crate::types::null_as_default::deserialize"
1842    )]
1843    pub payload_url: String,
1844    /// `url`.
1845    #[serde(
1846        default,
1847        deserialize_with = "crate::types::null_as_default::deserialize"
1848    )]
1849    pub url: String,
1850    /// `subscribed_actions`.
1851    #[serde(
1852        default,
1853        deserialize_with = "crate::types::null_as_default::deserialize"
1854    )]
1855    pub subscribed_actions: Vec<String>,
1856    /// `signing_secret`.
1857    #[serde(
1858        default,
1859        deserialize_with = "crate::types::null_as_default::deserialize"
1860    )]
1861    pub signing_secret: SensitiveString,
1862    /// `active`.
1863    #[serde(
1864        default,
1865        deserialize_with = "crate::types::null_as_default::deserialize"
1866    )]
1867    pub active: bool,
1868    /// `created_at`.
1869    pub created_at: DateTime,
1870    /// `updated_at`.
1871    #[serde(default, skip_serializing_if = "Option::is_none")]
1872    pub updated_at: Option<DateTime>,
1873    /// `board`.
1874    #[serde(default, skip_serializing_if = "Option::is_none")]
1875    pub board: Option<Board>,
1876}
1877
1878/// `WebhookDelivery`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1879#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1880#[non_exhaustive]
1881pub struct WebhookDelivery {
1882    /// `id`.
1883    #[serde(
1884        default,
1885        deserialize_with = "crate::types::null_as_default::deserialize"
1886    )]
1887    pub id: String,
1888    /// `state`.
1889    #[serde(
1890        default,
1891        deserialize_with = "crate::types::null_as_default::deserialize"
1892    )]
1893    pub state: String,
1894    /// `created_at`.
1895    pub created_at: DateTime,
1896    /// `updated_at`.
1897    pub updated_at: DateTime,
1898    /// `request`.
1899    #[serde(default, skip_serializing_if = "Option::is_none")]
1900    pub request: Option<WebhookDeliveryRequest>,
1901    /// `response`.
1902    #[serde(default, skip_serializing_if = "Option::is_none")]
1903    pub response: Option<WebhookDeliveryResponse>,
1904    /// `event`.
1905    #[serde(default, skip_serializing_if = "Option::is_none")]
1906    pub event: Option<WebhookDeliveryEvent>,
1907}
1908
1909/// `WebhookDeliveryEvent`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1910#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1911#[non_exhaustive]
1912pub struct WebhookDeliveryEvent {
1913    /// `id`.
1914    #[serde(
1915        default,
1916        deserialize_with = "crate::types::null_as_default::deserialize"
1917    )]
1918    pub id: String,
1919    /// `action`.
1920    #[serde(
1921        default,
1922        deserialize_with = "crate::types::null_as_default::deserialize"
1923    )]
1924    pub action: String,
1925    /// `created_at`.
1926    pub created_at: DateTime,
1927    /// `creator`.
1928    #[serde(default, skip_serializing_if = "Option::is_none")]
1929    pub creator: Option<WebhookDeliveryEventCreator>,
1930    /// `eventable`.
1931    #[serde(default, skip_serializing_if = "Option::is_none")]
1932    pub eventable: Option<WebhookDeliveryEventEventable>,
1933}
1934
1935/// `WebhookDeliveryEventCreator`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1936#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1937#[non_exhaustive]
1938pub struct WebhookDeliveryEventCreator {
1939    /// `id`.
1940    #[serde(
1941        default,
1942        deserialize_with = "crate::types::null_as_default::deserialize"
1943    )]
1944    pub id: String,
1945    /// `name`.
1946    #[serde(
1947        default,
1948        deserialize_with = "crate::types::null_as_default::deserialize"
1949    )]
1950    pub name: SensitiveString,
1951}
1952
1953/// `WebhookDeliveryEventEventable`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1954#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1955#[non_exhaustive]
1956pub struct WebhookDeliveryEventEventable {
1957    /// `type`.
1958    #[serde(
1959        default,
1960        deserialize_with = "crate::types::null_as_default::deserialize"
1961    )]
1962    pub r#type: String,
1963    /// `id`.
1964    #[serde(
1965        default,
1966        deserialize_with = "crate::types::null_as_default::deserialize"
1967    )]
1968    pub id: String,
1969    /// `url`.
1970    #[serde(
1971        default,
1972        deserialize_with = "crate::types::null_as_default::deserialize"
1973    )]
1974    pub url: String,
1975}
1976
1977/// `WebhookDeliveryRequest`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1978#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1979#[non_exhaustive]
1980pub struct WebhookDeliveryRequest {
1981    /// `headers`.
1982    #[serde(default, skip_serializing_if = "Option::is_none")]
1983    pub headers: Option<StringMap>,
1984}
1985
1986/// `WebhookDeliveryResponse`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1987#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1988#[non_exhaustive]
1989pub struct WebhookDeliveryResponse {
1990    /// `code`.
1991    #[serde(default, skip_serializing_if = "Option::is_none")]
1992    pub code: Option<i32>,
1993    /// `error`.
1994    #[serde(default, skip_serializing_if = "Option::is_none")]
1995    pub error: Option<String>,
1996}