use super::{tracking_code::TrackingCode, user_full_all_of_enterprise::UserFullAllOfEnterprise};
#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
pub struct UserFull {
#[serde(rename = "id", skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "type")]
pub r#type: RHashType,
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "login", skip_serializing_if = "Option::is_none")]
pub login: Option<String>,
#[serde(rename = "created_at", skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(rename = "modified_at", skip_serializing_if = "Option::is_none")]
pub modified_at: Option<String>,
#[serde(rename = "language", skip_serializing_if = "Option::is_none")]
pub language: Option<String>,
#[serde(rename = "timezone", skip_serializing_if = "Option::is_none")]
pub timezone: Option<String>,
#[serde(rename = "space_amount", skip_serializing_if = "Option::is_none")]
pub space_amount: Option<i64>,
#[serde(rename = "space_used", skip_serializing_if = "Option::is_none")]
pub space_used: Option<i64>,
#[serde(rename = "max_upload_size", skip_serializing_if = "Option::is_none")]
pub max_upload_size: Option<i64>,
#[serde(rename = "status", skip_serializing_if = "Option::is_none")]
pub status: Option<Status>,
#[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 = "avatar_url", skip_serializing_if = "Option::is_none")]
pub avatar_url: Option<String>,
#[serde(rename = "role", skip_serializing_if = "Option::is_none")]
pub role: Option<Role>,
#[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 = "is_sync_enabled", skip_serializing_if = "Option::is_none")]
pub is_sync_enabled: Option<bool>,
#[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 = "enterprise", skip_serializing_if = "Option::is_none")]
pub enterprise: Option<Box<UserFullAllOfEnterprise>>,
#[serde(rename = "my_tags", skip_serializing_if = "Option::is_none")]
pub my_tags: Option<Vec<String>>,
#[serde(rename = "hostname", skip_serializing_if = "Option::is_none")]
pub hostname: Option<String>,
#[serde(
rename = "is_platform_access_only",
skip_serializing_if = "Option::is_none"
)]
pub is_platform_access_only: Option<bool>,
#[serde(
rename = "external_app_user_id",
skip_serializing_if = "Option::is_none"
)]
pub external_app_user_id: Option<String>,
}
impl UserFull {
pub fn new(r#type: RHashType) -> UserFull {
UserFull {
id: None,
r#type,
name: None,
login: None,
created_at: None,
modified_at: None,
language: None,
timezone: None,
space_amount: None,
space_used: None,
max_upload_size: None,
status: None,
job_title: None,
phone: None,
address: None,
avatar_url: None,
role: None,
tracking_codes: None,
can_see_managed_users: None,
is_sync_enabled: None,
is_external_collab_restricted: None,
is_exempt_from_device_limits: None,
is_exempt_from_login_verification: None,
enterprise: None,
my_tags: None,
hostname: None,
is_platform_access_only: None,
external_app_user_id: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum RHashType {
#[serde(rename = "user")]
User,
}
impl Default for RHashType {
fn default() -> RHashType {
Self::User
}
}
#[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
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Role {
#[serde(rename = "admin")]
Admin,
#[serde(rename = "coadmin")]
Coadmin,
#[serde(rename = "user")]
User,
}
impl Default for Role {
fn default() -> Role {
Self::Admin
}
}