use crate::serde_helpers::double_option;
use super::*;
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CollaborationPermissions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_co_owner_role_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_editor_role_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_previewer_role_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_previewer_uploader_role_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_uploader_role_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_viewer_role_enabled: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_viewer_uploader_role_enabled: Option<bool>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CustomSessionDurationGroupItem {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfiguration {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<EnterpriseConfigurationType>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub security: Option<Option<EnterpriseConfigurationSecurity>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub content_and_sharing: Option<Option<EnterpriseConfigurationContentAndSharing>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub user_settings: Option<Option<EnterpriseConfigurationUserSettings>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub shield: Option<Option<EnterpriseConfigurationShield>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationContentAndSharing {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enterprise_feature_settings: Option<Vec<EnterpriseFeatureSettingsItem>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sharing_item_type: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_link_company_definition: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_link_access: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_link_default_access: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_link_default_permissions_selected:
Option<EnterpriseConfigurationContentAndSharingSharedLinkDefaultPermissionsSelected>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_open_custom_urls_disabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_custom_domain_hidden_in_shared_link: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub collaboration_permissions:
Option<EnterpriseConfigurationContentAndSharingCollaborationPermissions>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub default_collaboration_role: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_invite_privilege_restricted: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub collaboration_restrictions:
Option<EnterpriseConfigurationContentAndSharingCollaborationRestrictions>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_collaborator_invite_links_disabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_invite_group_collaborator_disabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_ownership_transfer_restricted: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub external_collaboration_status:
Option<EnterpriseConfigurationContentAndSharingExternalCollaborationStatus>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub external_collaboration_allowlist_users:
Option<EnterpriseConfigurationContentAndSharingExternalCollaborationAllowlistUsers>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_watermarking_enterprise_feature_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_root_content_creation_restricted: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_tag_creation_restricted: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tag_creation_restriction: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_email_uploads_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_custom_settings_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_forms_login_required: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_forms_branding_default_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_cc_free_trial_active: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_file_request_editors_allowed: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_file_request_branding_default_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_file_request_login_required: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_shared_links_expiration_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_links_expiration_days: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_public_shared_links_expiration_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub public_shared_links_expiration_days: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_expiration_target: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_shared_links_expiration_notification_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shared_links_expiration_notification_days: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_shared_links_expiration_notification_prevented:
Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_auto_delete_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub auto_delete_days: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_auto_delete_expiration_modification_prevented:
Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub auto_delete_target: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_collaboration_expiration_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub collaboration_expiration_days: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_collaboration_expiration_modification_prevented:
Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_collaboration_expiration_notification_enabled:
Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub collaboration_expiration_target: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub trash_auto_clear_time: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub permanent_deletion_access: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub permanent_deletion_allowlist_users:
Option<EnterpriseConfigurationContentAndSharingExternalCollaborationAllowlistUsers>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationItemBoolean {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub value: Option<Option<bool>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationItemInteger {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub value: Option<Option<i64>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationItemString {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub value: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationSecurity {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_managed_user_signup_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_managed_user_signup_notification_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_managed_user_signup_corporate_email_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_new_user_notification_daily_digest_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_managed_user_email_change_disabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_multi_factor_auth_required: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_weak_password_prevention_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_password_leak_detection_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub last_password_reset_at: Option<EnterpriseConfigurationSecurityLastPasswordResetAt>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_password_request_notification_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_password_change_notification_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_strong_password_for_ext_collab_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_managed_user_migration_disabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub join_link: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub join_url: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub failed_login_attempts_to_trigger_admin_notification:
Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub password_min_length: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub password_min_uppercase_characters: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub password_min_numeric_characters: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub password_min_special_characters: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub password_reset_frequency: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub previous_password_reuse_limit: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub session_duration: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub external_collab_multi_factor_auth_settings:
Option<EnterpriseConfigurationSecurityExternalCollabMultiFactorAuthSettings>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub keysafe: Option<EnterpriseConfigurationSecurityKeysafe>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_custom_session_duration_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub custom_session_duration_value: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub custom_session_duration_groups:
Option<EnterpriseConfigurationSecurityCustomSessionDurationGroups>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub multi_factor_auth_type: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enforced_mfa_frequency: Option<EnterpriseConfigurationSecurityEnforcedMfaFrequency>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationShield {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub shield_rules: Option<Vec<ShieldRuleItem>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationUserSettings {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub enterprise_feature_settings: Option<Vec<EnterpriseFeatureSettingsItem>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user_invites_expiration_time_frame: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_username_change_restricted: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_box_sync_restricted_for_new_users: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_view_all_users_enabled_for_new_users: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_device_limit_exemption_enabled_for_new_users: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_external_collaboration_restricted_for_new_users:
Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_unlimited_storage_enabled_for_new_users: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub new_user_default_storage_limit: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub new_user_default_timezone: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub new_user_default_language: Option<EnterpriseConfigurationItemString>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_enterprise_sso_required: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_enterprise_sso_in_testing: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_sso_auto_add_groups_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_sso_auto_add_user_to_groups_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_sso_auto_remove_user_from_groups_enabled: Option<EnterpriseConfigurationItemBoolean>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub user_tracking_codes: Option<EnterpriseConfigurationUserSettingsUserTrackingCodes>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub number_of_user_tracking_codes_remaining: Option<EnterpriseConfigurationItemInteger>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_instant_login_restricted: Option<EnterpriseConfigurationItemBoolean>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseFeatureSetting {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub id: Option<Option<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub feature: Option<EnterpriseFeatureSettingFeature>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub state: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub can_configure: Option<Option<bool>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub is_configured: Option<Option<bool>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub allowlist: Option<Option<Vec<UserOrGroupReference>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub denylist: Option<Option<Vec<UserOrGroupReference>>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseFeatureSettingsItem {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<EnterpriseFeatureSetting>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ExternalCollabSecuritySettings {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub denylist_domains: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub denylist_emails: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowlist_domains: Option<Vec<String>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub allowlist_emails: Option<Vec<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub state: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub scheduled_status: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub scheduled_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub factor_type_settings: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct KeysafeSettings {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub keysafe_enabled: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub cloud_provider: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub key_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub account_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub location_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub project_id: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub keyring_id: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ListUser {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub id: Option<Option<i64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub name: Option<Option<String>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub email: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ShieldRuleItem {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<ShieldRuleItemType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub rule_category: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub priority: Option<ShieldRuleItemPriority>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub created_at: Option<chrono::DateTime<chrono::Utc>>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserOrGroupReference {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub r#type: Option<UserOrGroupReferenceType>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UserTrackingCode {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub id: Option<Option<i64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub name: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct EnterpriseConfigurationType(pub String);
impl EnterpriseConfigurationType {
pub const ENTERPRISE_CONFIGURATION: &'static str = "enterprise_configuration";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationContentAndSharingSharedLinkDefaultPermissionsSelected {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<SharedLinkPermissions>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationContentAndSharingCollaborationPermissions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<CollaborationPermissions>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationContentAndSharingCollaborationRestrictions {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<Vec<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationContentAndSharingExternalCollaborationStatus {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub value: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationContentAndSharingExternalCollaborationAllowlistUsers {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<Vec<ListUser>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationSecurityLastPasswordResetAt {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub value: Option<Option<chrono::DateTime<chrono::Utc>>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationSecurityExternalCollabMultiFactorAuthSettings {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub value: Option<Option<ExternalCollabSecuritySettings>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationSecurityKeysafe {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub value: Option<Option<KeysafeSettings>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationSecurityCustomSessionDurationGroups {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<Vec<CustomSessionDurationGroupItem>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnforcedMfaFrequencyValue {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub days: Option<Option<i64>>,
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub hours: Option<Option<i64>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationSecurityEnforcedMfaFrequency {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<EnforcedMfaFrequencyValue>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseConfigurationUserSettingsUserTrackingCodes {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_used: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub value: Option<Vec<UserTrackingCode>>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct EnterpriseFeatureSettingFeature {
#[serde(
default,
skip_serializing_if = "Option::is_none",
deserialize_with = "double_option"
)]
pub id: Option<Option<String>>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ShieldRuleItemType(pub String);
impl ShieldRuleItemType {
pub const SHIELD_RULE: &'static str = "shield_rule";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ShieldRuleItemPriority(pub String);
impl ShieldRuleItemPriority {
pub const INFORMATIONAL: &'static str = "informational";
pub const LOW: &'static str = "low";
pub const MEDIUM: &'static str = "medium";
pub const HIGH: &'static str = "high";
pub const CRITICAL: &'static str = "critical";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct UserOrGroupReferenceType(pub String);
impl UserOrGroupReferenceType {
pub const USER: &'static str = "user";
pub const GROUP: &'static str = "group";
}