1use alloc::string::String;
8
9use serde::{Deserialize, Serialize};
10
11pub mod delegates;
12pub mod filters;
13pub mod forwarding_addresses;
14pub mod send_as;
15
16pub mod get_auto_forwarding;
17pub mod get_imap;
18pub mod get_language;
19pub mod get_pop;
20pub mod get_vacation;
21pub mod update_auto_forwarding;
22pub mod update_imap;
23pub mod update_language;
24pub mod update_pop;
25pub mod update_vacation;
26
27#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
29#[serde(rename_all = "camelCase")]
30pub struct GmailAutoForwarding {
31 #[serde(default)]
34 pub enabled: bool,
35 #[serde(default, skip_serializing_if = "Option::is_none")]
37 pub email_address: Option<String>,
38 #[serde(default, skip_serializing_if = "Option::is_none")]
40 pub disposition: Option<GmailDisposition>,
41}
42
43#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
45#[serde(rename_all = "camelCase")]
46pub struct GmailImapSettings {
47 #[serde(default)]
49 pub enabled: bool,
50 #[serde(default, skip_serializing_if = "Option::is_none")]
53 pub auto_expunge: Option<bool>,
54 #[serde(default, skip_serializing_if = "Option::is_none")]
57 pub expunge_behavior: Option<GmailExpungeBehavior>,
58 #[serde(default, skip_serializing_if = "Option::is_none")]
61 pub max_folder_size: Option<u32>,
62}
63
64#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
66#[serde(rename_all = "camelCase")]
67pub struct GmailPopSettings {
68 #[serde(default, skip_serializing_if = "Option::is_none")]
70 pub access_window: Option<GmailPopAccessWindow>,
71 #[serde(default, skip_serializing_if = "Option::is_none")]
73 pub disposition: Option<GmailDisposition>,
74}
75
76#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
78#[serde(rename_all = "camelCase")]
79pub struct GmailLanguageSettings {
80 #[serde(default)]
82 pub display_language: String,
83}
84
85#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
87#[serde(rename_all = "camelCase")]
88pub struct GmailVacationSettings {
89 #[serde(default)]
91 pub enable_auto_reply: bool,
92 #[serde(default, skip_serializing_if = "Option::is_none")]
94 pub response_subject: Option<String>,
95 #[serde(default, skip_serializing_if = "Option::is_none")]
97 pub response_body_plain_text: Option<String>,
98 #[serde(default, skip_serializing_if = "Option::is_none")]
100 pub response_body_html: Option<String>,
101 #[serde(default, skip_serializing_if = "Option::is_none")]
103 pub restrict_to_contacts: Option<bool>,
104 #[serde(default, skip_serializing_if = "Option::is_none")]
106 pub restrict_to_domain: Option<bool>,
107 #[serde(default, skip_serializing_if = "Option::is_none")]
109 pub start_time: Option<String>,
110 #[serde(default, skip_serializing_if = "Option::is_none")]
112 pub end_time: Option<String>,
113}
114
115#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
117#[serde(rename_all = "camelCase")]
118pub enum GmailDisposition {
119 DispositionUnspecified,
121 LeaveInInbox,
123 Archive,
125 Trash,
127 MarkRead,
129}
130
131#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
133#[serde(rename_all = "camelCase")]
134pub enum GmailExpungeBehavior {
135 ExpungeBehaviorUnspecified,
137 Archive,
139 Trash,
141 DeleteForever,
143}
144
145#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
147#[serde(rename_all = "camelCase")]
148pub enum GmailPopAccessWindow {
149 AccessWindowUnspecified,
151 Disabled,
153 FromNowOn,
155 AllMail,
157}
158
159#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
161#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
162#[serde(rename_all = "camelCase")]
163pub enum GmailVerificationStatus {
164 VerificationStatusUnspecified,
166 Accepted,
168 Pending,
170 Rejected,
172 Expired,
174}