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 subject: Option<String>,
36 #[serde(default, skip_serializing_if = "Option::is_none")]
38 pub body_preview: Option<String>,
39 #[serde(default, skip_serializing_if = "Option::is_none")]
41 pub body: Option<MsgraphItemBody>,
42 #[serde(default, skip_serializing_if = "Option::is_none")]
44 pub from: Option<MsgraphRecipient>,
45 #[serde(default, skip_serializing_if = "Option::is_none")]
47 pub sender: Option<MsgraphRecipient>,
48 #[serde(default, skip_serializing_if = "Vec::is_empty")]
50 pub to_recipients: Vec<MsgraphRecipient>,
51 #[serde(default, skip_serializing_if = "Vec::is_empty")]
53 pub cc_recipients: Vec<MsgraphRecipient>,
54 #[serde(default, skip_serializing_if = "Vec::is_empty")]
56 pub bcc_recipients: Vec<MsgraphRecipient>,
57 #[serde(default, skip_serializing_if = "Vec::is_empty")]
59 pub reply_to: Vec<MsgraphRecipient>,
60 #[serde(default, skip_serializing_if = "Option::is_none")]
62 pub received_date_time: Option<String>,
63 #[serde(default, skip_serializing_if = "Option::is_none")]
65 pub sent_date_time: Option<String>,
66 #[serde(default, skip_serializing_if = "Option::is_none")]
68 pub is_read: Option<bool>,
69 #[serde(default, skip_serializing_if = "Option::is_none")]
71 pub is_draft: Option<bool>,
72 #[serde(default, skip_serializing_if = "Option::is_none")]
74 pub has_attachments: Option<bool>,
75 #[serde(default, skip_serializing_if = "Option::is_none")]
77 pub internet_message_id: Option<String>,
78 #[serde(default, skip_serializing_if = "Option::is_none")]
80 pub importance: Option<MsgraphImportance>,
81 #[serde(default, skip_serializing_if = "Option::is_none")]
83 pub flag: Option<MsgraphFollowupFlag>,
84 #[serde(default, skip_serializing_if = "Vec::is_empty")]
86 pub categories: Vec<String>,
87 #[serde(default, skip_serializing_if = "Option::is_none")]
89 pub parent_folder_id: Option<String>,
90 #[serde(default, skip_serializing_if = "Option::is_none")]
92 pub conversation_id: Option<String>,
93}
94
95#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
97#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
98#[serde(rename_all = "camelCase")]
99pub struct MsgraphRecipient {
100 pub email_address: MsgraphEmailAddress,
102}
103
104#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
106#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
107#[serde(rename_all = "camelCase")]
108pub struct MsgraphEmailAddress {
109 #[serde(default, skip_serializing_if = "Option::is_none")]
111 pub name: Option<String>,
112 #[serde(default, skip_serializing_if = "Option::is_none")]
114 pub address: Option<String>,
115}
116
117#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
119#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
120#[serde(rename_all = "camelCase")]
121pub struct MsgraphItemBody {
122 #[serde(default, skip_serializing_if = "Option::is_none")]
124 pub content_type: Option<MsgraphBodyType>,
125 #[serde(default, skip_serializing_if = "Option::is_none")]
127 pub content: Option<String>,
128}
129
130#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
132#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
133#[serde(rename_all = "camelCase")]
134pub struct MsgraphFollowupFlag {
135 #[serde(default, skip_serializing_if = "Option::is_none")]
137 pub flag_status: Option<MsgraphFlagStatus>,
138}
139
140#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
142#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
143#[serde(rename_all = "lowercase")]
144pub enum MsgraphBodyType {
145 Text,
147 Html,
149}
150
151#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
153#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
154#[serde(rename_all = "camelCase")]
155pub enum MsgraphFlagStatus {
156 NotFlagged,
158 Complete,
160 Flagged,
162}
163
164#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
166#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
167#[serde(rename_all = "lowercase")]
168pub enum MsgraphImportance {
169 Low,
171 Normal,
173 High,
175}