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(
740        default,
741        deserialize_with = "crate::types::null_as_default::deserialize"
742    )]
743    pub board_id: String,
744    /// `description`.
745    #[serde(default, skip_serializing_if = "Option::is_none")]
746    pub description: Option<String>,
747    /// `image`.
748    #[serde(default, skip_serializing_if = "Option::is_none")]
749    pub image: Option<String>,
750    /// `created_at`.
751    #[serde(default, skip_serializing_if = "Option::is_none")]
752    pub created_at: Option<DateTime>,
753    /// `last_active_at`.
754    #[serde(default, skip_serializing_if = "Option::is_none")]
755    pub last_active_at: Option<DateTime>,
756}
757
758/// `CreateCardResponseContent`, as the model names it.
759pub type CreateCardResponseContent = Card;
760
761/// `CreateColumnRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
762#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
763pub struct CreateColumnRequestContent {
764    /// `name`.
765    #[serde(
766        default,
767        deserialize_with = "crate::types::null_as_default::deserialize"
768    )]
769    pub name: String,
770    /// `color`.
771    #[serde(default, skip_serializing_if = "Option::is_none")]
772    pub color: Option<String>,
773}
774
775/// `CreateColumnResponseContent`, as the model names it.
776pub type CreateColumnResponseContent = Column;
777
778/// `CreateCommentReactionRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
779#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
780pub struct CreateCommentReactionRequestContent {
781    /// `content`.
782    #[serde(
783        default,
784        deserialize_with = "crate::types::null_as_default::deserialize"
785    )]
786    pub content: String,
787}
788
789/// `CreateCommentReactionResponseContent`, as the model names it.
790pub type CreateCommentReactionResponseContent = Reaction;
791
792/// `CreateCommentRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
793#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
794pub struct CreateCommentRequestContent {
795    /// `body`.
796    #[serde(
797        default,
798        deserialize_with = "crate::types::null_as_default::deserialize"
799    )]
800    pub body: String,
801    /// `created_at`.
802    #[serde(default, skip_serializing_if = "Option::is_none")]
803    pub created_at: Option<DateTime>,
804}
805
806/// `CreateCommentResponseContent`, as the model names it.
807pub type CreateCommentResponseContent = Comment;
808
809/// `CreateDirectUploadRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
810#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
811pub struct CreateDirectUploadRequestContent {
812    /// `filename`.
813    #[serde(
814        default,
815        deserialize_with = "crate::types::null_as_default::deserialize"
816    )]
817    pub filename: String,
818    /// `content_type`.
819    #[serde(
820        default,
821        deserialize_with = "crate::types::null_as_default::deserialize"
822    )]
823    pub content_type: String,
824    /// `byte_size`.
825    #[serde(
826        default,
827        deserialize_with = "crate::types::null_as_default::deserialize"
828    )]
829    pub byte_size: i64,
830    /// `checksum`.
831    #[serde(
832        default,
833        deserialize_with = "crate::types::null_as_default::deserialize"
834    )]
835    pub checksum: String,
836}
837
838/// `CreateDirectUploadResponseContent`, as the model names it.
839pub type CreateDirectUploadResponseContent = DirectUpload;
840
841/// `CreatePushSubscriptionRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
842#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
843pub struct CreatePushSubscriptionRequestContent {
844    /// `endpoint`.
845    #[serde(
846        default,
847        deserialize_with = "crate::types::null_as_default::deserialize"
848    )]
849    pub endpoint: String,
850    /// `p256dh_key`.
851    #[serde(
852        default,
853        deserialize_with = "crate::types::null_as_default::deserialize"
854    )]
855    pub p256dh_key: String,
856    /// `auth_key`.
857    #[serde(
858        default,
859        deserialize_with = "crate::types::null_as_default::deserialize"
860    )]
861    pub auth_key: String,
862}
863
864/// `CreateSessionRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
865#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
866pub struct CreateSessionRequestContent {
867    /// `email_address`.
868    #[serde(
869        default,
870        deserialize_with = "crate::types::null_as_default::deserialize"
871    )]
872    pub email_address: SensitiveString,
873}
874
875/// `CreateSessionResponseContent`, as the model names it.
876pub type CreateSessionResponseContent = PendingAuthentication;
877
878/// `CreateStepRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
879#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
880pub struct CreateStepRequestContent {
881    /// `content`.
882    #[serde(
883        default,
884        deserialize_with = "crate::types::null_as_default::deserialize"
885    )]
886    pub content: String,
887    /// `completed`.
888    #[serde(default, skip_serializing_if = "Option::is_none")]
889    pub completed: Option<bool>,
890}
891
892/// `CreateStepResponseContent`, as the model names it.
893pub type CreateStepResponseContent = Step;
894
895/// `CreateUserDataExportResponseContent`, as the model names it.
896pub type CreateUserDataExportResponseContent = DataExport;
897
898/// `CreateWebhookRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
899#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
900pub struct CreateWebhookRequestContent {
901    /// `name`.
902    #[serde(
903        default,
904        deserialize_with = "crate::types::null_as_default::deserialize"
905    )]
906    pub name: String,
907    /// `url`.
908    #[serde(
909        default,
910        deserialize_with = "crate::types::null_as_default::deserialize"
911    )]
912    pub url: String,
913    /// `subscribed_actions`.
914    #[serde(default, skip_serializing_if = "Option::is_none")]
915    pub subscribed_actions: Option<Vec<String>>,
916}
917
918/// `CreateWebhookResponseContent`, as the model names it.
919pub type CreateWebhookResponseContent = Webhook;
920
921/// `DataExport`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
922#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
923#[non_exhaustive]
924pub struct DataExport {
925    /// `id`.
926    #[serde(
927        default,
928        deserialize_with = "crate::types::null_as_default::deserialize"
929    )]
930    pub id: String,
931    /// `status`.
932    #[serde(
933        default,
934        deserialize_with = "crate::types::null_as_default::deserialize"
935    )]
936    pub status: String,
937    /// `created_at`.
938    pub created_at: DateTime,
939    /// `download_url`.
940    #[serde(default, skip_serializing_if = "Option::is_none")]
941    pub download_url: Option<String>,
942}
943
944/// `DirectUpload`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
945#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
946#[non_exhaustive]
947pub struct DirectUpload {
948    /// `id`.
949    #[serde(
950        default,
951        deserialize_with = "crate::types::null_as_default::deserialize"
952    )]
953    pub id: String,
954    /// `key`.
955    #[serde(
956        default,
957        deserialize_with = "crate::types::null_as_default::deserialize"
958    )]
959    pub key: String,
960    /// `filename`.
961    #[serde(
962        default,
963        deserialize_with = "crate::types::null_as_default::deserialize"
964    )]
965    pub filename: String,
966    /// `content_type`.
967    #[serde(
968        default,
969        deserialize_with = "crate::types::null_as_default::deserialize"
970    )]
971    pub content_type: String,
972    /// `byte_size`.
973    #[serde(
974        default,
975        deserialize_with = "crate::types::null_as_default::deserialize"
976    )]
977    pub byte_size: i64,
978    /// `checksum`.
979    #[serde(
980        default,
981        deserialize_with = "crate::types::null_as_default::deserialize"
982    )]
983    pub checksum: String,
984    /// `direct_upload`.
985    #[serde(default)]
986    pub direct_upload: DirectUploadMetadata,
987}
988
989/// `DirectUploadHeaders`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
990#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
991#[non_exhaustive]
992pub struct DirectUploadHeaders {
993    /// `Content_Type`.
994    #[serde(rename = "Content_Type")]
995    #[serde(
996        default,
997        deserialize_with = "crate::types::null_as_default::deserialize"
998    )]
999    pub content_type: String,
1000    /// `Content_MD5`.
1001    #[serde(rename = "Content_MD5")]
1002    #[serde(default, skip_serializing_if = "Option::is_none")]
1003    pub content_md5: Option<String>,
1004}
1005
1006/// `DirectUploadMetadata`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1007#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1008#[non_exhaustive]
1009pub struct DirectUploadMetadata {
1010    /// `url`.
1011    #[serde(
1012        default,
1013        deserialize_with = "crate::types::null_as_default::deserialize"
1014    )]
1015    pub url: String,
1016    /// `headers`.
1017    #[serde(default)]
1018    pub headers: DirectUploadHeaders,
1019}
1020
1021/// `ForbiddenErrorResponseContent`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1022#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1023#[non_exhaustive]
1024pub struct ForbiddenErrorResponseContent {
1025    /// `message`.
1026    #[serde(
1027        default,
1028        deserialize_with = "crate::types::null_as_default::deserialize"
1029    )]
1030    pub message: String,
1031}
1032
1033/// `GetAccountExportResponseContent`, as the model names it.
1034pub type GetAccountExportResponseContent = AccountExport;
1035
1036/// `GetAccountSettingsResponseContent`, as the model names it.
1037pub type GetAccountSettingsResponseContent = AccountSettings;
1038
1039/// `GetBoardResponseContent`, as the model names it.
1040pub type GetBoardResponseContent = Board;
1041
1042/// `GetCardResponseContent`, as the model names it.
1043pub type GetCardResponseContent = Card;
1044
1045/// `GetColumnResponseContent`, as the model names it.
1046pub type GetColumnResponseContent = Column;
1047
1048/// `GetCommentResponseContent`, as the model names it.
1049pub type GetCommentResponseContent = Comment;
1050
1051/// `GetJoinCodeResponseContent`, as the model names it.
1052pub type GetJoinCodeResponseContent = JoinCode;
1053
1054/// `GetMyIdentityResponseContent`, as the model names it.
1055pub type GetMyIdentityResponseContent = Identity;
1056
1057/// `GetNotificationSettingsResponseContent`, as the model names it.
1058pub type GetNotificationSettingsResponseContent = NotificationSettings;
1059
1060/// `GetNotificationTrayResponseContent`, as the model names it.
1061pub type GetNotificationTrayResponseContent = Vec<Notification>;
1062
1063/// `GetStepResponseContent`, as the model names it.
1064pub type GetStepResponseContent = Step;
1065
1066/// `GetUserDataExportResponseContent`, as the model names it.
1067pub type GetUserDataExportResponseContent = DataExport;
1068
1069/// `GetUserResponseContent`, as the model names it.
1070pub type GetUserResponseContent = User;
1071
1072/// `GetWebhookResponseContent`, as the model names it.
1073pub type GetWebhookResponseContent = Webhook;
1074
1075/// `Identity`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1076#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1077#[non_exhaustive]
1078pub struct Identity {
1079    /// `id`.
1080    #[serde(
1081        default,
1082        deserialize_with = "crate::types::null_as_default::deserialize"
1083    )]
1084    pub id: String,
1085    /// `name`.
1086    #[serde(default, skip_serializing_if = "Option::is_none")]
1087    pub name: Option<SensitiveString>,
1088    /// `email_address`.
1089    #[serde(default, skip_serializing_if = "Option::is_none")]
1090    pub email_address: Option<SensitiveString>,
1091    /// `accounts`.
1092    #[serde(
1093        default,
1094        deserialize_with = "crate::types::null_as_default::deserialize"
1095    )]
1096    pub accounts: Vec<Account>,
1097}
1098
1099/// `InternalServerErrorResponseContent`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1100#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1101#[non_exhaustive]
1102pub struct InternalServerErrorResponseContent {
1103    /// `message`.
1104    #[serde(
1105        default,
1106        deserialize_with = "crate::types::null_as_default::deserialize"
1107    )]
1108    pub message: String,
1109}
1110
1111/// `JoinCode`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1112#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1113#[non_exhaustive]
1114pub struct JoinCode {
1115    /// `code`.
1116    #[serde(
1117        default,
1118        deserialize_with = "crate::types::null_as_default::deserialize"
1119    )]
1120    pub code: String,
1121    /// `url`.
1122    #[serde(
1123        default,
1124        deserialize_with = "crate::types::null_as_default::deserialize"
1125    )]
1126    pub url: String,
1127    /// `usage_count`.
1128    #[serde(default, skip_serializing_if = "Option::is_none")]
1129    pub usage_count: Option<i32>,
1130    /// `usage_limit`.
1131    #[serde(default, skip_serializing_if = "Option::is_none")]
1132    pub usage_limit: Option<i32>,
1133    /// `active`.
1134    #[serde(default, skip_serializing_if = "Option::is_none")]
1135    pub active: Option<bool>,
1136}
1137
1138/// `ListAccessTokensResponseContent`, as the model names it.
1139pub type ListAccessTokensResponseContent = Vec<AccessToken>;
1140
1141/// `ListActivitiesResponseContent`, as the model names it.
1142pub type ListActivitiesResponseContent = Vec<Activity>;
1143
1144/// `ListBoardAccessesResponseContent`, as the model names it.
1145pub type ListBoardAccessesResponseContent = BoardAccesses;
1146
1147/// `ListBoardsResponseContent`, as the model names it.
1148pub type ListBoardsResponseContent = Vec<Board>;
1149
1150/// `ListCardReactionsResponseContent`, as the model names it.
1151pub type ListCardReactionsResponseContent = Vec<Reaction>;
1152
1153/// `ListCardsResponseContent`, as the model names it.
1154pub type ListCardsResponseContent = Vec<Card>;
1155
1156/// `ListClosedCardsResponseContent`, as the model names it.
1157pub type ListClosedCardsResponseContent = Vec<Card>;
1158
1159/// `ListColumnCardsResponseContent`, as the model names it.
1160pub type ListColumnCardsResponseContent = Vec<Card>;
1161
1162/// `ListColumnsResponseContent`, as the model names it.
1163pub type ListColumnsResponseContent = Vec<Column>;
1164
1165/// `ListCommentReactionsResponseContent`, as the model names it.
1166pub type ListCommentReactionsResponseContent = Vec<Reaction>;
1167
1168/// `ListCommentsResponseContent`, as the model names it.
1169pub type ListCommentsResponseContent = Vec<Comment>;
1170
1171/// `ListNotificationsResponseContent`, as the model names it.
1172pub type ListNotificationsResponseContent = Vec<Notification>;
1173
1174/// `ListPinsResponseContent`, as the model names it.
1175pub type ListPinsResponseContent = Vec<Card>;
1176
1177/// `ListPostponedCardsResponseContent`, as the model names it.
1178pub type ListPostponedCardsResponseContent = Vec<Card>;
1179
1180/// `ListStepsResponseContent`, as the model names it.
1181pub type ListStepsResponseContent = Vec<Step>;
1182
1183/// `ListStreamCardsResponseContent`, as the model names it.
1184pub type ListStreamCardsResponseContent = Vec<Card>;
1185
1186/// `ListTagsResponseContent`, as the model names it.
1187pub type ListTagsResponseContent = Vec<Tag>;
1188
1189/// `ListUsersResponseContent`, as the model names it.
1190pub type ListUsersResponseContent = Vec<User>;
1191
1192/// `ListWebhookDeliveriesResponseContent`, as the model names it.
1193pub type ListWebhookDeliveriesResponseContent = Vec<WebhookDelivery>;
1194
1195/// `ListWebhooksResponseContent`, as the model names it.
1196pub type ListWebhooksResponseContent = Vec<Webhook>;
1197
1198/// `MoveCardRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1199#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1200pub struct MoveCardRequestContent {
1201    /// `board_id`.
1202    #[serde(
1203        default,
1204        deserialize_with = "crate::types::null_as_default::deserialize"
1205    )]
1206    pub board_id: String,
1207}
1208
1209/// `MoveCardResponseContent`, as the model names it.
1210pub type MoveCardResponseContent = Card;
1211
1212/// `NotFoundErrorResponseContent`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1213#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1214#[non_exhaustive]
1215pub struct NotFoundErrorResponseContent {
1216    /// `message`.
1217    #[serde(
1218        default,
1219        deserialize_with = "crate::types::null_as_default::deserialize"
1220    )]
1221    pub message: String,
1222}
1223
1224/// `Notification`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1225#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1226#[non_exhaustive]
1227pub struct Notification {
1228    /// `id`.
1229    #[serde(
1230        default,
1231        deserialize_with = "crate::types::null_as_default::deserialize"
1232    )]
1233    pub id: String,
1234    /// `unread_count`.
1235    #[serde(
1236        default,
1237        deserialize_with = "crate::types::null_as_default::deserialize"
1238    )]
1239    pub unread_count: i32,
1240    /// `read`.
1241    #[serde(
1242        default,
1243        deserialize_with = "crate::types::null_as_default::deserialize"
1244    )]
1245    pub read: bool,
1246    /// `read_at`.
1247    #[serde(default, skip_serializing_if = "Option::is_none")]
1248    pub read_at: Option<DateTime>,
1249    /// `created_at`.
1250    pub created_at: DateTime,
1251    /// `source_type`.
1252    #[serde(
1253        default,
1254        deserialize_with = "crate::types::null_as_default::deserialize"
1255    )]
1256    pub source_type: String,
1257    /// `title`.
1258    #[serde(default, skip_serializing_if = "Option::is_none")]
1259    pub title: Option<String>,
1260    /// `body`.
1261    #[serde(default, skip_serializing_if = "Option::is_none")]
1262    pub body: Option<String>,
1263    /// `creator`.
1264    #[serde(default)]
1265    pub creator: User,
1266    /// `card`.
1267    #[serde(default, skip_serializing_if = "Option::is_none")]
1268    pub card: Option<NotificationCard>,
1269    /// `url`.
1270    #[serde(
1271        default,
1272        deserialize_with = "crate::types::null_as_default::deserialize"
1273    )]
1274    pub url: String,
1275}
1276
1277/// `NotificationCard`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1278#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1279#[non_exhaustive]
1280pub struct NotificationCard {
1281    /// `id`.
1282    #[serde(
1283        default,
1284        deserialize_with = "crate::types::null_as_default::deserialize"
1285    )]
1286    pub id: String,
1287    /// `number`.
1288    #[serde(
1289        default,
1290        deserialize_with = "crate::types::null_as_default::deserialize"
1291    )]
1292    pub number: i32,
1293    /// `title`.
1294    #[serde(
1295        default,
1296        deserialize_with = "crate::types::null_as_default::deserialize"
1297    )]
1298    pub title: String,
1299    /// `status`.
1300    #[serde(
1301        default,
1302        deserialize_with = "crate::types::null_as_default::deserialize"
1303    )]
1304    pub status: String,
1305    /// `board_name`.
1306    #[serde(default, skip_serializing_if = "Option::is_none")]
1307    pub board_name: Option<String>,
1308    /// `closed`.
1309    #[serde(
1310        default,
1311        deserialize_with = "crate::types::null_as_default::deserialize"
1312    )]
1313    pub closed: bool,
1314    /// `postponed`.
1315    #[serde(
1316        default,
1317        deserialize_with = "crate::types::null_as_default::deserialize"
1318    )]
1319    pub postponed: bool,
1320    /// `url`.
1321    #[serde(
1322        default,
1323        deserialize_with = "crate::types::null_as_default::deserialize"
1324    )]
1325    pub url: String,
1326    /// `column`.
1327    #[serde(default, skip_serializing_if = "Option::is_none")]
1328    pub column: Option<Column>,
1329}
1330
1331/// `NotificationSettings`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1332#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1333#[non_exhaustive]
1334pub struct NotificationSettings {
1335    /// `bundle_email_frequency`.
1336    #[serde(
1337        default,
1338        deserialize_with = "crate::types::null_as_default::deserialize"
1339    )]
1340    pub bundle_email_frequency: String,
1341}
1342
1343/// `PendingAuthentication`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1344#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1345#[non_exhaustive]
1346pub struct PendingAuthentication {
1347    /// `pending_authentication_token`.
1348    #[serde(
1349        default,
1350        deserialize_with = "crate::types::null_as_default::deserialize"
1351    )]
1352    pub pending_authentication_token: SensitiveString,
1353}
1354
1355/// `RateLimitErrorResponseContent`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1356#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1357#[non_exhaustive]
1358pub struct RateLimitErrorResponseContent {
1359    /// `message`.
1360    #[serde(
1361        default,
1362        deserialize_with = "crate::types::null_as_default::deserialize"
1363    )]
1364    pub message: String,
1365}
1366
1367/// `Reaction`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1368#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1369#[non_exhaustive]
1370pub struct Reaction {
1371    /// `id`.
1372    #[serde(
1373        default,
1374        deserialize_with = "crate::types::null_as_default::deserialize"
1375    )]
1376    pub id: String,
1377    /// `content`.
1378    #[serde(
1379        default,
1380        deserialize_with = "crate::types::null_as_default::deserialize"
1381    )]
1382    pub content: String,
1383    /// `reacter`.
1384    #[serde(default)]
1385    pub reacter: User,
1386    /// `url`.
1387    #[serde(
1388        default,
1389        deserialize_with = "crate::types::null_as_default::deserialize"
1390    )]
1391    pub url: String,
1392}
1393
1394/// `RedeemMagicLinkRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1395#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1396pub struct RedeemMagicLinkRequestContent {
1397    /// `code`.
1398    #[serde(
1399        default,
1400        deserialize_with = "crate::types::null_as_default::deserialize"
1401    )]
1402    pub code: SensitiveString,
1403}
1404
1405/// `RedeemMagicLinkResponseContent`, as the model names it.
1406pub type RedeemMagicLinkResponseContent = SessionAuthorization;
1407
1408/// `RegisterDeviceRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1409#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1410pub struct RegisterDeviceRequestContent {
1411    /// `token`.
1412    #[serde(
1413        default,
1414        deserialize_with = "crate::types::null_as_default::deserialize"
1415    )]
1416    pub token: String,
1417    /// `platform`.
1418    #[serde(
1419        default,
1420        deserialize_with = "crate::types::null_as_default::deserialize"
1421    )]
1422    pub platform: String,
1423    /// `name`.
1424    #[serde(default, skip_serializing_if = "Option::is_none")]
1425    pub name: Option<String>,
1426}
1427
1428/// `RequestEmailAddressChangeRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1429#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1430pub struct RequestEmailAddressChangeRequestContent {
1431    /// `email_address`.
1432    #[serde(
1433        default,
1434        deserialize_with = "crate::types::null_as_default::deserialize"
1435    )]
1436    pub email_address: SensitiveString,
1437}
1438
1439/// `RichTextBody`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1440#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1441#[non_exhaustive]
1442pub struct RichTextBody {
1443    /// `plain_text`.
1444    #[serde(
1445        default,
1446        deserialize_with = "crate::types::null_as_default::deserialize"
1447    )]
1448    pub plain_text: String,
1449    /// `html`.
1450    #[serde(
1451        default,
1452        deserialize_with = "crate::types::null_as_default::deserialize"
1453    )]
1454    pub html: String,
1455}
1456
1457/// `SearchCardsResponseContent`, as the model names it.
1458pub type SearchCardsResponseContent = Vec<Card>;
1459
1460/// `SessionAuthorization`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1461#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1462#[non_exhaustive]
1463pub struct SessionAuthorization {
1464    /// `session_token`.
1465    #[serde(
1466        default,
1467        deserialize_with = "crate::types::null_as_default::deserialize"
1468    )]
1469    pub session_token: SensitiveString,
1470    /// `requires_signup_completion`.
1471    #[serde(
1472        default,
1473        deserialize_with = "crate::types::null_as_default::deserialize"
1474    )]
1475    pub requires_signup_completion: bool,
1476}
1477
1478/// `Step`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1479#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1480#[non_exhaustive]
1481pub struct Step {
1482    /// `id`.
1483    #[serde(
1484        default,
1485        deserialize_with = "crate::types::null_as_default::deserialize"
1486    )]
1487    pub id: String,
1488    /// `content`.
1489    #[serde(
1490        default,
1491        deserialize_with = "crate::types::null_as_default::deserialize"
1492    )]
1493    pub content: String,
1494    /// `completed`.
1495    #[serde(
1496        default,
1497        deserialize_with = "crate::types::null_as_default::deserialize"
1498    )]
1499    pub completed: bool,
1500}
1501
1502/// `StringMap`, as the model names it.
1503pub type StringMap = BTreeMap<String, String>;
1504
1505/// `Tag`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1506#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1507#[non_exhaustive]
1508pub struct Tag {
1509    /// `id`.
1510    #[serde(
1511        default,
1512        deserialize_with = "crate::types::null_as_default::deserialize"
1513    )]
1514    pub id: String,
1515    /// `title`.
1516    #[serde(
1517        default,
1518        deserialize_with = "crate::types::null_as_default::deserialize"
1519    )]
1520    pub title: String,
1521    /// `created_at`.
1522    pub created_at: DateTime,
1523    /// `url`.
1524    #[serde(default, skip_serializing_if = "Option::is_none")]
1525    pub url: Option<String>,
1526}
1527
1528/// `TagCardRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1529#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1530pub struct TagCardRequestContent {
1531    /// `tag_title`.
1532    #[serde(
1533        default,
1534        deserialize_with = "crate::types::null_as_default::deserialize"
1535    )]
1536    pub tag_title: String,
1537}
1538
1539/// `TriageCardRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1540#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1541pub struct TriageCardRequestContent {
1542    /// `column_id`.
1543    #[serde(
1544        default,
1545        deserialize_with = "crate::types::null_as_default::deserialize"
1546    )]
1547    pub column_id: String,
1548}
1549
1550/// `UnauthorizedErrorResponseContent`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1551#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1552#[non_exhaustive]
1553pub struct UnauthorizedErrorResponseContent {
1554    /// `message`.
1555    #[serde(
1556        default,
1557        deserialize_with = "crate::types::null_as_default::deserialize"
1558    )]
1559    pub message: String,
1560}
1561
1562/// `UpdateAccountEntropyRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1563#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1564pub struct UpdateAccountEntropyRequestContent {
1565    /// `auto_postpone_period_in_days`.
1566    #[serde(
1567        default,
1568        deserialize_with = "crate::types::null_as_default::deserialize"
1569    )]
1570    pub auto_postpone_period_in_days: i32,
1571}
1572
1573/// `UpdateAccountEntropyResponseContent`, as the model names it.
1574pub type UpdateAccountEntropyResponseContent = AccountSettings;
1575
1576/// `UpdateAccountSettingsRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1577#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1578pub struct UpdateAccountSettingsRequestContent {
1579    /// `name`.
1580    #[serde(
1581        default,
1582        deserialize_with = "crate::types::null_as_default::deserialize"
1583    )]
1584    pub name: 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(
1592        default,
1593        deserialize_with = "crate::types::null_as_default::deserialize"
1594    )]
1595    pub auto_postpone_period_in_days: i32,
1596}
1597
1598/// `UpdateBoardEntropyResponseContent`, as the model names it.
1599pub type UpdateBoardEntropyResponseContent = Board;
1600
1601/// `UpdateBoardInvolvementRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1602#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1603pub struct UpdateBoardInvolvementRequestContent {
1604    /// `involvement`.
1605    #[serde(
1606        default,
1607        deserialize_with = "crate::types::null_as_default::deserialize"
1608    )]
1609    pub involvement: String,
1610}
1611
1612/// `UpdateBoardRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1613#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1614pub struct UpdateBoardRequestContent {
1615    /// `name`.
1616    #[serde(default, skip_serializing_if = "Option::is_none")]
1617    pub name: Option<String>,
1618    /// `all_access`.
1619    #[serde(default, skip_serializing_if = "Option::is_none")]
1620    pub all_access: Option<bool>,
1621    /// `auto_postpone_period_in_days`.
1622    #[serde(default, skip_serializing_if = "Option::is_none")]
1623    pub auto_postpone_period_in_days: Option<i32>,
1624    /// `public_description`.
1625    #[serde(default, skip_serializing_if = "Option::is_none")]
1626    pub public_description: Option<String>,
1627    /// `user_ids`.
1628    #[serde(default, skip_serializing_if = "Option::is_none")]
1629    pub user_ids: Option<Vec<String>>,
1630}
1631
1632/// `UpdateBoardResponseContent`, as the model names it.
1633pub type UpdateBoardResponseContent = Board;
1634
1635/// `UpdateCardRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1636#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1637pub struct UpdateCardRequestContent {
1638    /// `title`.
1639    #[serde(default, skip_serializing_if = "Option::is_none")]
1640    pub title: Option<String>,
1641    /// `description`.
1642    #[serde(default, skip_serializing_if = "Option::is_none")]
1643    pub description: Option<String>,
1644    /// `image`.
1645    #[serde(default, skip_serializing_if = "Option::is_none")]
1646    pub image: Option<String>,
1647    /// `created_at`.
1648    #[serde(default, skip_serializing_if = "Option::is_none")]
1649    pub created_at: Option<DateTime>,
1650}
1651
1652/// `UpdateCardResponseContent`, as the model names it.
1653pub type UpdateCardResponseContent = Card;
1654
1655/// `UpdateColumnRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1656#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1657pub struct UpdateColumnRequestContent {
1658    /// `name`.
1659    #[serde(default, skip_serializing_if = "Option::is_none")]
1660    pub name: Option<String>,
1661    /// `color`.
1662    #[serde(default, skip_serializing_if = "Option::is_none")]
1663    pub color: Option<String>,
1664}
1665
1666/// `UpdateColumnResponseContent`, as the model names it.
1667pub type UpdateColumnResponseContent = Column;
1668
1669/// `UpdateCommentRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1670#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1671pub struct UpdateCommentRequestContent {
1672    /// `body`.
1673    #[serde(
1674        default,
1675        deserialize_with = "crate::types::null_as_default::deserialize"
1676    )]
1677    pub body: String,
1678}
1679
1680/// `UpdateCommentResponseContent`, as the model names it.
1681pub type UpdateCommentResponseContent = Comment;
1682
1683/// `UpdateJoinCodeRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1684#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1685pub struct UpdateJoinCodeRequestContent {
1686    /// `usage_limit`.
1687    #[serde(
1688        default,
1689        deserialize_with = "crate::types::null_as_default::deserialize"
1690    )]
1691    pub usage_limit: i32,
1692}
1693
1694/// `UpdateMyTimezoneRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1695#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1696pub struct UpdateMyTimezoneRequestContent {
1697    /// `timezone_name`.
1698    #[serde(
1699        default,
1700        deserialize_with = "crate::types::null_as_default::deserialize"
1701    )]
1702    pub timezone_name: String,
1703}
1704
1705/// `UpdateNotificationSettingsRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1706#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1707pub struct UpdateNotificationSettingsRequestContent {
1708    /// `bundle_email_frequency`.
1709    #[serde(
1710        default,
1711        deserialize_with = "crate::types::null_as_default::deserialize"
1712    )]
1713    pub bundle_email_frequency: String,
1714}
1715
1716/// `UpdateStepRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1717#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1718pub struct UpdateStepRequestContent {
1719    /// `content`.
1720    #[serde(default, skip_serializing_if = "Option::is_none")]
1721    pub content: Option<String>,
1722    /// `completed`.
1723    #[serde(default, skip_serializing_if = "Option::is_none")]
1724    pub completed: Option<bool>,
1725}
1726
1727/// `UpdateStepResponseContent`, as the model names it.
1728pub type UpdateStepResponseContent = Step;
1729
1730/// `UpdateUserRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1731#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1732pub struct UpdateUserRequestContent {
1733    /// `name`.
1734    #[serde(
1735        default,
1736        deserialize_with = "crate::types::null_as_default::deserialize"
1737    )]
1738    pub name: String,
1739}
1740
1741/// `UpdateUserResponseContent`, as the model names it.
1742pub type UpdateUserResponseContent = User;
1743
1744/// `UpdateUserRoleRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1745#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1746pub struct UpdateUserRoleRequestContent {
1747    /// `role`.
1748    #[serde(
1749        default,
1750        deserialize_with = "crate::types::null_as_default::deserialize"
1751    )]
1752    pub role: String,
1753}
1754
1755/// `UpdateWebhookRequestContent`. Built by hand, so it derives `Default` and takes `..Default::default()`.
1756#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1757pub struct UpdateWebhookRequestContent {
1758    /// `name`.
1759    #[serde(default, skip_serializing_if = "Option::is_none")]
1760    pub name: Option<String>,
1761    /// `subscribed_actions`.
1762    #[serde(default, skip_serializing_if = "Option::is_none")]
1763    pub subscribed_actions: Option<Vec<String>>,
1764}
1765
1766/// `UpdateWebhookResponseContent`, as the model names it.
1767pub type UpdateWebhookResponseContent = Webhook;
1768
1769/// `User`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1770#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1771#[non_exhaustive]
1772pub struct User {
1773    /// `id`.
1774    #[serde(
1775        default,
1776        deserialize_with = "crate::types::null_as_default::deserialize"
1777    )]
1778    pub id: String,
1779    /// `name`.
1780    #[serde(
1781        default,
1782        deserialize_with = "crate::types::null_as_default::deserialize"
1783    )]
1784    pub name: SensitiveString,
1785    /// `role`.
1786    #[serde(
1787        default,
1788        deserialize_with = "crate::types::null_as_default::deserialize"
1789    )]
1790    pub role: String,
1791    /// `active`.
1792    #[serde(
1793        default,
1794        deserialize_with = "crate::types::null_as_default::deserialize"
1795    )]
1796    pub active: bool,
1797    /// `email_address`.
1798    #[serde(
1799        default,
1800        deserialize_with = "crate::types::null_as_default::deserialize"
1801    )]
1802    pub email_address: SensitiveString,
1803    /// `created_at`.
1804    pub created_at: DateTime,
1805    /// `url`.
1806    #[serde(
1807        default,
1808        deserialize_with = "crate::types::null_as_default::deserialize"
1809    )]
1810    pub url: String,
1811    /// `avatar_url`.
1812    #[serde(default, skip_serializing_if = "Option::is_none")]
1813    pub avatar_url: Option<String>,
1814}
1815
1816/// `ValidationErrorResponseContent`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1817#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1818#[non_exhaustive]
1819pub struct ValidationErrorResponseContent {
1820    /// `message`.
1821    #[serde(
1822        default,
1823        deserialize_with = "crate::types::null_as_default::deserialize"
1824    )]
1825    pub message: String,
1826    /// `errors`.
1827    #[serde(default, skip_serializing_if = "Option::is_none")]
1828    pub errors: Option<Vec<String>>,
1829}
1830
1831/// `Webhook`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1832#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1833#[non_exhaustive]
1834pub struct Webhook {
1835    /// `id`.
1836    #[serde(
1837        default,
1838        deserialize_with = "crate::types::null_as_default::deserialize"
1839    )]
1840    pub id: String,
1841    /// `name`.
1842    #[serde(
1843        default,
1844        deserialize_with = "crate::types::null_as_default::deserialize"
1845    )]
1846    pub name: String,
1847    /// `payload_url`.
1848    #[serde(
1849        default,
1850        deserialize_with = "crate::types::null_as_default::deserialize"
1851    )]
1852    pub payload_url: String,
1853    /// `url`.
1854    #[serde(
1855        default,
1856        deserialize_with = "crate::types::null_as_default::deserialize"
1857    )]
1858    pub url: String,
1859    /// `subscribed_actions`.
1860    #[serde(
1861        default,
1862        deserialize_with = "crate::types::null_as_default::deserialize"
1863    )]
1864    pub subscribed_actions: Vec<String>,
1865    /// `signing_secret`.
1866    #[serde(
1867        default,
1868        deserialize_with = "crate::types::null_as_default::deserialize"
1869    )]
1870    pub signing_secret: SensitiveString,
1871    /// `active`.
1872    #[serde(
1873        default,
1874        deserialize_with = "crate::types::null_as_default::deserialize"
1875    )]
1876    pub active: bool,
1877    /// `created_at`.
1878    pub created_at: DateTime,
1879    /// `updated_at`.
1880    #[serde(default, skip_serializing_if = "Option::is_none")]
1881    pub updated_at: Option<DateTime>,
1882    /// `board`.
1883    #[serde(default, skip_serializing_if = "Option::is_none")]
1884    pub board: Option<Board>,
1885}
1886
1887/// `WebhookDelivery`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1888#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1889#[non_exhaustive]
1890pub struct WebhookDelivery {
1891    /// `id`.
1892    #[serde(
1893        default,
1894        deserialize_with = "crate::types::null_as_default::deserialize"
1895    )]
1896    pub id: String,
1897    /// `state`.
1898    #[serde(
1899        default,
1900        deserialize_with = "crate::types::null_as_default::deserialize"
1901    )]
1902    pub state: String,
1903    /// `created_at`.
1904    pub created_at: DateTime,
1905    /// `updated_at`.
1906    pub updated_at: DateTime,
1907    /// `request`.
1908    #[serde(default, skip_serializing_if = "Option::is_none")]
1909    pub request: Option<WebhookDeliveryRequest>,
1910    /// `response`.
1911    #[serde(default, skip_serializing_if = "Option::is_none")]
1912    pub response: Option<WebhookDeliveryResponse>,
1913    /// `event`.
1914    #[serde(default, skip_serializing_if = "Option::is_none")]
1915    pub event: Option<WebhookDeliveryEvent>,
1916}
1917
1918/// `WebhookDeliveryEvent`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1919#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1920#[non_exhaustive]
1921pub struct WebhookDeliveryEvent {
1922    /// `id`.
1923    #[serde(
1924        default,
1925        deserialize_with = "crate::types::null_as_default::deserialize"
1926    )]
1927    pub id: String,
1928    /// `action`.
1929    #[serde(
1930        default,
1931        deserialize_with = "crate::types::null_as_default::deserialize"
1932    )]
1933    pub action: String,
1934    /// `created_at`.
1935    pub created_at: DateTime,
1936    /// `creator`.
1937    #[serde(default, skip_serializing_if = "Option::is_none")]
1938    pub creator: Option<WebhookDeliveryEventCreator>,
1939    /// `eventable`.
1940    #[serde(default, skip_serializing_if = "Option::is_none")]
1941    pub eventable: Option<WebhookDeliveryEventEventable>,
1942}
1943
1944/// `WebhookDeliveryEventCreator`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1945#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1946#[non_exhaustive]
1947pub struct WebhookDeliveryEventCreator {
1948    /// `id`.
1949    #[serde(
1950        default,
1951        deserialize_with = "crate::types::null_as_default::deserialize"
1952    )]
1953    pub id: String,
1954    /// `name`.
1955    #[serde(
1956        default,
1957        deserialize_with = "crate::types::null_as_default::deserialize"
1958    )]
1959    pub name: SensitiveString,
1960}
1961
1962/// `WebhookDeliveryEventEventable`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1963#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1964#[non_exhaustive]
1965pub struct WebhookDeliveryEventEventable {
1966    /// `type`.
1967    #[serde(
1968        default,
1969        deserialize_with = "crate::types::null_as_default::deserialize"
1970    )]
1971    pub r#type: String,
1972    /// `id`.
1973    #[serde(
1974        default,
1975        deserialize_with = "crate::types::null_as_default::deserialize"
1976    )]
1977    pub id: String,
1978    /// `url`.
1979    #[serde(
1980        default,
1981        deserialize_with = "crate::types::null_as_default::deserialize"
1982    )]
1983    pub url: String,
1984}
1985
1986/// `WebhookDeliveryRequest`, 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 WebhookDeliveryRequest {
1990    /// `headers`.
1991    #[serde(default, skip_serializing_if = "Option::is_none")]
1992    pub headers: Option<StringMap>,
1993}
1994
1995/// `WebhookDeliveryResponse`, as Fizzy sends it. Read-only, so a field added later is not a breaking change.
1996#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
1997#[non_exhaustive]
1998pub struct WebhookDeliveryResponse {
1999    /// `code`.
2000    #[serde(default, skip_serializing_if = "Option::is_none")]
2001    pub code: Option<i32>,
2002    /// `error`.
2003    #[serde(default, skip_serializing_if = "Option::is_none")]
2004    pub error: Option<String>,
2005}