use super::*;
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ClassificationTemplate {
pub id: String,
pub r#type: MetadataTemplateType,
pub scope: String,
#[serde(rename = "templateKey")]
pub template_key: ClassificationTemplate2,
#[serde(rename = "displayName")]
pub display_name: ClassificationTemplateDisplayName,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hidden: Option<bool>,
#[serde(
rename = "copyInstanceOnItemCopy",
default,
skip_serializing_if = "Option::is_none"
)]
pub copy_instance_on_item_copy: Option<bool>,
pub fields: Vec<ClassificationTemplateFields>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct ClassificationTemplateDisplayName(pub String);
impl ClassificationTemplateDisplayName {
pub const CLASSIFICATION: &'static str = "Classification";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FieldsType(pub String);
impl FieldsType {
pub const ENUM: &'static str = "enum";
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct FieldsKey(pub String);
impl FieldsKey {
pub const BOX_SECURITY_CLASSIFICATION_KEY: &'static str = "Box__Security__Classification__Key";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct StaticConfigClassification {
#[serde(
rename = "classificationDefinition",
default,
skip_serializing_if = "Option::is_none"
)]
pub classification_definition: Option<String>,
#[serde(rename = "colorID", default, skip_serializing_if = "Option::is_none")]
pub color_id: Option<i64>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct OptionsStaticConfig {
#[serde(default, skip_serializing_if = "Option::is_none")]
pub classification: Option<StaticConfigClassification>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ClassificationTemplateFieldsOptions {
pub id: String,
pub key: String,
#[serde(
rename = "staticConfig",
default,
skip_serializing_if = "Option::is_none"
)]
pub static_config: Option<OptionsStaticConfig>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct ClassificationTemplateFields {
pub id: String,
pub r#type: FieldsType,
pub key: FieldsKey,
#[serde(rename = "displayName")]
pub display_name: ClassificationTemplateDisplayName,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hidden: Option<bool>,
pub options: Vec<ClassificationTemplateFieldsOptions>,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PutAddOp(pub String);
impl PutAddOp {
pub const ADDENUMOPTION: &'static str = "addEnumOption";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PutAddData {
pub key: String,
#[serde(
rename = "staticConfig",
default,
skip_serializing_if = "Option::is_none"
)]
pub static_config: Option<OptionsStaticConfig>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UpdateClassificationAddRequest {
pub op: PutAddOp,
#[serde(rename = "fieldKey")]
pub field_key: FieldsKey,
pub data: PutAddData,
}
#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
#[serde(transparent)]
pub struct PutUpdateOp(pub String);
impl PutUpdateOp {
pub const EDITENUMOPTION: &'static str = "editEnumOption";
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct UpdateClassificationUpdateRequest {
pub op: PutUpdateOp,
#[serde(rename = "fieldKey")]
pub field_key: FieldsKey,
#[serde(rename = "enumOptionKey")]
pub enum_option_key: String,
pub data: PutAddData,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct PostMetadataTemplateSchemaClassificationsFields {
pub r#type: FieldsType,
pub key: FieldsKey,
#[serde(rename = "displayName")]
pub display_name: ClassificationTemplateDisplayName,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hidden: Option<bool>,
pub options: Vec<PutAddData>,
}
#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
pub struct CreateMetadataTemplateSchemaClassificationsRequest {
pub scope: EnterpriseType,
#[serde(rename = "templateKey")]
pub template_key: ClassificationTemplate2,
#[serde(rename = "displayName")]
pub display_name: ClassificationTemplateDisplayName,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hidden: Option<bool>,
#[serde(
rename = "copyInstanceOnItemCopy",
default,
skip_serializing_if = "Option::is_none"
)]
pub copy_instance_on_item_copy: Option<bool>,
pub fields: Vec<PostMetadataTemplateSchemaClassificationsFields>,
}