Skip to main content

box_open_sdk/models/schemas/
metadata_templates.rs

1// Code generated by box-gantry 0.1.0 (spec 3fb3510fe12f2f80) for Box API 2024.0. DO NOT EDIT.
2
3use crate::serde_helpers::double_option;
4
5use super::*;
6
7#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8pub struct MetadataTemplate {
9    pub id: String,
10    pub r#type: MetadataTemplateType,
11    #[serde(default, skip_serializing_if = "Option::is_none")]
12    pub scope: Option<String>,
13    #[serde(
14        rename = "templateKey",
15        default,
16        skip_serializing_if = "Option::is_none"
17    )]
18    pub template_key: Option<String>,
19    #[serde(
20        rename = "displayName",
21        default,
22        skip_serializing_if = "Option::is_none"
23    )]
24    pub display_name: Option<String>,
25    #[serde(default, skip_serializing_if = "Option::is_none")]
26    pub hidden: Option<bool>,
27    #[serde(default, skip_serializing_if = "Option::is_none")]
28    pub fields: Option<Vec<MetadataTemplateFields>>,
29    #[serde(
30        rename = "copyInstanceOnItemCopy",
31        default,
32        skip_serializing_if = "Option::is_none"
33    )]
34    pub copy_instance_on_item_copy: Option<bool>,
35}
36
37#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
38pub struct MetadataTemplates {
39    #[serde(default, skip_serializing_if = "Option::is_none")]
40    pub limit: Option<i64>,
41    #[serde(
42        default,
43        skip_serializing_if = "Option::is_none",
44        deserialize_with = "double_option"
45    )]
46    pub next_marker: Option<Option<String>>,
47    #[serde(
48        default,
49        skip_serializing_if = "Option::is_none",
50        deserialize_with = "double_option"
51    )]
52    pub prev_marker: Option<Option<String>>,
53    #[serde(default, skip_serializing_if = "Option::is_none")]
54    pub entries: Option<Vec<MetadataTemplate>>,
55}
56
57#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
58#[serde(transparent)]
59pub struct MetadataTemplateFieldsType(pub String);
60
61impl MetadataTemplateFieldsType {
62    pub const STRING: &'static str = "string";
63    pub const FLOAT: &'static str = "float";
64    pub const DATE: &'static str = "date";
65    pub const ENUM: &'static str = "enum";
66    pub const MULTISELECT: &'static str = "multiSelect";
67    pub const TAXONOMY: &'static str = "taxonomy";
68    pub const INTEGER: &'static str = "integer";
69}
70
71#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
72pub struct MetadataTemplateFieldsOptions {
73    pub key: String,
74    #[serde(default, skip_serializing_if = "Option::is_none")]
75    pub id: Option<String>,
76}
77
78#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
79pub struct FieldsOptionsRules {
80    #[serde(
81        rename = "multiSelect",
82        default,
83        skip_serializing_if = "Option::is_none"
84    )]
85    pub multi_select: Option<bool>,
86    #[serde(
87        rename = "selectableLevels",
88        default,
89        skip_serializing_if = "Option::is_none"
90    )]
91    pub selectable_levels: Option<Vec<i64>>,
92}
93
94#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
95pub struct MetadataTemplateFields {
96    pub r#type: MetadataTemplateFieldsType,
97    pub key: String,
98    #[serde(rename = "displayName")]
99    pub display_name: String,
100    #[serde(default, skip_serializing_if = "Option::is_none")]
101    pub description: Option<String>,
102    #[serde(default, skip_serializing_if = "Option::is_none")]
103    pub hidden: Option<bool>,
104    #[serde(default, skip_serializing_if = "Option::is_none")]
105    pub options: Option<Vec<MetadataTemplateFieldsOptions>>,
106    #[serde(
107        rename = "taxonomyKey",
108        default,
109        skip_serializing_if = "Option::is_none"
110    )]
111    pub taxonomy_key: Option<String>,
112    #[serde(
113        rename = "taxonomyId",
114        default,
115        skip_serializing_if = "Option::is_none"
116    )]
117    pub taxonomy_id: Option<String>,
118    #[serde(default, skip_serializing_if = "Option::is_none")]
119    pub namespace: Option<String>,
120    #[serde(
121        rename = "optionsRules",
122        default,
123        skip_serializing_if = "Option::is_none"
124    )]
125    pub options_rules: Option<FieldsOptionsRules>,
126    #[serde(default, skip_serializing_if = "Option::is_none")]
127    pub id: Option<String>,
128}
129
130#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
131#[serde(transparent)]
132pub struct PutIdSchemaOp(pub String);
133
134impl PutIdSchemaOp {
135    pub const EDITTEMPLATE: &'static str = "editTemplate";
136    pub const ADDFIELD: &'static str = "addField";
137    pub const REORDERFIELDS: &'static str = "reorderFields";
138    pub const ADDENUMOPTION: &'static str = "addEnumOption";
139    pub const REORDERENUMOPTIONS: &'static str = "reorderEnumOptions";
140    pub const REORDERMULTISELECTOPTIONS: &'static str = "reorderMultiSelectOptions";
141    pub const ADDMULTISELECTOPTION: &'static str = "addMultiSelectOption";
142    pub const EDITFIELD: &'static str = "editField";
143    pub const REMOVEFIELD: &'static str = "removeField";
144    pub const EDITENUMOPTION: &'static str = "editEnumOption";
145    pub const REMOVEENUMOPTION: &'static str = "removeEnumOption";
146    pub const EDITMULTISELECTOPTION: &'static str = "editMultiSelectOption";
147    pub const REMOVEMULTISELECTOPTION: &'static str = "removeMultiSelectOption";
148}
149
150#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
151pub struct UpdateSchemaRequest {
152    pub op: PutIdSchemaOp,
153    #[serde(default, skip_serializing_if = "Option::is_none")]
154    pub data: Option<std::collections::HashMap<String, serde_json::Value>>,
155    #[serde(rename = "fieldKey", default, skip_serializing_if = "Option::is_none")]
156    pub field_key: Option<String>,
157    #[serde(rename = "fieldKeys", default, skip_serializing_if = "Option::is_none")]
158    pub field_keys: Option<Vec<String>>,
159    #[serde(
160        rename = "enumOptionKey",
161        default,
162        skip_serializing_if = "Option::is_none"
163    )]
164    pub enum_option_key: Option<String>,
165    #[serde(
166        rename = "enumOptionKeys",
167        default,
168        skip_serializing_if = "Option::is_none"
169    )]
170    pub enum_option_keys: Option<Vec<String>>,
171    #[serde(
172        rename = "multiSelectOptionKey",
173        default,
174        skip_serializing_if = "Option::is_none"
175    )]
176    pub multi_select_option_key: Option<String>,
177    #[serde(
178        rename = "multiSelectOptionKeys",
179        default,
180        skip_serializing_if = "Option::is_none"
181    )]
182    pub multi_select_option_keys: Option<Vec<String>>,
183}
184
185#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
186#[serde(transparent)]
187pub struct CreateSchemaRequestFieldsType(pub String);
188
189impl CreateSchemaRequestFieldsType {
190    pub const STRING: &'static str = "string";
191    pub const FLOAT: &'static str = "float";
192    pub const DATE: &'static str = "date";
193    pub const ENUM: &'static str = "enum";
194    pub const MULTISELECT: &'static str = "multiSelect";
195    pub const TAXONOMY: &'static str = "taxonomy";
196}
197
198#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
199pub struct PostSchemaFields {
200    pub r#type: CreateSchemaRequestFieldsType,
201    pub key: String,
202    #[serde(rename = "displayName")]
203    pub display_name: String,
204    #[serde(default, skip_serializing_if = "Option::is_none")]
205    pub description: Option<String>,
206    #[serde(default, skip_serializing_if = "Option::is_none")]
207    pub hidden: Option<bool>,
208    #[serde(default, skip_serializing_if = "Option::is_none")]
209    pub options: Option<Vec<FieldsOptions>>,
210    #[serde(
211        rename = "taxonomyKey",
212        default,
213        skip_serializing_if = "Option::is_none"
214    )]
215    pub taxonomy_key: Option<String>,
216    #[serde(
217        rename = "taxonomyId",
218        default,
219        skip_serializing_if = "Option::is_none"
220    )]
221    pub taxonomy_id: Option<String>,
222    #[serde(default, skip_serializing_if = "Option::is_none")]
223    pub namespace: Option<String>,
224    #[serde(
225        rename = "optionsRules",
226        default,
227        skip_serializing_if = "Option::is_none"
228    )]
229    pub options_rules: Option<FieldsOptionsRules>,
230}
231
232#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
233pub struct CreateSchemaRequest {
234    pub scope: String,
235    #[serde(
236        rename = "templateKey",
237        default,
238        skip_serializing_if = "Option::is_none"
239    )]
240    pub template_key: Option<String>,
241    #[serde(rename = "displayName")]
242    pub display_name: String,
243    #[serde(default, skip_serializing_if = "Option::is_none")]
244    pub hidden: Option<bool>,
245    #[serde(default, skip_serializing_if = "Option::is_none")]
246    pub fields: Option<Vec<PostSchemaFields>>,
247    #[serde(
248        rename = "copyInstanceOnItemCopy",
249        default,
250        skip_serializing_if = "Option::is_none"
251    )]
252    pub copy_instance_on_item_copy: Option<bool>,
253}