use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CallingSettingsCalling {
#[serde(rename = "status", skip_serializing_if = "Option::is_none")]
pub status: Option<Status>,
#[serde(rename = "call_icon_visibility", skip_serializing_if = "Option::is_none")]
pub call_icon_visibility: Option<CallIconVisibility>,
#[serde(rename = "callback_permission_status", skip_serializing_if = "Option::is_none")]
pub callback_permission_status: Option<CallbackPermissionStatus>,
#[serde(rename = "srtp_key_exchange_protocol", skip_serializing_if = "Option::is_none")]
pub srtp_key_exchange_protocol: Option<SrtpKeyExchangeProtocol>,
#[serde(rename = "call_hours", skip_serializing_if = "Option::is_none")]
pub call_hours: Option<models::CallingSettingsCallingCallHours>,
#[serde(rename = "sip", skip_serializing_if = "Option::is_none")]
pub sip: Option<models::CallingSettingsCallingSip>,
#[serde(rename = "video", skip_serializing_if = "Option::is_none")]
pub video: Option<models::CallingSettingsCallingVideo>,
#[serde(rename = "audio", skip_serializing_if = "Option::is_none")]
pub audio: Option<models::CallingSettingsCallingAudio>,
#[serde(rename = "restrictions", skip_serializing_if = "Option::is_none")]
pub restrictions: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(rename = "ip_addresses", skip_serializing_if = "Option::is_none")]
pub ip_addresses: Option<std::collections::HashMap<String, serde_json::Value>>,
#[serde(rename = "call_icons", skip_serializing_if = "Option::is_none")]
pub call_icons: Option<std::collections::HashMap<String, serde_json::Value>>,
}
impl CallingSettingsCalling {
pub fn new() -> CallingSettingsCalling {
CallingSettingsCalling {
status: None,
call_icon_visibility: None,
callback_permission_status: None,
srtp_key_exchange_protocol: None,
call_hours: None,
sip: None,
video: None,
audio: None,
restrictions: None,
ip_addresses: None,
call_icons: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "ENABLED")]
Enabled,
#[serde(rename = "DISABLED")]
Disabled,
}
impl Default for Status {
fn default() -> Status {
Self::Enabled
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum CallIconVisibility {
#[serde(rename = "DEFAULT")]
Default,
#[serde(rename = "DISABLE_ALL")]
DisableAll,
}
impl Default for CallIconVisibility {
fn default() -> CallIconVisibility {
Self::Default
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum CallbackPermissionStatus {
#[serde(rename = "ENABLED")]
Enabled,
#[serde(rename = "DISABLED")]
Disabled,
}
impl Default for CallbackPermissionStatus {
fn default() -> CallbackPermissionStatus {
Self::Enabled
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum SrtpKeyExchangeProtocol {
#[serde(rename = "DTLS")]
Dtls,
#[serde(rename = "SDES")]
Sdes,
}
impl Default for SrtpKeyExchangeProtocol {
fn default() -> SrtpKeyExchangeProtocol {
Self::Dtls
}
}