slack_chat_api/
types.rs

1//! The data types sent to and returned from the API client.
2use schemars::JsonSchema;
3use serde::{Deserialize, Serialize};
4
5#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
6pub struct Blocks {
7    #[serde(
8        default,
9        skip_serializing_if = "String::is_empty",
10        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
11        rename = "type"
12    )]
13    pub type_: String,
14}
15
16#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
17pub struct Fields {}
18
19#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
20pub struct Icons {
21    #[serde(
22        default,
23        skip_serializing_if = "String::is_empty",
24        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
25    )]
26    pub image_36: String,
27    #[serde(
28        default,
29        skip_serializing_if = "String::is_empty",
30        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
31    )]
32    pub image_48: String,
33    #[serde(
34        default,
35        skip_serializing_if = "String::is_empty",
36        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
37    )]
38    pub image_72: String,
39}
40
41#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
42pub struct ObjsBotProfile {
43    #[serde(
44        default,
45        skip_serializing_if = "String::is_empty",
46        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
47    )]
48    pub app_id: String,
49    #[serde(
50        default,
51        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
52    )]
53    pub deleted: bool,
54    pub icons: Icons,
55    #[serde(
56        default,
57        skip_serializing_if = "String::is_empty",
58        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
59    )]
60    pub id: String,
61    #[serde(
62        default,
63        skip_serializing_if = "String::is_empty",
64        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
65    )]
66    pub name: String,
67    #[serde(
68        default,
69        skip_serializing_if = "String::is_empty",
70        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
71    )]
72    pub team_id: String,
73    #[serde(
74        default,
75        skip_serializing_if = "crate::utils::zero_i64",
76        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
77    )]
78    pub updated: i64,
79}
80
81/// All of the following types are flattened into one object:
82///
83/// - `ObjsMessage`
84/// - `serde_json::Value`
85///
86#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
87pub struct LatestAnyOf {
88    #[serde(flatten)]
89    pub objs_message: ObjsMessage,
90    #[serde(flatten)]
91    pub value: serde_json::Value,
92}
93
94#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
95pub struct Topic {
96    #[serde(
97        default,
98        skip_serializing_if = "String::is_empty",
99        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
100    )]
101    pub creator: String,
102    #[serde(
103        default,
104        skip_serializing_if = "crate::utils::zero_i64",
105        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
106    )]
107    pub last_set: i64,
108    #[serde(
109        default,
110        skip_serializing_if = "String::is_empty",
111        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
112    )]
113    pub value: String,
114}
115
116#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
117pub struct ObjsChannel {
118    #[serde(
119        default,
120        skip_serializing_if = "String::is_empty",
121        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
122    )]
123    pub accepted_user: String,
124    #[serde(
125        default,
126        skip_serializing_if = "crate::utils::zero_i64",
127        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
128    )]
129    pub created: i64,
130    #[serde(
131        default,
132        skip_serializing_if = "String::is_empty",
133        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
134    )]
135    pub creator: String,
136    #[serde(
137        default,
138        skip_serializing_if = "String::is_empty",
139        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
140    )]
141    pub id: String,
142    #[serde(
143        default,
144        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
145    )]
146    pub is_archived: bool,
147    #[serde(
148        default,
149        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
150    )]
151    pub is_channel: bool,
152    #[serde(
153        default,
154        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
155    )]
156    pub is_frozen: bool,
157    #[serde(
158        default,
159        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
160    )]
161    pub is_general: bool,
162    #[serde(
163        default,
164        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
165    )]
166    pub is_member: bool,
167    #[serde(
168        default,
169        skip_serializing_if = "crate::utils::zero_i64",
170        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
171    )]
172    pub is_moved: i64,
173    #[serde(
174        default,
175        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
176    )]
177    pub is_mpim: bool,
178    #[serde(
179        default,
180        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
181    )]
182    pub is_non_threadable: bool,
183    #[serde(
184        default,
185        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
186    )]
187    pub is_org_shared: bool,
188    #[serde(
189        default,
190        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
191    )]
192    pub is_pending_ext_shared: bool,
193    #[serde(
194        default,
195        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
196    )]
197    pub is_private: bool,
198    #[serde(
199        default,
200        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
201    )]
202    pub is_read_only: bool,
203    #[serde(
204        default,
205        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
206    )]
207    pub is_shared: bool,
208    #[serde(
209        default,
210        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
211    )]
212    pub is_thread_only: bool,
213    #[serde(
214        default,
215        skip_serializing_if = "String::is_empty",
216        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
217    )]
218    pub last_read: String,
219    #[serde(
220        default,
221        skip_serializing_if = "Vec::is_empty",
222        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
223    )]
224    pub latest: Vec<LatestAnyOf>,
225    #[serde(
226        default,
227        skip_serializing_if = "Vec::is_empty",
228        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
229    )]
230    pub members: Vec<String>,
231    #[serde(
232        default,
233        skip_serializing_if = "String::is_empty",
234        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
235    )]
236    pub name: String,
237    #[serde(
238        default,
239        skip_serializing_if = "String::is_empty",
240        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
241    )]
242    pub name_normalized: String,
243    #[serde(
244        default,
245        skip_serializing_if = "crate::utils::zero_i64",
246        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
247    )]
248    pub num_members: i64,
249    #[serde(
250        default,
251        skip_serializing_if = "Vec::is_empty",
252        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
253    )]
254    pub pending_shared: Vec<String>,
255    #[serde(
256        default,
257        skip_serializing_if = "Vec::is_empty",
258        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
259    )]
260    pub previous_names: Vec<String>,
261    #[serde(
262        default,
263        skip_serializing_if = "crate::utils::zero_f64",
264        deserialize_with = "crate::utils::deserialize_null_f64::deserialize"
265    )]
266    pub priority: f64,
267    pub purpose: Topic,
268    pub topic: Topic,
269    #[serde(
270        default,
271        skip_serializing_if = "crate::utils::zero_i64",
272        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
273    )]
274    pub unlinked: i64,
275    #[serde(
276        default,
277        skip_serializing_if = "crate::utils::zero_i64",
278        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
279    )]
280    pub unread_count: i64,
281    #[serde(
282        default,
283        skip_serializing_if = "crate::utils::zero_i64",
284        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
285    )]
286    pub unread_count_display: i64,
287}
288
289#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
290pub struct ObjsComment {
291    #[serde(
292        default,
293        skip_serializing_if = "String::is_empty",
294        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
295    )]
296    pub comment: String,
297    #[serde(
298        default,
299        skip_serializing_if = "crate::utils::zero_i64",
300        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
301    )]
302    pub created: i64,
303    #[serde(
304        default,
305        skip_serializing_if = "String::is_empty",
306        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
307    )]
308    pub id: String,
309    #[serde(
310        default,
311        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
312    )]
313    pub is_intro: bool,
314    #[serde(
315        default,
316        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
317    )]
318    pub is_starred: bool,
319    #[serde(
320        default,
321        skip_serializing_if = "crate::utils::zero_i64",
322        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
323    )]
324    pub num_stars: i64,
325    #[serde(default, skip_serializing_if = "Option::is_none")]
326    pub pinned_info: Option<Fields>,
327    #[serde(
328        default,
329        skip_serializing_if = "Vec::is_empty",
330        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
331    )]
332    pub pinned_to: Vec<String>,
333    #[serde(
334        default,
335        skip_serializing_if = "Vec::is_empty",
336        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
337    )]
338    pub reactions: Vec<ObjsReaction>,
339    #[serde(
340        default,
341        skip_serializing_if = "crate::utils::zero_i64",
342        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
343    )]
344    pub timestamp: i64,
345    #[serde(
346        default,
347        skip_serializing_if = "String::is_empty",
348        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
349    )]
350    pub user: String,
351}
352
353#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
354pub struct DisplayCounts {
355    #[serde(
356        default,
357        skip_serializing_if = "crate::utils::zero_i64",
358        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
359    )]
360    pub display_counts: i64,
361    #[serde(
362        default,
363        skip_serializing_if = "crate::utils::zero_i64",
364        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
365    )]
366    pub guest_counts: i64,
367}
368
369/// All of the following types are flattened into one object:
370///
371/// - `String`
372/// - `serde_json::Value`
373///
374#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
375pub struct ParentConversationAnyOf {
376    #[serde(flatten)]
377    pub string: String,
378    #[serde(flatten)]
379    pub value: serde_json::Value,
380}
381
382#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
383pub struct Shares {
384    #[serde(
385        default,
386        skip_serializing_if = "String::is_empty",
387        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
388    )]
389    pub accepted_user: String,
390    #[serde(
391        default,
392        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
393    )]
394    pub is_active: bool,
395    pub team: ObjsTeam,
396    #[serde(
397        default,
398        skip_serializing_if = "String::is_empty",
399        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
400    )]
401    pub user: String,
402}
403
404#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
405pub struct ObjsConversation {
406    #[serde(
407        default,
408        skip_serializing_if = "String::is_empty",
409        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
410    )]
411    pub accepted_user: String,
412    #[serde(
413        default,
414        skip_serializing_if = "Vec::is_empty",
415        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
416    )]
417    pub connected_team_ids: Vec<String>,
418    #[serde(
419        default,
420        skip_serializing_if = "String::is_empty",
421        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
422    )]
423    pub conversation_host_id: String,
424    #[serde(
425        default,
426        skip_serializing_if = "crate::utils::zero_i64",
427        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
428    )]
429    pub created: i64,
430    #[serde(
431        default,
432        skip_serializing_if = "String::is_empty",
433        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
434    )]
435    pub creator: String,
436    #[serde(default, skip_serializing_if = "Option::is_none")]
437    pub display_counts: Option<DisplayCounts>,
438    #[serde(
439        default,
440        skip_serializing_if = "String::is_empty",
441        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
442    )]
443    pub enterprise_id: String,
444    #[serde(
445        default,
446        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
447    )]
448    pub has_pins: bool,
449    #[serde(
450        default,
451        skip_serializing_if = "String::is_empty",
452        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
453    )]
454    pub id: String,
455    #[serde(
456        default,
457        skip_serializing_if = "Vec::is_empty",
458        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
459    )]
460    pub internal_team_ids: Vec<String>,
461    #[serde(
462        default,
463        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
464    )]
465    pub is_archived: bool,
466    #[serde(
467        default,
468        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
469    )]
470    pub is_channel: bool,
471    #[serde(
472        default,
473        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
474    )]
475    pub is_ext_shared: bool,
476    #[serde(
477        default,
478        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
479    )]
480    pub is_frozen: bool,
481    #[serde(
482        default,
483        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
484    )]
485    pub is_general: bool,
486    #[serde(
487        default,
488        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
489    )]
490    pub is_global_shared: bool,
491    #[serde(
492        default,
493        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
494    )]
495    pub is_group: bool,
496    #[serde(
497        default,
498        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
499    )]
500    pub is_im: bool,
501    #[serde(
502        default,
503        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
504    )]
505    pub is_member: bool,
506    #[serde(
507        default,
508        skip_serializing_if = "crate::utils::zero_i64",
509        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
510    )]
511    pub is_moved: i64,
512    #[serde(
513        default,
514        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
515    )]
516    pub is_mpim: bool,
517    #[serde(
518        default,
519        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
520    )]
521    pub is_non_threadable: bool,
522    #[serde(
523        default,
524        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
525    )]
526    pub is_open: bool,
527    #[serde(
528        default,
529        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
530    )]
531    pub is_org_default: bool,
532    #[serde(
533        default,
534        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
535    )]
536    pub is_org_mandatory: bool,
537    #[serde(
538        default,
539        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
540    )]
541    pub is_org_shared: bool,
542    #[serde(
543        default,
544        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
545    )]
546    pub is_pending_ext_shared: bool,
547    #[serde(
548        default,
549        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
550    )]
551    pub is_private: bool,
552    #[serde(
553        default,
554        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
555    )]
556    pub is_read_only: bool,
557    #[serde(
558        default,
559        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
560    )]
561    pub is_shared: bool,
562    #[serde(
563        default,
564        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
565    )]
566    pub is_starred: bool,
567    #[serde(
568        default,
569        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
570    )]
571    pub is_thread_only: bool,
572    #[serde(
573        default,
574        skip_serializing_if = "String::is_empty",
575        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
576    )]
577    pub last_read: String,
578    #[serde(
579        default,
580        skip_serializing_if = "Vec::is_empty",
581        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
582    )]
583    pub latest: Vec<LatestAnyOf>,
584    #[serde(
585        default,
586        skip_serializing_if = "Vec::is_empty",
587        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
588    )]
589    pub members: Vec<String>,
590    #[serde(
591        default,
592        skip_serializing_if = "String::is_empty",
593        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
594    )]
595    pub name: String,
596    #[serde(
597        default,
598        skip_serializing_if = "String::is_empty",
599        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
600    )]
601    pub name_normalized: String,
602    #[serde(
603        default,
604        skip_serializing_if = "crate::utils::zero_i64",
605        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
606    )]
607    pub num_members: i64,
608    #[serde(
609        default,
610        skip_serializing_if = "Vec::is_empty",
611        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
612    )]
613    pub parent_conversation: Vec<ParentConversationAnyOf>,
614    #[serde(
615        default,
616        skip_serializing_if = "Vec::is_empty",
617        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
618    )]
619    pub pending_connected_team_ids: Vec<String>,
620    #[serde(
621        default,
622        skip_serializing_if = "Vec::is_empty",
623        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
624    )]
625    pub pending_shared: Vec<String>,
626    #[serde(
627        default,
628        skip_serializing_if = "crate::utils::zero_i64",
629        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
630    )]
631    pub pin_count: i64,
632    #[serde(
633        default,
634        skip_serializing_if = "Vec::is_empty",
635        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
636    )]
637    pub previous_names: Vec<String>,
638    #[serde(
639        default,
640        skip_serializing_if = "crate::utils::zero_f64",
641        deserialize_with = "crate::utils::deserialize_null_f64::deserialize"
642    )]
643    pub priority: f64,
644    pub purpose: Topic,
645    #[serde(
646        default,
647        skip_serializing_if = "Vec::is_empty",
648        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
649    )]
650    pub shared_team_ids: Vec<String>,
651    #[serde(
652        default,
653        skip_serializing_if = "Vec::is_empty",
654        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
655    )]
656    pub shares: Vec<Shares>,
657    #[serde(
658        default,
659        skip_serializing_if = "crate::utils::zero_i64",
660        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
661    )]
662    pub timezone_count: i64,
663    pub topic: Topic,
664    #[serde(
665        default,
666        skip_serializing_if = "crate::utils::zero_i64",
667        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
668    )]
669    pub unlinked: i64,
670    #[serde(
671        default,
672        skip_serializing_if = "crate::utils::zero_i64",
673        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
674    )]
675    pub unread_count: i64,
676    #[serde(
677        default,
678        skip_serializing_if = "crate::utils::zero_i64",
679        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
680    )]
681    pub unread_count_display: i64,
682    #[serde(
683        default,
684        skip_serializing_if = "String::is_empty",
685        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
686    )]
687    pub use_case: String,
688    #[serde(
689        default,
690        skip_serializing_if = "String::is_empty",
691        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
692    )]
693    pub user: String,
694    #[serde(
695        default,
696        skip_serializing_if = "crate::utils::zero_i64",
697        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
698    )]
699    pub version: i64,
700}
701
702#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
703pub struct ConversationMpimObject {
704    #[serde(
705        default,
706        skip_serializing_if = "String::is_empty",
707        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
708    )]
709    pub accepted_user: String,
710    #[serde(
711        default,
712        skip_serializing_if = "Vec::is_empty",
713        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
714    )]
715    pub connected_team_ids: Vec<String>,
716    #[serde(
717        default,
718        skip_serializing_if = "String::is_empty",
719        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
720    )]
721    pub conversation_host_id: String,
722    #[serde(
723        default,
724        skip_serializing_if = "crate::utils::zero_i64",
725        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
726    )]
727    pub created: i64,
728    #[serde(
729        default,
730        skip_serializing_if = "String::is_empty",
731        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
732    )]
733    pub creator: String,
734    #[serde(default, skip_serializing_if = "Option::is_none")]
735    pub display_counts: Option<DisplayCounts>,
736    #[serde(
737        default,
738        skip_serializing_if = "String::is_empty",
739        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
740    )]
741    pub id: String,
742    #[serde(
743        default,
744        skip_serializing_if = "Vec::is_empty",
745        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
746    )]
747    pub internal_team_ids: Vec<String>,
748    #[serde(
749        default,
750        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
751    )]
752    pub is_archived: bool,
753    #[serde(
754        default,
755        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
756    )]
757    pub is_channel: bool,
758    #[serde(
759        default,
760        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
761    )]
762    pub is_ext_shared: bool,
763    #[serde(
764        default,
765        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
766    )]
767    pub is_frozen: bool,
768    #[serde(
769        default,
770        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
771    )]
772    pub is_general: bool,
773    #[serde(
774        default,
775        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
776    )]
777    pub is_group: bool,
778    #[serde(
779        default,
780        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
781    )]
782    pub is_im: bool,
783    #[serde(
784        default,
785        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
786    )]
787    pub is_member: bool,
788    #[serde(
789        default,
790        skip_serializing_if = "crate::utils::zero_i64",
791        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
792    )]
793    pub is_moved: i64,
794    #[serde(
795        default,
796        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
797    )]
798    pub is_mpim: bool,
799    #[serde(
800        default,
801        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
802    )]
803    pub is_non_threadable: bool,
804    #[serde(
805        default,
806        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
807    )]
808    pub is_open: bool,
809    #[serde(
810        default,
811        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
812    )]
813    pub is_org_shared: bool,
814    #[serde(
815        default,
816        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
817    )]
818    pub is_pending_ext_shared: bool,
819    #[serde(
820        default,
821        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
822    )]
823    pub is_private: bool,
824    #[serde(
825        default,
826        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
827    )]
828    pub is_read_only: bool,
829    #[serde(
830        default,
831        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
832    )]
833    pub is_shared: bool,
834    #[serde(
835        default,
836        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
837    )]
838    pub is_starred: bool,
839    #[serde(
840        default,
841        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
842    )]
843    pub is_thread_only: bool,
844    #[serde(
845        default,
846        skip_serializing_if = "String::is_empty",
847        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
848    )]
849    pub last_read: String,
850    #[serde(
851        default,
852        skip_serializing_if = "Vec::is_empty",
853        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
854    )]
855    pub latest: Vec<LatestAnyOf>,
856    #[serde(
857        default,
858        skip_serializing_if = "Vec::is_empty",
859        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
860    )]
861    pub members: Vec<String>,
862    #[serde(
863        default,
864        skip_serializing_if = "String::is_empty",
865        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
866    )]
867    pub name: String,
868    #[serde(
869        default,
870        skip_serializing_if = "String::is_empty",
871        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
872    )]
873    pub name_normalized: String,
874    #[serde(
875        default,
876        skip_serializing_if = "crate::utils::zero_i64",
877        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
878    )]
879    pub num_members: i64,
880    #[serde(
881        default,
882        skip_serializing_if = "Vec::is_empty",
883        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
884    )]
885    pub parent_conversation: Vec<ParentConversationAnyOf>,
886    #[serde(
887        default,
888        skip_serializing_if = "Vec::is_empty",
889        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
890    )]
891    pub pending_connected_team_ids: Vec<String>,
892    #[serde(
893        default,
894        skip_serializing_if = "Vec::is_empty",
895        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
896    )]
897    pub pending_shared: Vec<String>,
898    #[serde(
899        default,
900        skip_serializing_if = "crate::utils::zero_i64",
901        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
902    )]
903    pub pin_count: i64,
904    #[serde(
905        default,
906        skip_serializing_if = "Vec::is_empty",
907        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
908    )]
909    pub previous_names: Vec<String>,
910    #[serde(
911        default,
912        skip_serializing_if = "crate::utils::zero_f64",
913        deserialize_with = "crate::utils::deserialize_null_f64::deserialize"
914    )]
915    pub priority: f64,
916    pub purpose: Topic,
917    #[serde(
918        default,
919        skip_serializing_if = "Vec::is_empty",
920        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
921    )]
922    pub shared_team_ids: Vec<String>,
923    #[serde(
924        default,
925        skip_serializing_if = "Vec::is_empty",
926        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
927    )]
928    pub shares: Vec<Shares>,
929    #[serde(
930        default,
931        skip_serializing_if = "crate::utils::zero_i64",
932        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
933    )]
934    pub timezone_count: i64,
935    pub topic: Topic,
936    #[serde(
937        default,
938        skip_serializing_if = "crate::utils::zero_i64",
939        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
940    )]
941    pub unlinked: i64,
942    #[serde(
943        default,
944        skip_serializing_if = "crate::utils::zero_i64",
945        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
946    )]
947    pub unread_count: i64,
948    #[serde(
949        default,
950        skip_serializing_if = "crate::utils::zero_i64",
951        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
952    )]
953    pub unread_count_display: i64,
954    #[serde(
955        default,
956        skip_serializing_if = "String::is_empty",
957        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
958    )]
959    pub user: String,
960    #[serde(
961        default,
962        skip_serializing_if = "crate::utils::zero_i64",
963        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
964    )]
965    pub version: i64,
966}
967
968#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
969pub struct ConversationImChannelObjectFromConversationsMethodsShares {
970    #[serde(
971        default,
972        skip_serializing_if = "crate::utils::zero_i64",
973        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
974    )]
975    pub date_create: i64,
976    #[serde(
977        default,
978        skip_serializing_if = "String::is_empty",
979        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
980    )]
981    pub id: String,
982    #[serde(
983        default,
984        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
985    )]
986    pub is_active: bool,
987    #[serde(
988        default,
989        skip_serializing_if = "String::is_empty",
990        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
991    )]
992    pub name: String,
993    pub team: ObjsTeam,
994}
995
996#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
997pub struct ConversationImChannelObjectFromConversationsMethods {
998    #[serde(
999        default,
1000        skip_serializing_if = "crate::utils::zero_i64",
1001        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1002    )]
1003    pub created: i64,
1004    #[serde(
1005        default,
1006        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1007    )]
1008    pub has_pins: bool,
1009    #[serde(
1010        default,
1011        skip_serializing_if = "String::is_empty",
1012        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1013    )]
1014    pub id: String,
1015    #[serde(
1016        default,
1017        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1018    )]
1019    pub is_archived: bool,
1020    #[serde(
1021        default,
1022        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1023    )]
1024    pub is_ext_shared: bool,
1025    #[serde(
1026        default,
1027        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1028    )]
1029    pub is_frozen: bool,
1030    #[serde(
1031        default,
1032        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1033    )]
1034    pub is_im: bool,
1035    #[serde(
1036        default,
1037        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1038    )]
1039    pub is_open: bool,
1040    #[serde(
1041        default,
1042        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1043    )]
1044    pub is_org_shared: bool,
1045    #[serde(
1046        default,
1047        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1048    )]
1049    pub is_shared: bool,
1050    #[serde(
1051        default,
1052        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1053    )]
1054    pub is_starred: bool,
1055    #[serde(
1056        default,
1057        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1058    )]
1059    pub is_user_deleted: bool,
1060    #[serde(
1061        default,
1062        skip_serializing_if = "String::is_empty",
1063        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1064    )]
1065    pub last_read: String,
1066    #[serde(
1067        default,
1068        skip_serializing_if = "Vec::is_empty",
1069        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
1070    )]
1071    pub latest: Vec<LatestAnyOf>,
1072    #[serde(
1073        default,
1074        skip_serializing_if = "Vec::is_empty",
1075        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
1076    )]
1077    pub parent_conversation: Vec<ParentConversationAnyOf>,
1078    #[serde(
1079        default,
1080        skip_serializing_if = "crate::utils::zero_i64",
1081        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1082    )]
1083    pub pin_count: i64,
1084    #[serde(
1085        default,
1086        skip_serializing_if = "crate::utils::zero_f64",
1087        deserialize_with = "crate::utils::deserialize_null_f64::deserialize"
1088    )]
1089    pub priority: f64,
1090    #[serde(
1091        default,
1092        skip_serializing_if = "Vec::is_empty",
1093        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
1094    )]
1095    pub shares: Vec<ConversationImChannelObjectFromConversationsMethodsShares>,
1096    #[serde(
1097        default,
1098        skip_serializing_if = "crate::utils::zero_i64",
1099        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1100    )]
1101    pub unread_count: i64,
1102    #[serde(
1103        default,
1104        skip_serializing_if = "crate::utils::zero_i64",
1105        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1106    )]
1107    pub unread_count_display: i64,
1108    #[serde(
1109        default,
1110        skip_serializing_if = "String::is_empty",
1111        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1112    )]
1113    pub user: String,
1114    #[serde(
1115        default,
1116        skip_serializing_if = "crate::utils::zero_i64",
1117        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1118    )]
1119    pub version: i64,
1120}
1121
1122/// All of the following types are flattened into one object:
1123///
1124/// - `ObjsConversation`
1125/// - `ConversationMpimObject`
1126/// - `ConversationImChannelObjectFromConversationsMethods`
1127///
1128#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
1129pub struct ObjsConversationAnyOf {
1130    #[serde(flatten)]
1131    pub objs_conversation: ObjsConversation,
1132    #[serde(flatten)]
1133    pub conversation_mpim_object: ConversationMpimObject,
1134    #[serde(flatten)]
1135    pub conversation_im_channel_object_from_conversations_methods:
1136        ConversationImChannelObjectFromConversationsMethods,
1137}
1138
1139#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
1140pub struct ObjsEnterpriseUser {
1141    #[serde(
1142        default,
1143        skip_serializing_if = "String::is_empty",
1144        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1145    )]
1146    pub enterprise_id: String,
1147    #[serde(
1148        default,
1149        skip_serializing_if = "String::is_empty",
1150        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1151    )]
1152    pub enterprise_name: String,
1153    #[serde(
1154        default,
1155        skip_serializing_if = "String::is_empty",
1156        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1157    )]
1158    pub id: String,
1159    #[serde(
1160        default,
1161        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1162    )]
1163    pub is_admin: bool,
1164    #[serde(
1165        default,
1166        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1167    )]
1168    pub is_owner: bool,
1169    #[serde(
1170        default,
1171        skip_serializing_if = "Vec::is_empty",
1172        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
1173    )]
1174    pub teams: Vec<String>,
1175}
1176
1177#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
1178pub struct Current {
1179    #[serde(
1180        default,
1181        skip_serializing_if = "crate::utils::zero_i64",
1182        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1183    )]
1184    pub date_started: i64,
1185    #[serde(
1186        default,
1187        skip_serializing_if = "String::is_empty",
1188        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1189    )]
1190    pub team_id: String,
1191}
1192
1193#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
1194pub struct ExternalOrgMigrations {
1195    #[serde(
1196        default,
1197        skip_serializing_if = "Vec::is_empty",
1198        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
1199    )]
1200    pub current: Vec<Current>,
1201    #[serde(
1202        default,
1203        skip_serializing_if = "crate::utils::zero_i64",
1204        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1205    )]
1206    pub date_updated: i64,
1207}
1208
1209#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
1210pub struct ObjsFileShares {
1211    #[serde(default, skip_serializing_if = "Option::is_none")]
1212    pub private: Option<serde_json::Value>,
1213    #[serde(default, skip_serializing_if = "Option::is_none")]
1214    pub public: Option<serde_json::Value>,
1215}
1216
1217#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
1218pub struct ObjsFile {
1219    #[serde(
1220        default,
1221        skip_serializing_if = "Vec::is_empty",
1222        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
1223    )]
1224    pub channels: Vec<String>,
1225    #[serde(
1226        default,
1227        skip_serializing_if = "crate::utils::zero_i64",
1228        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1229    )]
1230    pub comments_count: i64,
1231    #[serde(
1232        default,
1233        skip_serializing_if = "crate::utils::zero_i64",
1234        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1235    )]
1236    pub created: i64,
1237    #[serde(
1238        default,
1239        skip_serializing_if = "crate::utils::zero_i64",
1240        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1241    )]
1242    pub date_delete: i64,
1243    #[serde(
1244        default,
1245        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1246    )]
1247    pub display_as_bot: bool,
1248    #[serde(
1249        default,
1250        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1251    )]
1252    pub editable: bool,
1253    #[serde(
1254        default,
1255        skip_serializing_if = "String::is_empty",
1256        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1257    )]
1258    pub editor: String,
1259    #[serde(
1260        default,
1261        skip_serializing_if = "String::is_empty",
1262        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1263    )]
1264    pub external_id: String,
1265    #[serde(
1266        default,
1267        skip_serializing_if = "String::is_empty",
1268        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1269    )]
1270    pub external_type: String,
1271    #[serde(
1272        default,
1273        skip_serializing_if = "String::is_empty",
1274        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1275    )]
1276    pub external_url: String,
1277    #[serde(
1278        default,
1279        skip_serializing_if = "String::is_empty",
1280        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1281    )]
1282    pub filetype: String,
1283    #[serde(
1284        default,
1285        skip_serializing_if = "Vec::is_empty",
1286        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
1287    )]
1288    pub groups: Vec<String>,
1289    #[serde(
1290        default,
1291        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1292    )]
1293    pub has_rich_preview: bool,
1294    #[serde(
1295        default,
1296        skip_serializing_if = "String::is_empty",
1297        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1298    )]
1299    pub id: String,
1300    #[serde(
1301        default,
1302        skip_serializing_if = "crate::utils::zero_i64",
1303        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1304    )]
1305    pub image_exif_rotation: i64,
1306    #[serde(
1307        default,
1308        skip_serializing_if = "Vec::is_empty",
1309        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
1310    )]
1311    pub ims: Vec<String>,
1312    #[serde(
1313        default,
1314        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1315    )]
1316    pub is_external: bool,
1317    #[serde(
1318        default,
1319        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1320    )]
1321    pub is_public: bool,
1322    #[serde(
1323        default,
1324        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1325    )]
1326    pub is_starred: bool,
1327    #[serde(
1328        default,
1329        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1330    )]
1331    pub is_tombstoned: bool,
1332    #[serde(
1333        default,
1334        skip_serializing_if = "String::is_empty",
1335        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1336    )]
1337    pub last_editor: String,
1338    #[serde(
1339        default,
1340        skip_serializing_if = "String::is_empty",
1341        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1342    )]
1343    pub mimetype: String,
1344    #[serde(
1345        default,
1346        skip_serializing_if = "String::is_empty",
1347        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1348    )]
1349    pub mode: String,
1350    #[serde(
1351        default,
1352        skip_serializing_if = "String::is_empty",
1353        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1354    )]
1355    pub name: String,
1356    #[serde(
1357        default,
1358        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1359    )]
1360    pub non_owner_editable: bool,
1361    #[serde(
1362        default,
1363        skip_serializing_if = "crate::utils::zero_i64",
1364        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1365    )]
1366    pub num_stars: i64,
1367    #[serde(
1368        default,
1369        skip_serializing_if = "crate::utils::zero_i64",
1370        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1371    )]
1372    pub original_h: i64,
1373    #[serde(
1374        default,
1375        skip_serializing_if = "crate::utils::zero_i64",
1376        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1377    )]
1378    pub original_w: i64,
1379    #[serde(
1380        default,
1381        skip_serializing_if = "String::is_empty",
1382        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1383    )]
1384    pub permalink: String,
1385    #[serde(
1386        default,
1387        skip_serializing_if = "String::is_empty",
1388        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1389    )]
1390    pub permalink_public: String,
1391    #[serde(default, skip_serializing_if = "Option::is_none")]
1392    pub pinned_info: Option<Fields>,
1393    #[serde(
1394        default,
1395        skip_serializing_if = "Vec::is_empty",
1396        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
1397    )]
1398    pub pinned_to: Vec<String>,
1399    #[serde(
1400        default,
1401        skip_serializing_if = "String::is_empty",
1402        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1403    )]
1404    pub pretty_type: String,
1405    #[serde(
1406        default,
1407        skip_serializing_if = "String::is_empty",
1408        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1409    )]
1410    pub preview: String,
1411    #[serde(
1412        default,
1413        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1414    )]
1415    pub public_url_shared: bool,
1416    #[serde(
1417        default,
1418        skip_serializing_if = "Vec::is_empty",
1419        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
1420    )]
1421    pub reactions: Vec<ObjsReaction>,
1422    #[serde(default, skip_serializing_if = "Option::is_none")]
1423    pub shares: Option<ObjsFileShares>,
1424    #[serde(
1425        default,
1426        skip_serializing_if = "crate::utils::zero_i64",
1427        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1428    )]
1429    pub size: i64,
1430    #[serde(
1431        default,
1432        skip_serializing_if = "String::is_empty",
1433        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1434    )]
1435    pub source_team: String,
1436    #[serde(
1437        default,
1438        skip_serializing_if = "String::is_empty",
1439        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1440    )]
1441    pub state: String,
1442    #[serde(
1443        default,
1444        skip_serializing_if = "String::is_empty",
1445        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1446    )]
1447    pub thumb_1024: String,
1448    #[serde(
1449        default,
1450        skip_serializing_if = "crate::utils::zero_i64",
1451        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1452    )]
1453    pub thumb_1024_h: i64,
1454    #[serde(
1455        default,
1456        skip_serializing_if = "crate::utils::zero_i64",
1457        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1458    )]
1459    pub thumb_1024_w: i64,
1460    #[serde(
1461        default,
1462        skip_serializing_if = "String::is_empty",
1463        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1464    )]
1465    pub thumb_160: String,
1466    #[serde(
1467        default,
1468        skip_serializing_if = "String::is_empty",
1469        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1470    )]
1471    pub thumb_360: String,
1472    #[serde(
1473        default,
1474        skip_serializing_if = "crate::utils::zero_i64",
1475        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1476    )]
1477    pub thumb_360_h: i64,
1478    #[serde(
1479        default,
1480        skip_serializing_if = "crate::utils::zero_i64",
1481        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1482    )]
1483    pub thumb_360_w: i64,
1484    #[serde(
1485        default,
1486        skip_serializing_if = "String::is_empty",
1487        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1488    )]
1489    pub thumb_480: String,
1490    #[serde(
1491        default,
1492        skip_serializing_if = "crate::utils::zero_i64",
1493        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1494    )]
1495    pub thumb_480_h: i64,
1496    #[serde(
1497        default,
1498        skip_serializing_if = "crate::utils::zero_i64",
1499        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1500    )]
1501    pub thumb_480_w: i64,
1502    #[serde(
1503        default,
1504        skip_serializing_if = "String::is_empty",
1505        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1506    )]
1507    pub thumb_64: String,
1508    #[serde(
1509        default,
1510        skip_serializing_if = "String::is_empty",
1511        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1512    )]
1513    pub thumb_720: String,
1514    #[serde(
1515        default,
1516        skip_serializing_if = "crate::utils::zero_i64",
1517        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1518    )]
1519    pub thumb_720_h: i64,
1520    #[serde(
1521        default,
1522        skip_serializing_if = "crate::utils::zero_i64",
1523        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1524    )]
1525    pub thumb_720_w: i64,
1526    #[serde(
1527        default,
1528        skip_serializing_if = "String::is_empty",
1529        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1530    )]
1531    pub thumb_80: String,
1532    #[serde(
1533        default,
1534        skip_serializing_if = "String::is_empty",
1535        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1536    )]
1537    pub thumb_800: String,
1538    #[serde(
1539        default,
1540        skip_serializing_if = "crate::utils::zero_i64",
1541        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1542    )]
1543    pub thumb_800_h: i64,
1544    #[serde(
1545        default,
1546        skip_serializing_if = "crate::utils::zero_i64",
1547        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1548    )]
1549    pub thumb_800_w: i64,
1550    #[serde(
1551        default,
1552        skip_serializing_if = "String::is_empty",
1553        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1554    )]
1555    pub thumb_960: String,
1556    #[serde(
1557        default,
1558        skip_serializing_if = "crate::utils::zero_i64",
1559        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1560    )]
1561    pub thumb_960_h: i64,
1562    #[serde(
1563        default,
1564        skip_serializing_if = "crate::utils::zero_i64",
1565        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1566    )]
1567    pub thumb_960_w: i64,
1568    #[serde(
1569        default,
1570        skip_serializing_if = "String::is_empty",
1571        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1572    )]
1573    pub thumb_tiny: String,
1574    #[serde(
1575        default,
1576        skip_serializing_if = "crate::utils::zero_i64",
1577        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1578    )]
1579    pub timestamp: i64,
1580    #[serde(
1581        default,
1582        skip_serializing_if = "String::is_empty",
1583        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1584    )]
1585    pub title: String,
1586    #[serde(
1587        default,
1588        skip_serializing_if = "crate::utils::zero_i64",
1589        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1590    )]
1591    pub updated: i64,
1592    #[serde(
1593        default,
1594        skip_serializing_if = "String::is_empty",
1595        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1596    )]
1597    pub url_private: String,
1598    #[serde(
1599        default,
1600        skip_serializing_if = "String::is_empty",
1601        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1602    )]
1603    pub url_private_download: String,
1604    #[serde(
1605        default,
1606        skip_serializing_if = "String::is_empty",
1607        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1608    )]
1609    pub user: String,
1610    #[serde(
1611        default,
1612        skip_serializing_if = "String::is_empty",
1613        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1614    )]
1615    pub user_team: String,
1616    #[serde(
1617        default,
1618        skip_serializing_if = "String::is_empty",
1619        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1620    )]
1621    pub username: String,
1622}
1623
1624#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
1625pub struct ObjsIcon {
1626    #[serde(
1627        default,
1628        skip_serializing_if = "String::is_empty",
1629        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1630    )]
1631    pub image_102: String,
1632    #[serde(
1633        default,
1634        skip_serializing_if = "String::is_empty",
1635        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1636    )]
1637    pub image_132: String,
1638    #[serde(
1639        default,
1640        skip_serializing_if = "String::is_empty",
1641        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1642    )]
1643    pub image_230: String,
1644    #[serde(
1645        default,
1646        skip_serializing_if = "String::is_empty",
1647        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1648    )]
1649    pub image_34: String,
1650    #[serde(
1651        default,
1652        skip_serializing_if = "String::is_empty",
1653        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1654    )]
1655    pub image_44: String,
1656    #[serde(
1657        default,
1658        skip_serializing_if = "String::is_empty",
1659        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1660    )]
1661    pub image_68: String,
1662    #[serde(
1663        default,
1664        skip_serializing_if = "String::is_empty",
1665        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1666    )]
1667    pub image_88: String,
1668    #[serde(
1669        default,
1670        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1671    )]
1672    pub image_default: bool,
1673}
1674
1675#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
1676pub struct Attachments {
1677    #[serde(
1678        default,
1679        skip_serializing_if = "String::is_empty",
1680        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1681    )]
1682    pub fallback: String,
1683    #[serde(
1684        default,
1685        skip_serializing_if = "crate::utils::zero_i64",
1686        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1687    )]
1688    pub id: i64,
1689    #[serde(
1690        default,
1691        skip_serializing_if = "crate::utils::zero_i64",
1692        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1693    )]
1694    pub image_bytes: i64,
1695    #[serde(
1696        default,
1697        skip_serializing_if = "crate::utils::zero_i64",
1698        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1699    )]
1700    pub image_height: i64,
1701    #[serde(
1702        default,
1703        skip_serializing_if = "String::is_empty",
1704        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1705    )]
1706    pub image_url: String,
1707    #[serde(
1708        default,
1709        skip_serializing_if = "crate::utils::zero_i64",
1710        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1711    )]
1712    pub image_width: i64,
1713}
1714
1715/// All of the following types are flattened into one object:
1716///
1717/// - `String`
1718/// - `serde_json::Value`
1719///
1720#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
1721pub struct BotAnyOf {
1722    #[serde(flatten)]
1723    pub string: String,
1724    #[serde(flatten)]
1725    pub value: serde_json::Value,
1726}
1727
1728#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
1729pub struct ObjsMessageIcons {
1730    #[serde(
1731        default,
1732        skip_serializing_if = "String::is_empty",
1733        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1734    )]
1735    pub emoji: String,
1736    #[serde(
1737        default,
1738        skip_serializing_if = "String::is_empty",
1739        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1740    )]
1741    pub image_64: String,
1742}
1743
1744#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
1745pub struct ObjsMessage {
1746    #[serde(
1747        default,
1748        skip_serializing_if = "Vec::is_empty",
1749        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
1750    )]
1751    pub attachments: Vec<Attachments>,
1752    #[serde(
1753        default,
1754        skip_serializing_if = "Vec::is_empty",
1755        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
1756    )]
1757    pub blocks: Vec<Blocks>,
1758    #[serde(
1759        default,
1760        skip_serializing_if = "Vec::is_empty",
1761        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
1762    )]
1763    pub bot_id: Vec<BotAnyOf>,
1764    #[serde(default, skip_serializing_if = "Option::is_none")]
1765    pub bot_profile: Option<ObjsBotProfile>,
1766    #[serde(
1767        default,
1768        skip_serializing_if = "String::is_empty",
1769        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1770    )]
1771    pub client_msg_id: String,
1772    #[serde(default, skip_serializing_if = "Option::is_none")]
1773    pub comment: Option<ObjsComment>,
1774    #[serde(
1775        default,
1776        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1777    )]
1778    pub display_as_bot: bool,
1779    #[serde(default, skip_serializing_if = "Option::is_none")]
1780    pub file: Option<ObjsFile>,
1781    #[serde(
1782        default,
1783        skip_serializing_if = "Vec::is_empty",
1784        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
1785    )]
1786    pub files: Vec<ObjsFile>,
1787    #[serde(default, skip_serializing_if = "Option::is_none")]
1788    pub icons: Option<ObjsMessageIcons>,
1789    #[serde(
1790        default,
1791        skip_serializing_if = "String::is_empty",
1792        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1793    )]
1794    pub inviter: String,
1795    #[serde(
1796        default,
1797        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1798    )]
1799    pub is_delayed_message: bool,
1800    #[serde(
1801        default,
1802        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1803    )]
1804    pub is_intro: bool,
1805    #[serde(
1806        default,
1807        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1808    )]
1809    pub is_starred: bool,
1810    #[serde(
1811        default,
1812        skip_serializing_if = "String::is_empty",
1813        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1814    )]
1815    pub last_read: String,
1816    #[serde(
1817        default,
1818        skip_serializing_if = "String::is_empty",
1819        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1820    )]
1821    pub latest_reply: String,
1822    #[serde(
1823        default,
1824        skip_serializing_if = "String::is_empty",
1825        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1826    )]
1827    pub name: String,
1828    #[serde(
1829        default,
1830        skip_serializing_if = "String::is_empty",
1831        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1832    )]
1833    pub old_name: String,
1834    #[serde(
1835        default,
1836        skip_serializing_if = "String::is_empty",
1837        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1838    )]
1839    pub parent_user_id: String,
1840    #[serde(
1841        default,
1842        skip_serializing_if = "String::is_empty",
1843        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1844    )]
1845    pub permalink: String,
1846    #[serde(
1847        default,
1848        skip_serializing_if = "Vec::is_empty",
1849        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
1850    )]
1851    pub pinned_to: Vec<String>,
1852    #[serde(
1853        default,
1854        skip_serializing_if = "String::is_empty",
1855        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1856    )]
1857    pub purpose: String,
1858    #[serde(
1859        default,
1860        skip_serializing_if = "Vec::is_empty",
1861        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
1862    )]
1863    pub reactions: Vec<ObjsReaction>,
1864    #[serde(
1865        default,
1866        skip_serializing_if = "crate::utils::zero_i64",
1867        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1868    )]
1869    pub reply_count: i64,
1870    #[serde(
1871        default,
1872        skip_serializing_if = "Vec::is_empty",
1873        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
1874    )]
1875    pub reply_users: Vec<String>,
1876    #[serde(
1877        default,
1878        skip_serializing_if = "crate::utils::zero_i64",
1879        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1880    )]
1881    pub reply_users_count: i64,
1882    #[serde(
1883        default,
1884        skip_serializing_if = "String::is_empty",
1885        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1886    )]
1887    pub source_team: String,
1888    #[serde(
1889        default,
1890        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1891    )]
1892    pub subscribed: bool,
1893    #[serde(
1894        default,
1895        skip_serializing_if = "String::is_empty",
1896        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1897    )]
1898    pub subtype: String,
1899    #[serde(
1900        default,
1901        skip_serializing_if = "String::is_empty",
1902        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1903    )]
1904    pub team: String,
1905    #[serde(
1906        default,
1907        skip_serializing_if = "String::is_empty",
1908        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1909    )]
1910    pub text: String,
1911    #[serde(
1912        default,
1913        skip_serializing_if = "String::is_empty",
1914        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1915    )]
1916    pub thread_ts: String,
1917    #[serde(
1918        default,
1919        skip_serializing_if = "String::is_empty",
1920        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1921    )]
1922    pub topic: String,
1923    #[serde(
1924        default,
1925        skip_serializing_if = "String::is_empty",
1926        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1927    )]
1928    pub ts: String,
1929    #[serde(
1930        default,
1931        skip_serializing_if = "String::is_empty",
1932        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
1933        rename = "type"
1934    )]
1935    pub type_: String,
1936    #[serde(
1937        default,
1938        skip_serializing_if = "crate::utils::zero_i64",
1939        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1940    )]
1941    pub unread_count: i64,
1942    #[serde(
1943        default,
1944        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
1945    )]
1946    pub upload: bool,
1947    #[serde(
1948        default,
1949        skip_serializing_if = "String::is_empty",
1950        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1951    )]
1952    pub user: String,
1953    #[serde(default, skip_serializing_if = "Option::is_none")]
1954    pub user_profile: Option<ObjsUserProfileShort>,
1955    #[serde(
1956        default,
1957        skip_serializing_if = "String::is_empty",
1958        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1959    )]
1960    pub user_team: String,
1961    #[serde(
1962        default,
1963        skip_serializing_if = "String::is_empty",
1964        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
1965    )]
1966    pub username: String,
1967}
1968
1969#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
1970pub struct ObjsPaging {
1971    #[serde(
1972        default,
1973        skip_serializing_if = "crate::utils::zero_i64",
1974        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1975    )]
1976    pub count: i64,
1977    #[serde(
1978        default,
1979        skip_serializing_if = "crate::utils::zero_i64",
1980        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1981    )]
1982    pub page: i64,
1983    #[serde(
1984        default,
1985        skip_serializing_if = "crate::utils::zero_i64",
1986        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1987    )]
1988    pub pages: i64,
1989    #[serde(
1990        default,
1991        skip_serializing_if = "crate::utils::zero_i64",
1992        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1993    )]
1994    pub per_page: i64,
1995    #[serde(
1996        default,
1997        skip_serializing_if = "crate::utils::zero_i64",
1998        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
1999    )]
2000    pub spill: i64,
2001    #[serde(
2002        default,
2003        skip_serializing_if = "crate::utils::zero_i64",
2004        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
2005    )]
2006    pub total: i64,
2007}
2008
2009#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2010pub struct ObjsPrimaryOwner {
2011    #[serde(
2012        default,
2013        skip_serializing_if = "String::is_empty",
2014        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2015    )]
2016    pub email: String,
2017    #[serde(
2018        default,
2019        skip_serializing_if = "String::is_empty",
2020        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2021    )]
2022    pub id: String,
2023}
2024
2025#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2026pub struct ObjsReaction {
2027    #[serde(
2028        default,
2029        skip_serializing_if = "crate::utils::zero_i64",
2030        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
2031    )]
2032    pub count: i64,
2033    #[serde(
2034        default,
2035        skip_serializing_if = "String::is_empty",
2036        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2037    )]
2038    pub name: String,
2039    #[serde(
2040        default,
2041        skip_serializing_if = "Vec::is_empty",
2042        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
2043    )]
2044    pub users: Vec<String>,
2045}
2046
2047#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2048pub struct ObjsReminder {
2049    #[serde(
2050        default,
2051        skip_serializing_if = "crate::utils::zero_i64",
2052        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
2053    )]
2054    pub complete_ts: i64,
2055    #[serde(
2056        default,
2057        skip_serializing_if = "String::is_empty",
2058        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2059    )]
2060    pub creator: String,
2061    #[serde(
2062        default,
2063        skip_serializing_if = "String::is_empty",
2064        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2065    )]
2066    pub id: String,
2067    #[serde(
2068        default,
2069        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2070    )]
2071    pub recurring: bool,
2072    #[serde(
2073        default,
2074        skip_serializing_if = "String::is_empty",
2075        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2076    )]
2077    pub text: String,
2078    #[serde(
2079        default,
2080        skip_serializing_if = "crate::utils::zero_i64",
2081        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
2082    )]
2083    pub time: i64,
2084    #[serde(
2085        default,
2086        skip_serializing_if = "String::is_empty",
2087        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2088    )]
2089    pub user: String,
2090}
2091
2092#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2093pub struct ObjsResources {
2094    #[serde(
2095        default,
2096        skip_serializing_if = "Vec::is_empty",
2097        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
2098    )]
2099    pub excluded_ids: Vec<String>,
2100    #[serde(
2101        default,
2102        skip_serializing_if = "Vec::is_empty",
2103        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
2104    )]
2105    pub ids: Vec<String>,
2106    #[serde(
2107        default,
2108        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2109    )]
2110    pub wildcard: bool,
2111}
2112
2113#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2114pub struct NewPagingStyle {
2115    #[serde(
2116        default,
2117        skip_serializing_if = "String::is_empty",
2118        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2119    )]
2120    pub next_cursor: String,
2121}
2122
2123#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
2124pub enum Warnings {
2125    #[serde(rename = "method_deprecated")]
2126    MethodDeprecated,
2127    #[serde(rename = "")]
2128    #[default]
2129    Noop,
2130    #[serde(other)]
2131    FallthroughString,
2132}
2133
2134impl std::fmt::Display for Warnings {
2135    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2136        match self {
2137            Warnings::MethodDeprecated => "method_deprecated",
2138            Warnings::Noop => "",
2139            Warnings::FallthroughString => "*",
2140        }
2141        .fmt(f)
2142    }
2143}
2144
2145impl Warnings {
2146    pub fn is_noop(&self) -> bool {
2147        matches!(self, Warnings::Noop)
2148    }
2149}
2150
2151#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2152pub struct DeprecationWarning {
2153    #[serde(
2154        default,
2155        skip_serializing_if = "Vec::is_empty",
2156        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
2157    )]
2158    pub messages: Vec<String>,
2159    #[serde(
2160        default,
2161        skip_serializing_if = "Vec::is_empty",
2162        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
2163    )]
2164    pub warnings: Vec<Warnings>,
2165}
2166
2167#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2168pub struct ObjsResponseMetadata {
2169    #[serde(
2170        default,
2171        skip_serializing_if = "Vec::is_empty",
2172        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
2173    )]
2174    pub messages: Vec<String>,
2175    #[serde(
2176        default,
2177        skip_serializing_if = "String::is_empty",
2178        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2179    )]
2180    pub next_cursor: String,
2181    #[serde(
2182        default,
2183        skip_serializing_if = "Vec::is_empty",
2184        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
2185    )]
2186    pub warnings: Vec<Warnings>,
2187}
2188
2189/// All of the following types are flattened into one object:
2190///
2191/// - `NewPagingStyle`
2192/// - `DeprecationWarning`
2193/// - `ObjsResponseMetadata`
2194///
2195#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2196pub struct ObjsResponseMetadataAnyOf {
2197    #[serde(flatten)]
2198    pub new_paging_style: NewPagingStyle,
2199    #[serde(flatten)]
2200    pub deprecation_warning: DeprecationWarning,
2201    #[serde(flatten)]
2202    pub objs_response_metadata: ObjsResponseMetadata,
2203}
2204
2205#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
2206pub enum AutoType {
2207    #[serde(rename = "admin")]
2208    Admin,
2209    #[serde(rename = "owner")]
2210    Owner,
2211    #[serde(rename = "")]
2212    #[default]
2213    Noop,
2214    #[serde(other)]
2215    FallthroughString,
2216}
2217
2218impl std::fmt::Display for AutoType {
2219    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2220        match self {
2221            AutoType::Admin => "admin",
2222            AutoType::Owner => "owner",
2223            AutoType::Noop => "",
2224            AutoType::FallthroughString => "*",
2225        }
2226        .fmt(f)
2227    }
2228}
2229
2230impl AutoType {
2231    pub fn is_noop(&self) -> bool {
2232        matches!(self, AutoType::Noop)
2233    }
2234}
2235
2236/// All of the following types are flattened into one object:
2237///
2238/// - `serde_json::Value`
2239/// - `AutoType`
2240///
2241#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2242pub struct AutoTypeAnyOf {
2243    #[serde(flatten)]
2244    pub value: serde_json::Value,
2245    #[serde(flatten)]
2246    pub auto_type: AutoType,
2247}
2248
2249/// All of the following types are flattened into one object:
2250///
2251/// - `String`
2252/// - `serde_json::Value`
2253///
2254#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2255pub struct DeletedByAnyOf {
2256    #[serde(flatten)]
2257    pub string: String,
2258    #[serde(flatten)]
2259    pub value: serde_json::Value,
2260}
2261
2262#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2263pub struct Prefs {
2264    #[serde(
2265        default,
2266        skip_serializing_if = "Vec::is_empty",
2267        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
2268    )]
2269    pub channels: Vec<String>,
2270    #[serde(
2271        default,
2272        skip_serializing_if = "Vec::is_empty",
2273        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
2274    )]
2275    pub groups: Vec<String>,
2276}
2277
2278#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2279pub struct ObjsSubteam {
2280    #[serde(
2281        default,
2282        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2283    )]
2284    pub auto_provision: bool,
2285    #[serde(
2286        default,
2287        skip_serializing_if = "Vec::is_empty",
2288        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
2289    )]
2290    pub auto_type: Vec<AutoTypeAnyOf>,
2291    #[serde(
2292        default,
2293        skip_serializing_if = "crate::utils::zero_i64",
2294        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
2295    )]
2296    pub channel_count: i64,
2297    #[serde(
2298        default,
2299        skip_serializing_if = "String::is_empty",
2300        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2301    )]
2302    pub created_by: String,
2303    #[serde(
2304        default,
2305        skip_serializing_if = "crate::utils::zero_i64",
2306        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
2307    )]
2308    pub date_create: i64,
2309    #[serde(
2310        default,
2311        skip_serializing_if = "crate::utils::zero_i64",
2312        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
2313    )]
2314    pub date_delete: i64,
2315    #[serde(
2316        default,
2317        skip_serializing_if = "crate::utils::zero_i64",
2318        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
2319    )]
2320    pub date_update: i64,
2321    #[serde(
2322        default,
2323        skip_serializing_if = "Vec::is_empty",
2324        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
2325    )]
2326    pub deleted_by: Vec<DeletedByAnyOf>,
2327    #[serde(
2328        default,
2329        skip_serializing_if = "String::is_empty",
2330        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2331    )]
2332    pub description: String,
2333    #[serde(
2334        default,
2335        skip_serializing_if = "String::is_empty",
2336        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2337    )]
2338    pub enterprise_subteam_id: String,
2339    #[serde(
2340        default,
2341        skip_serializing_if = "String::is_empty",
2342        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2343    )]
2344    pub handle: String,
2345    #[serde(
2346        default,
2347        skip_serializing_if = "String::is_empty",
2348        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2349    )]
2350    pub id: String,
2351    #[serde(
2352        default,
2353        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2354    )]
2355    pub is_external: bool,
2356    #[serde(
2357        default,
2358        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2359    )]
2360    pub is_subteam: bool,
2361    #[serde(
2362        default,
2363        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2364    )]
2365    pub is_usergroup: bool,
2366    #[serde(
2367        default,
2368        skip_serializing_if = "String::is_empty",
2369        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2370    )]
2371    pub name: String,
2372    pub prefs: Prefs,
2373    #[serde(
2374        default,
2375        skip_serializing_if = "String::is_empty",
2376        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2377    )]
2378    pub team_id: String,
2379    #[serde(
2380        default,
2381        skip_serializing_if = "String::is_empty",
2382        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2383    )]
2384    pub updated_by: String,
2385    #[serde(
2386        default,
2387        skip_serializing_if = "crate::utils::zero_i64",
2388        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
2389    )]
2390    pub user_count: i64,
2391    #[serde(
2392        default,
2393        skip_serializing_if = "Vec::is_empty",
2394        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
2395    )]
2396    pub users: Vec<String>,
2397}
2398
2399/// All of the following types are flattened into one object:
2400///
2401/// - `String`
2402/// - `serde_json::Value`
2403///
2404#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2405pub struct TzAnyOf {
2406    #[serde(flatten)]
2407    pub string: String,
2408    #[serde(flatten)]
2409    pub value: serde_json::Value,
2410}
2411
2412#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
2413pub enum Plan {
2414    #[serde(rename = "compliance")]
2415    Compliance,
2416    #[serde(rename = "enterprise")]
2417    Enterprise,
2418    #[serde(rename = "plus")]
2419    Plus,
2420    #[serde(rename = "std")]
2421    Std,
2422    #[serde(rename = "")]
2423    #[default]
2424    Noop,
2425    #[serde(other)]
2426    FallthroughString,
2427}
2428
2429impl std::fmt::Display for Plan {
2430    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2431        match self {
2432            Plan::Compliance => "compliance",
2433            Plan::Enterprise => "enterprise",
2434            Plan::Plus => "plus",
2435            Plan::Std => "std",
2436            Plan::Noop => "",
2437            Plan::FallthroughString => "*",
2438        }
2439        .fmt(f)
2440    }
2441}
2442
2443impl Plan {
2444    pub fn is_noop(&self) -> bool {
2445        matches!(self, Plan::Noop)
2446    }
2447}
2448
2449#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2450pub struct SsoProvider {
2451    #[serde(
2452        default,
2453        skip_serializing_if = "String::is_empty",
2454        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2455    )]
2456    pub label: String,
2457    #[serde(
2458        default,
2459        skip_serializing_if = "String::is_empty",
2460        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2461    )]
2462    pub name: String,
2463    #[serde(
2464        default,
2465        skip_serializing_if = "String::is_empty",
2466        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
2467        rename = "type"
2468    )]
2469    pub type_: String,
2470}
2471
2472#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2473pub struct ObjsTeam {
2474    #[serde(
2475        default,
2476        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2477    )]
2478    pub archived: bool,
2479    #[serde(
2480        default,
2481        skip_serializing_if = "String::is_empty",
2482        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2483    )]
2484    pub avatar_base_url: String,
2485    #[serde(
2486        default,
2487        skip_serializing_if = "crate::utils::zero_i64",
2488        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
2489    )]
2490    pub created: i64,
2491    #[serde(
2492        default,
2493        skip_serializing_if = "crate::utils::zero_i64",
2494        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
2495    )]
2496    pub date_create: i64,
2497    #[serde(
2498        default,
2499        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2500    )]
2501    pub deleted: bool,
2502    #[serde(
2503        default,
2504        skip_serializing_if = "String::is_empty",
2505        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2506    )]
2507    pub description: String,
2508    #[serde(
2509        default,
2510        skip_serializing_if = "Vec::is_empty",
2511        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
2512    )]
2513    pub discoverable: Vec<TzAnyOf>,
2514    #[serde(
2515        default,
2516        skip_serializing_if = "String::is_empty",
2517        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2518    )]
2519    pub domain: String,
2520    #[serde(
2521        default,
2522        skip_serializing_if = "String::is_empty",
2523        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2524    )]
2525    pub email_domain: String,
2526    #[serde(
2527        default,
2528        skip_serializing_if = "String::is_empty",
2529        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2530    )]
2531    pub enterprise_id: String,
2532    #[serde(
2533        default,
2534        skip_serializing_if = "String::is_empty",
2535        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2536    )]
2537    pub enterprise_name: String,
2538    #[serde(default, skip_serializing_if = "Option::is_none")]
2539    pub external_org_migrations: Option<ExternalOrgMigrations>,
2540    #[serde(
2541        default,
2542        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2543    )]
2544    pub has_compliance_export: bool,
2545    pub icon: ObjsIcon,
2546    #[serde(
2547        default,
2548        skip_serializing_if = "String::is_empty",
2549        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2550    )]
2551    pub id: String,
2552    #[serde(
2553        default,
2554        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2555    )]
2556    pub is_assigned: bool,
2557    #[serde(
2558        default,
2559        skip_serializing_if = "crate::utils::zero_i64",
2560        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
2561    )]
2562    pub is_enterprise: i64,
2563    #[serde(
2564        default,
2565        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2566    )]
2567    pub is_over_storage_limit: bool,
2568    #[serde(
2569        default,
2570        skip_serializing_if = "crate::utils::zero_i64",
2571        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
2572    )]
2573    pub limit_ts: i64,
2574    #[serde(
2575        default,
2576        skip_serializing_if = "String::is_empty",
2577        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2578    )]
2579    pub locale: String,
2580    #[serde(
2581        default,
2582        skip_serializing_if = "crate::utils::zero_i64",
2583        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
2584    )]
2585    pub messages_count: i64,
2586    #[serde(
2587        default,
2588        skip_serializing_if = "crate::utils::zero_i64",
2589        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
2590    )]
2591    pub msg_edit_window_mins: i64,
2592    #[serde(
2593        default,
2594        skip_serializing_if = "String::is_empty",
2595        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2596    )]
2597    pub name: String,
2598    #[serde(
2599        default,
2600        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2601    )]
2602    pub over_integrations_limit: bool,
2603    #[serde(
2604        default,
2605        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2606    )]
2607    pub over_storage_limit: bool,
2608    #[serde(
2609        default,
2610        skip_serializing_if = "String::is_empty",
2611        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2612    )]
2613    pub pay_prod_cur: String,
2614    #[serde(default, skip_serializing_if = "Option::is_none")]
2615    pub plan: Option<Plan>,
2616    #[serde(default, skip_serializing_if = "Option::is_none")]
2617    pub primary_owner: Option<ObjsPrimaryOwner>,
2618    #[serde(default, skip_serializing_if = "Option::is_none")]
2619    pub sso_provider: Option<SsoProvider>,
2620}
2621
2622/// All of the following types are flattened into one object:
2623///
2624/// - `serde_json::Value`
2625/// - `ObjsTeamProfileFieldOption`
2626///
2627#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2628pub struct OptionsAnyOf {
2629    #[serde(flatten)]
2630    pub value: serde_json::Value,
2631    #[serde(flatten)]
2632    pub objs_team_profile_field_option: ObjsTeamProfileFieldOption,
2633}
2634
2635#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
2636pub enum Type {
2637    #[serde(rename = "date")]
2638    Date,
2639    #[serde(rename = "link")]
2640    Link,
2641    #[serde(rename = "mailto")]
2642    Mailto,
2643    #[serde(rename = "options_list")]
2644    OptionsList,
2645    #[serde(rename = "text")]
2646    Text,
2647    #[serde(rename = "user")]
2648    User,
2649    #[serde(rename = "")]
2650    #[default]
2651    Noop,
2652    #[serde(other)]
2653    FallthroughString,
2654}
2655
2656impl std::fmt::Display for Type {
2657    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
2658        match self {
2659            Type::Date => "date",
2660            Type::Link => "link",
2661            Type::Mailto => "mailto",
2662            Type::OptionsList => "options_list",
2663            Type::Text => "text",
2664            Type::User => "user",
2665            Type::Noop => "",
2666            Type::FallthroughString => "*",
2667        }
2668        .fmt(f)
2669    }
2670}
2671
2672impl Type {
2673    pub fn is_noop(&self) -> bool {
2674        matches!(self, Type::Noop)
2675    }
2676}
2677
2678#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2679pub struct ObjsTeamProfileField {
2680    #[serde(
2681        default,
2682        skip_serializing_if = "String::is_empty",
2683        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2684    )]
2685    pub field_name: String,
2686    #[serde(
2687        default,
2688        skip_serializing_if = "String::is_empty",
2689        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2690    )]
2691    pub hint: String,
2692    #[serde(
2693        default,
2694        skip_serializing_if = "String::is_empty",
2695        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2696    )]
2697    pub id: String,
2698    #[serde(
2699        default,
2700        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2701    )]
2702    pub is_hidden: bool,
2703    #[serde(
2704        default,
2705        skip_serializing_if = "String::is_empty",
2706        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2707    )]
2708    pub label: String,
2709    #[serde(
2710        default,
2711        skip_serializing_if = "Vec::is_empty",
2712        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
2713    )]
2714    pub options: Vec<OptionsAnyOf>,
2715    #[serde(
2716        default,
2717        skip_serializing_if = "crate::utils::zero_f64",
2718        deserialize_with = "crate::utils::deserialize_null_f64::deserialize"
2719    )]
2720    pub ordering: f64,
2721    #[serde(
2722        default,
2723        skip_serializing_if = "Vec::is_empty",
2724        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
2725    )]
2726    pub possible_values: Vec<String>,
2727    #[serde(default, skip_serializing_if = "Type::is_noop", rename = "type")]
2728    pub type_: Type,
2729}
2730
2731#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2732pub struct ObjsTeamProfileFieldOption {
2733    #[serde(
2734        default,
2735        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2736    )]
2737    pub is_custom: bool,
2738    #[serde(
2739        default,
2740        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2741    )]
2742    pub is_multiple_entry: bool,
2743    #[serde(
2744        default,
2745        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2746    )]
2747    pub is_protected: bool,
2748    #[serde(
2749        default,
2750        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2751    )]
2752    pub is_scim: bool,
2753}
2754
2755#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2756pub struct Profile {
2757    #[serde(
2758        default,
2759        skip_serializing_if = "Vec::is_empty",
2760        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
2761    )]
2762    pub fields: Vec<ObjsTeamProfileField>,
2763}
2764
2765/// user object for non enterprise type
2766#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2767pub struct ObjsUser {
2768    /**
2769     * user object for non enterprise type
2770     */
2771    #[serde(
2772        default,
2773        skip_serializing_if = "String::is_empty",
2774        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2775    )]
2776    pub color: String,
2777    /**
2778     * user object for non enterprise type
2779     */
2780    #[serde(
2781        default,
2782        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2783    )]
2784    pub deleted: bool,
2785    /**
2786     * user object for non enterprise type
2787     */
2788    #[serde(default, skip_serializing_if = "Option::is_none")]
2789    pub enterprise_user: Option<ObjsEnterpriseUser>,
2790    /**
2791     * user object for non enterprise type
2792     */
2793    #[serde(
2794        default,
2795        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2796    )]
2797    pub has_2fa: bool,
2798    #[serde(
2799        default,
2800        skip_serializing_if = "String::is_empty",
2801        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2802    )]
2803    pub id: String,
2804    /**
2805     * user object for non enterprise type
2806     */
2807    #[serde(
2808        default,
2809        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2810    )]
2811    pub is_admin: bool,
2812    #[serde(
2813        default,
2814        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2815    )]
2816    pub is_app_user: bool,
2817    #[serde(
2818        default,
2819        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2820    )]
2821    pub is_bot: bool,
2822    /**
2823     * user object for non enterprise type
2824     */
2825    #[serde(
2826        default,
2827        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2828    )]
2829    pub is_external: bool,
2830    /**
2831     * user object for non enterprise type
2832     */
2833    #[serde(
2834        default,
2835        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2836    )]
2837    pub is_forgotten: bool,
2838    /**
2839     * user object for non enterprise type
2840     */
2841    #[serde(
2842        default,
2843        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2844    )]
2845    pub is_invited_user: bool,
2846    /**
2847     * user object for non enterprise type
2848     */
2849    #[serde(
2850        default,
2851        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2852    )]
2853    pub is_owner: bool,
2854    /**
2855     * user object for non enterprise type
2856     */
2857    #[serde(
2858        default,
2859        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2860    )]
2861    pub is_primary_owner: bool,
2862    /**
2863     * user object for non enterprise type
2864     */
2865    #[serde(
2866        default,
2867        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2868    )]
2869    pub is_restricted: bool,
2870    /**
2871     * user object for non enterprise type
2872     */
2873    #[serde(
2874        default,
2875        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2876    )]
2877    pub is_stranger: bool,
2878    /**
2879     * user object for non enterprise type
2880     */
2881    #[serde(
2882        default,
2883        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
2884    )]
2885    pub is_ultra_restricted: bool,
2886    /**
2887     * user object for non enterprise type
2888     */
2889    #[serde(
2890        default,
2891        skip_serializing_if = "String::is_empty",
2892        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2893    )]
2894    pub locale: String,
2895    #[serde(
2896        default,
2897        skip_serializing_if = "String::is_empty",
2898        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2899    )]
2900    pub name: String,
2901    /**
2902     * user object for non enterprise type
2903     */
2904    #[serde(
2905        default,
2906        skip_serializing_if = "String::is_empty",
2907        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2908    )]
2909    pub presence: String,
2910    pub profile: ObjsUserProfile,
2911    /**
2912     * user object for non enterprise type
2913     */
2914    #[serde(
2915        default,
2916        skip_serializing_if = "String::is_empty",
2917        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2918    )]
2919    pub real_name: String,
2920    /**
2921     * user object for non enterprise type
2922     */
2923    #[serde(
2924        default,
2925        skip_serializing_if = "String::is_empty",
2926        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2927    )]
2928    pub team: String,
2929    /**
2930     * user object for non enterprise type
2931     */
2932    #[serde(
2933        default,
2934        skip_serializing_if = "String::is_empty",
2935        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2936    )]
2937    pub team_id: String,
2938    /**
2939     * user object for non enterprise type
2940     */
2941    #[serde(default, skip_serializing_if = "Option::is_none")]
2942    pub team_profile: Option<Profile>,
2943    /**
2944     * user object for non enterprise type
2945     */
2946    #[serde(
2947        default,
2948        skip_serializing_if = "String::is_empty",
2949        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2950    )]
2951    pub two_factor_type: String,
2952    /**
2953     * user object for non enterprise type
2954     */
2955    #[serde(
2956        default,
2957        skip_serializing_if = "Vec::is_empty",
2958        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
2959    )]
2960    pub tz: Vec<TzAnyOf>,
2961    /**
2962     * user object for non enterprise type
2963     */
2964    #[serde(
2965        default,
2966        skip_serializing_if = "String::is_empty",
2967        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2968    )]
2969    pub tz_label: String,
2970    /**
2971     * user object for non enterprise type
2972     */
2973    #[serde(
2974        default,
2975        skip_serializing_if = "crate::utils::zero_f64",
2976        deserialize_with = "crate::utils::deserialize_null_f64::deserialize"
2977    )]
2978    pub tz_offset: f64,
2979    #[serde(
2980        default,
2981        skip_serializing_if = "crate::utils::zero_f64",
2982        deserialize_with = "crate::utils::deserialize_null_f64::deserialize"
2983    )]
2984    pub updated: f64,
2985}
2986
2987/// enterprise user
2988#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
2989pub struct ObjsUserData {
2990    /**
2991     * enterprise user
2992     */
2993    #[serde(
2994        default,
2995        skip_serializing_if = "String::is_empty",
2996        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
2997    )]
2998    pub color: String,
2999    /**
3000     * enterprise user
3001     */
3002    #[serde(
3003        default,
3004        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3005    )]
3006    pub deleted: bool,
3007    /**
3008     * enterprise user
3009     */
3010    #[serde(default, skip_serializing_if = "Option::is_none")]
3011    pub enterprise_user: Option<ObjsEnterpriseUser>,
3012    /**
3013     * enterprise user
3014     */
3015    #[serde(
3016        default,
3017        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3018    )]
3019    pub has_2fa: bool,
3020    #[serde(
3021        default,
3022        skip_serializing_if = "String::is_empty",
3023        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3024    )]
3025    pub id: String,
3026    /**
3027     * enterprise user
3028     */
3029    #[serde(
3030        default,
3031        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3032    )]
3033    pub is_admin: bool,
3034    #[serde(
3035        default,
3036        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3037    )]
3038    pub is_app_user: bool,
3039    #[serde(
3040        default,
3041        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3042    )]
3043    pub is_bot: bool,
3044    /**
3045     * enterprise user
3046     */
3047    #[serde(
3048        default,
3049        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3050    )]
3051    pub is_external: bool,
3052    /**
3053     * enterprise user
3054     */
3055    #[serde(
3056        default,
3057        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3058    )]
3059    pub is_forgotten: bool,
3060    /**
3061     * enterprise user
3062     */
3063    #[serde(
3064        default,
3065        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3066    )]
3067    pub is_owner: bool,
3068    /**
3069     * enterprise user
3070     */
3071    #[serde(
3072        default,
3073        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3074    )]
3075    pub is_primary_owner: bool,
3076    /**
3077     * enterprise user
3078     */
3079    #[serde(
3080        default,
3081        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3082    )]
3083    pub is_restricted: bool,
3084    /**
3085     * enterprise user
3086     */
3087    #[serde(
3088        default,
3089        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3090    )]
3091    pub is_stranger: bool,
3092    /**
3093     * enterprise user
3094     */
3095    #[serde(
3096        default,
3097        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3098    )]
3099    pub is_ultra_restricted: bool,
3100    /**
3101     * enterprise user
3102     */
3103    #[serde(
3104        default,
3105        skip_serializing_if = "String::is_empty",
3106        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3107    )]
3108    pub locale: String,
3109    #[serde(
3110        default,
3111        skip_serializing_if = "String::is_empty",
3112        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3113    )]
3114    pub name: String,
3115    /**
3116     * enterprise user
3117     */
3118    #[serde(
3119        default,
3120        skip_serializing_if = "String::is_empty",
3121        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3122    )]
3123    pub presence: String,
3124    pub profile: ObjsUserProfile,
3125    /**
3126     * enterprise user
3127     */
3128    #[serde(
3129        default,
3130        skip_serializing_if = "String::is_empty",
3131        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3132    )]
3133    pub real_name: String,
3134    /**
3135     * enterprise user
3136     */
3137    #[serde(
3138        default,
3139        skip_serializing_if = "String::is_empty",
3140        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3141    )]
3142    pub team_id: String,
3143    /**
3144     * enterprise user
3145     */
3146    #[serde(default, skip_serializing_if = "Option::is_none")]
3147    pub team_profile: Option<Profile>,
3148    /**
3149     * enterprise user
3150     */
3151    #[serde(
3152        default,
3153        skip_serializing_if = "Vec::is_empty",
3154        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
3155    )]
3156    pub teams: Vec<String>,
3157    /**
3158     * enterprise user
3159     */
3160    #[serde(
3161        default,
3162        skip_serializing_if = "String::is_empty",
3163        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3164    )]
3165    pub two_factor_type: String,
3166    /**
3167     * enterprise user
3168     */
3169    #[serde(
3170        default,
3171        skip_serializing_if = "Vec::is_empty",
3172        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
3173    )]
3174    pub tz: Vec<TzAnyOf>,
3175    /**
3176     * enterprise user
3177     */
3178    #[serde(
3179        default,
3180        skip_serializing_if = "String::is_empty",
3181        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3182    )]
3183    pub tz_label: String,
3184    /**
3185     * enterprise user
3186     */
3187    #[serde(
3188        default,
3189        skip_serializing_if = "crate::utils::zero_f64",
3190        deserialize_with = "crate::utils::deserialize_null_f64::deserialize"
3191    )]
3192    pub tz_offset: f64,
3193    #[serde(
3194        default,
3195        skip_serializing_if = "crate::utils::zero_f64",
3196        deserialize_with = "crate::utils::deserialize_null_f64::deserialize"
3197    )]
3198    pub updated: f64,
3199}
3200
3201/// All of the following types are flattened into one object:
3202///
3203/// - `ObjsUser`
3204/// - `ObjsUserData`
3205///
3206#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3207pub struct ObjsUserAnyOf {
3208    /**
3209     * user object for non enterprise type
3210     */
3211    #[serde(flatten)]
3212    pub objs_user: ObjsUser,
3213    /**
3214     * enterprise user
3215     */
3216    #[serde(flatten)]
3217    pub objs_user_data: ObjsUserData,
3218}
3219
3220/// All of the following types:
3221///
3222/// - `Fields`
3223/// - `Vec<String>`
3224///
3225/// You can easily convert this enum to the inner value with `From` and `Into`, as both are implemented for each type.
3226///
3227#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3228#[serde(untagged)]
3229pub enum FieldsOneOf {
3230    Fields(Fields),
3231    StringVector(Vec<String>),
3232}
3233
3234impl FieldsOneOf {
3235    pub fn fields(&self) -> Option<&Fields> {
3236        if let FieldsOneOf::Fields(ref_) = self {
3237            return Some(ref_);
3238        }
3239        None
3240    }
3241
3242    pub fn vec_string(&self) -> Option<&Vec<String>> {
3243        if let FieldsOneOf::StringVector(ref_) = self {
3244            return Some(ref_);
3245        }
3246        None
3247    }
3248}
3249
3250impl std::convert::From<Vec<String>> for FieldsOneOf {
3251    fn from(f: Vec<String>) -> Self {
3252        FieldsOneOf::StringVector(f)
3253    }
3254}
3255
3256impl std::convert::From<FieldsOneOf> for Vec<String> {
3257    fn from(f: FieldsOneOf) -> Self {
3258        f.vec_string().unwrap().clone()
3259    }
3260}
3261
3262#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3263pub struct ObjsUserProfile {
3264    #[serde(
3265        default,
3266        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3267    )]
3268    pub always_active: bool,
3269    #[serde(
3270        default,
3271        skip_serializing_if = "String::is_empty",
3272        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3273    )]
3274    pub api_app_id: String,
3275    #[serde(
3276        default,
3277        skip_serializing_if = "String::is_empty",
3278        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3279    )]
3280    pub avatar_hash: String,
3281    #[serde(
3282        default,
3283        skip_serializing_if = "String::is_empty",
3284        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3285    )]
3286    pub bot_id: String,
3287    #[serde(
3288        default,
3289        skip_serializing_if = "String::is_empty",
3290        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3291    )]
3292    pub display_name: String,
3293    #[serde(
3294        default,
3295        skip_serializing_if = "String::is_empty",
3296        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3297    )]
3298    pub display_name_normalized: String,
3299    #[serde(
3300        default,
3301        skip_serializing_if = "String::is_empty",
3302        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3303    )]
3304    pub email: String,
3305    pub fields: FieldsOneOf,
3306    #[serde(
3307        default,
3308        skip_serializing_if = "String::is_empty",
3309        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3310    )]
3311    pub first_name: String,
3312    #[serde(
3313        default,
3314        skip_serializing_if = "crate::utils::zero_i64",
3315        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
3316    )]
3317    pub guest_expiration_ts: i64,
3318    #[serde(
3319        default,
3320        skip_serializing_if = "String::is_empty",
3321        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3322    )]
3323    pub guest_invited_by: String,
3324    #[serde(
3325        default,
3326        skip_serializing_if = "String::is_empty",
3327        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3328    )]
3329    pub image_1024: String,
3330    #[serde(
3331        default,
3332        skip_serializing_if = "String::is_empty",
3333        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3334    )]
3335    pub image_192: String,
3336    #[serde(
3337        default,
3338        skip_serializing_if = "String::is_empty",
3339        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3340    )]
3341    pub image_24: String,
3342    #[serde(
3343        default,
3344        skip_serializing_if = "String::is_empty",
3345        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3346    )]
3347    pub image_32: String,
3348    #[serde(
3349        default,
3350        skip_serializing_if = "String::is_empty",
3351        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3352    )]
3353    pub image_48: String,
3354    #[serde(
3355        default,
3356        skip_serializing_if = "String::is_empty",
3357        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3358    )]
3359    pub image_512: String,
3360    #[serde(
3361        default,
3362        skip_serializing_if = "String::is_empty",
3363        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3364    )]
3365    pub image_72: String,
3366    #[serde(
3367        default,
3368        skip_serializing_if = "String::is_empty",
3369        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3370    )]
3371    pub image_original: String,
3372    #[serde(
3373        default,
3374        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3375    )]
3376    pub is_app_user: bool,
3377    #[serde(
3378        default,
3379        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3380    )]
3381    pub is_custom_image: bool,
3382    #[serde(
3383        default,
3384        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3385    )]
3386    pub is_restricted: bool,
3387    #[serde(
3388        default,
3389        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3390    )]
3391    pub is_ultra_restricted: bool,
3392    #[serde(
3393        default,
3394        skip_serializing_if = "String::is_empty",
3395        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3396    )]
3397    pub last_avatar_image_hash: String,
3398    #[serde(
3399        default,
3400        skip_serializing_if = "String::is_empty",
3401        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3402    )]
3403    pub last_name: String,
3404    #[serde(
3405        default,
3406        skip_serializing_if = "crate::utils::zero_i64",
3407        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
3408    )]
3409    pub memberships_count: i64,
3410    #[serde(
3411        default,
3412        skip_serializing_if = "String::is_empty",
3413        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3414    )]
3415    pub name: String,
3416    #[serde(
3417        default,
3418        skip_serializing_if = "String::is_empty",
3419        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3420    )]
3421    pub phone: String,
3422    #[serde(
3423        default,
3424        skip_serializing_if = "String::is_empty",
3425        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3426    )]
3427    pub pronouns: String,
3428    #[serde(
3429        default,
3430        skip_serializing_if = "String::is_empty",
3431        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3432    )]
3433    pub real_name: String,
3434    #[serde(
3435        default,
3436        skip_serializing_if = "String::is_empty",
3437        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3438    )]
3439    pub real_name_normalized: String,
3440    #[serde(
3441        default,
3442        skip_serializing_if = "String::is_empty",
3443        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3444    )]
3445    pub skype: String,
3446    #[serde(
3447        default,
3448        skip_serializing_if = "String::is_empty",
3449        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3450    )]
3451    pub status_default_emoji: String,
3452    #[serde(
3453        default,
3454        skip_serializing_if = "String::is_empty",
3455        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3456    )]
3457    pub status_default_text: String,
3458    #[serde(
3459        default,
3460        skip_serializing_if = "String::is_empty",
3461        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3462    )]
3463    pub status_default_text_canonical: String,
3464    #[serde(
3465        default,
3466        skip_serializing_if = "String::is_empty",
3467        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3468    )]
3469    pub status_emoji: String,
3470    #[serde(
3471        default,
3472        skip_serializing_if = "crate::utils::zero_i64",
3473        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
3474    )]
3475    pub status_expiration: i64,
3476    #[serde(
3477        default,
3478        skip_serializing_if = "String::is_empty",
3479        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3480    )]
3481    pub status_text: String,
3482    #[serde(
3483        default,
3484        skip_serializing_if = "String::is_empty",
3485        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3486    )]
3487    pub status_text_canonical: String,
3488    #[serde(
3489        default,
3490        skip_serializing_if = "String::is_empty",
3491        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3492    )]
3493    pub team: String,
3494    #[serde(
3495        default,
3496        skip_serializing_if = "String::is_empty",
3497        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3498    )]
3499    pub title: String,
3500    #[serde(
3501        default,
3502        skip_serializing_if = "crate::utils::zero_i64",
3503        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
3504    )]
3505    pub updated: i64,
3506    #[serde(
3507        default,
3508        skip_serializing_if = "String::is_empty",
3509        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3510    )]
3511    pub user_id: String,
3512    #[serde(
3513        default,
3514        skip_serializing_if = "String::is_empty",
3515        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3516    )]
3517    pub username: String,
3518}
3519
3520#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3521pub struct ObjsUserProfileShort {
3522    #[serde(
3523        default,
3524        skip_serializing_if = "String::is_empty",
3525        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3526    )]
3527    pub avatar_hash: String,
3528    #[serde(
3529        default,
3530        skip_serializing_if = "String::is_empty",
3531        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3532    )]
3533    pub display_name: String,
3534    #[serde(
3535        default,
3536        skip_serializing_if = "String::is_empty",
3537        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3538    )]
3539    pub display_name_normalized: String,
3540    #[serde(
3541        default,
3542        skip_serializing_if = "String::is_empty",
3543        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3544    )]
3545    pub first_name: String,
3546    #[serde(
3547        default,
3548        skip_serializing_if = "String::is_empty",
3549        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3550    )]
3551    pub image_72: String,
3552    #[serde(
3553        default,
3554        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3555    )]
3556    pub is_restricted: bool,
3557    #[serde(
3558        default,
3559        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3560    )]
3561    pub is_ultra_restricted: bool,
3562    #[serde(
3563        default,
3564        skip_serializing_if = "String::is_empty",
3565        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3566    )]
3567    pub name: String,
3568    #[serde(
3569        default,
3570        skip_serializing_if = "String::is_empty",
3571        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3572    )]
3573    pub real_name: String,
3574    #[serde(
3575        default,
3576        skip_serializing_if = "String::is_empty",
3577        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3578    )]
3579    pub real_name_normalized: String,
3580    #[serde(
3581        default,
3582        skip_serializing_if = "String::is_empty",
3583        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3584    )]
3585    pub team: String,
3586}
3587
3588#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3589pub struct AdminInviteRequestsApproveRequest {
3590    #[serde(
3591        default,
3592        skip_serializing_if = "String::is_empty",
3593        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3594    )]
3595    pub invite_request_id: String,
3596    #[serde(
3597        default,
3598        skip_serializing_if = "String::is_empty",
3599        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3600    )]
3601    pub team_id: String,
3602}
3603
3604/// Schema for successful response from dnd.endDnd method
3605#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3606pub struct DndEndSchema {
3607    #[serde(
3608        default,
3609        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3610    )]
3611    pub ok: bool,
3612}
3613
3614/// Schema for successful response of admin.conversations.create
3615#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3616pub struct AdminConversationsCreateSchema {
3617    /**
3618     * Schema for successful response of admin.conversations.create
3619     */
3620    #[serde(
3621        default,
3622        skip_serializing_if = "String::is_empty",
3623        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3624    )]
3625    pub channel_id: String,
3626    #[serde(
3627        default,
3628        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3629    )]
3630    pub ok: bool,
3631}
3632
3633#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3634pub struct CanThread {
3635    #[serde(
3636        default,
3637        skip_serializing_if = "Vec::is_empty",
3638        deserialize_with = "crate::utils::deserialize_null_vector::deserialize",
3639        rename = "type"
3640    )]
3641    pub type_: Vec<String>,
3642    #[serde(
3643        default,
3644        skip_serializing_if = "Vec::is_empty",
3645        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
3646    )]
3647    pub user: Vec<String>,
3648}
3649
3650#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3651pub struct AdminConversationsGetConversationPrefsSchema {
3652    #[serde(default, skip_serializing_if = "Option::is_none")]
3653    pub can_thread: Option<CanThread>,
3654    #[serde(default, skip_serializing_if = "Option::is_none")]
3655    pub who_can_post: Option<CanThread>,
3656}
3657
3658/// Schema for successful response of admin.conversations.getConversationPrefs
3659#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3660pub struct AdminConversationsGetConversationPrefsSchemaData {
3661    #[serde(
3662        default,
3663        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3664    )]
3665    pub ok: bool,
3666    /**
3667     * Schema for successful response of admin.conversations.getConversationPrefs
3668     */
3669    #[serde(default, skip_serializing_if = "Option::is_none")]
3670    pub prefs: Option<AdminConversationsGetConversationPrefsSchema>,
3671}
3672
3673/// Schema for successful response of admin.conversations.getTeams
3674#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3675pub struct AdminConversationsGetTeamsSchema {
3676    #[serde(
3677        default,
3678        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3679    )]
3680    pub ok: bool,
3681    /**
3682     * Schema for successful response of admin.conversations.getTeams
3683     */
3684    #[serde(default, skip_serializing_if = "Option::is_none")]
3685    pub response_metadata: Option<NewPagingStyle>,
3686    #[serde(
3687        default,
3688        skip_serializing_if = "Vec::is_empty",
3689        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
3690    )]
3691    pub team_ids: Vec<String>,
3692}
3693
3694/// Schema for successful response of admin.conversations.search
3695#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3696pub struct AdminConversationsSearchSchema {
3697    #[serde(
3698        default,
3699        skip_serializing_if = "Vec::is_empty",
3700        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
3701    )]
3702    pub channels: Vec<ObjsChannel>,
3703    #[serde(
3704        default,
3705        skip_serializing_if = "String::is_empty",
3706        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3707    )]
3708    pub next_cursor: String,
3709}
3710
3711#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3712pub struct Im {
3713    #[serde(default, skip_serializing_if = "Option::is_none")]
3714    pub resources: Option<ObjsResources>,
3715    #[serde(
3716        default,
3717        skip_serializing_if = "Vec::is_empty",
3718        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
3719    )]
3720    pub scopes: Vec<String>,
3721}
3722
3723#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3724pub struct Team {
3725    pub resources: ObjsResources,
3726    #[serde(
3727        default,
3728        skip_serializing_if = "Vec::is_empty",
3729        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
3730    )]
3731    pub scopes: Vec<String>,
3732}
3733
3734#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3735pub struct Info {
3736    pub app_home: Im,
3737    pub channel: Im,
3738    pub group: Im,
3739    pub im: Im,
3740    pub mpim: Im,
3741    pub team: Team,
3742}
3743
3744/// Schema for successful response from apps.permissions.info method
3745#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3746pub struct AppsPermissionsInfoSchema {
3747    pub info: Info,
3748    #[serde(
3749        default,
3750        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3751    )]
3752    pub ok: bool,
3753}
3754
3755#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3756pub struct Resources {
3757    #[serde(
3758        default,
3759        skip_serializing_if = "String::is_empty",
3760        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3761    )]
3762    pub id: String,
3763    #[serde(
3764        default,
3765        skip_serializing_if = "String::is_empty",
3766        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
3767        rename = "type"
3768    )]
3769    pub type_: String,
3770}
3771
3772/// Schema for successful response apps.permissions.resources.list method
3773#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3774pub struct AppsPermissionsResourcesListSuccessSchema {
3775    #[serde(
3776        default,
3777        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3778    )]
3779    pub ok: bool,
3780    #[serde(
3781        default,
3782        skip_serializing_if = "Vec::is_empty",
3783        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
3784    )]
3785    pub resources: Vec<Resources>,
3786    /**
3787     * Schema for successful response apps.permissions.resources.list method
3788     */
3789    #[serde(default, skip_serializing_if = "Option::is_none")]
3790    pub response_metadata: Option<NewPagingStyle>,
3791}
3792
3793#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3794pub struct Scopes {
3795    #[serde(
3796        default,
3797        skip_serializing_if = "Vec::is_empty",
3798        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
3799    )]
3800    pub app_home: Vec<String>,
3801    #[serde(
3802        default,
3803        skip_serializing_if = "Vec::is_empty",
3804        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
3805    )]
3806    pub channel: Vec<String>,
3807    #[serde(
3808        default,
3809        skip_serializing_if = "Vec::is_empty",
3810        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
3811    )]
3812    pub group: Vec<String>,
3813    #[serde(
3814        default,
3815        skip_serializing_if = "Vec::is_empty",
3816        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
3817    )]
3818    pub im: Vec<String>,
3819    #[serde(
3820        default,
3821        skip_serializing_if = "Vec::is_empty",
3822        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
3823    )]
3824    pub mpim: Vec<String>,
3825    #[serde(
3826        default,
3827        skip_serializing_if = "Vec::is_empty",
3828        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
3829    )]
3830    pub team: Vec<String>,
3831    #[serde(
3832        default,
3833        skip_serializing_if = "Vec::is_empty",
3834        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
3835    )]
3836    pub user: Vec<String>,
3837}
3838
3839/// Schema for successful response api.permissions.scopes.list method
3840#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3841pub struct ApiPermissionsScopesListSuccessSchema {
3842    #[serde(
3843        default,
3844        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3845    )]
3846    pub ok: bool,
3847    pub scopes: Scopes,
3848}
3849
3850/// Schema for successful response from auth.revoke method
3851#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3852pub struct AuthRevokeSchema {
3853    #[serde(
3854        default,
3855        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3856    )]
3857    pub ok: bool,
3858    #[serde(
3859        default,
3860        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3861    )]
3862    pub revoked: bool,
3863}
3864
3865/// Schema for successful response auth.test method
3866#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3867pub struct AuthTestSuccessSchema {
3868    /**
3869     * Schema for successful response auth.test method
3870     */
3871    #[serde(
3872        default,
3873        skip_serializing_if = "String::is_empty",
3874        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3875    )]
3876    pub bot_id: String,
3877    /**
3878     * Schema for successful response auth.test method
3879     */
3880    #[serde(
3881        default,
3882        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3883    )]
3884    pub is_enterprise_install: bool,
3885    #[serde(
3886        default,
3887        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3888    )]
3889    pub ok: bool,
3890    #[serde(
3891        default,
3892        skip_serializing_if = "String::is_empty",
3893        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3894    )]
3895    pub team: String,
3896    #[serde(
3897        default,
3898        skip_serializing_if = "String::is_empty",
3899        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3900    )]
3901    pub team_id: String,
3902    #[serde(
3903        default,
3904        skip_serializing_if = "String::is_empty",
3905        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3906    )]
3907    pub url: String,
3908    #[serde(
3909        default,
3910        skip_serializing_if = "String::is_empty",
3911        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3912    )]
3913    pub user: String,
3914    #[serde(
3915        default,
3916        skip_serializing_if = "String::is_empty",
3917        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3918    )]
3919    pub user_id: String,
3920}
3921
3922#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3923pub struct Bot {
3924    #[serde(
3925        default,
3926        skip_serializing_if = "String::is_empty",
3927        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3928    )]
3929    pub app_id: String,
3930    #[serde(
3931        default,
3932        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3933    )]
3934    pub deleted: bool,
3935    pub icons: Icons,
3936    #[serde(
3937        default,
3938        skip_serializing_if = "String::is_empty",
3939        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3940    )]
3941    pub id: String,
3942    #[serde(
3943        default,
3944        skip_serializing_if = "String::is_empty",
3945        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3946    )]
3947    pub name: String,
3948    #[serde(
3949        default,
3950        skip_serializing_if = "crate::utils::zero_i64",
3951        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
3952    )]
3953    pub updated: i64,
3954    #[serde(
3955        default,
3956        skip_serializing_if = "String::is_empty",
3957        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3958    )]
3959    pub user_id: String,
3960}
3961
3962/// Schema for successful response from bots.info method
3963#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3964pub struct BotsInfoSchema {
3965    pub bot: Bot,
3966    #[serde(
3967        default,
3968        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3969    )]
3970    pub ok: bool,
3971}
3972
3973/// Schema for successful response of chat.delete method
3974#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3975pub struct ChatDeleteSuccessSchema {
3976    #[serde(
3977        default,
3978        skip_serializing_if = "String::is_empty",
3979        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3980    )]
3981    pub channel: String,
3982    #[serde(
3983        default,
3984        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
3985    )]
3986    pub ok: bool,
3987    #[serde(
3988        default,
3989        skip_serializing_if = "String::is_empty",
3990        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
3991    )]
3992    pub ts: String,
3993}
3994
3995/// Schema for successful response chat.getPermalink
3996#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
3997pub struct ChatGetPermalinkSuccessSchema {
3998    #[serde(
3999        default,
4000        skip_serializing_if = "String::is_empty",
4001        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4002    )]
4003    pub channel: String,
4004    #[serde(
4005        default,
4006        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4007    )]
4008    pub ok: bool,
4009    #[serde(
4010        default,
4011        skip_serializing_if = "String::is_empty",
4012        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4013    )]
4014    pub permalink: String,
4015}
4016
4017/// Schema for successful response from chat.meMessage method
4018#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4019pub struct ChatMeMessageSchema {
4020    /**
4021     * Schema for successful response from chat.meMessage method
4022     */
4023    #[serde(
4024        default,
4025        skip_serializing_if = "String::is_empty",
4026        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4027    )]
4028    pub channel: String,
4029    #[serde(
4030        default,
4031        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4032    )]
4033    pub ok: bool,
4034    /**
4035     * Schema for successful response from chat.meMessage method
4036     */
4037    #[serde(
4038        default,
4039        skip_serializing_if = "String::is_empty",
4040        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4041    )]
4042    pub ts: String,
4043}
4044
4045/// Schema for successful response from chat.postEphemeral method
4046#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4047pub struct ChatPostEphemeralSuccessSchema {
4048    #[serde(
4049        default,
4050        skip_serializing_if = "String::is_empty",
4051        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4052    )]
4053    pub message_ts: String,
4054    #[serde(
4055        default,
4056        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4057    )]
4058    pub ok: bool,
4059}
4060
4061/// Schema for successful response of chat.postMessage method
4062#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4063pub struct ChatPostMessageSuccessSchema {
4064    #[serde(
4065        default,
4066        skip_serializing_if = "String::is_empty",
4067        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4068    )]
4069    pub channel: String,
4070    pub message: ObjsMessage,
4071    #[serde(
4072        default,
4073        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4074    )]
4075    pub ok: bool,
4076    #[serde(
4077        default,
4078        skip_serializing_if = "String::is_empty",
4079        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4080    )]
4081    pub ts: String,
4082}
4083
4084#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4085pub struct Message {
4086    #[serde(
4087        default,
4088        skip_serializing_if = "String::is_empty",
4089        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4090    )]
4091    pub bot_id: String,
4092    #[serde(default, skip_serializing_if = "Option::is_none")]
4093    pub bot_profile: Option<ObjsBotProfile>,
4094    #[serde(
4095        default,
4096        skip_serializing_if = "String::is_empty",
4097        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4098    )]
4099    pub team: String,
4100    #[serde(
4101        default,
4102        skip_serializing_if = "String::is_empty",
4103        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4104    )]
4105    pub text: String,
4106    #[serde(
4107        default,
4108        skip_serializing_if = "String::is_empty",
4109        deserialize_with = "crate::utils::deserialize_null_string::deserialize",
4110        rename = "type"
4111    )]
4112    pub type_: String,
4113    #[serde(
4114        default,
4115        skip_serializing_if = "String::is_empty",
4116        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4117    )]
4118    pub user: String,
4119    #[serde(
4120        default,
4121        skip_serializing_if = "String::is_empty",
4122        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4123    )]
4124    pub username: String,
4125}
4126
4127/// Schema for successful response of chat.scheduleMessage method
4128#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4129pub struct ChatScheduleMessageSuccessSchema {
4130    #[serde(
4131        default,
4132        skip_serializing_if = "String::is_empty",
4133        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4134    )]
4135    pub channel: String,
4136    pub message: Message,
4137    #[serde(
4138        default,
4139        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4140    )]
4141    pub ok: bool,
4142    #[serde(
4143        default,
4144        skip_serializing_if = "crate::utils::zero_i64",
4145        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
4146    )]
4147    pub post_at: i64,
4148    #[serde(
4149        default,
4150        skip_serializing_if = "String::is_empty",
4151        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4152    )]
4153    pub scheduled_message_id: String,
4154}
4155
4156#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4157pub struct ScheduledMessages {
4158    #[serde(
4159        default,
4160        skip_serializing_if = "String::is_empty",
4161        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4162    )]
4163    pub channel_id: String,
4164    #[serde(
4165        default,
4166        skip_serializing_if = "crate::utils::zero_i64",
4167        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
4168    )]
4169    pub date_created: i64,
4170    #[serde(
4171        default,
4172        skip_serializing_if = "String::is_empty",
4173        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4174    )]
4175    pub id: String,
4176    #[serde(
4177        default,
4178        skip_serializing_if = "crate::utils::zero_i64",
4179        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
4180    )]
4181    pub post_at: i64,
4182    #[serde(
4183        default,
4184        skip_serializing_if = "String::is_empty",
4185        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4186    )]
4187    pub text: String,
4188}
4189
4190/// Schema for successful response from chat.scheduledMessages.list method
4191#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4192pub struct ChatScheduledMessagesListSchema {
4193    #[serde(
4194        default,
4195        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4196    )]
4197    pub ok: bool,
4198    pub response_metadata: NewPagingStyle,
4199    #[serde(
4200        default,
4201        skip_serializing_if = "Vec::is_empty",
4202        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4203    )]
4204    pub scheduled_messages: Vec<ScheduledMessages>,
4205}
4206
4207#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4208pub struct MessageObject {
4209    #[serde(
4210        default,
4211        skip_serializing_if = "Vec::is_empty",
4212        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4213    )]
4214    pub attachments: Vec<Fields>,
4215    #[serde(default, skip_serializing_if = "Option::is_none")]
4216    pub blocks: Option<Fields>,
4217    #[serde(
4218        default,
4219        skip_serializing_if = "String::is_empty",
4220        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4221    )]
4222    pub text: String,
4223}
4224
4225/// Schema for successful response of chat.update method
4226#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4227pub struct ChatUpdateSuccessSchema {
4228    #[serde(
4229        default,
4230        skip_serializing_if = "String::is_empty",
4231        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4232    )]
4233    pub channel: String,
4234    pub message: MessageObject,
4235    #[serde(
4236        default,
4237        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4238    )]
4239    pub ok: bool,
4240    #[serde(
4241        default,
4242        skip_serializing_if = "String::is_empty",
4243        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4244    )]
4245    pub text: String,
4246    #[serde(
4247        default,
4248        skip_serializing_if = "String::is_empty",
4249        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4250    )]
4251    pub ts: String,
4252}
4253
4254/// Schema for successful response conversations.close method
4255#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4256pub struct ConversationsCloseSuccessSchema {
4257    /**
4258     * Schema for successful response conversations.close method
4259     */
4260    #[serde(
4261        default,
4262        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4263    )]
4264    pub already_closed: bool,
4265    /**
4266     * Schema for successful response conversations.close method
4267     */
4268    #[serde(
4269        default,
4270        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4271    )]
4272    pub no_op: bool,
4273    #[serde(
4274        default,
4275        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4276    )]
4277    pub ok: bool,
4278}
4279
4280/// Schema for successful response conversations.info
4281#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4282pub struct ConversationsInfoSuccessSchema {
4283    #[serde(
4284        default,
4285        skip_serializing_if = "Vec::is_empty",
4286        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4287    )]
4288    pub channel: Vec<ObjsConversationAnyOf>,
4289    #[serde(
4290        default,
4291        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4292    )]
4293    pub ok: bool,
4294}
4295
4296/// All of the following types are flattened into one object:
4297///
4298/// - `i64`
4299/// - `serde_json::Value`
4300///
4301#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4302pub struct ChannelActionsTsAnyOf {
4303    #[serde(flatten)]
4304    pub i64: i64,
4305    #[serde(flatten)]
4306    pub value: serde_json::Value,
4307}
4308
4309/// Schema for successful response from conversations.history method
4310#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4311pub struct ConversationsHistorySuccessSchema {
4312    #[serde(
4313        default,
4314        skip_serializing_if = "crate::utils::zero_i64",
4315        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
4316    )]
4317    pub channel_actions_count: i64,
4318    #[serde(
4319        default,
4320        skip_serializing_if = "Vec::is_empty",
4321        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4322    )]
4323    pub channel_actions_ts: Vec<ChannelActionsTsAnyOf>,
4324    #[serde(
4325        default,
4326        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4327    )]
4328    pub has_more: bool,
4329    #[serde(
4330        default,
4331        skip_serializing_if = "Vec::is_empty",
4332        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4333    )]
4334    pub messages: Vec<ObjsMessage>,
4335    #[serde(
4336        default,
4337        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4338    )]
4339    pub ok: bool,
4340    #[serde(
4341        default,
4342        skip_serializing_if = "crate::utils::zero_i64",
4343        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
4344    )]
4345    pub pin_count: i64,
4346}
4347
4348#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4349pub struct ResponseMetadata {
4350    #[serde(
4351        default,
4352        skip_serializing_if = "Vec::is_empty",
4353        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4354    )]
4355    pub warnings: Vec<String>,
4356}
4357
4358/// Schema for successful response from conversations.join method
4359#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4360pub struct ConversationsJoinSuccessSchema {
4361    #[serde(
4362        default,
4363        skip_serializing_if = "Vec::is_empty",
4364        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4365    )]
4366    pub channel: Vec<ObjsConversationAnyOf>,
4367    #[serde(
4368        default,
4369        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4370    )]
4371    pub ok: bool,
4372    /**
4373     * Schema for successful response from conversations.join method
4374     */
4375    #[serde(default, skip_serializing_if = "Option::is_none")]
4376    pub response_metadata: Option<ResponseMetadata>,
4377    /**
4378     * Schema for successful response from conversations.join method
4379     */
4380    #[serde(
4381        default,
4382        skip_serializing_if = "String::is_empty",
4383        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4384    )]
4385    pub warning: String,
4386}
4387
4388/// Schema for successful response from conversations.leave method
4389#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4390pub struct ConversationsLeaveSuccessSchema {
4391    /**
4392     * Schema for successful response from conversations.leave method
4393     */
4394    #[serde(
4395        default,
4396        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4397    )]
4398    pub not_in_channel: bool,
4399    #[serde(
4400        default,
4401        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4402    )]
4403    pub ok: bool,
4404}
4405
4406/// Schema for successful response from conversations.list method
4407#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4408pub struct ConversationsListSuccessSchema {
4409    #[serde(
4410        default,
4411        skip_serializing_if = "Vec::is_empty",
4412        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4413    )]
4414    pub channels: Vec<Vec<ObjsConversationAnyOf>>,
4415    #[serde(
4416        default,
4417        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4418    )]
4419    pub ok: bool,
4420    /**
4421     * Schema for successful response from conversations.list method
4422     */
4423    #[serde(default, skip_serializing_if = "Option::is_none")]
4424    pub response_metadata: Option<NewPagingStyle>,
4425}
4426
4427/// Schema for successful response conversations.members method
4428#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4429pub struct ConversationsMembersSuccessSchema {
4430    #[serde(
4431        default,
4432        skip_serializing_if = "Vec::is_empty",
4433        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4434    )]
4435    pub members: Vec<String>,
4436    #[serde(
4437        default,
4438        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4439    )]
4440    pub ok: bool,
4441    pub response_metadata: NewPagingStyle,
4442}
4443
4444#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4445pub struct ChannelData {
4446    #[serde(
4447        default,
4448        skip_serializing_if = "String::is_empty",
4449        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4450    )]
4451    pub created: String,
4452    #[serde(
4453        default,
4454        skip_serializing_if = "String::is_empty",
4455        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4456    )]
4457    pub id: String,
4458    #[serde(
4459        default,
4460        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4461    )]
4462    pub is_im: bool,
4463    #[serde(
4464        default,
4465        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4466    )]
4467    pub is_open: bool,
4468    #[serde(
4469        default,
4470        skip_serializing_if = "String::is_empty",
4471        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4472    )]
4473    pub last_read: String,
4474    #[serde(default, skip_serializing_if = "Option::is_none")]
4475    pub latest: Option<ObjsMessage>,
4476    #[serde(
4477        default,
4478        skip_serializing_if = "crate::utils::zero_f64",
4479        deserialize_with = "crate::utils::deserialize_null_f64::deserialize"
4480    )]
4481    pub unread_count: f64,
4482    #[serde(
4483        default,
4484        skip_serializing_if = "crate::utils::zero_f64",
4485        deserialize_with = "crate::utils::deserialize_null_f64::deserialize"
4486    )]
4487    pub unread_count_display: f64,
4488    #[serde(
4489        default,
4490        skip_serializing_if = "String::is_empty",
4491        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4492    )]
4493    pub user: String,
4494}
4495
4496/// All of the following types are flattened into one object:
4497///
4498/// - `Vec<ObjsConversationAnyOf>`
4499/// - `ChannelData`
4500///
4501#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4502pub struct ChannelAnyOf {
4503    #[serde(flatten)]
4504    pub objs_conversation_any_of_vector: Vec<ObjsConversationAnyOf>,
4505    #[serde(flatten)]
4506    pub channel_data: ChannelData,
4507}
4508
4509/// Schema for successful response from conversations.open method when opening channels, ims, mpims
4510#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4511pub struct ConversationsOpenSuccessSchema {
4512    /**
4513     * Schema for successful response from conversations.open method when opening channels, ims, mpims
4514     */
4515    #[serde(
4516        default,
4517        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4518    )]
4519    pub already_open: bool,
4520    #[serde(
4521        default,
4522        skip_serializing_if = "Vec::is_empty",
4523        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4524    )]
4525    pub channel: Vec<ChannelAnyOf>,
4526    /**
4527     * Schema for successful response from conversations.open method when opening channels, ims, mpims
4528     */
4529    #[serde(
4530        default,
4531        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4532    )]
4533    pub no_op: bool,
4534    #[serde(
4535        default,
4536        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4537    )]
4538    pub ok: bool,
4539}
4540
4541/// Schema for successful response from conversations.replies method
4542#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4543pub struct ConversationsRepliesSuccessSchema {
4544    /**
4545     * Schema for successful response from conversations.replies method
4546     */
4547    #[serde(
4548        default,
4549        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4550    )]
4551    pub has_more: bool,
4552    #[serde(
4553        default,
4554        skip_serializing_if = "Vec::is_empty",
4555        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4556    )]
4557    pub messages: Vec<String>,
4558    #[serde(
4559        default,
4560        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4561    )]
4562    pub ok: bool,
4563}
4564
4565/// Schema for successful response from dnd.endSnooze method
4566#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4567pub struct DndEndSnoozeSchema {
4568    #[serde(
4569        default,
4570        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4571    )]
4572    pub dnd_enabled: bool,
4573    #[serde(
4574        default,
4575        skip_serializing_if = "crate::utils::zero_i64",
4576        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
4577    )]
4578    pub next_dnd_end_ts: i64,
4579    #[serde(
4580        default,
4581        skip_serializing_if = "crate::utils::zero_i64",
4582        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
4583    )]
4584    pub next_dnd_start_ts: i64,
4585    #[serde(
4586        default,
4587        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4588    )]
4589    pub ok: bool,
4590    #[serde(
4591        default,
4592        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4593    )]
4594    pub snooze_enabled: bool,
4595}
4596
4597/// Schema for successful response from dnd.info method
4598#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4599pub struct DndInfoSchema {
4600    #[serde(
4601        default,
4602        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4603    )]
4604    pub dnd_enabled: bool,
4605    #[serde(
4606        default,
4607        skip_serializing_if = "crate::utils::zero_i64",
4608        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
4609    )]
4610    pub next_dnd_end_ts: i64,
4611    #[serde(
4612        default,
4613        skip_serializing_if = "crate::utils::zero_i64",
4614        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
4615    )]
4616    pub next_dnd_start_ts: i64,
4617    #[serde(
4618        default,
4619        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4620    )]
4621    pub ok: bool,
4622    /**
4623     * Schema for successful response from dnd.info method
4624     */
4625    #[serde(
4626        default,
4627        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4628    )]
4629    pub snooze_enabled: bool,
4630    /**
4631     * Schema for successful response from dnd.info method
4632     */
4633    #[serde(
4634        default,
4635        skip_serializing_if = "crate::utils::zero_i64",
4636        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
4637    )]
4638    pub snooze_endtime: i64,
4639    /**
4640     * Schema for successful response from dnd.info method
4641     */
4642    #[serde(
4643        default,
4644        skip_serializing_if = "crate::utils::zero_i64",
4645        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
4646    )]
4647    pub snooze_remaining: i64,
4648}
4649
4650/// Schema for successful response from dnd.setSnooze method
4651#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4652pub struct DndSetSnoozeSchema {
4653    #[serde(
4654        default,
4655        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4656    )]
4657    pub ok: bool,
4658    #[serde(
4659        default,
4660        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4661    )]
4662    pub snooze_enabled: bool,
4663    #[serde(
4664        default,
4665        skip_serializing_if = "crate::utils::zero_i64",
4666        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
4667    )]
4668    pub snooze_endtime: i64,
4669    #[serde(
4670        default,
4671        skip_serializing_if = "crate::utils::zero_i64",
4672        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
4673    )]
4674    pub snooze_remaining: i64,
4675}
4676
4677/// Schema for successful response from files.info method
4678#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4679pub struct FilesInfoSchema {
4680    #[serde(
4681        default,
4682        skip_serializing_if = "Vec::is_empty",
4683        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4684    )]
4685    pub comments: Vec<String>,
4686    #[serde(default, skip_serializing_if = "Option::is_none")]
4687    pub content_html: Option<serde_json::Value>,
4688    /**
4689     * Schema for successful response from files.info method
4690     */
4691    #[serde(
4692        default,
4693        skip_serializing_if = "String::is_empty",
4694        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4695    )]
4696    pub editor: String,
4697    pub file: ObjsFile,
4698    #[serde(
4699        default,
4700        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4701    )]
4702    pub ok: bool,
4703    /**
4704     * Schema for successful response from files.info method
4705     */
4706    #[serde(default, skip_serializing_if = "Option::is_none")]
4707    pub paging: Option<ObjsPaging>,
4708    /**
4709     * Schema for successful response from files.info method
4710     */
4711    #[serde(
4712        default,
4713        skip_serializing_if = "Vec::is_empty",
4714        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4715    )]
4716    pub response_metadata: Vec<ObjsResponseMetadataAnyOf>,
4717}
4718
4719/// Schema for successful response from files.list method
4720#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4721pub struct FilesListSchema {
4722    #[serde(
4723        default,
4724        skip_serializing_if = "Vec::is_empty",
4725        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4726    )]
4727    pub files: Vec<ObjsFile>,
4728    #[serde(
4729        default,
4730        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4731    )]
4732    pub ok: bool,
4733    pub paging: ObjsPaging,
4734}
4735
4736/// Schema for successful response files.upload method
4737#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4738pub struct FilesUploadSchema {
4739    pub file: ObjsFile,
4740    #[serde(
4741        default,
4742        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4743    )]
4744    pub ok: bool,
4745}
4746
4747/// Schema for successful response from migration.exchange method
4748#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4749pub struct MigrationExchangeSuccessSchema {
4750    #[serde(
4751        default,
4752        skip_serializing_if = "String::is_empty",
4753        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4754    )]
4755    pub enterprise_id: String,
4756    /**
4757     * Schema for successful response from migration.exchange method
4758     */
4759    #[serde(
4760        default,
4761        skip_serializing_if = "Vec::is_empty",
4762        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4763    )]
4764    pub invalid_user_ids: Vec<String>,
4765    #[serde(
4766        default,
4767        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4768    )]
4769    pub ok: bool,
4770    #[serde(
4771        default,
4772        skip_serializing_if = "String::is_empty",
4773        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4774    )]
4775    pub team_id: String,
4776    /**
4777     * Schema for successful response from migration.exchange method
4778     */
4779    #[serde(default, skip_serializing_if = "Option::is_none")]
4780    pub user_id_map: Option<Fields>,
4781}
4782
4783#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
4784pub enum ItemsType {
4785    #[serde(rename = "file")]
4786    File,
4787    #[serde(rename = "")]
4788    #[default]
4789    Noop,
4790    #[serde(other)]
4791    FallthroughString,
4792}
4793
4794impl std::fmt::Display for ItemsType {
4795    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4796        match self {
4797            ItemsType::File => "file",
4798            ItemsType::Noop => "",
4799            ItemsType::FallthroughString => "*",
4800        }
4801        .fmt(f)
4802    }
4803}
4804
4805impl ItemsType {
4806    pub fn is_noop(&self) -> bool {
4807        matches!(self, ItemsType::Noop)
4808    }
4809}
4810
4811#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4812pub struct Items {
4813    #[serde(
4814        default,
4815        skip_serializing_if = "crate::utils::zero_i64",
4816        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
4817    )]
4818    pub created: i64,
4819    #[serde(
4820        default,
4821        skip_serializing_if = "String::is_empty",
4822        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4823    )]
4824    pub created_by: String,
4825    #[serde(default, skip_serializing_if = "Option::is_none")]
4826    pub file: Option<ObjsFile>,
4827    #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
4828    pub type_: Option<ItemsType>,
4829}
4830
4831#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema, Default)]
4832pub enum MessagePinType {
4833    #[serde(rename = "message")]
4834    Message,
4835    #[serde(rename = "")]
4836    #[default]
4837    Noop,
4838    #[serde(other)]
4839    FallthroughString,
4840}
4841
4842impl std::fmt::Display for MessagePinType {
4843    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
4844        match self {
4845            MessagePinType::Message => "message",
4846            MessagePinType::Noop => "",
4847            MessagePinType::FallthroughString => "*",
4848        }
4849        .fmt(f)
4850    }
4851}
4852
4853impl MessagePinType {
4854    pub fn is_noop(&self) -> bool {
4855        matches!(self, MessagePinType::Noop)
4856    }
4857}
4858
4859#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4860pub struct MessagePin {
4861    #[serde(
4862        default,
4863        skip_serializing_if = "String::is_empty",
4864        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4865    )]
4866    pub channel: String,
4867    #[serde(
4868        default,
4869        skip_serializing_if = "crate::utils::zero_i64",
4870        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
4871    )]
4872    pub created: i64,
4873    #[serde(
4874        default,
4875        skip_serializing_if = "String::is_empty",
4876        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
4877    )]
4878    pub created_by: String,
4879    #[serde(default, skip_serializing_if = "Option::is_none")]
4880    pub message: Option<ObjsMessage>,
4881    #[serde(default, skip_serializing_if = "Option::is_none", rename = "type")]
4882    pub type_: Option<MessagePinType>,
4883}
4884
4885/// All of the following types are flattened into one object:
4886///
4887/// - `Items`
4888/// - `MessagePin`
4889///
4890#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4891pub struct ItemsAnyOf {
4892    #[serde(flatten)]
4893    pub items: Items,
4894    #[serde(flatten)]
4895    pub message_pin: MessagePin,
4896}
4897
4898#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4899pub struct PinsListResponse {
4900    #[serde(
4901        default,
4902        skip_serializing_if = "Vec::is_empty",
4903        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4904    )]
4905    pub items: Vec<ItemsAnyOf>,
4906    #[serde(
4907        default,
4908        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4909    )]
4910    pub ok: bool,
4911}
4912
4913#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4914pub struct PinsListResponseData {
4915    #[serde(
4916        default,
4917        skip_serializing_if = "crate::utils::zero_i64",
4918        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
4919    )]
4920    pub count: i64,
4921    #[serde(
4922        default,
4923        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4924    )]
4925    pub ok: bool,
4926}
4927
4928/// All of the following types are flattened into one object:
4929///
4930/// - `PinsListResponse`
4931/// - `PinsListResponseData`
4932///
4933#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4934pub struct PinsListResponseAnyOf {
4935    #[serde(flatten)]
4936    pub pins_list_response: PinsListResponse,
4937    #[serde(flatten)]
4938    pub pins_list_response_data: PinsListResponseData,
4939}
4940
4941/// Schema for successful response from reactions.list method
4942#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4943pub struct ReactionsListSchema {
4944    #[serde(
4945        default,
4946        skip_serializing_if = "Vec::is_empty",
4947        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4948    )]
4949    pub items: Vec<String>,
4950    #[serde(
4951        default,
4952        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4953    )]
4954    pub ok: bool,
4955    /**
4956     * Schema for successful response from reactions.list method
4957     */
4958    #[serde(default, skip_serializing_if = "Option::is_none")]
4959    pub paging: Option<ObjsPaging>,
4960    /**
4961     * Schema for successful response from reactions.list method
4962     */
4963    #[serde(
4964        default,
4965        skip_serializing_if = "Vec::is_empty",
4966        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4967    )]
4968    pub response_metadata: Vec<ObjsResponseMetadataAnyOf>,
4969}
4970
4971/// Schema for successful response from reminders.add method
4972#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4973pub struct RemindersAddSchema {
4974    #[serde(
4975        default,
4976        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4977    )]
4978    pub ok: bool,
4979    pub reminder: ObjsReminder,
4980}
4981
4982/// Schema for successful response from reminders.list method
4983#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4984pub struct RemindersListSchema {
4985    #[serde(
4986        default,
4987        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
4988    )]
4989    pub ok: bool,
4990    #[serde(
4991        default,
4992        skip_serializing_if = "Vec::is_empty",
4993        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
4994    )]
4995    pub reminders: Vec<ObjsReminder>,
4996}
4997
4998#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
4999pub struct SelfData {
5000    #[serde(
5001        default,
5002        skip_serializing_if = "String::is_empty",
5003        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5004    )]
5005    pub id: String,
5006    #[serde(
5007        default,
5008        skip_serializing_if = "String::is_empty",
5009        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5010    )]
5011    pub name: String,
5012}
5013
5014#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5015pub struct RtmConnectSchemaTeam {
5016    #[serde(
5017        default,
5018        skip_serializing_if = "String::is_empty",
5019        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5020    )]
5021    pub domain: String,
5022    #[serde(
5023        default,
5024        skip_serializing_if = "String::is_empty",
5025        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5026    )]
5027    pub id: String,
5028    #[serde(
5029        default,
5030        skip_serializing_if = "String::is_empty",
5031        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5032    )]
5033    pub name: String,
5034}
5035
5036/// Schema for successful response from rtm.connect method
5037#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5038pub struct RtmConnectSchema {
5039    #[serde(
5040        default,
5041        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5042    )]
5043    pub ok: bool,
5044    #[serde(rename = "self")]
5045    pub self_: SelfData,
5046    pub team: RtmConnectSchemaTeam,
5047    #[serde(
5048        default,
5049        skip_serializing_if = "String::is_empty",
5050        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5051    )]
5052    pub url: String,
5053}
5054
5055/// Schema for successful response from stars.list method
5056#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5057pub struct StarsListSchema {
5058    #[serde(
5059        default,
5060        skip_serializing_if = "Vec::is_empty",
5061        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
5062    )]
5063    pub items: Vec<String>,
5064    #[serde(
5065        default,
5066        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5067    )]
5068    pub ok: bool,
5069    /**
5070     * Schema for successful response from stars.list method
5071     */
5072    #[serde(default, skip_serializing_if = "Option::is_none")]
5073    pub paging: Option<ObjsPaging>,
5074}
5075
5076#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5077pub struct Logins {
5078    #[serde(
5079        default,
5080        skip_serializing_if = "crate::utils::zero_i64",
5081        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
5082    )]
5083    pub count: i64,
5084    #[serde(
5085        default,
5086        skip_serializing_if = "String::is_empty",
5087        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5088    )]
5089    pub country: String,
5090    #[serde(
5091        default,
5092        skip_serializing_if = "crate::utils::zero_i64",
5093        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
5094    )]
5095    pub date_first: i64,
5096    #[serde(
5097        default,
5098        skip_serializing_if = "crate::utils::zero_i64",
5099        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
5100    )]
5101    pub date_last: i64,
5102    #[serde(
5103        default,
5104        skip_serializing_if = "String::is_empty",
5105        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5106    )]
5107    pub ip: String,
5108    #[serde(
5109        default,
5110        skip_serializing_if = "String::is_empty",
5111        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5112    )]
5113    pub isp: String,
5114    #[serde(
5115        default,
5116        skip_serializing_if = "String::is_empty",
5117        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5118    )]
5119    pub region: String,
5120    #[serde(
5121        default,
5122        skip_serializing_if = "String::is_empty",
5123        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5124    )]
5125    pub user_agent: String,
5126    #[serde(
5127        default,
5128        skip_serializing_if = "String::is_empty",
5129        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5130    )]
5131    pub user_id: String,
5132    #[serde(
5133        default,
5134        skip_serializing_if = "String::is_empty",
5135        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5136    )]
5137    pub username: String,
5138}
5139
5140/// Schema for successful response from team.accessLogs method
5141#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5142pub struct TeamAccessLogsSchema {
5143    #[serde(
5144        default,
5145        skip_serializing_if = "Vec::is_empty",
5146        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
5147    )]
5148    pub logins: Vec<Logins>,
5149    #[serde(
5150        default,
5151        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5152    )]
5153    pub ok: bool,
5154    pub paging: ObjsPaging,
5155}
5156
5157/// Schema for successful response from team.info method
5158#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5159pub struct TeamInfoSchema {
5160    #[serde(
5161        default,
5162        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5163    )]
5164    pub ok: bool,
5165    pub team: ObjsTeam,
5166}
5167
5168#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5169pub struct Logs {
5170    #[serde(
5171        default,
5172        skip_serializing_if = "String::is_empty",
5173        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5174    )]
5175    pub admin_app_id: String,
5176    #[serde(
5177        default,
5178        skip_serializing_if = "String::is_empty",
5179        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5180    )]
5181    pub app_id: String,
5182    #[serde(
5183        default,
5184        skip_serializing_if = "String::is_empty",
5185        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5186    )]
5187    pub app_type: String,
5188    #[serde(
5189        default,
5190        skip_serializing_if = "String::is_empty",
5191        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5192    )]
5193    pub change_type: String,
5194    #[serde(
5195        default,
5196        skip_serializing_if = "String::is_empty",
5197        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5198    )]
5199    pub channel: String,
5200    #[serde(
5201        default,
5202        skip_serializing_if = "String::is_empty",
5203        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5204    )]
5205    pub date: String,
5206    #[serde(
5207        default,
5208        skip_serializing_if = "String::is_empty",
5209        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5210    )]
5211    pub scope: String,
5212    #[serde(
5213        default,
5214        skip_serializing_if = "String::is_empty",
5215        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5216    )]
5217    pub service_id: String,
5218    #[serde(
5219        default,
5220        skip_serializing_if = "String::is_empty",
5221        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5222    )]
5223    pub service_type: String,
5224    #[serde(
5225        default,
5226        skip_serializing_if = "String::is_empty",
5227        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5228    )]
5229    pub user_id: String,
5230    #[serde(
5231        default,
5232        skip_serializing_if = "String::is_empty",
5233        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5234    )]
5235    pub user_name: String,
5236}
5237
5238/// Schema for successful response from team.integrationLogs method
5239#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5240pub struct TeamIntegrationLogsSchema {
5241    #[serde(
5242        default,
5243        skip_serializing_if = "Vec::is_empty",
5244        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
5245    )]
5246    pub logs: Vec<Logs>,
5247    #[serde(
5248        default,
5249        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5250    )]
5251    pub ok: bool,
5252    pub paging: ObjsPaging,
5253}
5254
5255/// Schema for successful response from team.profile.get method
5256#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5257pub struct TeamProfileGetSuccessSchema {
5258    #[serde(
5259        default,
5260        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5261    )]
5262    pub ok: bool,
5263    pub profile: Profile,
5264}
5265
5266/// Schema for successful response from usergroups.create method
5267#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5268pub struct UsergroupsCreateSchema {
5269    #[serde(
5270        default,
5271        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5272    )]
5273    pub ok: bool,
5274    pub usergroup: ObjsSubteam,
5275}
5276
5277/// Schema for successful response from usergroups.list method
5278#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5279pub struct UsergroupsListSchema {
5280    #[serde(
5281        default,
5282        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5283    )]
5284    pub ok: bool,
5285    #[serde(
5286        default,
5287        skip_serializing_if = "Vec::is_empty",
5288        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
5289    )]
5290    pub usergroups: Vec<ObjsSubteam>,
5291}
5292
5293/// Schema for successful response from usergroups.users.list method
5294#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5295pub struct UsergroupsUsersListSchema {
5296    #[serde(
5297        default,
5298        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5299    )]
5300    pub ok: bool,
5301    #[serde(
5302        default,
5303        skip_serializing_if = "Vec::is_empty",
5304        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
5305    )]
5306    pub users: Vec<String>,
5307}
5308
5309/// Schema for successful response from users.conversations method. Returned conversation objects do not include `num_members` or `is_member`
5310#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5311pub struct UsersConversationsSuccessSchema {
5312    #[serde(
5313        default,
5314        skip_serializing_if = "Vec::is_empty",
5315        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
5316    )]
5317    pub channels: Vec<Vec<ObjsConversationAnyOf>>,
5318    #[serde(
5319        default,
5320        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5321    )]
5322    pub ok: bool,
5323    /**
5324     * Schema for successful response from users.conversations method. Returned conversation objects do not include `num_members` or `is_member`
5325     */
5326    #[serde(default, skip_serializing_if = "Option::is_none")]
5327    pub response_metadata: Option<NewPagingStyle>,
5328}
5329
5330/// Generated from users.getPresence with shasum e7251aec575d8863f9e0eb38663ae9dc26655f65
5331#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5332pub struct ApiMethodUsersGetPresence {
5333    /**
5334     * Generated from users.getPresence with shasum e7251aec575d8863f9e0eb38663ae9dc26655f65
5335     */
5336    #[serde(
5337        default,
5338        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5339    )]
5340    pub auto_away: bool,
5341    /**
5342     * Generated from users.getPresence with shasum e7251aec575d8863f9e0eb38663ae9dc26655f65
5343     */
5344    #[serde(
5345        default,
5346        skip_serializing_if = "crate::utils::zero_i64",
5347        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
5348    )]
5349    pub connection_count: i64,
5350    /**
5351     * Generated from users.getPresence with shasum e7251aec575d8863f9e0eb38663ae9dc26655f65
5352     */
5353    #[serde(
5354        default,
5355        skip_serializing_if = "crate::utils::zero_i64",
5356        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
5357    )]
5358    pub last_activity: i64,
5359    /**
5360     * Generated from users.getPresence with shasum e7251aec575d8863f9e0eb38663ae9dc26655f65
5361     */
5362    #[serde(
5363        default,
5364        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5365    )]
5366    pub manual_away: bool,
5367    #[serde(
5368        default,
5369        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5370    )]
5371    pub ok: bool,
5372    /**
5373     * Generated from users.getPresence with shasum e7251aec575d8863f9e0eb38663ae9dc26655f65
5374     */
5375    #[serde(
5376        default,
5377        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5378    )]
5379    pub online: bool,
5380    #[serde(
5381        default,
5382        skip_serializing_if = "String::is_empty",
5383        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5384    )]
5385    pub presence: String,
5386}
5387
5388#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5389pub struct UsersIdentityResponseTeam {
5390    #[serde(
5391        default,
5392        skip_serializing_if = "String::is_empty",
5393        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5394    )]
5395    pub id: String,
5396}
5397
5398/// Schema for 'identity.basic' scope
5399#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5400pub struct UsersIdentityResponse {
5401    #[serde(
5402        default,
5403        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5404    )]
5405    pub ok: bool,
5406    pub team: UsersIdentityResponseTeam,
5407    pub user: SelfData,
5408}
5409
5410#[derive(Serialize, Default, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5411pub struct User {
5412    #[serde(
5413        default,
5414        skip_serializing_if = "String::is_empty",
5415        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5416    )]
5417    pub email: String,
5418    #[serde(
5419        default,
5420        skip_serializing_if = "String::is_empty",
5421        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5422    )]
5423    pub id: String,
5424    #[serde(
5425        default,
5426        skip_serializing_if = "String::is_empty",
5427        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5428    )]
5429    pub name: String,
5430}
5431
5432/// Schema for 'identity.basic,identity.email' scopes
5433#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5434pub struct UsersIdentityResponseData {
5435    #[serde(
5436        default,
5437        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5438    )]
5439    pub ok: bool,
5440    pub team: UsersIdentityResponseTeam,
5441    pub user: User,
5442}
5443
5444#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5445pub struct UsersIdentityResponseUser {
5446    #[serde(
5447        default,
5448        skip_serializing_if = "String::is_empty",
5449        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5450    )]
5451    pub id: String,
5452    #[serde(
5453        default,
5454        skip_serializing_if = "String::is_empty",
5455        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5456    )]
5457    pub image_192: String,
5458    #[serde(
5459        default,
5460        skip_serializing_if = "String::is_empty",
5461        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5462    )]
5463    pub image_24: String,
5464    #[serde(
5465        default,
5466        skip_serializing_if = "String::is_empty",
5467        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5468    )]
5469    pub image_32: String,
5470    #[serde(
5471        default,
5472        skip_serializing_if = "String::is_empty",
5473        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5474    )]
5475    pub image_48: String,
5476    #[serde(
5477        default,
5478        skip_serializing_if = "String::is_empty",
5479        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5480    )]
5481    pub image_512: String,
5482    #[serde(
5483        default,
5484        skip_serializing_if = "String::is_empty",
5485        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5486    )]
5487    pub image_72: String,
5488    #[serde(
5489        default,
5490        skip_serializing_if = "String::is_empty",
5491        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5492    )]
5493    pub name: String,
5494}
5495
5496/// Schema for 'identity.basic,identity.avatar' scopes
5497#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5498pub struct UsersIdentityResponseDataType {
5499    #[serde(
5500        default,
5501        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5502    )]
5503    pub ok: bool,
5504    pub team: UsersIdentityResponseTeam,
5505    pub user: UsersIdentityResponseUser,
5506}
5507
5508#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5509pub struct UsersIdentityResponseTeamData {
5510    #[serde(
5511        default,
5512        skip_serializing_if = "String::is_empty",
5513        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5514    )]
5515    pub domain: String,
5516    #[serde(
5517        default,
5518        skip_serializing_if = "String::is_empty",
5519        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5520    )]
5521    pub id: String,
5522    #[serde(
5523        default,
5524        skip_serializing_if = "String::is_empty",
5525        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5526    )]
5527    pub image_102: String,
5528    #[serde(
5529        default,
5530        skip_serializing_if = "String::is_empty",
5531        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5532    )]
5533    pub image_132: String,
5534    #[serde(
5535        default,
5536        skip_serializing_if = "String::is_empty",
5537        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5538    )]
5539    pub image_230: String,
5540    #[serde(
5541        default,
5542        skip_serializing_if = "String::is_empty",
5543        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5544    )]
5545    pub image_34: String,
5546    #[serde(
5547        default,
5548        skip_serializing_if = "String::is_empty",
5549        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5550    )]
5551    pub image_44: String,
5552    #[serde(
5553        default,
5554        skip_serializing_if = "String::is_empty",
5555        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5556    )]
5557    pub image_68: String,
5558    #[serde(
5559        default,
5560        skip_serializing_if = "String::is_empty",
5561        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5562    )]
5563    pub image_88: String,
5564    #[serde(
5565        default,
5566        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5567    )]
5568    pub image_default: bool,
5569    #[serde(
5570        default,
5571        skip_serializing_if = "String::is_empty",
5572        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5573    )]
5574    pub name: String,
5575}
5576
5577/// Schema for 'identity.basic,identity.team' scopes
5578#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5579pub struct UsersIdentityResponseDataTypeLinks {
5580    #[serde(
5581        default,
5582        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5583    )]
5584    pub ok: bool,
5585    pub team: UsersIdentityResponseTeamData,
5586    pub user: SelfData,
5587}
5588
5589/// All of the following types are flattened into one object:
5590///
5591/// - `UsersIdentityResponse`
5592/// - `UsersIdentityResponseData`
5593/// - `UsersIdentityResponseDataType`
5594/// - `UsersIdentityResponseDataTypeLinks`
5595///
5596#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5597pub struct UsersIdentityResponseAnyOf {
5598    /**
5599     * Schema for 'identity.basic' scope
5600     */
5601    #[serde(flatten)]
5602    pub users_identity_response: UsersIdentityResponse,
5603    /**
5604     * Schema for 'identity.basic,identity.email' scopes
5605     */
5606    #[serde(flatten)]
5607    pub users_identity_response_data: UsersIdentityResponseData,
5608    /**
5609     * Schema for 'identity.basic,identity.avatar' scopes
5610     */
5611    #[serde(flatten)]
5612    pub users_identity_response_data_type: UsersIdentityResponseDataType,
5613    /**
5614     * Schema for 'identity.basic,identity.team' scopes
5615     */
5616    #[serde(flatten)]
5617    pub users_identity_response_data_type_links: UsersIdentityResponseDataTypeLinks,
5618}
5619
5620/// Schema for successful response from users.info method
5621#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5622pub struct UsersInfoSuccessSchema {
5623    #[serde(
5624        default,
5625        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5626    )]
5627    pub ok: bool,
5628    #[serde(
5629        default,
5630        skip_serializing_if = "Vec::is_empty",
5631        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
5632    )]
5633    pub user: Vec<ObjsUserAnyOf>,
5634}
5635
5636/// Schema for successful response from users.list method
5637#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5638pub struct UsersListSchema {
5639    #[serde(
5640        default,
5641        skip_serializing_if = "crate::utils::zero_i64",
5642        deserialize_with = "crate::utils::deserialize_null_i64::deserialize"
5643    )]
5644    pub cache_ts: i64,
5645    #[serde(
5646        default,
5647        skip_serializing_if = "Vec::is_empty",
5648        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
5649    )]
5650    pub members: Vec<Vec<ObjsUserAnyOf>>,
5651    #[serde(
5652        default,
5653        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5654    )]
5655    pub ok: bool,
5656    /**
5657     * Schema for successful response from users.list method
5658     */
5659    #[serde(
5660        default,
5661        skip_serializing_if = "Vec::is_empty",
5662        deserialize_with = "crate::utils::deserialize_null_vector::deserialize"
5663    )]
5664    pub response_metadata: Vec<ObjsResponseMetadataAnyOf>,
5665}
5666
5667/// Schema for successful response from users.profile.get method
5668#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5669pub struct UsersProfileGetSchema {
5670    #[serde(
5671        default,
5672        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5673    )]
5674    pub ok: bool,
5675    pub profile: ObjsUserProfile,
5676}
5677
5678/// Schema for successful response from users.profile.set method
5679#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5680pub struct UsersProfileSetSchema {
5681    /**
5682     * Schema for successful response from users.profile.set method
5683     */
5684    #[serde(
5685        default,
5686        skip_serializing_if = "String::is_empty",
5687        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5688    )]
5689    pub email_pending: String,
5690    #[serde(
5691        default,
5692        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5693    )]
5694    pub ok: bool,
5695    pub profile: ObjsUserProfile,
5696    #[serde(
5697        default,
5698        skip_serializing_if = "String::is_empty",
5699        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5700    )]
5701    pub username: String,
5702}
5703
5704#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5705pub struct UsersSetPhotoSchemaProfile {
5706    #[serde(
5707        default,
5708        skip_serializing_if = "String::is_empty",
5709        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5710    )]
5711    pub avatar_hash: String,
5712    #[serde(
5713        default,
5714        skip_serializing_if = "String::is_empty",
5715        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5716    )]
5717    pub image_1024: String,
5718    #[serde(
5719        default,
5720        skip_serializing_if = "String::is_empty",
5721        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5722    )]
5723    pub image_192: String,
5724    #[serde(
5725        default,
5726        skip_serializing_if = "String::is_empty",
5727        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5728    )]
5729    pub image_24: String,
5730    #[serde(
5731        default,
5732        skip_serializing_if = "String::is_empty",
5733        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5734    )]
5735    pub image_32: String,
5736    #[serde(
5737        default,
5738        skip_serializing_if = "String::is_empty",
5739        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5740    )]
5741    pub image_48: String,
5742    #[serde(
5743        default,
5744        skip_serializing_if = "String::is_empty",
5745        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5746    )]
5747    pub image_512: String,
5748    #[serde(
5749        default,
5750        skip_serializing_if = "String::is_empty",
5751        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5752    )]
5753    pub image_72: String,
5754    #[serde(
5755        default,
5756        skip_serializing_if = "String::is_empty",
5757        deserialize_with = "crate::utils::deserialize_null_string::deserialize"
5758    )]
5759    pub image_original: String,
5760}
5761
5762/// Schema for successful response from users.setPhoto method
5763#[derive(Serialize, Deserialize, PartialEq, Debug, Clone, JsonSchema)]
5764pub struct UsersSetPhotoSchema {
5765    #[serde(
5766        default,
5767        deserialize_with = "crate::utils::deserialize_null_boolean::deserialize"
5768    )]
5769    pub ok: bool,
5770    pub profile: UsersSetPhotoSchemaProfile,
5771}