io_msgraph/v1/rest/users/
messages.rs1use alloc::{string::String, vec::Vec};
8
9use serde::{Deserialize, Serialize};
10
11pub mod attachments;
12pub mod copy;
13pub mod create;
14pub mod create_mime;
15pub mod delete;
16pub mod delta;
17pub mod get;
18pub mod get_raw;
19pub mod list;
20pub mod r#move;
21pub mod send;
22pub mod update;
23
24#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
27#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
28#[serde(rename_all = "camelCase")]
29pub struct MsgraphMessage {
30 #[serde(default, skip_serializing_if = "String::is_empty")]
32 pub id: String,
33 #[serde(default, skip_serializing_if = "Option::is_none")]
35 pub change_key: Option<String>,
36 #[serde(default, skip_serializing_if = "Option::is_none")]
38 pub subject: Option<String>,
39 #[serde(default, skip_serializing_if = "Option::is_none")]
41 pub body_preview: Option<String>,
42 #[serde(default, skip_serializing_if = "Option::is_none")]
44 pub body: Option<MsgraphItemBody>,
45 #[serde(default, skip_serializing_if = "Option::is_none")]
47 pub from: Option<MsgraphRecipient>,
48 #[serde(default, skip_serializing_if = "Option::is_none")]
50 pub sender: Option<MsgraphRecipient>,
51 #[serde(default, skip_serializing_if = "Vec::is_empty")]
53 pub to_recipients: Vec<MsgraphRecipient>,
54 #[serde(default, skip_serializing_if = "Vec::is_empty")]
56 pub cc_recipients: Vec<MsgraphRecipient>,
57 #[serde(default, skip_serializing_if = "Vec::is_empty")]
59 pub bcc_recipients: Vec<MsgraphRecipient>,
60 #[serde(default, skip_serializing_if = "Vec::is_empty")]
62 pub reply_to: Vec<MsgraphRecipient>,
63 #[serde(default, skip_serializing_if = "Option::is_none")]
65 pub received_date_time: Option<String>,
66 #[serde(default, skip_serializing_if = "Option::is_none")]
68 pub sent_date_time: Option<String>,
69 #[serde(default, skip_serializing_if = "Option::is_none")]
71 pub is_read: Option<bool>,
72 #[serde(default, skip_serializing_if = "Option::is_none")]
74 pub is_draft: Option<bool>,
75 #[serde(default, skip_serializing_if = "Option::is_none")]
77 pub has_attachments: Option<bool>,
78 #[serde(default, skip_serializing_if = "Option::is_none")]
80 pub internet_message_id: Option<String>,
81 #[serde(default, skip_serializing_if = "Option::is_none")]
83 pub importance: Option<MsgraphImportance>,
84 #[serde(default, skip_serializing_if = "Option::is_none")]
86 pub flag: Option<MsgraphFollowupFlag>,
87 #[serde(default, skip_serializing_if = "Vec::is_empty")]
89 pub categories: Vec<String>,
90 #[serde(default, skip_serializing_if = "Option::is_none")]
92 pub parent_folder_id: Option<String>,
93 #[serde(default, skip_serializing_if = "Option::is_none")]
95 pub conversation_id: Option<String>,
96}
97
98#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
100#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
101#[serde(rename_all = "camelCase")]
102pub struct MsgraphRecipient {
103 pub email_address: MsgraphEmailAddress,
105}
106
107#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
109#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
110#[serde(rename_all = "camelCase")]
111pub struct MsgraphEmailAddress {
112 #[serde(default, skip_serializing_if = "Option::is_none")]
114 pub name: Option<String>,
115 #[serde(default, skip_serializing_if = "Option::is_none")]
117 pub address: Option<String>,
118}
119
120#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
122#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
123#[serde(rename_all = "camelCase")]
124pub struct MsgraphItemBody {
125 #[serde(default, skip_serializing_if = "Option::is_none")]
127 pub content_type: Option<MsgraphBodyType>,
128 #[serde(default, skip_serializing_if = "Option::is_none")]
130 pub content: Option<String>,
131}
132
133#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
135#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
136#[serde(rename_all = "camelCase")]
137pub struct MsgraphFollowupFlag {
138 #[serde(default, skip_serializing_if = "Option::is_none")]
140 pub flag_status: Option<MsgraphFlagStatus>,
141}
142
143#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
145#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
146#[serde(rename_all = "lowercase")]
147pub enum MsgraphBodyType {
148 Text,
150 Html,
152}
153
154#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
156#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
157#[serde(rename_all = "camelCase")]
158pub enum MsgraphFlagStatus {
159 NotFlagged,
161 Complete,
163 Flagged,
165}
166
167#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
169#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
170#[serde(rename_all = "lowercase")]
171pub enum MsgraphImportance {
172 Low,
174 Normal,
176 High,
178}