use super::tracking_code::TrackingCode;
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct PostUsersRequest {
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "login", skip_serializing_if = "Option::is_none")]
pub login: Option<String>,
#[serde(
rename = "is_platform_access_only",
skip_serializing_if = "Option::is_none"
)]
pub is_platform_access_only: Option<bool>,
#[serde(rename = "role", skip_serializing_if = "Option::is_none")]
pub role: Option<Role>,
#[serde(rename = "language", skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
#[serde(rename = "is_sync_enabled", skip_serializing_if = "Option::is_none")]
pub is_sync_enabled: Option<bool>,
#[serde(rename = "job_title", skip_serializing_if = "Option::is_none")]
pub job_title: Option<String>,
#[serde(rename = "phone", skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(rename = "address", skip_serializing_if = "Option::is_none")]
pub address: Option<String>,
#[serde(rename = "space_amount", skip_serializing_if = "Option::is_none")]
pub space_amount: Option<i64>,
#[serde(rename = "tracking_codes", skip_serializing_if = "Option::is_none")]
pub tracking_codes: Option<Vec<TrackingCode>>,
#[serde(
rename = "can_see_managed_users",
skip_serializing_if = "Option::is_none"
)]
pub can_see_managed_users: Option<bool>,
#[serde(rename = "timezone", skip_serializing_if = "Option::is_none")]
pub timezone: Option<String>,
#[serde(
rename = "is_external_collab_restricted",
skip_serializing_if = "Option::is_none"
)]
pub is_external_collab_restricted: Option<bool>,
#[serde(
rename = "is_exempt_from_device_limits",
skip_serializing_if = "Option::is_none"
)]
pub is_exempt_from_device_limits: Option<bool>,
#[serde(
rename = "is_exempt_from_login_verification",
skip_serializing_if = "Option::is_none"
)]
pub is_exempt_from_login_verification: Option<bool>,
#[serde(rename = "status", skip_serializing_if = "Option::is_none")]
pub status: Option<Status>,
#[serde(
rename = "external_app_user_id",
skip_serializing_if = "Option::is_none"
)]
pub external_app_user_id: Option<String>,
}
impl PostUsersRequest {
pub fn new(name: String) -> PostUsersRequest {
PostUsersRequest {
name,
login: None,
is_platform_access_only: None,
role: None,
language: None,
is_sync_enabled: None,
job_title: None,
phone: None,
address: None,
space_amount: None,
tracking_codes: None,
can_see_managed_users: None,
timezone: None,
is_external_collab_restricted: None,
is_exempt_from_device_limits: None,
is_exempt_from_login_verification: None,
status: None,
external_app_user_id: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Role {
#[serde(rename = "coadmin")]
Coadmin,
#[serde(rename = "user")]
User,
}
impl Default for Role {
fn default() -> Role {
Self::Coadmin
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Status {
#[serde(rename = "active")]
Active,
#[serde(rename = "inactive")]
Inactive,
#[serde(rename = "cannot_delete_edit")]
CannotDeleteEdit,
#[serde(rename = "cannot_delete_edit_upload")]
CannotDeleteEditUpload,
}
impl Default for Status {
fn default() -> Status {
Self::Active
}
}