use alloc::string::String;
use serde::{Deserialize, Serialize};
use crate::v1::{field::MsgraphField, rest::users::messages::MsgraphEmailAddress};
pub mod create;
pub mod delete;
pub mod get;
pub mod list;
pub mod update;
#[derive(Debug, Clone, Default, Deserialize, Serialize, Eq, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct MsgraphCalendar {
#[serde(default, skip_serializing_if = "String::is_empty")]
pub id: String,
#[serde(default, skip_serializing_if = "MsgraphField::is_unset")]
pub name: MsgraphField<String>,
#[serde(default, skip_serializing_if = "MsgraphField::is_unset")]
pub color: MsgraphField<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hex_color: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub change_key: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub can_edit: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_default_calendar: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_removable: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub owner: Option<MsgraphEmailAddress>,
}