box_open_sdk/models/schemas/
classifications.rs1use super::*;
4
5#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6pub struct ClassificationTemplate {
7 pub id: String,
8 pub r#type: MetadataTemplateType,
9 pub scope: String,
10 #[serde(rename = "templateKey")]
11 pub template_key: ClassificationTemplate2,
12 #[serde(rename = "displayName")]
13 pub display_name: ClassificationTemplateDisplayName,
14 #[serde(default, skip_serializing_if = "Option::is_none")]
15 pub hidden: Option<bool>,
16 #[serde(
17 rename = "copyInstanceOnItemCopy",
18 default,
19 skip_serializing_if = "Option::is_none"
20 )]
21 pub copy_instance_on_item_copy: Option<bool>,
22 pub fields: Vec<ClassificationTemplateFields>,
23}
24
25#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
26#[serde(transparent)]
27pub struct ClassificationTemplateDisplayName(pub String);
28
29impl ClassificationTemplateDisplayName {
30 pub const CLASSIFICATION: &'static str = "Classification";
31}
32
33#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
34#[serde(transparent)]
35pub struct FieldsType(pub String);
36
37impl FieldsType {
38 pub const ENUM: &'static str = "enum";
39}
40
41#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
42#[serde(transparent)]
43pub struct FieldsKey(pub String);
44
45impl FieldsKey {
46 pub const BOX_SECURITY_CLASSIFICATION_KEY: &'static str = "Box__Security__Classification__Key";
47}
48
49#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
50pub struct StaticConfigClassification {
51 #[serde(
52 rename = "classificationDefinition",
53 default,
54 skip_serializing_if = "Option::is_none"
55 )]
56 pub classification_definition: Option<String>,
57 #[serde(rename = "colorID", default, skip_serializing_if = "Option::is_none")]
58 pub color_id: Option<i64>,
59}
60
61#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
62pub struct OptionsStaticConfig {
63 #[serde(default, skip_serializing_if = "Option::is_none")]
64 pub classification: Option<StaticConfigClassification>,
65}
66
67#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
68pub struct ClassificationTemplateFieldsOptions {
69 pub id: String,
70 pub key: String,
71 #[serde(
72 rename = "staticConfig",
73 default,
74 skip_serializing_if = "Option::is_none"
75 )]
76 pub static_config: Option<OptionsStaticConfig>,
77}
78
79#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
80pub struct ClassificationTemplateFields {
81 pub id: String,
82 pub r#type: FieldsType,
83 pub key: FieldsKey,
84 #[serde(rename = "displayName")]
85 pub display_name: ClassificationTemplateDisplayName,
86 #[serde(default, skip_serializing_if = "Option::is_none")]
87 pub hidden: Option<bool>,
88 pub options: Vec<ClassificationTemplateFieldsOptions>,
89}
90
91#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
92#[serde(transparent)]
93pub struct PutAddOp(pub String);
94
95impl PutAddOp {
96 pub const ADDENUMOPTION: &'static str = "addEnumOption";
97}
98
99#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
100pub struct PutAddData {
101 pub key: String,
102 #[serde(
103 rename = "staticConfig",
104 default,
105 skip_serializing_if = "Option::is_none"
106 )]
107 pub static_config: Option<OptionsStaticConfig>,
108}
109
110#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
111pub struct UpdateClassificationAddRequest {
112 pub op: PutAddOp,
113 #[serde(rename = "fieldKey")]
114 pub field_key: FieldsKey,
115 pub data: PutAddData,
116}
117
118#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
119#[serde(transparent)]
120pub struct PutUpdateOp(pub String);
121
122impl PutUpdateOp {
123 pub const EDITENUMOPTION: &'static str = "editEnumOption";
124}
125
126#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
127pub struct UpdateClassificationUpdateRequest {
128 pub op: PutUpdateOp,
129 #[serde(rename = "fieldKey")]
130 pub field_key: FieldsKey,
131 #[serde(rename = "enumOptionKey")]
132 pub enum_option_key: String,
133 pub data: PutAddData,
134}
135
136#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
137pub struct PostMetadataTemplateSchemaClassificationsFields {
138 pub r#type: FieldsType,
139 pub key: FieldsKey,
140 #[serde(rename = "displayName")]
141 pub display_name: ClassificationTemplateDisplayName,
142 #[serde(default, skip_serializing_if = "Option::is_none")]
143 pub hidden: Option<bool>,
144 pub options: Vec<PutAddData>,
145}
146
147#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
148pub struct CreateMetadataTemplateSchemaClassificationsRequest {
149 pub scope: EnterpriseType,
150 #[serde(rename = "templateKey")]
151 pub template_key: ClassificationTemplate2,
152 #[serde(rename = "displayName")]
153 pub display_name: ClassificationTemplateDisplayName,
154 #[serde(default, skip_serializing_if = "Option::is_none")]
155 pub hidden: Option<bool>,
156 #[serde(
157 rename = "copyInstanceOnItemCopy",
158 default,
159 skip_serializing_if = "Option::is_none"
160 )]
161 pub copy_instance_on_item_copy: Option<bool>,
162 pub fields: Vec<PostMetadataTemplateSchemaClassificationsFields>,
163}