mxr_provider_gmail/
types.rs1use serde::Deserialize;
2
3#[derive(Debug, Deserialize)]
4#[serde(rename_all = "camelCase")]
5pub struct GmailListResponse {
6 pub messages: Option<Vec<GmailMessageRef>>,
7 pub next_page_token: Option<String>,
8 pub result_size_estimate: Option<u64>,
9}
10
11#[derive(Debug, Clone, Deserialize)]
12#[serde(rename_all = "camelCase")]
13pub struct GmailMessageRef {
14 pub id: String,
15 pub thread_id: String,
16}
17
18#[derive(Debug, Clone, Deserialize)]
19#[serde(rename_all = "camelCase")]
20pub struct GmailMessage {
21 pub id: String,
22 pub thread_id: String,
23 pub label_ids: Option<Vec<String>>,
24 pub snippet: Option<String>,
25 pub history_id: Option<String>,
26 pub internal_date: Option<String>,
27 pub size_estimate: Option<u64>,
28 pub payload: Option<GmailPayload>,
29}
30
31#[derive(Debug, Clone, Deserialize)]
32#[serde(rename_all = "camelCase")]
33pub struct GmailPayload {
34 pub mime_type: Option<String>,
35 pub headers: Option<Vec<GmailHeader>>,
36 pub body: Option<GmailBody>,
37 pub parts: Option<Vec<GmailPayload>>,
38 pub filename: Option<String>,
39}
40
41#[derive(Debug, Clone, Deserialize)]
42#[serde(rename_all = "camelCase")]
43pub struct GmailHeader {
44 pub name: String,
45 pub value: String,
46}
47
48#[derive(Debug, Clone, Deserialize)]
49#[serde(rename_all = "camelCase")]
50pub struct GmailBody {
51 pub attachment_id: Option<String>,
52 pub size: Option<u64>,
53 pub data: Option<String>,
54}
55
56#[derive(Debug, Deserialize)]
57#[serde(rename_all = "camelCase")]
58pub struct GmailHistoryResponse {
59 pub history: Option<Vec<GmailHistoryRecord>>,
60 pub next_page_token: Option<String>,
61 pub history_id: Option<String>,
62}
63
64#[derive(Debug, Deserialize)]
65#[serde(rename_all = "camelCase")]
66pub struct GmailHistoryRecord {
67 pub id: String,
68 pub messages: Option<Vec<GmailMessageRef>>,
69 pub messages_added: Option<Vec<GmailHistoryMessageAdded>>,
70 pub messages_deleted: Option<Vec<GmailHistoryMessageDeleted>>,
71 pub labels_added: Option<Vec<GmailHistoryLabelAdded>>,
72 pub labels_removed: Option<Vec<GmailHistoryLabelRemoved>>,
73}
74
75#[derive(Debug, Deserialize)]
76#[serde(rename_all = "camelCase")]
77pub struct GmailHistoryMessageAdded {
78 pub message: GmailMessageRef,
79}
80
81#[derive(Debug, Deserialize)]
82#[serde(rename_all = "camelCase")]
83pub struct GmailHistoryMessageDeleted {
84 pub message: GmailMessageRef,
85}
86
87#[derive(Debug, Deserialize)]
88#[serde(rename_all = "camelCase")]
89pub struct GmailHistoryLabelAdded {
90 pub message: GmailMessageRef,
91 pub label_ids: Option<Vec<String>>,
92}
93
94#[derive(Debug, Deserialize)]
95#[serde(rename_all = "camelCase")]
96pub struct GmailHistoryLabelRemoved {
97 pub message: GmailMessageRef,
98 pub label_ids: Option<Vec<String>>,
99}
100
101#[derive(Debug, Deserialize)]
102#[serde(rename_all = "camelCase")]
103pub struct GmailLabelsResponse {
104 pub labels: Option<Vec<GmailLabel>>,
105}
106
107#[derive(Debug, Clone, Deserialize)]
108#[serde(rename_all = "camelCase")]
109pub struct GmailLabel {
110 pub id: String,
111 pub name: String,
112 #[serde(rename = "type")]
113 pub label_type: Option<String>,
114 pub messages_total: Option<u32>,
115 pub messages_unread: Option<u32>,
116 pub color: Option<GmailLabelColor>,
117}
118
119#[derive(Debug, Clone, Deserialize)]
120#[serde(rename_all = "camelCase")]
121pub struct GmailLabelColor {
122 pub text_color: Option<String>,
123 pub background_color: Option<String>,
124}