io_msgraph/v1/rest/users/
messages.rs1use alloc::{string::String, vec::Vec};
8
9use serde::{Deserialize, Serialize};
10
11use crate::v1::rest::users::contacts::MsgraphSingleValueExtendedProperty;
12
13pub mod attachments;
14pub mod copy;
15pub mod create;
16pub mod create_mime;
17pub mod delete;
18pub mod delta;
19pub mod get;
20pub mod get_raw;
21pub mod list;
22pub mod r#move;
23pub mod send;
24pub mod update;
25
26#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
29#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
30#[serde(rename_all = "camelCase")]
31pub struct MsgraphMessage {
32 #[serde(default, skip_serializing_if = "String::is_empty")]
34 pub id: String,
35 #[serde(default, skip_serializing_if = "Option::is_none")]
37 pub change_key: Option<String>,
38 #[serde(default, skip_serializing_if = "Option::is_none")]
40 pub subject: Option<String>,
41 #[serde(default, skip_serializing_if = "Option::is_none")]
43 pub body_preview: Option<String>,
44 #[serde(default, skip_serializing_if = "Option::is_none")]
46 pub body: Option<MsgraphItemBody>,
47 #[serde(default, skip_serializing_if = "Option::is_none")]
49 pub from: Option<MsgraphRecipient>,
50 #[serde(default, skip_serializing_if = "Option::is_none")]
52 pub sender: Option<MsgraphRecipient>,
53 #[serde(default, skip_serializing_if = "Vec::is_empty")]
55 pub to_recipients: Vec<MsgraphRecipient>,
56 #[serde(default, skip_serializing_if = "Vec::is_empty")]
58 pub cc_recipients: Vec<MsgraphRecipient>,
59 #[serde(default, skip_serializing_if = "Vec::is_empty")]
61 pub bcc_recipients: Vec<MsgraphRecipient>,
62 #[serde(default, skip_serializing_if = "Vec::is_empty")]
64 pub reply_to: Vec<MsgraphRecipient>,
65 #[serde(default, skip_serializing_if = "Option::is_none")]
67 pub received_date_time: Option<String>,
68 #[serde(default, skip_serializing_if = "Option::is_none")]
70 pub sent_date_time: Option<String>,
71 #[serde(default, skip_serializing_if = "Option::is_none")]
73 pub is_read: Option<bool>,
74 #[serde(default, skip_serializing_if = "Option::is_none")]
76 pub is_draft: Option<bool>,
77 #[serde(default, skip_serializing_if = "Option::is_none")]
79 pub has_attachments: Option<bool>,
80 #[serde(default, skip_serializing_if = "Option::is_none")]
82 pub internet_message_id: Option<String>,
83 #[serde(default, skip_serializing_if = "Option::is_none")]
85 pub importance: Option<MsgraphImportance>,
86 #[serde(default, skip_serializing_if = "Option::is_none")]
88 pub flag: Option<MsgraphFollowupFlag>,
89 #[serde(default, skip_serializing_if = "Vec::is_empty")]
91 pub categories: Vec<String>,
92 #[serde(default, skip_serializing_if = "Option::is_none")]
94 pub parent_folder_id: Option<String>,
95 #[serde(default, skip_serializing_if = "Option::is_none")]
97 pub conversation_id: Option<String>,
98 #[serde(default, skip_serializing_if = "Vec::is_empty")]
102 pub single_value_extended_properties: Vec<MsgraphSingleValueExtendedProperty>,
103}
104
105#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
107#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
108#[serde(rename_all = "camelCase")]
109pub struct MsgraphRecipient {
110 pub email_address: MsgraphEmailAddress,
112}
113
114#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
116#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
117#[serde(rename_all = "camelCase")]
118pub struct MsgraphEmailAddress {
119 #[serde(default, skip_serializing_if = "Option::is_none")]
121 pub name: Option<String>,
122 #[serde(default, skip_serializing_if = "Option::is_none")]
124 pub address: Option<String>,
125}
126
127#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
129#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
130#[serde(rename_all = "camelCase")]
131pub struct MsgraphItemBody {
132 #[serde(default, skip_serializing_if = "Option::is_none")]
134 pub content_type: Option<MsgraphBodyType>,
135 #[serde(default, skip_serializing_if = "Option::is_none")]
137 pub content: Option<String>,
138}
139
140#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
142#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
143#[serde(rename_all = "camelCase")]
144pub struct MsgraphFollowupFlag {
145 #[serde(default, skip_serializing_if = "Option::is_none")]
147 pub flag_status: Option<MsgraphFlagStatus>,
148}
149
150#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
152#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
153#[serde(rename_all = "lowercase")]
154pub enum MsgraphBodyType {
155 Text,
157 Html,
159}
160
161#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
163#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
164#[serde(rename_all = "camelCase")]
165pub enum MsgraphFlagStatus {
166 NotFlagged,
168 Complete,
170 Flagged,
172}
173
174#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
176#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
177#[serde(rename_all = "lowercase")]
178pub enum MsgraphImportance {
179 Low,
181 Normal,
183 High,
185}