use alloc::string::String;
use serde::{Deserialize, Serialize};
pub mod delegates;
pub mod filters;
pub mod forwarding_addresses;
pub mod send_as;
pub mod get_auto_forwarding;
pub mod get_imap;
pub mod get_language;
pub mod get_pop;
pub mod get_vacation;
pub mod update_auto_forwarding;
pub mod update_imap;
pub mod update_language;
pub mod update_pop;
pub mod update_vacation;
#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct GmailAutoForwarding {
#[serde(default)]
pub enabled: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email_address: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub disposition: Option<GmailDisposition>,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct GmailImapSettings {
#[serde(default)]
pub enabled: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub auto_expunge: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub expunge_behavior: Option<GmailExpungeBehavior>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub max_folder_size: Option<u32>,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct GmailPopSettings {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub access_window: Option<GmailPopAccessWindow>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub disposition: Option<GmailDisposition>,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct GmailLanguageSettings {
#[serde(default)]
pub display_language: String,
}
#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct GmailVacationSettings {
#[serde(default)]
pub enable_auto_reply: bool,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub response_subject: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub response_body_plain_text: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub response_body_html: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub restrict_to_contacts: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub restrict_to_domain: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub start_time: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub end_time: Option<String>,
}
#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "camelCase")]
pub enum GmailDisposition {
DispositionUnspecified,
LeaveInInbox,
Archive,
Trash,
MarkRead,
}
#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "camelCase")]
pub enum GmailExpungeBehavior {
ExpungeBehaviorUnspecified,
Archive,
Trash,
DeleteForever,
}
#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "camelCase")]
pub enum GmailPopAccessWindow {
AccessWindowUnspecified,
Disabled,
FromNowOn,
AllMail,
}
#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
#[serde(rename_all = "camelCase")]
pub enum GmailVerificationStatus {
VerificationStatusUnspecified,
Accepted,
Pending,
Rejected,
Expired,
}