#![allow(clippy::enum_variant_names)]
#![allow(clippy::missing_docs_in_private_items)]
#![allow(missing_docs)]
#![allow(non_snake_case)]
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FilesInfoResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub comments: Option<Vec<Comment>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub content: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub content_highlight_css: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub content_highlight_html: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub content_highlight_html_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub error: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub file: Option<File>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub needed: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ok: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub paging: Option<Paging>,
#[serde(skip_serializing_if = "Option::is_none")]
pub provided: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Comment {
#[serde(skip_serializing_if = "Option::is_none")]
pub channel: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub created: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_intro: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timestamp: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct File {
#[serde(skip_serializing_if = "Option::is_none")]
pub access: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub alt_txt: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub app_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub app_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub bot_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub can_toggle_canvas_lock: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub canvas_template_mode: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cc: Option<Vec<Cc>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub channel_actions_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub channel_actions_ts: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub channels: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub comments_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub converted_pdf: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub created: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deanimate: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deanimate_gif: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_as_bot: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dm_mpdm_users_with_file_access: Option<Vec<DmMpdmUsersWithFileAccess>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub duration_ms: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub edit_link: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub edit_timestamp: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub editable: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub editor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub editors: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub external_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub external_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub external_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub favorites: Option<Vec<Favorite>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub file_access: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filetype: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub from: Option<Vec<Cc>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub groups: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub has_more: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub has_more_shares: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub has_rich_preview: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub headers: Option<Headers>,
#[serde(skip_serializing_if = "Option::is_none")]
pub hls: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub hls_embed: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub image_exif_rotation: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ims: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub initial_comment: Option<Comment>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_channel_space: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_external: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_public: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_starred: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_editor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_read: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub lines: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub lines_more: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub linked_channel_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub list_limits: Option<ListLimits>,
#[serde(skip_serializing_if = "Option::is_none")]
pub list_metadata: Option<ListMetadata>,
#[serde(skip_serializing_if = "Option::is_none")]
pub media_display_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub media_progress: Option<MediaProgress>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mimetype: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mode: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mp4: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mp4_low: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub non_owner_editable: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub num_stars: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub org_or_workspace_access: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub original_attachment_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub original_h: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub original_w: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub permalink: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub permalink_public: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pinned_to: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pjpeg: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub plain_text: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pretty_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub preview: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub preview_highlight: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub preview_is_truncated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub preview_plain_text: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub private_channels_with_file_access_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub private_file_with_access_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub public_url_shared: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub quip_thread_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reactions: Option<Vec<Reaction>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub saved: Option<Saved>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sent_to_self: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub shares: Option<Shares>,
#[serde(skip_serializing_if = "Option::is_none")]
pub show_badge: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub simplified_html: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub size: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub source_team: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub subject: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub subtype: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub team_pref_version_history_enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub teams_shared_with: Option<Vec<Option<serde_json::Value>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub template_conversion_ts: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub template_description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub template_icon: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub template_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub template_title: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_1024: Option<String>,
#[serde(rename = "thumb_1024_gif")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_1024__gif: Option<String>,
#[serde(rename = "thumb_1024_h")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_1024__h: Option<i64>,
#[serde(rename = "thumb_1024_w")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_1024__w: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_160: Option<String>,
#[serde(rename = "thumb_160_gif")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_160__gif: Option<String>,
#[serde(rename = "thumb_160_h")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_160__h: Option<i64>,
#[serde(rename = "thumb_160_w")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_160__w: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_360: Option<String>,
#[serde(rename = "thumb_360_gif")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_360__gif: Option<String>,
#[serde(rename = "thumb_360_h")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_360__h: Option<i64>,
#[serde(rename = "thumb_360_w")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_360__w: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_480: Option<String>,
#[serde(rename = "thumb_480_gif")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_480__gif: Option<String>,
#[serde(rename = "thumb_480_h")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_480__h: Option<i64>,
#[serde(rename = "thumb_480_w")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_480__w: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_64: Option<String>,
#[serde(rename = "thumb_64_gif")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_64__gif: Option<String>,
#[serde(rename = "thumb_64_h")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_64__h: Option<i64>,
#[serde(rename = "thumb_64_w")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_64__w: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_720: Option<String>,
#[serde(rename = "thumb_720_gif")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_720__gif: Option<String>,
#[serde(rename = "thumb_720_h")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_720__h: Option<i64>,
#[serde(rename = "thumb_720_w")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_720__w: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_80: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_800: Option<String>,
#[serde(rename = "thumb_800_gif")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_800__gif: Option<String>,
#[serde(rename = "thumb_800_h")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_800__h: Option<i64>,
#[serde(rename = "thumb_800_w")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_800__w: Option<i64>,
#[serde(rename = "thumb_80_gif")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_80__gif: Option<String>,
#[serde(rename = "thumb_80_h")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_80__h: Option<i64>,
#[serde(rename = "thumb_80_w")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_80__w: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_960: Option<String>,
#[serde(rename = "thumb_960_gif")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_960__gif: Option<String>,
#[serde(rename = "thumb_960_h")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_960__h: Option<i64>,
#[serde(rename = "thumb_960_w")]
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_960__w: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_gif: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_pdf: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_pdf_h: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_pdf_w: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_tiny: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_video: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_video_h: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumb_video_w: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timestamp: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub title: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub title_blocks: Option<Vec<TitleBlock>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub to: Option<Vec<Cc>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub transcription: Option<Transcription>,
#[serde(skip_serializing_if = "Option::is_none")]
pub update_notification: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub updated: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub url_private: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub url_private_download: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub url_static_preview: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_team: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub username: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub vtt: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Cc {
#[serde(skip_serializing_if = "Option::is_none")]
pub address: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub original: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DmMpdmUsersWithFileAccess {
#[serde(skip_serializing_if = "Option::is_none")]
pub access: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Favorite {
#[serde(skip_serializing_if = "Option::is_none")]
pub collection_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub collection_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub position: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Headers {
#[serde(skip_serializing_if = "Option::is_none")]
pub date: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub in_reply_to: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub message_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reply_to: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ListLimits {
#[serde(skip_serializing_if = "Option::is_none")]
pub column_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub column_count_limit: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub over_column_maximum: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub over_row_maximum: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub over_view_maximum: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub row_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub row_count_limit: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub view_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub view_count_limit: Option<i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ListMetadata {
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_source: Option<CreationSource>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub icon: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub icon_team_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub icon_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub integrations: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_trial: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub schema: Option<Vec<Schema>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub views: Option<Vec<View>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CreationSource {
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_source_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reference_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub workflow_function_id: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Schema {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_primary_column: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<Options>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub schema_type: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Options {
#[serde(skip_serializing_if = "Option::is_none")]
pub canvas_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub canvas_placeholder_mapping: Option<Vec<CanvasPlaceholderMapping>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub choices: Option<Vec<Choice>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub currency: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub currency_format: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub date_format: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_value_typed: Option<DefaultValueTyped>,
#[serde(skip_serializing_if = "Option::is_none")]
pub emoji: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub emoji_team_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub for_assignment: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub format: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub linked_to: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mark_as_done_when_checked: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub notify_users: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub precision: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rounding: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub show_member_name: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub time_format: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CanvasPlaceholderMapping {
#[serde(skip_serializing_if = "Option::is_none")]
pub column: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub variable: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Choice {
#[serde(skip_serializing_if = "Option::is_none")]
pub color: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub label: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DefaultValueTyped {
#[serde(skip_serializing_if = "Option::is_none")]
pub select: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct View {
#[serde(skip_serializing_if = "Option::is_none")]
pub columns: Option<Vec<Column>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub created_by: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub date_created: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_all_items_view: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_locked: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub position: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub stick_column_left: Option<bool>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub view_type: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Column {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub position: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub visible: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub width: Option<i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MediaProgress {
#[serde(skip_serializing_if = "Option::is_none")]
pub duration_ms: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_offset_ms: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset_ms: Option<i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Reaction {
#[serde(skip_serializing_if = "Option::is_none")]
pub count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub users: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Saved {
#[serde(skip_serializing_if = "Option::is_none")]
pub date_completed: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub date_due: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_archived: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Shares {
#[serde(skip_serializing_if = "Option::is_none")]
pub private: Option<HashMap<String, Vec<Private>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub public: Option<HashMap<String, Vec<Private>>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Private {
#[serde(skip_serializing_if = "Option::is_none")]
pub access: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub channel_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub date_last_shared: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub latest_reply: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reply_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reply_users: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reply_users_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub share_user_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub source: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub team_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thread_ts: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ts: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TitleBlock {
#[serde(skip_serializing_if = "Option::is_none")]
pub accessory: Option<Accessory>,
#[serde(skip_serializing_if = "Option::is_none")]
pub alt_text: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub app_collaborators: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub app_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub author_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub block_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub bot_user_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub button_label: Option<String>,
pub description: Option<DescriptionUnion>,
#[serde(skip_serializing_if = "Option::is_none")]
pub developer_trace_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub elements: Option<Vec<Accessory>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fallback: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fields: Option<Vec<DescriptionElement>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub function_trigger_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub image_bytes: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub image_height: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub image_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub image_width: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_animated: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_workflow_app: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub owning_team_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub provider_icon_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub provider_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sales_home_workflow_app_type: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub share_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub slack_file: Option<SlackFile>,
#[serde(skip_serializing_if = "Option::is_none")]
pub text: Option<DescriptionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
pub thumbnail_url: Option<String>,
pub title: Option<DescriptionUnion>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub title_block_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub title_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub trigger_subtype: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub trigger_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub video_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub workflow_id: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Accessory {
#[serde(skip_serializing_if = "Option::is_none")]
pub accessibility_label: Option<String>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub accessory_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub action_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub alt_text: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub border: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub confirm: Option<Confirm>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_to_current_conversation: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub elements: Option<Vec<AccessoryElement>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fallback: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<Filter>,
#[serde(skip_serializing_if = "Option::is_none")]
pub focus_on_load: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub image_bytes: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub image_height: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub image_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub image_width: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub indent: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub initial_channel: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub initial_channels: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub initial_conversation: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub initial_conversations: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub initial_date: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub initial_date_time: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub initial_option: Option<Option_>,
#[serde(skip_serializing_if = "Option::is_none")]
pub initial_options: Option<Vec<Option_>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub initial_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub initial_user: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub initial_users: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_selected_items: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub min_query_length: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub option_groups: Option<Vec<OptionGroup>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<Vec<Option_>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub placeholder: Option<DescriptionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
pub response_url_enabled: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub slack_file: Option<SlackFile>,
#[serde(skip_serializing_if = "Option::is_none")]
pub style: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub text: Option<DescriptionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timezone: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub workflow: Option<Workflow>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Confirm {
#[serde(skip_serializing_if = "Option::is_none")]
pub confirm: Option<DescriptionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
pub deny: Option<DescriptionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
pub style: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub text: Option<DescriptionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
pub title: Option<DescriptionElement>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DescriptionElement {
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description_type: Option<DescriptionType>,
#[serde(skip_serializing_if = "Option::is_none")]
pub emoji: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub verbatim: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum DescriptionType {
Mrkdwn,
#[serde(rename = "plain_text")]
PlainText,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AccessoryElement {
#[serde(skip_serializing_if = "Option::is_none")]
pub border: Option<i64>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub element_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub elements: Option<Vec<PurpleElement>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub indent: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub style: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PurpleElement {
#[serde(skip_serializing_if = "Option::is_none")]
pub channel_id: Option<String>,
#[serde(rename = "type")]
#[serde(skip_serializing_if = "Option::is_none")]
pub element_type: Option<ElementType>,
#[serde(rename = "unsafe")]
#[serde(skip_serializing_if = "Option::is_none")]
pub element_unsafe: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fallback: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub format: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub range: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub skin_tone: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub style: Option<Style>,
#[serde(skip_serializing_if = "Option::is_none")]
pub team_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub text: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timestamp: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub unicode: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub usergroup_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum ElementType {
Broadcast,
Channel,
Color,
Date,
Emoji,
Link,
Team,
Text,
User,
Usergroup,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Style {
#[serde(skip_serializing_if = "Option::is_none")]
pub bold: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub client_highlight: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub code: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub highlight: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub italic: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub strike: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub unlink: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Filter {
#[serde(skip_serializing_if = "Option::is_none")]
pub exclude_bot_users: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub exclude_external_shared_channels: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include: Option<Vec<Option<serde_json::Value>>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Option_ {
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<DescriptionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
pub text: Option<DescriptionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OptionGroup {
#[serde(skip_serializing_if = "Option::is_none")]
pub label: Option<DescriptionElement>,
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<Vec<Option_>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SlackFile {
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Workflow {
#[serde(skip_serializing_if = "Option::is_none")]
pub trigger: Option<Trigger>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Trigger {
#[serde(skip_serializing_if = "Option::is_none")]
pub customizable_input_parameters: Option<Vec<CustomizableInputParameter>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CustomizableInputParameter {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DescriptionUnion {
DescriptionElement(DescriptionElement),
String(String),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Transcription {
#[serde(skip_serializing_if = "Option::is_none")]
pub locale: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Paging {
#[serde(skip_serializing_if = "Option::is_none")]
pub count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pages: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub total: Option<i64>,
}