use serde::{Deserialize, Serialize};
use super::{AdditionalProperties, DefaultReminder};
#[derive(Serialize, Deserialize, Default, Debug, Clone, Copy)]
#[serde(rename_all = "camelCase")]
pub enum SendUpdates {
#[default]
All,
ExternalOnly,
None,
}
impl SendUpdates {
pub fn to_str(&self) -> &'static str {
match self {
Self::All => "all",
Self::ExternalOnly => "externalOnly",
Self::None => "none",
}
}
}
impl std::fmt::Display for SendUpdates {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.to_str())
}
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, Copy, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub enum EventOfficeLocationType {
#[default]
HomeOffice,
OfficeLocation,
CustomLocation,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct EventOfficeLocation {
#[serde(skip_serializing_if = "Option::is_none")]
pub building_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub desk_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub floor_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub floor_section_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub label: Option<String>,
pub typ: EventOfficeLocationType,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct EventCustomLocation {
#[serde(skip_serializing_if = "Option::is_none")]
pub label: Option<String>,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct EventWorkingLocation {
#[serde(skip_serializing_if = "Option::is_none")]
pub custom_location: Option<EventCustomLocation>,
#[serde(skip_serializing_if = "Option::is_none")]
pub home_office: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub office_location: Option<EventOfficeLocation>,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, Copy, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub enum EventVisibility {
#[default]
Default,
Public,
Private,
Confidential,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, Copy, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub enum EventTransparency {
#[default]
Opaque,
Transparent,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, Copy, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub enum EventStatus {
Confirmed,
#[default]
Tentative,
Cancelled,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct EventSource {
pub title: String,
pub url: String,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct EventReminder {
#[serde(skip_serializing_if = "Option::is_none")]
pub overrides: Option<Vec<DefaultReminder>>,
pub use_default: bool,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct EventOrganizer {
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
pub email: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "self")]
pub appears_as_self: Option<bool>,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, Copy, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub enum EventGadgetDisplay {
#[default]
Icon,
Chip,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct EventGadget {
pub display: EventGadgetDisplay,
pub preferences: AdditionalProperties,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct EventExtendedProperties {
#[serde(skip_serializing_if = "Option::is_none")]
pub private: Option<AdditionalProperties>,
#[serde(skip_serializing_if = "Option::is_none")]
pub shared: Option<AdditionalProperties>,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, Copy, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub enum EventType {
#[default]
Default,
OutOfOffice,
FocusTime,
WorkingLocation,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct EventCalendarDate {
#[serde(skip_serializing_if = "Option::is_none")]
pub date: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub date_time: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub time_zone: Option<String>,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct EventConferenceData {
#[serde(skip_serializing_if = "Option::is_none")]
pub conference_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub conference_solution: Option<EventConferenceSolution>,
#[serde(skip_serializing_if = "Option::is_none")]
pub create_request: Option<EventCreateConferenceRequest>,
#[serde(skip_serializing_if = "Vec::is_empty")]
pub entry_points: Vec<EventConferenceEntryPoint>,
#[serde(skip_serializing_if = "Option::is_none")]
pub notes: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub signature: Option<String>,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct EventCreator {
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "self")]
#[serde(skip_serializing_if = "Option::is_none")]
pub appears_as_self: Option<bool>,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct EventConferenceEntryPoint {
entry_point_type: EventConferenceEntryPointType,
#[serde(skip_serializing_if = "Option::is_none")]
pub label: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
meeting_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
passcode: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
password: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pin: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
uri: Option<String>,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, Copy, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub enum EventConferenceEntryPointType {
#[default]
Video,
Phone,
SIP,
More,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct EventCreateConferenceRequest {
conference_solution_key: EventConferenceSolutionKey,
request_id: String,
status: EventConferenceStatus,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct EventConferenceStatus {
status_code: EventConferenceStatusCode,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, Copy, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub enum EventConferenceStatusCode {
#[default]
Pending,
Success,
Failure,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct EventConferenceSolution {
pub icon_uri: String,
pub key: EventConferenceSolutionKey,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct EventConferenceSolutionKey {
#[serde(rename = "type")]
pub typ: EventConferenceSolutionKeyType,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, Copy, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub enum EventConferenceSolutionKeyType {
EventHangout,
EventNamedHangout,
#[default]
HangoutsMeet,
AddOn,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct EventAttendees {
#[serde(skip_serializing_if = "Option::is_none")]
pub additional_guests: Option<u8>,
#[serde(skip_serializing_if = "Option::is_none")]
pub comment: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
pub email: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub optional: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub organizer: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub resource: Option<bool>,
pub response_status: EventResponseStatus,
#[serde(rename = "self")]
#[serde(skip_serializing_if = "Option::is_none")]
pub appears_as_self: Option<bool>,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, Copy, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub enum EventResponseStatus {
#[default]
NeedsAction,
Declined,
Tentative,
Accepted,
}
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct EventAttachment {
pub file_id: String,
pub file_url: String,
pub icon_link: String,
pub mime_type: String,
pub title: String,
}