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#[serde(rename_all = "camelCase")]
27pub struct MsgraphMessage {
28 #[serde(default, skip_serializing_if = "String::is_empty")]
30 pub id: String,
31 #[serde(default, skip_serializing_if = "Option::is_none")]
33 pub subject: Option<String>,
34 #[serde(default, skip_serializing_if = "Option::is_none")]
36 pub body_preview: Option<String>,
37 #[serde(default, skip_serializing_if = "Option::is_none")]
39 pub body: Option<MsgraphItemBody>,
40 #[serde(default, skip_serializing_if = "Option::is_none")]
42 pub from: Option<MsgraphRecipient>,
43 #[serde(default, skip_serializing_if = "Option::is_none")]
45 pub sender: Option<MsgraphRecipient>,
46 #[serde(default, skip_serializing_if = "Vec::is_empty")]
48 pub to_recipients: Vec<MsgraphRecipient>,
49 #[serde(default, skip_serializing_if = "Vec::is_empty")]
51 pub cc_recipients: Vec<MsgraphRecipient>,
52 #[serde(default, skip_serializing_if = "Vec::is_empty")]
54 pub bcc_recipients: Vec<MsgraphRecipient>,
55 #[serde(default, skip_serializing_if = "Vec::is_empty")]
57 pub reply_to: Vec<MsgraphRecipient>,
58 #[serde(default, skip_serializing_if = "Option::is_none")]
60 pub received_date_time: Option<String>,
61 #[serde(default, skip_serializing_if = "Option::is_none")]
63 pub sent_date_time: Option<String>,
64 #[serde(default, skip_serializing_if = "Option::is_none")]
66 pub is_read: Option<bool>,
67 #[serde(default, skip_serializing_if = "Option::is_none")]
69 pub is_draft: Option<bool>,
70 #[serde(default, skip_serializing_if = "Option::is_none")]
72 pub has_attachments: Option<bool>,
73 #[serde(default, skip_serializing_if = "Option::is_none")]
75 pub internet_message_id: Option<String>,
76 #[serde(default, skip_serializing_if = "Option::is_none")]
78 pub importance: Option<MsgraphImportance>,
79 #[serde(default, skip_serializing_if = "Option::is_none")]
81 pub flag: Option<MsgraphFollowupFlag>,
82 #[serde(default, skip_serializing_if = "Vec::is_empty")]
84 pub categories: Vec<String>,
85 #[serde(default, skip_serializing_if = "Option::is_none")]
87 pub parent_folder_id: Option<String>,
88 #[serde(default, skip_serializing_if = "Option::is_none")]
90 pub conversation_id: Option<String>,
91}
92
93#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
95#[serde(rename_all = "camelCase")]
96pub struct MsgraphRecipient {
97 pub email_address: MsgraphEmailAddress,
99}
100
101#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
103#[serde(rename_all = "camelCase")]
104pub struct MsgraphEmailAddress {
105 #[serde(default, skip_serializing_if = "Option::is_none")]
107 pub name: Option<String>,
108 #[serde(default, skip_serializing_if = "Option::is_none")]
110 pub address: Option<String>,
111}
112
113#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
115#[serde(rename_all = "camelCase")]
116pub struct MsgraphItemBody {
117 #[serde(default, skip_serializing_if = "Option::is_none")]
119 pub content_type: Option<MsgraphBodyType>,
120 #[serde(default, skip_serializing_if = "Option::is_none")]
122 pub content: Option<String>,
123}
124
125#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
127#[serde(rename_all = "camelCase")]
128pub struct MsgraphFollowupFlag {
129 #[serde(default, skip_serializing_if = "Option::is_none")]
131 pub flag_status: Option<MsgraphFlagStatus>,
132}
133
134#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
136#[serde(rename_all = "lowercase")]
137pub enum MsgraphBodyType {
138 Text,
140 Html,
142}
143
144#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
146#[serde(rename_all = "camelCase")]
147pub enum MsgraphFlagStatus {
148 NotFlagged,
150 Complete,
152 Flagged,
154}
155
156#[derive(Debug, Clone, Copy, Deserialize, Serialize, Eq, PartialEq)]
158#[serde(rename_all = "lowercase")]
159pub enum MsgraphImportance {
160 Low,
162 Normal,
164 High,
166}