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 get;
17pub mod get_raw;
18pub mod list;
19pub mod r#move;
20pub mod send;
21pub mod update;
22
23#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
26#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
27#[serde(rename_all = "camelCase")]
28pub struct MsgraphMessage {
29 #[serde(default, skip_serializing_if = "String::is_empty")]
31 pub id: String,
32 #[serde(default, skip_serializing_if = "Option::is_none")]
34 pub subject: Option<String>,
35 #[serde(default, skip_serializing_if = "Option::is_none")]
37 pub body_preview: Option<String>,
38 #[serde(default, skip_serializing_if = "Option::is_none")]
40 pub body: Option<MsgraphItemBody>,
41 #[serde(default, skip_serializing_if = "Option::is_none")]
43 pub from: Option<MsgraphRecipient>,
44 #[serde(default, skip_serializing_if = "Option::is_none")]
46 pub sender: Option<MsgraphRecipient>,
47 #[serde(default, skip_serializing_if = "Vec::is_empty")]
49 pub to_recipients: Vec<MsgraphRecipient>,
50 #[serde(default, skip_serializing_if = "Vec::is_empty")]
52 pub cc_recipients: Vec<MsgraphRecipient>,
53 #[serde(default, skip_serializing_if = "Vec::is_empty")]
55 pub bcc_recipients: Vec<MsgraphRecipient>,
56 #[serde(default, skip_serializing_if = "Vec::is_empty")]
58 pub reply_to: Vec<MsgraphRecipient>,
59 #[serde(default, skip_serializing_if = "Option::is_none")]
61 pub received_date_time: Option<String>,
62 #[serde(default, skip_serializing_if = "Option::is_none")]
64 pub sent_date_time: Option<String>,
65 #[serde(default, skip_serializing_if = "Option::is_none")]
67 pub is_read: Option<bool>,
68 #[serde(default, skip_serializing_if = "Option::is_none")]
70 pub is_draft: Option<bool>,
71 #[serde(default, skip_serializing_if = "Option::is_none")]
73 pub has_attachments: Option<bool>,
74 #[serde(default, skip_serializing_if = "Option::is_none")]
76 pub internet_message_id: Option<String>,
77 #[serde(default, skip_serializing_if = "Option::is_none")]
79 pub importance: Option<MsgraphImportance>,
80 #[serde(default, skip_serializing_if = "Option::is_none")]
82 pub flag: Option<MsgraphFollowupFlag>,
83 #[serde(default, skip_serializing_if = "Vec::is_empty")]
85 pub categories: Vec<String>,
86 #[serde(default, skip_serializing_if = "Option::is_none")]
88 pub parent_folder_id: Option<String>,
89 #[serde(default, skip_serializing_if = "Option::is_none")]
91 pub conversation_id: Option<String>,
92}
93
94#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
96#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
97#[serde(rename_all = "camelCase")]
98pub struct MsgraphRecipient {
99 pub email_address: MsgraphEmailAddress,
101}
102
103#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
105#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
106#[serde(rename_all = "camelCase")]
107pub struct MsgraphEmailAddress {
108 #[serde(default, skip_serializing_if = "Option::is_none")]
110 pub name: Option<String>,
111 #[serde(default, skip_serializing_if = "Option::is_none")]
113 pub address: Option<String>,
114}
115
116#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
118#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
119#[serde(rename_all = "camelCase")]
120pub struct MsgraphItemBody {
121 #[serde(default, skip_serializing_if = "Option::is_none")]
123 pub content_type: Option<MsgraphBodyType>,
124 #[serde(default, skip_serializing_if = "Option::is_none")]
126 pub content: Option<String>,
127}
128
129#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
131#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
132#[serde(rename_all = "camelCase")]
133pub struct MsgraphFollowupFlag {
134 #[serde(default, skip_serializing_if = "Option::is_none")]
136 pub flag_status: Option<MsgraphFlagStatus>,
137}
138
139#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
141#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
142#[serde(rename_all = "lowercase")]
143pub enum MsgraphBodyType {
144 Text,
146 Html,
148}
149
150#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
152#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
153#[serde(rename_all = "camelCase")]
154pub enum MsgraphFlagStatus {
155 NotFlagged,
157 Complete,
159 Flagged,
161}
162
163#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
165#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
166#[serde(rename_all = "lowercase")]
167pub enum MsgraphImportance {
168 Low,
170 Normal,
172 High,
174}