agentmail/types/
drafts.rs1use super::Attachment;
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Debug, Default, Serialize)]
8pub struct CreateDraft {
9 #[serde(skip_serializing_if = "Vec::is_empty")]
11 pub to: Vec<String>,
12 #[serde(skip_serializing_if = "Vec::is_empty")]
14 pub cc: Vec<String>,
15 #[serde(skip_serializing_if = "Vec::is_empty")]
17 pub bcc: Vec<String>,
18 #[serde(skip_serializing_if = "Option::is_none")]
20 pub subject: Option<String>,
21 #[serde(skip_serializing_if = "Option::is_none")]
23 pub text: Option<String>,
24 #[serde(skip_serializing_if = "Option::is_none")]
26 pub html: Option<String>,
27 #[serde(skip_serializing_if = "Option::is_none")]
29 pub in_reply_to: Option<String>,
30 #[serde(skip_serializing_if = "Option::is_none")]
33 pub reply_all: Option<bool>,
34 #[serde(skip_serializing_if = "Option::is_none")]
36 pub forward_of: Option<String>,
37 #[serde(skip_serializing_if = "Vec::is_empty")]
39 pub labels: Vec<String>,
40 #[serde(skip_serializing_if = "Option::is_none")]
42 pub send_at: Option<String>,
43}
44#[derive(Clone, Debug, Default, Serialize)]
48pub struct UpdateDraft {
49 #[serde(skip_serializing_if = "Option::is_none")]
51 pub to: Option<Vec<String>>,
52 #[serde(skip_serializing_if = "Option::is_none")]
54 pub cc: Option<Vec<String>>,
55 #[serde(skip_serializing_if = "Option::is_none")]
57 pub bcc: Option<Vec<String>>,
58 #[serde(skip_serializing_if = "Option::is_none")]
60 pub subject: Option<String>,
61 #[serde(skip_serializing_if = "Option::is_none")]
63 pub text: Option<String>,
64 #[serde(skip_serializing_if = "Option::is_none")]
66 pub html: Option<String>,
67 #[serde(skip_serializing_if = "Option::is_none")]
69 pub add_labels: Option<Vec<String>>,
70 #[serde(skip_serializing_if = "Option::is_none")]
72 pub remove_labels: Option<Vec<String>>,
73 #[serde(skip_serializing_if = "Option::is_none")]
75 pub send_at: Option<String>,
76}
77#[derive(Clone, Debug, Deserialize)]
80pub struct Draft {
81 pub draft_id: String,
83 #[serde(default)]
85 pub inbox_id: Option<String>,
86 #[serde(default)]
88 pub to: Vec<String>,
89 #[serde(default)]
91 pub cc: Vec<String>,
92 #[serde(default)]
94 pub bcc: Vec<String>,
95 #[serde(default)]
97 pub subject: Option<String>,
98 #[serde(default)]
100 pub text: Option<String>,
101 #[serde(default)]
103 pub html: Option<String>,
104 #[serde(default)]
106 pub labels: Vec<String>,
107 #[serde(default)]
109 pub in_reply_to: Option<String>,
110 #[serde(default)]
112 pub reply_all: Option<bool>,
113 #[serde(default)]
115 pub forward_of: Option<String>,
116 #[serde(default)]
118 pub send_at: Option<String>,
119 #[serde(default)]
121 pub created_at: Option<String>,
122 #[serde(default)]
124 pub updated_at: Option<String>,
125 #[serde(default)]
127 pub from: Option<String>,
128 #[serde(default)]
130 pub attachments: Vec<Attachment>,
131}
132#[derive(Clone, Debug, Deserialize)]
134pub struct DraftList {
135 pub count: u64,
137 #[serde(default)]
139 pub drafts: Vec<Draft>,
140 #[serde(default)]
142 pub next_page_token: Option<String>,
143}