sfr_types/generated/
files_upload.rs

1//! !!! DO NOT EDIT THIS FILE !!!
2//!
3//! This file is auto-generated by './generate-schema.sh' in the repository.
4//! Please refer to the script code to learn how to update the source data.
5
6#![allow(clippy::enum_variant_names)]
7#![allow(clippy::missing_docs_in_private_items)]
8#![allow(missing_docs)]
9#![allow(non_snake_case)]
10
11// Example code that deserializes and serializes the model.
12// extern crate serde;
13// #[macro_use]
14// extern crate serde_derive;
15// extern crate serde_json;
16//
17// use generated_module::FilesUploadResponse;
18//
19// fn main() {
20//     let json = r#"{"answer": 42}"#;
21//     let model: FilesUploadResponse = serde_json::from_str(&json).unwrap();
22// }
23
24use serde::{Deserialize, Serialize};
25use std::collections::HashMap;
26
27#[derive(Debug, Clone, Serialize, Deserialize)]
28pub struct FilesUploadResponse {
29    #[serde(skip_serializing_if = "Option::is_none")]
30    pub error: Option<String>,
31
32    #[serde(skip_serializing_if = "Option::is_none")]
33    pub file: Option<File>,
34
35    #[serde(skip_serializing_if = "Option::is_none")]
36    pub needed: Option<String>,
37
38    #[serde(skip_serializing_if = "Option::is_none")]
39    pub ok: Option<bool>,
40
41    #[serde(skip_serializing_if = "Option::is_none")]
42    pub provided: Option<String>,
43}
44
45#[derive(Debug, Clone, Serialize, Deserialize)]
46pub struct File {
47    #[serde(skip_serializing_if = "Option::is_none")]
48    pub access: Option<String>,
49
50    #[serde(skip_serializing_if = "Option::is_none")]
51    pub alt_txt: Option<String>,
52
53    #[serde(skip_serializing_if = "Option::is_none")]
54    pub app_id: Option<String>,
55
56    #[serde(skip_serializing_if = "Option::is_none")]
57    pub app_name: Option<String>,
58
59    #[serde(skip_serializing_if = "Option::is_none")]
60    pub bot_id: Option<String>,
61
62    #[serde(skip_serializing_if = "Option::is_none")]
63    pub can_toggle_canvas_lock: Option<bool>,
64
65    #[serde(skip_serializing_if = "Option::is_none")]
66    pub canvas_template_mode: Option<String>,
67
68    #[serde(skip_serializing_if = "Option::is_none")]
69    pub cc: Option<Vec<Cc>>,
70
71    #[serde(skip_serializing_if = "Option::is_none")]
72    pub channel_actions_count: Option<i64>,
73
74    #[serde(skip_serializing_if = "Option::is_none")]
75    pub channel_actions_ts: Option<String>,
76
77    #[serde(skip_serializing_if = "Option::is_none")]
78    pub channels: Option<Vec<String>>,
79
80    #[serde(skip_serializing_if = "Option::is_none")]
81    pub comments_count: Option<i64>,
82
83    #[serde(skip_serializing_if = "Option::is_none")]
84    pub converted_pdf: Option<String>,
85
86    #[serde(skip_serializing_if = "Option::is_none")]
87    pub created: Option<i64>,
88
89    #[serde(skip_serializing_if = "Option::is_none")]
90    pub deanimate: Option<String>,
91
92    #[serde(skip_serializing_if = "Option::is_none")]
93    pub deanimate_gif: Option<String>,
94
95    #[serde(skip_serializing_if = "Option::is_none")]
96    pub display_as_bot: Option<bool>,
97
98    #[serde(skip_serializing_if = "Option::is_none")]
99    pub dm_mpdm_users_with_file_access: Option<Vec<DmMpdmUsersWithFileAccess>>,
100
101    #[serde(skip_serializing_if = "Option::is_none")]
102    pub duration_ms: Option<i64>,
103
104    #[serde(skip_serializing_if = "Option::is_none")]
105    pub edit_link: Option<String>,
106
107    #[serde(skip_serializing_if = "Option::is_none")]
108    pub edit_timestamp: Option<i64>,
109
110    #[serde(skip_serializing_if = "Option::is_none")]
111    pub editable: Option<bool>,
112
113    #[serde(skip_serializing_if = "Option::is_none")]
114    pub editor: Option<String>,
115
116    #[serde(skip_serializing_if = "Option::is_none")]
117    pub editors: Option<Vec<String>>,
118
119    #[serde(skip_serializing_if = "Option::is_none")]
120    pub external_id: Option<String>,
121
122    #[serde(skip_serializing_if = "Option::is_none")]
123    pub external_type: Option<String>,
124
125    #[serde(skip_serializing_if = "Option::is_none")]
126    pub external_url: Option<String>,
127
128    #[serde(skip_serializing_if = "Option::is_none")]
129    pub favorites: Option<Vec<Favorite>>,
130
131    #[serde(skip_serializing_if = "Option::is_none")]
132    pub file_access: Option<String>,
133
134    #[serde(skip_serializing_if = "Option::is_none")]
135    pub filetype: Option<String>,
136
137    #[serde(skip_serializing_if = "Option::is_none")]
138    pub from: Option<Vec<Cc>>,
139
140    #[serde(skip_serializing_if = "Option::is_none")]
141    pub groups: Option<Vec<String>>,
142
143    #[serde(skip_serializing_if = "Option::is_none")]
144    pub has_more: Option<bool>,
145
146    #[serde(skip_serializing_if = "Option::is_none")]
147    pub has_more_shares: Option<bool>,
148
149    #[serde(skip_serializing_if = "Option::is_none")]
150    pub has_rich_preview: Option<bool>,
151
152    #[serde(skip_serializing_if = "Option::is_none")]
153    pub headers: Option<Headers>,
154
155    #[serde(skip_serializing_if = "Option::is_none")]
156    pub hls: Option<String>,
157
158    #[serde(skip_serializing_if = "Option::is_none")]
159    pub hls_embed: Option<String>,
160
161    #[serde(skip_serializing_if = "Option::is_none")]
162    pub id: Option<String>,
163
164    #[serde(skip_serializing_if = "Option::is_none")]
165    pub image_exif_rotation: Option<i64>,
166
167    #[serde(skip_serializing_if = "Option::is_none")]
168    pub ims: Option<Vec<String>>,
169
170    #[serde(skip_serializing_if = "Option::is_none")]
171    pub initial_comment: Option<InitialComment>,
172
173    #[serde(skip_serializing_if = "Option::is_none")]
174    pub is_channel_space: Option<bool>,
175
176    #[serde(skip_serializing_if = "Option::is_none")]
177    pub is_external: Option<bool>,
178
179    #[serde(skip_serializing_if = "Option::is_none")]
180    pub is_public: Option<bool>,
181
182    #[serde(skip_serializing_if = "Option::is_none")]
183    pub is_starred: Option<bool>,
184
185    #[serde(skip_serializing_if = "Option::is_none")]
186    pub last_editor: Option<String>,
187
188    #[serde(skip_serializing_if = "Option::is_none")]
189    pub last_read: Option<i64>,
190
191    #[serde(skip_serializing_if = "Option::is_none")]
192    pub lines: Option<i64>,
193
194    #[serde(skip_serializing_if = "Option::is_none")]
195    pub lines_more: Option<i64>,
196
197    #[serde(skip_serializing_if = "Option::is_none")]
198    pub linked_channel_id: Option<String>,
199
200    #[serde(skip_serializing_if = "Option::is_none")]
201    pub list_limits: Option<ListLimits>,
202
203    #[serde(skip_serializing_if = "Option::is_none")]
204    pub list_metadata: Option<ListMetadata>,
205
206    #[serde(skip_serializing_if = "Option::is_none")]
207    pub media_display_type: Option<String>,
208
209    #[serde(skip_serializing_if = "Option::is_none")]
210    pub media_progress: Option<MediaProgress>,
211
212    #[serde(skip_serializing_if = "Option::is_none")]
213    pub mimetype: Option<String>,
214
215    #[serde(skip_serializing_if = "Option::is_none")]
216    pub mode: Option<String>,
217
218    #[serde(skip_serializing_if = "Option::is_none")]
219    pub mp4: Option<String>,
220
221    #[serde(skip_serializing_if = "Option::is_none")]
222    pub mp4_low: Option<String>,
223
224    #[serde(skip_serializing_if = "Option::is_none")]
225    pub name: Option<String>,
226
227    #[serde(skip_serializing_if = "Option::is_none")]
228    pub non_owner_editable: Option<bool>,
229
230    #[serde(skip_serializing_if = "Option::is_none")]
231    pub num_stars: Option<i64>,
232
233    #[serde(skip_serializing_if = "Option::is_none")]
234    pub org_or_workspace_access: Option<String>,
235
236    #[serde(skip_serializing_if = "Option::is_none")]
237    pub original_attachment_count: Option<i64>,
238
239    #[serde(skip_serializing_if = "Option::is_none")]
240    pub original_h: Option<String>,
241
242    #[serde(skip_serializing_if = "Option::is_none")]
243    pub original_w: Option<String>,
244
245    #[serde(skip_serializing_if = "Option::is_none")]
246    pub permalink: Option<String>,
247
248    #[serde(skip_serializing_if = "Option::is_none")]
249    pub permalink_public: Option<String>,
250
251    #[serde(skip_serializing_if = "Option::is_none")]
252    pub pinned_to: Option<Vec<String>>,
253
254    #[serde(skip_serializing_if = "Option::is_none")]
255    pub pjpeg: Option<String>,
256
257    #[serde(skip_serializing_if = "Option::is_none")]
258    pub plain_text: Option<String>,
259
260    #[serde(skip_serializing_if = "Option::is_none")]
261    pub pretty_type: Option<String>,
262
263    #[serde(skip_serializing_if = "Option::is_none")]
264    pub preview: Option<String>,
265
266    #[serde(skip_serializing_if = "Option::is_none")]
267    pub preview_highlight: Option<String>,
268
269    #[serde(skip_serializing_if = "Option::is_none")]
270    pub preview_is_truncated: Option<bool>,
271
272    #[serde(skip_serializing_if = "Option::is_none")]
273    pub preview_plain_text: Option<String>,
274
275    #[serde(skip_serializing_if = "Option::is_none")]
276    pub private_channels_with_file_access_count: Option<i64>,
277
278    #[serde(skip_serializing_if = "Option::is_none")]
279    pub private_file_with_access_count: Option<i64>,
280
281    #[serde(skip_serializing_if = "Option::is_none")]
282    pub public_url_shared: Option<bool>,
283
284    #[serde(skip_serializing_if = "Option::is_none")]
285    pub quip_thread_id: Option<String>,
286
287    #[serde(skip_serializing_if = "Option::is_none")]
288    pub reactions: Option<Vec<Reaction>>,
289
290    #[serde(skip_serializing_if = "Option::is_none")]
291    pub saved: Option<Saved>,
292
293    #[serde(skip_serializing_if = "Option::is_none")]
294    pub sent_to_self: Option<bool>,
295
296    #[serde(skip_serializing_if = "Option::is_none")]
297    pub shares: Option<Shares>,
298
299    #[serde(skip_serializing_if = "Option::is_none")]
300    pub show_badge: Option<bool>,
301
302    #[serde(skip_serializing_if = "Option::is_none")]
303    pub simplified_html: Option<String>,
304
305    #[serde(skip_serializing_if = "Option::is_none")]
306    pub size: Option<i64>,
307
308    #[serde(skip_serializing_if = "Option::is_none")]
309    pub source_team: Option<String>,
310
311    #[serde(skip_serializing_if = "Option::is_none")]
312    pub subject: Option<String>,
313
314    #[serde(skip_serializing_if = "Option::is_none")]
315    pub subtype: Option<String>,
316
317    #[serde(skip_serializing_if = "Option::is_none")]
318    pub team_pref_version_history_enabled: Option<bool>,
319
320    #[serde(skip_serializing_if = "Option::is_none")]
321    pub teams_shared_with: Option<Vec<Option<serde_json::Value>>>,
322
323    #[serde(skip_serializing_if = "Option::is_none")]
324    pub template_conversion_ts: Option<i64>,
325
326    #[serde(skip_serializing_if = "Option::is_none")]
327    pub template_description: Option<String>,
328
329    #[serde(skip_serializing_if = "Option::is_none")]
330    pub template_icon: Option<String>,
331
332    #[serde(skip_serializing_if = "Option::is_none")]
333    pub template_name: Option<String>,
334
335    #[serde(skip_serializing_if = "Option::is_none")]
336    pub template_title: Option<String>,
337
338    #[serde(skip_serializing_if = "Option::is_none")]
339    pub thumb_1024: Option<String>,
340
341    #[serde(rename = "thumb_1024_gif")]
342    #[serde(skip_serializing_if = "Option::is_none")]
343    pub thumb_1024__gif: Option<String>,
344
345    #[serde(rename = "thumb_1024_h")]
346    #[serde(skip_serializing_if = "Option::is_none")]
347    pub thumb_1024__h: Option<String>,
348
349    #[serde(rename = "thumb_1024_w")]
350    #[serde(skip_serializing_if = "Option::is_none")]
351    pub thumb_1024__w: Option<String>,
352
353    #[serde(skip_serializing_if = "Option::is_none")]
354    pub thumb_160: Option<String>,
355
356    #[serde(rename = "thumb_160_gif")]
357    #[serde(skip_serializing_if = "Option::is_none")]
358    pub thumb_160__gif: Option<String>,
359
360    #[serde(rename = "thumb_160_h")]
361    #[serde(skip_serializing_if = "Option::is_none")]
362    pub thumb_160__h: Option<String>,
363
364    #[serde(rename = "thumb_160_w")]
365    #[serde(skip_serializing_if = "Option::is_none")]
366    pub thumb_160__w: Option<String>,
367
368    #[serde(skip_serializing_if = "Option::is_none")]
369    pub thumb_360: Option<String>,
370
371    #[serde(rename = "thumb_360_gif")]
372    #[serde(skip_serializing_if = "Option::is_none")]
373    pub thumb_360__gif: Option<String>,
374
375    #[serde(rename = "thumb_360_h")]
376    #[serde(skip_serializing_if = "Option::is_none")]
377    pub thumb_360__h: Option<String>,
378
379    #[serde(rename = "thumb_360_w")]
380    #[serde(skip_serializing_if = "Option::is_none")]
381    pub thumb_360__w: Option<String>,
382
383    #[serde(skip_serializing_if = "Option::is_none")]
384    pub thumb_480: Option<String>,
385
386    #[serde(rename = "thumb_480_gif")]
387    #[serde(skip_serializing_if = "Option::is_none")]
388    pub thumb_480__gif: Option<String>,
389
390    #[serde(rename = "thumb_480_h")]
391    #[serde(skip_serializing_if = "Option::is_none")]
392    pub thumb_480__h: Option<String>,
393
394    #[serde(rename = "thumb_480_w")]
395    #[serde(skip_serializing_if = "Option::is_none")]
396    pub thumb_480__w: Option<String>,
397
398    #[serde(skip_serializing_if = "Option::is_none")]
399    pub thumb_64: Option<String>,
400
401    #[serde(rename = "thumb_64_gif")]
402    #[serde(skip_serializing_if = "Option::is_none")]
403    pub thumb_64__gif: Option<String>,
404
405    #[serde(rename = "thumb_64_h")]
406    #[serde(skip_serializing_if = "Option::is_none")]
407    pub thumb_64__h: Option<String>,
408
409    #[serde(rename = "thumb_64_w")]
410    #[serde(skip_serializing_if = "Option::is_none")]
411    pub thumb_64__w: Option<String>,
412
413    #[serde(skip_serializing_if = "Option::is_none")]
414    pub thumb_720: Option<String>,
415
416    #[serde(rename = "thumb_720_gif")]
417    #[serde(skip_serializing_if = "Option::is_none")]
418    pub thumb_720__gif: Option<String>,
419
420    #[serde(rename = "thumb_720_h")]
421    #[serde(skip_serializing_if = "Option::is_none")]
422    pub thumb_720__h: Option<String>,
423
424    #[serde(rename = "thumb_720_w")]
425    #[serde(skip_serializing_if = "Option::is_none")]
426    pub thumb_720__w: Option<String>,
427
428    #[serde(skip_serializing_if = "Option::is_none")]
429    pub thumb_80: Option<String>,
430
431    #[serde(skip_serializing_if = "Option::is_none")]
432    pub thumb_800: Option<String>,
433
434    #[serde(rename = "thumb_800_gif")]
435    #[serde(skip_serializing_if = "Option::is_none")]
436    pub thumb_800__gif: Option<String>,
437
438    #[serde(rename = "thumb_800_h")]
439    #[serde(skip_serializing_if = "Option::is_none")]
440    pub thumb_800__h: Option<String>,
441
442    #[serde(rename = "thumb_800_w")]
443    #[serde(skip_serializing_if = "Option::is_none")]
444    pub thumb_800__w: Option<String>,
445
446    #[serde(rename = "thumb_80_gif")]
447    #[serde(skip_serializing_if = "Option::is_none")]
448    pub thumb_80__gif: Option<String>,
449
450    #[serde(rename = "thumb_80_h")]
451    #[serde(skip_serializing_if = "Option::is_none")]
452    pub thumb_80__h: Option<String>,
453
454    #[serde(rename = "thumb_80_w")]
455    #[serde(skip_serializing_if = "Option::is_none")]
456    pub thumb_80__w: Option<String>,
457
458    #[serde(skip_serializing_if = "Option::is_none")]
459    pub thumb_960: Option<String>,
460
461    #[serde(rename = "thumb_960_gif")]
462    #[serde(skip_serializing_if = "Option::is_none")]
463    pub thumb_960__gif: Option<String>,
464
465    #[serde(rename = "thumb_960_h")]
466    #[serde(skip_serializing_if = "Option::is_none")]
467    pub thumb_960__h: Option<String>,
468
469    #[serde(rename = "thumb_960_w")]
470    #[serde(skip_serializing_if = "Option::is_none")]
471    pub thumb_960__w: Option<String>,
472
473    #[serde(skip_serializing_if = "Option::is_none")]
474    pub thumb_gif: Option<String>,
475
476    #[serde(skip_serializing_if = "Option::is_none")]
477    pub thumb_pdf: Option<String>,
478
479    #[serde(skip_serializing_if = "Option::is_none")]
480    pub thumb_pdf_h: Option<String>,
481
482    #[serde(skip_serializing_if = "Option::is_none")]
483    pub thumb_pdf_w: Option<String>,
484
485    #[serde(skip_serializing_if = "Option::is_none")]
486    pub thumb_tiny: Option<String>,
487
488    #[serde(skip_serializing_if = "Option::is_none")]
489    pub thumb_video: Option<String>,
490
491    #[serde(skip_serializing_if = "Option::is_none")]
492    pub thumb_video_h: Option<i64>,
493
494    #[serde(skip_serializing_if = "Option::is_none")]
495    pub thumb_video_w: Option<i64>,
496
497    #[serde(skip_serializing_if = "Option::is_none")]
498    pub timestamp: Option<i64>,
499
500    #[serde(skip_serializing_if = "Option::is_none")]
501    pub title: Option<String>,
502
503    #[serde(skip_serializing_if = "Option::is_none")]
504    pub title_blocks: Option<Vec<TitleBlock>>,
505
506    #[serde(skip_serializing_if = "Option::is_none")]
507    pub to: Option<Vec<Cc>>,
508
509    #[serde(skip_serializing_if = "Option::is_none")]
510    pub transcription: Option<Transcription>,
511
512    #[serde(skip_serializing_if = "Option::is_none")]
513    pub update_notification: Option<i64>,
514
515    #[serde(skip_serializing_if = "Option::is_none")]
516    pub updated: Option<i64>,
517
518    #[serde(skip_serializing_if = "Option::is_none")]
519    pub url_private: Option<String>,
520
521    #[serde(skip_serializing_if = "Option::is_none")]
522    pub url_private_download: Option<String>,
523
524    #[serde(skip_serializing_if = "Option::is_none")]
525    pub url_static_preview: Option<String>,
526
527    #[serde(skip_serializing_if = "Option::is_none")]
528    pub user: Option<String>,
529
530    #[serde(skip_serializing_if = "Option::is_none")]
531    pub user_team: Option<String>,
532
533    #[serde(skip_serializing_if = "Option::is_none")]
534    pub username: Option<String>,
535
536    #[serde(skip_serializing_if = "Option::is_none")]
537    pub vtt: Option<String>,
538}
539
540#[derive(Debug, Clone, Serialize, Deserialize)]
541pub struct Cc {
542    #[serde(skip_serializing_if = "Option::is_none")]
543    pub address: Option<String>,
544
545    #[serde(skip_serializing_if = "Option::is_none")]
546    pub name: Option<String>,
547
548    #[serde(skip_serializing_if = "Option::is_none")]
549    pub original: Option<String>,
550}
551
552#[derive(Debug, Clone, Serialize, Deserialize)]
553pub struct DmMpdmUsersWithFileAccess {
554    #[serde(skip_serializing_if = "Option::is_none")]
555    pub access: Option<String>,
556
557    #[serde(skip_serializing_if = "Option::is_none")]
558    pub user_id: Option<String>,
559}
560
561#[derive(Debug, Clone, Serialize, Deserialize)]
562pub struct Favorite {
563    #[serde(skip_serializing_if = "Option::is_none")]
564    pub collection_id: Option<String>,
565
566    #[serde(skip_serializing_if = "Option::is_none")]
567    pub collection_name: Option<String>,
568
569    #[serde(skip_serializing_if = "Option::is_none")]
570    pub position: Option<String>,
571}
572
573#[derive(Debug, Clone, Serialize, Deserialize)]
574pub struct Headers {
575    #[serde(skip_serializing_if = "Option::is_none")]
576    pub date: Option<String>,
577
578    #[serde(skip_serializing_if = "Option::is_none")]
579    pub in_reply_to: Option<String>,
580
581    #[serde(skip_serializing_if = "Option::is_none")]
582    pub message_id: Option<String>,
583
584    #[serde(skip_serializing_if = "Option::is_none")]
585    pub reply_to: Option<String>,
586}
587
588#[derive(Debug, Clone, Serialize, Deserialize)]
589pub struct InitialComment {
590    #[serde(skip_serializing_if = "Option::is_none")]
591    pub channel: Option<String>,
592
593    #[serde(skip_serializing_if = "Option::is_none")]
594    pub comment: Option<String>,
595
596    #[serde(skip_serializing_if = "Option::is_none")]
597    pub created: Option<i64>,
598
599    #[serde(skip_serializing_if = "Option::is_none")]
600    pub id: Option<String>,
601
602    #[serde(skip_serializing_if = "Option::is_none")]
603    pub is_intro: Option<bool>,
604
605    #[serde(skip_serializing_if = "Option::is_none")]
606    pub timestamp: Option<i64>,
607
608    #[serde(skip_serializing_if = "Option::is_none")]
609    pub user: Option<String>,
610}
611
612#[derive(Debug, Clone, Serialize, Deserialize)]
613pub struct ListLimits {
614    #[serde(skip_serializing_if = "Option::is_none")]
615    pub column_count: Option<i64>,
616
617    #[serde(skip_serializing_if = "Option::is_none")]
618    pub column_count_limit: Option<i64>,
619
620    #[serde(skip_serializing_if = "Option::is_none")]
621    pub over_column_maximum: Option<bool>,
622
623    #[serde(skip_serializing_if = "Option::is_none")]
624    pub over_row_maximum: Option<bool>,
625
626    #[serde(skip_serializing_if = "Option::is_none")]
627    pub over_view_maximum: Option<bool>,
628
629    #[serde(skip_serializing_if = "Option::is_none")]
630    pub row_count: Option<i64>,
631
632    #[serde(skip_serializing_if = "Option::is_none")]
633    pub row_count_limit: Option<i64>,
634
635    #[serde(skip_serializing_if = "Option::is_none")]
636    pub view_count: Option<i64>,
637
638    #[serde(skip_serializing_if = "Option::is_none")]
639    pub view_count_limit: Option<i64>,
640}
641
642#[derive(Debug, Clone, Serialize, Deserialize)]
643pub struct ListMetadata {
644    #[serde(skip_serializing_if = "Option::is_none")]
645    pub creation_source: Option<CreationSource>,
646
647    #[serde(skip_serializing_if = "Option::is_none")]
648    pub description: Option<String>,
649
650    #[serde(skip_serializing_if = "Option::is_none")]
651    pub icon: Option<String>,
652
653    #[serde(skip_serializing_if = "Option::is_none")]
654    pub icon_team_id: Option<String>,
655
656    #[serde(skip_serializing_if = "Option::is_none")]
657    pub icon_url: Option<String>,
658
659    #[serde(skip_serializing_if = "Option::is_none")]
660    pub integrations: Option<Vec<String>>,
661
662    #[serde(skip_serializing_if = "Option::is_none")]
663    pub is_trial: Option<bool>,
664
665    #[serde(skip_serializing_if = "Option::is_none")]
666    pub schema: Option<Vec<Schema>>,
667
668    #[serde(skip_serializing_if = "Option::is_none")]
669    pub views: Option<Vec<View>>,
670}
671
672#[derive(Debug, Clone, Serialize, Deserialize)]
673pub struct CreationSource {
674    #[serde(rename = "type")]
675    #[serde(skip_serializing_if = "Option::is_none")]
676    pub creation_source_type: Option<String>,
677
678    #[serde(skip_serializing_if = "Option::is_none")]
679    pub reference_id: Option<String>,
680
681    #[serde(skip_serializing_if = "Option::is_none")]
682    pub workflow_function_id: Option<String>,
683}
684
685#[derive(Debug, Clone, Serialize, Deserialize)]
686pub struct Schema {
687    #[serde(skip_serializing_if = "Option::is_none")]
688    pub id: Option<String>,
689
690    #[serde(skip_serializing_if = "Option::is_none")]
691    pub is_primary_column: Option<bool>,
692
693    #[serde(skip_serializing_if = "Option::is_none")]
694    pub key: Option<String>,
695
696    #[serde(skip_serializing_if = "Option::is_none")]
697    pub name: Option<String>,
698
699    #[serde(skip_serializing_if = "Option::is_none")]
700    pub options: Option<Options>,
701
702    #[serde(rename = "type")]
703    #[serde(skip_serializing_if = "Option::is_none")]
704    pub schema_type: Option<String>,
705}
706
707#[derive(Debug, Clone, Serialize, Deserialize)]
708pub struct Options {
709    #[serde(skip_serializing_if = "Option::is_none")]
710    pub canvas_id: Option<String>,
711
712    #[serde(skip_serializing_if = "Option::is_none")]
713    pub canvas_placeholder_mapping: Option<Vec<CanvasPlaceholderMapping>>,
714
715    #[serde(skip_serializing_if = "Option::is_none")]
716    pub choices: Option<Vec<Choice>>,
717
718    #[serde(skip_serializing_if = "Option::is_none")]
719    pub currency: Option<String>,
720
721    #[serde(skip_serializing_if = "Option::is_none")]
722    pub currency_format: Option<String>,
723
724    #[serde(skip_serializing_if = "Option::is_none")]
725    pub date_format: Option<String>,
726
727    #[serde(skip_serializing_if = "Option::is_none")]
728    pub default_value: Option<String>,
729
730    #[serde(skip_serializing_if = "Option::is_none")]
731    pub default_value_typed: Option<DefaultValueTyped>,
732
733    #[serde(skip_serializing_if = "Option::is_none")]
734    pub emoji: Option<String>,
735
736    #[serde(skip_serializing_if = "Option::is_none")]
737    pub emoji_team_id: Option<String>,
738
739    #[serde(skip_serializing_if = "Option::is_none")]
740    pub for_assignment: Option<bool>,
741
742    #[serde(skip_serializing_if = "Option::is_none")]
743    pub format: Option<String>,
744
745    #[serde(skip_serializing_if = "Option::is_none")]
746    pub linked_to: Option<Vec<String>>,
747
748    #[serde(skip_serializing_if = "Option::is_none")]
749    pub mark_as_done_when_checked: Option<bool>,
750
751    #[serde(skip_serializing_if = "Option::is_none")]
752    pub max: Option<i64>,
753
754    #[serde(skip_serializing_if = "Option::is_none")]
755    pub notify_users: Option<bool>,
756
757    #[serde(skip_serializing_if = "Option::is_none")]
758    pub precision: Option<i64>,
759
760    #[serde(skip_serializing_if = "Option::is_none")]
761    pub rounding: Option<String>,
762
763    #[serde(skip_serializing_if = "Option::is_none")]
764    pub show_member_name: Option<bool>,
765
766    #[serde(skip_serializing_if = "Option::is_none")]
767    pub time_format: Option<String>,
768}
769
770#[derive(Debug, Clone, Serialize, Deserialize)]
771pub struct CanvasPlaceholderMapping {
772    #[serde(skip_serializing_if = "Option::is_none")]
773    pub column: Option<String>,
774
775    #[serde(skip_serializing_if = "Option::is_none")]
776    pub variable: Option<String>,
777}
778
779#[derive(Debug, Clone, Serialize, Deserialize)]
780pub struct Choice {
781    #[serde(skip_serializing_if = "Option::is_none")]
782    pub color: Option<String>,
783
784    #[serde(skip_serializing_if = "Option::is_none")]
785    pub label: Option<String>,
786
787    #[serde(skip_serializing_if = "Option::is_none")]
788    pub value: Option<String>,
789}
790
791#[derive(Debug, Clone, Serialize, Deserialize)]
792pub struct DefaultValueTyped {
793    #[serde(skip_serializing_if = "Option::is_none")]
794    pub select: Option<Vec<String>>,
795}
796
797#[derive(Debug, Clone, Serialize, Deserialize)]
798pub struct View {
799    #[serde(skip_serializing_if = "Option::is_none")]
800    pub columns: Option<Vec<Column>>,
801
802    #[serde(skip_serializing_if = "Option::is_none")]
803    pub created_by: Option<String>,
804
805    #[serde(skip_serializing_if = "Option::is_none")]
806    pub date_created: Option<i64>,
807
808    #[serde(skip_serializing_if = "Option::is_none")]
809    pub id: Option<String>,
810
811    #[serde(skip_serializing_if = "Option::is_none")]
812    pub is_all_items_view: Option<bool>,
813
814    #[serde(skip_serializing_if = "Option::is_none")]
815    pub is_locked: Option<bool>,
816
817    #[serde(skip_serializing_if = "Option::is_none")]
818    pub name: Option<String>,
819
820    #[serde(skip_serializing_if = "Option::is_none")]
821    pub position: Option<String>,
822
823    #[serde(skip_serializing_if = "Option::is_none")]
824    pub stick_column_left: Option<bool>,
825
826    #[serde(rename = "type")]
827    #[serde(skip_serializing_if = "Option::is_none")]
828    pub view_type: Option<String>,
829}
830
831#[derive(Debug, Clone, Serialize, Deserialize)]
832pub struct Column {
833    #[serde(skip_serializing_if = "Option::is_none")]
834    pub id: Option<String>,
835
836    #[serde(skip_serializing_if = "Option::is_none")]
837    pub key: Option<String>,
838
839    #[serde(skip_serializing_if = "Option::is_none")]
840    pub position: Option<String>,
841
842    #[serde(skip_serializing_if = "Option::is_none")]
843    pub visible: Option<bool>,
844
845    #[serde(skip_serializing_if = "Option::is_none")]
846    pub width: Option<i64>,
847}
848
849#[derive(Debug, Clone, Serialize, Deserialize)]
850pub struct MediaProgress {
851    #[serde(skip_serializing_if = "Option::is_none")]
852    pub duration_ms: Option<i64>,
853
854    #[serde(skip_serializing_if = "Option::is_none")]
855    pub max_offset_ms: Option<i64>,
856
857    #[serde(skip_serializing_if = "Option::is_none")]
858    pub offset_ms: Option<i64>,
859}
860
861#[derive(Debug, Clone, Serialize, Deserialize)]
862pub struct Reaction {
863    #[serde(skip_serializing_if = "Option::is_none")]
864    pub count: Option<i64>,
865
866    #[serde(skip_serializing_if = "Option::is_none")]
867    pub name: Option<String>,
868
869    #[serde(skip_serializing_if = "Option::is_none")]
870    pub url: Option<String>,
871
872    #[serde(skip_serializing_if = "Option::is_none")]
873    pub users: Option<Vec<String>>,
874}
875
876#[derive(Debug, Clone, Serialize, Deserialize)]
877pub struct Saved {
878    #[serde(skip_serializing_if = "Option::is_none")]
879    pub date_completed: Option<i64>,
880
881    #[serde(skip_serializing_if = "Option::is_none")]
882    pub date_due: Option<i64>,
883
884    #[serde(skip_serializing_if = "Option::is_none")]
885    pub is_archived: Option<bool>,
886
887    #[serde(skip_serializing_if = "Option::is_none")]
888    pub state: Option<String>,
889}
890
891#[derive(Debug, Clone, Serialize, Deserialize)]
892pub struct Shares {
893    #[serde(skip_serializing_if = "Option::is_none")]
894    pub private: Option<HashMap<String, Vec<Private>>>,
895
896    #[serde(skip_serializing_if = "Option::is_none")]
897    pub public: Option<HashMap<String, Vec<Private>>>,
898}
899
900#[derive(Debug, Clone, Serialize, Deserialize)]
901pub struct Private {
902    #[serde(skip_serializing_if = "Option::is_none")]
903    pub access: Option<String>,
904
905    #[serde(skip_serializing_if = "Option::is_none")]
906    pub channel_name: Option<String>,
907
908    #[serde(skip_serializing_if = "Option::is_none")]
909    pub date_last_shared: Option<i64>,
910
911    #[serde(skip_serializing_if = "Option::is_none")]
912    pub latest_reply: Option<String>,
913
914    #[serde(skip_serializing_if = "Option::is_none")]
915    pub reply_count: Option<i64>,
916
917    #[serde(skip_serializing_if = "Option::is_none")]
918    pub reply_users: Option<Vec<String>>,
919
920    #[serde(skip_serializing_if = "Option::is_none")]
921    pub reply_users_count: Option<i64>,
922
923    #[serde(skip_serializing_if = "Option::is_none")]
924    pub share_user_id: Option<String>,
925
926    #[serde(skip_serializing_if = "Option::is_none")]
927    pub source: Option<String>,
928
929    #[serde(skip_serializing_if = "Option::is_none")]
930    pub team_id: Option<String>,
931
932    #[serde(skip_serializing_if = "Option::is_none")]
933    pub thread_ts: Option<String>,
934
935    #[serde(skip_serializing_if = "Option::is_none")]
936    pub ts: Option<String>,
937}
938
939#[derive(Debug, Clone, Serialize, Deserialize)]
940pub struct TitleBlock {
941    #[serde(skip_serializing_if = "Option::is_none")]
942    pub accessory: Option<Accessory>,
943
944    #[serde(skip_serializing_if = "Option::is_none")]
945    pub alt_text: Option<String>,
946
947    #[serde(skip_serializing_if = "Option::is_none")]
948    pub app_collaborators: Option<Vec<String>>,
949
950    #[serde(skip_serializing_if = "Option::is_none")]
951    pub app_id: Option<String>,
952
953    #[serde(skip_serializing_if = "Option::is_none")]
954    pub author_name: Option<String>,
955
956    #[serde(skip_serializing_if = "Option::is_none")]
957    pub block_id: Option<String>,
958
959    #[serde(skip_serializing_if = "Option::is_none")]
960    pub bot_user_id: Option<String>,
961
962    #[serde(skip_serializing_if = "Option::is_none")]
963    pub button_label: Option<String>,
964
965    pub description: Option<DescriptionUnion>,
966
967    #[serde(skip_serializing_if = "Option::is_none")]
968    pub developer_trace_id: Option<String>,
969
970    #[serde(skip_serializing_if = "Option::is_none")]
971    pub elements: Option<Vec<Accessory>>,
972
973    #[serde(skip_serializing_if = "Option::is_none")]
974    pub fallback: Option<String>,
975
976    #[serde(skip_serializing_if = "Option::is_none")]
977    pub fields: Option<Vec<DescriptionElement>>,
978
979    #[serde(skip_serializing_if = "Option::is_none")]
980    pub function_trigger_id: Option<String>,
981
982    #[serde(skip_serializing_if = "Option::is_none")]
983    pub image_bytes: Option<i64>,
984
985    #[serde(skip_serializing_if = "Option::is_none")]
986    pub image_height: Option<i64>,
987
988    #[serde(skip_serializing_if = "Option::is_none")]
989    pub image_url: Option<String>,
990
991    #[serde(skip_serializing_if = "Option::is_none")]
992    pub image_width: Option<i64>,
993
994    #[serde(skip_serializing_if = "Option::is_none")]
995    pub is_animated: Option<bool>,
996
997    #[serde(skip_serializing_if = "Option::is_none")]
998    pub is_workflow_app: Option<bool>,
999
1000    #[serde(skip_serializing_if = "Option::is_none")]
1001    pub owning_team_id: Option<String>,
1002
1003    #[serde(skip_serializing_if = "Option::is_none")]
1004    pub provider_icon_url: Option<String>,
1005
1006    #[serde(skip_serializing_if = "Option::is_none")]
1007    pub provider_name: Option<String>,
1008
1009    #[serde(skip_serializing_if = "Option::is_none")]
1010    pub sales_home_workflow_app_type: Option<i64>,
1011
1012    #[serde(skip_serializing_if = "Option::is_none")]
1013    pub share_url: Option<String>,
1014
1015    #[serde(skip_serializing_if = "Option::is_none")]
1016    pub slack_file: Option<SlackFile>,
1017
1018    #[serde(skip_serializing_if = "Option::is_none")]
1019    pub text: Option<DescriptionElement>,
1020
1021    #[serde(skip_serializing_if = "Option::is_none")]
1022    pub thumbnail_url: Option<String>,
1023
1024    pub title: Option<DescriptionUnion>,
1025
1026    #[serde(rename = "type")]
1027    #[serde(skip_serializing_if = "Option::is_none")]
1028    pub title_block_type: Option<String>,
1029
1030    #[serde(skip_serializing_if = "Option::is_none")]
1031    pub title_url: Option<String>,
1032
1033    #[serde(skip_serializing_if = "Option::is_none")]
1034    pub trigger_subtype: Option<String>,
1035
1036    #[serde(skip_serializing_if = "Option::is_none")]
1037    pub trigger_type: Option<String>,
1038
1039    #[serde(skip_serializing_if = "Option::is_none")]
1040    pub url: Option<String>,
1041
1042    #[serde(skip_serializing_if = "Option::is_none")]
1043    pub video_url: Option<String>,
1044
1045    #[serde(skip_serializing_if = "Option::is_none")]
1046    pub workflow_id: Option<String>,
1047}
1048
1049#[derive(Debug, Clone, Serialize, Deserialize)]
1050pub struct Accessory {
1051    #[serde(skip_serializing_if = "Option::is_none")]
1052    pub accessibility_label: Option<String>,
1053
1054    #[serde(rename = "type")]
1055    #[serde(skip_serializing_if = "Option::is_none")]
1056    pub accessory_type: Option<String>,
1057
1058    #[serde(skip_serializing_if = "Option::is_none")]
1059    pub action_id: Option<String>,
1060
1061    #[serde(skip_serializing_if = "Option::is_none")]
1062    pub alt_text: Option<String>,
1063
1064    #[serde(skip_serializing_if = "Option::is_none")]
1065    pub border: Option<i64>,
1066
1067    #[serde(skip_serializing_if = "Option::is_none")]
1068    pub confirm: Option<Confirm>,
1069
1070    #[serde(skip_serializing_if = "Option::is_none")]
1071    pub default_to_current_conversation: Option<bool>,
1072
1073    #[serde(skip_serializing_if = "Option::is_none")]
1074    pub elements: Option<Vec<AccessoryElement>>,
1075
1076    #[serde(skip_serializing_if = "Option::is_none")]
1077    pub fallback: Option<String>,
1078
1079    #[serde(skip_serializing_if = "Option::is_none")]
1080    pub filter: Option<Filter>,
1081
1082    #[serde(skip_serializing_if = "Option::is_none")]
1083    pub focus_on_load: Option<bool>,
1084
1085    #[serde(skip_serializing_if = "Option::is_none")]
1086    pub image_bytes: Option<i64>,
1087
1088    #[serde(skip_serializing_if = "Option::is_none")]
1089    pub image_height: Option<i64>,
1090
1091    #[serde(skip_serializing_if = "Option::is_none")]
1092    pub image_url: Option<String>,
1093
1094    #[serde(skip_serializing_if = "Option::is_none")]
1095    pub image_width: Option<i64>,
1096
1097    #[serde(skip_serializing_if = "Option::is_none")]
1098    pub indent: Option<i64>,
1099
1100    #[serde(skip_serializing_if = "Option::is_none")]
1101    pub initial_channel: Option<String>,
1102
1103    #[serde(skip_serializing_if = "Option::is_none")]
1104    pub initial_channels: Option<Vec<String>>,
1105
1106    #[serde(skip_serializing_if = "Option::is_none")]
1107    pub initial_conversation: Option<String>,
1108
1109    #[serde(skip_serializing_if = "Option::is_none")]
1110    pub initial_conversations: Option<Vec<String>>,
1111
1112    #[serde(skip_serializing_if = "Option::is_none")]
1113    pub initial_date: Option<String>,
1114
1115    #[serde(skip_serializing_if = "Option::is_none")]
1116    pub initial_date_time: Option<i64>,
1117
1118    #[serde(skip_serializing_if = "Option::is_none")]
1119    pub initial_option: Option<Option_>,
1120
1121    #[serde(skip_serializing_if = "Option::is_none")]
1122    pub initial_options: Option<Vec<Option_>>,
1123
1124    #[serde(skip_serializing_if = "Option::is_none")]
1125    pub initial_time: Option<String>,
1126
1127    #[serde(skip_serializing_if = "Option::is_none")]
1128    pub initial_user: Option<String>,
1129
1130    #[serde(skip_serializing_if = "Option::is_none")]
1131    pub initial_users: Option<Vec<String>>,
1132
1133    #[serde(skip_serializing_if = "Option::is_none")]
1134    pub max_selected_items: Option<i64>,
1135
1136    #[serde(skip_serializing_if = "Option::is_none")]
1137    pub min_query_length: Option<i64>,
1138
1139    #[serde(skip_serializing_if = "Option::is_none")]
1140    pub offset: Option<i64>,
1141
1142    #[serde(skip_serializing_if = "Option::is_none")]
1143    pub option_groups: Option<Vec<OptionGroup>>,
1144
1145    #[serde(skip_serializing_if = "Option::is_none")]
1146    pub options: Option<Vec<Option_>>,
1147
1148    #[serde(skip_serializing_if = "Option::is_none")]
1149    pub placeholder: Option<DescriptionElement>,
1150
1151    #[serde(skip_serializing_if = "Option::is_none")]
1152    pub response_url_enabled: Option<bool>,
1153
1154    #[serde(skip_serializing_if = "Option::is_none")]
1155    pub slack_file: Option<SlackFile>,
1156
1157    #[serde(skip_serializing_if = "Option::is_none")]
1158    pub style: Option<String>,
1159
1160    #[serde(skip_serializing_if = "Option::is_none")]
1161    pub text: Option<DescriptionElement>,
1162
1163    #[serde(skip_serializing_if = "Option::is_none")]
1164    pub timezone: Option<String>,
1165
1166    #[serde(skip_serializing_if = "Option::is_none")]
1167    pub url: Option<String>,
1168
1169    #[serde(skip_serializing_if = "Option::is_none")]
1170    pub value: Option<String>,
1171
1172    #[serde(skip_serializing_if = "Option::is_none")]
1173    pub workflow: Option<Workflow>,
1174}
1175
1176#[derive(Debug, Clone, Serialize, Deserialize)]
1177pub struct Confirm {
1178    #[serde(skip_serializing_if = "Option::is_none")]
1179    pub confirm: Option<DescriptionElement>,
1180
1181    #[serde(skip_serializing_if = "Option::is_none")]
1182    pub deny: Option<DescriptionElement>,
1183
1184    #[serde(skip_serializing_if = "Option::is_none")]
1185    pub style: Option<String>,
1186
1187    #[serde(skip_serializing_if = "Option::is_none")]
1188    pub text: Option<DescriptionElement>,
1189
1190    #[serde(skip_serializing_if = "Option::is_none")]
1191    pub title: Option<DescriptionElement>,
1192}
1193
1194#[derive(Debug, Clone, Serialize, Deserialize)]
1195pub struct DescriptionElement {
1196    #[serde(rename = "type")]
1197    #[serde(skip_serializing_if = "Option::is_none")]
1198    pub description_type: Option<DescriptionType>,
1199
1200    #[serde(skip_serializing_if = "Option::is_none")]
1201    pub emoji: Option<bool>,
1202
1203    #[serde(skip_serializing_if = "Option::is_none")]
1204    pub text: Option<String>,
1205
1206    #[serde(skip_serializing_if = "Option::is_none")]
1207    pub verbatim: Option<bool>,
1208}
1209
1210#[derive(Debug, Clone, Serialize, Deserialize)]
1211#[serde(rename_all = "snake_case")]
1212pub enum DescriptionType {
1213    Mrkdwn,
1214
1215    #[serde(rename = "plain_text")]
1216    PlainText,
1217}
1218
1219#[derive(Debug, Clone, Serialize, Deserialize)]
1220pub struct AccessoryElement {
1221    #[serde(skip_serializing_if = "Option::is_none")]
1222    pub border: Option<i64>,
1223
1224    #[serde(rename = "type")]
1225    #[serde(skip_serializing_if = "Option::is_none")]
1226    pub element_type: Option<String>,
1227
1228    #[serde(skip_serializing_if = "Option::is_none")]
1229    pub elements: Option<Vec<PurpleElement>>,
1230
1231    #[serde(skip_serializing_if = "Option::is_none")]
1232    pub indent: Option<i64>,
1233
1234    #[serde(skip_serializing_if = "Option::is_none")]
1235    pub offset: Option<i64>,
1236
1237    #[serde(skip_serializing_if = "Option::is_none")]
1238    pub style: Option<String>,
1239}
1240
1241#[derive(Debug, Clone, Serialize, Deserialize)]
1242pub struct PurpleElement {
1243    #[serde(skip_serializing_if = "Option::is_none")]
1244    pub channel_id: Option<String>,
1245
1246    #[serde(rename = "type")]
1247    #[serde(skip_serializing_if = "Option::is_none")]
1248    pub element_type: Option<ElementType>,
1249
1250    #[serde(rename = "unsafe")]
1251    #[serde(skip_serializing_if = "Option::is_none")]
1252    pub element_unsafe: Option<bool>,
1253
1254    #[serde(skip_serializing_if = "Option::is_none")]
1255    pub fallback: Option<String>,
1256
1257    #[serde(skip_serializing_if = "Option::is_none")]
1258    pub format: Option<String>,
1259
1260    #[serde(skip_serializing_if = "Option::is_none")]
1261    pub name: Option<String>,
1262
1263    #[serde(skip_serializing_if = "Option::is_none")]
1264    pub range: Option<String>,
1265
1266    #[serde(skip_serializing_if = "Option::is_none")]
1267    pub skin_tone: Option<i64>,
1268
1269    #[serde(skip_serializing_if = "Option::is_none")]
1270    pub style: Option<Style>,
1271
1272    #[serde(skip_serializing_if = "Option::is_none")]
1273    pub team_id: Option<String>,
1274
1275    #[serde(skip_serializing_if = "Option::is_none")]
1276    pub text: Option<String>,
1277
1278    #[serde(skip_serializing_if = "Option::is_none")]
1279    pub timestamp: Option<i64>,
1280
1281    #[serde(skip_serializing_if = "Option::is_none")]
1282    pub unicode: Option<String>,
1283
1284    #[serde(skip_serializing_if = "Option::is_none")]
1285    pub url: Option<String>,
1286
1287    #[serde(skip_serializing_if = "Option::is_none")]
1288    pub user_id: Option<String>,
1289
1290    #[serde(skip_serializing_if = "Option::is_none")]
1291    pub usergroup_id: Option<String>,
1292
1293    #[serde(skip_serializing_if = "Option::is_none")]
1294    pub value: Option<String>,
1295}
1296
1297#[derive(Debug, Clone, Serialize, Deserialize)]
1298#[serde(rename_all = "snake_case")]
1299pub enum ElementType {
1300    Broadcast,
1301
1302    Channel,
1303
1304    Color,
1305
1306    Date,
1307
1308    Emoji,
1309
1310    Link,
1311
1312    Team,
1313
1314    Text,
1315
1316    User,
1317
1318    Usergroup,
1319}
1320
1321#[derive(Debug, Clone, Serialize, Deserialize)]
1322pub struct Style {
1323    #[serde(skip_serializing_if = "Option::is_none")]
1324    pub bold: Option<bool>,
1325
1326    #[serde(skip_serializing_if = "Option::is_none")]
1327    pub client_highlight: Option<bool>,
1328
1329    #[serde(skip_serializing_if = "Option::is_none")]
1330    pub code: Option<bool>,
1331
1332    #[serde(skip_serializing_if = "Option::is_none")]
1333    pub highlight: Option<bool>,
1334
1335    #[serde(skip_serializing_if = "Option::is_none")]
1336    pub italic: Option<bool>,
1337
1338    #[serde(skip_serializing_if = "Option::is_none")]
1339    pub strike: Option<bool>,
1340
1341    #[serde(skip_serializing_if = "Option::is_none")]
1342    pub unlink: Option<bool>,
1343}
1344
1345#[derive(Debug, Clone, Serialize, Deserialize)]
1346pub struct Filter {
1347    #[serde(skip_serializing_if = "Option::is_none")]
1348    pub exclude_bot_users: Option<bool>,
1349
1350    #[serde(skip_serializing_if = "Option::is_none")]
1351    pub exclude_external_shared_channels: Option<bool>,
1352
1353    #[serde(skip_serializing_if = "Option::is_none")]
1354    pub include: Option<Vec<Option<serde_json::Value>>>,
1355}
1356
1357#[derive(Debug, Clone, Serialize, Deserialize)]
1358pub struct Option_ {
1359    #[serde(skip_serializing_if = "Option::is_none")]
1360    pub description: Option<DescriptionElement>,
1361
1362    #[serde(skip_serializing_if = "Option::is_none")]
1363    pub text: Option<DescriptionElement>,
1364
1365    #[serde(skip_serializing_if = "Option::is_none")]
1366    pub url: Option<String>,
1367
1368    #[serde(skip_serializing_if = "Option::is_none")]
1369    pub value: Option<String>,
1370}
1371
1372#[derive(Debug, Clone, Serialize, Deserialize)]
1373pub struct OptionGroup {
1374    #[serde(skip_serializing_if = "Option::is_none")]
1375    pub label: Option<DescriptionElement>,
1376
1377    #[serde(skip_serializing_if = "Option::is_none")]
1378    pub options: Option<Vec<Option_>>,
1379}
1380
1381#[derive(Debug, Clone, Serialize, Deserialize)]
1382pub struct SlackFile {
1383    #[serde(skip_serializing_if = "Option::is_none")]
1384    pub id: Option<String>,
1385
1386    #[serde(skip_serializing_if = "Option::is_none")]
1387    pub url: Option<String>,
1388}
1389
1390#[derive(Debug, Clone, Serialize, Deserialize)]
1391pub struct Workflow {
1392    #[serde(skip_serializing_if = "Option::is_none")]
1393    pub trigger: Option<Trigger>,
1394}
1395
1396#[derive(Debug, Clone, Serialize, Deserialize)]
1397pub struct Trigger {
1398    #[serde(skip_serializing_if = "Option::is_none")]
1399    pub customizable_input_parameters: Option<Vec<CustomizableInputParameter>>,
1400
1401    #[serde(skip_serializing_if = "Option::is_none")]
1402    pub url: Option<String>,
1403}
1404
1405#[derive(Debug, Clone, Serialize, Deserialize)]
1406pub struct CustomizableInputParameter {
1407    #[serde(skip_serializing_if = "Option::is_none")]
1408    pub name: Option<String>,
1409
1410    #[serde(skip_serializing_if = "Option::is_none")]
1411    pub value: Option<String>,
1412}
1413
1414#[derive(Debug, Clone, Serialize, Deserialize)]
1415#[serde(untagged)]
1416pub enum DescriptionUnion {
1417    DescriptionElement(DescriptionElement),
1418
1419    String(String),
1420}
1421
1422#[derive(Debug, Clone, Serialize, Deserialize)]
1423pub struct Transcription {
1424    #[serde(skip_serializing_if = "Option::is_none")]
1425    pub locale: Option<String>,
1426
1427    #[serde(skip_serializing_if = "Option::is_none")]
1428    pub status: Option<String>,
1429}