1use crate::serde_helpers::double_option;
4
5#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6pub struct AccessToken {
7 #[serde(default, skip_serializing_if = "Option::is_none")]
8 pub access_token: Option<String>,
9 #[serde(default, skip_serializing_if = "Option::is_none")]
10 pub expires_in: Option<i64>,
11 #[serde(default, skip_serializing_if = "Option::is_none")]
12 pub token_type: Option<AccessTokenTokenType>,
13 #[serde(default, skip_serializing_if = "Option::is_none")]
14 pub restricted_to: Option<Vec<ResourceScope>>,
15 #[serde(default, skip_serializing_if = "Option::is_none")]
16 pub refresh_token: Option<String>,
17 #[serde(default, skip_serializing_if = "Option::is_none")]
18 pub issued_token_type: Option<AccessTokenIssuedTokenType>,
19}
20
21#[derive(Clone, Debug, PartialEq)]
22pub enum AiAgent {
23 AiAgentAsk(AiAgentAsk),
24 AiAgentTextGen(AiAgentTextGen),
25 AiAgentExtract(AiAgentExtract),
26 AiAgentExtractStructured(AiAgentExtractStructured),
27 Unknown(serde_json::Value),
29}
30
31impl Default for AiAgent {
32 fn default() -> Self {
33 Self::Unknown(Default::default())
34 }
35}
36
37impl serde::Serialize for AiAgent {
38 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
39 match self {
40 Self::AiAgentAsk(inner) => inner.serialize(serializer),
41 Self::AiAgentTextGen(inner) => inner.serialize(serializer),
42 Self::AiAgentExtract(inner) => inner.serialize(serializer),
43 Self::AiAgentExtractStructured(inner) => inner.serialize(serializer),
44 Self::Unknown(inner) => inner.serialize(serializer),
45 }
46 }
47}
48
49impl<'de> serde::Deserialize<'de> for AiAgent {
50 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
51 let value = serde_json::Value::deserialize(deserializer)?;
52 let tag = value
53 .get("type")
54 .and_then(serde_json::Value::as_str)
55 .map(str::to_owned);
56 match tag.as_deref() {
57 Some("ai_agent_ask") => Ok(Self::AiAgentAsk(
58 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
59 )),
60 Some("ai_agent_text_gen") => Ok(Self::AiAgentTextGen(
61 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
62 )),
63 Some("ai_agent_extract") => Ok(Self::AiAgentExtract(
64 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
65 )),
66 Some("ai_agent_extract_structured") => Ok(Self::AiAgentExtractStructured(
67 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
68 )),
69 _ => Ok(Self::Unknown(value)),
70 }
71 }
72}
73
74#[derive(Clone, Debug, PartialEq)]
75pub enum AiAgentAllowedEntity {
76 User(UserBase),
77 Group(GroupBase),
78 Unknown(serde_json::Value),
80}
81
82impl Default for AiAgentAllowedEntity {
83 fn default() -> Self {
84 Self::Unknown(Default::default())
85 }
86}
87
88impl serde::Serialize for AiAgentAllowedEntity {
89 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
90 match self {
91 Self::User(inner) => inner.serialize(serializer),
92 Self::Group(inner) => inner.serialize(serializer),
93 Self::Unknown(inner) => inner.serialize(serializer),
94 }
95 }
96}
97
98impl<'de> serde::Deserialize<'de> for AiAgentAllowedEntity {
99 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
100 let value = serde_json::Value::deserialize(deserializer)?;
101 let tag = value
102 .get("type")
103 .and_then(serde_json::Value::as_str)
104 .map(str::to_owned);
105 match tag.as_deref() {
106 Some("user") => Ok(Self::User(
107 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
108 )),
109 Some("group") => Ok(Self::Group(
110 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
111 )),
112 _ => Ok(Self::Unknown(value)),
113 }
114 }
115}
116
117#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
118pub struct AiAgentAsk {
119 pub r#type: AiAgentAskType,
120 #[serde(default, skip_serializing_if = "Option::is_none")]
121 pub long_text: Option<AiAgentLongTextTool>,
122 #[serde(default, skip_serializing_if = "Option::is_none")]
123 pub basic_text: Option<AiAgentBasicTextTool>,
124 #[serde(default, skip_serializing_if = "Option::is_none")]
125 pub spreadsheet: Option<AiAgentSpreadsheetTool>,
126 #[serde(default, skip_serializing_if = "Option::is_none")]
127 pub long_text_multi: Option<AiAgentLongTextTool>,
128 #[serde(default, skip_serializing_if = "Option::is_none")]
129 pub basic_text_multi: Option<AiAgentBasicTextTool>,
130 #[serde(default, skip_serializing_if = "Option::is_none")]
131 pub basic_image: Option<AiAgentBasicTextTool>,
132 #[serde(default, skip_serializing_if = "Option::is_none")]
133 pub basic_image_multi: Option<AiAgentBasicTextTool>,
134}
135
136#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
137pub struct AiAgentBasicGenTool {
138 #[serde(default, skip_serializing_if = "Option::is_none")]
139 pub model: Option<String>,
140 #[serde(default, skip_serializing_if = "Option::is_none")]
141 pub num_tokens_for_completion: Option<i64>,
142 #[serde(default, skip_serializing_if = "Option::is_none")]
143 pub llm_endpoint_params: Option<AiLlmEndpointParams>,
144 #[serde(default, skip_serializing_if = "Option::is_none")]
145 pub system_message: Option<String>,
146 #[serde(default, skip_serializing_if = "Option::is_none")]
147 pub prompt_template: Option<String>,
148 #[serde(default, skip_serializing_if = "Option::is_none")]
149 pub embeddings: Option<AiAgentBasicGenToolEmbeddings>,
150 #[serde(default, skip_serializing_if = "Option::is_none")]
151 pub content_template: Option<String>,
152}
153
154#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
155pub struct AiAgentBasicTextTool {
156 #[serde(default, skip_serializing_if = "Option::is_none")]
157 pub model: Option<String>,
158 #[serde(default, skip_serializing_if = "Option::is_none")]
159 pub num_tokens_for_completion: Option<i64>,
160 #[serde(default, skip_serializing_if = "Option::is_none")]
161 pub llm_endpoint_params: Option<AiLlmEndpointParams>,
162 #[serde(default, skip_serializing_if = "Option::is_none")]
163 pub system_message: Option<String>,
164 #[serde(default, skip_serializing_if = "Option::is_none")]
165 pub prompt_template: Option<String>,
166}
167
168#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
169pub struct AiAgentBasicTextToolBase {
170 #[serde(default, skip_serializing_if = "Option::is_none")]
171 pub model: Option<String>,
172 #[serde(default, skip_serializing_if = "Option::is_none")]
173 pub num_tokens_for_completion: Option<i64>,
174 #[serde(default, skip_serializing_if = "Option::is_none")]
175 pub llm_endpoint_params: Option<AiLlmEndpointParams>,
176}
177
178#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
179pub struct AiAgentBasicTextToolTextGen {
180 #[serde(default, skip_serializing_if = "Option::is_none")]
181 pub model: Option<String>,
182 #[serde(default, skip_serializing_if = "Option::is_none")]
183 pub num_tokens_for_completion: Option<i64>,
184 #[serde(default, skip_serializing_if = "Option::is_none")]
185 pub llm_endpoint_params: Option<AiLlmEndpointParams>,
186 #[serde(default, skip_serializing_if = "Option::is_none")]
187 pub system_message: Option<String>,
188 #[serde(default, skip_serializing_if = "Option::is_none")]
189 pub prompt_template: Option<String>,
190}
191
192#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
193pub struct AiAgentExtract {
194 pub r#type: AiAgentExtractType,
195 #[serde(default, skip_serializing_if = "Option::is_none")]
196 pub long_text: Option<AiAgentLongTextTool>,
197 #[serde(default, skip_serializing_if = "Option::is_none")]
198 pub basic_text: Option<AiAgentBasicTextTool>,
199 #[serde(default, skip_serializing_if = "Option::is_none")]
200 pub basic_image: Option<AiAgentBasicTextTool>,
201}
202
203#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
204pub struct AiAgentExtractStructured {
205 pub r#type: AiAgentExtractStructuredType,
206 #[serde(default, skip_serializing_if = "Option::is_none")]
207 pub long_text: Option<AiAgentLongTextTool>,
208 #[serde(default, skip_serializing_if = "Option::is_none")]
209 pub basic_text: Option<AiAgentBasicTextTool>,
210 #[serde(default, skip_serializing_if = "Option::is_none")]
211 pub basic_image: Option<AiAgentBasicTextTool>,
212}
213
214#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
215pub struct AiAgentInfo {
216 #[serde(default, skip_serializing_if = "Option::is_none")]
217 pub models: Option<Vec<AiAgentInfoModels>>,
218 #[serde(default, skip_serializing_if = "Option::is_none")]
219 pub processor: Option<String>,
220}
221
222#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
223pub struct AiAgentLongTextTool {
224 #[serde(default, skip_serializing_if = "Option::is_none")]
225 pub model: Option<String>,
226 #[serde(default, skip_serializing_if = "Option::is_none")]
227 pub num_tokens_for_completion: Option<i64>,
228 #[serde(default, skip_serializing_if = "Option::is_none")]
229 pub llm_endpoint_params: Option<AiLlmEndpointParams>,
230 #[serde(default, skip_serializing_if = "Option::is_none")]
231 pub system_message: Option<String>,
232 #[serde(default, skip_serializing_if = "Option::is_none")]
233 pub prompt_template: Option<String>,
234 #[serde(default, skip_serializing_if = "Option::is_none")]
235 pub embeddings: Option<AiAgentBasicGenToolEmbeddings>,
236}
237
238#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
239pub struct AiAgentLongTextToolTextGen {
240 #[serde(default, skip_serializing_if = "Option::is_none")]
241 pub model: Option<String>,
242 #[serde(default, skip_serializing_if = "Option::is_none")]
243 pub num_tokens_for_completion: Option<i64>,
244 #[serde(default, skip_serializing_if = "Option::is_none")]
245 pub llm_endpoint_params: Option<AiLlmEndpointParams>,
246 #[serde(default, skip_serializing_if = "Option::is_none")]
247 pub system_message: Option<String>,
248 #[serde(default, skip_serializing_if = "Option::is_none")]
249 pub prompt_template: Option<String>,
250 #[serde(default, skip_serializing_if = "Option::is_none")]
251 pub embeddings: Option<AiAgentBasicGenToolEmbeddings>,
252}
253
254#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
255pub struct AiAgentReference {
256 pub r#type: AiAgentReferenceType,
257 pub id: String,
258}
259
260#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
261pub struct AiAgentSpreadsheetTool {
262 #[serde(default, skip_serializing_if = "Option::is_none")]
263 pub model: Option<String>,
264 #[serde(default, skip_serializing_if = "Option::is_none")]
265 pub num_tokens_for_completion: Option<i64>,
266 #[serde(default, skip_serializing_if = "Option::is_none")]
267 pub llm_endpoint_params: Option<AiLlmEndpointParams>,
268}
269
270#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
271pub struct AiAgentTextGen {
272 pub r#type: AiAgentTextGenType,
273 #[serde(default, skip_serializing_if = "Option::is_none")]
274 pub basic_gen: Option<AiAgentBasicGenTool>,
275}
276
277#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
278pub struct AiAsk {
279 pub mode: AiAskMode,
280 pub prompt: String,
281 pub items: Vec<AiItemAsk>,
282 #[serde(default, skip_serializing_if = "Option::is_none")]
283 pub dialogue_history: Option<Vec<AiDialogueHistory>>,
284 #[serde(default, skip_serializing_if = "Option::is_none")]
285 pub include_citations: Option<bool>,
286 #[serde(default, skip_serializing_if = "Option::is_none")]
287 pub ai_agent: Option<AiAskAgent>,
288}
289
290#[derive(Clone, Debug, PartialEq)]
291pub enum AiAskAgent {
292 AiAgentId(AiAgentReference),
293 AiAgentAsk(AiAgentAsk),
294 Unknown(serde_json::Value),
296}
297
298impl Default for AiAskAgent {
299 fn default() -> Self {
300 Self::Unknown(Default::default())
301 }
302}
303
304impl serde::Serialize for AiAskAgent {
305 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
306 match self {
307 Self::AiAgentId(inner) => inner.serialize(serializer),
308 Self::AiAgentAsk(inner) => inner.serialize(serializer),
309 Self::Unknown(inner) => inner.serialize(serializer),
310 }
311 }
312}
313
314impl<'de> serde::Deserialize<'de> for AiAskAgent {
315 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
316 let value = serde_json::Value::deserialize(deserializer)?;
317 let tag = value
318 .get("type")
319 .and_then(serde_json::Value::as_str)
320 .map(str::to_owned);
321 match tag.as_deref() {
322 Some("ai_agent_id") => Ok(Self::AiAgentId(
323 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
324 )),
325 Some("ai_agent_ask") => Ok(Self::AiAgentAsk(
326 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
327 )),
328 _ => Ok(Self::Unknown(value)),
329 }
330 }
331}
332
333#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
334pub struct AiCitation {
335 #[serde(default, skip_serializing_if = "Option::is_none")]
336 pub content: Option<String>,
337 #[serde(default, skip_serializing_if = "Option::is_none")]
338 pub id: Option<String>,
339 #[serde(default, skip_serializing_if = "Option::is_none")]
340 pub r#type: Option<AiCitationType>,
341 #[serde(default, skip_serializing_if = "Option::is_none")]
342 pub name: Option<String>,
343}
344
345#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
346pub struct AiDialogueHistory {
347 #[serde(default, skip_serializing_if = "Option::is_none")]
348 pub prompt: Option<String>,
349 #[serde(default, skip_serializing_if = "Option::is_none")]
350 pub answer: Option<String>,
351 #[serde(default, skip_serializing_if = "Option::is_none")]
352 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
353}
354
355#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
356pub struct AiExtract {
357 pub prompt: String,
358 pub items: Vec<AiItemBase>,
359 #[serde(default, skip_serializing_if = "Option::is_none")]
360 pub ai_agent: Option<AiExtractAgent>,
361}
362
363#[derive(Clone, Debug, PartialEq)]
364pub enum AiExtractAgent {
365 AiAgentId(AiAgentReference),
366 AiAgentExtract(AiAgentExtract),
367 Unknown(serde_json::Value),
369}
370
371impl Default for AiExtractAgent {
372 fn default() -> Self {
373 Self::Unknown(Default::default())
374 }
375}
376
377impl serde::Serialize for AiExtractAgent {
378 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
379 match self {
380 Self::AiAgentId(inner) => inner.serialize(serializer),
381 Self::AiAgentExtract(inner) => inner.serialize(serializer),
382 Self::Unknown(inner) => inner.serialize(serializer),
383 }
384 }
385}
386
387impl<'de> serde::Deserialize<'de> for AiExtractAgent {
388 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
389 let value = serde_json::Value::deserialize(deserializer)?;
390 let tag = value
391 .get("type")
392 .and_then(serde_json::Value::as_str)
393 .map(str::to_owned);
394 match tag.as_deref() {
395 Some("ai_agent_id") => Ok(Self::AiAgentId(
396 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
397 )),
398 Some("ai_agent_extract") => Ok(Self::AiAgentExtract(
399 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
400 )),
401 _ => Ok(Self::Unknown(value)),
402 }
403 }
404}
405
406#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
407pub struct AiExtractFieldOption {
408 pub key: String,
409}
410
411#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
412pub struct AiExtractResponse {
413 #[serde(flatten)]
414 pub extra: std::collections::HashMap<String, serde_json::Value>,
415}
416
417#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
418pub struct AiExtractStructured {
419 pub items: Vec<AiItemBase>,
420 #[serde(default, skip_serializing_if = "Option::is_none")]
421 pub metadata_template: Option<AiExtractStructuredMetadataTemplate>,
422 #[serde(default, skip_serializing_if = "Option::is_none")]
423 pub fields: Option<Vec<AiExtractStructuredFields>>,
424 #[serde(default, skip_serializing_if = "Option::is_none")]
425 pub ai_agent: Option<AiExtractStructuredAgent>,
426 #[serde(default, skip_serializing_if = "Option::is_none")]
427 pub include_confidence_score: Option<bool>,
428 #[serde(default, skip_serializing_if = "Option::is_none")]
429 pub include_reference: Option<bool>,
430 #[serde(default, skip_serializing_if = "Option::is_none")]
431 pub taxonomy_sources: Option<Vec<AiTaxonomySource>>,
432}
433
434#[derive(Clone, Debug, PartialEq)]
435pub enum AiExtractStructuredAgent {
436 AiAgentId(AiAgentReference),
437 AiAgentExtractStructured(AiAgentExtractStructured),
438 Unknown(serde_json::Value),
440}
441
442impl Default for AiExtractStructuredAgent {
443 fn default() -> Self {
444 Self::Unknown(Default::default())
445 }
446}
447
448impl serde::Serialize for AiExtractStructuredAgent {
449 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
450 match self {
451 Self::AiAgentId(inner) => inner.serialize(serializer),
452 Self::AiAgentExtractStructured(inner) => inner.serialize(serializer),
453 Self::Unknown(inner) => inner.serialize(serializer),
454 }
455 }
456}
457
458impl<'de> serde::Deserialize<'de> for AiExtractStructuredAgent {
459 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
460 let value = serde_json::Value::deserialize(deserializer)?;
461 let tag = value
462 .get("type")
463 .and_then(serde_json::Value::as_str)
464 .map(str::to_owned);
465 match tag.as_deref() {
466 Some("ai_agent_id") => Ok(Self::AiAgentId(
467 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
468 )),
469 Some("ai_agent_extract_structured") => Ok(Self::AiAgentExtractStructured(
470 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
471 )),
472 _ => Ok(Self::Unknown(value)),
473 }
474 }
475}
476
477#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
478pub struct AiExtractStructuredResponse {
479 pub answer: AiExtractResponse,
480 pub created_at: chrono::DateTime<chrono::Utc>,
481 #[serde(default, skip_serializing_if = "Option::is_none")]
482 pub completion_reason: Option<String>,
483 #[serde(default, skip_serializing_if = "Option::is_none")]
484 pub confidence_score: Option<std::collections::HashMap<String, serde_json::Value>>,
485 #[serde(default, skip_serializing_if = "Option::is_none")]
486 pub reference: Option<std::collections::HashMap<String, serde_json::Value>>,
487 #[serde(default, skip_serializing_if = "Option::is_none")]
488 pub ai_agent_info: Option<AiAgentInfo>,
489}
490
491#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
492pub struct AiExtractSubField {
493 pub key: String,
494 #[serde(default, skip_serializing_if = "Option::is_none")]
495 pub description: Option<String>,
496 #[serde(
497 rename = "displayName",
498 default,
499 skip_serializing_if = "Option::is_none"
500 )]
501 pub display_name: Option<String>,
502 #[serde(default, skip_serializing_if = "Option::is_none")]
503 pub prompt: Option<String>,
504 #[serde(default, skip_serializing_if = "Option::is_none")]
505 pub r#type: Option<String>,
506 #[serde(default, skip_serializing_if = "Option::is_none")]
507 pub options: Option<Vec<AiExtractFieldOption>>,
508}
509
510#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
511pub struct AiItemBase {
512 pub id: String,
513 pub r#type: AiCitationType,
514 #[serde(default, skip_serializing_if = "Option::is_none")]
515 pub content: Option<String>,
516}
517
518#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
519pub struct AiItemAsk {
520 pub id: String,
521 pub r#type: AiItemAskType,
522 #[serde(default, skip_serializing_if = "Option::is_none")]
523 pub content: Option<String>,
524}
525
526#[derive(Clone, Debug, PartialEq)]
527pub enum AiLlmEndpointParams {
528 OpenaiParams(AiLlmEndpointParamsOpenAi),
529 GoogleParams(AiLlmEndpointParamsGoogle),
530 AwsParams(AiLlmEndpointParamsAWS),
531 IbmParams(AiLlmEndpointParamsIBM),
532 Unknown(serde_json::Value),
534}
535
536impl Default for AiLlmEndpointParams {
537 fn default() -> Self {
538 Self::Unknown(Default::default())
539 }
540}
541
542impl serde::Serialize for AiLlmEndpointParams {
543 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
544 match self {
545 Self::OpenaiParams(inner) => inner.serialize(serializer),
546 Self::GoogleParams(inner) => inner.serialize(serializer),
547 Self::AwsParams(inner) => inner.serialize(serializer),
548 Self::IbmParams(inner) => inner.serialize(serializer),
549 Self::Unknown(inner) => inner.serialize(serializer),
550 }
551 }
552}
553
554impl<'de> serde::Deserialize<'de> for AiLlmEndpointParams {
555 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
556 let value = serde_json::Value::deserialize(deserializer)?;
557 let tag = value
558 .get("type")
559 .and_then(serde_json::Value::as_str)
560 .map(str::to_owned);
561 match tag.as_deref() {
562 Some("openai_params") => Ok(Self::OpenaiParams(
563 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
564 )),
565 Some("google_params") => Ok(Self::GoogleParams(
566 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
567 )),
568 Some("aws_params") => Ok(Self::AwsParams(
569 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
570 )),
571 Some("ibm_params") => Ok(Self::IbmParams(
572 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
573 )),
574 _ => Ok(Self::Unknown(value)),
575 }
576 }
577}
578
579#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
580pub struct AiLlmEndpointParamsAWS {
581 pub r#type: AiLlmEndpointParamsAWSType,
582 #[serde(
583 default,
584 skip_serializing_if = "Option::is_none",
585 deserialize_with = "double_option"
586 )]
587 pub temperature: Option<Option<f64>>,
588 #[serde(
589 default,
590 skip_serializing_if = "Option::is_none",
591 deserialize_with = "double_option"
592 )]
593 pub top_p: Option<Option<f64>>,
594}
595
596#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
597pub struct AiLlmEndpointParamsGoogle {
598 pub r#type: AiLlmEndpointParamsGoogleType,
599 #[serde(
600 default,
601 skip_serializing_if = "Option::is_none",
602 deserialize_with = "double_option"
603 )]
604 pub temperature: Option<Option<f64>>,
605 #[serde(
606 default,
607 skip_serializing_if = "Option::is_none",
608 deserialize_with = "double_option"
609 )]
610 pub top_p: Option<Option<f64>>,
611 #[serde(
612 default,
613 skip_serializing_if = "Option::is_none",
614 deserialize_with = "double_option"
615 )]
616 pub top_k: Option<Option<f64>>,
617}
618
619#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
620pub struct AiLlmEndpointParamsIBM {
621 pub r#type: AiLlmEndpointParamsIBMType,
622 #[serde(
623 default,
624 skip_serializing_if = "Option::is_none",
625 deserialize_with = "double_option"
626 )]
627 pub temperature: Option<Option<f64>>,
628 #[serde(
629 default,
630 skip_serializing_if = "Option::is_none",
631 deserialize_with = "double_option"
632 )]
633 pub top_p: Option<Option<f64>>,
634 #[serde(
635 default,
636 skip_serializing_if = "Option::is_none",
637 deserialize_with = "double_option"
638 )]
639 pub top_k: Option<Option<f64>>,
640}
641
642#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
643pub struct AiLlmEndpointParamsOpenAi {
644 pub r#type: AiLlmEndpointParamsOpenAiType,
645 #[serde(
646 default,
647 skip_serializing_if = "Option::is_none",
648 deserialize_with = "double_option"
649 )]
650 pub temperature: Option<Option<f64>>,
651 #[serde(
652 default,
653 skip_serializing_if = "Option::is_none",
654 deserialize_with = "double_option"
655 )]
656 pub top_p: Option<Option<f64>>,
657 #[serde(
658 default,
659 skip_serializing_if = "Option::is_none",
660 deserialize_with = "double_option"
661 )]
662 pub frequency_penalty: Option<Option<f64>>,
663 #[serde(
664 default,
665 skip_serializing_if = "Option::is_none",
666 deserialize_with = "double_option"
667 )]
668 pub presence_penalty: Option<Option<f64>>,
669 #[serde(
670 default,
671 skip_serializing_if = "Option::is_none",
672 deserialize_with = "double_option"
673 )]
674 pub stop: Option<Option<String>>,
675}
676
677#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
678pub struct AiMultipleAgentResponse {
679 #[serde(default, skip_serializing_if = "Option::is_none")]
680 pub limit: Option<i64>,
681 #[serde(
682 default,
683 skip_serializing_if = "Option::is_none",
684 deserialize_with = "double_option"
685 )]
686 pub next_marker: Option<Option<String>>,
687 #[serde(
688 default,
689 skip_serializing_if = "Option::is_none",
690 deserialize_with = "double_option"
691 )]
692 pub prev_marker: Option<Option<String>>,
693 pub entries: Vec<AiSingleAgentResponseFull>,
694}
695
696#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
697pub struct AiOptionsRules {
698 #[serde(default, skip_serializing_if = "Option::is_none")]
699 pub multi_select: Option<bool>,
700 #[serde(default, skip_serializing_if = "Option::is_none")]
701 pub selectable_levels: Option<Vec<i64>>,
702}
703
704#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
705pub struct AiResponse {
706 pub answer: String,
707 pub created_at: chrono::DateTime<chrono::Utc>,
708 #[serde(default, skip_serializing_if = "Option::is_none")]
709 pub completion_reason: Option<String>,
710 #[serde(default, skip_serializing_if = "Option::is_none")]
711 pub ai_agent_info: Option<AiAgentInfo>,
712}
713
714#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
715pub struct AiResponseFull {
716 pub answer: String,
717 pub created_at: chrono::DateTime<chrono::Utc>,
718 #[serde(default, skip_serializing_if = "Option::is_none")]
719 pub completion_reason: Option<String>,
720 #[serde(default, skip_serializing_if = "Option::is_none")]
721 pub ai_agent_info: Option<AiAgentInfo>,
722 #[serde(default, skip_serializing_if = "Option::is_none")]
723 pub citations: Option<Vec<AiCitation>>,
724}
725
726#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
727pub struct AiSingleAgentResponse {
728 pub id: String,
729 #[serde(default, skip_serializing_if = "Option::is_none")]
730 pub r#type: Option<AiSingleAgentResponseType>,
731 pub origin: String,
732 pub name: String,
733 pub access_state: String,
734 #[serde(default, skip_serializing_if = "Option::is_none")]
735 pub created_by: Option<UserBase>,
736 #[serde(default, skip_serializing_if = "Option::is_none")]
737 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
738 #[serde(default, skip_serializing_if = "Option::is_none")]
739 pub modified_by: Option<UserBase>,
740 #[serde(default, skip_serializing_if = "Option::is_none")]
741 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
742 #[serde(default, skip_serializing_if = "Option::is_none")]
743 pub icon_reference: Option<String>,
744 #[serde(default, skip_serializing_if = "Option::is_none")]
745 pub allowed_entities: Option<Vec<AiAgentAllowedEntity>>,
746}
747
748#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
749pub struct AiSingleAgentResponseFull {
750 pub id: String,
751 #[serde(default, skip_serializing_if = "Option::is_none")]
752 pub r#type: Option<AiSingleAgentResponseType>,
753 pub origin: String,
754 pub name: String,
755 pub access_state: String,
756 #[serde(default, skip_serializing_if = "Option::is_none")]
757 pub created_by: Option<UserBase>,
758 #[serde(default, skip_serializing_if = "Option::is_none")]
759 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
760 #[serde(default, skip_serializing_if = "Option::is_none")]
761 pub modified_by: Option<UserBase>,
762 #[serde(default, skip_serializing_if = "Option::is_none")]
763 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
764 #[serde(default, skip_serializing_if = "Option::is_none")]
765 pub icon_reference: Option<String>,
766 #[serde(default, skip_serializing_if = "Option::is_none")]
767 pub allowed_entities: Option<Vec<AiAgentAllowedEntity>>,
768 #[serde(default, skip_serializing_if = "Option::is_none")]
769 pub ask: Option<AiStudioAgentAskResponse>,
770 #[serde(default, skip_serializing_if = "Option::is_none")]
771 pub text_gen: Option<AiStudioAgentTextGenResponse>,
772 #[serde(default, skip_serializing_if = "Option::is_none")]
773 pub extract: Option<AiStudioAgentExtractResponse>,
774}
775
776#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
777pub struct AiStudioAgentAsk {
778 pub r#type: AiAgentAskType,
779 pub access_state: String,
780 pub description: String,
781 #[serde(
782 default,
783 skip_serializing_if = "Option::is_none",
784 deserialize_with = "double_option"
785 )]
786 pub custom_instructions: Option<Option<String>>,
787 #[serde(default, skip_serializing_if = "Option::is_none")]
788 pub suggested_questions: Option<Vec<String>>,
789 #[serde(default, skip_serializing_if = "Option::is_none")]
790 pub long_text: Option<AiStudioAgentLongTextTool>,
791 #[serde(default, skip_serializing_if = "Option::is_none")]
792 pub basic_text: Option<AiStudioAgentBasicTextTool>,
793 #[serde(default, skip_serializing_if = "Option::is_none")]
794 pub basic_image: Option<AiStudioAgentBasicTextTool>,
795 #[serde(default, skip_serializing_if = "Option::is_none")]
796 pub spreadsheet: Option<AiStudioAgentSpreadsheetTool>,
797 #[serde(default, skip_serializing_if = "Option::is_none")]
798 pub long_text_multi: Option<AiStudioAgentLongTextTool>,
799 #[serde(default, skip_serializing_if = "Option::is_none")]
800 pub basic_text_multi: Option<AiStudioAgentBasicTextTool>,
801 #[serde(default, skip_serializing_if = "Option::is_none")]
802 pub basic_image_multi: Option<AiStudioAgentBasicTextTool>,
803}
804
805#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
806pub struct AiStudioAgentAskResponse {
807 pub r#type: AiAgentAskType,
808 pub access_state: String,
809 pub description: String,
810 #[serde(
811 default,
812 skip_serializing_if = "Option::is_none",
813 deserialize_with = "double_option"
814 )]
815 pub custom_instructions: Option<Option<String>>,
816 #[serde(default, skip_serializing_if = "Option::is_none")]
817 pub suggested_questions: Option<Vec<String>>,
818 #[serde(default, skip_serializing_if = "Option::is_none")]
819 pub long_text: Option<AiStudioAgentLongTextToolResponse>,
820 #[serde(default, skip_serializing_if = "Option::is_none")]
821 pub basic_text: Option<AiStudioAgentBasicTextToolResponse>,
822 #[serde(default, skip_serializing_if = "Option::is_none")]
823 pub basic_image: Option<AiStudioAgentBasicTextToolResponse>,
824 #[serde(default, skip_serializing_if = "Option::is_none")]
825 pub spreadsheet: Option<AiStudioAgentSpreadsheetToolResponse>,
826 #[serde(default, skip_serializing_if = "Option::is_none")]
827 pub long_text_multi: Option<AiStudioAgentLongTextToolResponse>,
828 #[serde(default, skip_serializing_if = "Option::is_none")]
829 pub basic_text_multi: Option<AiStudioAgentBasicTextToolResponse>,
830 #[serde(default, skip_serializing_if = "Option::is_none")]
831 pub basic_image_multi: Option<AiStudioAgentBasicTextToolResponse>,
832}
833
834#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
835pub struct AiStudioAgentBasicGenTool {
836 #[serde(default, skip_serializing_if = "Option::is_none")]
837 pub model: Option<String>,
838 #[serde(default, skip_serializing_if = "Option::is_none")]
839 pub num_tokens_for_completion: Option<i64>,
840 #[serde(default, skip_serializing_if = "Option::is_none")]
841 pub llm_endpoint_params: Option<AiLlmEndpointParams>,
842 #[serde(default, skip_serializing_if = "Option::is_none")]
843 pub system_message: Option<String>,
844 #[serde(default, skip_serializing_if = "Option::is_none")]
845 pub prompt_template: Option<String>,
846 #[serde(default, skip_serializing_if = "Option::is_none")]
847 pub embeddings: Option<AiAgentBasicGenToolEmbeddings>,
848 #[serde(default, skip_serializing_if = "Option::is_none")]
849 pub content_template: Option<String>,
850 #[serde(default, skip_serializing_if = "Option::is_none")]
851 pub is_custom_instructions_included: Option<bool>,
852}
853
854#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
855pub struct AiStudioAgentBasicGenToolResponse {
856 #[serde(default, skip_serializing_if = "Option::is_none")]
857 pub model: Option<String>,
858 #[serde(default, skip_serializing_if = "Option::is_none")]
859 pub num_tokens_for_completion: Option<i64>,
860 #[serde(default, skip_serializing_if = "Option::is_none")]
861 pub llm_endpoint_params: Option<AiLlmEndpointParams>,
862 #[serde(default, skip_serializing_if = "Option::is_none")]
863 pub system_message: Option<String>,
864 #[serde(default, skip_serializing_if = "Option::is_none")]
865 pub prompt_template: Option<String>,
866 #[serde(default, skip_serializing_if = "Option::is_none")]
867 pub embeddings: Option<AiAgentBasicGenToolEmbeddings>,
868 #[serde(default, skip_serializing_if = "Option::is_none")]
869 pub content_template: Option<String>,
870 #[serde(default, skip_serializing_if = "Option::is_none")]
871 pub is_custom_instructions_included: Option<bool>,
872 #[serde(default, skip_serializing_if = "Option::is_none")]
873 pub warnings: Option<Vec<String>>,
874}
875
876#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
877pub struct AiStudioAgentBasicTextTool {
878 #[serde(default, skip_serializing_if = "Option::is_none")]
879 pub model: Option<String>,
880 #[serde(default, skip_serializing_if = "Option::is_none")]
881 pub num_tokens_for_completion: Option<i64>,
882 #[serde(default, skip_serializing_if = "Option::is_none")]
883 pub llm_endpoint_params: Option<AiLlmEndpointParams>,
884 #[serde(default, skip_serializing_if = "Option::is_none")]
885 pub system_message: Option<String>,
886 #[serde(default, skip_serializing_if = "Option::is_none")]
887 pub prompt_template: Option<String>,
888 #[serde(default, skip_serializing_if = "Option::is_none")]
889 pub is_custom_instructions_included: Option<bool>,
890}
891
892#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
893pub struct AiStudioAgentBasicTextToolResponse {
894 #[serde(default, skip_serializing_if = "Option::is_none")]
895 pub model: Option<String>,
896 #[serde(default, skip_serializing_if = "Option::is_none")]
897 pub num_tokens_for_completion: Option<i64>,
898 #[serde(default, skip_serializing_if = "Option::is_none")]
899 pub llm_endpoint_params: Option<AiLlmEndpointParams>,
900 #[serde(default, skip_serializing_if = "Option::is_none")]
901 pub system_message: Option<String>,
902 #[serde(default, skip_serializing_if = "Option::is_none")]
903 pub prompt_template: Option<String>,
904 #[serde(default, skip_serializing_if = "Option::is_none")]
905 pub is_custom_instructions_included: Option<bool>,
906 #[serde(default, skip_serializing_if = "Option::is_none")]
907 pub warnings: Option<Vec<String>>,
908}
909
910#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
911pub struct AiStudioAgentExtract {
912 pub r#type: AiAgentExtractType,
913 pub access_state: String,
914 pub description: String,
915 #[serde(
916 default,
917 skip_serializing_if = "Option::is_none",
918 deserialize_with = "double_option"
919 )]
920 pub custom_instructions: Option<Option<String>>,
921 #[serde(default, skip_serializing_if = "Option::is_none")]
922 pub long_text: Option<AiStudioAgentLongTextTool>,
923 #[serde(default, skip_serializing_if = "Option::is_none")]
924 pub basic_text: Option<AiStudioAgentBasicTextTool>,
925 #[serde(default, skip_serializing_if = "Option::is_none")]
926 pub basic_image: Option<AiStudioAgentBasicTextTool>,
927}
928
929#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
930pub struct AiStudioAgentExtractResponse {
931 pub r#type: AiAgentExtractType,
932 pub access_state: String,
933 pub description: String,
934 #[serde(
935 default,
936 skip_serializing_if = "Option::is_none",
937 deserialize_with = "double_option"
938 )]
939 pub custom_instructions: Option<Option<String>>,
940 #[serde(default, skip_serializing_if = "Option::is_none")]
941 pub long_text: Option<AiStudioAgentLongTextToolResponse>,
942 #[serde(default, skip_serializing_if = "Option::is_none")]
943 pub basic_text: Option<AiStudioAgentBasicTextToolResponse>,
944 #[serde(default, skip_serializing_if = "Option::is_none")]
945 pub basic_image: Option<AiStudioAgentBasicTextToolResponse>,
946}
947
948#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
949pub struct AiStudioAgentLongTextTool {
950 #[serde(default, skip_serializing_if = "Option::is_none")]
951 pub model: Option<String>,
952 #[serde(default, skip_serializing_if = "Option::is_none")]
953 pub num_tokens_for_completion: Option<i64>,
954 #[serde(default, skip_serializing_if = "Option::is_none")]
955 pub llm_endpoint_params: Option<AiLlmEndpointParams>,
956 #[serde(default, skip_serializing_if = "Option::is_none")]
957 pub system_message: Option<String>,
958 #[serde(default, skip_serializing_if = "Option::is_none")]
959 pub prompt_template: Option<String>,
960 #[serde(default, skip_serializing_if = "Option::is_none")]
961 pub embeddings: Option<AiAgentBasicGenToolEmbeddings>,
962 #[serde(default, skip_serializing_if = "Option::is_none")]
963 pub is_custom_instructions_included: Option<bool>,
964}
965
966#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
967pub struct AiStudioAgentLongTextToolResponse {
968 #[serde(default, skip_serializing_if = "Option::is_none")]
969 pub model: Option<String>,
970 #[serde(default, skip_serializing_if = "Option::is_none")]
971 pub num_tokens_for_completion: Option<i64>,
972 #[serde(default, skip_serializing_if = "Option::is_none")]
973 pub llm_endpoint_params: Option<AiLlmEndpointParams>,
974 #[serde(default, skip_serializing_if = "Option::is_none")]
975 pub system_message: Option<String>,
976 #[serde(default, skip_serializing_if = "Option::is_none")]
977 pub prompt_template: Option<String>,
978 #[serde(default, skip_serializing_if = "Option::is_none")]
979 pub embeddings: Option<AiAgentBasicGenToolEmbeddings>,
980 #[serde(default, skip_serializing_if = "Option::is_none")]
981 pub is_custom_instructions_included: Option<bool>,
982 #[serde(default, skip_serializing_if = "Option::is_none")]
983 pub warnings: Option<Vec<String>>,
984}
985
986pub type AiStudioAgentSpreadsheetTool = AiAgentSpreadsheetTool;
987
988#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
989pub struct AiStudioAgentSpreadsheetToolResponse {
990 #[serde(default, skip_serializing_if = "Option::is_none")]
991 pub model: Option<String>,
992 #[serde(default, skip_serializing_if = "Option::is_none")]
993 pub num_tokens_for_completion: Option<i64>,
994 #[serde(default, skip_serializing_if = "Option::is_none")]
995 pub llm_endpoint_params: Option<AiLlmEndpointParams>,
996 #[serde(default, skip_serializing_if = "Option::is_none")]
997 pub warnings: Option<Vec<String>>,
998}
999
1000#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1001pub struct AiStudioAgentTextGen {
1002 pub r#type: AiAgentTextGenType,
1003 pub access_state: String,
1004 pub description: String,
1005 #[serde(
1006 default,
1007 skip_serializing_if = "Option::is_none",
1008 deserialize_with = "double_option"
1009 )]
1010 pub custom_instructions: Option<Option<String>>,
1011 #[serde(default, skip_serializing_if = "Option::is_none")]
1012 pub suggested_questions: Option<Vec<String>>,
1013 #[serde(default, skip_serializing_if = "Option::is_none")]
1014 pub basic_gen: Option<AiStudioAgentBasicGenTool>,
1015}
1016
1017#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1018pub struct AiStudioAgentTextGenResponse {
1019 pub r#type: AiAgentTextGenType,
1020 pub access_state: String,
1021 pub description: String,
1022 #[serde(
1023 default,
1024 skip_serializing_if = "Option::is_none",
1025 deserialize_with = "double_option"
1026 )]
1027 pub custom_instructions: Option<Option<String>>,
1028 #[serde(default, skip_serializing_if = "Option::is_none")]
1029 pub suggested_questions: Option<Vec<String>>,
1030 #[serde(default, skip_serializing_if = "Option::is_none")]
1031 pub basic_gen: Option<AiStudioAgentBasicGenToolResponse>,
1032}
1033
1034#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1035pub struct AiTaxonomyFileReference {
1036 #[serde(default, skip_serializing_if = "Option::is_none")]
1037 pub r#type: Option<AiCitationType>,
1038 #[serde(default, skip_serializing_if = "Option::is_none")]
1039 pub taxonomy_key: Option<String>,
1040 #[serde(default, skip_serializing_if = "Option::is_none")]
1041 pub id: Option<String>,
1042}
1043
1044#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1045pub struct AiTaxonomyReference {
1046 #[serde(default, skip_serializing_if = "Option::is_none")]
1047 pub r#type: Option<AiTaxonomyReferenceType>,
1048 #[serde(default, skip_serializing_if = "Option::is_none")]
1049 pub taxonomy_key: Option<String>,
1050 #[serde(default, skip_serializing_if = "Option::is_none")]
1051 pub namespace: Option<String>,
1052}
1053
1054#[derive(Clone, Debug, PartialEq)]
1055pub enum AiTaxonomySource {
1056 Taxonomy(AiTaxonomyReference),
1057 File(AiTaxonomyFileReference),
1058 Unknown(serde_json::Value),
1060}
1061
1062impl Default for AiTaxonomySource {
1063 fn default() -> Self {
1064 Self::Unknown(Default::default())
1065 }
1066}
1067
1068impl serde::Serialize for AiTaxonomySource {
1069 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1070 match self {
1071 Self::Taxonomy(inner) => inner.serialize(serializer),
1072 Self::File(inner) => inner.serialize(serializer),
1073 Self::Unknown(inner) => inner.serialize(serializer),
1074 }
1075 }
1076}
1077
1078impl<'de> serde::Deserialize<'de> for AiTaxonomySource {
1079 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1080 let value = serde_json::Value::deserialize(deserializer)?;
1081 let tag = value
1082 .get("type")
1083 .and_then(serde_json::Value::as_str)
1084 .map(str::to_owned);
1085 match tag.as_deref() {
1086 Some("taxonomy") => Ok(Self::Taxonomy(
1087 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
1088 )),
1089 Some("file") => Ok(Self::File(
1090 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
1091 )),
1092 _ => Ok(Self::Unknown(value)),
1093 }
1094 }
1095}
1096
1097#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1098pub struct AiTextGen {
1099 pub prompt: String,
1100 pub items: Vec<AiTextGenItems>,
1101 #[serde(default, skip_serializing_if = "Option::is_none")]
1102 pub dialogue_history: Option<Vec<AiDialogueHistory>>,
1103 #[serde(default, skip_serializing_if = "Option::is_none")]
1104 pub ai_agent: Option<AiTextGenAgent>,
1105}
1106
1107#[derive(Clone, Debug, PartialEq)]
1108pub enum AiTextGenAgent {
1109 AiAgentId(AiAgentReference),
1110 AiAgentTextGen(AiAgentTextGen),
1111 Unknown(serde_json::Value),
1113}
1114
1115impl Default for AiTextGenAgent {
1116 fn default() -> Self {
1117 Self::Unknown(Default::default())
1118 }
1119}
1120
1121impl serde::Serialize for AiTextGenAgent {
1122 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1123 match self {
1124 Self::AiAgentId(inner) => inner.serialize(serializer),
1125 Self::AiAgentTextGen(inner) => inner.serialize(serializer),
1126 Self::Unknown(inner) => inner.serialize(serializer),
1127 }
1128 }
1129}
1130
1131impl<'de> serde::Deserialize<'de> for AiTextGenAgent {
1132 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1133 let value = serde_json::Value::deserialize(deserializer)?;
1134 let tag = value
1135 .get("type")
1136 .and_then(serde_json::Value::as_str)
1137 .map(str::to_owned);
1138 match tag.as_deref() {
1139 Some("ai_agent_id") => Ok(Self::AiAgentId(
1140 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
1141 )),
1142 Some("ai_agent_text_gen") => Ok(Self::AiAgentTextGen(
1143 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
1144 )),
1145 _ => Ok(Self::Unknown(value)),
1146 }
1147 }
1148}
1149
1150#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1151pub struct AppItem {
1152 pub id: String,
1153 pub r#type: AppItemType,
1154 pub application_type: String,
1155}
1156
1157#[derive(Clone, Debug, PartialEq)]
1158pub enum AppItemAssociatedItem {
1159 File(FileBase),
1160 Folder(FolderBase),
1161 WebLink(WebLinkBase),
1162 Unknown(serde_json::Value),
1164}
1165
1166impl Default for AppItemAssociatedItem {
1167 fn default() -> Self {
1168 Self::Unknown(Default::default())
1169 }
1170}
1171
1172impl serde::Serialize for AppItemAssociatedItem {
1173 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1174 match self {
1175 Self::File(inner) => inner.serialize(serializer),
1176 Self::Folder(inner) => inner.serialize(serializer),
1177 Self::WebLink(inner) => inner.serialize(serializer),
1178 Self::Unknown(inner) => inner.serialize(serializer),
1179 }
1180 }
1181}
1182
1183impl<'de> serde::Deserialize<'de> for AppItemAssociatedItem {
1184 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1185 let value = serde_json::Value::deserialize(deserializer)?;
1186 let tag = value
1187 .get("type")
1188 .and_then(serde_json::Value::as_str)
1189 .map(str::to_owned);
1190 match tag.as_deref() {
1191 Some("file") => Ok(Self::File(
1192 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
1193 )),
1194 Some("folder") => Ok(Self::Folder(
1195 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
1196 )),
1197 Some("web_link") => Ok(Self::WebLink(
1198 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
1199 )),
1200 _ => Ok(Self::Unknown(value)),
1201 }
1202 }
1203}
1204
1205#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1206pub struct AppItemAssociation {
1207 pub id: String,
1208 pub r#type: AppItemAssociationType,
1209 pub app_item: AppItem,
1210 pub item: AppItemAssociatedItem,
1211}
1212
1213#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1214pub struct AppItemAssociations {
1215 #[serde(default, skip_serializing_if = "Option::is_none")]
1216 pub limit: Option<i64>,
1217 #[serde(
1218 default,
1219 skip_serializing_if = "Option::is_none",
1220 deserialize_with = "double_option"
1221 )]
1222 pub next_marker: Option<Option<String>>,
1223 #[serde(
1224 default,
1225 skip_serializing_if = "Option::is_none",
1226 deserialize_with = "double_option"
1227 )]
1228 pub prev_marker: Option<Option<String>>,
1229 #[serde(default, skip_serializing_if = "Option::is_none")]
1230 pub entries: Option<Vec<AppItemAssociation>>,
1231}
1232
1233#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1234pub struct AppItemEventSource {
1235 pub id: String,
1236 pub r#type: AppItemType,
1237 pub app_item_type: String,
1238 #[serde(default, skip_serializing_if = "Option::is_none")]
1239 pub user: Option<UserMini>,
1240 #[serde(default, skip_serializing_if = "Option::is_none")]
1241 pub group: Option<GroupMini>,
1242}
1243
1244#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1245pub struct Classification {
1246 #[serde(
1247 rename = "Box__Security__Classification__Key",
1248 default,
1249 skip_serializing_if = "Option::is_none"
1250 )]
1251 pub box_security_classification_key: Option<String>,
1252 #[serde(rename = "$parent", default, skip_serializing_if = "Option::is_none")]
1253 pub parent: Option<String>,
1254 #[serde(rename = "$template", default, skip_serializing_if = "Option::is_none")]
1255 pub template: Option<ClassificationTemplate2>,
1256 #[serde(rename = "$scope", default, skip_serializing_if = "Option::is_none")]
1257 pub scope: Option<String>,
1258 #[serde(rename = "$version", default, skip_serializing_if = "Option::is_none")]
1259 pub version: Option<i64>,
1260 #[serde(rename = "$type", default, skip_serializing_if = "Option::is_none")]
1261 pub r#type: Option<String>,
1262 #[serde(
1263 rename = "$typeVersion",
1264 default,
1265 skip_serializing_if = "Option::is_none"
1266 )]
1267 pub type_version: Option<f64>,
1268 #[serde(rename = "$canEdit", default, skip_serializing_if = "Option::is_none")]
1269 pub can_edit: Option<bool>,
1270}
1271
1272#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1273pub struct ClassificationTemplate {
1274 pub id: String,
1275 pub r#type: MetadataTemplateType,
1276 pub scope: String,
1277 #[serde(rename = "templateKey")]
1278 pub template_key: ClassificationTemplate2,
1279 #[serde(rename = "displayName")]
1280 pub display_name: ClassificationTemplateDisplayName,
1281 #[serde(default, skip_serializing_if = "Option::is_none")]
1282 pub hidden: Option<bool>,
1283 #[serde(
1284 rename = "copyInstanceOnItemCopy",
1285 default,
1286 skip_serializing_if = "Option::is_none"
1287 )]
1288 pub copy_instance_on_item_copy: Option<bool>,
1289 pub fields: Vec<ClassificationTemplateFields>,
1290}
1291
1292#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1293pub struct ClientError {
1294 #[serde(default, skip_serializing_if = "Option::is_none")]
1295 pub r#type: Option<ClientErrorType>,
1296 #[serde(default, skip_serializing_if = "Option::is_none")]
1297 pub status: Option<i64>,
1298 #[serde(default, skip_serializing_if = "Option::is_none")]
1299 pub code: Option<ClientErrorCode>,
1300 #[serde(default, skip_serializing_if = "Option::is_none")]
1301 pub message: Option<String>,
1302 #[serde(
1303 default,
1304 skip_serializing_if = "Option::is_none",
1305 deserialize_with = "double_option"
1306 )]
1307 pub context_info: Option<Option<std::collections::HashMap<String, serde_json::Value>>>,
1308 #[serde(default, skip_serializing_if = "Option::is_none")]
1309 pub help_url: Option<String>,
1310 #[serde(default, skip_serializing_if = "Option::is_none")]
1311 pub request_id: Option<String>,
1312}
1313
1314#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1315pub struct Collaboration {
1316 pub id: String,
1317 pub r#type: CollaborationType,
1318 #[serde(
1319 default,
1320 skip_serializing_if = "Option::is_none",
1321 deserialize_with = "double_option"
1322 )]
1323 pub item: Option<Option<CollaborationItem>>,
1324 #[serde(
1325 default,
1326 skip_serializing_if = "Option::is_none",
1327 deserialize_with = "double_option"
1328 )]
1329 pub app_item: Option<Option<AppItem>>,
1330 #[serde(default, skip_serializing_if = "Option::is_none")]
1331 pub accessible_by: Option<CollaborationAccessGrantee>,
1332 #[serde(
1333 default,
1334 skip_serializing_if = "Option::is_none",
1335 deserialize_with = "double_option"
1336 )]
1337 pub invite_email: Option<Option<String>>,
1338 #[serde(default, skip_serializing_if = "Option::is_none")]
1339 pub role: Option<CollaborationRole>,
1340 #[serde(
1341 default,
1342 skip_serializing_if = "Option::is_none",
1343 deserialize_with = "double_option"
1344 )]
1345 pub expires_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
1346 #[serde(default, skip_serializing_if = "Option::is_none")]
1347 pub is_access_only: Option<bool>,
1348 #[serde(default, skip_serializing_if = "Option::is_none")]
1349 pub status: Option<CollaborationStatus>,
1350 #[serde(default, skip_serializing_if = "Option::is_none")]
1351 pub acknowledged_at: Option<chrono::DateTime<chrono::Utc>>,
1352 #[serde(default, skip_serializing_if = "Option::is_none")]
1353 pub created_by: Option<UserCollaborations>,
1354 #[serde(default, skip_serializing_if = "Option::is_none")]
1355 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1356 #[serde(default, skip_serializing_if = "Option::is_none")]
1357 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
1358 #[serde(default, skip_serializing_if = "Option::is_none")]
1359 pub acceptance_requirements_status: Option<CollaborationAcceptanceRequirementsStatus>,
1360}
1361
1362#[derive(Clone, Debug, PartialEq)]
1363pub enum CollaborationAccessGrantee {
1364 User(UserCollaborations),
1365 Group(GroupMini),
1366 Unknown(serde_json::Value),
1368}
1369
1370impl Default for CollaborationAccessGrantee {
1371 fn default() -> Self {
1372 Self::Unknown(Default::default())
1373 }
1374}
1375
1376impl serde::Serialize for CollaborationAccessGrantee {
1377 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1378 match self {
1379 Self::User(inner) => inner.serialize(serializer),
1380 Self::Group(inner) => inner.serialize(serializer),
1381 Self::Unknown(inner) => inner.serialize(serializer),
1382 }
1383 }
1384}
1385
1386impl<'de> serde::Deserialize<'de> for CollaborationAccessGrantee {
1387 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1388 let value = serde_json::Value::deserialize(deserializer)?;
1389 let tag = value
1390 .get("type")
1391 .and_then(serde_json::Value::as_str)
1392 .map(str::to_owned);
1393 match tag.as_deref() {
1394 Some("user") => Ok(Self::User(
1395 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
1396 )),
1397 Some("group") => Ok(Self::Group(
1398 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
1399 )),
1400 _ => Ok(Self::Unknown(value)),
1401 }
1402 }
1403}
1404
1405#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1406pub struct CollaborationAllowlistEntries {
1407 #[serde(default, skip_serializing_if = "Option::is_none")]
1408 pub limit: Option<i64>,
1409 #[serde(
1410 default,
1411 skip_serializing_if = "Option::is_none",
1412 deserialize_with = "double_option"
1413 )]
1414 pub next_marker: Option<Option<String>>,
1415 #[serde(
1416 default,
1417 skip_serializing_if = "Option::is_none",
1418 deserialize_with = "double_option"
1419 )]
1420 pub prev_marker: Option<Option<String>>,
1421 #[serde(default, skip_serializing_if = "Option::is_none")]
1422 pub entries: Option<Vec<CollaborationAllowlistEntry>>,
1423}
1424
1425#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1426pub struct CollaborationAllowlistEntry {
1427 #[serde(default, skip_serializing_if = "Option::is_none")]
1428 pub id: Option<String>,
1429 #[serde(default, skip_serializing_if = "Option::is_none")]
1430 pub r#type: Option<CollaborationAllowlistEntryType>,
1431 #[serde(default, skip_serializing_if = "Option::is_none")]
1432 pub domain: Option<String>,
1433 #[serde(default, skip_serializing_if = "Option::is_none")]
1434 pub direction: Option<CollaborationAllowlistEntryDirection>,
1435 #[serde(default, skip_serializing_if = "Option::is_none")]
1436 pub enterprise: Option<CollaborationAllowlistEntryEnterprise>,
1437 #[serde(default, skip_serializing_if = "Option::is_none")]
1438 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1439}
1440
1441#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1442pub struct CollaborationAllowlistExemptTarget {
1443 #[serde(default, skip_serializing_if = "Option::is_none")]
1444 pub id: Option<String>,
1445 #[serde(default, skip_serializing_if = "Option::is_none")]
1446 pub r#type: Option<CollaborationAllowlistExemptTargetType>,
1447 #[serde(default, skip_serializing_if = "Option::is_none")]
1448 pub enterprise: Option<CollaborationAllowlistEntryEnterprise>,
1449 #[serde(default, skip_serializing_if = "Option::is_none")]
1450 pub user: Option<UserMini>,
1451 #[serde(default, skip_serializing_if = "Option::is_none")]
1452 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1453 #[serde(default, skip_serializing_if = "Option::is_none")]
1454 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
1455}
1456
1457#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1458pub struct CollaborationAllowlistExemptTargets {
1459 #[serde(default, skip_serializing_if = "Option::is_none")]
1460 pub limit: Option<i64>,
1461 #[serde(
1462 default,
1463 skip_serializing_if = "Option::is_none",
1464 deserialize_with = "double_option"
1465 )]
1466 pub next_marker: Option<Option<String>>,
1467 #[serde(
1468 default,
1469 skip_serializing_if = "Option::is_none",
1470 deserialize_with = "double_option"
1471 )]
1472 pub prev_marker: Option<Option<String>>,
1473 #[serde(default, skip_serializing_if = "Option::is_none")]
1474 pub entries: Option<Vec<CollaborationAllowlistExemptTarget>>,
1475}
1476
1477#[derive(Clone, Debug, PartialEq)]
1478pub enum CollaborationItem {
1479 File(File),
1480 Folder(Folder),
1481 WebLink(WebLink),
1482 Unknown(serde_json::Value),
1484}
1485
1486impl Default for CollaborationItem {
1487 fn default() -> Self {
1488 Self::Unknown(Default::default())
1489 }
1490}
1491
1492impl serde::Serialize for CollaborationItem {
1493 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
1494 match self {
1495 Self::File(inner) => inner.serialize(serializer),
1496 Self::Folder(inner) => inner.serialize(serializer),
1497 Self::WebLink(inner) => inner.serialize(serializer),
1498 Self::Unknown(inner) => inner.serialize(serializer),
1499 }
1500 }
1501}
1502
1503impl<'de> serde::Deserialize<'de> for CollaborationItem {
1504 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
1505 let value = serde_json::Value::deserialize(deserializer)?;
1506 let tag = value
1507 .get("type")
1508 .and_then(serde_json::Value::as_str)
1509 .map(str::to_owned);
1510 match tag.as_deref() {
1511 Some("file") => Ok(Self::File(
1512 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
1513 )),
1514 Some("folder") => Ok(Self::Folder(
1515 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
1516 )),
1517 Some("web_link") => Ok(Self::WebLink(
1518 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
1519 )),
1520 _ => Ok(Self::Unknown(value)),
1521 }
1522 }
1523}
1524
1525#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1526pub struct Collaborations {
1527 #[serde(default, skip_serializing_if = "Option::is_none")]
1528 pub limit: Option<i64>,
1529 #[serde(
1530 default,
1531 skip_serializing_if = "Option::is_none",
1532 deserialize_with = "double_option"
1533 )]
1534 pub next_marker: Option<Option<String>>,
1535 #[serde(
1536 default,
1537 skip_serializing_if = "Option::is_none",
1538 deserialize_with = "double_option"
1539 )]
1540 pub prev_marker: Option<Option<String>>,
1541 #[serde(default, skip_serializing_if = "Option::is_none")]
1542 pub entries: Option<Vec<Collaboration>>,
1543}
1544
1545#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1546pub struct CollaborationsOffsetPaginated {
1547 #[serde(default, skip_serializing_if = "Option::is_none")]
1548 pub total_count: Option<i64>,
1549 #[serde(default, skip_serializing_if = "Option::is_none")]
1550 pub limit: Option<i64>,
1551 #[serde(default, skip_serializing_if = "Option::is_none")]
1552 pub offset: Option<i64>,
1553 #[serde(default, skip_serializing_if = "Option::is_none")]
1554 pub entries: Option<Vec<Collaboration>>,
1555}
1556
1557#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1558pub struct CollaboratorVariable {
1559 pub r#type: CollaboratorVariableType,
1560 pub variable_type: CollaboratorVariableVariableType,
1561 pub variable_value: Vec<CollaboratorVariableVariableValue>,
1562}
1563
1564#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1565pub struct Collection {
1566 #[serde(default, skip_serializing_if = "Option::is_none")]
1567 pub id: Option<String>,
1568 #[serde(default, skip_serializing_if = "Option::is_none")]
1569 pub r#type: Option<CollectionType>,
1570 #[serde(default, skip_serializing_if = "Option::is_none")]
1571 pub name: Option<CollectionName>,
1572 #[serde(default, skip_serializing_if = "Option::is_none")]
1573 pub collection_type: Option<CollectionCollectionType>,
1574}
1575
1576#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1577pub struct Collections {
1578 #[serde(default, skip_serializing_if = "Option::is_none")]
1579 pub total_count: Option<i64>,
1580 #[serde(default, skip_serializing_if = "Option::is_none")]
1581 pub limit: Option<i64>,
1582 #[serde(default, skip_serializing_if = "Option::is_none")]
1583 pub offset: Option<i64>,
1584 #[serde(default, skip_serializing_if = "Option::is_none")]
1585 pub order: Option<Vec<CollectionsOrder>>,
1586 #[serde(default, skip_serializing_if = "Option::is_none")]
1587 pub entries: Option<Vec<Collection>>,
1588}
1589
1590#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1591pub struct Comment {
1592 #[serde(default, skip_serializing_if = "Option::is_none")]
1593 pub id: Option<String>,
1594 #[serde(default, skip_serializing_if = "Option::is_none")]
1595 pub r#type: Option<CommentType>,
1596 #[serde(default, skip_serializing_if = "Option::is_none")]
1597 pub is_reply_comment: Option<bool>,
1598 #[serde(default, skip_serializing_if = "Option::is_none")]
1599 pub message: Option<String>,
1600 #[serde(default, skip_serializing_if = "Option::is_none")]
1601 pub created_by: Option<UserMini>,
1602 #[serde(default, skip_serializing_if = "Option::is_none")]
1603 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1604 #[serde(default, skip_serializing_if = "Option::is_none")]
1605 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
1606 #[serde(default, skip_serializing_if = "Option::is_none")]
1607 pub item: Option<CommentItem>,
1608}
1609
1610#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1611pub struct CommentBase {
1612 #[serde(default, skip_serializing_if = "Option::is_none")]
1613 pub id: Option<String>,
1614 #[serde(default, skip_serializing_if = "Option::is_none")]
1615 pub r#type: Option<CommentType>,
1616}
1617
1618#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1619pub struct CommentFull {
1620 #[serde(default, skip_serializing_if = "Option::is_none")]
1621 pub id: Option<String>,
1622 #[serde(default, skip_serializing_if = "Option::is_none")]
1623 pub r#type: Option<CommentType>,
1624 #[serde(default, skip_serializing_if = "Option::is_none")]
1625 pub is_reply_comment: Option<bool>,
1626 #[serde(default, skip_serializing_if = "Option::is_none")]
1627 pub message: Option<String>,
1628 #[serde(default, skip_serializing_if = "Option::is_none")]
1629 pub created_by: Option<UserMini>,
1630 #[serde(default, skip_serializing_if = "Option::is_none")]
1631 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1632 #[serde(default, skip_serializing_if = "Option::is_none")]
1633 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
1634 #[serde(default, skip_serializing_if = "Option::is_none")]
1635 pub item: Option<CommentItem>,
1636 #[serde(default, skip_serializing_if = "Option::is_none")]
1637 pub tagged_message: Option<String>,
1638}
1639
1640#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1641pub struct Comments {
1642 #[serde(default, skip_serializing_if = "Option::is_none")]
1643 pub total_count: Option<i64>,
1644 #[serde(default, skip_serializing_if = "Option::is_none")]
1645 pub limit: Option<i64>,
1646 #[serde(default, skip_serializing_if = "Option::is_none")]
1647 pub offset: Option<i64>,
1648 #[serde(default, skip_serializing_if = "Option::is_none")]
1649 pub order: Option<Vec<CollectionsOrder>>,
1650 #[serde(default, skip_serializing_if = "Option::is_none")]
1651 pub entries: Option<Vec<CommentFull>>,
1652}
1653
1654#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1655pub struct CompletionRuleVariable {
1656 pub r#type: CollaboratorVariableType,
1657 pub variable_type: CompletionRuleVariableVariableType,
1658 pub variable_value: CompletionRuleVariableVariableValue,
1659}
1660
1661#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1662pub struct ConflictError {
1663 #[serde(default, skip_serializing_if = "Option::is_none")]
1664 pub r#type: Option<ClientErrorType>,
1665 #[serde(default, skip_serializing_if = "Option::is_none")]
1666 pub status: Option<i64>,
1667 #[serde(default, skip_serializing_if = "Option::is_none")]
1668 pub code: Option<ClientErrorCode>,
1669 #[serde(default, skip_serializing_if = "Option::is_none")]
1670 pub message: Option<String>,
1671 #[serde(default, skip_serializing_if = "Option::is_none")]
1672 pub context_info: Option<ConflictErrorContextInfo>,
1673 #[serde(default, skip_serializing_if = "Option::is_none")]
1674 pub help_url: Option<String>,
1675 #[serde(default, skip_serializing_if = "Option::is_none")]
1676 pub request_id: Option<String>,
1677}
1678
1679#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1680pub struct CreateAiAgent {
1681 pub r#type: AiSingleAgentResponseType,
1682 pub name: String,
1683 pub access_state: String,
1684 #[serde(default, skip_serializing_if = "Option::is_none")]
1685 pub icon_reference: Option<String>,
1686 #[serde(default, skip_serializing_if = "Option::is_none")]
1687 pub allowed_entities: Option<Vec<AiAgentAllowedEntity>>,
1688 #[serde(default, skip_serializing_if = "Option::is_none")]
1689 pub ask: Option<AiStudioAgentAsk>,
1690 #[serde(default, skip_serializing_if = "Option::is_none")]
1691 pub text_gen: Option<AiStudioAgentTextGen>,
1692 #[serde(default, skip_serializing_if = "Option::is_none")]
1693 pub extract: Option<AiStudioAgentExtract>,
1694}
1695
1696#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1697pub struct DevicePinner {
1698 #[serde(default, skip_serializing_if = "Option::is_none")]
1699 pub id: Option<String>,
1700 #[serde(default, skip_serializing_if = "Option::is_none")]
1701 pub r#type: Option<DevicePinnerType>,
1702 #[serde(default, skip_serializing_if = "Option::is_none")]
1703 pub owned_by: Option<UserMini>,
1704 #[serde(default, skip_serializing_if = "Option::is_none")]
1705 pub product_name: Option<String>,
1706}
1707
1708#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1709pub struct DevicePinners {
1710 #[serde(default, skip_serializing_if = "Option::is_none")]
1711 pub entries: Option<Vec<DevicePinner>>,
1712 #[serde(default, skip_serializing_if = "Option::is_none")]
1713 pub limit: Option<i64>,
1714 #[serde(default, skip_serializing_if = "Option::is_none")]
1715 pub next_marker: Option<i64>,
1716 #[serde(default, skip_serializing_if = "Option::is_none")]
1717 pub order: Option<Vec<DevicePinnersOrder>>,
1718}
1719
1720#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1721pub struct EmailAlias {
1722 #[serde(default, skip_serializing_if = "Option::is_none")]
1723 pub id: Option<String>,
1724 #[serde(default, skip_serializing_if = "Option::is_none")]
1725 pub r#type: Option<EmailAliasType>,
1726 #[serde(default, skip_serializing_if = "Option::is_none")]
1727 pub email: Option<String>,
1728 #[serde(default, skip_serializing_if = "Option::is_none")]
1729 pub is_confirmed: Option<bool>,
1730}
1731
1732#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1733pub struct EmailAliases {
1734 #[serde(default, skip_serializing_if = "Option::is_none")]
1735 pub total_count: Option<i64>,
1736 #[serde(default, skip_serializing_if = "Option::is_none")]
1737 pub entries: Option<Vec<EmailAlias>>,
1738}
1739
1740#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1741pub struct EnterpriseBase {
1742 #[serde(default, skip_serializing_if = "Option::is_none")]
1743 pub id: Option<String>,
1744 #[serde(default, skip_serializing_if = "Option::is_none")]
1745 pub r#type: Option<EnterpriseType>,
1746}
1747
1748#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1749pub struct Event {
1750 #[serde(default, skip_serializing_if = "Option::is_none")]
1751 pub r#type: Option<String>,
1752 #[serde(default, skip_serializing_if = "Option::is_none")]
1753 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1754 #[serde(default, skip_serializing_if = "Option::is_none")]
1755 pub recorded_at: Option<chrono::DateTime<chrono::Utc>>,
1756 #[serde(default, skip_serializing_if = "Option::is_none")]
1757 pub event_id: Option<String>,
1758 #[serde(default, skip_serializing_if = "Option::is_none")]
1759 pub created_by: Option<UserMini>,
1760 #[serde(default, skip_serializing_if = "Option::is_none")]
1761 pub event_type: Option<EventEventType>,
1762 #[serde(default, skip_serializing_if = "Option::is_none")]
1763 pub session_id: Option<String>,
1764 #[serde(default, skip_serializing_if = "Option::is_none")]
1765 pub source: Option<EventSourceResource>,
1766 #[serde(default, skip_serializing_if = "Option::is_none")]
1767 pub additional_details: Option<std::collections::HashMap<String, serde_json::Value>>,
1768}
1769
1770#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1771pub struct Events {
1772 #[serde(default, skip_serializing_if = "Option::is_none")]
1773 pub chunk_size: Option<i64>,
1774 #[serde(default, skip_serializing_if = "Option::is_none")]
1775 pub next_stream_position: Option<EventsNextStreamPosition>,
1776 #[serde(default, skip_serializing_if = "Option::is_none")]
1777 pub entries: Option<Vec<Event>>,
1778}
1779
1780#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1781pub struct EventSource {
1782 pub item_type: EventSourceItemType,
1783 pub item_id: String,
1784 pub item_name: String,
1785 #[serde(default, skip_serializing_if = "Option::is_none")]
1786 pub classification: Option<EventSourceClassification>,
1787 #[serde(
1788 default,
1789 skip_serializing_if = "Option::is_none",
1790 deserialize_with = "double_option"
1791 )]
1792 pub parent: Option<Option<FolderMini>>,
1793 #[serde(default, skip_serializing_if = "Option::is_none")]
1794 pub owned_by: Option<UserMini>,
1795}
1796
1797#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1798#[serde(transparent)]
1799pub struct EventSourceResource(pub serde_json::Value);
1800
1801#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1802pub struct File {
1803 pub id: String,
1804 #[serde(
1805 default,
1806 skip_serializing_if = "Option::is_none",
1807 deserialize_with = "double_option"
1808 )]
1809 pub etag: Option<Option<String>>,
1810 pub r#type: AiCitationType,
1811 #[serde(default, skip_serializing_if = "Option::is_none")]
1812 pub sequence_id: Option<String>,
1813 #[serde(default, skip_serializing_if = "Option::is_none")]
1814 pub name: Option<String>,
1815 #[serde(default, skip_serializing_if = "Option::is_none")]
1816 pub sha1: Option<String>,
1817 #[serde(default, skip_serializing_if = "Option::is_none")]
1818 pub file_version: Option<FileVersionMini>,
1819 #[serde(default, skip_serializing_if = "Option::is_none")]
1820 pub description: Option<String>,
1821 #[serde(default, skip_serializing_if = "Option::is_none")]
1822 pub size: Option<i64>,
1823 #[serde(default, skip_serializing_if = "Option::is_none")]
1824 pub path_collection: Option<FilePathCollection>,
1825 #[serde(default, skip_serializing_if = "Option::is_none")]
1826 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1827 #[serde(default, skip_serializing_if = "Option::is_none")]
1828 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
1829 #[serde(
1830 default,
1831 skip_serializing_if = "Option::is_none",
1832 deserialize_with = "double_option"
1833 )]
1834 pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
1835 #[serde(
1836 default,
1837 skip_serializing_if = "Option::is_none",
1838 deserialize_with = "double_option"
1839 )]
1840 pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
1841 #[serde(
1842 default,
1843 skip_serializing_if = "Option::is_none",
1844 deserialize_with = "double_option"
1845 )]
1846 pub content_created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
1847 #[serde(
1848 default,
1849 skip_serializing_if = "Option::is_none",
1850 deserialize_with = "double_option"
1851 )]
1852 pub content_modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
1853 #[serde(default, skip_serializing_if = "Option::is_none")]
1854 pub created_by: Option<UserMini>,
1855 #[serde(default, skip_serializing_if = "Option::is_none")]
1856 pub modified_by: Option<UserMini>,
1857 #[serde(default, skip_serializing_if = "Option::is_none")]
1858 pub owned_by: Option<UserMini>,
1859 #[serde(
1860 default,
1861 skip_serializing_if = "Option::is_none",
1862 deserialize_with = "double_option"
1863 )]
1864 pub shared_link: Option<Option<FileSharedLink>>,
1865 #[serde(
1866 default,
1867 skip_serializing_if = "Option::is_none",
1868 deserialize_with = "double_option"
1869 )]
1870 pub parent: Option<Option<FolderMini>>,
1871 #[serde(default, skip_serializing_if = "Option::is_none")]
1872 pub item_status: Option<FileItemStatus>,
1873}
1874
1875#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1876pub struct FileBase {
1877 pub id: String,
1878 #[serde(
1879 default,
1880 skip_serializing_if = "Option::is_none",
1881 deserialize_with = "double_option"
1882 )]
1883 pub etag: Option<Option<String>>,
1884 pub r#type: AiCitationType,
1885}
1886
1887#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
1888pub struct FileFull {
1889 pub id: String,
1890 #[serde(
1891 default,
1892 skip_serializing_if = "Option::is_none",
1893 deserialize_with = "double_option"
1894 )]
1895 pub etag: Option<Option<String>>,
1896 pub r#type: AiCitationType,
1897 #[serde(default, skip_serializing_if = "Option::is_none")]
1898 pub sequence_id: Option<String>,
1899 #[serde(default, skip_serializing_if = "Option::is_none")]
1900 pub name: Option<String>,
1901 #[serde(default, skip_serializing_if = "Option::is_none")]
1902 pub sha1: Option<String>,
1903 #[serde(default, skip_serializing_if = "Option::is_none")]
1904 pub file_version: Option<FileVersionMini>,
1905 #[serde(default, skip_serializing_if = "Option::is_none")]
1906 pub description: Option<String>,
1907 #[serde(default, skip_serializing_if = "Option::is_none")]
1908 pub size: Option<i64>,
1909 #[serde(default, skip_serializing_if = "Option::is_none")]
1910 pub path_collection: Option<FilePathCollection>,
1911 #[serde(default, skip_serializing_if = "Option::is_none")]
1912 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
1913 #[serde(default, skip_serializing_if = "Option::is_none")]
1914 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
1915 #[serde(
1916 default,
1917 skip_serializing_if = "Option::is_none",
1918 deserialize_with = "double_option"
1919 )]
1920 pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
1921 #[serde(
1922 default,
1923 skip_serializing_if = "Option::is_none",
1924 deserialize_with = "double_option"
1925 )]
1926 pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
1927 #[serde(
1928 default,
1929 skip_serializing_if = "Option::is_none",
1930 deserialize_with = "double_option"
1931 )]
1932 pub content_created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
1933 #[serde(
1934 default,
1935 skip_serializing_if = "Option::is_none",
1936 deserialize_with = "double_option"
1937 )]
1938 pub content_modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
1939 #[serde(default, skip_serializing_if = "Option::is_none")]
1940 pub created_by: Option<UserMini>,
1941 #[serde(default, skip_serializing_if = "Option::is_none")]
1942 pub modified_by: Option<UserMini>,
1943 #[serde(default, skip_serializing_if = "Option::is_none")]
1944 pub owned_by: Option<UserMini>,
1945 #[serde(
1946 default,
1947 skip_serializing_if = "Option::is_none",
1948 deserialize_with = "double_option"
1949 )]
1950 pub shared_link: Option<Option<FileSharedLink>>,
1951 #[serde(
1952 default,
1953 skip_serializing_if = "Option::is_none",
1954 deserialize_with = "double_option"
1955 )]
1956 pub parent: Option<Option<FolderMini>>,
1957 #[serde(default, skip_serializing_if = "Option::is_none")]
1958 pub item_status: Option<FileItemStatus>,
1959 #[serde(default, skip_serializing_if = "Option::is_none")]
1960 pub version_number: Option<String>,
1961 #[serde(default, skip_serializing_if = "Option::is_none")]
1962 pub comment_count: Option<i64>,
1963 #[serde(default, skip_serializing_if = "Option::is_none")]
1964 pub permissions: Option<FileFullPermissions>,
1965 #[serde(default, skip_serializing_if = "Option::is_none")]
1966 pub tags: Option<Vec<String>>,
1967 #[serde(
1968 default,
1969 skip_serializing_if = "Option::is_none",
1970 deserialize_with = "double_option"
1971 )]
1972 pub lock: Option<Option<FileFullLock>>,
1973 #[serde(default, skip_serializing_if = "Option::is_none")]
1974 pub extension: Option<String>,
1975 #[serde(default, skip_serializing_if = "Option::is_none")]
1976 pub is_package: Option<bool>,
1977 #[serde(default, skip_serializing_if = "Option::is_none")]
1978 pub expiring_embed_link: Option<FileFullExpiringEmbedLink>,
1979 #[serde(default, skip_serializing_if = "Option::is_none")]
1980 pub watermark_info: Option<FileFullWatermarkInfo>,
1981 #[serde(default, skip_serializing_if = "Option::is_none")]
1982 pub is_accessible_via_shared_link: Option<bool>,
1983 #[serde(default, skip_serializing_if = "Option::is_none")]
1984 pub allowed_invitee_roles: Option<Vec<FileFullAllowedInviteeRoles>>,
1985 #[serde(default, skip_serializing_if = "Option::is_none")]
1986 pub is_externally_owned: Option<bool>,
1987 #[serde(default, skip_serializing_if = "Option::is_none")]
1988 pub has_collaborations: Option<bool>,
1989 #[serde(default, skip_serializing_if = "Option::is_none")]
1990 pub metadata:
1991 Option<std::collections::HashMap<String, std::collections::HashMap<String, MetadataFull>>>,
1992 #[serde(
1993 default,
1994 skip_serializing_if = "Option::is_none",
1995 deserialize_with = "double_option"
1996 )]
1997 pub expires_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
1998 #[serde(default, skip_serializing_if = "Option::is_none")]
1999 pub representations: Option<FileFullRepresentations>,
2000 #[serde(
2001 default,
2002 skip_serializing_if = "Option::is_none",
2003 deserialize_with = "double_option"
2004 )]
2005 pub classification: Option<Option<FileFullClassification>>,
2006 #[serde(default, skip_serializing_if = "Option::is_none")]
2007 pub uploader_display_name: Option<String>,
2008 #[serde(
2009 default,
2010 skip_serializing_if = "Option::is_none",
2011 deserialize_with = "double_option"
2012 )]
2013 pub disposition_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2014 #[serde(
2015 default,
2016 skip_serializing_if = "Option::is_none",
2017 deserialize_with = "double_option"
2018 )]
2019 pub shared_link_permission_options: Option<Option<Vec<FileFullSharedLinkPermissionOptions>>>,
2020 #[serde(default, skip_serializing_if = "Option::is_none")]
2021 pub is_associated_with_app_item: Option<bool>,
2022 #[serde(default, skip_serializing_if = "Option::is_none")]
2023 pub collections: Option<Vec<Collection>>,
2024 #[serde(default, skip_serializing_if = "Option::is_none")]
2025 pub is_download_available: Option<bool>,
2026 #[serde(default, skip_serializing_if = "Option::is_none")]
2027 pub download_url: Option<String>,
2028 #[serde(default, skip_serializing_if = "Option::is_none")]
2029 pub authenticated_download_url: Option<String>,
2030 #[serde(default, skip_serializing_if = "Option::is_none")]
2031 pub allowed_shared_link_access_levels: Option<Vec<SharedLinkAccess>>,
2032}
2033
2034#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2035pub struct FileMini {
2036 pub id: String,
2037 #[serde(
2038 default,
2039 skip_serializing_if = "Option::is_none",
2040 deserialize_with = "double_option"
2041 )]
2042 pub etag: Option<Option<String>>,
2043 pub r#type: AiCitationType,
2044 #[serde(default, skip_serializing_if = "Option::is_none")]
2045 pub sequence_id: Option<String>,
2046 #[serde(default, skip_serializing_if = "Option::is_none")]
2047 pub name: Option<String>,
2048 #[serde(default, skip_serializing_if = "Option::is_none")]
2049 pub sha1: Option<String>,
2050 #[serde(default, skip_serializing_if = "Option::is_none")]
2051 pub file_version: Option<FileVersionMini>,
2052}
2053
2054#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2055pub struct FileConflict {
2056 pub id: String,
2057 #[serde(
2058 default,
2059 skip_serializing_if = "Option::is_none",
2060 deserialize_with = "double_option"
2061 )]
2062 pub etag: Option<Option<String>>,
2063 pub r#type: AiCitationType,
2064 #[serde(default, skip_serializing_if = "Option::is_none")]
2065 pub sequence_id: Option<String>,
2066 #[serde(default, skip_serializing_if = "Option::is_none")]
2067 pub name: Option<String>,
2068 #[serde(default, skip_serializing_if = "Option::is_none")]
2069 pub sha1: Option<String>,
2070 #[serde(default, skip_serializing_if = "Option::is_none")]
2071 pub file_version: Option<FileVersionMini>,
2072}
2073
2074#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2075pub struct FileRequest {
2076 pub id: String,
2077 pub r#type: FileRequestType,
2078 #[serde(default, skip_serializing_if = "Option::is_none")]
2079 pub title: Option<String>,
2080 #[serde(
2081 default,
2082 skip_serializing_if = "Option::is_none",
2083 deserialize_with = "double_option"
2084 )]
2085 pub description: Option<Option<String>>,
2086 #[serde(default, skip_serializing_if = "Option::is_none")]
2087 pub status: Option<FileRequestStatus>,
2088 #[serde(default, skip_serializing_if = "Option::is_none")]
2089 pub is_email_required: Option<bool>,
2090 #[serde(default, skip_serializing_if = "Option::is_none")]
2091 pub is_description_required: Option<bool>,
2092 #[serde(default, skip_serializing_if = "Option::is_none")]
2093 pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
2094 pub folder: FolderMini,
2095 #[serde(default, skip_serializing_if = "Option::is_none")]
2096 pub url: Option<String>,
2097 #[serde(
2098 default,
2099 skip_serializing_if = "Option::is_none",
2100 deserialize_with = "double_option"
2101 )]
2102 pub etag: Option<Option<String>>,
2103 #[serde(default, skip_serializing_if = "Option::is_none")]
2104 pub created_by: Option<UserMini>,
2105 pub created_at: chrono::DateTime<chrono::Utc>,
2106 #[serde(default, skip_serializing_if = "Option::is_none")]
2107 pub updated_by: Option<UserMini>,
2108 pub updated_at: chrono::DateTime<chrono::Utc>,
2109}
2110
2111#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2112pub struct FileRequestCopyRequest {
2113 #[serde(default, skip_serializing_if = "Option::is_none")]
2114 pub title: Option<String>,
2115 #[serde(default, skip_serializing_if = "Option::is_none")]
2116 pub description: Option<String>,
2117 #[serde(default, skip_serializing_if = "Option::is_none")]
2118 pub status: Option<FileRequestStatus>,
2119 #[serde(default, skip_serializing_if = "Option::is_none")]
2120 pub is_email_required: Option<bool>,
2121 #[serde(default, skip_serializing_if = "Option::is_none")]
2122 pub is_description_required: Option<bool>,
2123 #[serde(default, skip_serializing_if = "Option::is_none")]
2124 pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
2125 pub folder: FileRequestCopyRequestFolder,
2126}
2127
2128#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2129pub struct FileRequestUpdateRequest {
2130 #[serde(default, skip_serializing_if = "Option::is_none")]
2131 pub title: Option<String>,
2132 #[serde(default, skip_serializing_if = "Option::is_none")]
2133 pub description: Option<String>,
2134 #[serde(default, skip_serializing_if = "Option::is_none")]
2135 pub status: Option<FileRequestStatus>,
2136 #[serde(default, skip_serializing_if = "Option::is_none")]
2137 pub is_email_required: Option<bool>,
2138 #[serde(default, skip_serializing_if = "Option::is_none")]
2139 pub is_description_required: Option<bool>,
2140 #[serde(default, skip_serializing_if = "Option::is_none")]
2141 pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
2142}
2143
2144#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2145pub struct Files {
2146 #[serde(default, skip_serializing_if = "Option::is_none")]
2147 pub total_count: Option<i64>,
2148 #[serde(default, skip_serializing_if = "Option::is_none")]
2149 pub entries: Option<Vec<FileFull>>,
2150}
2151
2152#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2153pub struct FilesOnHold {
2154 #[serde(default, skip_serializing_if = "Option::is_none")]
2155 pub limit: Option<i64>,
2156 #[serde(
2157 default,
2158 skip_serializing_if = "Option::is_none",
2159 deserialize_with = "double_option"
2160 )]
2161 pub next_marker: Option<Option<String>>,
2162 #[serde(
2163 default,
2164 skip_serializing_if = "Option::is_none",
2165 deserialize_with = "double_option"
2166 )]
2167 pub prev_marker: Option<Option<String>>,
2168 #[serde(default, skip_serializing_if = "Option::is_none")]
2169 pub entries: Option<Vec<FileMini>>,
2170}
2171
2172#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2173pub struct FilesUnderRetention {
2174 #[serde(default, skip_serializing_if = "Option::is_none")]
2175 pub limit: Option<i64>,
2176 #[serde(
2177 default,
2178 skip_serializing_if = "Option::is_none",
2179 deserialize_with = "double_option"
2180 )]
2181 pub next_marker: Option<Option<String>>,
2182 #[serde(
2183 default,
2184 skip_serializing_if = "Option::is_none",
2185 deserialize_with = "double_option"
2186 )]
2187 pub prev_marker: Option<Option<String>>,
2188 #[serde(default, skip_serializing_if = "Option::is_none")]
2189 pub entries: Option<Vec<FileMini>>,
2190}
2191
2192#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2193pub struct FileVersion {
2194 pub id: String,
2195 pub r#type: FileVersionType,
2196 #[serde(default, skip_serializing_if = "Option::is_none")]
2197 pub sha1: Option<String>,
2198 #[serde(default, skip_serializing_if = "Option::is_none")]
2199 pub name: Option<String>,
2200 #[serde(default, skip_serializing_if = "Option::is_none")]
2201 pub size: Option<i64>,
2202 #[serde(default, skip_serializing_if = "Option::is_none")]
2203 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2204 #[serde(default, skip_serializing_if = "Option::is_none")]
2205 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
2206 #[serde(default, skip_serializing_if = "Option::is_none")]
2207 pub modified_by: Option<UserMini>,
2208 #[serde(
2209 default,
2210 skip_serializing_if = "Option::is_none",
2211 deserialize_with = "double_option"
2212 )]
2213 pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2214 #[serde(default, skip_serializing_if = "Option::is_none")]
2215 pub trashed_by: Option<UserMini>,
2216 #[serde(
2217 default,
2218 skip_serializing_if = "Option::is_none",
2219 deserialize_with = "double_option"
2220 )]
2221 pub restored_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2222 #[serde(default, skip_serializing_if = "Option::is_none")]
2223 pub restored_by: Option<UserMini>,
2224 #[serde(
2225 default,
2226 skip_serializing_if = "Option::is_none",
2227 deserialize_with = "double_option"
2228 )]
2229 pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2230 #[serde(default, skip_serializing_if = "Option::is_none")]
2231 pub uploader_display_name: Option<String>,
2232}
2233
2234#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2235pub struct FileVersionBase {
2236 pub id: String,
2237 pub r#type: FileVersionType,
2238}
2239
2240#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2241pub struct FileVersionFull {
2242 pub id: String,
2243 pub r#type: FileVersionType,
2244 #[serde(default, skip_serializing_if = "Option::is_none")]
2245 pub sha1: Option<String>,
2246 #[serde(default, skip_serializing_if = "Option::is_none")]
2247 pub name: Option<String>,
2248 #[serde(default, skip_serializing_if = "Option::is_none")]
2249 pub size: Option<i64>,
2250 #[serde(default, skip_serializing_if = "Option::is_none")]
2251 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2252 #[serde(default, skip_serializing_if = "Option::is_none")]
2253 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
2254 #[serde(default, skip_serializing_if = "Option::is_none")]
2255 pub modified_by: Option<UserMini>,
2256 #[serde(
2257 default,
2258 skip_serializing_if = "Option::is_none",
2259 deserialize_with = "double_option"
2260 )]
2261 pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2262 #[serde(default, skip_serializing_if = "Option::is_none")]
2263 pub trashed_by: Option<UserMini>,
2264 #[serde(
2265 default,
2266 skip_serializing_if = "Option::is_none",
2267 deserialize_with = "double_option"
2268 )]
2269 pub restored_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2270 #[serde(default, skip_serializing_if = "Option::is_none")]
2271 pub restored_by: Option<UserMini>,
2272 #[serde(
2273 default,
2274 skip_serializing_if = "Option::is_none",
2275 deserialize_with = "double_option"
2276 )]
2277 pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2278 #[serde(default, skip_serializing_if = "Option::is_none")]
2279 pub uploader_display_name: Option<String>,
2280 #[serde(default, skip_serializing_if = "Option::is_none")]
2281 pub version_number: Option<String>,
2282}
2283
2284#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2285pub struct FileVersionMini {
2286 pub id: String,
2287 pub r#type: FileVersionType,
2288 #[serde(default, skip_serializing_if = "Option::is_none")]
2289 pub sha1: Option<String>,
2290}
2291
2292#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2293pub struct FileVersionLegalHold {
2294 #[serde(default, skip_serializing_if = "Option::is_none")]
2295 pub id: Option<String>,
2296 #[serde(default, skip_serializing_if = "Option::is_none")]
2297 pub r#type: Option<FileVersionLegalHoldType>,
2298 #[serde(default, skip_serializing_if = "Option::is_none")]
2299 pub file_version: Option<FileVersionMini>,
2300 #[serde(default, skip_serializing_if = "Option::is_none")]
2301 pub file: Option<FileMini>,
2302 #[serde(default, skip_serializing_if = "Option::is_none")]
2303 pub legal_hold_policy_assignments: Option<Vec<LegalHoldPolicyAssignment>>,
2304 #[serde(default, skip_serializing_if = "Option::is_none")]
2305 pub deleted_at: Option<chrono::DateTime<chrono::Utc>>,
2306}
2307
2308#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2309pub struct FileVersionLegalHolds {
2310 #[serde(default, skip_serializing_if = "Option::is_none")]
2311 pub limit: Option<i64>,
2312 #[serde(
2313 default,
2314 skip_serializing_if = "Option::is_none",
2315 deserialize_with = "double_option"
2316 )]
2317 pub next_marker: Option<Option<String>>,
2318 #[serde(
2319 default,
2320 skip_serializing_if = "Option::is_none",
2321 deserialize_with = "double_option"
2322 )]
2323 pub prev_marker: Option<Option<String>>,
2324 #[serde(default, skip_serializing_if = "Option::is_none")]
2325 pub entries: Option<Vec<FileVersionLegalHold>>,
2326}
2327
2328#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2329pub struct FileVersionRetention {
2330 #[serde(default, skip_serializing_if = "Option::is_none")]
2331 pub id: Option<String>,
2332 #[serde(default, skip_serializing_if = "Option::is_none")]
2333 pub r#type: Option<FileVersionRetentionType>,
2334 #[serde(default, skip_serializing_if = "Option::is_none")]
2335 pub file_version: Option<FileVersionMini>,
2336 #[serde(default, skip_serializing_if = "Option::is_none")]
2337 pub file: Option<FileMini>,
2338 #[serde(default, skip_serializing_if = "Option::is_none")]
2339 pub applied_at: Option<chrono::DateTime<chrono::Utc>>,
2340 #[serde(default, skip_serializing_if = "Option::is_none")]
2341 pub disposition_at: Option<chrono::DateTime<chrono::Utc>>,
2342 #[serde(default, skip_serializing_if = "Option::is_none")]
2343 pub winning_retention_policy: Option<RetentionPolicyMini>,
2344}
2345
2346#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2347pub struct FileVersionRetentions {
2348 #[serde(default, skip_serializing_if = "Option::is_none")]
2349 pub limit: Option<i64>,
2350 #[serde(
2351 default,
2352 skip_serializing_if = "Option::is_none",
2353 deserialize_with = "double_option"
2354 )]
2355 pub next_marker: Option<Option<String>>,
2356 #[serde(
2357 default,
2358 skip_serializing_if = "Option::is_none",
2359 deserialize_with = "double_option"
2360 )]
2361 pub prev_marker: Option<Option<String>>,
2362 #[serde(default, skip_serializing_if = "Option::is_none")]
2363 pub entries: Option<Vec<FileVersionRetention>>,
2364}
2365
2366#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2367pub struct FileVersions {
2368 #[serde(default, skip_serializing_if = "Option::is_none")]
2369 pub total_count: Option<i64>,
2370 #[serde(default, skip_serializing_if = "Option::is_none")]
2371 pub limit: Option<i64>,
2372 #[serde(default, skip_serializing_if = "Option::is_none")]
2373 pub offset: Option<i64>,
2374 #[serde(default, skip_serializing_if = "Option::is_none")]
2375 pub order: Option<Vec<CollectionsOrder>>,
2376 #[serde(default, skip_serializing_if = "Option::is_none")]
2377 pub entries: Option<Vec<FileVersionFull>>,
2378}
2379
2380#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2381pub struct FileVersionsOnHold {
2382 #[serde(default, skip_serializing_if = "Option::is_none")]
2383 pub limit: Option<i64>,
2384 #[serde(
2385 default,
2386 skip_serializing_if = "Option::is_none",
2387 deserialize_with = "double_option"
2388 )]
2389 pub next_marker: Option<Option<String>>,
2390 #[serde(
2391 default,
2392 skip_serializing_if = "Option::is_none",
2393 deserialize_with = "double_option"
2394 )]
2395 pub prev_marker: Option<Option<String>>,
2396 #[serde(default, skip_serializing_if = "Option::is_none")]
2397 pub entries: Option<Vec<FileVersion>>,
2398}
2399
2400#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2401pub struct Folder {
2402 pub id: String,
2403 #[serde(
2404 default,
2405 skip_serializing_if = "Option::is_none",
2406 deserialize_with = "double_option"
2407 )]
2408 pub etag: Option<Option<String>>,
2409 pub r#type: FolderType,
2410 #[serde(default, skip_serializing_if = "Option::is_none")]
2411 pub sequence_id: Option<String>,
2412 #[serde(default, skip_serializing_if = "Option::is_none")]
2413 pub name: Option<String>,
2414 #[serde(
2415 default,
2416 skip_serializing_if = "Option::is_none",
2417 deserialize_with = "double_option"
2418 )]
2419 pub created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2420 #[serde(
2421 default,
2422 skip_serializing_if = "Option::is_none",
2423 deserialize_with = "double_option"
2424 )]
2425 pub modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2426 #[serde(default, skip_serializing_if = "Option::is_none")]
2427 pub description: Option<String>,
2428 #[serde(default, skip_serializing_if = "Option::is_none")]
2429 pub size: Option<i64>,
2430 #[serde(default, skip_serializing_if = "Option::is_none")]
2431 pub path_collection: Option<FilePathCollection>,
2432 #[serde(default, skip_serializing_if = "Option::is_none")]
2433 pub created_by: Option<UserMini>,
2434 #[serde(default, skip_serializing_if = "Option::is_none")]
2435 pub modified_by: Option<UserMini>,
2436 #[serde(
2437 default,
2438 skip_serializing_if = "Option::is_none",
2439 deserialize_with = "double_option"
2440 )]
2441 pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2442 #[serde(
2443 default,
2444 skip_serializing_if = "Option::is_none",
2445 deserialize_with = "double_option"
2446 )]
2447 pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2448 #[serde(
2449 default,
2450 skip_serializing_if = "Option::is_none",
2451 deserialize_with = "double_option"
2452 )]
2453 pub content_created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2454 #[serde(
2455 default,
2456 skip_serializing_if = "Option::is_none",
2457 deserialize_with = "double_option"
2458 )]
2459 pub content_modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2460 #[serde(default, skip_serializing_if = "Option::is_none")]
2461 pub owned_by: Option<UserMini>,
2462 #[serde(
2463 default,
2464 skip_serializing_if = "Option::is_none",
2465 deserialize_with = "double_option"
2466 )]
2467 pub shared_link: Option<Option<FileSharedLink>>,
2468 #[serde(
2469 default,
2470 skip_serializing_if = "Option::is_none",
2471 deserialize_with = "double_option"
2472 )]
2473 pub folder_upload_email: Option<Option<FolderFolderUploadEmail>>,
2474 #[serde(
2475 default,
2476 skip_serializing_if = "Option::is_none",
2477 deserialize_with = "double_option"
2478 )]
2479 pub parent: Option<Option<FolderMini>>,
2480 #[serde(default, skip_serializing_if = "Option::is_none")]
2481 pub item_status: Option<FileItemStatus>,
2482 #[serde(default, skip_serializing_if = "Option::is_none")]
2483 pub item_collection: Option<Items>,
2484}
2485
2486#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2487pub struct FolderBase {
2488 pub id: String,
2489 #[serde(
2490 default,
2491 skip_serializing_if = "Option::is_none",
2492 deserialize_with = "double_option"
2493 )]
2494 pub etag: Option<Option<String>>,
2495 pub r#type: FolderType,
2496}
2497
2498#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2499pub struct FolderFull {
2500 pub id: String,
2501 #[serde(
2502 default,
2503 skip_serializing_if = "Option::is_none",
2504 deserialize_with = "double_option"
2505 )]
2506 pub etag: Option<Option<String>>,
2507 pub r#type: FolderType,
2508 #[serde(default, skip_serializing_if = "Option::is_none")]
2509 pub sequence_id: Option<String>,
2510 #[serde(default, skip_serializing_if = "Option::is_none")]
2511 pub name: Option<String>,
2512 #[serde(
2513 default,
2514 skip_serializing_if = "Option::is_none",
2515 deserialize_with = "double_option"
2516 )]
2517 pub created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2518 #[serde(
2519 default,
2520 skip_serializing_if = "Option::is_none",
2521 deserialize_with = "double_option"
2522 )]
2523 pub modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2524 #[serde(default, skip_serializing_if = "Option::is_none")]
2525 pub description: Option<String>,
2526 #[serde(default, skip_serializing_if = "Option::is_none")]
2527 pub size: Option<i64>,
2528 #[serde(default, skip_serializing_if = "Option::is_none")]
2529 pub path_collection: Option<FilePathCollection>,
2530 #[serde(default, skip_serializing_if = "Option::is_none")]
2531 pub created_by: Option<UserMini>,
2532 #[serde(default, skip_serializing_if = "Option::is_none")]
2533 pub modified_by: Option<UserMini>,
2534 #[serde(
2535 default,
2536 skip_serializing_if = "Option::is_none",
2537 deserialize_with = "double_option"
2538 )]
2539 pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2540 #[serde(
2541 default,
2542 skip_serializing_if = "Option::is_none",
2543 deserialize_with = "double_option"
2544 )]
2545 pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2546 #[serde(
2547 default,
2548 skip_serializing_if = "Option::is_none",
2549 deserialize_with = "double_option"
2550 )]
2551 pub content_created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2552 #[serde(
2553 default,
2554 skip_serializing_if = "Option::is_none",
2555 deserialize_with = "double_option"
2556 )]
2557 pub content_modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
2558 #[serde(default, skip_serializing_if = "Option::is_none")]
2559 pub owned_by: Option<UserMini>,
2560 #[serde(
2561 default,
2562 skip_serializing_if = "Option::is_none",
2563 deserialize_with = "double_option"
2564 )]
2565 pub shared_link: Option<Option<FileSharedLink>>,
2566 #[serde(
2567 default,
2568 skip_serializing_if = "Option::is_none",
2569 deserialize_with = "double_option"
2570 )]
2571 pub folder_upload_email: Option<Option<FolderFolderUploadEmail>>,
2572 #[serde(
2573 default,
2574 skip_serializing_if = "Option::is_none",
2575 deserialize_with = "double_option"
2576 )]
2577 pub parent: Option<Option<FolderMini>>,
2578 #[serde(default, skip_serializing_if = "Option::is_none")]
2579 pub item_status: Option<FileItemStatus>,
2580 #[serde(default, skip_serializing_if = "Option::is_none")]
2581 pub item_collection: Option<Items>,
2582 #[serde(default, skip_serializing_if = "Option::is_none")]
2583 pub sync_state: Option<FolderFullSyncState>,
2584 #[serde(default, skip_serializing_if = "Option::is_none")]
2585 pub has_collaborations: Option<bool>,
2586 #[serde(default, skip_serializing_if = "Option::is_none")]
2587 pub permissions: Option<FolderFullPermissions>,
2588 #[serde(default, skip_serializing_if = "Option::is_none")]
2589 pub tags: Option<Vec<String>>,
2590 #[serde(default, skip_serializing_if = "Option::is_none")]
2591 pub can_non_owners_invite: Option<bool>,
2592 #[serde(default, skip_serializing_if = "Option::is_none")]
2593 pub is_externally_owned: Option<bool>,
2594 #[serde(default, skip_serializing_if = "Option::is_none")]
2595 pub metadata:
2596 Option<std::collections::HashMap<String, std::collections::HashMap<String, MetadataFull>>>,
2597 #[serde(default, skip_serializing_if = "Option::is_none")]
2598 pub is_collaboration_restricted_to_enterprise: Option<bool>,
2599 #[serde(default, skip_serializing_if = "Option::is_none")]
2600 pub allowed_shared_link_access_levels: Option<Vec<SharedLinkAccess>>,
2601 #[serde(default, skip_serializing_if = "Option::is_none")]
2602 pub allowed_invitee_roles: Option<Vec<FileFullAllowedInviteeRoles>>,
2603 #[serde(default, skip_serializing_if = "Option::is_none")]
2604 pub watermark_info: Option<FileFullWatermarkInfo>,
2605 #[serde(default, skip_serializing_if = "Option::is_none")]
2606 pub is_accessible_via_shared_link: Option<bool>,
2607 #[serde(default, skip_serializing_if = "Option::is_none")]
2608 pub can_non_owners_view_collaborators: Option<bool>,
2609 #[serde(
2610 default,
2611 skip_serializing_if = "Option::is_none",
2612 deserialize_with = "double_option"
2613 )]
2614 pub classification: Option<Option<FileFullClassification>>,
2615 #[serde(default, skip_serializing_if = "Option::is_none")]
2616 pub is_associated_with_app_item: Option<bool>,
2617 #[serde(default, skip_serializing_if = "Option::is_none")]
2618 pub collections: Option<Vec<Collection>>,
2619}
2620
2621#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2622pub struct FolderMini {
2623 pub id: String,
2624 #[serde(
2625 default,
2626 skip_serializing_if = "Option::is_none",
2627 deserialize_with = "double_option"
2628 )]
2629 pub etag: Option<Option<String>>,
2630 pub r#type: FolderType,
2631 #[serde(default, skip_serializing_if = "Option::is_none")]
2632 pub sequence_id: Option<String>,
2633 #[serde(default, skip_serializing_if = "Option::is_none")]
2634 pub name: Option<String>,
2635}
2636
2637#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2638pub struct FolderLock {
2639 #[serde(default, skip_serializing_if = "Option::is_none")]
2640 pub folder: Option<FolderMini>,
2641 #[serde(default, skip_serializing_if = "Option::is_none")]
2642 pub id: Option<String>,
2643 #[serde(default, skip_serializing_if = "Option::is_none")]
2644 pub r#type: Option<String>,
2645 #[serde(default, skip_serializing_if = "Option::is_none")]
2646 pub created_by: Option<UserBase>,
2647 #[serde(default, skip_serializing_if = "Option::is_none")]
2648 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2649 #[serde(default, skip_serializing_if = "Option::is_none")]
2650 pub locked_operations: Option<FolderLockLockedOperations>,
2651 #[serde(default, skip_serializing_if = "Option::is_none")]
2652 pub lock_type: Option<String>,
2653}
2654
2655#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2656pub struct FolderLocks {
2657 #[serde(default, skip_serializing_if = "Option::is_none")]
2658 pub entries: Option<Vec<FolderLock>>,
2659 #[serde(default, skip_serializing_if = "Option::is_none")]
2660 pub limit: Option<String>,
2661 #[serde(
2662 default,
2663 skip_serializing_if = "Option::is_none",
2664 deserialize_with = "double_option"
2665 )]
2666 pub next_marker: Option<Option<String>>,
2667}
2668
2669#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2670pub struct FolderReference {
2671 pub r#type: FolderType,
2672 pub id: String,
2673}
2674
2675#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2676pub struct GenericSource {
2677 #[serde(flatten)]
2678 pub extra: std::collections::HashMap<String, serde_json::Value>,
2679}
2680
2681#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2682pub struct Group {
2683 pub id: String,
2684 pub r#type: GroupType,
2685 #[serde(default, skip_serializing_if = "Option::is_none")]
2686 pub name: Option<String>,
2687 #[serde(default, skip_serializing_if = "Option::is_none")]
2688 pub group_type: Option<GroupGroupType>,
2689 #[serde(default, skip_serializing_if = "Option::is_none")]
2690 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2691 #[serde(default, skip_serializing_if = "Option::is_none")]
2692 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
2693}
2694
2695#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2696pub struct GroupBase {
2697 pub id: String,
2698 pub r#type: GroupType,
2699}
2700
2701#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2702pub struct GroupFull {
2703 pub id: String,
2704 pub r#type: GroupType,
2705 #[serde(default, skip_serializing_if = "Option::is_none")]
2706 pub name: Option<String>,
2707 #[serde(default, skip_serializing_if = "Option::is_none")]
2708 pub group_type: Option<GroupGroupType>,
2709 #[serde(default, skip_serializing_if = "Option::is_none")]
2710 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2711 #[serde(default, skip_serializing_if = "Option::is_none")]
2712 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
2713 #[serde(default, skip_serializing_if = "Option::is_none")]
2714 pub provenance: Option<String>,
2715 #[serde(default, skip_serializing_if = "Option::is_none")]
2716 pub external_sync_identifier: Option<String>,
2717 #[serde(default, skip_serializing_if = "Option::is_none")]
2718 pub description: Option<String>,
2719 #[serde(default, skip_serializing_if = "Option::is_none")]
2720 pub invitability_level: Option<GroupFullInvitabilityLevel>,
2721 #[serde(default, skip_serializing_if = "Option::is_none")]
2722 pub member_viewability_level: Option<GroupFullInvitabilityLevel>,
2723 #[serde(default, skip_serializing_if = "Option::is_none")]
2724 pub permissions: Option<GroupFullPermissions>,
2725}
2726
2727#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2728pub struct GroupMini {
2729 pub id: String,
2730 pub r#type: GroupType,
2731 #[serde(default, skip_serializing_if = "Option::is_none")]
2732 pub name: Option<String>,
2733 #[serde(default, skip_serializing_if = "Option::is_none")]
2734 pub group_type: Option<GroupGroupType>,
2735}
2736
2737#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2738pub struct GroupMembership {
2739 #[serde(default, skip_serializing_if = "Option::is_none")]
2740 pub id: Option<String>,
2741 #[serde(default, skip_serializing_if = "Option::is_none")]
2742 pub r#type: Option<GroupMembershipType>,
2743 #[serde(default, skip_serializing_if = "Option::is_none")]
2744 pub user: Option<UserMini>,
2745 #[serde(default, skip_serializing_if = "Option::is_none")]
2746 pub group: Option<GroupMini>,
2747 #[serde(default, skip_serializing_if = "Option::is_none")]
2748 pub role: Option<GroupMembershipRole>,
2749 #[serde(default, skip_serializing_if = "Option::is_none")]
2750 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2751 #[serde(default, skip_serializing_if = "Option::is_none")]
2752 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
2753}
2754
2755#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2756pub struct GroupMemberships {
2757 #[serde(default, skip_serializing_if = "Option::is_none")]
2758 pub total_count: Option<i64>,
2759 #[serde(default, skip_serializing_if = "Option::is_none")]
2760 pub limit: Option<i64>,
2761 #[serde(default, skip_serializing_if = "Option::is_none")]
2762 pub offset: Option<i64>,
2763 #[serde(default, skip_serializing_if = "Option::is_none")]
2764 pub order: Option<Vec<CollectionsOrder>>,
2765 #[serde(default, skip_serializing_if = "Option::is_none")]
2766 pub entries: Option<Vec<GroupMembership>>,
2767}
2768
2769#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2770pub struct Groups {
2771 #[serde(default, skip_serializing_if = "Option::is_none")]
2772 pub total_count: Option<i64>,
2773 #[serde(default, skip_serializing_if = "Option::is_none")]
2774 pub limit: Option<i64>,
2775 #[serde(default, skip_serializing_if = "Option::is_none")]
2776 pub offset: Option<i64>,
2777 #[serde(default, skip_serializing_if = "Option::is_none")]
2778 pub order: Option<Vec<CollectionsOrder>>,
2779 #[serde(default, skip_serializing_if = "Option::is_none")]
2780 pub entries: Option<Vec<GroupFull>>,
2781}
2782
2783#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2784pub struct IntegrationMapping {
2785 pub id: String,
2786 pub r#type: IntegrationMappingType,
2787 #[serde(default, skip_serializing_if = "Option::is_none")]
2788 pub integration_type: Option<IntegrationMappingIntegrationType>,
2789 #[serde(default, skip_serializing_if = "Option::is_none")]
2790 pub is_manually_created: Option<bool>,
2791 #[serde(default, skip_serializing_if = "Option::is_none")]
2792 pub options: Option<IntegrationMappingSlackOptions>,
2793 #[serde(default, skip_serializing_if = "Option::is_none")]
2794 pub created_by: Option<UserIntegrationMappings>,
2795 #[serde(default, skip_serializing_if = "Option::is_none")]
2796 pub modified_by: Option<UserIntegrationMappings>,
2797 pub partner_item: IntegrationMappingPartnerItemSlack,
2798 pub box_item: FolderMini,
2799 #[serde(default, skip_serializing_if = "Option::is_none")]
2800 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2801 #[serde(default, skip_serializing_if = "Option::is_none")]
2802 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
2803}
2804
2805#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2806pub struct IntegrationMappingBase {
2807 pub id: String,
2808 pub r#type: IntegrationMappingType,
2809}
2810
2811#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2812pub struct IntegrationMappingBoxItemSlack {
2813 pub r#type: FolderType,
2814 pub id: String,
2815}
2816
2817#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2818pub struct IntegrationMappingPartnerItemSlack {
2819 pub r#type: IntegrationMappingPartnerItemSlackType,
2820 pub id: String,
2821 #[serde(
2822 default,
2823 skip_serializing_if = "Option::is_none",
2824 deserialize_with = "double_option"
2825 )]
2826 pub slack_workspace_id: Option<Option<String>>,
2827 #[serde(
2828 default,
2829 skip_serializing_if = "Option::is_none",
2830 deserialize_with = "double_option"
2831 )]
2832 pub slack_org_id: Option<Option<String>>,
2833}
2834
2835#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2836pub struct IntegrationMappingPartnerItemTeams {
2837 pub r#type: IntegrationMappingPartnerItemTeamsType,
2838 pub id: String,
2839 pub tenant_id: String,
2840}
2841
2842#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2843pub struct IntegrationMappingPartnerItemTeamsCreateRequest {
2844 pub r#type: IntegrationMappingPartnerItemTeamsType,
2845 pub id: String,
2846 pub tenant_id: String,
2847 pub team_id: String,
2848}
2849
2850#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2851pub struct IntegrationMappings {
2852 #[serde(default, skip_serializing_if = "Option::is_none")]
2853 pub limit: Option<i64>,
2854 #[serde(
2855 default,
2856 skip_serializing_if = "Option::is_none",
2857 deserialize_with = "double_option"
2858 )]
2859 pub next_marker: Option<Option<String>>,
2860 #[serde(default, skip_serializing_if = "Option::is_none")]
2861 pub entries: Option<Vec<IntegrationMapping>>,
2862}
2863
2864#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2865pub struct IntegrationMappingSlackCreateRequest {
2866 pub partner_item: IntegrationMappingPartnerItemSlack,
2867 pub box_item: IntegrationMappingBoxItemSlack,
2868 #[serde(default, skip_serializing_if = "Option::is_none")]
2869 pub options: Option<IntegrationMappingSlackOptions>,
2870}
2871
2872#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2873pub struct IntegrationMappingSlackOptions {
2874 #[serde(default, skip_serializing_if = "Option::is_none")]
2875 pub is_access_management_disabled: Option<bool>,
2876}
2877
2878#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2879pub struct IntegrationMappingsTeams {
2880 #[serde(default, skip_serializing_if = "Option::is_none")]
2881 pub entries: Option<Vec<IntegrationMappingTeams>>,
2882}
2883
2884#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2885pub struct IntegrationMappingTeams {
2886 pub id: String,
2887 pub r#type: IntegrationMappingType,
2888 #[serde(default, skip_serializing_if = "Option::is_none")]
2889 pub integration_type: Option<IntegrationMappingTeamsIntegrationType>,
2890 #[serde(default, skip_serializing_if = "Option::is_none")]
2891 pub is_overridden_by_manual_mapping: Option<bool>,
2892 pub partner_item: IntegrationMappingPartnerItemTeams,
2893 pub box_item: FolderReference,
2894 #[serde(default, skip_serializing_if = "Option::is_none")]
2895 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2896 #[serde(default, skip_serializing_if = "Option::is_none")]
2897 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
2898}
2899
2900#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2901pub struct IntegrationMappingTeamsCreateRequest {
2902 pub partner_item: IntegrationMappingPartnerItemTeamsCreateRequest,
2903 pub box_item: FolderReference,
2904}
2905
2906#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2907pub struct Invite {
2908 pub id: String,
2909 pub r#type: InviteType,
2910 #[serde(default, skip_serializing_if = "Option::is_none")]
2911 pub invited_to: Option<CollaborationAllowlistEntryEnterprise>,
2912 #[serde(default, skip_serializing_if = "Option::is_none")]
2913 pub actionable_by: Option<UserMini>,
2914 #[serde(default, skip_serializing_if = "Option::is_none")]
2915 pub invited_by: Option<UserMini>,
2916 #[serde(default, skip_serializing_if = "Option::is_none")]
2917 pub status: Option<String>,
2918 #[serde(default, skip_serializing_if = "Option::is_none")]
2919 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
2920 #[serde(default, skip_serializing_if = "Option::is_none")]
2921 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
2922}
2923
2924#[derive(Clone, Debug, PartialEq)]
2925pub enum Item {
2926 File(FileFull),
2927 Folder(FolderMini),
2928 WebLink(WebLink),
2929 Unknown(serde_json::Value),
2931}
2932
2933impl Default for Item {
2934 fn default() -> Self {
2935 Self::Unknown(Default::default())
2936 }
2937}
2938
2939impl serde::Serialize for Item {
2940 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
2941 match self {
2942 Self::File(inner) => inner.serialize(serializer),
2943 Self::Folder(inner) => inner.serialize(serializer),
2944 Self::WebLink(inner) => inner.serialize(serializer),
2945 Self::Unknown(inner) => inner.serialize(serializer),
2946 }
2947 }
2948}
2949
2950impl<'de> serde::Deserialize<'de> for Item {
2951 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
2952 let value = serde_json::Value::deserialize(deserializer)?;
2953 let tag = value
2954 .get("type")
2955 .and_then(serde_json::Value::as_str)
2956 .map(str::to_owned);
2957 match tag.as_deref() {
2958 Some("file") => Ok(Self::File(
2959 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
2960 )),
2961 Some("folder") => Ok(Self::Folder(
2962 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
2963 )),
2964 Some("web_link") => Ok(Self::WebLink(
2965 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
2966 )),
2967 _ => Ok(Self::Unknown(value)),
2968 }
2969 }
2970}
2971
2972#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2973pub struct Items {
2974 #[serde(default, skip_serializing_if = "Option::is_none")]
2975 pub limit: Option<i64>,
2976 #[serde(
2977 default,
2978 skip_serializing_if = "Option::is_none",
2979 deserialize_with = "double_option"
2980 )]
2981 pub next_marker: Option<Option<String>>,
2982 #[serde(
2983 default,
2984 skip_serializing_if = "Option::is_none",
2985 deserialize_with = "double_option"
2986 )]
2987 pub prev_marker: Option<Option<String>>,
2988 #[serde(default, skip_serializing_if = "Option::is_none")]
2989 pub total_count: Option<i64>,
2990 #[serde(default, skip_serializing_if = "Option::is_none")]
2991 pub offset: Option<i64>,
2992 #[serde(default, skip_serializing_if = "Option::is_none")]
2993 pub order: Option<Vec<CollectionsOrder>>,
2994 #[serde(default, skip_serializing_if = "Option::is_none")]
2995 pub entries: Option<Vec<Item>>,
2996}
2997
2998#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
2999pub struct ItemsOffsetPaginated {
3000 #[serde(default, skip_serializing_if = "Option::is_none")]
3001 pub total_count: Option<i64>,
3002 #[serde(default, skip_serializing_if = "Option::is_none")]
3003 pub limit: Option<i64>,
3004 #[serde(default, skip_serializing_if = "Option::is_none")]
3005 pub offset: Option<i64>,
3006 #[serde(default, skip_serializing_if = "Option::is_none")]
3007 pub order: Option<Vec<CollectionsOrder>>,
3008 #[serde(default, skip_serializing_if = "Option::is_none")]
3009 pub entries: Option<Vec<Item>>,
3010}
3011
3012#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3013pub struct KeywordSkillCard {
3014 #[serde(default, skip_serializing_if = "Option::is_none")]
3015 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3016 pub r#type: KeywordSkillCardType,
3017 pub skill_card_type: KeywordSkillCardSkillCardType,
3018 #[serde(default, skip_serializing_if = "Option::is_none")]
3019 pub skill_card_title: Option<KeywordSkillCardSkillCardTitle>,
3020 pub skill: KeywordSkillCardSkill,
3021 pub invocation: KeywordSkillCardInvocation,
3022 pub entries: Vec<KeywordSkillCardEntries>,
3023}
3024
3025#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3026pub struct LegalHoldPolicies {
3027 #[serde(default, skip_serializing_if = "Option::is_none")]
3028 pub limit: Option<i64>,
3029 #[serde(
3030 default,
3031 skip_serializing_if = "Option::is_none",
3032 deserialize_with = "double_option"
3033 )]
3034 pub next_marker: Option<Option<String>>,
3035 #[serde(
3036 default,
3037 skip_serializing_if = "Option::is_none",
3038 deserialize_with = "double_option"
3039 )]
3040 pub prev_marker: Option<Option<String>>,
3041 #[serde(default, skip_serializing_if = "Option::is_none")]
3042 pub entries: Option<Vec<LegalHoldPolicy>>,
3043}
3044
3045#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3046pub struct LegalHoldPolicy {
3047 pub id: String,
3048 pub r#type: LegalHoldPolicyType,
3049 #[serde(default, skip_serializing_if = "Option::is_none")]
3050 pub policy_name: Option<String>,
3051 #[serde(default, skip_serializing_if = "Option::is_none")]
3052 pub description: Option<String>,
3053 #[serde(default, skip_serializing_if = "Option::is_none")]
3054 pub status: Option<LegalHoldPolicyStatus>,
3055 #[serde(default, skip_serializing_if = "Option::is_none")]
3056 pub assignment_counts: Option<LegalHoldPolicyAssignmentCounts>,
3057 #[serde(default, skip_serializing_if = "Option::is_none")]
3058 pub created_by: Option<UserMini>,
3059 #[serde(default, skip_serializing_if = "Option::is_none")]
3060 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3061 #[serde(default, skip_serializing_if = "Option::is_none")]
3062 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
3063 #[serde(default, skip_serializing_if = "Option::is_none")]
3064 pub deleted_at: Option<chrono::DateTime<chrono::Utc>>,
3065 #[serde(default, skip_serializing_if = "Option::is_none")]
3066 pub filter_started_at: Option<chrono::DateTime<chrono::Utc>>,
3067 #[serde(default, skip_serializing_if = "Option::is_none")]
3068 pub filter_ended_at: Option<chrono::DateTime<chrono::Utc>>,
3069 #[serde(default, skip_serializing_if = "Option::is_none")]
3070 pub release_notes: Option<String>,
3071}
3072
3073#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3074pub struct LegalHoldPolicyMini {
3075 pub id: String,
3076 pub r#type: LegalHoldPolicyType,
3077}
3078
3079#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3080pub struct LegalHoldPolicyAssignedItem {
3081 pub r#type: LegalHoldPolicyAssignedItemType,
3082 pub id: String,
3083}
3084
3085#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3086pub struct LegalHoldPolicyAssignment {
3087 #[serde(default, skip_serializing_if = "Option::is_none")]
3088 pub id: Option<String>,
3089 #[serde(default, skip_serializing_if = "Option::is_none")]
3090 pub r#type: Option<LegalHoldPolicyAssignmentType>,
3091 #[serde(default, skip_serializing_if = "Option::is_none")]
3092 pub legal_hold_policy: Option<LegalHoldPolicyMini>,
3093 #[serde(default, skip_serializing_if = "Option::is_none")]
3094 pub assigned_to: Option<LegalHoldPolicyAssignedItem>,
3095 #[serde(default, skip_serializing_if = "Option::is_none")]
3096 pub assigned_by: Option<UserMini>,
3097 #[serde(default, skip_serializing_if = "Option::is_none")]
3098 pub assigned_at: Option<chrono::DateTime<chrono::Utc>>,
3099 #[serde(default, skip_serializing_if = "Option::is_none")]
3100 pub deleted_at: Option<chrono::DateTime<chrono::Utc>>,
3101}
3102
3103#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3104pub struct LegalHoldPolicyAssignmentBase {
3105 #[serde(default, skip_serializing_if = "Option::is_none")]
3106 pub id: Option<String>,
3107 #[serde(default, skip_serializing_if = "Option::is_none")]
3108 pub r#type: Option<LegalHoldPolicyAssignmentType>,
3109}
3110
3111#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3112pub struct LegalHoldPolicyAssignments {
3113 #[serde(default, skip_serializing_if = "Option::is_none")]
3114 pub limit: Option<i64>,
3115 #[serde(
3116 default,
3117 skip_serializing_if = "Option::is_none",
3118 deserialize_with = "double_option"
3119 )]
3120 pub next_marker: Option<Option<String>>,
3121 #[serde(
3122 default,
3123 skip_serializing_if = "Option::is_none",
3124 deserialize_with = "double_option"
3125 )]
3126 pub prev_marker: Option<Option<String>>,
3127 #[serde(default, skip_serializing_if = "Option::is_none")]
3128 pub entries: Option<Vec<LegalHoldPolicyAssignment>>,
3129}
3130
3131pub type Metadata = MetadataBase;
3132
3133#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3134pub struct MetadataBase {
3135 #[serde(rename = "$parent", default, skip_serializing_if = "Option::is_none")]
3136 pub parent: Option<String>,
3137 #[serde(rename = "$template", default, skip_serializing_if = "Option::is_none")]
3138 pub template: Option<String>,
3139 #[serde(rename = "$scope", default, skip_serializing_if = "Option::is_none")]
3140 pub scope: Option<String>,
3141 #[serde(rename = "$version", default, skip_serializing_if = "Option::is_none")]
3142 pub version: Option<i64>,
3143}
3144
3145#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3146pub struct MetadataFull {
3147 #[serde(rename = "$parent", default, skip_serializing_if = "Option::is_none")]
3148 pub parent: Option<String>,
3149 #[serde(rename = "$template", default, skip_serializing_if = "Option::is_none")]
3150 pub template: Option<String>,
3151 #[serde(rename = "$scope", default, skip_serializing_if = "Option::is_none")]
3152 pub scope: Option<String>,
3153 #[serde(rename = "$version", default, skip_serializing_if = "Option::is_none")]
3154 pub version: Option<i64>,
3155 #[serde(rename = "$canEdit", default, skip_serializing_if = "Option::is_none")]
3156 pub can_edit: Option<bool>,
3157 #[serde(rename = "$id", default, skip_serializing_if = "Option::is_none")]
3158 pub id: Option<String>,
3159 #[serde(rename = "$type", default, skip_serializing_if = "Option::is_none")]
3160 pub r#type: Option<String>,
3161 #[serde(
3162 rename = "$typeVersion",
3163 default,
3164 skip_serializing_if = "Option::is_none"
3165 )]
3166 pub type_version: Option<i64>,
3167}
3168
3169#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3170pub struct MetadataCascadePolicies {
3171 #[serde(default, skip_serializing_if = "Option::is_none")]
3172 pub limit: Option<i64>,
3173 #[serde(
3174 default,
3175 skip_serializing_if = "Option::is_none",
3176 deserialize_with = "double_option"
3177 )]
3178 pub next_marker: Option<Option<String>>,
3179 #[serde(
3180 default,
3181 skip_serializing_if = "Option::is_none",
3182 deserialize_with = "double_option"
3183 )]
3184 pub prev_marker: Option<Option<String>>,
3185 #[serde(default, skip_serializing_if = "Option::is_none")]
3186 pub entries: Option<Vec<MetadataCascadePolicy>>,
3187}
3188
3189#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3190pub struct MetadataCascadePolicy {
3191 pub id: String,
3192 pub r#type: MetadataCascadePolicyType,
3193 #[serde(default, skip_serializing_if = "Option::is_none")]
3194 pub owner_enterprise: Option<MetadataCascadePolicyOwnerEnterprise>,
3195 #[serde(default, skip_serializing_if = "Option::is_none")]
3196 pub parent: Option<MetadataCascadePolicyParent>,
3197 #[serde(default, skip_serializing_if = "Option::is_none")]
3198 pub scope: Option<String>,
3199 #[serde(
3200 rename = "templateKey",
3201 default,
3202 skip_serializing_if = "Option::is_none"
3203 )]
3204 pub template_key: Option<String>,
3205}
3206
3207#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3208pub struct MetadataError {
3209 #[serde(default, skip_serializing_if = "Option::is_none")]
3210 pub code: Option<String>,
3211 #[serde(default, skip_serializing_if = "Option::is_none")]
3212 pub message: Option<String>,
3213 #[serde(default, skip_serializing_if = "Option::is_none")]
3214 pub request_id: Option<String>,
3215}
3216
3217#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3218pub struct MetadataFieldFilterDateRange {
3219 #[serde(default, skip_serializing_if = "Option::is_none")]
3220 pub lt: Option<chrono::DateTime<chrono::Utc>>,
3221 #[serde(default, skip_serializing_if = "Option::is_none")]
3222 pub gt: Option<chrono::DateTime<chrono::Utc>>,
3223}
3224
3225#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3226pub struct MetadataFieldFilterFloatRange {
3227 #[serde(default, skip_serializing_if = "Option::is_none")]
3228 pub lt: Option<f64>,
3229 #[serde(default, skip_serializing_if = "Option::is_none")]
3230 pub gt: Option<f64>,
3231}
3232
3233#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3234pub struct MetadataFilter {
3235 #[serde(default, skip_serializing_if = "Option::is_none")]
3236 pub scope: Option<MetadataFilterScope>,
3237 #[serde(
3238 rename = "templateKey",
3239 default,
3240 skip_serializing_if = "Option::is_none"
3241 )]
3242 pub template_key: Option<String>,
3243 #[serde(default, skip_serializing_if = "Option::is_none")]
3244 pub filters: Option<std::collections::HashMap<String, MetadataFilterValue>>,
3245}
3246
3247#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3248#[serde(transparent)]
3249pub struct MetadataFilterValue(pub serde_json::Value);
3250
3251#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3252#[serde(transparent)]
3253pub struct MetadataInstanceValue(pub serde_json::Value);
3254
3255#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3256pub struct MetadataQuery {
3257 pub from: String,
3258 #[serde(default, skip_serializing_if = "Option::is_none")]
3259 pub query: Option<String>,
3260 #[serde(default, skip_serializing_if = "Option::is_none")]
3261 pub query_params: Option<std::collections::HashMap<String, serde_json::Value>>,
3262 pub ancestor_folder_id: String,
3263 #[serde(default, skip_serializing_if = "Option::is_none")]
3264 pub order_by: Option<Vec<MetadataQueryOrderBy>>,
3265 #[serde(default, skip_serializing_if = "Option::is_none")]
3266 pub limit: Option<i64>,
3267 #[serde(default, skip_serializing_if = "Option::is_none")]
3268 pub marker: Option<String>,
3269 #[serde(default, skip_serializing_if = "Option::is_none")]
3270 pub fields: Option<Vec<String>>,
3271}
3272
3273#[derive(Clone, Debug, PartialEq)]
3274pub enum MetadataQueryResultItem {
3275 File(FileFull),
3276 Folder(FolderFull),
3277 Unknown(serde_json::Value),
3279}
3280
3281impl Default for MetadataQueryResultItem {
3282 fn default() -> Self {
3283 Self::Unknown(Default::default())
3284 }
3285}
3286
3287impl serde::Serialize for MetadataQueryResultItem {
3288 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3289 match self {
3290 Self::File(inner) => inner.serialize(serializer),
3291 Self::Folder(inner) => inner.serialize(serializer),
3292 Self::Unknown(inner) => inner.serialize(serializer),
3293 }
3294 }
3295}
3296
3297impl<'de> serde::Deserialize<'de> for MetadataQueryResultItem {
3298 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3299 let value = serde_json::Value::deserialize(deserializer)?;
3300 let tag = value
3301 .get("type")
3302 .and_then(serde_json::Value::as_str)
3303 .map(str::to_owned);
3304 match tag.as_deref() {
3305 Some("file") => Ok(Self::File(
3306 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
3307 )),
3308 Some("folder") => Ok(Self::Folder(
3309 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
3310 )),
3311 _ => Ok(Self::Unknown(value)),
3312 }
3313 }
3314}
3315
3316#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3317pub struct MetadataQueryResults {
3318 #[serde(default, skip_serializing_if = "Option::is_none")]
3319 pub entries: Option<Vec<MetadataQueryResultItem>>,
3320 #[serde(default, skip_serializing_if = "Option::is_none")]
3321 pub limit: Option<i64>,
3322 #[serde(default, skip_serializing_if = "Option::is_none")]
3323 pub next_marker: Option<String>,
3324}
3325
3326#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3327pub struct Metadatas {
3328 #[serde(default, skip_serializing_if = "Option::is_none")]
3329 pub entries: Option<Vec<Metadata>>,
3330 #[serde(default, skip_serializing_if = "Option::is_none")]
3331 pub limit: Option<i64>,
3332}
3333
3334#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3335pub struct MetadataTaxonomies {
3336 #[serde(default, skip_serializing_if = "Option::is_none")]
3337 pub limit: Option<i64>,
3338 #[serde(
3339 default,
3340 skip_serializing_if = "Option::is_none",
3341 deserialize_with = "double_option"
3342 )]
3343 pub next_marker: Option<Option<String>>,
3344 #[serde(
3345 default,
3346 skip_serializing_if = "Option::is_none",
3347 deserialize_with = "double_option"
3348 )]
3349 pub prev_marker: Option<Option<String>>,
3350 #[serde(default, skip_serializing_if = "Option::is_none")]
3351 pub entries: Option<Vec<MetadataTaxonomy>>,
3352}
3353
3354#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3355pub struct MetadataTaxonomy {
3356 pub id: String,
3357 #[serde(default, skip_serializing_if = "Option::is_none")]
3358 pub key: Option<String>,
3359 #[serde(rename = "displayName")]
3360 pub display_name: String,
3361 pub namespace: String,
3362 #[serde(default, skip_serializing_if = "Option::is_none")]
3363 pub levels: Option<Vec<MetadataTaxonomyLevel>>,
3364}
3365
3366#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3367pub struct MetadataTaxonomyAncestor {
3368 #[serde(default, skip_serializing_if = "Option::is_none")]
3369 pub id: Option<String>,
3370 #[serde(
3371 rename = "displayName",
3372 default,
3373 skip_serializing_if = "Option::is_none"
3374 )]
3375 pub display_name: Option<String>,
3376 #[serde(default, skip_serializing_if = "Option::is_none")]
3377 pub level: Option<i64>,
3378}
3379
3380#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3381pub struct MetadataTaxonomyLevel {
3382 #[serde(
3383 rename = "displayName",
3384 default,
3385 skip_serializing_if = "Option::is_none"
3386 )]
3387 pub display_name: Option<String>,
3388 #[serde(default, skip_serializing_if = "Option::is_none")]
3389 pub description: Option<String>,
3390 #[serde(default, skip_serializing_if = "Option::is_none")]
3391 pub level: Option<i64>,
3392}
3393
3394#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3395pub struct MetadataTaxonomyLevels {
3396 #[serde(default, skip_serializing_if = "Option::is_none")]
3397 pub entries: Option<Vec<MetadataTaxonomyLevel>>,
3398}
3399
3400#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3401pub struct MetadataTaxonomyNode {
3402 pub id: String,
3403 #[serde(rename = "displayName")]
3404 pub display_name: String,
3405 pub level: i64,
3406 #[serde(rename = "parentId", default, skip_serializing_if = "Option::is_none")]
3407 pub parent_id: Option<String>,
3408 #[serde(rename = "nodePath", default, skip_serializing_if = "Option::is_none")]
3409 pub node_path: Option<Vec<String>>,
3410 #[serde(default, skip_serializing_if = "Option::is_none")]
3411 pub ancestors: Option<Vec<MetadataTaxonomyAncestor>>,
3412}
3413
3414#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3415pub struct MetadataTaxonomyNodes {
3416 #[serde(default, skip_serializing_if = "Option::is_none")]
3417 pub limit: Option<i64>,
3418 #[serde(
3419 default,
3420 skip_serializing_if = "Option::is_none",
3421 deserialize_with = "double_option"
3422 )]
3423 pub next_marker: Option<Option<String>>,
3424 #[serde(
3425 default,
3426 skip_serializing_if = "Option::is_none",
3427 deserialize_with = "double_option"
3428 )]
3429 pub prev_marker: Option<Option<String>>,
3430 #[serde(default, skip_serializing_if = "Option::is_none")]
3431 pub entries: Option<Vec<MetadataTaxonomyNode>>,
3432}
3433
3434#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3435pub struct MetadataTemplate {
3436 pub id: String,
3437 pub r#type: MetadataTemplateType,
3438 #[serde(default, skip_serializing_if = "Option::is_none")]
3439 pub scope: Option<String>,
3440 #[serde(
3441 rename = "templateKey",
3442 default,
3443 skip_serializing_if = "Option::is_none"
3444 )]
3445 pub template_key: Option<String>,
3446 #[serde(
3447 rename = "displayName",
3448 default,
3449 skip_serializing_if = "Option::is_none"
3450 )]
3451 pub display_name: Option<String>,
3452 #[serde(default, skip_serializing_if = "Option::is_none")]
3453 pub hidden: Option<bool>,
3454 #[serde(default, skip_serializing_if = "Option::is_none")]
3455 pub fields: Option<Vec<MetadataTemplateFields>>,
3456 #[serde(
3457 rename = "copyInstanceOnItemCopy",
3458 default,
3459 skip_serializing_if = "Option::is_none"
3460 )]
3461 pub copy_instance_on_item_copy: Option<bool>,
3462}
3463
3464#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3465pub struct MetadataTemplates {
3466 #[serde(default, skip_serializing_if = "Option::is_none")]
3467 pub limit: Option<i64>,
3468 #[serde(
3469 default,
3470 skip_serializing_if = "Option::is_none",
3471 deserialize_with = "double_option"
3472 )]
3473 pub next_marker: Option<Option<String>>,
3474 #[serde(
3475 default,
3476 skip_serializing_if = "Option::is_none",
3477 deserialize_with = "double_option"
3478 )]
3479 pub prev_marker: Option<Option<String>>,
3480 #[serde(default, skip_serializing_if = "Option::is_none")]
3481 pub entries: Option<Vec<MetadataTemplate>>,
3482}
3483
3484#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3485pub struct OAuth2Error {
3486 #[serde(default, skip_serializing_if = "Option::is_none")]
3487 pub error: Option<String>,
3488 #[serde(default, skip_serializing_if = "Option::is_none")]
3489 pub error_description: Option<String>,
3490}
3491
3492#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3493pub struct Outcome {
3494 pub id: String,
3495 #[serde(default, skip_serializing_if = "Option::is_none")]
3496 pub collaborators: Option<CollaboratorVariable>,
3497 #[serde(default, skip_serializing_if = "Option::is_none")]
3498 pub completion_rule: Option<CompletionRuleVariable>,
3499 #[serde(default, skip_serializing_if = "Option::is_none")]
3500 pub file_collaborator_role: Option<RoleVariable>,
3501 #[serde(default, skip_serializing_if = "Option::is_none")]
3502 pub task_collaborators: Option<CollaboratorVariable>,
3503 #[serde(default, skip_serializing_if = "Option::is_none")]
3504 pub role: Option<RoleVariable>,
3505}
3506
3507#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3508pub struct PostOAuth2Revoke {
3509 #[serde(default, skip_serializing_if = "Option::is_none")]
3510 pub client_id: Option<String>,
3511 #[serde(default, skip_serializing_if = "Option::is_none")]
3512 pub client_secret: Option<String>,
3513 #[serde(default, skip_serializing_if = "Option::is_none")]
3514 pub token: Option<String>,
3515}
3516
3517#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3518pub struct PostOAuth2Token {
3519 pub grant_type: PostOAuth2TokenGrantType,
3520 #[serde(default, skip_serializing_if = "Option::is_none")]
3521 pub client_id: Option<String>,
3522 #[serde(default, skip_serializing_if = "Option::is_none")]
3523 pub client_secret: Option<String>,
3524 #[serde(default, skip_serializing_if = "Option::is_none")]
3525 pub code: Option<String>,
3526 #[serde(default, skip_serializing_if = "Option::is_none")]
3527 pub refresh_token: Option<String>,
3528 #[serde(default, skip_serializing_if = "Option::is_none")]
3529 pub assertion: Option<String>,
3530 #[serde(default, skip_serializing_if = "Option::is_none")]
3531 pub subject_token: Option<String>,
3532 #[serde(default, skip_serializing_if = "Option::is_none")]
3533 pub subject_token_type: Option<AccessTokenIssuedTokenType>,
3534 #[serde(default, skip_serializing_if = "Option::is_none")]
3535 pub actor_token: Option<String>,
3536 #[serde(default, skip_serializing_if = "Option::is_none")]
3537 pub actor_token_type: Option<PostOAuth2TokenActorTokenType>,
3538 #[serde(default, skip_serializing_if = "Option::is_none")]
3539 pub scope: Option<String>,
3540 #[serde(default, skip_serializing_if = "Option::is_none")]
3541 pub resource: Option<String>,
3542 #[serde(default, skip_serializing_if = "Option::is_none")]
3543 pub box_subject_type: Option<PostOAuth2TokenBoxSubjectType>,
3544 #[serde(default, skip_serializing_if = "Option::is_none")]
3545 pub box_subject_id: Option<String>,
3546 #[serde(default, skip_serializing_if = "Option::is_none")]
3547 pub box_shared_link: Option<String>,
3548}
3549
3550#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3551pub struct PostOAuth2TokenRefreshAccessToken {
3552 pub grant_type: PostOAuth2TokenRefreshAccessTokenGrantType,
3553 pub client_id: String,
3554 pub client_secret: String,
3555 pub refresh_token: String,
3556}
3557
3558#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3559pub struct RealtimeServer {
3560 #[serde(default, skip_serializing_if = "Option::is_none")]
3561 pub r#type: Option<String>,
3562 #[serde(default, skip_serializing_if = "Option::is_none")]
3563 pub url: Option<String>,
3564 #[serde(default, skip_serializing_if = "Option::is_none")]
3565 pub ttl: Option<String>,
3566 #[serde(default, skip_serializing_if = "Option::is_none")]
3567 pub max_retries: Option<String>,
3568 #[serde(default, skip_serializing_if = "Option::is_none")]
3569 pub retry_timeout: Option<i64>,
3570}
3571
3572#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3573pub struct RealtimeServers {
3574 #[serde(default, skip_serializing_if = "Option::is_none")]
3575 pub chunk_size: Option<i64>,
3576 #[serde(default, skip_serializing_if = "Option::is_none")]
3577 pub entries: Option<Vec<RealtimeServer>>,
3578}
3579
3580#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3581pub struct RecentItem {
3582 #[serde(default, skip_serializing_if = "Option::is_none")]
3583 pub r#type: Option<String>,
3584 #[serde(default, skip_serializing_if = "Option::is_none")]
3585 pub item: Option<RecentItemResource>,
3586 #[serde(default, skip_serializing_if = "Option::is_none")]
3587 pub interaction_type: Option<RecentItemInteractionType>,
3588 #[serde(default, skip_serializing_if = "Option::is_none")]
3589 pub interacted_at: Option<chrono::DateTime<chrono::Utc>>,
3590 #[serde(default, skip_serializing_if = "Option::is_none")]
3591 pub interaction_shared_link: Option<String>,
3592}
3593
3594#[derive(Clone, Debug, PartialEq)]
3595pub enum RecentItemResource {
3596 File(FileFull),
3597 Folder(FolderFull),
3598 WebLink(WebLink),
3599 Unknown(serde_json::Value),
3601}
3602
3603impl Default for RecentItemResource {
3604 fn default() -> Self {
3605 Self::Unknown(Default::default())
3606 }
3607}
3608
3609impl serde::Serialize for RecentItemResource {
3610 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3611 match self {
3612 Self::File(inner) => inner.serialize(serializer),
3613 Self::Folder(inner) => inner.serialize(serializer),
3614 Self::WebLink(inner) => inner.serialize(serializer),
3615 Self::Unknown(inner) => inner.serialize(serializer),
3616 }
3617 }
3618}
3619
3620impl<'de> serde::Deserialize<'de> for RecentItemResource {
3621 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3622 let value = serde_json::Value::deserialize(deserializer)?;
3623 let tag = value
3624 .get("type")
3625 .and_then(serde_json::Value::as_str)
3626 .map(str::to_owned);
3627 match tag.as_deref() {
3628 Some("file") => Ok(Self::File(
3629 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
3630 )),
3631 Some("folder") => Ok(Self::Folder(
3632 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
3633 )),
3634 Some("web_link") => Ok(Self::WebLink(
3635 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
3636 )),
3637 _ => Ok(Self::Unknown(value)),
3638 }
3639 }
3640}
3641
3642#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3643pub struct RecentItems {
3644 #[serde(default, skip_serializing_if = "Option::is_none")]
3645 pub limit: Option<i64>,
3646 #[serde(
3647 default,
3648 skip_serializing_if = "Option::is_none",
3649 deserialize_with = "double_option"
3650 )]
3651 pub next_marker: Option<Option<String>>,
3652 #[serde(
3653 default,
3654 skip_serializing_if = "Option::is_none",
3655 deserialize_with = "double_option"
3656 )]
3657 pub prev_marker: Option<Option<String>>,
3658 #[serde(default, skip_serializing_if = "Option::is_none")]
3659 pub entries: Option<Vec<RecentItem>>,
3660}
3661
3662#[derive(Clone, Debug, PartialEq)]
3663pub enum Resource {
3664 Folder(FolderMini),
3665 File(FileMini),
3666 Unknown(serde_json::Value),
3668}
3669
3670impl Default for Resource {
3671 fn default() -> Self {
3672 Self::Unknown(Default::default())
3673 }
3674}
3675
3676impl serde::Serialize for Resource {
3677 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3678 match self {
3679 Self::Folder(inner) => inner.serialize(serializer),
3680 Self::File(inner) => inner.serialize(serializer),
3681 Self::Unknown(inner) => inner.serialize(serializer),
3682 }
3683 }
3684}
3685
3686impl<'de> serde::Deserialize<'de> for Resource {
3687 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3688 let value = serde_json::Value::deserialize(deserializer)?;
3689 let tag = value
3690 .get("type")
3691 .and_then(serde_json::Value::as_str)
3692 .map(str::to_owned);
3693 match tag.as_deref() {
3694 Some("folder") => Ok(Self::Folder(
3695 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
3696 )),
3697 Some("file") => Ok(Self::File(
3698 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
3699 )),
3700 _ => Ok(Self::Unknown(value)),
3701 }
3702 }
3703}
3704
3705#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3706pub struct ResourceScope {
3707 #[serde(default, skip_serializing_if = "Option::is_none")]
3708 pub scope: Option<ResourceScopeScope>,
3709 #[serde(default, skip_serializing_if = "Option::is_none")]
3710 pub object: Option<Resource>,
3711}
3712
3713#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3714pub struct RetentionPolicies {
3715 #[serde(default, skip_serializing_if = "Option::is_none")]
3716 pub entries: Option<Vec<RetentionPolicy>>,
3717 #[serde(default, skip_serializing_if = "Option::is_none")]
3718 pub limit: Option<i64>,
3719 #[serde(
3720 default,
3721 skip_serializing_if = "Option::is_none",
3722 deserialize_with = "double_option"
3723 )]
3724 pub next_marker: Option<Option<String>>,
3725}
3726
3727#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3728pub struct RetentionPolicy {
3729 pub id: String,
3730 pub r#type: RetentionPolicyType,
3731 #[serde(default, skip_serializing_if = "Option::is_none")]
3732 pub policy_name: Option<String>,
3733 #[serde(default, skip_serializing_if = "Option::is_none")]
3734 pub retention_length: Option<String>,
3735 #[serde(default, skip_serializing_if = "Option::is_none")]
3736 pub disposition_action: Option<RetentionPolicyDispositionAction>,
3737 #[serde(default, skip_serializing_if = "Option::is_none")]
3738 pub max_extension_length: Option<RetentionPolicyMaxExtensionLengthResponse>,
3739 #[serde(default, skip_serializing_if = "Option::is_none")]
3740 pub description: Option<String>,
3741 #[serde(default, skip_serializing_if = "Option::is_none")]
3742 pub policy_type: Option<RetentionPolicyPolicyType>,
3743 #[serde(default, skip_serializing_if = "Option::is_none")]
3744 pub retention_type: Option<RetentionPolicyRetentionType>,
3745 #[serde(default, skip_serializing_if = "Option::is_none")]
3746 pub status: Option<RetentionPolicyStatus>,
3747 #[serde(default, skip_serializing_if = "Option::is_none")]
3748 pub created_by: Option<UserMini>,
3749 #[serde(default, skip_serializing_if = "Option::is_none")]
3750 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
3751 #[serde(default, skip_serializing_if = "Option::is_none")]
3752 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
3753 #[serde(default, skip_serializing_if = "Option::is_none")]
3754 pub can_owner_extend_retention: Option<bool>,
3755 #[serde(default, skip_serializing_if = "Option::is_none")]
3756 pub are_owners_notified: Option<bool>,
3757 #[serde(default, skip_serializing_if = "Option::is_none")]
3758 pub custom_notification_recipients: Option<Vec<UserMini>>,
3759 #[serde(default, skip_serializing_if = "Option::is_none")]
3760 pub assignment_counts: Option<RetentionPolicyAssignmentCounts>,
3761}
3762
3763#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3764pub struct RetentionPolicyBase {
3765 pub id: String,
3766 pub r#type: RetentionPolicyType,
3767}
3768
3769#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3770pub struct RetentionPolicyMini {
3771 pub id: String,
3772 pub r#type: RetentionPolicyType,
3773 #[serde(default, skip_serializing_if = "Option::is_none")]
3774 pub policy_name: Option<String>,
3775 #[serde(default, skip_serializing_if = "Option::is_none")]
3776 pub retention_length: Option<String>,
3777 #[serde(default, skip_serializing_if = "Option::is_none")]
3778 pub disposition_action: Option<RetentionPolicyDispositionAction>,
3779 #[serde(default, skip_serializing_if = "Option::is_none")]
3780 pub max_extension_length: Option<RetentionPolicyMaxExtensionLengthResponse>,
3781}
3782
3783#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3784pub struct RetentionPolicyAssignment {
3785 pub id: String,
3786 pub r#type: RetentionPolicyAssignmentType,
3787 #[serde(default, skip_serializing_if = "Option::is_none")]
3788 pub retention_policy: Option<RetentionPolicyMini>,
3789 #[serde(default, skip_serializing_if = "Option::is_none")]
3790 pub assigned_to: Option<RetentionPolicyAssignmentAssignedTo>,
3791 #[serde(
3792 default,
3793 skip_serializing_if = "Option::is_none",
3794 deserialize_with = "double_option"
3795 )]
3796 pub filter_fields: Option<Option<Vec<RetentionPolicyAssignmentFilterFields>>>,
3797 #[serde(default, skip_serializing_if = "Option::is_none")]
3798 pub assigned_by: Option<UserMini>,
3799 #[serde(default, skip_serializing_if = "Option::is_none")]
3800 pub assigned_at: Option<chrono::DateTime<chrono::Utc>>,
3801 #[serde(default, skip_serializing_if = "Option::is_none")]
3802 pub start_date_field: Option<String>,
3803}
3804
3805#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3806pub struct RetentionPolicyAssignments {
3807 #[serde(default, skip_serializing_if = "Option::is_none")]
3808 pub entries: Option<Vec<RetentionPolicyAssignment>>,
3809 #[serde(default, skip_serializing_if = "Option::is_none")]
3810 pub limit: Option<i64>,
3811 #[serde(
3812 default,
3813 skip_serializing_if = "Option::is_none",
3814 deserialize_with = "double_option"
3815 )]
3816 pub next_marker: Option<Option<String>>,
3817}
3818
3819#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3820#[serde(transparent)]
3821pub struct RetentionPolicyMaxExtensionLengthRequest(pub serde_json::Value);
3822
3823#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3824#[serde(transparent)]
3825pub struct RetentionPolicyMaxExtensionLengthResponse(pub serde_json::Value);
3826
3827#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3828pub struct RoleVariable {
3829 pub r#type: CollaboratorVariableType,
3830 pub variable_type: RoleVariableVariableType,
3831 pub variable_value: FileFullAllowedInviteeRoles,
3832}
3833
3834#[derive(Clone, Debug, PartialEq)]
3835pub enum SearchResultItem {
3836 File(FileFull),
3837 Folder(FolderFull),
3838 WebLink(WebLink),
3839 Unknown(serde_json::Value),
3841}
3842
3843impl Default for SearchResultItem {
3844 fn default() -> Self {
3845 Self::Unknown(Default::default())
3846 }
3847}
3848
3849impl serde::Serialize for SearchResultItem {
3850 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3851 match self {
3852 Self::File(inner) => inner.serialize(serializer),
3853 Self::Folder(inner) => inner.serialize(serializer),
3854 Self::WebLink(inner) => inner.serialize(serializer),
3855 Self::Unknown(inner) => inner.serialize(serializer),
3856 }
3857 }
3858}
3859
3860impl<'de> serde::Deserialize<'de> for SearchResultItem {
3861 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3862 let value = serde_json::Value::deserialize(deserializer)?;
3863 let tag = value
3864 .get("type")
3865 .and_then(serde_json::Value::as_str)
3866 .map(str::to_owned);
3867 match tag.as_deref() {
3868 Some("file") => Ok(Self::File(
3869 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
3870 )),
3871 Some("folder") => Ok(Self::Folder(
3872 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
3873 )),
3874 Some("web_link") => Ok(Self::WebLink(
3875 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
3876 )),
3877 _ => Ok(Self::Unknown(value)),
3878 }
3879 }
3880}
3881
3882#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3883pub struct SearchResults {
3884 #[serde(default, skip_serializing_if = "Option::is_none")]
3885 pub total_count: Option<i64>,
3886 #[serde(default, skip_serializing_if = "Option::is_none")]
3887 pub limit: Option<i64>,
3888 #[serde(default, skip_serializing_if = "Option::is_none")]
3889 pub offset: Option<i64>,
3890 pub r#type: SearchResultsType,
3891 #[serde(default, skip_serializing_if = "Option::is_none")]
3892 pub entries: Option<Vec<SearchResultItem>>,
3893}
3894
3895#[derive(Clone, Debug, PartialEq)]
3896pub enum SearchResultsResponse {
3897 SearchResultsItems(SearchResults),
3898 SearchResultsWithSharedLinks(SearchResultsWithSharedLinks),
3899 Unknown(serde_json::Value),
3901}
3902
3903impl Default for SearchResultsResponse {
3904 fn default() -> Self {
3905 Self::Unknown(Default::default())
3906 }
3907}
3908
3909impl serde::Serialize for SearchResultsResponse {
3910 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3911 match self {
3912 Self::SearchResultsItems(inner) => inner.serialize(serializer),
3913 Self::SearchResultsWithSharedLinks(inner) => inner.serialize(serializer),
3914 Self::Unknown(inner) => inner.serialize(serializer),
3915 }
3916 }
3917}
3918
3919impl<'de> serde::Deserialize<'de> for SearchResultsResponse {
3920 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3921 let value = serde_json::Value::deserialize(deserializer)?;
3922 let tag = value
3923 .get("type")
3924 .and_then(serde_json::Value::as_str)
3925 .map(str::to_owned);
3926 match tag.as_deref() {
3927 Some("search_results_items") => Ok(Self::SearchResultsItems(
3928 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
3929 )),
3930 Some("search_results_with_shared_links") => Ok(Self::SearchResultsWithSharedLinks(
3931 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
3932 )),
3933 _ => Ok(Self::Unknown(value)),
3934 }
3935 }
3936}
3937
3938#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3939pub struct SearchResultsWithSharedLinks {
3940 #[serde(default, skip_serializing_if = "Option::is_none")]
3941 pub total_count: Option<i64>,
3942 #[serde(default, skip_serializing_if = "Option::is_none")]
3943 pub limit: Option<i64>,
3944 #[serde(default, skip_serializing_if = "Option::is_none")]
3945 pub offset: Option<i64>,
3946 pub r#type: SearchResultsWithSharedLinksType,
3947 #[serde(default, skip_serializing_if = "Option::is_none")]
3948 pub entries: Option<Vec<SearchResultWithSharedLink>>,
3949}
3950
3951#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
3952pub struct SearchResultWithSharedLink {
3953 #[serde(default, skip_serializing_if = "Option::is_none")]
3954 pub accessible_via_shared_link: Option<String>,
3955 #[serde(default, skip_serializing_if = "Option::is_none")]
3956 pub item: Option<SearchResultWithSharedLinkItem>,
3957 #[serde(default, skip_serializing_if = "Option::is_none")]
3958 pub r#type: Option<String>,
3959}
3960
3961#[derive(Clone, Debug, PartialEq)]
3962pub enum SearchResultWithSharedLinkItem {
3963 File(FileFull),
3964 Folder(FolderFull),
3965 WebLink(WebLink),
3966 Unknown(serde_json::Value),
3968}
3969
3970impl Default for SearchResultWithSharedLinkItem {
3971 fn default() -> Self {
3972 Self::Unknown(Default::default())
3973 }
3974}
3975
3976impl serde::Serialize for SearchResultWithSharedLinkItem {
3977 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
3978 match self {
3979 Self::File(inner) => inner.serialize(serializer),
3980 Self::Folder(inner) => inner.serialize(serializer),
3981 Self::WebLink(inner) => inner.serialize(serializer),
3982 Self::Unknown(inner) => inner.serialize(serializer),
3983 }
3984 }
3985}
3986
3987impl<'de> serde::Deserialize<'de> for SearchResultWithSharedLinkItem {
3988 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
3989 let value = serde_json::Value::deserialize(deserializer)?;
3990 let tag = value
3991 .get("type")
3992 .and_then(serde_json::Value::as_str)
3993 .map(str::to_owned);
3994 match tag.as_deref() {
3995 Some("file") => Ok(Self::File(
3996 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
3997 )),
3998 Some("folder") => Ok(Self::Folder(
3999 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
4000 )),
4001 Some("web_link") => Ok(Self::WebLink(
4002 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
4003 )),
4004 _ => Ok(Self::Unknown(value)),
4005 }
4006 }
4007}
4008
4009#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4010pub struct SessionTerminationMessage {
4011 #[serde(default, skip_serializing_if = "Option::is_none")]
4012 pub message: Option<String>,
4013}
4014
4015#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4016pub struct ShieldInformationBarrier {
4017 #[serde(default, skip_serializing_if = "Option::is_none")]
4018 pub id: Option<String>,
4019 #[serde(default, skip_serializing_if = "Option::is_none")]
4020 pub r#type: Option<ShieldInformationBarrierType>,
4021 #[serde(default, skip_serializing_if = "Option::is_none")]
4022 pub enterprise: Option<EnterpriseBase>,
4023 #[serde(default, skip_serializing_if = "Option::is_none")]
4024 pub status: Option<ShieldInformationBarrierStatus>,
4025 #[serde(default, skip_serializing_if = "Option::is_none")]
4026 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4027 #[serde(default, skip_serializing_if = "Option::is_none")]
4028 pub created_by: Option<UserBase>,
4029 #[serde(default, skip_serializing_if = "Option::is_none")]
4030 pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4031 #[serde(default, skip_serializing_if = "Option::is_none")]
4032 pub updated_by: Option<UserBase>,
4033 #[serde(default, skip_serializing_if = "Option::is_none")]
4034 pub enabled_at: Option<chrono::DateTime<chrono::Utc>>,
4035 #[serde(default, skip_serializing_if = "Option::is_none")]
4036 pub enabled_by: Option<UserBase>,
4037}
4038
4039#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4040pub struct ShieldInformationBarrierBase {
4041 #[serde(default, skip_serializing_if = "Option::is_none")]
4042 pub id: Option<String>,
4043 #[serde(default, skip_serializing_if = "Option::is_none")]
4044 pub r#type: Option<ShieldInformationBarrierType>,
4045}
4046
4047#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4048pub struct ShieldInformationBarrierReference {
4049 #[serde(default, skip_serializing_if = "Option::is_none")]
4050 pub shield_information_barrier: Option<ShieldInformationBarrierBase>,
4051}
4052
4053#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4054pub struct ShieldInformationBarrierReport {
4055 #[serde(default, skip_serializing_if = "Option::is_none")]
4056 pub id: Option<String>,
4057 #[serde(default, skip_serializing_if = "Option::is_none")]
4058 pub r#type: Option<ShieldInformationBarrierReportType>,
4059 #[serde(default, skip_serializing_if = "Option::is_none")]
4060 pub shield_information_barrier: Option<ShieldInformationBarrierReference>,
4061 #[serde(default, skip_serializing_if = "Option::is_none")]
4062 pub status: Option<ShieldInformationBarrierReportStatus>,
4063 #[serde(default, skip_serializing_if = "Option::is_none")]
4064 pub details: Option<ShieldInformationBarrierReportDetails>,
4065 #[serde(default, skip_serializing_if = "Option::is_none")]
4066 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4067 #[serde(default, skip_serializing_if = "Option::is_none")]
4068 pub created_by: Option<UserBase>,
4069 #[serde(default, skip_serializing_if = "Option::is_none")]
4070 pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4071}
4072
4073#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4074pub struct ShieldInformationBarrierReportBase {
4075 #[serde(default, skip_serializing_if = "Option::is_none")]
4076 pub id: Option<String>,
4077 #[serde(default, skip_serializing_if = "Option::is_none")]
4078 pub r#type: Option<ShieldInformationBarrierReportType>,
4079}
4080
4081#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4082pub struct ShieldInformationBarrierReportDetails {
4083 #[serde(default, skip_serializing_if = "Option::is_none")]
4084 pub details: Option<ShieldInformationBarrierReportDetailsDetails>,
4085}
4086
4087#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4088pub struct ShieldInformationBarrierReports {
4089 #[serde(default, skip_serializing_if = "Option::is_none")]
4090 pub limit: Option<i64>,
4091 #[serde(
4092 default,
4093 skip_serializing_if = "Option::is_none",
4094 deserialize_with = "double_option"
4095 )]
4096 pub next_marker: Option<Option<String>>,
4097 #[serde(default, skip_serializing_if = "Option::is_none")]
4098 pub entries: Option<Vec<ShieldInformationBarrierReport>>,
4099}
4100
4101#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4102pub struct ShieldInformationBarriers {
4103 #[serde(default, skip_serializing_if = "Option::is_none")]
4104 pub limit: Option<i64>,
4105 #[serde(
4106 default,
4107 skip_serializing_if = "Option::is_none",
4108 deserialize_with = "double_option"
4109 )]
4110 pub next_marker: Option<Option<String>>,
4111 #[serde(default, skip_serializing_if = "Option::is_none")]
4112 pub entries: Option<Vec<ShieldInformationBarrier>>,
4113}
4114
4115#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4116pub struct ShieldInformationBarrierSegment {
4117 #[serde(default, skip_serializing_if = "Option::is_none")]
4118 pub id: Option<String>,
4119 #[serde(default, skip_serializing_if = "Option::is_none")]
4120 pub r#type: Option<ShieldInformationBarrierSegmentType>,
4121 #[serde(default, skip_serializing_if = "Option::is_none")]
4122 pub shield_information_barrier: Option<ShieldInformationBarrierBase>,
4123 #[serde(default, skip_serializing_if = "Option::is_none")]
4124 pub name: Option<String>,
4125 #[serde(default, skip_serializing_if = "Option::is_none")]
4126 pub description: Option<String>,
4127 #[serde(default, skip_serializing_if = "Option::is_none")]
4128 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4129 #[serde(default, skip_serializing_if = "Option::is_none")]
4130 pub created_by: Option<UserBase>,
4131 #[serde(default, skip_serializing_if = "Option::is_none")]
4132 pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4133 #[serde(default, skip_serializing_if = "Option::is_none")]
4134 pub updated_by: Option<UserBase>,
4135}
4136
4137#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4138pub struct ShieldInformationBarrierSegmentMember {
4139 #[serde(default, skip_serializing_if = "Option::is_none")]
4140 pub id: Option<String>,
4141 #[serde(default, skip_serializing_if = "Option::is_none")]
4142 pub r#type: Option<ShieldInformationBarrierSegmentMemberType>,
4143 #[serde(default, skip_serializing_if = "Option::is_none")]
4144 pub user: Option<UserBase>,
4145 #[serde(default, skip_serializing_if = "Option::is_none")]
4146 pub shield_information_barrier: Option<ShieldInformationBarrierBase>,
4147 #[serde(default, skip_serializing_if = "Option::is_none")]
4148 pub shield_information_barrier_segment:
4149 Option<ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment>,
4150 #[serde(default, skip_serializing_if = "Option::is_none")]
4151 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4152 #[serde(default, skip_serializing_if = "Option::is_none")]
4153 pub created_by: Option<UserBase>,
4154 #[serde(default, skip_serializing_if = "Option::is_none")]
4155 pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4156 #[serde(default, skip_serializing_if = "Option::is_none")]
4157 pub updated_by: Option<UserBase>,
4158}
4159
4160#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4161pub struct ShieldInformationBarrierSegmentMemberBase {
4162 #[serde(default, skip_serializing_if = "Option::is_none")]
4163 pub id: Option<String>,
4164 #[serde(default, skip_serializing_if = "Option::is_none")]
4165 pub r#type: Option<ShieldInformationBarrierSegmentMemberType>,
4166}
4167
4168#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4169pub struct ShieldInformationBarrierSegmentMemberMini {
4170 #[serde(default, skip_serializing_if = "Option::is_none")]
4171 pub id: Option<String>,
4172 #[serde(default, skip_serializing_if = "Option::is_none")]
4173 pub r#type: Option<ShieldInformationBarrierSegmentMemberType>,
4174 #[serde(default, skip_serializing_if = "Option::is_none")]
4175 pub user: Option<UserBase>,
4176}
4177
4178#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4179pub struct ShieldInformationBarrierSegmentMembers {
4180 #[serde(default, skip_serializing_if = "Option::is_none")]
4181 pub limit: Option<i64>,
4182 #[serde(
4183 default,
4184 skip_serializing_if = "Option::is_none",
4185 deserialize_with = "double_option"
4186 )]
4187 pub next_marker: Option<Option<String>>,
4188 #[serde(default, skip_serializing_if = "Option::is_none")]
4189 pub entries: Option<Vec<ShieldInformationBarrierSegmentMember>>,
4190}
4191
4192#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4193pub struct ShieldInformationBarrierSegmentRestriction {
4194 #[serde(default, skip_serializing_if = "Option::is_none")]
4195 pub r#type: Option<ShieldInformationBarrierSegmentRestrictionType>,
4196 #[serde(default, skip_serializing_if = "Option::is_none")]
4197 pub id: Option<String>,
4198 pub shield_information_barrier_segment:
4199 ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment,
4200 pub restricted_segment: ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment,
4201 #[serde(default, skip_serializing_if = "Option::is_none")]
4202 pub shield_information_barrier: Option<ShieldInformationBarrierBase>,
4203 #[serde(default, skip_serializing_if = "Option::is_none")]
4204 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4205 #[serde(default, skip_serializing_if = "Option::is_none")]
4206 pub created_by: Option<UserBase>,
4207 #[serde(default, skip_serializing_if = "Option::is_none")]
4208 pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
4209 #[serde(default, skip_serializing_if = "Option::is_none")]
4210 pub updated_by: Option<UserBase>,
4211}
4212
4213#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4214pub struct ShieldInformationBarrierSegmentRestrictionBase {
4215 #[serde(default, skip_serializing_if = "Option::is_none")]
4216 pub r#type: Option<ShieldInformationBarrierSegmentRestrictionType>,
4217 #[serde(default, skip_serializing_if = "Option::is_none")]
4218 pub id: Option<String>,
4219}
4220
4221#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4222pub struct ShieldInformationBarrierSegmentRestrictionMini {
4223 #[serde(default, skip_serializing_if = "Option::is_none")]
4224 pub r#type: Option<ShieldInformationBarrierSegmentRestrictionType>,
4225 #[serde(default, skip_serializing_if = "Option::is_none")]
4226 pub id: Option<String>,
4227 pub shield_information_barrier_segment:
4228 ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment,
4229 pub restricted_segment: ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment,
4230}
4231
4232#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4233pub struct ShieldInformationBarrierSegmentRestrictions {
4234 #[serde(default, skip_serializing_if = "Option::is_none")]
4235 pub limit: Option<i64>,
4236 #[serde(
4237 default,
4238 skip_serializing_if = "Option::is_none",
4239 deserialize_with = "double_option"
4240 )]
4241 pub next_marker: Option<Option<String>>,
4242 #[serde(default, skip_serializing_if = "Option::is_none")]
4243 pub entries: Option<Vec<ShieldInformationBarrierSegmentRestriction>>,
4244}
4245
4246#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4247pub struct ShieldInformationBarrierSegments {
4248 #[serde(default, skip_serializing_if = "Option::is_none")]
4249 pub limit: Option<i64>,
4250 #[serde(
4251 default,
4252 skip_serializing_if = "Option::is_none",
4253 deserialize_with = "double_option"
4254 )]
4255 pub next_marker: Option<Option<String>>,
4256 #[serde(default, skip_serializing_if = "Option::is_none")]
4257 pub entries: Option<Vec<ShieldInformationBarrierSegment>>,
4258}
4259
4260#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4261pub struct SignRequest {
4262 #[serde(default, skip_serializing_if = "Option::is_none")]
4263 pub is_document_preparation_needed: Option<bool>,
4264 #[serde(
4265 default,
4266 skip_serializing_if = "Option::is_none",
4267 deserialize_with = "double_option"
4268 )]
4269 pub redirect_url: Option<Option<String>>,
4270 #[serde(
4271 default,
4272 skip_serializing_if = "Option::is_none",
4273 deserialize_with = "double_option"
4274 )]
4275 pub declined_redirect_url: Option<Option<String>>,
4276 #[serde(default, skip_serializing_if = "Option::is_none")]
4277 pub are_text_signatures_enabled: Option<bool>,
4278 #[serde(
4279 default,
4280 skip_serializing_if = "Option::is_none",
4281 deserialize_with = "double_option"
4282 )]
4283 pub email_subject: Option<Option<String>>,
4284 #[serde(
4285 default,
4286 skip_serializing_if = "Option::is_none",
4287 deserialize_with = "double_option"
4288 )]
4289 pub email_message: Option<Option<String>>,
4290 #[serde(default, skip_serializing_if = "Option::is_none")]
4291 pub are_reminders_enabled: Option<bool>,
4292 #[serde(default, skip_serializing_if = "Option::is_none")]
4293 pub name: Option<String>,
4294 #[serde(default, skip_serializing_if = "Option::is_none")]
4295 pub prefill_tags: Option<Vec<SignRequestPrefillTag>>,
4296 #[serde(
4297 default,
4298 skip_serializing_if = "Option::is_none",
4299 deserialize_with = "double_option"
4300 )]
4301 pub days_valid: Option<Option<i64>>,
4302 #[serde(
4303 default,
4304 skip_serializing_if = "Option::is_none",
4305 deserialize_with = "double_option"
4306 )]
4307 pub external_id: Option<Option<String>>,
4308 #[serde(
4309 default,
4310 skip_serializing_if = "Option::is_none",
4311 deserialize_with = "double_option"
4312 )]
4313 pub template_id: Option<Option<String>>,
4314 #[serde(
4315 default,
4316 skip_serializing_if = "Option::is_none",
4317 deserialize_with = "double_option"
4318 )]
4319 pub external_system_name: Option<Option<String>>,
4320 #[serde(
4321 default,
4322 skip_serializing_if = "Option::is_none",
4323 deserialize_with = "double_option"
4324 )]
4325 pub request_flow: Option<Option<String>>,
4326 #[serde(default, skip_serializing_if = "Option::is_none")]
4327 pub r#type: Option<SignRequestType>,
4328 #[serde(default, skip_serializing_if = "Option::is_none")]
4329 pub source_files: Option<Vec<FileBase>>,
4330 #[serde(default, skip_serializing_if = "Option::is_none")]
4331 pub signers: Option<Vec<SignRequestSigner>>,
4332 #[serde(
4333 default,
4334 skip_serializing_if = "Option::is_none",
4335 deserialize_with = "double_option"
4336 )]
4337 pub signature_color: Option<Option<String>>,
4338 #[serde(default, skip_serializing_if = "Option::is_none")]
4339 pub id: Option<String>,
4340 #[serde(
4341 default,
4342 skip_serializing_if = "Option::is_none",
4343 deserialize_with = "double_option"
4344 )]
4345 pub prepare_url: Option<Option<String>>,
4346 #[serde(default, skip_serializing_if = "Option::is_none")]
4347 pub signing_log: Option<FileMini>,
4348 #[serde(default, skip_serializing_if = "Option::is_none")]
4349 pub status: Option<SignRequestStatus>,
4350 #[serde(default, skip_serializing_if = "Option::is_none")]
4351 pub sign_files: Option<SignRequestSignFiles>,
4352 #[serde(
4353 default,
4354 skip_serializing_if = "Option::is_none",
4355 deserialize_with = "double_option"
4356 )]
4357 pub auto_expire_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
4358 #[serde(default, skip_serializing_if = "Option::is_none")]
4359 pub parent_folder: Option<FolderMini>,
4360 #[serde(
4361 default,
4362 skip_serializing_if = "Option::is_none",
4363 deserialize_with = "double_option"
4364 )]
4365 pub collaborator_level: Option<Option<String>>,
4366 #[serde(default, skip_serializing_if = "Option::is_none")]
4367 pub short_id: Option<String>,
4368 #[serde(default, skip_serializing_if = "Option::is_none")]
4369 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
4370 #[serde(
4371 default,
4372 skip_serializing_if = "Option::is_none",
4373 deserialize_with = "double_option"
4374 )]
4375 pub finished_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
4376 #[serde(
4377 default,
4378 skip_serializing_if = "Option::is_none",
4379 deserialize_with = "double_option"
4380 )]
4381 pub error_code: Option<Option<String>>,
4382 #[serde(
4383 default,
4384 skip_serializing_if = "Option::is_none",
4385 deserialize_with = "double_option"
4386 )]
4387 pub sender_email: Option<Option<String>>,
4388 #[serde(
4389 default,
4390 skip_serializing_if = "Option::is_none",
4391 deserialize_with = "double_option"
4392 )]
4393 pub sender_id: Option<Option<i64>>,
4394}
4395
4396#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4397pub struct SignRequestBase {
4398 #[serde(default, skip_serializing_if = "Option::is_none")]
4399 pub is_document_preparation_needed: Option<bool>,
4400 #[serde(
4401 default,
4402 skip_serializing_if = "Option::is_none",
4403 deserialize_with = "double_option"
4404 )]
4405 pub redirect_url: Option<Option<String>>,
4406 #[serde(
4407 default,
4408 skip_serializing_if = "Option::is_none",
4409 deserialize_with = "double_option"
4410 )]
4411 pub declined_redirect_url: Option<Option<String>>,
4412 #[serde(default, skip_serializing_if = "Option::is_none")]
4413 pub are_text_signatures_enabled: Option<bool>,
4414 #[serde(
4415 default,
4416 skip_serializing_if = "Option::is_none",
4417 deserialize_with = "double_option"
4418 )]
4419 pub email_subject: Option<Option<String>>,
4420 #[serde(
4421 default,
4422 skip_serializing_if = "Option::is_none",
4423 deserialize_with = "double_option"
4424 )]
4425 pub email_message: Option<Option<String>>,
4426 #[serde(default, skip_serializing_if = "Option::is_none")]
4427 pub are_reminders_enabled: Option<bool>,
4428 #[serde(default, skip_serializing_if = "Option::is_none")]
4429 pub name: Option<String>,
4430 #[serde(default, skip_serializing_if = "Option::is_none")]
4431 pub prefill_tags: Option<Vec<SignRequestPrefillTag>>,
4432 #[serde(
4433 default,
4434 skip_serializing_if = "Option::is_none",
4435 deserialize_with = "double_option"
4436 )]
4437 pub days_valid: Option<Option<i64>>,
4438 #[serde(
4439 default,
4440 skip_serializing_if = "Option::is_none",
4441 deserialize_with = "double_option"
4442 )]
4443 pub external_id: Option<Option<String>>,
4444 #[serde(
4445 default,
4446 skip_serializing_if = "Option::is_none",
4447 deserialize_with = "double_option"
4448 )]
4449 pub template_id: Option<Option<String>>,
4450 #[serde(
4451 default,
4452 skip_serializing_if = "Option::is_none",
4453 deserialize_with = "double_option"
4454 )]
4455 pub external_system_name: Option<Option<String>>,
4456 #[serde(
4457 default,
4458 skip_serializing_if = "Option::is_none",
4459 deserialize_with = "double_option"
4460 )]
4461 pub request_flow: Option<Option<String>>,
4462}
4463
4464#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4465pub struct SignRequestCancelRequest {
4466 #[serde(default, skip_serializing_if = "Option::is_none")]
4467 pub reason: Option<String>,
4468}
4469
4470#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4471pub struct SignRequestCreateRequest {
4472 #[serde(default, skip_serializing_if = "Option::is_none")]
4473 pub is_document_preparation_needed: Option<bool>,
4474 #[serde(
4475 default,
4476 skip_serializing_if = "Option::is_none",
4477 deserialize_with = "double_option"
4478 )]
4479 pub redirect_url: Option<Option<String>>,
4480 #[serde(
4481 default,
4482 skip_serializing_if = "Option::is_none",
4483 deserialize_with = "double_option"
4484 )]
4485 pub declined_redirect_url: Option<Option<String>>,
4486 #[serde(default, skip_serializing_if = "Option::is_none")]
4487 pub are_text_signatures_enabled: Option<bool>,
4488 #[serde(
4489 default,
4490 skip_serializing_if = "Option::is_none",
4491 deserialize_with = "double_option"
4492 )]
4493 pub email_subject: Option<Option<String>>,
4494 #[serde(
4495 default,
4496 skip_serializing_if = "Option::is_none",
4497 deserialize_with = "double_option"
4498 )]
4499 pub email_message: Option<Option<String>>,
4500 #[serde(default, skip_serializing_if = "Option::is_none")]
4501 pub are_reminders_enabled: Option<bool>,
4502 #[serde(default, skip_serializing_if = "Option::is_none")]
4503 pub name: Option<String>,
4504 #[serde(default, skip_serializing_if = "Option::is_none")]
4505 pub prefill_tags: Option<Vec<SignRequestPrefillTag>>,
4506 #[serde(
4507 default,
4508 skip_serializing_if = "Option::is_none",
4509 deserialize_with = "double_option"
4510 )]
4511 pub days_valid: Option<Option<i64>>,
4512 #[serde(
4513 default,
4514 skip_serializing_if = "Option::is_none",
4515 deserialize_with = "double_option"
4516 )]
4517 pub external_id: Option<Option<String>>,
4518 #[serde(
4519 default,
4520 skip_serializing_if = "Option::is_none",
4521 deserialize_with = "double_option"
4522 )]
4523 pub template_id: Option<Option<String>>,
4524 #[serde(
4525 default,
4526 skip_serializing_if = "Option::is_none",
4527 deserialize_with = "double_option"
4528 )]
4529 pub external_system_name: Option<Option<String>>,
4530 #[serde(
4531 default,
4532 skip_serializing_if = "Option::is_none",
4533 deserialize_with = "double_option"
4534 )]
4535 pub request_flow: Option<Option<String>>,
4536 #[serde(
4537 default,
4538 skip_serializing_if = "Option::is_none",
4539 deserialize_with = "double_option"
4540 )]
4541 pub source_files: Option<Option<Vec<FileBase>>>,
4542 #[serde(
4543 default,
4544 skip_serializing_if = "Option::is_none",
4545 deserialize_with = "double_option"
4546 )]
4547 pub signature_color: Option<Option<SignRequestCreateRequestSignatureColor>>,
4548 pub signers: Vec<SignRequestCreateSigner>,
4549 #[serde(default, skip_serializing_if = "Option::is_none")]
4550 pub parent_folder: Option<FolderMini>,
4551}
4552
4553#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4554pub struct SignRequestCreateSigner {
4555 #[serde(
4556 default,
4557 skip_serializing_if = "Option::is_none",
4558 deserialize_with = "double_option"
4559 )]
4560 pub email: Option<Option<String>>,
4561 #[serde(default, skip_serializing_if = "Option::is_none")]
4562 pub role: Option<SignRequestCreateSignerRole>,
4563 #[serde(default, skip_serializing_if = "Option::is_none")]
4564 pub is_in_person: Option<bool>,
4565 #[serde(default, skip_serializing_if = "Option::is_none")]
4566 pub order: Option<i64>,
4567 #[serde(
4568 default,
4569 skip_serializing_if = "Option::is_none",
4570 deserialize_with = "double_option"
4571 )]
4572 pub embed_url_external_user_id: Option<Option<String>>,
4573 #[serde(
4574 default,
4575 skip_serializing_if = "Option::is_none",
4576 deserialize_with = "double_option"
4577 )]
4578 pub redirect_url: Option<Option<String>>,
4579 #[serde(
4580 default,
4581 skip_serializing_if = "Option::is_none",
4582 deserialize_with = "double_option"
4583 )]
4584 pub declined_redirect_url: Option<Option<String>>,
4585 #[serde(
4586 default,
4587 skip_serializing_if = "Option::is_none",
4588 deserialize_with = "double_option"
4589 )]
4590 pub login_required: Option<Option<bool>>,
4591 #[serde(
4592 default,
4593 skip_serializing_if = "Option::is_none",
4594 deserialize_with = "double_option"
4595 )]
4596 pub verification_phone_number: Option<Option<String>>,
4597 #[serde(
4598 default,
4599 skip_serializing_if = "Option::is_none",
4600 deserialize_with = "double_option"
4601 )]
4602 pub password: Option<Option<String>>,
4603 #[serde(
4604 default,
4605 skip_serializing_if = "Option::is_none",
4606 deserialize_with = "double_option"
4607 )]
4608 pub signer_group_id: Option<Option<String>>,
4609 #[serde(
4610 default,
4611 skip_serializing_if = "Option::is_none",
4612 deserialize_with = "double_option"
4613 )]
4614 pub suppress_notifications: Option<Option<bool>>,
4615 #[serde(
4616 default,
4617 skip_serializing_if = "Option::is_none",
4618 deserialize_with = "double_option"
4619 )]
4620 pub language: Option<Option<String>>,
4621}
4622
4623#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4624pub struct SignRequestPrefillTag {
4625 #[serde(
4626 default,
4627 skip_serializing_if = "Option::is_none",
4628 deserialize_with = "double_option"
4629 )]
4630 pub document_tag_id: Option<Option<String>>,
4631 #[serde(
4632 default,
4633 skip_serializing_if = "Option::is_none",
4634 deserialize_with = "double_option"
4635 )]
4636 pub text_value: Option<Option<String>>,
4637 #[serde(
4638 default,
4639 skip_serializing_if = "Option::is_none",
4640 deserialize_with = "double_option"
4641 )]
4642 pub checkbox_value: Option<Option<bool>>,
4643 #[serde(
4644 default,
4645 skip_serializing_if = "Option::is_none",
4646 deserialize_with = "double_option"
4647 )]
4648 pub date_value: Option<Option<chrono::NaiveDate>>,
4649}
4650
4651#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4652pub struct SignRequests {
4653 #[serde(default, skip_serializing_if = "Option::is_none")]
4654 pub limit: Option<i64>,
4655 #[serde(
4656 default,
4657 skip_serializing_if = "Option::is_none",
4658 deserialize_with = "double_option"
4659 )]
4660 pub next_marker: Option<Option<String>>,
4661 #[serde(default, skip_serializing_if = "Option::is_none")]
4662 pub entries: Option<Vec<SignRequest>>,
4663}
4664
4665#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4666pub struct SignRequestSigner {
4667 pub email: Option<String>,
4668 #[serde(default, skip_serializing_if = "Option::is_none")]
4669 pub role: Option<SignRequestCreateSignerRole>,
4670 #[serde(default, skip_serializing_if = "Option::is_none")]
4671 pub is_in_person: Option<bool>,
4672 #[serde(default, skip_serializing_if = "Option::is_none")]
4673 pub order: Option<i64>,
4674 #[serde(
4675 default,
4676 skip_serializing_if = "Option::is_none",
4677 deserialize_with = "double_option"
4678 )]
4679 pub embed_url_external_user_id: Option<Option<String>>,
4680 #[serde(
4681 default,
4682 skip_serializing_if = "Option::is_none",
4683 deserialize_with = "double_option"
4684 )]
4685 pub redirect_url: Option<Option<String>>,
4686 #[serde(
4687 default,
4688 skip_serializing_if = "Option::is_none",
4689 deserialize_with = "double_option"
4690 )]
4691 pub declined_redirect_url: Option<Option<String>>,
4692 #[serde(
4693 default,
4694 skip_serializing_if = "Option::is_none",
4695 deserialize_with = "double_option"
4696 )]
4697 pub login_required: Option<Option<bool>>,
4698 #[serde(
4699 default,
4700 skip_serializing_if = "Option::is_none",
4701 deserialize_with = "double_option"
4702 )]
4703 pub verification_phone_number: Option<Option<String>>,
4704 #[serde(
4705 default,
4706 skip_serializing_if = "Option::is_none",
4707 deserialize_with = "double_option"
4708 )]
4709 pub password: Option<Option<String>>,
4710 #[serde(
4711 default,
4712 skip_serializing_if = "Option::is_none",
4713 deserialize_with = "double_option"
4714 )]
4715 pub signer_group_id: Option<Option<String>>,
4716 #[serde(
4717 default,
4718 skip_serializing_if = "Option::is_none",
4719 deserialize_with = "double_option"
4720 )]
4721 pub suppress_notifications: Option<Option<bool>>,
4722 #[serde(
4723 default,
4724 skip_serializing_if = "Option::is_none",
4725 deserialize_with = "double_option"
4726 )]
4727 pub language: Option<Option<String>>,
4728 #[serde(default, skip_serializing_if = "Option::is_none")]
4729 pub has_viewed_document: Option<bool>,
4730 #[serde(
4731 default,
4732 skip_serializing_if = "Option::is_none",
4733 deserialize_with = "double_option"
4734 )]
4735 pub signer_decision: Option<Option<SignRequestSignerSignerDecision>>,
4736 #[serde(default, skip_serializing_if = "Option::is_none")]
4737 pub inputs: Option<Vec<SignRequestSignerInput>>,
4738 #[serde(
4739 default,
4740 skip_serializing_if = "Option::is_none",
4741 deserialize_with = "double_option"
4742 )]
4743 pub embed_url: Option<Option<String>>,
4744 #[serde(
4745 default,
4746 skip_serializing_if = "Option::is_none",
4747 deserialize_with = "double_option"
4748 )]
4749 pub iframeable_embed_url: Option<Option<String>>,
4750 #[serde(
4751 default,
4752 skip_serializing_if = "Option::is_none",
4753 deserialize_with = "double_option"
4754 )]
4755 pub attachments: Option<Option<Vec<SignRequestSignerAttachment>>>,
4756}
4757
4758#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4759pub struct SignRequestSignerAttachment {
4760 #[serde(
4761 default,
4762 skip_serializing_if = "Option::is_none",
4763 deserialize_with = "double_option"
4764 )]
4765 pub id: Option<Option<String>>,
4766 #[serde(
4767 default,
4768 skip_serializing_if = "Option::is_none",
4769 deserialize_with = "double_option"
4770 )]
4771 pub name: Option<Option<String>>,
4772}
4773
4774#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4775pub struct SignRequestSignerInput {
4776 #[serde(
4777 default,
4778 skip_serializing_if = "Option::is_none",
4779 deserialize_with = "double_option"
4780 )]
4781 pub document_tag_id: Option<Option<String>>,
4782 #[serde(
4783 default,
4784 skip_serializing_if = "Option::is_none",
4785 deserialize_with = "double_option"
4786 )]
4787 pub text_value: Option<Option<String>>,
4788 #[serde(
4789 default,
4790 skip_serializing_if = "Option::is_none",
4791 deserialize_with = "double_option"
4792 )]
4793 pub checkbox_value: Option<Option<bool>>,
4794 #[serde(
4795 default,
4796 skip_serializing_if = "Option::is_none",
4797 deserialize_with = "double_option"
4798 )]
4799 pub date_value: Option<Option<chrono::NaiveDate>>,
4800 #[serde(default, skip_serializing_if = "Option::is_none")]
4801 pub r#type: Option<SignRequestSignerInputType>,
4802 #[serde(default, skip_serializing_if = "Option::is_none")]
4803 pub content_type: Option<SignRequestSignerInputContentType>,
4804 pub page_index: i64,
4805 #[serde(default, skip_serializing_if = "Option::is_none")]
4806 pub read_only: Option<bool>,
4807 #[serde(
4808 default,
4809 skip_serializing_if = "Option::is_none",
4810 deserialize_with = "double_option"
4811 )]
4812 pub validation: Option<Option<SignRequestSignerInputValidation>>,
4813 #[serde(
4814 default,
4815 skip_serializing_if = "Option::is_none",
4816 deserialize_with = "double_option"
4817 )]
4818 pub reason: Option<Option<String>>,
4819 #[serde(
4820 default,
4821 skip_serializing_if = "Option::is_none",
4822 deserialize_with = "double_option"
4823 )]
4824 pub is_validated: Option<Option<bool>>,
4825}
4826
4827#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4828pub struct SignRequestSignerInputCustomValidation {
4829 pub validation_type: SignRequestSignerInputCustomValidationValidationType,
4830 pub custom_regex: Option<String>,
4831 pub custom_error_message: Option<String>,
4832}
4833
4834#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4835pub struct SignRequestSignerInputDateAsiaValidation {
4836 #[serde(default, skip_serializing_if = "Option::is_none")]
4837 pub validation_type: Option<SignRequestSignerInputDateAsiaValidationValidationType>,
4838}
4839
4840#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4841pub struct SignRequestSignerInputDateEUValidation {
4842 #[serde(default, skip_serializing_if = "Option::is_none")]
4843 pub validation_type: Option<SignRequestSignerInputDateEUValidationValidationType>,
4844}
4845
4846#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4847pub struct SignRequestSignerInputDateISOValidation {
4848 #[serde(default, skip_serializing_if = "Option::is_none")]
4849 pub validation_type: Option<SignRequestSignerInputDateISOValidationValidationType>,
4850}
4851
4852#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4853pub struct SignRequestSignerInputDateUSValidation {
4854 #[serde(default, skip_serializing_if = "Option::is_none")]
4855 pub validation_type: Option<SignRequestSignerInputDateUSValidationValidationType>,
4856}
4857
4858#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4859pub struct SignRequestSignerInputEmailValidation {
4860 pub validation_type: SignRequestSignerInputEmailValidationValidationType,
4861}
4862
4863#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4864pub struct SignRequestSignerInputNumberWithCommaValidation {
4865 #[serde(default, skip_serializing_if = "Option::is_none")]
4866 pub validation_type: Option<SignRequestSignerInputNumberWithCommaValidationValidationType>,
4867}
4868
4869#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4870pub struct SignRequestSignerInputNumberWithPeriodValidation {
4871 #[serde(default, skip_serializing_if = "Option::is_none")]
4872 pub validation_type: Option<SignRequestSignerInputNumberWithPeriodValidationValidationType>,
4873}
4874
4875#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4876pub struct SignRequestSignerInputSSNValidation {
4877 pub validation_type: SignRequestSignerInputSSNValidationValidationType,
4878}
4879
4880#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4881#[serde(transparent)]
4882pub struct SignRequestSignerInputValidation(pub serde_json::Value);
4883
4884#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4885pub struct SignRequestSignerInputZIP4Validation {
4886 pub validation_type: SignRequestSignerInputZIP4ValidationValidationType,
4887}
4888
4889#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4890pub struct SignRequestSignerInputZIPValidation {
4891 pub validation_type: SignRequestSignerInputZIPValidationValidationType,
4892}
4893
4894#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4895pub struct SignTemplate {
4896 #[serde(default, skip_serializing_if = "Option::is_none")]
4897 pub r#type: Option<SignTemplateType>,
4898 #[serde(default, skip_serializing_if = "Option::is_none")]
4899 pub id: Option<String>,
4900 #[serde(
4901 default,
4902 skip_serializing_if = "Option::is_none",
4903 deserialize_with = "double_option"
4904 )]
4905 pub name: Option<Option<String>>,
4906 #[serde(
4907 default,
4908 skip_serializing_if = "Option::is_none",
4909 deserialize_with = "double_option"
4910 )]
4911 pub email_subject: Option<Option<String>>,
4912 #[serde(
4913 default,
4914 skip_serializing_if = "Option::is_none",
4915 deserialize_with = "double_option"
4916 )]
4917 pub email_message: Option<Option<String>>,
4918 #[serde(
4919 default,
4920 skip_serializing_if = "Option::is_none",
4921 deserialize_with = "double_option"
4922 )]
4923 pub days_valid: Option<Option<i64>>,
4924 #[serde(default, skip_serializing_if = "Option::is_none")]
4925 pub parent_folder: Option<FolderMini>,
4926 #[serde(default, skip_serializing_if = "Option::is_none")]
4927 pub source_files: Option<Vec<FileMini>>,
4928 #[serde(default, skip_serializing_if = "Option::is_none")]
4929 pub are_fields_locked: Option<bool>,
4930 #[serde(default, skip_serializing_if = "Option::is_none")]
4931 pub are_options_locked: Option<bool>,
4932 #[serde(default, skip_serializing_if = "Option::is_none")]
4933 pub are_recipients_locked: Option<bool>,
4934 #[serde(default, skip_serializing_if = "Option::is_none")]
4935 pub are_email_settings_locked: Option<bool>,
4936 #[serde(default, skip_serializing_if = "Option::is_none")]
4937 pub are_files_locked: Option<bool>,
4938 #[serde(default, skip_serializing_if = "Option::is_none")]
4939 pub signers: Option<Vec<TemplateSigner>>,
4940 #[serde(default, skip_serializing_if = "Option::is_none")]
4941 pub additional_info: Option<SignTemplateAdditionalInfo>,
4942 #[serde(
4943 default,
4944 skip_serializing_if = "Option::is_none",
4945 deserialize_with = "double_option"
4946 )]
4947 pub ready_sign_link: Option<Option<SignTemplateReadySignLink>>,
4948 #[serde(
4949 default,
4950 skip_serializing_if = "Option::is_none",
4951 deserialize_with = "double_option"
4952 )]
4953 pub custom_branding: Option<Option<SignTemplateCustomBranding>>,
4954 #[serde(
4955 default,
4956 skip_serializing_if = "Option::is_none",
4957 deserialize_with = "double_option"
4958 )]
4959 pub request_flow: Option<Option<String>>,
4960}
4961
4962#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4963pub struct SignTemplates {
4964 #[serde(default, skip_serializing_if = "Option::is_none")]
4965 pub limit: Option<i64>,
4966 #[serde(
4967 default,
4968 skip_serializing_if = "Option::is_none",
4969 deserialize_with = "double_option"
4970 )]
4971 pub next_marker: Option<Option<String>>,
4972 #[serde(
4973 default,
4974 skip_serializing_if = "Option::is_none",
4975 deserialize_with = "double_option"
4976 )]
4977 pub prev_marker: Option<Option<String>>,
4978 #[serde(default, skip_serializing_if = "Option::is_none")]
4979 pub entries: Option<Vec<SignTemplate>>,
4980}
4981
4982#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4983#[serde(transparent)]
4984pub struct SkillCard(pub serde_json::Value);
4985
4986#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
4987pub struct SkillCardsMetadata {
4988 #[serde(rename = "$canEdit", default, skip_serializing_if = "Option::is_none")]
4989 pub can_edit: Option<bool>,
4990 #[serde(rename = "$id", default, skip_serializing_if = "Option::is_none")]
4991 pub id: Option<String>,
4992 #[serde(rename = "$parent", default, skip_serializing_if = "Option::is_none")]
4993 pub parent: Option<String>,
4994 #[serde(rename = "$scope", default, skip_serializing_if = "Option::is_none")]
4995 pub scope: Option<String>,
4996 #[serde(rename = "$template", default, skip_serializing_if = "Option::is_none")]
4997 pub template: Option<String>,
4998 #[serde(rename = "$type", default, skip_serializing_if = "Option::is_none")]
4999 pub r#type: Option<String>,
5000 #[serde(
5001 rename = "$typeVersion",
5002 default,
5003 skip_serializing_if = "Option::is_none"
5004 )]
5005 pub type_version: Option<i64>,
5006 #[serde(rename = "$version", default, skip_serializing_if = "Option::is_none")]
5007 pub version: Option<i64>,
5008 #[serde(default, skip_serializing_if = "Option::is_none")]
5009 pub cards: Option<Vec<SkillCard>>,
5010}
5011
5012#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5013pub struct StatusSkillCard {
5014 #[serde(default, skip_serializing_if = "Option::is_none")]
5015 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5016 pub r#type: KeywordSkillCardType,
5017 pub skill_card_type: StatusSkillCardSkillCardType,
5018 #[serde(default, skip_serializing_if = "Option::is_none")]
5019 pub skill_card_title: Option<KeywordSkillCardSkillCardTitle>,
5020 pub status: StatusSkillCardStatus,
5021 pub skill: KeywordSkillCardSkill,
5022 pub invocation: KeywordSkillCardInvocation,
5023}
5024
5025#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5026pub struct StoragePolicies {
5027 #[serde(default, skip_serializing_if = "Option::is_none")]
5028 pub limit: Option<i64>,
5029 #[serde(
5030 default,
5031 skip_serializing_if = "Option::is_none",
5032 deserialize_with = "double_option"
5033 )]
5034 pub next_marker: Option<Option<String>>,
5035 #[serde(
5036 default,
5037 skip_serializing_if = "Option::is_none",
5038 deserialize_with = "double_option"
5039 )]
5040 pub prev_marker: Option<Option<String>>,
5041 #[serde(default, skip_serializing_if = "Option::is_none")]
5042 pub entries: Option<Vec<StoragePolicy>>,
5043}
5044
5045#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5046pub struct StoragePolicy {
5047 pub id: String,
5048 pub r#type: StoragePolicyType,
5049 #[serde(default, skip_serializing_if = "Option::is_none")]
5050 pub name: Option<String>,
5051}
5052
5053#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5054pub struct StoragePolicyMini {
5055 pub id: String,
5056 pub r#type: StoragePolicyType,
5057}
5058
5059#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5060pub struct StoragePolicyAssignment {
5061 pub id: String,
5062 pub r#type: StoragePolicyAssignmentType,
5063 #[serde(default, skip_serializing_if = "Option::is_none")]
5064 pub storage_policy: Option<StoragePolicyMini>,
5065 #[serde(default, skip_serializing_if = "Option::is_none")]
5066 pub assigned_to: Option<CommentItem>,
5067}
5068
5069#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5070pub struct StoragePolicyAssignments {
5071 #[serde(default, skip_serializing_if = "Option::is_none")]
5072 pub limit: Option<i64>,
5073 #[serde(
5074 default,
5075 skip_serializing_if = "Option::is_none",
5076 deserialize_with = "double_option"
5077 )]
5078 pub next_marker: Option<Option<String>>,
5079 #[serde(
5080 default,
5081 skip_serializing_if = "Option::is_none",
5082 deserialize_with = "double_option"
5083 )]
5084 pub prev_marker: Option<Option<String>>,
5085 #[serde(default, skip_serializing_if = "Option::is_none")]
5086 pub entries: Option<Vec<StoragePolicyAssignment>>,
5087}
5088
5089#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5090pub struct Task {
5091 #[serde(default, skip_serializing_if = "Option::is_none")]
5092 pub id: Option<String>,
5093 #[serde(default, skip_serializing_if = "Option::is_none")]
5094 pub r#type: Option<TaskType>,
5095 #[serde(default, skip_serializing_if = "Option::is_none")]
5096 pub item: Option<FileMini>,
5097 #[serde(default, skip_serializing_if = "Option::is_none")]
5098 pub due_at: Option<chrono::DateTime<chrono::Utc>>,
5099 #[serde(default, skip_serializing_if = "Option::is_none")]
5100 pub action: Option<TaskAction>,
5101 #[serde(default, skip_serializing_if = "Option::is_none")]
5102 pub message: Option<String>,
5103 #[serde(default, skip_serializing_if = "Option::is_none")]
5104 pub task_assignment_collection: Option<TaskAssignments>,
5105 #[serde(default, skip_serializing_if = "Option::is_none")]
5106 pub is_completed: Option<bool>,
5107 #[serde(default, skip_serializing_if = "Option::is_none")]
5108 pub created_by: Option<UserMini>,
5109 #[serde(default, skip_serializing_if = "Option::is_none")]
5110 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5111 #[serde(default, skip_serializing_if = "Option::is_none")]
5112 pub completion_rule: Option<TaskCompletionRule>,
5113}
5114
5115#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5116pub struct TaskAssignment {
5117 #[serde(default, skip_serializing_if = "Option::is_none")]
5118 pub id: Option<String>,
5119 #[serde(default, skip_serializing_if = "Option::is_none")]
5120 pub r#type: Option<TaskAssignmentType>,
5121 #[serde(default, skip_serializing_if = "Option::is_none")]
5122 pub item: Option<FileMini>,
5123 #[serde(default, skip_serializing_if = "Option::is_none")]
5124 pub assigned_to: Option<UserMini>,
5125 #[serde(default, skip_serializing_if = "Option::is_none")]
5126 pub message: Option<String>,
5127 #[serde(default, skip_serializing_if = "Option::is_none")]
5128 pub completed_at: Option<chrono::DateTime<chrono::Utc>>,
5129 #[serde(default, skip_serializing_if = "Option::is_none")]
5130 pub assigned_at: Option<chrono::DateTime<chrono::Utc>>,
5131 #[serde(default, skip_serializing_if = "Option::is_none")]
5132 pub reminded_at: Option<chrono::DateTime<chrono::Utc>>,
5133 #[serde(default, skip_serializing_if = "Option::is_none")]
5134 pub resolution_state: Option<TaskAssignmentResolutionState>,
5135 #[serde(default, skip_serializing_if = "Option::is_none")]
5136 pub assigned_by: Option<UserMini>,
5137}
5138
5139#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5140pub struct TaskAssignments {
5141 #[serde(default, skip_serializing_if = "Option::is_none")]
5142 pub total_count: Option<i64>,
5143 #[serde(default, skip_serializing_if = "Option::is_none")]
5144 pub entries: Option<Vec<TaskAssignment>>,
5145}
5146
5147#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5148pub struct Tasks {
5149 #[serde(default, skip_serializing_if = "Option::is_none")]
5150 pub total_count: Option<i64>,
5151 #[serde(default, skip_serializing_if = "Option::is_none")]
5152 pub entries: Option<Vec<Task>>,
5153}
5154
5155#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5156pub struct TemplateSigner {
5157 #[serde(default, skip_serializing_if = "Option::is_none")]
5158 pub inputs: Option<Vec<TemplateSignerInput>>,
5159 #[serde(
5160 default,
5161 skip_serializing_if = "Option::is_none",
5162 deserialize_with = "double_option"
5163 )]
5164 pub email: Option<Option<String>>,
5165 #[serde(default, skip_serializing_if = "Option::is_none")]
5166 pub role: Option<SignRequestCreateSignerRole>,
5167 #[serde(default, skip_serializing_if = "Option::is_none")]
5168 pub is_in_person: Option<bool>,
5169 #[serde(default, skip_serializing_if = "Option::is_none")]
5170 pub order: Option<i64>,
5171 #[serde(
5172 default,
5173 skip_serializing_if = "Option::is_none",
5174 deserialize_with = "double_option"
5175 )]
5176 pub signer_group_id: Option<Option<String>>,
5177 #[serde(
5178 default,
5179 skip_serializing_if = "Option::is_none",
5180 deserialize_with = "double_option"
5181 )]
5182 pub label: Option<Option<String>>,
5183 #[serde(default, skip_serializing_if = "Option::is_none")]
5184 pub public_id: Option<String>,
5185 #[serde(
5186 default,
5187 skip_serializing_if = "Option::is_none",
5188 deserialize_with = "double_option"
5189 )]
5190 pub is_password_required: Option<Option<bool>>,
5191 #[serde(
5192 default,
5193 skip_serializing_if = "Option::is_none",
5194 deserialize_with = "double_option"
5195 )]
5196 pub is_phone_number_required: Option<Option<bool>>,
5197 #[serde(
5198 default,
5199 skip_serializing_if = "Option::is_none",
5200 deserialize_with = "double_option"
5201 )]
5202 pub login_required: Option<Option<bool>>,
5203}
5204
5205#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5206pub struct TemplateSignerInput {
5207 #[serde(
5208 default,
5209 skip_serializing_if = "Option::is_none",
5210 deserialize_with = "double_option"
5211 )]
5212 pub document_tag_id: Option<Option<String>>,
5213 #[serde(
5214 default,
5215 skip_serializing_if = "Option::is_none",
5216 deserialize_with = "double_option"
5217 )]
5218 pub text_value: Option<Option<String>>,
5219 #[serde(
5220 default,
5221 skip_serializing_if = "Option::is_none",
5222 deserialize_with = "double_option"
5223 )]
5224 pub checkbox_value: Option<Option<bool>>,
5225 #[serde(
5226 default,
5227 skip_serializing_if = "Option::is_none",
5228 deserialize_with = "double_option"
5229 )]
5230 pub date_value: Option<Option<chrono::NaiveDate>>,
5231 #[serde(default, skip_serializing_if = "Option::is_none")]
5232 pub r#type: Option<TemplateSignerInputType>,
5233 #[serde(default, skip_serializing_if = "Option::is_none")]
5234 pub content_type: Option<SignRequestSignerInputContentType>,
5235 #[serde(default, skip_serializing_if = "Option::is_none")]
5236 pub is_required: Option<bool>,
5237 pub page_index: i64,
5238 #[serde(
5239 default,
5240 skip_serializing_if = "Option::is_none",
5241 deserialize_with = "double_option"
5242 )]
5243 pub document_id: Option<Option<String>>,
5244 #[serde(
5245 default,
5246 skip_serializing_if = "Option::is_none",
5247 deserialize_with = "double_option"
5248 )]
5249 pub dropdown_choices: Option<Option<Vec<String>>>,
5250 #[serde(
5251 default,
5252 skip_serializing_if = "Option::is_none",
5253 deserialize_with = "double_option"
5254 )]
5255 pub group_id: Option<Option<String>>,
5256 #[serde(default, skip_serializing_if = "Option::is_none")]
5257 pub coordinates: Option<TemplateSignerInputCoordinates>,
5258 #[serde(default, skip_serializing_if = "Option::is_none")]
5259 pub dimensions: Option<TemplateSignerInputDimensions>,
5260 #[serde(
5261 default,
5262 skip_serializing_if = "Option::is_none",
5263 deserialize_with = "double_option"
5264 )]
5265 pub label: Option<Option<String>>,
5266 #[serde(default, skip_serializing_if = "Option::is_none")]
5267 pub read_only: Option<bool>,
5268 #[serde(
5269 default,
5270 skip_serializing_if = "Option::is_none",
5271 deserialize_with = "double_option"
5272 )]
5273 pub validation: Option<Option<SignRequestSignerInputValidation>>,
5274}
5275
5276#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5277pub struct TermsOfService {
5278 pub id: String,
5279 pub r#type: TermsOfServiceType,
5280 #[serde(default, skip_serializing_if = "Option::is_none")]
5281 pub status: Option<TermsOfServiceStatus>,
5282 #[serde(default, skip_serializing_if = "Option::is_none")]
5283 pub enterprise: Option<CollaborationAllowlistEntryEnterprise>,
5284 #[serde(default, skip_serializing_if = "Option::is_none")]
5285 pub tos_type: Option<TermsOfServiceTosType>,
5286 #[serde(default, skip_serializing_if = "Option::is_none")]
5287 pub text: Option<String>,
5288 #[serde(default, skip_serializing_if = "Option::is_none")]
5289 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5290 #[serde(default, skip_serializing_if = "Option::is_none")]
5291 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
5292}
5293
5294#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5295pub struct TermsOfServiceBase {
5296 pub id: String,
5297 pub r#type: TermsOfServiceType,
5298}
5299
5300#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5301pub struct TermsOfServices {
5302 #[serde(default, skip_serializing_if = "Option::is_none")]
5303 pub total_count: Option<i64>,
5304 #[serde(default, skip_serializing_if = "Option::is_none")]
5305 pub entries: Option<Vec<TermsOfService>>,
5306}
5307
5308#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5309pub struct TermsOfServiceUserStatus {
5310 pub id: String,
5311 pub r#type: TermsOfServiceUserStatusType,
5312 #[serde(default, skip_serializing_if = "Option::is_none")]
5313 pub tos: Option<TermsOfServiceBase>,
5314 #[serde(default, skip_serializing_if = "Option::is_none")]
5315 pub user: Option<UserMini>,
5316 #[serde(default, skip_serializing_if = "Option::is_none")]
5317 pub is_accepted: Option<bool>,
5318 #[serde(default, skip_serializing_if = "Option::is_none")]
5319 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5320 #[serde(default, skip_serializing_if = "Option::is_none")]
5321 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
5322}
5323
5324#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5325pub struct TermsOfServiceUserStatuses {
5326 #[serde(default, skip_serializing_if = "Option::is_none")]
5327 pub total_count: Option<i64>,
5328 #[serde(default, skip_serializing_if = "Option::is_none")]
5329 pub entries: Option<Vec<TermsOfServiceUserStatus>>,
5330}
5331
5332#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5333pub struct TimelineSkillCard {
5334 #[serde(default, skip_serializing_if = "Option::is_none")]
5335 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5336 pub r#type: KeywordSkillCardType,
5337 pub skill_card_type: TimelineSkillCardSkillCardType,
5338 #[serde(default, skip_serializing_if = "Option::is_none")]
5339 pub skill_card_title: Option<KeywordSkillCardSkillCardTitle>,
5340 pub skill: KeywordSkillCardSkill,
5341 pub invocation: KeywordSkillCardInvocation,
5342 #[serde(default, skip_serializing_if = "Option::is_none")]
5343 pub duration: Option<i64>,
5344 pub entries: Vec<TimelineSkillCardEntries>,
5345}
5346
5347#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5348pub struct TrackingCode {
5349 #[serde(default, skip_serializing_if = "Option::is_none")]
5350 pub r#type: Option<TrackingCodeType>,
5351 #[serde(default, skip_serializing_if = "Option::is_none")]
5352 pub name: Option<String>,
5353 #[serde(default, skip_serializing_if = "Option::is_none")]
5354 pub value: Option<String>,
5355}
5356
5357#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5358pub struct TranscriptSkillCard {
5359 #[serde(default, skip_serializing_if = "Option::is_none")]
5360 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5361 pub r#type: KeywordSkillCardType,
5362 pub skill_card_type: TranscriptSkillCardSkillCardType,
5363 #[serde(default, skip_serializing_if = "Option::is_none")]
5364 pub skill_card_title: Option<KeywordSkillCardSkillCardTitle>,
5365 pub skill: KeywordSkillCardSkill,
5366 pub invocation: KeywordSkillCardInvocation,
5367 #[serde(default, skip_serializing_if = "Option::is_none")]
5368 pub duration: Option<i64>,
5369 pub entries: Vec<TranscriptSkillCardEntries>,
5370}
5371
5372#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5373pub struct TrashFile {
5374 pub id: String,
5375 #[serde(
5376 default,
5377 skip_serializing_if = "Option::is_none",
5378 deserialize_with = "double_option"
5379 )]
5380 pub etag: Option<Option<String>>,
5381 pub r#type: AiCitationType,
5382 pub sequence_id: String,
5383 #[serde(default, skip_serializing_if = "Option::is_none")]
5384 pub name: Option<String>,
5385 pub sha1: String,
5386 #[serde(default, skip_serializing_if = "Option::is_none")]
5387 pub file_version: Option<FileVersionMini>,
5388 pub description: String,
5389 pub size: i64,
5390 pub path_collection: TrashFilePathCollection,
5391 pub created_at: chrono::DateTime<chrono::Utc>,
5392 pub modified_at: chrono::DateTime<chrono::Utc>,
5393 #[serde(
5394 default,
5395 skip_serializing_if = "Option::is_none",
5396 deserialize_with = "double_option"
5397 )]
5398 pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
5399 #[serde(
5400 default,
5401 skip_serializing_if = "Option::is_none",
5402 deserialize_with = "double_option"
5403 )]
5404 pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
5405 #[serde(
5406 default,
5407 skip_serializing_if = "Option::is_none",
5408 deserialize_with = "double_option"
5409 )]
5410 pub content_created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
5411 #[serde(
5412 default,
5413 skip_serializing_if = "Option::is_none",
5414 deserialize_with = "double_option"
5415 )]
5416 pub content_modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
5417 #[serde(default, skip_serializing_if = "Option::is_none")]
5418 pub created_by: Option<UserMini>,
5419 pub modified_by: UserMini,
5420 pub owned_by: UserMini,
5421 #[serde(
5422 default,
5423 skip_serializing_if = "Option::is_none",
5424 deserialize_with = "double_option"
5425 )]
5426 pub shared_link: Option<Option<String>>,
5427 #[serde(
5428 default,
5429 skip_serializing_if = "Option::is_none",
5430 deserialize_with = "double_option"
5431 )]
5432 pub parent: Option<Option<FolderMini>>,
5433 pub item_status: FileItemStatus,
5434}
5435
5436#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5437pub struct TrashFileRestored {
5438 pub id: String,
5439 #[serde(
5440 default,
5441 skip_serializing_if = "Option::is_none",
5442 deserialize_with = "double_option"
5443 )]
5444 pub etag: Option<Option<String>>,
5445 pub r#type: AiCitationType,
5446 pub sequence_id: String,
5447 #[serde(default, skip_serializing_if = "Option::is_none")]
5448 pub name: Option<String>,
5449 pub sha1: String,
5450 #[serde(default, skip_serializing_if = "Option::is_none")]
5451 pub file_version: Option<FileVersionMini>,
5452 pub description: String,
5453 pub size: i64,
5454 pub path_collection: FilePathCollection,
5455 pub created_at: chrono::DateTime<chrono::Utc>,
5456 pub modified_at: chrono::DateTime<chrono::Utc>,
5457 #[serde(
5458 default,
5459 skip_serializing_if = "Option::is_none",
5460 deserialize_with = "double_option"
5461 )]
5462 pub trashed_at: Option<Option<String>>,
5463 #[serde(
5464 default,
5465 skip_serializing_if = "Option::is_none",
5466 deserialize_with = "double_option"
5467 )]
5468 pub purged_at: Option<Option<String>>,
5469 #[serde(
5470 default,
5471 skip_serializing_if = "Option::is_none",
5472 deserialize_with = "double_option"
5473 )]
5474 pub content_created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
5475 #[serde(
5476 default,
5477 skip_serializing_if = "Option::is_none",
5478 deserialize_with = "double_option"
5479 )]
5480 pub content_modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
5481 #[serde(default, skip_serializing_if = "Option::is_none")]
5482 pub created_by: Option<UserMini>,
5483 pub modified_by: UserMini,
5484 pub owned_by: UserMini,
5485 #[serde(
5486 default,
5487 skip_serializing_if = "Option::is_none",
5488 deserialize_with = "double_option"
5489 )]
5490 pub shared_link: Option<Option<String>>,
5491 #[serde(
5492 default,
5493 skip_serializing_if = "Option::is_none",
5494 deserialize_with = "double_option"
5495 )]
5496 pub parent: Option<Option<FolderMini>>,
5497 pub item_status: FileItemStatus,
5498}
5499
5500#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5501pub struct TrashFolder {
5502 pub id: String,
5503 #[serde(
5504 default,
5505 skip_serializing_if = "Option::is_none",
5506 deserialize_with = "double_option"
5507 )]
5508 pub etag: Option<Option<String>>,
5509 pub r#type: FolderType,
5510 #[serde(default, skip_serializing_if = "Option::is_none")]
5511 pub sequence_id: Option<String>,
5512 pub name: String,
5513 #[serde(
5514 default,
5515 skip_serializing_if = "Option::is_none",
5516 deserialize_with = "double_option"
5517 )]
5518 pub created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
5519 #[serde(
5520 default,
5521 skip_serializing_if = "Option::is_none",
5522 deserialize_with = "double_option"
5523 )]
5524 pub modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
5525 pub description: String,
5526 pub size: i64,
5527 pub path_collection: TrashFilePathCollection,
5528 pub created_by: UserMini,
5529 pub modified_by: UserMini,
5530 #[serde(
5531 default,
5532 skip_serializing_if = "Option::is_none",
5533 deserialize_with = "double_option"
5534 )]
5535 pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
5536 #[serde(
5537 default,
5538 skip_serializing_if = "Option::is_none",
5539 deserialize_with = "double_option"
5540 )]
5541 pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
5542 #[serde(
5543 default,
5544 skip_serializing_if = "Option::is_none",
5545 deserialize_with = "double_option"
5546 )]
5547 pub content_created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
5548 #[serde(
5549 default,
5550 skip_serializing_if = "Option::is_none",
5551 deserialize_with = "double_option"
5552 )]
5553 pub content_modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
5554 pub owned_by: UserMini,
5555 #[serde(
5556 default,
5557 skip_serializing_if = "Option::is_none",
5558 deserialize_with = "double_option"
5559 )]
5560 pub shared_link: Option<Option<String>>,
5561 #[serde(
5562 default,
5563 skip_serializing_if = "Option::is_none",
5564 deserialize_with = "double_option"
5565 )]
5566 pub folder_upload_email: Option<Option<String>>,
5567 #[serde(
5568 default,
5569 skip_serializing_if = "Option::is_none",
5570 deserialize_with = "double_option"
5571 )]
5572 pub parent: Option<Option<FolderMini>>,
5573 pub item_status: FileItemStatus,
5574}
5575
5576#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5577pub struct TrashFolderRestored {
5578 #[serde(default, skip_serializing_if = "Option::is_none")]
5579 pub id: Option<String>,
5580 #[serde(
5581 default,
5582 skip_serializing_if = "Option::is_none",
5583 deserialize_with = "double_option"
5584 )]
5585 pub etag: Option<Option<String>>,
5586 #[serde(default, skip_serializing_if = "Option::is_none")]
5587 pub r#type: Option<FolderType>,
5588 #[serde(default, skip_serializing_if = "Option::is_none")]
5589 pub sequence_id: Option<String>,
5590 #[serde(default, skip_serializing_if = "Option::is_none")]
5591 pub name: Option<String>,
5592 #[serde(
5593 default,
5594 skip_serializing_if = "Option::is_none",
5595 deserialize_with = "double_option"
5596 )]
5597 pub created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
5598 #[serde(
5599 default,
5600 skip_serializing_if = "Option::is_none",
5601 deserialize_with = "double_option"
5602 )]
5603 pub modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
5604 #[serde(default, skip_serializing_if = "Option::is_none")]
5605 pub description: Option<String>,
5606 #[serde(default, skip_serializing_if = "Option::is_none")]
5607 pub size: Option<i64>,
5608 #[serde(default, skip_serializing_if = "Option::is_none")]
5609 pub path_collection: Option<FilePathCollection>,
5610 #[serde(default, skip_serializing_if = "Option::is_none")]
5611 pub created_by: Option<UserMini>,
5612 #[serde(default, skip_serializing_if = "Option::is_none")]
5613 pub modified_by: Option<UserMini>,
5614 #[serde(
5615 default,
5616 skip_serializing_if = "Option::is_none",
5617 deserialize_with = "double_option"
5618 )]
5619 pub trashed_at: Option<Option<String>>,
5620 #[serde(
5621 default,
5622 skip_serializing_if = "Option::is_none",
5623 deserialize_with = "double_option"
5624 )]
5625 pub purged_at: Option<Option<String>>,
5626 #[serde(
5627 default,
5628 skip_serializing_if = "Option::is_none",
5629 deserialize_with = "double_option"
5630 )]
5631 pub content_created_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
5632 #[serde(
5633 default,
5634 skip_serializing_if = "Option::is_none",
5635 deserialize_with = "double_option"
5636 )]
5637 pub content_modified_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
5638 #[serde(default, skip_serializing_if = "Option::is_none")]
5639 pub owned_by: Option<UserMini>,
5640 #[serde(
5641 default,
5642 skip_serializing_if = "Option::is_none",
5643 deserialize_with = "double_option"
5644 )]
5645 pub shared_link: Option<Option<String>>,
5646 #[serde(
5647 default,
5648 skip_serializing_if = "Option::is_none",
5649 deserialize_with = "double_option"
5650 )]
5651 pub folder_upload_email: Option<Option<String>>,
5652 #[serde(
5653 default,
5654 skip_serializing_if = "Option::is_none",
5655 deserialize_with = "double_option"
5656 )]
5657 pub parent: Option<Option<FolderMini>>,
5658 #[serde(default, skip_serializing_if = "Option::is_none")]
5659 pub item_status: Option<FileItemStatus>,
5660}
5661
5662#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5663pub struct TrashWebLink {
5664 #[serde(default, skip_serializing_if = "Option::is_none")]
5665 pub r#type: Option<TrashWebLinkType>,
5666 #[serde(default, skip_serializing_if = "Option::is_none")]
5667 pub id: Option<String>,
5668 #[serde(default, skip_serializing_if = "Option::is_none")]
5669 pub sequence_id: Option<String>,
5670 #[serde(default, skip_serializing_if = "Option::is_none")]
5671 pub etag: Option<String>,
5672 #[serde(default, skip_serializing_if = "Option::is_none")]
5673 pub name: Option<String>,
5674 #[serde(default, skip_serializing_if = "Option::is_none")]
5675 pub url: Option<String>,
5676 #[serde(default, skip_serializing_if = "Option::is_none")]
5677 pub parent: Option<FolderMini>,
5678 #[serde(default, skip_serializing_if = "Option::is_none")]
5679 pub description: Option<String>,
5680 #[serde(default, skip_serializing_if = "Option::is_none")]
5681 pub path_collection: Option<TrashFilePathCollection>,
5682 #[serde(default, skip_serializing_if = "Option::is_none")]
5683 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5684 #[serde(default, skip_serializing_if = "Option::is_none")]
5685 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
5686 #[serde(
5687 default,
5688 skip_serializing_if = "Option::is_none",
5689 deserialize_with = "double_option"
5690 )]
5691 pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
5692 #[serde(
5693 default,
5694 skip_serializing_if = "Option::is_none",
5695 deserialize_with = "double_option"
5696 )]
5697 pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
5698 #[serde(default, skip_serializing_if = "Option::is_none")]
5699 pub created_by: Option<UserMini>,
5700 #[serde(default, skip_serializing_if = "Option::is_none")]
5701 pub modified_by: Option<UserMini>,
5702 #[serde(default, skip_serializing_if = "Option::is_none")]
5703 pub owned_by: Option<UserMini>,
5704 #[serde(
5705 default,
5706 skip_serializing_if = "Option::is_none",
5707 deserialize_with = "double_option"
5708 )]
5709 pub shared_link: Option<Option<String>>,
5710 #[serde(default, skip_serializing_if = "Option::is_none")]
5711 pub item_status: Option<FileItemStatus>,
5712}
5713
5714#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5715pub struct TrashWebLinkRestored {
5716 #[serde(default, skip_serializing_if = "Option::is_none")]
5717 pub r#type: Option<TrashWebLinkType>,
5718 #[serde(default, skip_serializing_if = "Option::is_none")]
5719 pub id: Option<String>,
5720 pub sequence_id: String,
5721 #[serde(default, skip_serializing_if = "Option::is_none")]
5722 pub etag: Option<String>,
5723 #[serde(default, skip_serializing_if = "Option::is_none")]
5724 pub name: Option<String>,
5725 #[serde(default, skip_serializing_if = "Option::is_none")]
5726 pub url: Option<String>,
5727 #[serde(default, skip_serializing_if = "Option::is_none")]
5728 pub parent: Option<FolderMini>,
5729 #[serde(default, skip_serializing_if = "Option::is_none")]
5730 pub description: Option<String>,
5731 pub path_collection: FilePathCollection,
5732 #[serde(default, skip_serializing_if = "Option::is_none")]
5733 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5734 #[serde(default, skip_serializing_if = "Option::is_none")]
5735 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
5736 #[serde(
5737 default,
5738 skip_serializing_if = "Option::is_none",
5739 deserialize_with = "double_option"
5740 )]
5741 pub trashed_at: Option<Option<String>>,
5742 #[serde(
5743 default,
5744 skip_serializing_if = "Option::is_none",
5745 deserialize_with = "double_option"
5746 )]
5747 pub purged_at: Option<Option<String>>,
5748 #[serde(default, skip_serializing_if = "Option::is_none")]
5749 pub created_by: Option<UserMini>,
5750 #[serde(default, skip_serializing_if = "Option::is_none")]
5751 pub modified_by: Option<UserMini>,
5752 #[serde(default, skip_serializing_if = "Option::is_none")]
5753 pub owned_by: Option<UserMini>,
5754 #[serde(
5755 default,
5756 skip_serializing_if = "Option::is_none",
5757 deserialize_with = "double_option"
5758 )]
5759 pub shared_link: Option<Option<String>>,
5760 #[serde(default, skip_serializing_if = "Option::is_none")]
5761 pub item_status: Option<FileItemStatus>,
5762}
5763
5764#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5765pub struct UploadedPart {
5766 #[serde(default, skip_serializing_if = "Option::is_none")]
5767 pub part: Option<UploadPart>,
5768}
5769
5770#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5771pub struct UploadPart {
5772 #[serde(default, skip_serializing_if = "Option::is_none")]
5773 pub part_id: Option<String>,
5774 #[serde(default, skip_serializing_if = "Option::is_none")]
5775 pub offset: Option<i64>,
5776 #[serde(default, skip_serializing_if = "Option::is_none")]
5777 pub size: Option<i64>,
5778 #[serde(default, skip_serializing_if = "Option::is_none")]
5779 pub sha1: Option<String>,
5780}
5781
5782#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5783pub struct UploadPartMini {
5784 #[serde(default, skip_serializing_if = "Option::is_none")]
5785 pub part_id: Option<String>,
5786 #[serde(default, skip_serializing_if = "Option::is_none")]
5787 pub offset: Option<i64>,
5788 #[serde(default, skip_serializing_if = "Option::is_none")]
5789 pub size: Option<i64>,
5790}
5791
5792#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5793pub struct UploadParts {
5794 #[serde(default, skip_serializing_if = "Option::is_none")]
5795 pub total_count: Option<i64>,
5796 #[serde(default, skip_serializing_if = "Option::is_none")]
5797 pub limit: Option<i64>,
5798 #[serde(default, skip_serializing_if = "Option::is_none")]
5799 pub offset: Option<i64>,
5800 #[serde(default, skip_serializing_if = "Option::is_none")]
5801 pub order: Option<Vec<CollectionsOrder>>,
5802 #[serde(default, skip_serializing_if = "Option::is_none")]
5803 pub entries: Option<Vec<UploadPart>>,
5804}
5805
5806#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5807pub struct UploadSession {
5808 #[serde(default, skip_serializing_if = "Option::is_none")]
5809 pub id: Option<String>,
5810 #[serde(default, skip_serializing_if = "Option::is_none")]
5811 pub r#type: Option<UploadSessionType>,
5812 #[serde(default, skip_serializing_if = "Option::is_none")]
5813 pub session_expires_at: Option<chrono::DateTime<chrono::Utc>>,
5814 #[serde(default, skip_serializing_if = "Option::is_none")]
5815 pub part_size: Option<i64>,
5816 #[serde(default, skip_serializing_if = "Option::is_none")]
5817 pub total_parts: Option<i64>,
5818 #[serde(default, skip_serializing_if = "Option::is_none")]
5819 pub num_parts_processed: Option<i64>,
5820 #[serde(default, skip_serializing_if = "Option::is_none")]
5821 pub session_endpoints: Option<UploadSessionSessionEndpoints>,
5822}
5823
5824#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5825pub struct UploadUrl {
5826 #[serde(default, skip_serializing_if = "Option::is_none")]
5827 pub upload_url: Option<String>,
5828 #[serde(default, skip_serializing_if = "Option::is_none")]
5829 pub upload_token: Option<String>,
5830}
5831
5832#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5833pub struct User {
5834 pub id: String,
5835 pub r#type: VariableValueType,
5836 #[serde(default, skip_serializing_if = "Option::is_none")]
5837 pub name: Option<String>,
5838 #[serde(default, skip_serializing_if = "Option::is_none")]
5839 pub login: Option<String>,
5840 #[serde(default, skip_serializing_if = "Option::is_none")]
5841 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5842 #[serde(default, skip_serializing_if = "Option::is_none")]
5843 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
5844 #[serde(default, skip_serializing_if = "Option::is_none")]
5845 pub language: Option<String>,
5846 #[serde(default, skip_serializing_if = "Option::is_none")]
5847 pub timezone: Option<String>,
5848 #[serde(default, skip_serializing_if = "Option::is_none")]
5849 pub space_amount: Option<i64>,
5850 #[serde(default, skip_serializing_if = "Option::is_none")]
5851 pub space_used: Option<i64>,
5852 #[serde(default, skip_serializing_if = "Option::is_none")]
5853 pub max_upload_size: Option<i64>,
5854 #[serde(default, skip_serializing_if = "Option::is_none")]
5855 pub status: Option<UserStatus>,
5856 #[serde(default, skip_serializing_if = "Option::is_none")]
5857 pub job_title: Option<String>,
5858 #[serde(default, skip_serializing_if = "Option::is_none")]
5859 pub phone: Option<String>,
5860 #[serde(default, skip_serializing_if = "Option::is_none")]
5861 pub address: Option<String>,
5862 #[serde(default, skip_serializing_if = "Option::is_none")]
5863 pub avatar_url: Option<String>,
5864 #[serde(
5865 default,
5866 skip_serializing_if = "Option::is_none",
5867 deserialize_with = "double_option"
5868 )]
5869 pub notification_email: Option<Option<UserNotificationEmail>>,
5870}
5871
5872#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5873pub struct UserBase {
5874 pub id: String,
5875 pub r#type: VariableValueType,
5876}
5877
5878#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5879pub struct UserCollaborations {
5880 pub id: String,
5881 pub r#type: VariableValueType,
5882 #[serde(default, skip_serializing_if = "Option::is_none")]
5883 pub name: Option<String>,
5884 #[serde(default, skip_serializing_if = "Option::is_none")]
5885 pub login: Option<String>,
5886 #[serde(default, skip_serializing_if = "Option::is_none")]
5887 pub is_active: Option<bool>,
5888}
5889
5890#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5891pub struct UserFull {
5892 pub id: String,
5893 pub r#type: VariableValueType,
5894 #[serde(default, skip_serializing_if = "Option::is_none")]
5895 pub name: Option<String>,
5896 #[serde(default, skip_serializing_if = "Option::is_none")]
5897 pub login: Option<String>,
5898 #[serde(default, skip_serializing_if = "Option::is_none")]
5899 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
5900 #[serde(default, skip_serializing_if = "Option::is_none")]
5901 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
5902 #[serde(default, skip_serializing_if = "Option::is_none")]
5903 pub language: Option<String>,
5904 #[serde(default, skip_serializing_if = "Option::is_none")]
5905 pub timezone: Option<String>,
5906 #[serde(default, skip_serializing_if = "Option::is_none")]
5907 pub space_amount: Option<i64>,
5908 #[serde(default, skip_serializing_if = "Option::is_none")]
5909 pub space_used: Option<i64>,
5910 #[serde(default, skip_serializing_if = "Option::is_none")]
5911 pub max_upload_size: Option<i64>,
5912 #[serde(default, skip_serializing_if = "Option::is_none")]
5913 pub status: Option<UserStatus>,
5914 #[serde(default, skip_serializing_if = "Option::is_none")]
5915 pub job_title: Option<String>,
5916 #[serde(default, skip_serializing_if = "Option::is_none")]
5917 pub phone: Option<String>,
5918 #[serde(default, skip_serializing_if = "Option::is_none")]
5919 pub address: Option<String>,
5920 #[serde(default, skip_serializing_if = "Option::is_none")]
5921 pub avatar_url: Option<String>,
5922 #[serde(
5923 default,
5924 skip_serializing_if = "Option::is_none",
5925 deserialize_with = "double_option"
5926 )]
5927 pub notification_email: Option<Option<UserNotificationEmail>>,
5928 #[serde(default, skip_serializing_if = "Option::is_none")]
5929 pub role: Option<UserFullRole>,
5930 #[serde(default, skip_serializing_if = "Option::is_none")]
5931 pub tracking_codes: Option<Vec<TrackingCode>>,
5932 #[serde(default, skip_serializing_if = "Option::is_none")]
5933 pub can_see_managed_users: Option<bool>,
5934 #[serde(default, skip_serializing_if = "Option::is_none")]
5935 pub is_sync_enabled: Option<bool>,
5936 #[serde(default, skip_serializing_if = "Option::is_none")]
5937 pub is_external_collab_restricted: Option<bool>,
5938 #[serde(default, skip_serializing_if = "Option::is_none")]
5939 pub is_exempt_from_device_limits: Option<bool>,
5940 #[serde(default, skip_serializing_if = "Option::is_none")]
5941 pub is_exempt_from_login_verification: Option<bool>,
5942 #[serde(default, skip_serializing_if = "Option::is_none")]
5943 pub is_collaborated_content_available_when_owner_inactive: Option<bool>,
5944 #[serde(default, skip_serializing_if = "Option::is_none")]
5945 pub enterprise: Option<CollaborationAllowlistEntryEnterprise>,
5946 #[serde(default, skip_serializing_if = "Option::is_none")]
5947 pub my_tags: Option<Vec<String>>,
5948 #[serde(default, skip_serializing_if = "Option::is_none")]
5949 pub hostname: Option<String>,
5950 #[serde(default, skip_serializing_if = "Option::is_none")]
5951 pub is_platform_access_only: Option<bool>,
5952 #[serde(default, skip_serializing_if = "Option::is_none")]
5953 pub external_app_user_id: Option<String>,
5954}
5955
5956#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5957pub struct UserMini {
5958 pub id: String,
5959 pub r#type: VariableValueType,
5960 #[serde(default, skip_serializing_if = "Option::is_none")]
5961 pub name: Option<String>,
5962 #[serde(default, skip_serializing_if = "Option::is_none")]
5963 pub login: Option<String>,
5964}
5965
5966#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5967pub struct UserAvatar {
5968 #[serde(default, skip_serializing_if = "Option::is_none")]
5969 pub pic_urls: Option<UserAvatarPicUrls>,
5970}
5971
5972#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5973pub struct UserIntegrationMappings {
5974 pub id: String,
5975 pub r#type: VariableValueType,
5976 #[serde(default, skip_serializing_if = "Option::is_none")]
5977 pub name: Option<String>,
5978 #[serde(default, skip_serializing_if = "Option::is_none")]
5979 pub login: Option<String>,
5980}
5981
5982#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
5983pub struct Users {
5984 #[serde(default, skip_serializing_if = "Option::is_none")]
5985 pub limit: Option<i64>,
5986 #[serde(
5987 default,
5988 skip_serializing_if = "Option::is_none",
5989 deserialize_with = "double_option"
5990 )]
5991 pub next_marker: Option<Option<String>>,
5992 #[serde(
5993 default,
5994 skip_serializing_if = "Option::is_none",
5995 deserialize_with = "double_option"
5996 )]
5997 pub prev_marker: Option<Option<String>>,
5998 #[serde(default, skip_serializing_if = "Option::is_none")]
5999 pub total_count: Option<i64>,
6000 #[serde(default, skip_serializing_if = "Option::is_none")]
6001 pub offset: Option<i64>,
6002 #[serde(default, skip_serializing_if = "Option::is_none")]
6003 pub order: Option<Vec<CollectionsOrder>>,
6004 #[serde(default, skip_serializing_if = "Option::is_none")]
6005 pub entries: Option<Vec<UserFull>>,
6006}
6007
6008#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6009pub struct Watermark {
6010 #[serde(default, skip_serializing_if = "Option::is_none")]
6011 pub watermark: Option<WatermarkWatermark>,
6012}
6013
6014#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6015pub struct Webhook {
6016 #[serde(default, skip_serializing_if = "Option::is_none")]
6017 pub id: Option<String>,
6018 #[serde(default, skip_serializing_if = "Option::is_none")]
6019 pub r#type: Option<WebhookType>,
6020 #[serde(default, skip_serializing_if = "Option::is_none")]
6021 pub target: Option<WebhookTarget>,
6022 #[serde(default, skip_serializing_if = "Option::is_none")]
6023 pub created_by: Option<UserMini>,
6024 #[serde(default, skip_serializing_if = "Option::is_none")]
6025 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6026 #[serde(default, skip_serializing_if = "Option::is_none")]
6027 pub address: Option<String>,
6028 #[serde(default, skip_serializing_if = "Option::is_none")]
6029 pub triggers: Option<Vec<WebhookTriggers>>,
6030}
6031
6032#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6033pub struct WebhookMini {
6034 #[serde(default, skip_serializing_if = "Option::is_none")]
6035 pub id: Option<String>,
6036 #[serde(default, skip_serializing_if = "Option::is_none")]
6037 pub r#type: Option<WebhookType>,
6038 #[serde(default, skip_serializing_if = "Option::is_none")]
6039 pub target: Option<WebhookTarget>,
6040}
6041
6042#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6043pub struct Webhooks {
6044 #[serde(default, skip_serializing_if = "Option::is_none")]
6045 pub limit: Option<i64>,
6046 #[serde(
6047 default,
6048 skip_serializing_if = "Option::is_none",
6049 deserialize_with = "double_option"
6050 )]
6051 pub next_marker: Option<Option<String>>,
6052 #[serde(
6053 default,
6054 skip_serializing_if = "Option::is_none",
6055 deserialize_with = "double_option"
6056 )]
6057 pub prev_marker: Option<Option<String>>,
6058 #[serde(default, skip_serializing_if = "Option::is_none")]
6059 pub entries: Option<Vec<WebhookMini>>,
6060}
6061
6062#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6063pub struct WebLink {
6064 pub id: String,
6065 pub r#type: TrashWebLinkType,
6066 #[serde(default, skip_serializing_if = "Option::is_none")]
6067 pub etag: Option<String>,
6068 #[serde(default, skip_serializing_if = "Option::is_none")]
6069 pub url: Option<String>,
6070 #[serde(default, skip_serializing_if = "Option::is_none")]
6071 pub sequence_id: Option<String>,
6072 #[serde(default, skip_serializing_if = "Option::is_none")]
6073 pub name: Option<String>,
6074 #[serde(default, skip_serializing_if = "Option::is_none")]
6075 pub parent: Option<FolderMini>,
6076 #[serde(default, skip_serializing_if = "Option::is_none")]
6077 pub description: Option<String>,
6078 #[serde(default, skip_serializing_if = "Option::is_none")]
6079 pub path_collection: Option<FilePathCollection>,
6080 #[serde(default, skip_serializing_if = "Option::is_none")]
6081 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
6082 #[serde(default, skip_serializing_if = "Option::is_none")]
6083 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
6084 #[serde(
6085 default,
6086 skip_serializing_if = "Option::is_none",
6087 deserialize_with = "double_option"
6088 )]
6089 pub trashed_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
6090 #[serde(
6091 default,
6092 skip_serializing_if = "Option::is_none",
6093 deserialize_with = "double_option"
6094 )]
6095 pub purged_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
6096 #[serde(default, skip_serializing_if = "Option::is_none")]
6097 pub created_by: Option<UserMini>,
6098 #[serde(default, skip_serializing_if = "Option::is_none")]
6099 pub modified_by: Option<UserMini>,
6100 #[serde(default, skip_serializing_if = "Option::is_none")]
6101 pub owned_by: Option<UserMini>,
6102 #[serde(
6103 default,
6104 skip_serializing_if = "Option::is_none",
6105 deserialize_with = "double_option"
6106 )]
6107 pub shared_link: Option<Option<FileSharedLink>>,
6108 #[serde(default, skip_serializing_if = "Option::is_none")]
6109 pub item_status: Option<FileItemStatus>,
6110 #[serde(default, skip_serializing_if = "Option::is_none")]
6111 pub collections: Option<Vec<Collection>>,
6112 #[serde(default, skip_serializing_if = "Option::is_none")]
6113 pub allowed_shared_link_access_levels: Option<Vec<SharedLinkAccess>>,
6114}
6115
6116#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6117pub struct WebLinkBase {
6118 pub id: String,
6119 pub r#type: TrashWebLinkType,
6120 #[serde(default, skip_serializing_if = "Option::is_none")]
6121 pub etag: Option<String>,
6122}
6123
6124#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6125pub struct WebLinkMini {
6126 pub id: String,
6127 pub r#type: TrashWebLinkType,
6128 #[serde(default, skip_serializing_if = "Option::is_none")]
6129 pub etag: Option<String>,
6130 #[serde(default, skip_serializing_if = "Option::is_none")]
6131 pub url: Option<String>,
6132 #[serde(default, skip_serializing_if = "Option::is_none")]
6133 pub sequence_id: Option<String>,
6134 #[serde(default, skip_serializing_if = "Option::is_none")]
6135 pub name: Option<String>,
6136}
6137
6138#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6139pub struct Workflow {
6140 #[serde(default, skip_serializing_if = "Option::is_none")]
6141 pub id: Option<String>,
6142 #[serde(default, skip_serializing_if = "Option::is_none")]
6143 pub r#type: Option<WorkflowType>,
6144 #[serde(default, skip_serializing_if = "Option::is_none")]
6145 pub name: Option<String>,
6146 #[serde(default, skip_serializing_if = "Option::is_none")]
6147 pub description: Option<String>,
6148 #[serde(default, skip_serializing_if = "Option::is_none")]
6149 pub is_enabled: Option<bool>,
6150 #[serde(default, skip_serializing_if = "Option::is_none")]
6151 pub flows: Option<Vec<WorkflowFlows>>,
6152}
6153
6154#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6155pub struct WorkflowMini {
6156 #[serde(default, skip_serializing_if = "Option::is_none")]
6157 pub id: Option<String>,
6158 #[serde(default, skip_serializing_if = "Option::is_none")]
6159 pub r#type: Option<WorkflowType>,
6160 #[serde(default, skip_serializing_if = "Option::is_none")]
6161 pub name: Option<String>,
6162 #[serde(default, skip_serializing_if = "Option::is_none")]
6163 pub description: Option<String>,
6164 #[serde(default, skip_serializing_if = "Option::is_none")]
6165 pub is_enabled: Option<bool>,
6166}
6167
6168#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6169pub struct Workflows {
6170 #[serde(default, skip_serializing_if = "Option::is_none")]
6171 pub limit: Option<i64>,
6172 #[serde(
6173 default,
6174 skip_serializing_if = "Option::is_none",
6175 deserialize_with = "double_option"
6176 )]
6177 pub next_marker: Option<Option<String>>,
6178 #[serde(
6179 default,
6180 skip_serializing_if = "Option::is_none",
6181 deserialize_with = "double_option"
6182 )]
6183 pub prev_marker: Option<Option<String>>,
6184 #[serde(default, skip_serializing_if = "Option::is_none")]
6185 pub entries: Option<Vec<Workflow>>,
6186}
6187
6188#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6189pub struct ZipDownload {
6190 #[serde(default, skip_serializing_if = "Option::is_none")]
6191 pub download_url: Option<String>,
6192 #[serde(default, skip_serializing_if = "Option::is_none")]
6193 pub status_url: Option<String>,
6194 #[serde(default, skip_serializing_if = "Option::is_none")]
6195 pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
6196 #[serde(default, skip_serializing_if = "Option::is_none")]
6197 pub name_conflicts: Option<Vec<Vec<ZipDownloadNameConflicts>>>,
6198}
6199
6200#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6201pub struct ZipDownloadRequest {
6202 pub items: Vec<ZipDownloadRequestItems>,
6203 #[serde(default, skip_serializing_if = "Option::is_none")]
6204 pub download_file_name: Option<String>,
6205}
6206
6207#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6208pub struct ZipDownloadStatus {
6209 #[serde(default, skip_serializing_if = "Option::is_none")]
6210 pub total_file_count: Option<i64>,
6211 #[serde(default, skip_serializing_if = "Option::is_none")]
6212 pub downloaded_file_count: Option<i64>,
6213 #[serde(default, skip_serializing_if = "Option::is_none")]
6214 pub skipped_file_count: Option<i64>,
6215 #[serde(default, skip_serializing_if = "Option::is_none")]
6216 pub skipped_folder_count: Option<i64>,
6217 #[serde(default, skip_serializing_if = "Option::is_none")]
6218 pub state: Option<ZipDownloadStatusState>,
6219}
6220
6221#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6222#[serde(transparent)]
6223pub struct AccessTokenTokenType(pub String);
6224
6225impl AccessTokenTokenType {
6226 pub const BEARER: &'static str = "bearer";
6227}
6228
6229#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6230#[serde(transparent)]
6231pub struct AccessTokenIssuedTokenType(pub String);
6232
6233impl AccessTokenIssuedTokenType {
6234 pub const URN_IETF_PARAMS_OAUTH_TOKEN_TYPE_ACCESS_TOKEN: &'static str =
6235 "urn:ietf:params:oauth:token-type:access_token";
6236}
6237
6238#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6239#[serde(transparent)]
6240pub struct AiAgentAskType(pub String);
6241
6242impl AiAgentAskType {
6243 pub const AI_AGENT_ASK: &'static str = "ai_agent_ask";
6244}
6245
6246#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6247pub struct EmbeddingsStrategy {
6248 #[serde(default, skip_serializing_if = "Option::is_none")]
6249 pub id: Option<String>,
6250 #[serde(default, skip_serializing_if = "Option::is_none")]
6251 pub num_tokens_per_chunk: Option<i64>,
6252}
6253
6254#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6255pub struct AiAgentBasicGenToolEmbeddings {
6256 #[serde(default, skip_serializing_if = "Option::is_none")]
6257 pub model: Option<String>,
6258 #[serde(default, skip_serializing_if = "Option::is_none")]
6259 pub strategy: Option<EmbeddingsStrategy>,
6260}
6261
6262#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6263#[serde(transparent)]
6264pub struct AiAgentExtractType(pub String);
6265
6266impl AiAgentExtractType {
6267 pub const AI_AGENT_EXTRACT: &'static str = "ai_agent_extract";
6268}
6269
6270#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6271#[serde(transparent)]
6272pub struct AiAgentExtractStructuredType(pub String);
6273
6274impl AiAgentExtractStructuredType {
6275 pub const AI_AGENT_EXTRACT_STRUCTURED: &'static str = "ai_agent_extract_structured";
6276}
6277
6278#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6279pub struct AiAgentInfoModels {
6280 #[serde(default, skip_serializing_if = "Option::is_none")]
6281 pub name: Option<String>,
6282 #[serde(default, skip_serializing_if = "Option::is_none")]
6283 pub provider: Option<String>,
6284 #[serde(default, skip_serializing_if = "Option::is_none")]
6285 pub supported_purpose: Option<String>,
6286}
6287
6288#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6289#[serde(transparent)]
6290pub struct AiAgentReferenceType(pub String);
6291
6292impl AiAgentReferenceType {
6293 pub const AI_AGENT_ID: &'static str = "ai_agent_id";
6294}
6295
6296#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6297#[serde(transparent)]
6298pub struct AiAgentTextGenType(pub String);
6299
6300impl AiAgentTextGenType {
6301 pub const AI_AGENT_TEXT_GEN: &'static str = "ai_agent_text_gen";
6302}
6303
6304#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6305#[serde(transparent)]
6306pub struct AiAskMode(pub String);
6307
6308impl AiAskMode {
6309 pub const MULTIPLE_ITEM_QA: &'static str = "multiple_item_qa";
6310 pub const SINGLE_ITEM_QA: &'static str = "single_item_qa";
6311}
6312
6313#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6314#[serde(transparent)]
6315pub struct AiCitationType(pub String);
6316
6317impl AiCitationType {
6318 pub const FILE: &'static str = "file";
6319}
6320
6321#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6322#[serde(transparent)]
6323pub struct MetadataTemplateType(pub String);
6324
6325impl MetadataTemplateType {
6326 pub const METADATA_TEMPLATE: &'static str = "metadata_template";
6327}
6328
6329#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6330pub struct AiExtractStructuredMetadataTemplate {
6331 #[serde(default, skip_serializing_if = "Option::is_none")]
6332 pub template_key: Option<String>,
6333 #[serde(default, skip_serializing_if = "Option::is_none")]
6334 pub r#type: Option<MetadataTemplateType>,
6335 #[serde(default, skip_serializing_if = "Option::is_none")]
6336 pub scope: Option<String>,
6337}
6338
6339#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6340pub struct FieldsOptions {
6341 pub key: String,
6342}
6343
6344#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6345pub struct AiExtractStructuredFields {
6346 pub key: String,
6347 #[serde(default, skip_serializing_if = "Option::is_none")]
6348 pub description: Option<String>,
6349 #[serde(
6350 rename = "displayName",
6351 default,
6352 skip_serializing_if = "Option::is_none"
6353 )]
6354 pub display_name: Option<String>,
6355 #[serde(default, skip_serializing_if = "Option::is_none")]
6356 pub prompt: Option<String>,
6357 #[serde(default, skip_serializing_if = "Option::is_none")]
6358 pub r#type: Option<String>,
6359 #[serde(default, skip_serializing_if = "Option::is_none")]
6360 pub options: Option<Vec<FieldsOptions>>,
6361 #[serde(default, skip_serializing_if = "Option::is_none")]
6362 pub fields: Option<Vec<AiExtractSubField>>,
6363 #[serde(default, skip_serializing_if = "Option::is_none")]
6364 pub taxonomy_key: Option<String>,
6365 #[serde(default, skip_serializing_if = "Option::is_none")]
6366 pub namespace: Option<String>,
6367 #[serde(default, skip_serializing_if = "Option::is_none")]
6368 pub options_rules: Option<AiOptionsRules>,
6369}
6370
6371#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6372#[serde(transparent)]
6373pub struct AiItemAskType(pub String);
6374
6375impl AiItemAskType {
6376 pub const FILE: &'static str = "file";
6377 pub const HUBS: &'static str = "hubs";
6378}
6379
6380#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6381#[serde(transparent)]
6382pub struct AiLlmEndpointParamsAWSType(pub String);
6383
6384impl AiLlmEndpointParamsAWSType {
6385 pub const AWS_PARAMS: &'static str = "aws_params";
6386}
6387
6388#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6389#[serde(transparent)]
6390pub struct AiLlmEndpointParamsGoogleType(pub String);
6391
6392impl AiLlmEndpointParamsGoogleType {
6393 pub const GOOGLE_PARAMS: &'static str = "google_params";
6394}
6395
6396#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6397#[serde(transparent)]
6398pub struct AiLlmEndpointParamsIBMType(pub String);
6399
6400impl AiLlmEndpointParamsIBMType {
6401 pub const IBM_PARAMS: &'static str = "ibm_params";
6402}
6403
6404#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6405#[serde(transparent)]
6406pub struct AiLlmEndpointParamsOpenAiType(pub String);
6407
6408impl AiLlmEndpointParamsOpenAiType {
6409 pub const OPENAI_PARAMS: &'static str = "openai_params";
6410}
6411
6412#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6413#[serde(transparent)]
6414pub struct AiSingleAgentResponseType(pub String);
6415
6416impl AiSingleAgentResponseType {
6417 pub const AI_AGENT: &'static str = "ai_agent";
6418}
6419
6420#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6421#[serde(transparent)]
6422pub struct AiTaxonomyReferenceType(pub String);
6423
6424impl AiTaxonomyReferenceType {
6425 pub const TAXONOMY: &'static str = "taxonomy";
6426}
6427
6428#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6429pub struct AiTextGenItems {
6430 pub id: String,
6431 pub r#type: AiCitationType,
6432 #[serde(default, skip_serializing_if = "Option::is_none")]
6433 pub content: Option<String>,
6434}
6435
6436#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6437#[serde(transparent)]
6438pub struct AppItemType(pub String);
6439
6440impl AppItemType {
6441 pub const APP_ITEM: &'static str = "app_item";
6442}
6443
6444#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6445#[serde(transparent)]
6446pub struct AppItemAssociationType(pub String);
6447
6448impl AppItemAssociationType {
6449 pub const APP_ITEM_ASSOCIATION: &'static str = "app_item_association";
6450}
6451
6452#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6453#[serde(transparent)]
6454pub struct ClassificationTemplate2(pub String);
6455
6456impl ClassificationTemplate2 {
6457 pub const SECURITYCLASSIFICATION_6VMVOCHWUWO: &'static str =
6458 "securityClassification-6VMVochwUWo";
6459}
6460
6461#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6462#[serde(transparent)]
6463pub struct ClassificationTemplateDisplayName(pub String);
6464
6465impl ClassificationTemplateDisplayName {
6466 pub const CLASSIFICATION: &'static str = "Classification";
6467}
6468
6469#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6470#[serde(transparent)]
6471pub struct FieldsType(pub String);
6472
6473impl FieldsType {
6474 pub const ENUM: &'static str = "enum";
6475}
6476
6477#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6478#[serde(transparent)]
6479pub struct FieldsKey(pub String);
6480
6481impl FieldsKey {
6482 pub const BOX_SECURITY_CLASSIFICATION_KEY: &'static str = "Box__Security__Classification__Key";
6483}
6484
6485#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6486pub struct StaticConfigClassification {
6487 #[serde(
6488 rename = "classificationDefinition",
6489 default,
6490 skip_serializing_if = "Option::is_none"
6491 )]
6492 pub classification_definition: Option<String>,
6493 #[serde(rename = "colorID", default, skip_serializing_if = "Option::is_none")]
6494 pub color_id: Option<i64>,
6495}
6496
6497#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6498pub struct OptionsStaticConfig {
6499 #[serde(default, skip_serializing_if = "Option::is_none")]
6500 pub classification: Option<StaticConfigClassification>,
6501}
6502
6503#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6504pub struct ClassificationTemplateFieldsOptions {
6505 pub id: String,
6506 pub key: String,
6507 #[serde(
6508 rename = "staticConfig",
6509 default,
6510 skip_serializing_if = "Option::is_none"
6511 )]
6512 pub static_config: Option<OptionsStaticConfig>,
6513}
6514
6515#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6516pub struct ClassificationTemplateFields {
6517 pub id: String,
6518 pub r#type: FieldsType,
6519 pub key: FieldsKey,
6520 #[serde(rename = "displayName")]
6521 pub display_name: ClassificationTemplateDisplayName,
6522 #[serde(default, skip_serializing_if = "Option::is_none")]
6523 pub hidden: Option<bool>,
6524 pub options: Vec<ClassificationTemplateFieldsOptions>,
6525}
6526
6527#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6528#[serde(transparent)]
6529pub struct ClientErrorType(pub String);
6530
6531impl ClientErrorType {
6532 pub const ERROR: &'static str = "error";
6533}
6534
6535#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6536#[serde(transparent)]
6537pub struct ClientErrorCode(pub String);
6538
6539impl ClientErrorCode {
6540 pub const CREATED: &'static str = "created";
6541 pub const ACCEPTED: &'static str = "accepted";
6542 pub const NO_CONTENT: &'static str = "no_content";
6543 pub const REDIRECT: &'static str = "redirect";
6544 pub const NOT_MODIFIED: &'static str = "not_modified";
6545 pub const BAD_REQUEST: &'static str = "bad_request";
6546 pub const UNAUTHORIZED: &'static str = "unauthorized";
6547 pub const FORBIDDEN: &'static str = "forbidden";
6548 pub const NOT_FOUND: &'static str = "not_found";
6549 pub const METHOD_NOT_ALLOWED: &'static str = "method_not_allowed";
6550 pub const CONFLICT: &'static str = "conflict";
6551 pub const PRECONDITION_FAILED: &'static str = "precondition_failed";
6552 pub const TOO_MANY_REQUESTS: &'static str = "too_many_requests";
6553 pub const INTERNAL_SERVER_ERROR: &'static str = "internal_server_error";
6554 pub const UNAVAILABLE: &'static str = "unavailable";
6555 pub const ITEM_NAME_INVALID: &'static str = "item_name_invalid";
6556 pub const INSUFFICIENT_SCOPE: &'static str = "insufficient_scope";
6557}
6558
6559#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6560#[serde(transparent)]
6561pub struct CollaborationType(pub String);
6562
6563impl CollaborationType {
6564 pub const COLLABORATION: &'static str = "collaboration";
6565}
6566
6567#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6568#[serde(transparent)]
6569pub struct CollaborationRole(pub String);
6570
6571impl CollaborationRole {
6572 pub const EDITOR: &'static str = "editor";
6573 pub const VIEWER: &'static str = "viewer";
6574 pub const PREVIEWER: &'static str = "previewer";
6575 pub const UPLOADER: &'static str = "uploader";
6576 pub const PREVIEWER_UPLOADER: &'static str = "previewer uploader";
6577 pub const VIEWER_UPLOADER: &'static str = "viewer uploader";
6578 pub const CO_OWNER: &'static str = "co-owner";
6579 pub const OWNER: &'static str = "owner";
6580}
6581
6582#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6583#[serde(transparent)]
6584pub struct CollaborationStatus(pub String);
6585
6586impl CollaborationStatus {
6587 pub const ACCEPTED: &'static str = "accepted";
6588 pub const PENDING: &'static str = "pending";
6589 pub const REJECTED: &'static str = "rejected";
6590}
6591
6592#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6593pub struct AcceptanceRequirementsStatusTermsOfServiceRequirement {
6594 #[serde(
6595 default,
6596 skip_serializing_if = "Option::is_none",
6597 deserialize_with = "double_option"
6598 )]
6599 pub is_accepted: Option<Option<bool>>,
6600 #[serde(default, skip_serializing_if = "Option::is_none")]
6601 pub terms_of_service: Option<TermsOfServiceBase>,
6602}
6603
6604#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6605pub struct AcceptanceRequirementsStatusStrongPasswordRequirement {
6606 #[serde(default, skip_serializing_if = "Option::is_none")]
6607 pub enterprise_has_strong_password_required_for_external_users: Option<bool>,
6608 #[serde(
6609 default,
6610 skip_serializing_if = "Option::is_none",
6611 deserialize_with = "double_option"
6612 )]
6613 pub user_has_strong_password: Option<Option<bool>>,
6614}
6615
6616#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6617pub struct AcceptanceRequirementsStatusTwoFactorAuthenticationRequirement {
6618 #[serde(default, skip_serializing_if = "Option::is_none")]
6619 pub enterprise_has_two_factor_auth_enabled: Option<bool>,
6620 #[serde(
6621 default,
6622 skip_serializing_if = "Option::is_none",
6623 deserialize_with = "double_option"
6624 )]
6625 pub user_has_two_factor_authentication_enabled: Option<Option<bool>>,
6626}
6627
6628#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6629pub struct CollaborationAcceptanceRequirementsStatus {
6630 #[serde(default, skip_serializing_if = "Option::is_none")]
6631 pub terms_of_service_requirement: Option<AcceptanceRequirementsStatusTermsOfServiceRequirement>,
6632 #[serde(default, skip_serializing_if = "Option::is_none")]
6633 pub strong_password_requirement: Option<AcceptanceRequirementsStatusStrongPasswordRequirement>,
6634 #[serde(default, skip_serializing_if = "Option::is_none")]
6635 pub two_factor_authentication_requirement:
6636 Option<AcceptanceRequirementsStatusTwoFactorAuthenticationRequirement>,
6637}
6638
6639#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6640#[serde(transparent)]
6641pub struct CollaborationAllowlistEntryType(pub String);
6642
6643impl CollaborationAllowlistEntryType {
6644 pub const COLLABORATION_WHITELIST_ENTRY: &'static str = "collaboration_whitelist_entry";
6645}
6646
6647#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6648#[serde(transparent)]
6649pub struct CollaborationAllowlistEntryDirection(pub String);
6650
6651impl CollaborationAllowlistEntryDirection {
6652 pub const INBOUND: &'static str = "inbound";
6653 pub const OUTBOUND: &'static str = "outbound";
6654 pub const BOTH: &'static str = "both";
6655}
6656
6657#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6658#[serde(transparent)]
6659pub struct EnterpriseType(pub String);
6660
6661impl EnterpriseType {
6662 pub const ENTERPRISE: &'static str = "enterprise";
6663}
6664
6665#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6666pub struct CollaborationAllowlistEntryEnterprise {
6667 #[serde(default, skip_serializing_if = "Option::is_none")]
6668 pub id: Option<String>,
6669 #[serde(default, skip_serializing_if = "Option::is_none")]
6670 pub r#type: Option<EnterpriseType>,
6671 #[serde(default, skip_serializing_if = "Option::is_none")]
6672 pub name: Option<String>,
6673}
6674
6675#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6676#[serde(transparent)]
6677pub struct CollaborationAllowlistExemptTargetType(pub String);
6678
6679impl CollaborationAllowlistExemptTargetType {
6680 pub const COLLABORATION_WHITELIST_EXEMPT_TARGET: &'static str =
6681 "collaboration_whitelist_exempt_target";
6682}
6683
6684#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6685#[serde(transparent)]
6686pub struct CollaboratorVariableType(pub String);
6687
6688impl CollaboratorVariableType {
6689 pub const VARIABLE: &'static str = "variable";
6690}
6691
6692#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6693#[serde(transparent)]
6694pub struct CollaboratorVariableVariableType(pub String);
6695
6696impl CollaboratorVariableVariableType {
6697 pub const USER_LIST: &'static str = "user_list";
6698}
6699
6700#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6701#[serde(transparent)]
6702pub struct VariableValueType(pub String);
6703
6704impl VariableValueType {
6705 pub const USER: &'static str = "user";
6706}
6707
6708#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6709pub struct CollaboratorVariableVariableValue {
6710 pub r#type: VariableValueType,
6711 pub id: String,
6712}
6713
6714#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6715#[serde(transparent)]
6716pub struct CollectionType(pub String);
6717
6718impl CollectionType {
6719 pub const COLLECTION: &'static str = "collection";
6720}
6721
6722#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6723#[serde(transparent)]
6724pub struct CollectionName(pub String);
6725
6726impl CollectionName {
6727 pub const FAVORITES: &'static str = "Favorites";
6728}
6729
6730#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6731#[serde(transparent)]
6732pub struct CollectionCollectionType(pub String);
6733
6734impl CollectionCollectionType {
6735 pub const FAVORITES: &'static str = "favorites";
6736}
6737
6738#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6739#[serde(transparent)]
6740pub struct OrderDirection(pub String);
6741
6742impl OrderDirection {
6743 pub const ASC: &'static str = "ASC";
6744 pub const DESC: &'static str = "DESC";
6745}
6746
6747#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6748pub struct CollectionsOrder {
6749 #[serde(default, skip_serializing_if = "Option::is_none")]
6750 pub by: Option<String>,
6751 #[serde(default, skip_serializing_if = "Option::is_none")]
6752 pub direction: Option<OrderDirection>,
6753}
6754
6755#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6756#[serde(transparent)]
6757pub struct CommentType(pub String);
6758
6759impl CommentType {
6760 pub const COMMENT: &'static str = "comment";
6761}
6762
6763#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6764pub struct CommentItem {
6765 #[serde(default, skip_serializing_if = "Option::is_none")]
6766 pub id: Option<String>,
6767 #[serde(default, skip_serializing_if = "Option::is_none")]
6768 pub r#type: Option<String>,
6769}
6770
6771#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6772#[serde(transparent)]
6773pub struct CompletionRuleVariableVariableType(pub String);
6774
6775impl CompletionRuleVariableVariableType {
6776 pub const TASK_COMPLETION_RULE: &'static str = "task_completion_rule";
6777}
6778
6779#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6780#[serde(transparent)]
6781pub struct CompletionRuleVariableVariableValue(pub String);
6782
6783impl CompletionRuleVariableVariableValue {
6784 pub const ALL_ASSIGNEES: &'static str = "all_assignees";
6785 pub const ANY_ASSIGNEES: &'static str = "any_assignees";
6786}
6787
6788#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6789pub struct ConflictErrorContextInfo {
6790 #[serde(default, skip_serializing_if = "Option::is_none")]
6791 pub conflicts: Option<Vec<FileConflict>>,
6792}
6793
6794#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6795#[serde(transparent)]
6796pub struct DevicePinnerType(pub String);
6797
6798impl DevicePinnerType {
6799 pub const DEVICE_PINNER: &'static str = "device_pinner";
6800}
6801
6802#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6803#[serde(transparent)]
6804pub struct OrderBy(pub String);
6805
6806impl OrderBy {
6807 pub const ID: &'static str = "id";
6808}
6809
6810#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6811#[serde(transparent)]
6812pub struct DevicePinnersOrderDirection(pub String);
6813
6814impl DevicePinnersOrderDirection {
6815 pub const ASC: &'static str = "asc";
6816 pub const DESC: &'static str = "desc";
6817}
6818
6819#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6820pub struct DevicePinnersOrder {
6821 #[serde(default, skip_serializing_if = "Option::is_none")]
6822 pub by: Option<OrderBy>,
6823 #[serde(default, skip_serializing_if = "Option::is_none")]
6824 pub direction: Option<DevicePinnersOrderDirection>,
6825}
6826
6827#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6828#[serde(transparent)]
6829pub struct EmailAliasType(pub String);
6830
6831impl EmailAliasType {
6832 pub const EMAIL_ALIAS: &'static str = "email_alias";
6833}
6834
6835#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
6836#[serde(transparent)]
6837pub struct EventEventType(pub String);
6838
6839impl EventEventType {
6840 pub const ACCESS_GRANTED: &'static str = "ACCESS_GRANTED";
6841 pub const ACCESS_REVOKED: &'static str = "ACCESS_REVOKED";
6842 pub const ADD_DEVICE_ASSOCIATION: &'static str = "ADD_DEVICE_ASSOCIATION";
6843 pub const ADD_LOGIN_ACTIVITY_DEVICE: &'static str = "ADD_LOGIN_ACTIVITY_DEVICE";
6844 pub const ADMIN_LOGIN: &'static str = "ADMIN_LOGIN";
6845 pub const ADVANCED_FOLDER_SETTINGS_UPDATE: &'static str = "ADVANCED_FOLDER_SETTINGS_UPDATE";
6846 pub const AI_SECURITY_DETECTION: &'static str = "AI_SECURITY_DETECTION";
6847 pub const ANNOTATIONV2_CREATE: &'static str = "ANNOTATIONV2_CREATE";
6848 pub const ANNOTATIONV2_DELETE: &'static str = "ANNOTATIONV2_DELETE";
6849 pub const ANNOTATIONV2_EDIT: &'static str = "ANNOTATIONV2_EDIT";
6850 pub const APPLICATION_CREATED: &'static str = "APPLICATION_CREATED";
6851 pub const APPLICATION_PUBLIC_KEY_ADDED: &'static str = "APPLICATION_PUBLIC_KEY_ADDED";
6852 pub const APPLICATION_PUBLIC_KEY_DELETED: &'static str = "APPLICATION_PUBLIC_KEY_DELETED";
6853 pub const BOX_AI_USER_FAILED_REQUEST: &'static str = "BOX_AI_USER_FAILED_REQUEST";
6854 pub const BOX_AI_USER_REQUEST: &'static str = "BOX_AI_USER_REQUEST";
6855 pub const CHANGE_ADMIN_ROLE: &'static str = "CHANGE_ADMIN_ROLE";
6856 pub const CHANGE_FOLDER_PERMISSION: &'static str = "CHANGE_FOLDER_PERMISSION";
6857 pub const COLLABORATION_ACCEPT: &'static str = "COLLABORATION_ACCEPT";
6858 pub const COLLABORATION_EXPIRATION: &'static str = "COLLABORATION_EXPIRATION";
6859 pub const COLLABORATION_INVITE: &'static str = "COLLABORATION_INVITE";
6860 pub const COLLABORATION_REMOVE: &'static str = "COLLABORATION_REMOVE";
6861 pub const COLLABORATION_ROLE_CHANGE: &'static str = "COLLABORATION_ROLE_CHANGE";
6862 pub const COLLAB_ADD_COLLABORATOR: &'static str = "COLLAB_ADD_COLLABORATOR";
6863 pub const COLLAB_INVITE_COLLABORATOR: &'static str = "COLLAB_INVITE_COLLABORATOR";
6864 pub const COLLAB_REMOVE_COLLABORATOR: &'static str = "COLLAB_REMOVE_COLLABORATOR";
6865 pub const COLLAB_ROLE_CHANGE: &'static str = "COLLAB_ROLE_CHANGE";
6866 pub const COLLECTION_CREATE: &'static str = "COLLECTION_CREATE";
6867 pub const COLLECTION_DELETE: &'static str = "COLLECTION_DELETE";
6868 pub const COLLECTION_ITEM_CREATE: &'static str = "COLLECTION_ITEM_CREATE";
6869 pub const COLLECTION_ITEM_DELETE: &'static str = "COLLECTION_ITEM_DELETE";
6870 pub const COLLECTION_ITEM_UPDATE: &'static str = "COLLECTION_ITEM_UPDATE";
6871 pub const COLLECTION_UPDATE: &'static str = "COLLECTION_UPDATE";
6872 pub const COMMENT_CREATE: &'static str = "COMMENT_CREATE";
6873 pub const COMMENT_DELETE: &'static str = "COMMENT_DELETE";
6874 pub const COMMENT_EDIT: &'static str = "COMMENT_EDIT";
6875 pub const CONTENT_ACCESS: &'static str = "CONTENT_ACCESS";
6876 pub const CONTENT_RECOVERY_REPORT_CREATE: &'static str = "CONTENT_RECOVERY_REPORT_CREATE";
6877 pub const CONTENT_RECOVERY_REPORT_DELETE: &'static str = "CONTENT_RECOVERY_REPORT_DELETE";
6878 pub const CONTENT_RECOVERY_REPORT_INITIATE: &'static str = "CONTENT_RECOVERY_REPORT_INITIATE";
6879 pub const CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY: &'static str =
6880 "CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY";
6881 pub const CONTENT_WORKFLOW_AUTOMATION_ADD: &'static str = "CONTENT_WORKFLOW_AUTOMATION_ADD";
6882 pub const CONTENT_WORKFLOW_AUTOMATION_DELETE: &'static str =
6883 "CONTENT_WORKFLOW_AUTOMATION_DELETE";
6884 pub const CONTENT_WORKFLOW_POLICY_ADD: &'static str = "CONTENT_WORKFLOW_POLICY_ADD";
6885 pub const CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION: &'static str =
6886 "CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION";
6887 pub const CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION: &'static str =
6888 "CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION";
6889 pub const COPY: &'static str = "COPY";
6890 pub const DATA_RETENTION_CREATE_RETENTION: &'static str = "DATA_RETENTION_CREATE_RETENTION";
6891 pub const DATA_RETENTION_REMOVE_RETENTION: &'static str = "DATA_RETENTION_REMOVE_RETENTION";
6892 pub const DELETE: &'static str = "DELETE";
6893 pub const DELETE_USER: &'static str = "DELETE_USER";
6894 pub const DEVICE_TRUST_CHECK_FAILED: &'static str = "DEVICE_TRUST_CHECK_FAILED";
6895 pub const DISABLE_MULTI_FACTOR_AUTH: &'static str = "DISABLE_MULTI_FACTOR_AUTH";
6896 pub const DOWNLOAD: &'static str = "DOWNLOAD";
6897 pub const EDIT: &'static str = "EDIT";
6898 pub const EDIT_USER: &'static str = "EDIT_USER";
6899 pub const EDR_CROWDSTRIKE_ACCESS_ALLOWED_NO_CROWDSTRIKE_DEVICE: &'static str =
6900 "EDR_CROWDSTRIKE_ACCESS_ALLOWED_NO_CROWDSTRIKE_DEVICE";
6901 pub const EDR_CROWDSTRIKE_ACCESS_REVOKED: &'static str = "EDR_CROWDSTRIKE_ACCESS_REVOKED";
6902 pub const EDR_CROWDSTRIKE_BOX_TOOLS_OUTDATED: &'static str =
6903 "EDR_CROWDSTRIKE_BOX_TOOLS_OUTDATED";
6904 pub const EDR_CROWDSTRIKE_DEVICE_DETECTED: &'static str = "EDR_CROWDSTRIKE_DEVICE_DETECTED";
6905 pub const EDR_CROWDSTRIKE_DRIVE_OUTDATED: &'static str = "EDR_CROWDSTRIKE_DRIVE_OUTDATED";
6906 pub const EDR_CROWDSTRIKE_NO_BOX_TOOLS: &'static str = "EDR_CROWDSTRIKE_NO_BOX_TOOLS";
6907 pub const EMAIL_ALIAS_CONFIRM: &'static str = "EMAIL_ALIAS_CONFIRM";
6908 pub const EMAIL_ALIAS_PRIMARY: &'static str = "EMAIL_ALIAS_PRIMARY";
6909 pub const EMAIL_ALIAS_REMOVE: &'static str = "EMAIL_ALIAS_REMOVE";
6910 pub const EMAIL_UPLOAD_DISABLED: &'static str = "EMAIL_UPLOAD_DISABLED";
6911 pub const EMAIL_UPLOAD_ENABLED: &'static str = "EMAIL_UPLOAD_ENABLED";
6912 pub const ENABLE_MULTI_FACTOR_AUTH: &'static str = "ENABLE_MULTI_FACTOR_AUTH";
6913 pub const ENABLE_TWO_FACTOR_AUTH: &'static str = "ENABLE_TWO_FACTOR_AUTH";
6914 pub const ENTERPRISE_APP_AUTHORIZATION_UPDATE: &'static str =
6915 "ENTERPRISE_APP_AUTHORIZATION_UPDATE";
6916 pub const EXTERNAL_COLLAB_SECURITY_SETTINGS: &'static str = "EXTERNAL_COLLAB_SECURITY_SETTINGS";
6917 pub const FAILED_LOGIN: &'static str = "FAILED_LOGIN";
6918 pub const FAVORITE: &'static str = "FAVORITE";
6919 pub const FILE_MARKED_MALICIOUS: &'static str = "FILE_MARKED_MALICIOUS";
6920 pub const FILE_REQUEST_CREATE: &'static str = "FILE_REQUEST_CREATE";
6921 pub const FILE_REQUEST_DELETE: &'static str = "FILE_REQUEST_DELETE";
6922 pub const FILE_REQUEST_UPDATE: &'static str = "FILE_REQUEST_UPDATE";
6923 pub const FILE_VERSION_RESTORE: &'static str = "FILE_VERSION_RESTORE";
6924 pub const FILE_WATERMARKED_DOWNLOAD: &'static str = "FILE_WATERMARKED_DOWNLOAD";
6925 pub const GROUP_ADD_ITEM: &'static str = "GROUP_ADD_ITEM";
6926 pub const GROUP_ADD_USER: &'static str = "GROUP_ADD_USER";
6927 pub const GROUP_ADMIN_CREATED: &'static str = "GROUP_ADMIN_CREATED";
6928 pub const GROUP_ADMIN_DELETED: &'static str = "GROUP_ADMIN_DELETED";
6929 pub const GROUP_ADMIN_PERMISSIONS_UPDATED: &'static str = "GROUP_ADMIN_PERMISSIONS_UPDATED";
6930 pub const GROUP_CREATION: &'static str = "GROUP_CREATION";
6931 pub const GROUP_DELETION: &'static str = "GROUP_DELETION";
6932 pub const GROUP_EDITED: &'static str = "GROUP_EDITED";
6933 pub const GROUP_REMOVE_ITEM: &'static str = "GROUP_REMOVE_ITEM";
6934 pub const GROUP_REMOVE_USER: &'static str = "GROUP_REMOVE_USER";
6935 pub const ILLEGAL_ITEM_OWNERSHIP_TRANSFER_BY_USER: &'static str =
6936 "ILLEGAL_ITEM_OWNERSHIP_TRANSFER_BY_USER";
6937 pub const ITEM_ASSOCIATION_CREATED: &'static str = "ITEM_ASSOCIATION_CREATED";
6938 pub const ITEM_ASSOCIATION_DELETED: &'static str = "ITEM_ASSOCIATION_DELETED";
6939 pub const ITEM_ASSOCIATION_UPDATED: &'static str = "ITEM_ASSOCIATION_UPDATED";
6940 pub const ITEM_COPY: &'static str = "ITEM_COPY";
6941 pub const ITEM_CREATE: &'static str = "ITEM_CREATE";
6942 pub const ITEM_DOWNLOAD: &'static str = "ITEM_DOWNLOAD";
6943 pub const ITEM_EMAIL_SEND: &'static str = "ITEM_EMAIL_SEND";
6944 pub const ITEM_MAKE_CURRENT_VERSION: &'static str = "ITEM_MAKE_CURRENT_VERSION";
6945 pub const ITEM_MODIFY: &'static str = "ITEM_MODIFY";
6946 pub const ITEM_MOVE: &'static str = "ITEM_MOVE";
6947 pub const ITEM_OPEN: &'static str = "ITEM_OPEN";
6948 pub const ITEM_PREVIEW: &'static str = "ITEM_PREVIEW";
6949 pub const ITEM_RENAME: &'static str = "ITEM_RENAME";
6950 pub const ITEM_SHARED: &'static str = "ITEM_SHARED";
6951 pub const ITEM_SHARED_CREATE: &'static str = "ITEM_SHARED_CREATE";
6952 pub const ITEM_SHARED_UNSHARE: &'static str = "ITEM_SHARED_UNSHARE";
6953 pub const ITEM_SHARED_UPDATE: &'static str = "ITEM_SHARED_UPDATE";
6954 pub const ITEM_SYNC: &'static str = "ITEM_SYNC";
6955 pub const ITEM_TRASH: &'static str = "ITEM_TRASH";
6956 pub const ITEM_UNDELETE_VIA_TRASH: &'static str = "ITEM_UNDELETE_VIA_TRASH";
6957 pub const ITEM_UNSYNC: &'static str = "ITEM_UNSYNC";
6958 pub const ITEM_UPLOAD: &'static str = "ITEM_UPLOAD";
6959 pub const LEGAL_HOLD_ASSIGNMENT_CREATE: &'static str = "LEGAL_HOLD_ASSIGNMENT_CREATE";
6960 pub const LEGAL_HOLD_ASSIGNMENT_DELETE: &'static str = "LEGAL_HOLD_ASSIGNMENT_DELETE";
6961 pub const LEGAL_HOLD_POLICY_CREATE: &'static str = "LEGAL_HOLD_POLICY_CREATE";
6962 pub const LEGAL_HOLD_POLICY_DELETE: &'static str = "LEGAL_HOLD_POLICY_DELETE";
6963 pub const LEGAL_HOLD_POLICY_UPDATE: &'static str = "LEGAL_HOLD_POLICY_UPDATE";
6964 pub const LOCK: &'static str = "LOCK";
6965 pub const LOCK_CREATE: &'static str = "LOCK_CREATE";
6966 pub const LOCK_DESTROY: &'static str = "LOCK_DESTROY";
6967 pub const LOGIN: &'static str = "LOGIN";
6968 pub const MASTER_INVITE_ACCEPT: &'static str = "MASTER_INVITE_ACCEPT";
6969 pub const MASTER_INVITE_REJECT: &'static str = "MASTER_INVITE_REJECT";
6970 pub const METADATA_CASCADE_POLICY_APPLY: &'static str = "METADATA_CASCADE_POLICY_APPLY";
6971 pub const METADATA_CASCADE_POLICY_CREATE: &'static str = "METADATA_CASCADE_POLICY_CREATE";
6972 pub const METADATA_INSTANCE_COPY: &'static str = "METADATA_INSTANCE_COPY";
6973 pub const METADATA_INSTANCE_CREATE: &'static str = "METADATA_INSTANCE_CREATE";
6974 pub const METADATA_INSTANCE_DELETE: &'static str = "METADATA_INSTANCE_DELETE";
6975 pub const METADATA_INSTANCE_UPDATE: &'static str = "METADATA_INSTANCE_UPDATE";
6976 pub const METADATA_TEMPLATE_CREATE: &'static str = "METADATA_TEMPLATE_CREATE";
6977 pub const METADATA_TEMPLATE_DELETE: &'static str = "METADATA_TEMPLATE_DELETE";
6978 pub const METADATA_TEMPLATE_UPDATE: &'static str = "METADATA_TEMPLATE_UPDATE";
6979 pub const MOVE: &'static str = "MOVE";
6980 pub const NEW_USER: &'static str = "NEW_USER";
6981 pub const OAUTH2_ACCESS_TOKEN_REVOKE: &'static str = "OAUTH2_ACCESS_TOKEN_REVOKE";
6982 pub const OAUTH2_REFRESH_TOKEN_REVOKE: &'static str = "OAUTH2_REFRESH_TOKEN_REVOKE";
6983 pub const PREVIEW: &'static str = "PREVIEW";
6984 pub const REMOVE_DEVICE_ASSOCIATION: &'static str = "REMOVE_DEVICE_ASSOCIATION";
6985 pub const REMOVE_LOGIN_ACTIVITY_DEVICE: &'static str = "REMOVE_LOGIN_ACTIVITY_DEVICE";
6986 pub const RENAME: &'static str = "RENAME";
6987 pub const RETENTION_POLICY_ASSIGNMENT_ADD: &'static str = "RETENTION_POLICY_ASSIGNMENT_ADD";
6988 pub const SHARE: &'static str = "SHARE";
6989 pub const SHARED_LINK_REDIRECT_OUT_OF_SHARED_CONTEXT: &'static str =
6990 "SHARED_LINK_REDIRECT_OUT_OF_SHARED_CONTEXT";
6991 pub const SHARED_LINK_SEND: &'static str = "SHARED_LINK_SEND";
6992 pub const SHARE_EXPIRATION: &'static str = "SHARE_EXPIRATION";
6993 pub const SHIELD_ACCESS_POLICY_CREATED: &'static str = "SHIELD_ACCESS_POLICY_CREATED";
6994 pub const SHIELD_ACCESS_POLICY_DELETED: &'static str = "SHIELD_ACCESS_POLICY_DELETED";
6995 pub const SHIELD_ACCESS_POLICY_UPDATED: &'static str = "SHIELD_ACCESS_POLICY_UPDATED";
6996 pub const SHIELD_ALERT: &'static str = "SHIELD_ALERT";
6997 pub const SHIELD_DOWNLOAD_BLOCKED: &'static str = "SHIELD_DOWNLOAD_BLOCKED";
6998 pub const SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED: &'static str =
6999 "SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED";
7000 pub const SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION: &'static str =
7001 "SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION";
7002 pub const SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED: &'static str =
7003 "SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED";
7004 pub const SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION: &'static str =
7005 "SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION";
7006 pub const SHIELD_EXTERNAL_COLLAB_INVITE_JUSTIFIED: &'static str =
7007 "SHIELD_EXTERNAL_COLLAB_INVITE_JUSTIFIED";
7008 pub const SHIELD_INFORMATION_BARRIER_COLLAB_BLOCKED: &'static str =
7009 "SHIELD_INFORMATION_BARRIER_COLLAB_BLOCKED";
7010 pub const SHIELD_INFORMATION_BARRIER_DISABLED: &'static str =
7011 "SHIELD_INFORMATION_BARRIER_DISABLED";
7012 pub const SHIELD_INFORMATION_BARRIER_ENABLED: &'static str =
7013 "SHIELD_INFORMATION_BARRIER_ENABLED";
7014 pub const SHIELD_INFORMATION_BARRIER_GROUP_ADD_USER_BLOCKED: &'static str =
7015 "SHIELD_INFORMATION_BARRIER_GROUP_ADD_USER_BLOCKED";
7016 pub const SHIELD_INFORMATION_BARRIER_ITEM_COPY_BLOCKED: &'static str =
7017 "SHIELD_INFORMATION_BARRIER_ITEM_COPY_BLOCKED";
7018 pub const SHIELD_INFORMATION_BARRIER_ITEM_MOVE_BLOCKED: &'static str =
7019 "SHIELD_INFORMATION_BARRIER_ITEM_MOVE_BLOCKED";
7020 pub const SHIELD_INFORMATION_BARRIER_ITEM_OWNER_TRANSFER_BLOCKED: &'static str =
7021 "SHIELD_INFORMATION_BARRIER_ITEM_OWNER_TRANSFER_BLOCKED";
7022 pub const SHIELD_INFORMATION_BARRIER_PENDING: &'static str =
7023 "SHIELD_INFORMATION_BARRIER_PENDING";
7024 pub const SHIELD_INFORMATION_BARRIER_SHARED_ITEM_ACCESS_BLOCKED: &'static str =
7025 "SHIELD_INFORMATION_BARRIER_SHARED_ITEM_ACCESS_BLOCKED";
7026 pub const SHIELD_JUSTIFICATION_APPROVAL: &'static str = "SHIELD_JUSTIFICATION_APPROVAL";
7027 pub const SHIELD_PREVIEW_BLOCKED: &'static str = "SHIELD_PREVIEW_BLOCKED";
7028 pub const SHIELD_SHARED_LINK_ACCESS_BLOCKED: &'static str = "SHIELD_SHARED_LINK_ACCESS_BLOCKED";
7029 pub const SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE: &'static str =
7030 "SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE";
7031 pub const SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE: &'static str =
7032 "SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE";
7033 pub const SIGN_DOCUMENT_ASSIGNED: &'static str = "SIGN_DOCUMENT_ASSIGNED";
7034 pub const SIGN_DOCUMENT_CANCELLED: &'static str = "SIGN_DOCUMENT_CANCELLED";
7035 pub const SIGN_DOCUMENT_COMPLETED: &'static str = "SIGN_DOCUMENT_COMPLETED";
7036 pub const SIGN_DOCUMENT_CONVERTED: &'static str = "SIGN_DOCUMENT_CONVERTED";
7037 pub const SIGN_DOCUMENT_CREATED: &'static str = "SIGN_DOCUMENT_CREATED";
7038 pub const SIGN_DOCUMENT_DECLINED: &'static str = "SIGN_DOCUMENT_DECLINED";
7039 pub const SIGN_DOCUMENT_EXPIRED: &'static str = "SIGN_DOCUMENT_EXPIRED";
7040 pub const SIGN_DOCUMENT_SIGNED: &'static str = "SIGN_DOCUMENT_SIGNED";
7041 pub const SIGN_DOCUMENT_VIEWED_BY_SIGNED: &'static str = "SIGN_DOCUMENT_VIEWED_BY_SIGNED";
7042 pub const SIGN_DOCUMENT_VIEWED_BY_SIGNER: &'static str = "SIGN_DOCUMENT_VIEWED_BY_SIGNER";
7043 pub const SIGNER_DOWNLOADED: &'static str = "SIGNER_DOWNLOADED";
7044 pub const SIGNER_FORWARDED: &'static str = "SIGNER_FORWARDED";
7045 pub const STORAGE_EXPIRATION: &'static str = "STORAGE_EXPIRATION";
7046 pub const TAG_ITEM_CREATE: &'static str = "TAG_ITEM_CREATE";
7047 pub const TASK_ASSIGNMENT_CREATE: &'static str = "TASK_ASSIGNMENT_CREATE";
7048 pub const TASK_ASSIGNMENT_DELETE: &'static str = "TASK_ASSIGNMENT_DELETE";
7049 pub const TASK_ASSIGNMENT_UPDATE: &'static str = "TASK_ASSIGNMENT_UPDATE";
7050 pub const TASK_CREATE: &'static str = "TASK_CREATE";
7051 pub const TASK_UPDATE: &'static str = "TASK_UPDATE";
7052 pub const TERMS_OF_SERVICE_ACCEPT: &'static str = "TERMS_OF_SERVICE_ACCEPT";
7053 pub const TERMS_OF_SERVICE_REJECT: &'static str = "TERMS_OF_SERVICE_REJECT";
7054 pub const UNDELETE: &'static str = "UNDELETE";
7055 pub const UNFAVORITE: &'static str = "UNFAVORITE";
7056 pub const UNLOCK: &'static str = "UNLOCK";
7057 pub const UNSHARE: &'static str = "UNSHARE";
7058 pub const UPDATE_COLLABORATION_EXPIRATION: &'static str = "UPDATE_COLLABORATION_EXPIRATION";
7059 pub const UPDATE_SHARE_EXPIRATION: &'static str = "UPDATE_SHARE_EXPIRATION";
7060 pub const UPLOAD: &'static str = "UPLOAD";
7061 pub const USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE: &'static str =
7062 "USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE";
7063 pub const WATERMARK_LABEL_CREATE: &'static str = "WATERMARK_LABEL_CREATE";
7064 pub const WATERMARK_LABEL_DELETE: &'static str = "WATERMARK_LABEL_DELETE";
7065 pub const WORKFLOW_AUTOMATION_CREATE: &'static str = "WORKFLOW_AUTOMATION_CREATE";
7066 pub const WORKFLOW_AUTOMATION_DELETE: &'static str = "WORKFLOW_AUTOMATION_DELETE";
7067 pub const WORKFLOW_AUTOMATION_UPDATE: &'static str = "WORKFLOW_AUTOMATION_UPDATE";
7068}
7069
7070#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7071#[serde(transparent)]
7072pub struct EventsNextStreamPosition(pub serde_json::Value);
7073
7074#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7075#[serde(transparent)]
7076pub struct EventSourceItemType(pub String);
7077
7078impl EventSourceItemType {
7079 pub const FILE: &'static str = "file";
7080 pub const FOLDER: &'static str = "folder";
7081}
7082
7083#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7084pub struct EventSourceClassification {
7085 #[serde(default, skip_serializing_if = "Option::is_none")]
7086 pub name: Option<String>,
7087}
7088
7089#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7090pub struct FilePathCollection {
7091 pub total_count: i64,
7092 pub entries: Vec<FolderMini>,
7093}
7094
7095#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7096#[serde(transparent)]
7097pub struct SharedLinkAccess(pub String);
7098
7099impl SharedLinkAccess {
7100 pub const OPEN: &'static str = "open";
7101 pub const COMPANY: &'static str = "company";
7102 pub const COLLABORATORS: &'static str = "collaborators";
7103}
7104
7105#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7106#[serde(transparent)]
7107pub struct SharedLinkEffectivePermission(pub String);
7108
7109impl SharedLinkEffectivePermission {
7110 pub const CAN_EDIT: &'static str = "can_edit";
7111 pub const CAN_DOWNLOAD: &'static str = "can_download";
7112 pub const CAN_PREVIEW: &'static str = "can_preview";
7113 pub const NO_ACCESS: &'static str = "no_access";
7114}
7115
7116#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7117pub struct SharedLinkPermissions {
7118 #[serde(default, skip_serializing_if = "Option::is_none")]
7119 pub can_download: Option<bool>,
7120 #[serde(default, skip_serializing_if = "Option::is_none")]
7121 pub can_preview: Option<bool>,
7122 #[serde(default, skip_serializing_if = "Option::is_none")]
7123 pub can_edit: Option<bool>,
7124 #[serde(
7125 default,
7126 skip_serializing_if = "Option::is_none",
7127 deserialize_with = "double_option"
7128 )]
7129 pub shared_links_option: Option<Option<String>>,
7130 #[serde(
7131 default,
7132 skip_serializing_if = "Option::is_none",
7133 deserialize_with = "double_option"
7134 )]
7135 pub default_shared_link_type: Option<Option<String>>,
7136 #[serde(
7137 default,
7138 skip_serializing_if = "Option::is_none",
7139 deserialize_with = "double_option"
7140 )]
7141 pub notes_shared_link_option: Option<Option<String>>,
7142 #[serde(
7143 default,
7144 skip_serializing_if = "Option::is_none",
7145 deserialize_with = "double_option"
7146 )]
7147 pub default_notes_shared_link_type: Option<Option<String>>,
7148}
7149
7150#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7151pub struct FileSharedLink {
7152 pub url: String,
7153 #[serde(
7154 default,
7155 skip_serializing_if = "Option::is_none",
7156 deserialize_with = "double_option"
7157 )]
7158 pub download_url: Option<Option<String>>,
7159 #[serde(
7160 default,
7161 skip_serializing_if = "Option::is_none",
7162 deserialize_with = "double_option"
7163 )]
7164 pub vanity_url: Option<Option<String>>,
7165 #[serde(
7166 default,
7167 skip_serializing_if = "Option::is_none",
7168 deserialize_with = "double_option"
7169 )]
7170 pub vanity_name: Option<Option<String>>,
7171 #[serde(default, skip_serializing_if = "Option::is_none")]
7172 pub access: Option<SharedLinkAccess>,
7173 pub effective_access: SharedLinkAccess,
7174 pub effective_permission: SharedLinkEffectivePermission,
7175 #[serde(
7176 default,
7177 skip_serializing_if = "Option::is_none",
7178 deserialize_with = "double_option"
7179 )]
7180 pub unshared_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
7181 pub is_password_enabled: bool,
7182 #[serde(default, skip_serializing_if = "Option::is_none")]
7183 pub permissions: Option<SharedLinkPermissions>,
7184 pub download_count: i64,
7185 pub preview_count: i64,
7186}
7187
7188#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7189#[serde(transparent)]
7190pub struct FileItemStatus(pub String);
7191
7192impl FileItemStatus {
7193 pub const ACTIVE: &'static str = "active";
7194 pub const TRASHED: &'static str = "trashed";
7195 pub const DELETED: &'static str = "deleted";
7196}
7197
7198#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7199pub struct FileFullPermissions {
7200 pub can_delete: bool,
7201 pub can_download: bool,
7202 pub can_invite_collaborator: bool,
7203 pub can_rename: bool,
7204 pub can_set_share_access: bool,
7205 pub can_share: bool,
7206 pub can_annotate: bool,
7207 pub can_comment: bool,
7208 pub can_preview: bool,
7209 pub can_upload: bool,
7210 pub can_view_annotations_all: bool,
7211 pub can_view_annotations_self: bool,
7212 #[serde(default, skip_serializing_if = "Option::is_none")]
7213 pub can_apply_watermark: Option<bool>,
7214}
7215
7216#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7217#[serde(transparent)]
7218pub struct LockType(pub String);
7219
7220impl LockType {
7221 pub const LOCK: &'static str = "lock";
7222}
7223
7224#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7225#[serde(transparent)]
7226pub struct LockAppType(pub String);
7227
7228impl LockAppType {
7229 pub const GSUITE: &'static str = "gsuite";
7230 pub const OFFICE_WOPI: &'static str = "office_wopi";
7231 pub const OFFICE_WOPIPLUS: &'static str = "office_wopiplus";
7232 pub const OTHER: &'static str = "other";
7233}
7234
7235#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7236pub struct FileFullLock {
7237 #[serde(default, skip_serializing_if = "Option::is_none")]
7238 pub id: Option<String>,
7239 #[serde(default, skip_serializing_if = "Option::is_none")]
7240 pub r#type: Option<LockType>,
7241 #[serde(default, skip_serializing_if = "Option::is_none")]
7242 pub created_by: Option<UserMini>,
7243 #[serde(default, skip_serializing_if = "Option::is_none")]
7244 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
7245 #[serde(default, skip_serializing_if = "Option::is_none")]
7246 pub expired_at: Option<chrono::DateTime<chrono::Utc>>,
7247 #[serde(default, skip_serializing_if = "Option::is_none")]
7248 pub is_download_prevented: Option<bool>,
7249 #[serde(
7250 default,
7251 skip_serializing_if = "Option::is_none",
7252 deserialize_with = "double_option"
7253 )]
7254 pub app_type: Option<Option<LockAppType>>,
7255}
7256
7257#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7258pub struct FileFullExpiringEmbedLink {
7259 #[serde(default, skip_serializing_if = "Option::is_none")]
7260 pub access_token: Option<String>,
7261 #[serde(default, skip_serializing_if = "Option::is_none")]
7262 pub expires_in: Option<i64>,
7263 #[serde(default, skip_serializing_if = "Option::is_none")]
7264 pub token_type: Option<AccessTokenTokenType>,
7265 #[serde(default, skip_serializing_if = "Option::is_none")]
7266 pub restricted_to: Option<Vec<ResourceScope>>,
7267 #[serde(default, skip_serializing_if = "Option::is_none")]
7268 pub url: Option<String>,
7269}
7270
7271#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7272pub struct FileFullWatermarkInfo {
7273 #[serde(default, skip_serializing_if = "Option::is_none")]
7274 pub is_watermarked: Option<bool>,
7275 #[serde(default, skip_serializing_if = "Option::is_none")]
7276 pub is_watermark_inherited: Option<bool>,
7277 #[serde(default, skip_serializing_if = "Option::is_none")]
7278 pub is_watermarked_by_access_policy: Option<bool>,
7279}
7280
7281#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7282#[serde(transparent)]
7283pub struct FileFullAllowedInviteeRoles(pub String);
7284
7285impl FileFullAllowedInviteeRoles {
7286 pub const EDITOR: &'static str = "editor";
7287 pub const VIEWER: &'static str = "viewer";
7288 pub const PREVIEWER: &'static str = "previewer";
7289 pub const UPLOADER: &'static str = "uploader";
7290 pub const PREVIEWER_UPLOADER: &'static str = "previewer uploader";
7291 pub const VIEWER_UPLOADER: &'static str = "viewer uploader";
7292 pub const CO_OWNER: &'static str = "co-owner";
7293}
7294
7295#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7296pub struct EntriesContent {
7297 #[serde(default, skip_serializing_if = "Option::is_none")]
7298 pub url_template: Option<String>,
7299}
7300
7301#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7302pub struct EntriesInfo {
7303 #[serde(default, skip_serializing_if = "Option::is_none")]
7304 pub url: Option<String>,
7305}
7306
7307#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7308pub struct EntriesProperties {
7309 #[serde(default, skip_serializing_if = "Option::is_none")]
7310 pub dimensions: Option<String>,
7311 #[serde(default, skip_serializing_if = "Option::is_none")]
7312 pub paged: Option<String>,
7313 #[serde(default, skip_serializing_if = "Option::is_none")]
7314 pub thumb: Option<String>,
7315}
7316
7317#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7318#[serde(transparent)]
7319pub struct StatusState(pub String);
7320
7321impl StatusState {
7322 pub const SUCCESS: &'static str = "success";
7323 pub const VIEWABLE: &'static str = "viewable";
7324 pub const PENDING: &'static str = "pending";
7325 pub const NONE: &'static str = "none";
7326}
7327
7328#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7329pub struct EntriesStatus {
7330 #[serde(default, skip_serializing_if = "Option::is_none")]
7331 pub state: Option<StatusState>,
7332}
7333
7334#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7335pub struct RepresentationsEntries {
7336 #[serde(default, skip_serializing_if = "Option::is_none")]
7337 pub content: Option<EntriesContent>,
7338 #[serde(default, skip_serializing_if = "Option::is_none")]
7339 pub info: Option<EntriesInfo>,
7340 #[serde(default, skip_serializing_if = "Option::is_none")]
7341 pub properties: Option<EntriesProperties>,
7342 #[serde(default, skip_serializing_if = "Option::is_none")]
7343 pub representation: Option<String>,
7344 #[serde(default, skip_serializing_if = "Option::is_none")]
7345 pub status: Option<EntriesStatus>,
7346}
7347
7348#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7349pub struct FileFullRepresentations {
7350 #[serde(default, skip_serializing_if = "Option::is_none")]
7351 pub entries: Option<Vec<RepresentationsEntries>>,
7352}
7353
7354#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7355pub struct FileFullClassification {
7356 #[serde(default, skip_serializing_if = "Option::is_none")]
7357 pub name: Option<String>,
7358 #[serde(default, skip_serializing_if = "Option::is_none")]
7359 pub definition: Option<String>,
7360 #[serde(default, skip_serializing_if = "Option::is_none")]
7361 pub color: Option<String>,
7362}
7363
7364#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7365#[serde(transparent)]
7366pub struct FileFullSharedLinkPermissionOptions(pub String);
7367
7368impl FileFullSharedLinkPermissionOptions {
7369 pub const CAN_PREVIEW: &'static str = "can_preview";
7370 pub const CAN_DOWNLOAD: &'static str = "can_download";
7371 pub const CAN_EDIT: &'static str = "can_edit";
7372}
7373
7374#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7375#[serde(transparent)]
7376pub struct FileRequestType(pub String);
7377
7378impl FileRequestType {
7379 pub const FILE_REQUEST: &'static str = "file_request";
7380}
7381
7382#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7383#[serde(transparent)]
7384pub struct FileRequestStatus(pub String);
7385
7386impl FileRequestStatus {
7387 pub const ACTIVE: &'static str = "active";
7388 pub const INACTIVE: &'static str = "inactive";
7389}
7390
7391#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7392#[serde(transparent)]
7393pub struct FolderType(pub String);
7394
7395impl FolderType {
7396 pub const FOLDER: &'static str = "folder";
7397}
7398
7399#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7400pub struct FileRequestCopyRequestFolder {
7401 #[serde(default, skip_serializing_if = "Option::is_none")]
7402 pub r#type: Option<FolderType>,
7403 pub id: String,
7404}
7405
7406#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7407#[serde(transparent)]
7408pub struct FileVersionType(pub String);
7409
7410impl FileVersionType {
7411 pub const FILE_VERSION: &'static str = "file_version";
7412}
7413
7414#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7415#[serde(transparent)]
7416pub struct FileVersionLegalHoldType(pub String);
7417
7418impl FileVersionLegalHoldType {
7419 pub const FILE_VERSION_LEGAL_HOLD: &'static str = "file_version_legal_hold";
7420}
7421
7422#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7423#[serde(transparent)]
7424pub struct FileVersionRetentionType(pub String);
7425
7426impl FileVersionRetentionType {
7427 pub const FILE_VERSION_RETENTION: &'static str = "file_version_retention";
7428}
7429
7430#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7431#[serde(transparent)]
7432pub struct FolderUploadEmailAccess(pub String);
7433
7434impl FolderUploadEmailAccess {
7435 pub const OPEN: &'static str = "open";
7436 pub const COLLABORATORS: &'static str = "collaborators";
7437}
7438
7439#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7440pub struct FolderFolderUploadEmail {
7441 #[serde(default, skip_serializing_if = "Option::is_none")]
7442 pub access: Option<FolderUploadEmailAccess>,
7443 #[serde(default, skip_serializing_if = "Option::is_none")]
7444 pub email: Option<String>,
7445}
7446
7447#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7448#[serde(transparent)]
7449pub struct FolderFullSyncState(pub String);
7450
7451impl FolderFullSyncState {
7452 pub const SYNCED: &'static str = "synced";
7453 pub const NOT_SYNCED: &'static str = "not_synced";
7454 pub const PARTIALLY_SYNCED: &'static str = "partially_synced";
7455}
7456
7457#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7458pub struct FolderFullPermissions {
7459 pub can_delete: bool,
7460 pub can_download: bool,
7461 pub can_invite_collaborator: bool,
7462 pub can_rename: bool,
7463 pub can_set_share_access: bool,
7464 pub can_share: bool,
7465 pub can_upload: bool,
7466 #[serde(default, skip_serializing_if = "Option::is_none")]
7467 pub can_apply_watermark: Option<bool>,
7468}
7469
7470#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7471pub struct FolderLockLockedOperations {
7472 pub r#move: bool,
7473 pub delete: bool,
7474}
7475
7476#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7477#[serde(transparent)]
7478pub struct GroupType(pub String);
7479
7480impl GroupType {
7481 pub const GROUP: &'static str = "group";
7482}
7483
7484#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7485#[serde(transparent)]
7486pub struct GroupGroupType(pub String);
7487
7488impl GroupGroupType {
7489 pub const MANAGED_GROUP: &'static str = "managed_group";
7490 pub const ALL_USERS_GROUP: &'static str = "all_users_group";
7491}
7492
7493#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7494#[serde(transparent)]
7495pub struct GroupFullInvitabilityLevel(pub String);
7496
7497impl GroupFullInvitabilityLevel {
7498 pub const ADMINS_ONLY: &'static str = "admins_only";
7499 pub const ADMINS_AND_MEMBERS: &'static str = "admins_and_members";
7500 pub const ALL_MANAGED_USERS: &'static str = "all_managed_users";
7501}
7502
7503#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7504pub struct GroupFullPermissions {
7505 #[serde(default, skip_serializing_if = "Option::is_none")]
7506 pub can_invite_as_collaborator: Option<bool>,
7507}
7508
7509#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7510#[serde(transparent)]
7511pub struct GroupMembershipType(pub String);
7512
7513impl GroupMembershipType {
7514 pub const GROUP_MEMBERSHIP: &'static str = "group_membership";
7515}
7516
7517#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7518#[serde(transparent)]
7519pub struct GroupMembershipRole(pub String);
7520
7521impl GroupMembershipRole {
7522 pub const MEMBER: &'static str = "member";
7523 pub const ADMIN: &'static str = "admin";
7524}
7525
7526#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7527#[serde(transparent)]
7528pub struct IntegrationMappingType(pub String);
7529
7530impl IntegrationMappingType {
7531 pub const INTEGRATION_MAPPING: &'static str = "integration_mapping";
7532}
7533
7534#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7535#[serde(transparent)]
7536pub struct IntegrationMappingIntegrationType(pub String);
7537
7538impl IntegrationMappingIntegrationType {
7539 pub const SLACK: &'static str = "slack";
7540}
7541
7542#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7543#[serde(transparent)]
7544pub struct IntegrationMappingPartnerItemSlackType(pub String);
7545
7546impl IntegrationMappingPartnerItemSlackType {
7547 pub const CHANNEL: &'static str = "channel";
7548}
7549
7550#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7551#[serde(transparent)]
7552pub struct IntegrationMappingPartnerItemTeamsType(pub String);
7553
7554impl IntegrationMappingPartnerItemTeamsType {
7555 pub const CHANNEL: &'static str = "channel";
7556 pub const TEAM: &'static str = "team";
7557}
7558
7559#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7560#[serde(transparent)]
7561pub struct IntegrationMappingTeamsIntegrationType(pub String);
7562
7563impl IntegrationMappingTeamsIntegrationType {
7564 pub const TEAMS: &'static str = "teams";
7565}
7566
7567#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7568#[serde(transparent)]
7569pub struct InviteType(pub String);
7570
7571impl InviteType {
7572 pub const INVITE: &'static str = "invite";
7573}
7574
7575#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7576#[serde(transparent)]
7577pub struct KeywordSkillCardType(pub String);
7578
7579impl KeywordSkillCardType {
7580 pub const SKILL_CARD: &'static str = "skill_card";
7581}
7582
7583#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7584#[serde(transparent)]
7585pub struct KeywordSkillCardSkillCardType(pub String);
7586
7587impl KeywordSkillCardSkillCardType {
7588 pub const KEYWORD: &'static str = "keyword";
7589}
7590
7591#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7592pub struct KeywordSkillCardSkillCardTitle {
7593 #[serde(default, skip_serializing_if = "Option::is_none")]
7594 pub code: Option<String>,
7595 pub message: String,
7596}
7597
7598#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7599#[serde(transparent)]
7600pub struct SkillType(pub String);
7601
7602impl SkillType {
7603 pub const SERVICE: &'static str = "service";
7604}
7605
7606#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7607pub struct KeywordSkillCardSkill {
7608 pub r#type: SkillType,
7609 pub id: String,
7610}
7611
7612#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7613#[serde(transparent)]
7614pub struct InvocationType(pub String);
7615
7616impl InvocationType {
7617 pub const SKILL_INVOCATION: &'static str = "skill_invocation";
7618}
7619
7620#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7621pub struct KeywordSkillCardInvocation {
7622 pub r#type: InvocationType,
7623 pub id: String,
7624}
7625
7626#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7627pub struct KeywordSkillCardEntries {
7628 #[serde(default, skip_serializing_if = "Option::is_none")]
7629 pub text: Option<String>,
7630}
7631
7632#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7633#[serde(transparent)]
7634pub struct LegalHoldPolicyType(pub String);
7635
7636impl LegalHoldPolicyType {
7637 pub const LEGAL_HOLD_POLICY: &'static str = "legal_hold_policy";
7638}
7639
7640#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7641#[serde(transparent)]
7642pub struct LegalHoldPolicyStatus(pub String);
7643
7644impl LegalHoldPolicyStatus {
7645 pub const ACTIVE: &'static str = "active";
7646 pub const APPLYING: &'static str = "applying";
7647 pub const RELEASING: &'static str = "releasing";
7648 pub const RELEASED: &'static str = "released";
7649}
7650
7651#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7652pub struct LegalHoldPolicyAssignmentCounts {
7653 #[serde(default, skip_serializing_if = "Option::is_none")]
7654 pub user: Option<i64>,
7655 #[serde(default, skip_serializing_if = "Option::is_none")]
7656 pub folder: Option<i64>,
7657 #[serde(default, skip_serializing_if = "Option::is_none")]
7658 pub file: Option<i64>,
7659 #[serde(default, skip_serializing_if = "Option::is_none")]
7660 pub file_version: Option<i64>,
7661 #[serde(default, skip_serializing_if = "Option::is_none")]
7662 pub ownership: Option<i64>,
7663 #[serde(default, skip_serializing_if = "Option::is_none")]
7664 pub interactions: Option<i64>,
7665}
7666
7667#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7668#[serde(transparent)]
7669pub struct LegalHoldPolicyAssignedItemType(pub String);
7670
7671impl LegalHoldPolicyAssignedItemType {
7672 pub const FILE: &'static str = "file";
7673 pub const FILE_VERSION: &'static str = "file_version";
7674 pub const FOLDER: &'static str = "folder";
7675 pub const USER: &'static str = "user";
7676 pub const OWNERSHIP: &'static str = "ownership";
7677 pub const INTERACTIONS: &'static str = "interactions";
7678}
7679
7680#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7681#[serde(transparent)]
7682pub struct LegalHoldPolicyAssignmentType(pub String);
7683
7684impl LegalHoldPolicyAssignmentType {
7685 pub const LEGAL_HOLD_POLICY_ASSIGNMENT: &'static str = "legal_hold_policy_assignment";
7686}
7687
7688#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7689#[serde(transparent)]
7690pub struct MetadataCascadePolicyType(pub String);
7691
7692impl MetadataCascadePolicyType {
7693 pub const METADATA_CASCADE_POLICY: &'static str = "metadata_cascade_policy";
7694}
7695
7696#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7697pub struct MetadataCascadePolicyOwnerEnterprise {
7698 #[serde(default, skip_serializing_if = "Option::is_none")]
7699 pub r#type: Option<EnterpriseType>,
7700 #[serde(default, skip_serializing_if = "Option::is_none")]
7701 pub id: Option<String>,
7702}
7703
7704#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7705pub struct MetadataCascadePolicyParent {
7706 #[serde(default, skip_serializing_if = "Option::is_none")]
7707 pub r#type: Option<FolderType>,
7708 #[serde(default, skip_serializing_if = "Option::is_none")]
7709 pub id: Option<String>,
7710}
7711
7712#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7713#[serde(transparent)]
7714pub struct MetadataFilterScope(pub String);
7715
7716impl MetadataFilterScope {
7717 pub const GLOBAL: &'static str = "global";
7718 pub const ENTERPRISE: &'static str = "enterprise";
7719 pub const ENTERPRISE_ENTERPRISE_ID: &'static str = "enterprise_{enterprise_id}";
7720}
7721
7722#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7723#[serde(transparent)]
7724pub struct OrderByDirection(pub String);
7725
7726impl OrderByDirection {
7727 pub const ASC: &'static str = "ASC";
7728 pub const DESC: &'static str = "DESC";
7729 pub const ASC_2: &'static str = "asc";
7730 pub const DESC_2: &'static str = "desc";
7731}
7732
7733#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7734pub struct MetadataQueryOrderBy {
7735 #[serde(default, skip_serializing_if = "Option::is_none")]
7736 pub field_key: Option<String>,
7737 #[serde(default, skip_serializing_if = "Option::is_none")]
7738 pub direction: Option<OrderByDirection>,
7739}
7740
7741#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7742#[serde(transparent)]
7743pub struct MetadataTemplateFieldsType(pub String);
7744
7745impl MetadataTemplateFieldsType {
7746 pub const STRING: &'static str = "string";
7747 pub const FLOAT: &'static str = "float";
7748 pub const DATE: &'static str = "date";
7749 pub const ENUM: &'static str = "enum";
7750 pub const MULTISELECT: &'static str = "multiSelect";
7751 pub const TAXONOMY: &'static str = "taxonomy";
7752 pub const INTEGER: &'static str = "integer";
7753}
7754
7755#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7756pub struct MetadataTemplateFieldsOptions {
7757 pub key: String,
7758 #[serde(default, skip_serializing_if = "Option::is_none")]
7759 pub id: Option<String>,
7760}
7761
7762#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7763pub struct FieldsOptionsRules {
7764 #[serde(
7765 rename = "multiSelect",
7766 default,
7767 skip_serializing_if = "Option::is_none"
7768 )]
7769 pub multi_select: Option<bool>,
7770 #[serde(
7771 rename = "selectableLevels",
7772 default,
7773 skip_serializing_if = "Option::is_none"
7774 )]
7775 pub selectable_levels: Option<Vec<i64>>,
7776}
7777
7778#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7779pub struct MetadataTemplateFields {
7780 pub r#type: MetadataTemplateFieldsType,
7781 pub key: String,
7782 #[serde(rename = "displayName")]
7783 pub display_name: String,
7784 #[serde(default, skip_serializing_if = "Option::is_none")]
7785 pub description: Option<String>,
7786 #[serde(default, skip_serializing_if = "Option::is_none")]
7787 pub hidden: Option<bool>,
7788 #[serde(default, skip_serializing_if = "Option::is_none")]
7789 pub options: Option<Vec<MetadataTemplateFieldsOptions>>,
7790 #[serde(
7791 rename = "taxonomyKey",
7792 default,
7793 skip_serializing_if = "Option::is_none"
7794 )]
7795 pub taxonomy_key: Option<String>,
7796 #[serde(
7797 rename = "taxonomyId",
7798 default,
7799 skip_serializing_if = "Option::is_none"
7800 )]
7801 pub taxonomy_id: Option<String>,
7802 #[serde(default, skip_serializing_if = "Option::is_none")]
7803 pub namespace: Option<String>,
7804 #[serde(
7805 rename = "optionsRules",
7806 default,
7807 skip_serializing_if = "Option::is_none"
7808 )]
7809 pub options_rules: Option<FieldsOptionsRules>,
7810 #[serde(default, skip_serializing_if = "Option::is_none")]
7811 pub id: Option<String>,
7812}
7813
7814#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7815#[serde(transparent)]
7816pub struct PostOAuth2TokenGrantType(pub String);
7817
7818impl PostOAuth2TokenGrantType {
7819 pub const AUTHORIZATION_CODE: &'static str = "authorization_code";
7820 pub const REFRESH_TOKEN: &'static str = "refresh_token";
7821 pub const CLIENT_CREDENTIALS: &'static str = "client_credentials";
7822 pub const URN_IETF_PARAMS_OAUTH_GRANT_TYPE_JWT_BEARER: &'static str =
7823 "urn:ietf:params:oauth:grant-type:jwt-bearer";
7824 pub const URN_IETF_PARAMS_OAUTH_GRANT_TYPE_TOKEN_EXCHANGE: &'static str =
7825 "urn:ietf:params:oauth:grant-type:token-exchange";
7826}
7827
7828#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7829#[serde(transparent)]
7830pub struct PostOAuth2TokenActorTokenType(pub String);
7831
7832impl PostOAuth2TokenActorTokenType {
7833 pub const URN_IETF_PARAMS_OAUTH_TOKEN_TYPE_ID_TOKEN: &'static str =
7834 "urn:ietf:params:oauth:token-type:id_token";
7835}
7836
7837#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7838#[serde(transparent)]
7839pub struct PostOAuth2TokenBoxSubjectType(pub String);
7840
7841impl PostOAuth2TokenBoxSubjectType {
7842 pub const ENTERPRISE: &'static str = "enterprise";
7843 pub const USER: &'static str = "user";
7844}
7845
7846#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7847#[serde(transparent)]
7848pub struct PostOAuth2TokenRefreshAccessTokenGrantType(pub String);
7849
7850impl PostOAuth2TokenRefreshAccessTokenGrantType {
7851 pub const REFRESH_TOKEN: &'static str = "refresh_token";
7852}
7853
7854#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7855#[serde(transparent)]
7856pub struct RecentItemInteractionType(pub String);
7857
7858impl RecentItemInteractionType {
7859 pub const ITEM_PREVIEW: &'static str = "item_preview";
7860 pub const ITEM_UPLOAD: &'static str = "item_upload";
7861 pub const ITEM_COMMENT: &'static str = "item_comment";
7862 pub const ITEM_OPEN: &'static str = "item_open";
7863 pub const ITEM_MODIFY: &'static str = "item_modify";
7864}
7865
7866#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7867#[serde(transparent)]
7868pub struct ResourceScopeScope(pub String);
7869
7870impl ResourceScopeScope {
7871 pub const ANNOTATION_EDIT: &'static str = "annotation_edit";
7872 pub const ANNOTATION_VIEW_ALL: &'static str = "annotation_view_all";
7873 pub const ANNOTATION_VIEW_SELF: &'static str = "annotation_view_self";
7874 pub const BASE_EXPLORER: &'static str = "base_explorer";
7875 pub const BASE_PICKER: &'static str = "base_picker";
7876 pub const BASE_PREVIEW: &'static str = "base_preview";
7877 pub const BASE_UPLOAD: &'static str = "base_upload";
7878 pub const ITEM_DELETE: &'static str = "item_delete";
7879 pub const ITEM_DOWNLOAD: &'static str = "item_download";
7880 pub const ITEM_PREVIEW: &'static str = "item_preview";
7881 pub const ITEM_RENAME: &'static str = "item_rename";
7882 pub const ITEM_SHARE: &'static str = "item_share";
7883 pub const ITEM_UPLOAD: &'static str = "item_upload";
7884 pub const ITEM_READ: &'static str = "item_read";
7885}
7886
7887#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7888#[serde(transparent)]
7889pub struct RetentionPolicyType(pub String);
7890
7891impl RetentionPolicyType {
7892 pub const RETENTION_POLICY: &'static str = "retention_policy";
7893}
7894
7895#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7896#[serde(transparent)]
7897pub struct RetentionPolicyDispositionAction(pub String);
7898
7899impl RetentionPolicyDispositionAction {
7900 pub const PERMANENTLY_DELETE: &'static str = "permanently_delete";
7901 pub const REMOVE_RETENTION: &'static str = "remove_retention";
7902}
7903
7904#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7905#[serde(transparent)]
7906pub struct RetentionPolicyPolicyType(pub String);
7907
7908impl RetentionPolicyPolicyType {
7909 pub const FINITE: &'static str = "finite";
7910 pub const INDEFINITE: &'static str = "indefinite";
7911}
7912
7913#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7914#[serde(transparent)]
7915pub struct RetentionPolicyRetentionType(pub String);
7916
7917impl RetentionPolicyRetentionType {
7918 pub const MODIFIABLE: &'static str = "modifiable";
7919 pub const NON_MODIFIABLE: &'static str = "non_modifiable";
7920}
7921
7922#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7923#[serde(transparent)]
7924pub struct RetentionPolicyStatus(pub String);
7925
7926impl RetentionPolicyStatus {
7927 pub const ACTIVE: &'static str = "active";
7928 pub const RETIRED: &'static str = "retired";
7929}
7930
7931#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7932pub struct RetentionPolicyAssignmentCounts {
7933 #[serde(default, skip_serializing_if = "Option::is_none")]
7934 pub enterprise: Option<i64>,
7935 #[serde(default, skip_serializing_if = "Option::is_none")]
7936 pub folder: Option<i64>,
7937 #[serde(default, skip_serializing_if = "Option::is_none")]
7938 pub metadata_template: Option<i64>,
7939}
7940
7941#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7942#[serde(transparent)]
7943pub struct RetentionPolicyAssignmentType(pub String);
7944
7945impl RetentionPolicyAssignmentType {
7946 pub const RETENTION_POLICY_ASSIGNMENT: &'static str = "retention_policy_assignment";
7947}
7948
7949#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7950#[serde(transparent)]
7951pub struct AssignedToType(pub String);
7952
7953impl AssignedToType {
7954 pub const FOLDER: &'static str = "folder";
7955 pub const ENTERPRISE: &'static str = "enterprise";
7956 pub const METADATA_TEMPLATE: &'static str = "metadata_template";
7957}
7958
7959#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7960pub struct RetentionPolicyAssignmentAssignedTo {
7961 #[serde(
7962 default,
7963 skip_serializing_if = "Option::is_none",
7964 deserialize_with = "double_option"
7965 )]
7966 pub id: Option<Option<String>>,
7967 #[serde(default, skip_serializing_if = "Option::is_none")]
7968 pub r#type: Option<AssignedToType>,
7969}
7970
7971#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
7972pub struct RetentionPolicyAssignmentFilterFields {
7973 #[serde(
7974 default,
7975 skip_serializing_if = "Option::is_none",
7976 deserialize_with = "double_option"
7977 )]
7978 pub field: Option<Option<String>>,
7979 #[serde(
7980 default,
7981 skip_serializing_if = "Option::is_none",
7982 deserialize_with = "double_option"
7983 )]
7984 pub value: Option<Option<String>>,
7985}
7986
7987#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7988#[serde(transparent)]
7989pub struct RetentionPolicyMaxExtensionLengthRequestVariant0(pub String);
7990
7991impl RetentionPolicyMaxExtensionLengthRequestVariant0 {
7992 pub const NONE: &'static str = "none";
7993}
7994
7995#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
7996#[serde(transparent)]
7997pub struct RoleVariableVariableType(pub String);
7998
7999impl RoleVariableVariableType {
8000 pub const COLLABORATOR_ROLE: &'static str = "collaborator_role";
8001}
8002
8003#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8004#[serde(transparent)]
8005pub struct SearchResultsType(pub String);
8006
8007impl SearchResultsType {
8008 pub const SEARCH_RESULTS_ITEMS: &'static str = "search_results_items";
8009}
8010
8011#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8012#[serde(transparent)]
8013pub struct SearchResultsWithSharedLinksType(pub String);
8014
8015impl SearchResultsWithSharedLinksType {
8016 pub const SEARCH_RESULTS_WITH_SHARED_LINKS: &'static str = "search_results_with_shared_links";
8017}
8018
8019#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8020#[serde(transparent)]
8021pub struct ShieldInformationBarrierType(pub String);
8022
8023impl ShieldInformationBarrierType {
8024 pub const SHIELD_INFORMATION_BARRIER: &'static str = "shield_information_barrier";
8025}
8026
8027#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8028#[serde(transparent)]
8029pub struct ShieldInformationBarrierStatus(pub String);
8030
8031impl ShieldInformationBarrierStatus {
8032 pub const DRAFT: &'static str = "draft";
8033 pub const PENDING: &'static str = "pending";
8034 pub const DISABLED: &'static str = "disabled";
8035 pub const ENABLED: &'static str = "enabled";
8036 pub const INVALID: &'static str = "invalid";
8037}
8038
8039#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8040#[serde(transparent)]
8041pub struct ShieldInformationBarrierReportType(pub String);
8042
8043impl ShieldInformationBarrierReportType {
8044 pub const SHIELD_INFORMATION_BARRIER_REPORT: &'static str = "shield_information_barrier_report";
8045}
8046
8047#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8048#[serde(transparent)]
8049pub struct ShieldInformationBarrierReportStatus(pub String);
8050
8051impl ShieldInformationBarrierReportStatus {
8052 pub const PENDING: &'static str = "pending";
8053 pub const ERROR: &'static str = "error";
8054 pub const DONE: &'static str = "done";
8055 pub const CANCELLED: &'static str = "cancelled";
8056}
8057
8058#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8059pub struct ShieldInformationBarrierReportDetailsDetails {
8060 #[serde(default, skip_serializing_if = "Option::is_none")]
8061 pub folder_id: Option<String>,
8062}
8063
8064#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8065#[serde(transparent)]
8066pub struct ShieldInformationBarrierSegmentType(pub String);
8067
8068impl ShieldInformationBarrierSegmentType {
8069 pub const SHIELD_INFORMATION_BARRIER_SEGMENT: &'static str =
8070 "shield_information_barrier_segment";
8071}
8072
8073#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8074#[serde(transparent)]
8075pub struct ShieldInformationBarrierSegmentMemberType(pub String);
8076
8077impl ShieldInformationBarrierSegmentMemberType {
8078 pub const SHIELD_INFORMATION_BARRIER_SEGMENT_MEMBER: &'static str =
8079 "shield_information_barrier_segment_member";
8080}
8081
8082#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8083pub struct ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment {
8084 #[serde(default, skip_serializing_if = "Option::is_none")]
8085 pub id: Option<String>,
8086 #[serde(default, skip_serializing_if = "Option::is_none")]
8087 pub r#type: Option<ShieldInformationBarrierSegmentType>,
8088}
8089
8090#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8091#[serde(transparent)]
8092pub struct ShieldInformationBarrierSegmentRestrictionType(pub String);
8093
8094impl ShieldInformationBarrierSegmentRestrictionType {
8095 pub const SHIELD_INFORMATION_BARRIER_SEGMENT_RESTRICTION: &'static str =
8096 "shield_information_barrier_segment_restriction";
8097}
8098
8099#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8100#[serde(transparent)]
8101pub struct SignRequestType(pub String);
8102
8103impl SignRequestType {
8104 pub const SIGN_REQUEST: &'static str = "sign-request";
8105}
8106
8107#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8108#[serde(transparent)]
8109pub struct SignRequestStatus(pub String);
8110
8111impl SignRequestStatus {
8112 pub const CONVERTING: &'static str = "converting";
8113 pub const CREATED: &'static str = "created";
8114 pub const SENT: &'static str = "sent";
8115 pub const VIEWED: &'static str = "viewed";
8116 pub const SIGNED: &'static str = "signed";
8117 pub const CANCELLED: &'static str = "cancelled";
8118 pub const DECLINED: &'static str = "declined";
8119 pub const ERROR: &'static str = "error";
8120 pub const ERROR_CONVERTING: &'static str = "error_converting";
8121 pub const ERROR_SENDING: &'static str = "error_sending";
8122 pub const EXPIRED: &'static str = "expired";
8123 pub const FINALIZING: &'static str = "finalizing";
8124 pub const ERROR_FINALIZING: &'static str = "error_finalizing";
8125}
8126
8127#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8128pub struct SignRequestSignFiles {
8129 #[serde(default, skip_serializing_if = "Option::is_none")]
8130 pub files: Option<Vec<FileMini>>,
8131 #[serde(default, skip_serializing_if = "Option::is_none")]
8132 pub is_ready_for_download: Option<bool>,
8133}
8134
8135#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8136#[serde(transparent)]
8137pub struct SignRequestCreateRequestSignatureColor(pub String);
8138
8139impl SignRequestCreateRequestSignatureColor {
8140 pub const BLUE: &'static str = "blue";
8141 pub const BLACK: &'static str = "black";
8142 pub const RED: &'static str = "red";
8143}
8144
8145#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8146#[serde(transparent)]
8147pub struct SignRequestCreateSignerRole(pub String);
8148
8149impl SignRequestCreateSignerRole {
8150 pub const SIGNER: &'static str = "signer";
8151 pub const APPROVER: &'static str = "approver";
8152 pub const FINAL_COPY_READER: &'static str = "final_copy_reader";
8153}
8154
8155#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8156#[serde(transparent)]
8157pub struct SignerDecisionType(pub String);
8158
8159impl SignerDecisionType {
8160 pub const SIGNED: &'static str = "signed";
8161 pub const DECLINED: &'static str = "declined";
8162}
8163
8164#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8165pub struct SignRequestSignerSignerDecision {
8166 #[serde(default, skip_serializing_if = "Option::is_none")]
8167 pub r#type: Option<SignerDecisionType>,
8168 #[serde(default, skip_serializing_if = "Option::is_none")]
8169 pub finalized_at: Option<chrono::DateTime<chrono::Utc>>,
8170 #[serde(
8171 default,
8172 skip_serializing_if = "Option::is_none",
8173 deserialize_with = "double_option"
8174 )]
8175 pub additional_info: Option<Option<String>>,
8176}
8177
8178#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8179#[serde(transparent)]
8180pub struct SignRequestSignerInputType(pub String);
8181
8182impl SignRequestSignerInputType {
8183 pub const SIGNATURE: &'static str = "signature";
8184 pub const DATE: &'static str = "date";
8185 pub const TEXT: &'static str = "text";
8186 pub const CHECKBOX: &'static str = "checkbox";
8187 pub const RADIO: &'static str = "radio";
8188 pub const DROPDOWN: &'static str = "dropdown";
8189}
8190
8191#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8192#[serde(transparent)]
8193pub struct SignRequestSignerInputContentType(pub String);
8194
8195impl SignRequestSignerInputContentType {
8196 pub const SIGNATURE: &'static str = "signature";
8197 pub const INITIAL: &'static str = "initial";
8198 pub const STAMP: &'static str = "stamp";
8199 pub const DATE: &'static str = "date";
8200 pub const CHECKBOX: &'static str = "checkbox";
8201 pub const TEXT: &'static str = "text";
8202 pub const FULL_NAME: &'static str = "full_name";
8203 pub const FIRST_NAME: &'static str = "first_name";
8204 pub const LAST_NAME: &'static str = "last_name";
8205 pub const COMPANY: &'static str = "company";
8206 pub const TITLE: &'static str = "title";
8207 pub const EMAIL: &'static str = "email";
8208 pub const ATTACHMENT: &'static str = "attachment";
8209 pub const RADIO: &'static str = "radio";
8210 pub const DROPDOWN: &'static str = "dropdown";
8211}
8212
8213#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8214#[serde(transparent)]
8215pub struct SignRequestSignerInputCustomValidationValidationType(pub String);
8216
8217impl SignRequestSignerInputCustomValidationValidationType {
8218 pub const CUSTOM: &'static str = "custom";
8219}
8220
8221#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8222#[serde(transparent)]
8223pub struct SignRequestSignerInputDateAsiaValidationValidationType(pub String);
8224
8225impl SignRequestSignerInputDateAsiaValidationValidationType {
8226 pub const DATE_ASIA: &'static str = "date_asia";
8227}
8228
8229#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8230#[serde(transparent)]
8231pub struct SignRequestSignerInputDateEUValidationValidationType(pub String);
8232
8233impl SignRequestSignerInputDateEUValidationValidationType {
8234 pub const DATE_EU: &'static str = "date_eu";
8235}
8236
8237#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8238#[serde(transparent)]
8239pub struct SignRequestSignerInputDateISOValidationValidationType(pub String);
8240
8241impl SignRequestSignerInputDateISOValidationValidationType {
8242 pub const DATE_ISO: &'static str = "date_iso";
8243}
8244
8245#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8246#[serde(transparent)]
8247pub struct SignRequestSignerInputDateUSValidationValidationType(pub String);
8248
8249impl SignRequestSignerInputDateUSValidationValidationType {
8250 pub const DATE_US: &'static str = "date_us";
8251}
8252
8253#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8254#[serde(transparent)]
8255pub struct SignRequestSignerInputEmailValidationValidationType(pub String);
8256
8257impl SignRequestSignerInputEmailValidationValidationType {
8258 pub const EMAIL: &'static str = "email";
8259}
8260
8261#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8262#[serde(transparent)]
8263pub struct SignRequestSignerInputNumberWithCommaValidationValidationType(pub String);
8264
8265impl SignRequestSignerInputNumberWithCommaValidationValidationType {
8266 pub const NUMBER_WITH_COMMA: &'static str = "number_with_comma";
8267}
8268
8269#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8270#[serde(transparent)]
8271pub struct SignRequestSignerInputNumberWithPeriodValidationValidationType(pub String);
8272
8273impl SignRequestSignerInputNumberWithPeriodValidationValidationType {
8274 pub const NUMBER_WITH_PERIOD: &'static str = "number_with_period";
8275}
8276
8277#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8278#[serde(transparent)]
8279pub struct SignRequestSignerInputSSNValidationValidationType(pub String);
8280
8281impl SignRequestSignerInputSSNValidationValidationType {
8282 pub const SSN: &'static str = "ssn";
8283}
8284
8285#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8286#[serde(transparent)]
8287pub struct SignRequestSignerInputZIP4ValidationValidationType(pub String);
8288
8289impl SignRequestSignerInputZIP4ValidationValidationType {
8290 pub const ZIP_4: &'static str = "zip_4";
8291}
8292
8293#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8294#[serde(transparent)]
8295pub struct SignRequestSignerInputZIPValidationValidationType(pub String);
8296
8297impl SignRequestSignerInputZIPValidationValidationType {
8298 pub const ZIP: &'static str = "zip";
8299}
8300
8301#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8302#[serde(transparent)]
8303pub struct SignTemplateType(pub String);
8304
8305impl SignTemplateType {
8306 pub const SIGN_TEMPLATE: &'static str = "sign-template";
8307}
8308
8309#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8310#[serde(transparent)]
8311pub struct AdditionalInfoNonEditable(pub String);
8312
8313impl AdditionalInfoNonEditable {
8314 pub const EMAIL_SUBJECT: &'static str = "email_subject";
8315 pub const EMAIL_MESSAGE: &'static str = "email_message";
8316 pub const NAME: &'static str = "name";
8317 pub const DAYS_VALID: &'static str = "days_valid";
8318 pub const SIGNERS: &'static str = "signers";
8319 pub const SOURCE_FILES: &'static str = "source_files";
8320}
8321
8322#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8323pub struct AdditionalInfoRequired {
8324 #[serde(default, skip_serializing_if = "Option::is_none")]
8325 pub signers: Option<Vec<Vec<SignRequestSignerInputEmailValidationValidationType>>>,
8326}
8327
8328#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8329pub struct SignTemplateAdditionalInfo {
8330 #[serde(default, skip_serializing_if = "Option::is_none")]
8331 pub non_editable: Option<Vec<AdditionalInfoNonEditable>>,
8332 #[serde(default, skip_serializing_if = "Option::is_none")]
8333 pub required: Option<AdditionalInfoRequired>,
8334}
8335
8336#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8337pub struct SignTemplateReadySignLink {
8338 #[serde(default, skip_serializing_if = "Option::is_none")]
8339 pub url: Option<String>,
8340 #[serde(
8341 default,
8342 skip_serializing_if = "Option::is_none",
8343 deserialize_with = "double_option"
8344 )]
8345 pub name: Option<Option<String>>,
8346 #[serde(
8347 default,
8348 skip_serializing_if = "Option::is_none",
8349 deserialize_with = "double_option"
8350 )]
8351 pub instructions: Option<Option<String>>,
8352 #[serde(
8353 default,
8354 skip_serializing_if = "Option::is_none",
8355 deserialize_with = "double_option"
8356 )]
8357 pub folder_id: Option<Option<String>>,
8358 #[serde(default, skip_serializing_if = "Option::is_none")]
8359 pub is_notification_disabled: Option<bool>,
8360 #[serde(default, skip_serializing_if = "Option::is_none")]
8361 pub is_active: Option<bool>,
8362}
8363
8364#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8365pub struct SignTemplateCustomBranding {
8366 #[serde(
8367 default,
8368 skip_serializing_if = "Option::is_none",
8369 deserialize_with = "double_option"
8370 )]
8371 pub company_name: Option<Option<String>>,
8372 #[serde(
8373 default,
8374 skip_serializing_if = "Option::is_none",
8375 deserialize_with = "double_option"
8376 )]
8377 pub logo_uri: Option<Option<String>>,
8378 #[serde(
8379 default,
8380 skip_serializing_if = "Option::is_none",
8381 deserialize_with = "double_option"
8382 )]
8383 pub branding_color: Option<Option<String>>,
8384 #[serde(
8385 default,
8386 skip_serializing_if = "Option::is_none",
8387 deserialize_with = "double_option"
8388 )]
8389 pub email_footer_text: Option<Option<String>>,
8390}
8391
8392#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8393#[serde(transparent)]
8394pub struct StatusSkillCardSkillCardType(pub String);
8395
8396impl StatusSkillCardSkillCardType {
8397 pub const STATUS: &'static str = "status";
8398}
8399
8400#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8401#[serde(transparent)]
8402pub struct StatusCode(pub String);
8403
8404impl StatusCode {
8405 pub const INVOKED: &'static str = "invoked";
8406 pub const PROCESSING: &'static str = "processing";
8407 pub const SUCCESS: &'static str = "success";
8408 pub const TRANSIENT_FAILURE: &'static str = "transient_failure";
8409 pub const PERMANENT_FAILURE: &'static str = "permanent_failure";
8410}
8411
8412#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8413pub struct StatusSkillCardStatus {
8414 pub code: StatusCode,
8415 #[serde(default, skip_serializing_if = "Option::is_none")]
8416 pub message: Option<String>,
8417}
8418
8419#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8420#[serde(transparent)]
8421pub struct StoragePolicyType(pub String);
8422
8423impl StoragePolicyType {
8424 pub const STORAGE_POLICY: &'static str = "storage_policy";
8425}
8426
8427#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8428#[serde(transparent)]
8429pub struct StoragePolicyAssignmentType(pub String);
8430
8431impl StoragePolicyAssignmentType {
8432 pub const STORAGE_POLICY_ASSIGNMENT: &'static str = "storage_policy_assignment";
8433}
8434
8435#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8436#[serde(transparent)]
8437pub struct TaskType(pub String);
8438
8439impl TaskType {
8440 pub const TASK: &'static str = "task";
8441}
8442
8443#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8444#[serde(transparent)]
8445pub struct TaskAction(pub String);
8446
8447impl TaskAction {
8448 pub const REVIEW: &'static str = "review";
8449 pub const COMPLETE: &'static str = "complete";
8450}
8451
8452#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8453#[serde(transparent)]
8454pub struct TaskCompletionRule(pub String);
8455
8456impl TaskCompletionRule {
8457 pub const ALL_ASSIGNEES: &'static str = "all_assignees";
8458 pub const ANY_ASSIGNEE: &'static str = "any_assignee";
8459}
8460
8461#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8462#[serde(transparent)]
8463pub struct TaskAssignmentType(pub String);
8464
8465impl TaskAssignmentType {
8466 pub const TASK_ASSIGNMENT: &'static str = "task_assignment";
8467}
8468
8469#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8470#[serde(transparent)]
8471pub struct TaskAssignmentResolutionState(pub String);
8472
8473impl TaskAssignmentResolutionState {
8474 pub const COMPLETED: &'static str = "completed";
8475 pub const INCOMPLETE: &'static str = "incomplete";
8476 pub const APPROVED: &'static str = "approved";
8477 pub const REJECTED: &'static str = "rejected";
8478}
8479
8480#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8481#[serde(transparent)]
8482pub struct TemplateSignerInputType(pub String);
8483
8484impl TemplateSignerInputType {
8485 pub const SIGNATURE: &'static str = "signature";
8486 pub const DATE: &'static str = "date";
8487 pub const TEXT: &'static str = "text";
8488 pub const CHECKBOX: &'static str = "checkbox";
8489 pub const ATTACHMENT: &'static str = "attachment";
8490 pub const RADIO: &'static str = "radio";
8491 pub const DROPDOWN: &'static str = "dropdown";
8492}
8493
8494#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8495pub struct TemplateSignerInputCoordinates {
8496 #[serde(default, skip_serializing_if = "Option::is_none")]
8497 pub x: Option<f64>,
8498 #[serde(default, skip_serializing_if = "Option::is_none")]
8499 pub y: Option<f64>,
8500}
8501
8502#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8503pub struct TemplateSignerInputDimensions {
8504 #[serde(default, skip_serializing_if = "Option::is_none")]
8505 pub width: Option<f64>,
8506 #[serde(default, skip_serializing_if = "Option::is_none")]
8507 pub height: Option<f64>,
8508}
8509
8510#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8511#[serde(transparent)]
8512pub struct TermsOfServiceType(pub String);
8513
8514impl TermsOfServiceType {
8515 pub const TERMS_OF_SERVICE: &'static str = "terms_of_service";
8516}
8517
8518#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8519#[serde(transparent)]
8520pub struct TermsOfServiceStatus(pub String);
8521
8522impl TermsOfServiceStatus {
8523 pub const ENABLED: &'static str = "enabled";
8524 pub const DISABLED: &'static str = "disabled";
8525}
8526
8527#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8528#[serde(transparent)]
8529pub struct TermsOfServiceTosType(pub String);
8530
8531impl TermsOfServiceTosType {
8532 pub const MANAGED: &'static str = "managed";
8533 pub const EXTERNAL: &'static str = "external";
8534}
8535
8536#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8537#[serde(transparent)]
8538pub struct TermsOfServiceUserStatusType(pub String);
8539
8540impl TermsOfServiceUserStatusType {
8541 pub const TERMS_OF_SERVICE_USER_STATUS: &'static str = "terms_of_service_user_status";
8542}
8543
8544#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8545#[serde(transparent)]
8546pub struct TimelineSkillCardSkillCardType(pub String);
8547
8548impl TimelineSkillCardSkillCardType {
8549 pub const TIMELINE: &'static str = "timeline";
8550}
8551
8552#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8553pub struct EntriesAppears {
8554 #[serde(default, skip_serializing_if = "Option::is_none")]
8555 pub start: Option<i64>,
8556 #[serde(default, skip_serializing_if = "Option::is_none")]
8557 pub end: Option<i64>,
8558}
8559
8560#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8561pub struct TimelineSkillCardEntries {
8562 #[serde(default, skip_serializing_if = "Option::is_none")]
8563 pub text: Option<String>,
8564 #[serde(default, skip_serializing_if = "Option::is_none")]
8565 pub appears: Option<Vec<EntriesAppears>>,
8566 #[serde(default, skip_serializing_if = "Option::is_none")]
8567 pub image_url: Option<String>,
8568}
8569
8570#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8571#[serde(transparent)]
8572pub struct TrackingCodeType(pub String);
8573
8574impl TrackingCodeType {
8575 pub const TRACKING_CODE: &'static str = "tracking_code";
8576}
8577
8578#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8579#[serde(transparent)]
8580pub struct TranscriptSkillCardSkillCardType(pub String);
8581
8582impl TranscriptSkillCardSkillCardType {
8583 pub const TRANSCRIPT: &'static str = "transcript";
8584}
8585
8586#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8587pub struct TranscriptSkillCardEntriesAppears {
8588 #[serde(default, skip_serializing_if = "Option::is_none")]
8589 pub start: Option<i64>,
8590}
8591
8592#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8593pub struct TranscriptSkillCardEntries {
8594 #[serde(default, skip_serializing_if = "Option::is_none")]
8595 pub text: Option<String>,
8596 #[serde(default, skip_serializing_if = "Option::is_none")]
8597 pub appears: Option<Vec<TranscriptSkillCardEntriesAppears>>,
8598}
8599
8600#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8601pub struct PathCollectionEntries {
8602 #[serde(default, skip_serializing_if = "Option::is_none")]
8603 pub r#type: Option<FolderType>,
8604 #[serde(default, skip_serializing_if = "Option::is_none")]
8605 pub id: Option<String>,
8606 #[serde(
8607 default,
8608 skip_serializing_if = "Option::is_none",
8609 deserialize_with = "double_option"
8610 )]
8611 pub sequence_id: Option<Option<String>>,
8612 #[serde(
8613 default,
8614 skip_serializing_if = "Option::is_none",
8615 deserialize_with = "double_option"
8616 )]
8617 pub etag: Option<Option<String>>,
8618 #[serde(default, skip_serializing_if = "Option::is_none")]
8619 pub name: Option<String>,
8620}
8621
8622#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8623pub struct TrashFilePathCollection {
8624 pub total_count: i64,
8625 pub entries: Vec<PathCollectionEntries>,
8626}
8627
8628#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8629#[serde(transparent)]
8630pub struct TrashWebLinkType(pub String);
8631
8632impl TrashWebLinkType {
8633 pub const WEB_LINK: &'static str = "web_link";
8634}
8635
8636#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8637#[serde(transparent)]
8638pub struct UploadSessionType(pub String);
8639
8640impl UploadSessionType {
8641 pub const UPLOAD_SESSION: &'static str = "upload_session";
8642}
8643
8644#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8645pub struct UploadSessionSessionEndpoints {
8646 #[serde(default, skip_serializing_if = "Option::is_none")]
8647 pub upload_part: Option<String>,
8648 #[serde(default, skip_serializing_if = "Option::is_none")]
8649 pub commit: Option<String>,
8650 #[serde(default, skip_serializing_if = "Option::is_none")]
8651 pub abort: Option<String>,
8652 #[serde(default, skip_serializing_if = "Option::is_none")]
8653 pub list_parts: Option<String>,
8654 #[serde(default, skip_serializing_if = "Option::is_none")]
8655 pub status: Option<String>,
8656 #[serde(default, skip_serializing_if = "Option::is_none")]
8657 pub log_event: Option<String>,
8658}
8659
8660#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8661#[serde(transparent)]
8662pub struct UserStatus(pub String);
8663
8664impl UserStatus {
8665 pub const ACTIVE: &'static str = "active";
8666 pub const INACTIVE: &'static str = "inactive";
8667 pub const CANNOT_DELETE_EDIT: &'static str = "cannot_delete_edit";
8668 pub const CANNOT_DELETE_EDIT_UPLOAD: &'static str = "cannot_delete_edit_upload";
8669}
8670
8671#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8672pub struct UserNotificationEmail {
8673 #[serde(default, skip_serializing_if = "Option::is_none")]
8674 pub email: Option<String>,
8675 #[serde(default, skip_serializing_if = "Option::is_none")]
8676 pub is_confirmed: Option<bool>,
8677}
8678
8679#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8680#[serde(transparent)]
8681pub struct UserFullRole(pub String);
8682
8683impl UserFullRole {
8684 pub const ADMIN: &'static str = "admin";
8685 pub const COADMIN: &'static str = "coadmin";
8686 pub const USER: &'static str = "user";
8687}
8688
8689#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8690pub struct UserAvatarPicUrls {
8691 #[serde(default, skip_serializing_if = "Option::is_none")]
8692 pub small: Option<String>,
8693 #[serde(default, skip_serializing_if = "Option::is_none")]
8694 pub large: Option<String>,
8695 #[serde(default, skip_serializing_if = "Option::is_none")]
8696 pub preview: Option<String>,
8697}
8698
8699#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8700pub struct WatermarkWatermark {
8701 #[serde(default, skip_serializing_if = "Option::is_none")]
8702 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8703 #[serde(default, skip_serializing_if = "Option::is_none")]
8704 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
8705}
8706
8707#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8708#[serde(transparent)]
8709pub struct WebhookType(pub String);
8710
8711impl WebhookType {
8712 pub const WEBHOOK: &'static str = "webhook";
8713}
8714
8715#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8716pub struct WebhookTarget {
8717 #[serde(default, skip_serializing_if = "Option::is_none")]
8718 pub id: Option<String>,
8719 #[serde(default, skip_serializing_if = "Option::is_none")]
8720 pub r#type: Option<EventSourceItemType>,
8721}
8722
8723#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8724#[serde(transparent)]
8725pub struct WebhookTriggers(pub String);
8726
8727impl WebhookTriggers {
8728 pub const FILE_UPLOADED: &'static str = "FILE.UPLOADED";
8729 pub const FILE_PREVIEWED: &'static str = "FILE.PREVIEWED";
8730 pub const FILE_DOWNLOADED: &'static str = "FILE.DOWNLOADED";
8731 pub const FILE_TRASHED: &'static str = "FILE.TRASHED";
8732 pub const FILE_DELETED: &'static str = "FILE.DELETED";
8733 pub const FILE_RESTORED: &'static str = "FILE.RESTORED";
8734 pub const FILE_COPIED: &'static str = "FILE.COPIED";
8735 pub const FILE_MOVED: &'static str = "FILE.MOVED";
8736 pub const FILE_LOCKED: &'static str = "FILE.LOCKED";
8737 pub const FILE_UNLOCKED: &'static str = "FILE.UNLOCKED";
8738 pub const FILE_RENAMED: &'static str = "FILE.RENAMED";
8739 pub const COMMENT_CREATED: &'static str = "COMMENT.CREATED";
8740 pub const COMMENT_UPDATED: &'static str = "COMMENT.UPDATED";
8741 pub const COMMENT_DELETED: &'static str = "COMMENT.DELETED";
8742 pub const TASK_ASSIGNMENT_CREATED: &'static str = "TASK_ASSIGNMENT.CREATED";
8743 pub const TASK_ASSIGNMENT_UPDATED: &'static str = "TASK_ASSIGNMENT.UPDATED";
8744 pub const METADATA_INSTANCE_CREATED: &'static str = "METADATA_INSTANCE.CREATED";
8745 pub const METADATA_INSTANCE_UPDATED: &'static str = "METADATA_INSTANCE.UPDATED";
8746 pub const METADATA_INSTANCE_DELETED: &'static str = "METADATA_INSTANCE.DELETED";
8747 pub const FOLDER_CREATED: &'static str = "FOLDER.CREATED";
8748 pub const FOLDER_RENAMED: &'static str = "FOLDER.RENAMED";
8749 pub const FOLDER_DOWNLOADED: &'static str = "FOLDER.DOWNLOADED";
8750 pub const FOLDER_RESTORED: &'static str = "FOLDER.RESTORED";
8751 pub const FOLDER_DELETED: &'static str = "FOLDER.DELETED";
8752 pub const FOLDER_COPIED: &'static str = "FOLDER.COPIED";
8753 pub const FOLDER_MOVED: &'static str = "FOLDER.MOVED";
8754 pub const FOLDER_TRASHED: &'static str = "FOLDER.TRASHED";
8755 pub const WEBHOOK_DELETED: &'static str = "WEBHOOK.DELETED";
8756 pub const COLLABORATION_CREATED: &'static str = "COLLABORATION.CREATED";
8757 pub const COLLABORATION_ACCEPTED: &'static str = "COLLABORATION.ACCEPTED";
8758 pub const COLLABORATION_REJECTED: &'static str = "COLLABORATION.REJECTED";
8759 pub const COLLABORATION_REMOVED: &'static str = "COLLABORATION.REMOVED";
8760 pub const COLLABORATION_UPDATED: &'static str = "COLLABORATION.UPDATED";
8761 pub const SHARED_LINK_DELETED: &'static str = "SHARED_LINK.DELETED";
8762 pub const SHARED_LINK_CREATED: &'static str = "SHARED_LINK.CREATED";
8763 pub const SHARED_LINK_UPDATED: &'static str = "SHARED_LINK.UPDATED";
8764 pub const SIGN_REQUEST_COMPLETED: &'static str = "SIGN_REQUEST.COMPLETED";
8765 pub const SIGN_REQUEST_DECLINED: &'static str = "SIGN_REQUEST.DECLINED";
8766 pub const SIGN_REQUEST_EXPIRED: &'static str = "SIGN_REQUEST.EXPIRED";
8767 pub const SIGN_REQUEST_SIGNER_EMAIL_BOUNCED: &'static str = "SIGN_REQUEST.SIGNER_EMAIL_BOUNCED";
8768 pub const SIGN_REQUEST_SIGN_SIGNER_SIGNED: &'static str = "SIGN_REQUEST.SIGN_SIGNER_SIGNED";
8769 pub const SIGN_REQUEST_SIGN_DOCUMENT_CREATED: &'static str =
8770 "SIGN_REQUEST.SIGN_DOCUMENT_CREATED";
8771 pub const SIGN_REQUEST_SIGN_ERROR_FINALIZING: &'static str =
8772 "SIGN_REQUEST.SIGN_ERROR_FINALIZING";
8773}
8774
8775#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8776#[serde(transparent)]
8777pub struct WorkflowType(pub String);
8778
8779impl WorkflowType {
8780 pub const WORKFLOW: &'static str = "workflow";
8781}
8782
8783#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8784#[serde(transparent)]
8785pub struct FlowsType(pub String);
8786
8787impl FlowsType {
8788 pub const FLOW: &'static str = "flow";
8789}
8790
8791#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8792#[serde(transparent)]
8793pub struct TriggerType(pub String);
8794
8795impl TriggerType {
8796 pub const TRIGGER: &'static str = "trigger";
8797}
8798
8799#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8800#[serde(transparent)]
8801pub struct TriggerTriggerType(pub String);
8802
8803impl TriggerTriggerType {
8804 pub const WORKFLOW_MANUAL_START: &'static str = "WORKFLOW_MANUAL_START";
8805}
8806
8807#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8808#[serde(transparent)]
8809pub struct ScopeType(pub String);
8810
8811impl ScopeType {
8812 pub const TRIGGER_SCOPE: &'static str = "trigger_scope";
8813}
8814
8815#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8816pub struct TriggerScope {
8817 #[serde(default, skip_serializing_if = "Option::is_none")]
8818 pub r#type: Option<ScopeType>,
8819 #[serde(default, skip_serializing_if = "Option::is_none")]
8820 pub r#ref: Option<String>,
8821 #[serde(default, skip_serializing_if = "Option::is_none")]
8822 pub object: Option<MetadataCascadePolicyParent>,
8823}
8824
8825#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8826pub struct FlowsTrigger {
8827 #[serde(default, skip_serializing_if = "Option::is_none")]
8828 pub r#type: Option<TriggerType>,
8829 #[serde(default, skip_serializing_if = "Option::is_none")]
8830 pub trigger_type: Option<TriggerTriggerType>,
8831 #[serde(default, skip_serializing_if = "Option::is_none")]
8832 pub scope: Option<Vec<TriggerScope>>,
8833}
8834
8835#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8836#[serde(transparent)]
8837pub struct OutcomesType(pub String);
8838
8839impl OutcomesType {
8840 pub const OUTCOME: &'static str = "outcome";
8841}
8842
8843#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8844#[serde(transparent)]
8845pub struct OutcomesActionType(pub String);
8846
8847impl OutcomesActionType {
8848 pub const ADD_METADATA: &'static str = "add_metadata";
8849 pub const ASSIGN_TASK: &'static str = "assign_task";
8850 pub const COPY_FILE: &'static str = "copy_file";
8851 pub const COPY_FOLDER: &'static str = "copy_folder";
8852 pub const CREATE_FOLDER: &'static str = "create_folder";
8853 pub const DELETE_FILE: &'static str = "delete_file";
8854 pub const DELETE_FOLDER: &'static str = "delete_folder";
8855 pub const LOCK_FILE: &'static str = "lock_file";
8856 pub const MOVE_FILE: &'static str = "move_file";
8857 pub const MOVE_FOLDER: &'static str = "move_folder";
8858 pub const REMOVE_WATERMARK_FILE: &'static str = "remove_watermark_file";
8859 pub const RENAME_FOLDER: &'static str = "rename_folder";
8860 pub const RESTORE_FOLDER: &'static str = "restore_folder";
8861 pub const SHARE_FILE: &'static str = "share_file";
8862 pub const SHARE_FOLDER: &'static str = "share_folder";
8863 pub const UNLOCK_FILE: &'static str = "unlock_file";
8864 pub const UPLOAD_FILE: &'static str = "upload_file";
8865 pub const WAIT_FOR_TASK: &'static str = "wait_for_task";
8866 pub const WATERMARK_FILE: &'static str = "watermark_file";
8867 pub const GO_BACK_TO_STEP: &'static str = "go_back_to_step";
8868 pub const APPLY_FILE_CLASSIFICATION: &'static str = "apply_file_classification";
8869 pub const APPLY_FOLDER_CLASSIFICATION: &'static str = "apply_folder_classification";
8870 pub const SEND_NOTIFICATION: &'static str = "send_notification";
8871}
8872
8873#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8874pub struct OutcomesIfRejected {
8875 #[serde(default, skip_serializing_if = "Option::is_none")]
8876 pub id: Option<String>,
8877 #[serde(default, skip_serializing_if = "Option::is_none")]
8878 pub r#type: Option<OutcomesType>,
8879 #[serde(default, skip_serializing_if = "Option::is_none")]
8880 pub name: Option<String>,
8881 #[serde(default, skip_serializing_if = "Option::is_none")]
8882 pub action_type: Option<OutcomesActionType>,
8883}
8884
8885#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8886pub struct FlowsOutcomes {
8887 #[serde(default, skip_serializing_if = "Option::is_none")]
8888 pub id: Option<String>,
8889 #[serde(default, skip_serializing_if = "Option::is_none")]
8890 pub r#type: Option<OutcomesType>,
8891 #[serde(default, skip_serializing_if = "Option::is_none")]
8892 pub name: Option<String>,
8893 #[serde(default, skip_serializing_if = "Option::is_none")]
8894 pub action_type: Option<OutcomesActionType>,
8895 #[serde(default, skip_serializing_if = "Option::is_none")]
8896 pub if_rejected: Option<Vec<OutcomesIfRejected>>,
8897}
8898
8899#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8900pub struct WorkflowFlows {
8901 #[serde(default, skip_serializing_if = "Option::is_none")]
8902 pub id: Option<String>,
8903 #[serde(default, skip_serializing_if = "Option::is_none")]
8904 pub r#type: Option<FlowsType>,
8905 #[serde(default, skip_serializing_if = "Option::is_none")]
8906 pub trigger: Option<FlowsTrigger>,
8907 #[serde(default, skip_serializing_if = "Option::is_none")]
8908 pub outcomes: Option<Vec<FlowsOutcomes>>,
8909 #[serde(default, skip_serializing_if = "Option::is_none")]
8910 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
8911 #[serde(default, skip_serializing_if = "Option::is_none")]
8912 pub created_by: Option<UserBase>,
8913}
8914
8915#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8916pub struct ZipDownloadNameConflicts {
8917 #[serde(default, skip_serializing_if = "Option::is_none")]
8918 pub id: Option<String>,
8919 #[serde(default, skip_serializing_if = "Option::is_none")]
8920 pub r#type: Option<EventSourceItemType>,
8921 #[serde(default, skip_serializing_if = "Option::is_none")]
8922 pub original_name: Option<String>,
8923 #[serde(default, skip_serializing_if = "Option::is_none")]
8924 pub download_name: Option<String>,
8925}
8926
8927#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8928pub struct ZipDownloadRequestItems {
8929 pub r#type: EventSourceItemType,
8930 pub id: String,
8931}
8932
8933#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8934#[serde(transparent)]
8935pub struct ZipDownloadStatusState(pub String);
8936
8937impl ZipDownloadStatusState {
8938 pub const IN_PROGRESS: &'static str = "in_progress";
8939 pub const FAILED: &'static str = "failed";
8940 pub const SUCCEEDED: &'static str = "succeeded";
8941}
8942
8943#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8944#[serde(transparent)]
8945pub struct GetAuthorizeResponseType(pub String);
8946
8947impl GetAuthorizeResponseType {
8948 pub const CODE: &'static str = "code";
8949}
8950
8951#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8952pub struct PutIdParent {
8953 #[serde(default, skip_serializing_if = "Option::is_none")]
8954 pub id: Option<String>,
8955 #[serde(default, skip_serializing_if = "Option::is_none")]
8956 pub user_id: Option<String>,
8957}
8958
8959#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8960pub struct UpdateFileRequestSharedLinkPermissions {
8961 #[serde(default, skip_serializing_if = "Option::is_none")]
8962 pub can_download: Option<bool>,
8963}
8964
8965#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8966pub struct PutIdSharedLink {
8967 #[serde(default, skip_serializing_if = "Option::is_none")]
8968 pub access: Option<SharedLinkAccess>,
8969 #[serde(
8970 default,
8971 skip_serializing_if = "Option::is_none",
8972 deserialize_with = "double_option"
8973 )]
8974 pub password: Option<Option<String>>,
8975 #[serde(default, skip_serializing_if = "Option::is_none")]
8976 pub vanity_name: Option<String>,
8977 #[serde(default, skip_serializing_if = "Option::is_none")]
8978 pub unshared_at: Option<chrono::DateTime<chrono::Utc>>,
8979 #[serde(default, skip_serializing_if = "Option::is_none")]
8980 pub permissions: Option<UpdateFileRequestSharedLinkPermissions>,
8981}
8982
8983#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8984pub struct PutIdLock {
8985 #[serde(default, skip_serializing_if = "Option::is_none")]
8986 pub access: Option<LockType>,
8987 #[serde(default, skip_serializing_if = "Option::is_none")]
8988 pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
8989 #[serde(default, skip_serializing_if = "Option::is_none")]
8990 pub is_download_prevented: Option<bool>,
8991}
8992
8993#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8994#[serde(transparent)]
8995pub struct PermissionsCanDownload(pub String);
8996
8997impl PermissionsCanDownload {
8998 pub const OPEN: &'static str = "open";
8999 pub const COMPANY: &'static str = "company";
9000}
9001
9002#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9003pub struct PutIdPermissions {
9004 #[serde(default, skip_serializing_if = "Option::is_none")]
9005 pub can_download: Option<PermissionsCanDownload>,
9006}
9007
9008#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9009pub struct UpdateFileRequest {
9010 #[serde(default, skip_serializing_if = "Option::is_none")]
9011 pub name: Option<String>,
9012 #[serde(default, skip_serializing_if = "Option::is_none")]
9013 pub description: Option<String>,
9014 #[serde(default, skip_serializing_if = "Option::is_none")]
9015 pub parent: Option<PutIdParent>,
9016 #[serde(
9017 default,
9018 skip_serializing_if = "Option::is_none",
9019 deserialize_with = "double_option"
9020 )]
9021 pub shared_link: Option<Option<PutIdSharedLink>>,
9022 #[serde(
9023 default,
9024 skip_serializing_if = "Option::is_none",
9025 deserialize_with = "double_option"
9026 )]
9027 pub lock: Option<Option<PutIdLock>>,
9028 #[serde(default, skip_serializing_if = "Option::is_none")]
9029 pub disposition_at: Option<chrono::DateTime<chrono::Utc>>,
9030 #[serde(default, skip_serializing_if = "Option::is_none")]
9031 pub permissions: Option<PutIdPermissions>,
9032 #[serde(
9033 default,
9034 skip_serializing_if = "Option::is_none",
9035 deserialize_with = "double_option"
9036 )]
9037 pub collections: Option<Option<Vec<CommentItem>>>,
9038 #[serde(default, skip_serializing_if = "Option::is_none")]
9039 pub tags: Option<Vec<String>>,
9040}
9041
9042#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9043pub struct PostFileIdParent {
9044 #[serde(default, skip_serializing_if = "Option::is_none")]
9045 pub id: Option<String>,
9046}
9047
9048#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9049pub struct CreateFileRequest {
9050 #[serde(default, skip_serializing_if = "Option::is_none")]
9051 pub name: Option<String>,
9052 #[serde(default, skip_serializing_if = "Option::is_none")]
9053 pub parent: Option<PostFileIdParent>,
9054}
9055
9056#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9057pub struct PostFileIdContentAttributes {
9058 pub name: String,
9059 #[serde(default, skip_serializing_if = "Option::is_none")]
9060 pub content_modified_at: Option<chrono::DateTime<chrono::Utc>>,
9061}
9062
9063#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9064pub struct CreateFileIdContentRequest {
9065 pub attributes: PostFileIdContentAttributes,
9066 #[serde(skip)]
9067 pub file: Vec<u8>,
9068}
9069
9070#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9071pub struct AttributesParent {
9072 pub id: String,
9073}
9074
9075#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9076pub struct PostFileContentAttributes {
9077 pub name: String,
9078 pub parent: AttributesParent,
9079 #[serde(default, skip_serializing_if = "Option::is_none")]
9080 pub content_created_at: Option<chrono::DateTime<chrono::Utc>>,
9081 #[serde(default, skip_serializing_if = "Option::is_none")]
9082 pub content_modified_at: Option<chrono::DateTime<chrono::Utc>>,
9083}
9084
9085#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9086pub struct CreateFileContentRequest {
9087 pub attributes: PostFileContentAttributes,
9088 #[serde(skip)]
9089 pub file: Vec<u8>,
9090}
9091
9092#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9093pub struct OptionFileContentRequest {
9094 #[serde(default, skip_serializing_if = "Option::is_none")]
9095 pub name: Option<String>,
9096 #[serde(default, skip_serializing_if = "Option::is_none")]
9097 pub size: Option<i64>,
9098 #[serde(default, skip_serializing_if = "Option::is_none")]
9099 pub parent: Option<PostFileIdParent>,
9100}
9101
9102#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9103pub struct CreateFileUploadSessionRequest {
9104 pub folder_id: String,
9105 pub file_size: i64,
9106 pub file_name: String,
9107}
9108
9109#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9110pub struct CreateFileVersionUploadSessionRequest {
9111 pub file_size: i64,
9112 #[serde(default, skip_serializing_if = "Option::is_none")]
9113 pub file_name: Option<String>,
9114}
9115
9116#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9117pub struct CommitFileUploadSessionRequest {
9118 pub parts: Vec<UploadPart>,
9119}
9120
9121#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9122pub struct CopyFileRequest {
9123 #[serde(default, skip_serializing_if = "Option::is_none")]
9124 pub name: Option<String>,
9125 #[serde(default, skip_serializing_if = "Option::is_none")]
9126 pub version: Option<String>,
9127 pub parent: AttributesParent,
9128}
9129
9130#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9131#[serde(transparent)]
9132pub struct GetIdThumbnailIdExtension(pub String);
9133
9134impl GetIdThumbnailIdExtension {
9135 pub const PNG: &'static str = "png";
9136 pub const JPG: &'static str = "jpg";
9137}
9138
9139#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9140pub struct UpdateFileVersionRequest {
9141 #[serde(
9142 default,
9143 skip_serializing_if = "Option::is_none",
9144 deserialize_with = "double_option"
9145 )]
9146 pub trashed_at: Option<Option<String>>,
9147}
9148
9149#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9150pub struct CreateFileVersionCurrentRequest {
9151 #[serde(default, skip_serializing_if = "Option::is_none")]
9152 pub id: Option<String>,
9153 #[serde(default, skip_serializing_if = "Option::is_none")]
9154 pub r#type: Option<FileVersionType>,
9155}
9156
9157#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9158#[serde(transparent)]
9159pub struct PutOp(pub String);
9160
9161impl PutOp {
9162 pub const REPLACE: &'static str = "replace";
9163}
9164
9165#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9166#[serde(transparent)]
9167pub struct PutPath(pub String);
9168
9169impl PutPath {
9170 pub const BOX_SECURITY_CLASSIFICATION_KEY: &'static str = "/Box__Security__Classification__Key";
9171}
9172
9173#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9174pub struct UpdateFileClassificationRequest {
9175 pub op: PutOp,
9176 pub path: PutPath,
9177 pub value: String,
9178}
9179
9180#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9181pub struct CreateFileClassificationRequest {
9182 #[serde(
9183 rename = "Box__Security__Classification__Key",
9184 default,
9185 skip_serializing_if = "Option::is_none"
9186 )]
9187 pub box_security_classification_key: Option<String>,
9188}
9189
9190#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9191#[serde(transparent)]
9192pub struct GetFileIdMetadataIdScope(pub String);
9193
9194impl GetFileIdMetadataIdScope {
9195 pub const GLOBAL: &'static str = "global";
9196 pub const ENTERPRISE: &'static str = "enterprise";
9197}
9198
9199#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9200#[serde(transparent)]
9201pub struct PutFileIdMetadataIdOp(pub String);
9202
9203impl PutFileIdMetadataIdOp {
9204 pub const ADD: &'static str = "add";
9205 pub const REPLACE: &'static str = "replace";
9206 pub const REMOVE: &'static str = "remove";
9207 pub const TEST: &'static str = "test";
9208 pub const MOVE: &'static str = "move";
9209 pub const COPY: &'static str = "copy";
9210}
9211
9212#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9213pub struct UpdateFileMetadataRequest {
9214 #[serde(default, skip_serializing_if = "Option::is_none")]
9215 pub op: Option<PutFileIdMetadataIdOp>,
9216 #[serde(default, skip_serializing_if = "Option::is_none")]
9217 pub path: Option<String>,
9218 #[serde(default, skip_serializing_if = "Option::is_none")]
9219 pub value: Option<MetadataInstanceValue>,
9220 #[serde(default, skip_serializing_if = "Option::is_none")]
9221 pub from: Option<String>,
9222}
9223
9224#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9225pub struct UpdateSkillRequest {
9226 #[serde(default, skip_serializing_if = "Option::is_none")]
9227 pub op: Option<PutOp>,
9228 #[serde(default, skip_serializing_if = "Option::is_none")]
9229 pub path: Option<String>,
9230 #[serde(default, skip_serializing_if = "Option::is_none")]
9231 pub value: Option<SkillCard>,
9232}
9233
9234#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9235pub struct CreateSkillRequest {
9236 pub cards: Vec<SkillCard>,
9237}
9238
9239#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9240#[serde(transparent)]
9241pub struct WatermarkImprint(pub String);
9242
9243impl WatermarkImprint {
9244 pub const DEFAULT: &'static str = "default";
9245}
9246
9247#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9248pub struct PutFileIdWatermarkWatermark {
9249 pub imprint: WatermarkImprint,
9250}
9251
9252#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9253pub struct UpdateFileWatermarkRequest {
9254 pub watermark: PutFileIdWatermarkWatermark,
9255}
9256
9257#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9258#[serde(transparent)]
9259pub struct GetIdSort(pub String);
9260
9261impl GetIdSort {
9262 pub const ID: &'static str = "id";
9263 pub const NAME: &'static str = "name";
9264 pub const DATE: &'static str = "date";
9265 pub const SIZE: &'static str = "size";
9266}
9267
9268#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9269pub struct PutIdFolderUploadEmail {
9270 #[serde(default, skip_serializing_if = "Option::is_none")]
9271 pub access: Option<FolderUploadEmailAccess>,
9272}
9273
9274#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9275pub struct UpdateFolderRequest {
9276 #[serde(default, skip_serializing_if = "Option::is_none")]
9277 pub name: Option<String>,
9278 #[serde(default, skip_serializing_if = "Option::is_none")]
9279 pub description: Option<String>,
9280 #[serde(default, skip_serializing_if = "Option::is_none")]
9281 pub sync_state: Option<FolderFullSyncState>,
9282 #[serde(default, skip_serializing_if = "Option::is_none")]
9283 pub can_non_owners_invite: Option<bool>,
9284 #[serde(default, skip_serializing_if = "Option::is_none")]
9285 pub parent: Option<PutIdParent>,
9286 #[serde(default, skip_serializing_if = "Option::is_none")]
9287 pub shared_link: Option<PutIdSharedLink>,
9288 #[serde(
9289 default,
9290 skip_serializing_if = "Option::is_none",
9291 deserialize_with = "double_option"
9292 )]
9293 pub folder_upload_email: Option<Option<PutIdFolderUploadEmail>>,
9294 #[serde(default, skip_serializing_if = "Option::is_none")]
9295 pub tags: Option<Vec<String>>,
9296 #[serde(default, skip_serializing_if = "Option::is_none")]
9297 pub is_collaboration_restricted_to_enterprise: Option<bool>,
9298 #[serde(
9299 default,
9300 skip_serializing_if = "Option::is_none",
9301 deserialize_with = "double_option"
9302 )]
9303 pub collections: Option<Option<Vec<CommentItem>>>,
9304 #[serde(default, skip_serializing_if = "Option::is_none")]
9305 pub can_non_owners_view_collaborators: Option<bool>,
9306}
9307
9308#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9309pub struct CreateFolderRequest {
9310 pub name: String,
9311 pub parent: AttributesParent,
9312 #[serde(default, skip_serializing_if = "Option::is_none")]
9313 pub folder_upload_email: Option<PutIdFolderUploadEmail>,
9314 #[serde(default, skip_serializing_if = "Option::is_none")]
9315 pub sync_state: Option<FolderFullSyncState>,
9316}
9317
9318#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9319pub struct CopyFolderRequest {
9320 #[serde(default, skip_serializing_if = "Option::is_none")]
9321 pub name: Option<String>,
9322 pub parent: AttributesParent,
9323}
9324
9325#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9326#[serde(transparent)]
9327pub struct GetFolderTrashItemsSort(pub String);
9328
9329impl GetFolderTrashItemsSort {
9330 pub const NAME: &'static str = "name";
9331 pub const DATE: &'static str = "date";
9332 pub const SIZE: &'static str = "size";
9333}
9334
9335#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9336pub struct PostFolder {
9337 pub r#type: String,
9338 pub id: String,
9339}
9340
9341#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9342pub struct CreateFolderLockRequest {
9343 #[serde(default, skip_serializing_if = "Option::is_none")]
9344 pub locked_operations: Option<FolderLockLockedOperations>,
9345 pub folder: PostFolder,
9346}
9347
9348#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9349#[serde(transparent)]
9350pub struct PutAddOp(pub String);
9351
9352impl PutAddOp {
9353 pub const ADDENUMOPTION: &'static str = "addEnumOption";
9354}
9355
9356#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9357pub struct PutAddData {
9358 pub key: String,
9359 #[serde(
9360 rename = "staticConfig",
9361 default,
9362 skip_serializing_if = "Option::is_none"
9363 )]
9364 pub static_config: Option<OptionsStaticConfig>,
9365}
9366
9367#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9368pub struct UpdateClassificationAddRequest {
9369 pub op: PutAddOp,
9370 #[serde(rename = "fieldKey")]
9371 pub field_key: FieldsKey,
9372 pub data: PutAddData,
9373}
9374
9375#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9376#[serde(transparent)]
9377pub struct PutUpdateOp(pub String);
9378
9379impl PutUpdateOp {
9380 pub const EDITENUMOPTION: &'static str = "editEnumOption";
9381}
9382
9383#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9384pub struct UpdateClassificationUpdateRequest {
9385 pub op: PutUpdateOp,
9386 #[serde(rename = "fieldKey")]
9387 pub field_key: FieldsKey,
9388 #[serde(rename = "enumOptionKey")]
9389 pub enum_option_key: String,
9390 pub data: PutAddData,
9391}
9392
9393#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9394#[serde(transparent)]
9395pub struct PutIdSchemaOp(pub String);
9396
9397impl PutIdSchemaOp {
9398 pub const EDITTEMPLATE: &'static str = "editTemplate";
9399 pub const ADDFIELD: &'static str = "addField";
9400 pub const REORDERFIELDS: &'static str = "reorderFields";
9401 pub const ADDENUMOPTION: &'static str = "addEnumOption";
9402 pub const REORDERENUMOPTIONS: &'static str = "reorderEnumOptions";
9403 pub const REORDERMULTISELECTOPTIONS: &'static str = "reorderMultiSelectOptions";
9404 pub const ADDMULTISELECTOPTION: &'static str = "addMultiSelectOption";
9405 pub const EDITFIELD: &'static str = "editField";
9406 pub const REMOVEFIELD: &'static str = "removeField";
9407 pub const EDITENUMOPTION: &'static str = "editEnumOption";
9408 pub const REMOVEENUMOPTION: &'static str = "removeEnumOption";
9409 pub const EDITMULTISELECTOPTION: &'static str = "editMultiSelectOption";
9410 pub const REMOVEMULTISELECTOPTION: &'static str = "removeMultiSelectOption";
9411}
9412
9413#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9414pub struct UpdateSchemaRequest {
9415 pub op: PutIdSchemaOp,
9416 #[serde(default, skip_serializing_if = "Option::is_none")]
9417 pub data: Option<std::collections::HashMap<String, serde_json::Value>>,
9418 #[serde(rename = "fieldKey", default, skip_serializing_if = "Option::is_none")]
9419 pub field_key: Option<String>,
9420 #[serde(rename = "fieldKeys", default, skip_serializing_if = "Option::is_none")]
9421 pub field_keys: Option<Vec<String>>,
9422 #[serde(
9423 rename = "enumOptionKey",
9424 default,
9425 skip_serializing_if = "Option::is_none"
9426 )]
9427 pub enum_option_key: Option<String>,
9428 #[serde(
9429 rename = "enumOptionKeys",
9430 default,
9431 skip_serializing_if = "Option::is_none"
9432 )]
9433 pub enum_option_keys: Option<Vec<String>>,
9434 #[serde(
9435 rename = "multiSelectOptionKey",
9436 default,
9437 skip_serializing_if = "Option::is_none"
9438 )]
9439 pub multi_select_option_key: Option<String>,
9440 #[serde(
9441 rename = "multiSelectOptionKeys",
9442 default,
9443 skip_serializing_if = "Option::is_none"
9444 )]
9445 pub multi_select_option_keys: Option<Vec<String>>,
9446}
9447
9448#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9449#[serde(transparent)]
9450pub struct CreateSchemaRequestFieldsType(pub String);
9451
9452impl CreateSchemaRequestFieldsType {
9453 pub const STRING: &'static str = "string";
9454 pub const FLOAT: &'static str = "float";
9455 pub const DATE: &'static str = "date";
9456 pub const ENUM: &'static str = "enum";
9457 pub const MULTISELECT: &'static str = "multiSelect";
9458 pub const TAXONOMY: &'static str = "taxonomy";
9459}
9460
9461#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9462pub struct PostSchemaFields {
9463 pub r#type: CreateSchemaRequestFieldsType,
9464 pub key: String,
9465 #[serde(rename = "displayName")]
9466 pub display_name: String,
9467 #[serde(default, skip_serializing_if = "Option::is_none")]
9468 pub description: Option<String>,
9469 #[serde(default, skip_serializing_if = "Option::is_none")]
9470 pub hidden: Option<bool>,
9471 #[serde(default, skip_serializing_if = "Option::is_none")]
9472 pub options: Option<Vec<FieldsOptions>>,
9473 #[serde(
9474 rename = "taxonomyKey",
9475 default,
9476 skip_serializing_if = "Option::is_none"
9477 )]
9478 pub taxonomy_key: Option<String>,
9479 #[serde(
9480 rename = "taxonomyId",
9481 default,
9482 skip_serializing_if = "Option::is_none"
9483 )]
9484 pub taxonomy_id: Option<String>,
9485 #[serde(default, skip_serializing_if = "Option::is_none")]
9486 pub namespace: Option<String>,
9487 #[serde(
9488 rename = "optionsRules",
9489 default,
9490 skip_serializing_if = "Option::is_none"
9491 )]
9492 pub options_rules: Option<FieldsOptionsRules>,
9493}
9494
9495#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9496pub struct CreateSchemaRequest {
9497 pub scope: String,
9498 #[serde(
9499 rename = "templateKey",
9500 default,
9501 skip_serializing_if = "Option::is_none"
9502 )]
9503 pub template_key: Option<String>,
9504 #[serde(rename = "displayName")]
9505 pub display_name: String,
9506 #[serde(default, skip_serializing_if = "Option::is_none")]
9507 pub hidden: Option<bool>,
9508 #[serde(default, skip_serializing_if = "Option::is_none")]
9509 pub fields: Option<Vec<PostSchemaFields>>,
9510 #[serde(
9511 rename = "copyInstanceOnItemCopy",
9512 default,
9513 skip_serializing_if = "Option::is_none"
9514 )]
9515 pub copy_instance_on_item_copy: Option<bool>,
9516}
9517
9518#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9519pub struct PostMetadataTemplateSchemaClassificationsFields {
9520 pub r#type: FieldsType,
9521 pub key: FieldsKey,
9522 #[serde(rename = "displayName")]
9523 pub display_name: ClassificationTemplateDisplayName,
9524 #[serde(default, skip_serializing_if = "Option::is_none")]
9525 pub hidden: Option<bool>,
9526 pub options: Vec<PutAddData>,
9527}
9528
9529#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9530pub struct CreateMetadataTemplateSchemaClassificationsRequest {
9531 pub scope: EnterpriseType,
9532 #[serde(rename = "templateKey")]
9533 pub template_key: ClassificationTemplate2,
9534 #[serde(rename = "displayName")]
9535 pub display_name: ClassificationTemplateDisplayName,
9536 #[serde(default, skip_serializing_if = "Option::is_none")]
9537 pub hidden: Option<bool>,
9538 #[serde(
9539 rename = "copyInstanceOnItemCopy",
9540 default,
9541 skip_serializing_if = "Option::is_none"
9542 )]
9543 pub copy_instance_on_item_copy: Option<bool>,
9544 pub fields: Vec<PostMetadataTemplateSchemaClassificationsFields>,
9545}
9546
9547#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9548pub struct CreateMetadataCascadePolicyRequest {
9549 pub folder_id: String,
9550 pub scope: GetFileIdMetadataIdScope,
9551 #[serde(rename = "templateKey")]
9552 pub template_key: String,
9553}
9554
9555#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9556#[serde(transparent)]
9557pub struct PostIdApplyConflictResolution(pub String);
9558
9559impl PostIdApplyConflictResolution {
9560 pub const NONE: &'static str = "none";
9561 pub const OVERWRITE: &'static str = "overwrite";
9562}
9563
9564#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9565pub struct ApplyMetadataCascadePolicyRequest {
9566 pub conflict_resolution: PostIdApplyConflictResolution,
9567}
9568
9569#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9570pub struct UpdateCommentRequest {
9571 #[serde(default, skip_serializing_if = "Option::is_none")]
9572 pub message: Option<String>,
9573}
9574
9575#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9576#[serde(transparent)]
9577pub struct ItemType(pub String);
9578
9579impl ItemType {
9580 pub const FILE: &'static str = "file";
9581 pub const COMMENT: &'static str = "comment";
9582}
9583
9584#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9585pub struct PostItem {
9586 pub id: String,
9587 pub r#type: ItemType,
9588}
9589
9590#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9591pub struct CreateCommentRequest {
9592 pub message: String,
9593 #[serde(default, skip_serializing_if = "Option::is_none")]
9594 pub tagged_message: Option<String>,
9595 pub item: PostItem,
9596}
9597
9598#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9599#[serde(transparent)]
9600pub struct PutCollaborationIdStatus(pub String);
9601
9602impl PutCollaborationIdStatus {
9603 pub const PENDING: &'static str = "pending";
9604 pub const ACCEPTED: &'static str = "accepted";
9605 pub const REJECTED: &'static str = "rejected";
9606}
9607
9608#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9609pub struct UpdateCollaborationRequest {
9610 #[serde(default, skip_serializing_if = "Option::is_none")]
9611 pub role: Option<CollaborationRole>,
9612 #[serde(default, skip_serializing_if = "Option::is_none")]
9613 pub status: Option<PutCollaborationIdStatus>,
9614 #[serde(default, skip_serializing_if = "Option::is_none")]
9615 pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
9616 #[serde(default, skip_serializing_if = "Option::is_none")]
9617 pub can_view_path: Option<bool>,
9618}
9619
9620#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9621#[serde(transparent)]
9622pub struct GetCollaborationsStatus(pub String);
9623
9624impl GetCollaborationsStatus {
9625 pub const PENDING: &'static str = "pending";
9626}
9627
9628#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9629pub struct PostCollaborationsItem {
9630 #[serde(default, skip_serializing_if = "Option::is_none")]
9631 pub r#type: Option<EventSourceItemType>,
9632 #[serde(default, skip_serializing_if = "Option::is_none")]
9633 pub id: Option<String>,
9634}
9635
9636#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9637#[serde(transparent)]
9638pub struct AccessibleByType(pub String);
9639
9640impl AccessibleByType {
9641 pub const USER: &'static str = "user";
9642 pub const GROUP: &'static str = "group";
9643}
9644
9645#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9646pub struct PostCollaborationsAccessibleBy {
9647 pub r#type: AccessibleByType,
9648 #[serde(default, skip_serializing_if = "Option::is_none")]
9649 pub id: Option<String>,
9650 #[serde(default, skip_serializing_if = "Option::is_none")]
9651 pub login: Option<String>,
9652}
9653
9654#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9655pub struct CreateCollaborationsRequest {
9656 pub item: PostCollaborationsItem,
9657 pub accessible_by: PostCollaborationsAccessibleBy,
9658 pub role: FileFullAllowedInviteeRoles,
9659 #[serde(default, skip_serializing_if = "Option::is_none")]
9660 pub is_access_only: Option<bool>,
9661 #[serde(default, skip_serializing_if = "Option::is_none")]
9662 pub can_view_path: Option<bool>,
9663 #[serde(default, skip_serializing_if = "Option::is_none")]
9664 pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
9665}
9666
9667#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9668#[serde(transparent)]
9669pub struct GetScope(pub String);
9670
9671impl GetScope {
9672 pub const USER_CONTENT: &'static str = "user_content";
9673 pub const ENTERPRISE_CONTENT: &'static str = "enterprise_content";
9674}
9675
9676#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9677#[serde(transparent)]
9678pub struct GetContentTypes(pub String);
9679
9680impl GetContentTypes {
9681 pub const NAME: &'static str = "name";
9682 pub const DESCRIPTION: &'static str = "description";
9683 pub const FILE_CONTENT: &'static str = "file_content";
9684 pub const COMMENTS: &'static str = "comments";
9685 pub const TAGS: &'static str = "tags";
9686}
9687
9688#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9689#[serde(transparent)]
9690pub struct GetType(pub String);
9691
9692impl GetType {
9693 pub const FILE: &'static str = "file";
9694 pub const FOLDER: &'static str = "folder";
9695 pub const WEB_LINK: &'static str = "web_link";
9696}
9697
9698#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9699#[serde(transparent)]
9700pub struct GetTrashContent(pub String);
9701
9702impl GetTrashContent {
9703 pub const NON_TRASHED_ONLY: &'static str = "non_trashed_only";
9704 pub const TRASHED_ONLY: &'static str = "trashed_only";
9705 pub const ALL_ITEMS: &'static str = "all_items";
9706}
9707
9708#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9709#[serde(transparent)]
9710pub struct GetSort(pub String);
9711
9712impl GetSort {
9713 pub const MODIFIED_AT: &'static str = "modified_at";
9714 pub const RELEVANCE: &'static str = "relevance";
9715}
9716
9717#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9718#[serde(transparent)]
9719pub struct GetDirection(pub String);
9720
9721impl GetDirection {
9722 pub const DESC: &'static str = "DESC";
9723 pub const ASC: &'static str = "ASC";
9724}
9725
9726#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9727pub struct CreateTaskRequestItem {
9728 #[serde(default, skip_serializing_if = "Option::is_none")]
9729 pub id: Option<String>,
9730 #[serde(default, skip_serializing_if = "Option::is_none")]
9731 pub r#type: Option<AiCitationType>,
9732}
9733
9734#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9735pub struct CreateTaskRequest {
9736 pub item: CreateTaskRequestItem,
9737 #[serde(default, skip_serializing_if = "Option::is_none")]
9738 pub action: Option<TaskAction>,
9739 #[serde(default, skip_serializing_if = "Option::is_none")]
9740 pub message: Option<String>,
9741 #[serde(default, skip_serializing_if = "Option::is_none")]
9742 pub due_at: Option<chrono::DateTime<chrono::Utc>>,
9743 #[serde(default, skip_serializing_if = "Option::is_none")]
9744 pub completion_rule: Option<TaskCompletionRule>,
9745}
9746
9747#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9748pub struct UpdateTaskRequest {
9749 #[serde(default, skip_serializing_if = "Option::is_none")]
9750 pub action: Option<TaskAction>,
9751 #[serde(default, skip_serializing_if = "Option::is_none")]
9752 pub message: Option<String>,
9753 #[serde(default, skip_serializing_if = "Option::is_none")]
9754 pub due_at: Option<chrono::DateTime<chrono::Utc>>,
9755 #[serde(default, skip_serializing_if = "Option::is_none")]
9756 pub completion_rule: Option<TaskCompletionRule>,
9757}
9758
9759#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9760pub struct PostTask {
9761 pub id: String,
9762 pub r#type: TaskType,
9763}
9764
9765#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9766pub struct PostAssignTo {
9767 #[serde(default, skip_serializing_if = "Option::is_none")]
9768 pub id: Option<String>,
9769 #[serde(default, skip_serializing_if = "Option::is_none")]
9770 pub login: Option<String>,
9771}
9772
9773#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9774pub struct CreateTaskAssignmentRequest {
9775 pub task: PostTask,
9776 pub assign_to: PostAssignTo,
9777}
9778
9779#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9780pub struct UpdateTaskAssignmentRequest {
9781 #[serde(default, skip_serializing_if = "Option::is_none")]
9782 pub message: Option<String>,
9783 #[serde(default, skip_serializing_if = "Option::is_none")]
9784 pub resolution_state: Option<TaskAssignmentResolutionState>,
9785}
9786
9787#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9788pub struct UpdateFileAddSharedLinkRequestSharedLinkPermissions {
9789 #[serde(default, skip_serializing_if = "Option::is_none")]
9790 pub can_download: Option<bool>,
9791 #[serde(default, skip_serializing_if = "Option::is_none")]
9792 pub can_preview: Option<bool>,
9793 #[serde(default, skip_serializing_if = "Option::is_none")]
9794 pub can_edit: Option<bool>,
9795}
9796
9797#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9798pub struct PutFileIdAddSharedLinkSharedLink {
9799 #[serde(default, skip_serializing_if = "Option::is_none")]
9800 pub access: Option<SharedLinkAccess>,
9801 #[serde(
9802 default,
9803 skip_serializing_if = "Option::is_none",
9804 deserialize_with = "double_option"
9805 )]
9806 pub password: Option<Option<String>>,
9807 #[serde(default, skip_serializing_if = "Option::is_none")]
9808 pub vanity_name: Option<String>,
9809 #[serde(default, skip_serializing_if = "Option::is_none")]
9810 pub unshared_at: Option<chrono::DateTime<chrono::Utc>>,
9811 #[serde(default, skip_serializing_if = "Option::is_none")]
9812 pub permissions: Option<UpdateFileAddSharedLinkRequestSharedLinkPermissions>,
9813}
9814
9815#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9816pub struct UpdateFileAddSharedLinkRequest {
9817 #[serde(default, skip_serializing_if = "Option::is_none")]
9818 pub shared_link: Option<PutFileIdAddSharedLinkSharedLink>,
9819}
9820
9821#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9822pub struct UpdateFileRemoveSharedLinkRequest {
9823 #[serde(
9824 default,
9825 skip_serializing_if = "Option::is_none",
9826 deserialize_with = "double_option"
9827 )]
9828 pub shared_link: Option<Option<std::collections::HashMap<String, serde_json::Value>>>,
9829}
9830
9831#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9832pub struct PutFolderIdUpdateSharedLinkSharedLink {
9833 #[serde(default, skip_serializing_if = "Option::is_none")]
9834 pub access: Option<SharedLinkAccess>,
9835 #[serde(default, skip_serializing_if = "Option::is_none")]
9836 pub password: Option<String>,
9837 #[serde(default, skip_serializing_if = "Option::is_none")]
9838 pub vanity_name: Option<String>,
9839 #[serde(default, skip_serializing_if = "Option::is_none")]
9840 pub unshared_at: Option<chrono::DateTime<chrono::Utc>>,
9841 #[serde(default, skip_serializing_if = "Option::is_none")]
9842 pub permissions: Option<UpdateFileAddSharedLinkRequestSharedLinkPermissions>,
9843}
9844
9845#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9846pub struct UpdateFolderUpdateSharedLinkRequest {
9847 #[serde(default, skip_serializing_if = "Option::is_none")]
9848 pub shared_link: Option<PutFolderIdUpdateSharedLinkSharedLink>,
9849}
9850
9851#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9852pub struct CreateWebLinkRequest {
9853 pub url: String,
9854 pub parent: AttributesParent,
9855 #[serde(default, skip_serializing_if = "Option::is_none")]
9856 pub name: Option<String>,
9857 #[serde(default, skip_serializing_if = "Option::is_none")]
9858 pub description: Option<String>,
9859}
9860
9861#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9862pub struct UpdateWebLinkRequestSharedLink {
9863 #[serde(default, skip_serializing_if = "Option::is_none")]
9864 pub access: Option<SharedLinkAccess>,
9865 #[serde(
9866 default,
9867 skip_serializing_if = "Option::is_none",
9868 deserialize_with = "double_option"
9869 )]
9870 pub password: Option<Option<String>>,
9871 #[serde(default, skip_serializing_if = "Option::is_none")]
9872 pub vanity_name: Option<String>,
9873 #[serde(default, skip_serializing_if = "Option::is_none")]
9874 pub unshared_at: Option<chrono::DateTime<chrono::Utc>>,
9875}
9876
9877#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9878pub struct UpdateWebLinkRequest {
9879 #[serde(default, skip_serializing_if = "Option::is_none")]
9880 pub url: Option<String>,
9881 #[serde(default, skip_serializing_if = "Option::is_none")]
9882 pub parent: Option<PutIdParent>,
9883 #[serde(default, skip_serializing_if = "Option::is_none")]
9884 pub name: Option<String>,
9885 #[serde(default, skip_serializing_if = "Option::is_none")]
9886 pub description: Option<String>,
9887 #[serde(default, skip_serializing_if = "Option::is_none")]
9888 pub shared_link: Option<UpdateWebLinkRequestSharedLink>,
9889}
9890
9891#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9892#[serde(transparent)]
9893pub struct GetUserType(pub String);
9894
9895impl GetUserType {
9896 pub const ALL: &'static str = "all";
9897 pub const MANAGED: &'static str = "managed";
9898 pub const EXTERNAL: &'static str = "external";
9899}
9900
9901#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
9902#[serde(transparent)]
9903pub struct PostRole(pub String);
9904
9905impl PostRole {
9906 pub const COADMIN: &'static str = "coadmin";
9907 pub const USER: &'static str = "user";
9908}
9909
9910#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9911pub struct CreateUserRequest {
9912 pub name: String,
9913 #[serde(default, skip_serializing_if = "Option::is_none")]
9914 pub login: Option<String>,
9915 #[serde(default, skip_serializing_if = "Option::is_none")]
9916 pub is_platform_access_only: Option<bool>,
9917 #[serde(default, skip_serializing_if = "Option::is_none")]
9918 pub role: Option<PostRole>,
9919 #[serde(default, skip_serializing_if = "Option::is_none")]
9920 pub language: Option<String>,
9921 #[serde(default, skip_serializing_if = "Option::is_none")]
9922 pub is_sync_enabled: Option<bool>,
9923 #[serde(default, skip_serializing_if = "Option::is_none")]
9924 pub job_title: Option<String>,
9925 #[serde(default, skip_serializing_if = "Option::is_none")]
9926 pub phone: Option<String>,
9927 #[serde(default, skip_serializing_if = "Option::is_none")]
9928 pub address: Option<String>,
9929 #[serde(default, skip_serializing_if = "Option::is_none")]
9930 pub space_amount: Option<i64>,
9931 #[serde(default, skip_serializing_if = "Option::is_none")]
9932 pub tracking_codes: Option<Vec<TrackingCode>>,
9933 #[serde(default, skip_serializing_if = "Option::is_none")]
9934 pub can_see_managed_users: Option<bool>,
9935 #[serde(default, skip_serializing_if = "Option::is_none")]
9936 pub timezone: Option<String>,
9937 #[serde(default, skip_serializing_if = "Option::is_none")]
9938 pub is_external_collab_restricted: Option<bool>,
9939 #[serde(default, skip_serializing_if = "Option::is_none")]
9940 pub is_exempt_from_device_limits: Option<bool>,
9941 #[serde(default, skip_serializing_if = "Option::is_none")]
9942 pub is_exempt_from_login_verification: Option<bool>,
9943 #[serde(default, skip_serializing_if = "Option::is_none")]
9944 pub status: Option<UserStatus>,
9945 #[serde(default, skip_serializing_if = "Option::is_none")]
9946 pub external_app_user_id: Option<String>,
9947}
9948
9949#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9950pub struct CreateUserTerminateSessionsRequest {
9951 pub user_ids: Vec<String>,
9952 pub user_logins: Vec<String>,
9953}
9954
9955#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9956pub struct PutIdNotificationEmail {
9957 #[serde(default, skip_serializing_if = "Option::is_none")]
9958 pub email: Option<String>,
9959}
9960
9961#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
9962pub struct UpdateUserRequest {
9963 #[serde(
9964 default,
9965 skip_serializing_if = "Option::is_none",
9966 deserialize_with = "double_option"
9967 )]
9968 pub enterprise: Option<Option<String>>,
9969 #[serde(default, skip_serializing_if = "Option::is_none")]
9970 pub notify: Option<bool>,
9971 #[serde(default, skip_serializing_if = "Option::is_none")]
9972 pub name: Option<String>,
9973 #[serde(default, skip_serializing_if = "Option::is_none")]
9974 pub login: Option<String>,
9975 #[serde(default, skip_serializing_if = "Option::is_none")]
9976 pub role: Option<PostRole>,
9977 #[serde(default, skip_serializing_if = "Option::is_none")]
9978 pub language: Option<String>,
9979 #[serde(default, skip_serializing_if = "Option::is_none")]
9980 pub is_sync_enabled: Option<bool>,
9981 #[serde(default, skip_serializing_if = "Option::is_none")]
9982 pub job_title: Option<String>,
9983 #[serde(default, skip_serializing_if = "Option::is_none")]
9984 pub phone: Option<String>,
9985 #[serde(default, skip_serializing_if = "Option::is_none")]
9986 pub address: Option<String>,
9987 #[serde(default, skip_serializing_if = "Option::is_none")]
9988 pub tracking_codes: Option<Vec<TrackingCode>>,
9989 #[serde(default, skip_serializing_if = "Option::is_none")]
9990 pub can_see_managed_users: Option<bool>,
9991 #[serde(default, skip_serializing_if = "Option::is_none")]
9992 pub timezone: Option<String>,
9993 #[serde(default, skip_serializing_if = "Option::is_none")]
9994 pub is_external_collab_restricted: Option<bool>,
9995 #[serde(default, skip_serializing_if = "Option::is_none")]
9996 pub is_exempt_from_device_limits: Option<bool>,
9997 #[serde(default, skip_serializing_if = "Option::is_none")]
9998 pub is_exempt_from_login_verification: Option<bool>,
9999 #[serde(default, skip_serializing_if = "Option::is_none")]
10000 pub is_password_reset_required: Option<bool>,
10001 #[serde(default, skip_serializing_if = "Option::is_none")]
10002 pub is_collaborated_content_available_when_owner_inactive: Option<bool>,
10003 #[serde(default, skip_serializing_if = "Option::is_none")]
10004 pub status: Option<UserStatus>,
10005 #[serde(default, skip_serializing_if = "Option::is_none")]
10006 pub space_amount: Option<i64>,
10007 #[serde(
10008 default,
10009 skip_serializing_if = "Option::is_none",
10010 deserialize_with = "double_option"
10011 )]
10012 pub notification_email: Option<Option<PutIdNotificationEmail>>,
10013 #[serde(default, skip_serializing_if = "Option::is_none")]
10014 pub external_app_user_id: Option<String>,
10015}
10016
10017#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10018pub struct CreateUserAvatarRequest {
10019 #[serde(skip)]
10020 pub pic: Vec<u8>,
10021}
10022
10023#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10024pub struct TransferFoldersRequest {
10025 pub owned_by: AttributesParent,
10026}
10027
10028#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10029pub struct CreateUserIdRequest {
10030 pub email: String,
10031}
10032
10033#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10034pub struct PostActionableBy {
10035 #[serde(default, skip_serializing_if = "Option::is_none")]
10036 pub login: Option<String>,
10037}
10038
10039#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10040pub struct CreateInviteRequest {
10041 pub enterprise: AttributesParent,
10042 pub actionable_by: PostActionableBy,
10043}
10044
10045#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10046pub struct CreateGroupRequest {
10047 pub name: String,
10048 #[serde(default, skip_serializing_if = "Option::is_none")]
10049 pub provenance: Option<String>,
10050 #[serde(default, skip_serializing_if = "Option::is_none")]
10051 pub external_sync_identifier: Option<String>,
10052 #[serde(default, skip_serializing_if = "Option::is_none")]
10053 pub description: Option<String>,
10054 #[serde(default, skip_serializing_if = "Option::is_none")]
10055 pub invitability_level: Option<GroupFullInvitabilityLevel>,
10056 #[serde(default, skip_serializing_if = "Option::is_none")]
10057 pub member_viewability_level: Option<GroupFullInvitabilityLevel>,
10058}
10059
10060#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10061pub struct CreateGroupTerminateSessionsRequest {
10062 pub group_ids: Vec<String>,
10063}
10064
10065#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10066pub struct UpdateGroupRequest {
10067 #[serde(default, skip_serializing_if = "Option::is_none")]
10068 pub name: Option<String>,
10069 #[serde(default, skip_serializing_if = "Option::is_none")]
10070 pub provenance: Option<String>,
10071 #[serde(default, skip_serializing_if = "Option::is_none")]
10072 pub external_sync_identifier: Option<String>,
10073 #[serde(default, skip_serializing_if = "Option::is_none")]
10074 pub description: Option<String>,
10075 #[serde(default, skip_serializing_if = "Option::is_none")]
10076 pub invitability_level: Option<GroupFullInvitabilityLevel>,
10077 #[serde(default, skip_serializing_if = "Option::is_none")]
10078 pub member_viewability_level: Option<GroupFullInvitabilityLevel>,
10079}
10080
10081#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10082pub struct CreateGroupMembershipRequest {
10083 pub user: AttributesParent,
10084 pub group: AttributesParent,
10085 #[serde(default, skip_serializing_if = "Option::is_none")]
10086 pub role: Option<GroupMembershipRole>,
10087 #[serde(
10088 default,
10089 skip_serializing_if = "Option::is_none",
10090 deserialize_with = "double_option"
10091 )]
10092 pub configurable_permissions: Option<Option<std::collections::HashMap<String, bool>>>,
10093}
10094
10095#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10096pub struct UpdateGroupMembershipRequest {
10097 #[serde(default, skip_serializing_if = "Option::is_none")]
10098 pub role: Option<GroupMembershipRole>,
10099 #[serde(
10100 default,
10101 skip_serializing_if = "Option::is_none",
10102 deserialize_with = "double_option"
10103 )]
10104 pub configurable_permissions: Option<Option<std::collections::HashMap<String, bool>>>,
10105}
10106
10107#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10108pub struct CreateWebhookRequest {
10109 pub target: WebhookTarget,
10110 pub address: String,
10111 pub triggers: Vec<WebhookTriggers>,
10112}
10113
10114#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10115pub struct UpdateWebhookRequest {
10116 #[serde(default, skip_serializing_if = "Option::is_none")]
10117 pub target: Option<WebhookTarget>,
10118 #[serde(default, skip_serializing_if = "Option::is_none")]
10119 pub address: Option<String>,
10120 #[serde(default, skip_serializing_if = "Option::is_none")]
10121 pub triggers: Option<Vec<WebhookTriggers>>,
10122}
10123
10124#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10125pub struct PutSkillInvocationIdMetadata {
10126 #[serde(default, skip_serializing_if = "Option::is_none")]
10127 pub cards: Option<Vec<SkillCard>>,
10128}
10129
10130#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10131pub struct PutSkillInvocationIdFile {
10132 #[serde(default, skip_serializing_if = "Option::is_none")]
10133 pub r#type: Option<AiCitationType>,
10134 #[serde(default, skip_serializing_if = "Option::is_none")]
10135 pub id: Option<String>,
10136}
10137
10138#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10139pub struct PutSkillInvocationIdFileVersion {
10140 #[serde(default, skip_serializing_if = "Option::is_none")]
10141 pub r#type: Option<FileVersionType>,
10142 #[serde(default, skip_serializing_if = "Option::is_none")]
10143 pub id: Option<String>,
10144}
10145
10146#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10147pub struct PutSkillInvocationIdUsage {
10148 #[serde(default, skip_serializing_if = "Option::is_none")]
10149 pub unit: Option<String>,
10150 #[serde(default, skip_serializing_if = "Option::is_none")]
10151 pub value: Option<f64>,
10152}
10153
10154#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10155pub struct UpdateSkillInvocationRequest {
10156 pub status: StatusCode,
10157 pub metadata: PutSkillInvocationIdMetadata,
10158 pub file: PutSkillInvocationIdFile,
10159 #[serde(default, skip_serializing_if = "Option::is_none")]
10160 pub file_version: Option<PutSkillInvocationIdFileVersion>,
10161 #[serde(default, skip_serializing_if = "Option::is_none")]
10162 pub usage: Option<PutSkillInvocationIdUsage>,
10163}
10164
10165#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
10166#[serde(transparent)]
10167pub struct GetStreamType(pub String);
10168
10169impl GetStreamType {
10170 pub const ALL: &'static str = "all";
10171 pub const CHANGES: &'static str = "changes";
10172 pub const SYNC: &'static str = "sync";
10173 pub const ADMIN_LOGS: &'static str = "admin_logs";
10174 pub const ADMIN_LOGS_STREAMING: &'static str = "admin_logs_streaming";
10175}
10176
10177#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
10178#[serde(transparent)]
10179pub struct GetEventType(pub String);
10180
10181impl GetEventType {
10182 pub const ACCESS_GRANTED: &'static str = "ACCESS_GRANTED";
10183 pub const ACCESS_REVOKED: &'static str = "ACCESS_REVOKED";
10184 pub const ADD_DEVICE_ASSOCIATION: &'static str = "ADD_DEVICE_ASSOCIATION";
10185 pub const ADD_LOGIN_ACTIVITY_DEVICE: &'static str = "ADD_LOGIN_ACTIVITY_DEVICE";
10186 pub const ADMIN_LOGIN: &'static str = "ADMIN_LOGIN";
10187 pub const ADVANCED_FOLDER_SETTINGS_UPDATE: &'static str = "ADVANCED_FOLDER_SETTINGS_UPDATE";
10188 pub const APPLICATION_CREATED: &'static str = "APPLICATION_CREATED";
10189 pub const APPLICATION_PUBLIC_KEY_ADDED: &'static str = "APPLICATION_PUBLIC_KEY_ADDED";
10190 pub const APPLICATION_PUBLIC_KEY_DELETED: &'static str = "APPLICATION_PUBLIC_KEY_DELETED";
10191 pub const CHANGE_ADMIN_ROLE: &'static str = "CHANGE_ADMIN_ROLE";
10192 pub const CHANGE_FOLDER_PERMISSION: &'static str = "CHANGE_FOLDER_PERMISSION";
10193 pub const COLLABORATION_ACCEPT: &'static str = "COLLABORATION_ACCEPT";
10194 pub const COLLABORATION_EXPIRATION: &'static str = "COLLABORATION_EXPIRATION";
10195 pub const COLLABORATION_INVITE: &'static str = "COLLABORATION_INVITE";
10196 pub const COLLABORATION_REMOVE: &'static str = "COLLABORATION_REMOVE";
10197 pub const COLLABORATION_ROLE_CHANGE: &'static str = "COLLABORATION_ROLE_CHANGE";
10198 pub const COMMENT_CREATE: &'static str = "COMMENT_CREATE";
10199 pub const COMMENT_DELETE: &'static str = "COMMENT_DELETE";
10200 pub const COMMENT_EDIT: &'static str = "COMMENT_EDIT";
10201 pub const CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY: &'static str =
10202 "CONTENT_WORKFLOW_ABNORMAL_DOWNLOAD_ACTIVITY";
10203 pub const CONTENT_WORKFLOW_AUTOMATION_ADD: &'static str = "CONTENT_WORKFLOW_AUTOMATION_ADD";
10204 pub const CONTENT_WORKFLOW_AUTOMATION_DELETE: &'static str =
10205 "CONTENT_WORKFLOW_AUTOMATION_DELETE";
10206 pub const CONTENT_WORKFLOW_POLICY_ADD: &'static str = "CONTENT_WORKFLOW_POLICY_ADD";
10207 pub const CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION: &'static str =
10208 "CONTENT_WORKFLOW_SHARING_POLICY_VIOLATION";
10209 pub const CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION: &'static str =
10210 "CONTENT_WORKFLOW_UPLOAD_POLICY_VIOLATION";
10211 pub const COPY: &'static str = "COPY";
10212 pub const DATA_RETENTION_CREATE_RETENTION: &'static str = "DATA_RETENTION_CREATE_RETENTION";
10213 pub const DATA_RETENTION_REMOVE_RETENTION: &'static str = "DATA_RETENTION_REMOVE_RETENTION";
10214 pub const DELETE: &'static str = "DELETE";
10215 pub const DELETE_USER: &'static str = "DELETE_USER";
10216 pub const DEVICE_TRUST_CHECK_FAILED: &'static str = "DEVICE_TRUST_CHECK_FAILED";
10217 pub const DOWNLOAD: &'static str = "DOWNLOAD";
10218 pub const EDIT: &'static str = "EDIT";
10219 pub const EDIT_USER: &'static str = "EDIT_USER";
10220 pub const EMAIL_ALIAS_CONFIRM: &'static str = "EMAIL_ALIAS_CONFIRM";
10221 pub const EMAIL_ALIAS_PRIMARY: &'static str = "EMAIL_ALIAS_PRIMARY";
10222 pub const EMAIL_ALIAS_REMOVE: &'static str = "EMAIL_ALIAS_REMOVE";
10223 pub const EMAIL_UPLOAD_DISABLED: &'static str = "EMAIL_UPLOAD_DISABLED";
10224 pub const EMAIL_UPLOAD_ENABLED: &'static str = "EMAIL_UPLOAD_ENABLED";
10225 pub const ENTERPRISE_APP_AUTHORIZATION_UPDATE: &'static str =
10226 "ENTERPRISE_APP_AUTHORIZATION_UPDATE";
10227 pub const EXTERNAL_COLLAB_SECURITY_SETTINGS: &'static str = "EXTERNAL_COLLAB_SECURITY_SETTINGS";
10228 pub const FAILED_LOGIN: &'static str = "FAILED_LOGIN";
10229 pub const FAVORITE: &'static str = "FAVORITE";
10230 pub const FILE_MARKED_MALICIOUS: &'static str = "FILE_MARKED_MALICIOUS";
10231 pub const FILE_REQUEST_CREATE: &'static str = "FILE_REQUEST_CREATE";
10232 pub const FILE_REQUEST_DELETE: &'static str = "FILE_REQUEST_DELETE";
10233 pub const FILE_REQUEST_UPDATE: &'static str = "FILE_REQUEST_UPDATE";
10234 pub const FILE_VERSION_RESTORE: &'static str = "FILE_VERSION_RESTORE";
10235 pub const FILE_WATERMARKED_DOWNLOAD: &'static str = "FILE_WATERMARKED_DOWNLOAD";
10236 pub const GROUP_ADD_ITEM: &'static str = "GROUP_ADD_ITEM";
10237 pub const GROUP_ADD_USER: &'static str = "GROUP_ADD_USER";
10238 pub const GROUP_CREATION: &'static str = "GROUP_CREATION";
10239 pub const GROUP_DELETION: &'static str = "GROUP_DELETION";
10240 pub const GROUP_EDITED: &'static str = "GROUP_EDITED";
10241 pub const GROUP_REMOVE_ITEM: &'static str = "GROUP_REMOVE_ITEM";
10242 pub const GROUP_REMOVE_USER: &'static str = "GROUP_REMOVE_USER";
10243 pub const ILLEGAL_ITEM_OWNERSHIP_TRANSFER_BY_USER: &'static str =
10244 "ILLEGAL_ITEM_OWNERSHIP_TRANSFER_BY_USER";
10245 pub const ITEM_EMAIL_SEND: &'static str = "ITEM_EMAIL_SEND";
10246 pub const ITEM_MODIFY: &'static str = "ITEM_MODIFY";
10247 pub const ITEM_OPEN: &'static str = "ITEM_OPEN";
10248 pub const ITEM_SHARED_UPDATE: &'static str = "ITEM_SHARED_UPDATE";
10249 pub const ITEM_SYNC: &'static str = "ITEM_SYNC";
10250 pub const ITEM_UNSYNC: &'static str = "ITEM_UNSYNC";
10251 pub const LEGAL_HOLD_ASSIGNMENT_CREATE: &'static str = "LEGAL_HOLD_ASSIGNMENT_CREATE";
10252 pub const LEGAL_HOLD_ASSIGNMENT_DELETE: &'static str = "LEGAL_HOLD_ASSIGNMENT_DELETE";
10253 pub const LEGAL_HOLD_POLICY_CREATE: &'static str = "LEGAL_HOLD_POLICY_CREATE";
10254 pub const LEGAL_HOLD_POLICY_DELETE: &'static str = "LEGAL_HOLD_POLICY_DELETE";
10255 pub const LEGAL_HOLD_POLICY_UPDATE: &'static str = "LEGAL_HOLD_POLICY_UPDATE";
10256 pub const LOCK: &'static str = "LOCK";
10257 pub const LOGIN: &'static str = "LOGIN";
10258 pub const METADATA_CASCADE_POLICY_APPLY: &'static str = "METADATA_CASCADE_POLICY_APPLY";
10259 pub const METADATA_CASCADE_POLICY_CREATE: &'static str = "METADATA_CASCADE_POLICY_CREATE";
10260 pub const METADATA_INSTANCE_COPY: &'static str = "METADATA_INSTANCE_COPY";
10261 pub const METADATA_INSTANCE_CREATE: &'static str = "METADATA_INSTANCE_CREATE";
10262 pub const METADATA_INSTANCE_DELETE: &'static str = "METADATA_INSTANCE_DELETE";
10263 pub const METADATA_INSTANCE_UPDATE: &'static str = "METADATA_INSTANCE_UPDATE";
10264 pub const METADATA_TEMPLATE_CREATE: &'static str = "METADATA_TEMPLATE_CREATE";
10265 pub const METADATA_TEMPLATE_DELETE: &'static str = "METADATA_TEMPLATE_DELETE";
10266 pub const METADATA_TEMPLATE_UPDATE: &'static str = "METADATA_TEMPLATE_UPDATE";
10267 pub const MOVE: &'static str = "MOVE";
10268 pub const NEW_USER: &'static str = "NEW_USER";
10269 pub const OAUTH2_ACCESS_TOKEN_REVOKE: &'static str = "OAUTH2_ACCESS_TOKEN_REVOKE";
10270 pub const OAUTH2_REFRESH_TOKEN_REVOKE: &'static str = "OAUTH2_REFRESH_TOKEN_REVOKE";
10271 pub const PREVIEW: &'static str = "PREVIEW";
10272 pub const REMOVE_DEVICE_ASSOCIATION: &'static str = "REMOVE_DEVICE_ASSOCIATION";
10273 pub const REMOVE_LOGIN_ACTIVITY_DEVICE: &'static str = "REMOVE_LOGIN_ACTIVITY_DEVICE";
10274 pub const RENAME: &'static str = "RENAME";
10275 pub const RETENTION_POLICY_ASSIGNMENT_ADD: &'static str = "RETENTION_POLICY_ASSIGNMENT_ADD";
10276 pub const SHARE: &'static str = "SHARE";
10277 pub const SHARED_LINK_SEND: &'static str = "SHARED_LINK_SEND";
10278 pub const SHARE_EXPIRATION: &'static str = "SHARE_EXPIRATION";
10279 pub const SHIELD_ALERT: &'static str = "SHIELD_ALERT";
10280 pub const SHIELD_DOWNLOAD_BLOCKED: &'static str = "SHIELD_DOWNLOAD_BLOCKED";
10281 pub const SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED: &'static str =
10282 "SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED";
10283 pub const SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION: &'static str =
10284 "SHIELD_EXTERNAL_COLLAB_ACCESS_BLOCKED_MISSING_JUSTIFICATION";
10285 pub const SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED: &'static str =
10286 "SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED";
10287 pub const SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION: &'static str =
10288 "SHIELD_EXTERNAL_COLLAB_INVITE_BLOCKED_MISSING_JUSTIFICATION";
10289 pub const SHIELD_JUSTIFICATION_APPROVAL: &'static str = "SHIELD_JUSTIFICATION_APPROVAL";
10290 pub const SHIELD_PREVIEW_BLOCKED: &'static str = "SHIELD_PREVIEW_BLOCKED";
10291 pub const SHIELD_SHARED_LINK_ACCESS_BLOCKED: &'static str = "SHIELD_SHARED_LINK_ACCESS_BLOCKED";
10292 pub const SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE: &'static str =
10293 "SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_CREATE";
10294 pub const SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE: &'static str =
10295 "SHIELD_SHARED_LINK_STATUS_RESTRICTED_ON_UPDATE";
10296 pub const SIGN_DOCUMENT_ASSIGNED: &'static str = "SIGN_DOCUMENT_ASSIGNED";
10297 pub const SIGN_DOCUMENT_CANCELLED: &'static str = "SIGN_DOCUMENT_CANCELLED";
10298 pub const SIGN_DOCUMENT_COMPLETED: &'static str = "SIGN_DOCUMENT_COMPLETED";
10299 pub const SIGN_DOCUMENT_CONVERTED: &'static str = "SIGN_DOCUMENT_CONVERTED";
10300 pub const SIGN_DOCUMENT_CREATED: &'static str = "SIGN_DOCUMENT_CREATED";
10301 pub const SIGN_DOCUMENT_DECLINED: &'static str = "SIGN_DOCUMENT_DECLINED";
10302 pub const SIGN_DOCUMENT_EXPIRED: &'static str = "SIGN_DOCUMENT_EXPIRED";
10303 pub const SIGN_DOCUMENT_SIGNED: &'static str = "SIGN_DOCUMENT_SIGNED";
10304 pub const SIGN_DOCUMENT_VIEWED_BY_SIGNED: &'static str = "SIGN_DOCUMENT_VIEWED_BY_SIGNED";
10305 pub const SIGNER_DOWNLOADED: &'static str = "SIGNER_DOWNLOADED";
10306 pub const SIGNER_FORWARDED: &'static str = "SIGNER_FORWARDED";
10307 pub const STORAGE_EXPIRATION: &'static str = "STORAGE_EXPIRATION";
10308 pub const TASK_ASSIGNMENT_CREATE: &'static str = "TASK_ASSIGNMENT_CREATE";
10309 pub const TASK_ASSIGNMENT_DELETE: &'static str = "TASK_ASSIGNMENT_DELETE";
10310 pub const TASK_ASSIGNMENT_UPDATE: &'static str = "TASK_ASSIGNMENT_UPDATE";
10311 pub const TASK_CREATE: &'static str = "TASK_CREATE";
10312 pub const TASK_UPDATE: &'static str = "TASK_UPDATE";
10313 pub const TERMS_OF_SERVICE_ACCEPT: &'static str = "TERMS_OF_SERVICE_ACCEPT";
10314 pub const TERMS_OF_SERVICE_REJECT: &'static str = "TERMS_OF_SERVICE_REJECT";
10315 pub const UNDELETE: &'static str = "UNDELETE";
10316 pub const UNFAVORITE: &'static str = "UNFAVORITE";
10317 pub const UNLOCK: &'static str = "UNLOCK";
10318 pub const UNSHARE: &'static str = "UNSHARE";
10319 pub const UPDATE_COLLABORATION_EXPIRATION: &'static str = "UPDATE_COLLABORATION_EXPIRATION";
10320 pub const UPDATE_SHARE_EXPIRATION: &'static str = "UPDATE_SHARE_EXPIRATION";
10321 pub const UPLOAD: &'static str = "UPLOAD";
10322 pub const USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE: &'static str =
10323 "USER_AUTHENTICATE_OAUTH2_ACCESS_TOKEN_CREATE";
10324 pub const WATERMARK_LABEL_CREATE: &'static str = "WATERMARK_LABEL_CREATE";
10325 pub const WATERMARK_LABEL_DELETE: &'static str = "WATERMARK_LABEL_DELETE";
10326 pub const WORKFLOW_AUTOMATION_CREATE: &'static str = "WORKFLOW_AUTOMATION_CREATE";
10327 pub const WORKFLOW_AUTOMATION_DELETE: &'static str = "WORKFLOW_AUTOMATION_DELETE";
10328 pub const WORKFLOW_AUTOMATION_UPDATE: &'static str = "WORKFLOW_AUTOMATION_UPDATE";
10329}
10330
10331#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10332#[serde(transparent)]
10333pub struct PostRetentionLength(pub serde_json::Value);
10334
10335#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10336pub struct CreateRetentionPolicyRequest {
10337 pub policy_name: String,
10338 #[serde(default, skip_serializing_if = "Option::is_none")]
10339 pub description: Option<String>,
10340 pub policy_type: RetentionPolicyPolicyType,
10341 pub disposition_action: RetentionPolicyDispositionAction,
10342 #[serde(default, skip_serializing_if = "Option::is_none")]
10343 pub retention_length: Option<PostRetentionLength>,
10344 #[serde(default, skip_serializing_if = "Option::is_none")]
10345 pub retention_type: Option<RetentionPolicyRetentionType>,
10346 #[serde(default, skip_serializing_if = "Option::is_none")]
10347 pub can_owner_extend_retention: Option<bool>,
10348 #[serde(default, skip_serializing_if = "Option::is_none")]
10349 pub max_extension_length: Option<RetentionPolicyMaxExtensionLengthRequest>,
10350 #[serde(default, skip_serializing_if = "Option::is_none")]
10351 pub are_owners_notified: Option<bool>,
10352 #[serde(default, skip_serializing_if = "Option::is_none")]
10353 pub custom_notification_recipients: Option<Vec<UserMini>>,
10354}
10355
10356#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10357#[serde(transparent)]
10358pub struct PutIdDispositionAction(pub serde_json::Value);
10359
10360#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10361pub struct UpdateRetentionPolicyRequest {
10362 #[serde(
10363 default,
10364 skip_serializing_if = "Option::is_none",
10365 deserialize_with = "double_option"
10366 )]
10367 pub policy_name: Option<Option<String>>,
10368 #[serde(
10369 default,
10370 skip_serializing_if = "Option::is_none",
10371 deserialize_with = "double_option"
10372 )]
10373 pub description: Option<Option<String>>,
10374 #[serde(default, skip_serializing_if = "Option::is_none")]
10375 pub disposition_action: Option<PutIdDispositionAction>,
10376 #[serde(
10377 default,
10378 skip_serializing_if = "Option::is_none",
10379 deserialize_with = "double_option"
10380 )]
10381 pub retention_type: Option<Option<String>>,
10382 #[serde(default, skip_serializing_if = "Option::is_none")]
10383 pub retention_length: Option<PostRetentionLength>,
10384 #[serde(
10385 default,
10386 skip_serializing_if = "Option::is_none",
10387 deserialize_with = "double_option"
10388 )]
10389 pub status: Option<Option<String>>,
10390 #[serde(
10391 default,
10392 skip_serializing_if = "Option::is_none",
10393 deserialize_with = "double_option"
10394 )]
10395 pub can_owner_extend_retention: Option<Option<bool>>,
10396 #[serde(default, skip_serializing_if = "Option::is_none")]
10397 pub max_extension_length: Option<RetentionPolicyMaxExtensionLengthRequest>,
10398 #[serde(
10399 default,
10400 skip_serializing_if = "Option::is_none",
10401 deserialize_with = "double_option"
10402 )]
10403 pub are_owners_notified: Option<Option<bool>>,
10404 #[serde(
10405 default,
10406 skip_serializing_if = "Option::is_none",
10407 deserialize_with = "double_option"
10408 )]
10409 pub custom_notification_recipients: Option<Option<Vec<UserBase>>>,
10410}
10411
10412#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
10413#[serde(transparent)]
10414pub struct AssignToType(pub String);
10415
10416impl AssignToType {
10417 pub const ENTERPRISE: &'static str = "enterprise";
10418 pub const FOLDER: &'static str = "folder";
10419 pub const METADATA_TEMPLATE: &'static str = "metadata_template";
10420}
10421
10422#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10423pub struct CreateRetentionPolicyAssignmentRequestAssignTo {
10424 pub r#type: AssignToType,
10425 #[serde(
10426 default,
10427 skip_serializing_if = "Option::is_none",
10428 deserialize_with = "double_option"
10429 )]
10430 pub id: Option<Option<String>>,
10431}
10432
10433#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10434pub struct PostFilterFields {
10435 #[serde(default, skip_serializing_if = "Option::is_none")]
10436 pub field: Option<String>,
10437 #[serde(default, skip_serializing_if = "Option::is_none")]
10438 pub value: Option<String>,
10439}
10440
10441#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10442pub struct CreateRetentionPolicyAssignmentRequest {
10443 pub policy_id: String,
10444 pub assign_to: CreateRetentionPolicyAssignmentRequestAssignTo,
10445 #[serde(default, skip_serializing_if = "Option::is_none")]
10446 pub filter_fields: Option<Vec<PostFilterFields>>,
10447 #[serde(default, skip_serializing_if = "Option::is_none")]
10448 pub start_date_field: Option<String>,
10449}
10450
10451#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10452pub struct CreateLegalHoldPolicyRequest {
10453 pub policy_name: String,
10454 #[serde(default, skip_serializing_if = "Option::is_none")]
10455 pub description: Option<String>,
10456 #[serde(default, skip_serializing_if = "Option::is_none")]
10457 pub filter_started_at: Option<chrono::DateTime<chrono::Utc>>,
10458 #[serde(default, skip_serializing_if = "Option::is_none")]
10459 pub filter_ended_at: Option<chrono::DateTime<chrono::Utc>>,
10460 #[serde(default, skip_serializing_if = "Option::is_none")]
10461 pub is_ongoing: Option<bool>,
10462}
10463
10464#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10465pub struct UpdateLegalHoldPolicyRequest {
10466 #[serde(default, skip_serializing_if = "Option::is_none")]
10467 pub policy_name: Option<String>,
10468 #[serde(default, skip_serializing_if = "Option::is_none")]
10469 pub description: Option<String>,
10470 #[serde(default, skip_serializing_if = "Option::is_none")]
10471 pub release_notes: Option<String>,
10472}
10473
10474#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10475pub struct CreateLegalHoldPolicyAssignmentRequestAssignTo {
10476 pub r#type: LegalHoldPolicyAssignedItemType,
10477 pub id: String,
10478}
10479
10480#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10481pub struct CreateLegalHoldPolicyAssignmentRequest {
10482 pub policy_id: String,
10483 pub assign_to: CreateLegalHoldPolicyAssignmentRequestAssignTo,
10484}
10485
10486#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
10487#[serde(transparent)]
10488pub struct PostChangeStatusStatus(pub String);
10489
10490impl PostChangeStatusStatus {
10491 pub const PENDING: &'static str = "pending";
10492 pub const DISABLED: &'static str = "disabled";
10493}
10494
10495#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10496pub struct CreateChangeStatusRequest {
10497 pub id: String,
10498 pub status: PostChangeStatusStatus,
10499}
10500
10501#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10502pub struct CreateShieldInformationBarrierRequest {
10503 pub enterprise: EnterpriseBase,
10504}
10505
10506#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10507pub struct UpdateShieldInformationBarrierSegmentRequest {
10508 #[serde(default, skip_serializing_if = "Option::is_none")]
10509 pub name: Option<String>,
10510 #[serde(
10511 default,
10512 skip_serializing_if = "Option::is_none",
10513 deserialize_with = "double_option"
10514 )]
10515 pub description: Option<Option<String>>,
10516}
10517
10518#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10519pub struct CreateShieldInformationBarrierSegmentRequest {
10520 pub shield_information_barrier: ShieldInformationBarrierBase,
10521 pub name: String,
10522 #[serde(default, skip_serializing_if = "Option::is_none")]
10523 pub description: Option<String>,
10524}
10525
10526#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10527pub struct CreateShieldInformationBarrierSegmentMemberRequest {
10528 #[serde(default, skip_serializing_if = "Option::is_none")]
10529 pub r#type: Option<ShieldInformationBarrierSegmentMemberType>,
10530 #[serde(default, skip_serializing_if = "Option::is_none")]
10531 pub shield_information_barrier: Option<ShieldInformationBarrierBase>,
10532 pub shield_information_barrier_segment:
10533 ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment,
10534 pub user: UserBase,
10535}
10536
10537#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10538pub struct CreateShieldInformationBarrierSegmentRestrictionRequest {
10539 pub r#type: ShieldInformationBarrierSegmentRestrictionType,
10540 #[serde(default, skip_serializing_if = "Option::is_none")]
10541 pub shield_information_barrier: Option<ShieldInformationBarrierBase>,
10542 pub shield_information_barrier_segment:
10543 ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment,
10544 pub restricted_segment: ShieldInformationBarrierSegmentMemberShieldInformationBarrierSegment,
10545}
10546
10547#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
10548#[serde(transparent)]
10549pub struct GetTosType(pub String);
10550
10551impl GetTosType {
10552 pub const EXTERNAL: &'static str = "external";
10553 pub const MANAGED: &'static str = "managed";
10554}
10555
10556#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10557pub struct CreateTermsOfServiceRequest {
10558 pub status: TermsOfServiceStatus,
10559 #[serde(default, skip_serializing_if = "Option::is_none")]
10560 pub tos_type: Option<GetTosType>,
10561 pub text: String,
10562}
10563
10564#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10565pub struct UpdateTermsOfServiceRequest {
10566 pub status: TermsOfServiceStatus,
10567 pub text: String,
10568}
10569
10570#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10571pub struct PostTos {
10572 pub r#type: TermsOfServiceType,
10573 pub id: String,
10574}
10575
10576#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10577pub struct CreateTermsOfServiceUserStatusRequest {
10578 pub tos: PostTos,
10579 pub user: CollaboratorVariableVariableValue,
10580 pub is_accepted: bool,
10581}
10582
10583#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10584pub struct UpdateTermsOfServiceUserStatusRequest {
10585 pub is_accepted: bool,
10586}
10587
10588#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10589pub struct CreateCollaborationAllowlistEntryRequest {
10590 pub domain: String,
10591 pub direction: CollaborationAllowlistEntryDirection,
10592}
10593
10594#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10595pub struct CreateCollaborationAllowlistExemptTargetRequest {
10596 pub user: AttributesParent,
10597}
10598
10599#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
10600#[serde(transparent)]
10601pub struct GetResolvedForType(pub String);
10602
10603impl GetResolvedForType {
10604 pub const USER: &'static str = "user";
10605 pub const ENTERPRISE: &'static str = "enterprise";
10606}
10607
10608#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10609pub struct PostStoragePolicy {
10610 pub r#type: StoragePolicyType,
10611 pub id: String,
10612}
10613
10614#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10615pub struct PostAssignedTo {
10616 pub r#type: GetResolvedForType,
10617 pub id: String,
10618}
10619
10620#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10621pub struct CreateStoragePolicyAssignmentRequest {
10622 pub storage_policy: PostStoragePolicy,
10623 pub assigned_to: PostAssignedTo,
10624}
10625
10626#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10627pub struct UpdateStoragePolicyAssignmentRequest {
10628 pub storage_policy: PostStoragePolicy,
10629}
10630
10631#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
10632#[serde(transparent)]
10633pub struct PostIdStartType(pub String);
10634
10635impl PostIdStartType {
10636 pub const WORKFLOW_PARAMETERS: &'static str = "workflow_parameters";
10637}
10638
10639#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10640pub struct PostIdStartFlow {
10641 #[serde(default, skip_serializing_if = "Option::is_none")]
10642 pub r#type: Option<String>,
10643 #[serde(default, skip_serializing_if = "Option::is_none")]
10644 pub id: Option<String>,
10645}
10646
10647#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10648pub struct StartWorkflowRequest {
10649 #[serde(default, skip_serializing_if = "Option::is_none")]
10650 pub r#type: Option<PostIdStartType>,
10651 pub flow: PostIdStartFlow,
10652 pub files: Vec<PutSkillInvocationIdFile>,
10653 pub folder: MetadataCascadePolicyParent,
10654 #[serde(default, skip_serializing_if = "Option::is_none")]
10655 pub outcomes: Option<Vec<Outcome>>,
10656}
10657
10658#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10659pub struct UpdateSlackRequest {
10660 #[serde(default, skip_serializing_if = "Option::is_none")]
10661 pub box_item: Option<IntegrationMappingBoxItemSlack>,
10662 #[serde(default, skip_serializing_if = "Option::is_none")]
10663 pub options: Option<IntegrationMappingSlackOptions>,
10664}
10665
10666#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10667pub struct UpdateTeamRequest {
10668 #[serde(default, skip_serializing_if = "Option::is_none")]
10669 pub box_item: Option<FolderReference>,
10670}
10671
10672#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
10673#[serde(transparent)]
10674pub struct GetAgentDefaultMode(pub String);
10675
10676impl GetAgentDefaultMode {
10677 pub const ASK: &'static str = "ask";
10678 pub const TEXT_GEN: &'static str = "text_gen";
10679 pub const EXTRACT: &'static str = "extract";
10680 pub const EXTRACT_STRUCTURED: &'static str = "extract_structured";
10681}
10682
10683#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10684pub struct CreateMetadataTaxonomyRequest {
10685 #[serde(default, skip_serializing_if = "Option::is_none")]
10686 pub key: Option<String>,
10687 #[serde(rename = "displayName")]
10688 pub display_name: String,
10689 pub namespace: String,
10690}
10691
10692#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10693pub struct UpdateMetadataTaxonomyRequest {
10694 #[serde(rename = "displayName")]
10695 pub display_name: String,
10696}
10697
10698#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10699pub struct UpdateLevelRequest {
10700 #[serde(rename = "displayName")]
10701 pub display_name: String,
10702 #[serde(default, skip_serializing_if = "Option::is_none")]
10703 pub description: Option<String>,
10704}
10705
10706#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10707pub struct CreateNodesRequest {
10708 #[serde(rename = "displayName")]
10709 pub display_name: String,
10710 pub level: i64,
10711 #[serde(rename = "parentId", default, skip_serializing_if = "Option::is_none")]
10712 pub parent_id: Option<String>,
10713}
10714
10715#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10716pub struct UpdateNodeRequest {
10717 #[serde(
10718 rename = "displayName",
10719 default,
10720 skip_serializing_if = "Option::is_none"
10721 )]
10722 pub display_name: Option<String>,
10723}
10724
10725#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10726pub struct Archive {
10727 pub id: String,
10728 pub r#type: ArchiveType,
10729 pub name: String,
10730 pub size: i64,
10731 #[serde(
10732 default,
10733 skip_serializing_if = "Option::is_none",
10734 deserialize_with = "double_option"
10735 )]
10736 pub description: Option<Option<String>>,
10737 #[serde(default, skip_serializing_if = "Option::is_none")]
10738 pub owned_by: Option<ArchiveOwnedBy>,
10739}
10740
10741#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10742pub struct Archives {
10743 #[serde(default, skip_serializing_if = "Option::is_none")]
10744 pub entries: Option<Vec<Archive>>,
10745 #[serde(default, skip_serializing_if = "Option::is_none")]
10746 pub limit: Option<i64>,
10747 #[serde(
10748 default,
10749 skip_serializing_if = "Option::is_none",
10750 deserialize_with = "double_option"
10751 )]
10752 pub next_marker: Option<Option<String>>,
10753}
10754
10755#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10756pub struct CollaborationPermissions {
10757 #[serde(default, skip_serializing_if = "Option::is_none")]
10758 pub is_co_owner_role_enabled: Option<bool>,
10759 #[serde(default, skip_serializing_if = "Option::is_none")]
10760 pub is_editor_role_enabled: Option<bool>,
10761 #[serde(default, skip_serializing_if = "Option::is_none")]
10762 pub is_previewer_role_enabled: Option<bool>,
10763 #[serde(default, skip_serializing_if = "Option::is_none")]
10764 pub is_previewer_uploader_role_enabled: Option<bool>,
10765 #[serde(default, skip_serializing_if = "Option::is_none")]
10766 pub is_uploader_role_enabled: Option<bool>,
10767 #[serde(default, skip_serializing_if = "Option::is_none")]
10768 pub is_viewer_role_enabled: Option<bool>,
10769 #[serde(default, skip_serializing_if = "Option::is_none")]
10770 pub is_viewer_uploader_role_enabled: Option<bool>,
10771}
10772
10773#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10774pub struct CustomSessionDurationGroupItem {
10775 #[serde(default, skip_serializing_if = "Option::is_none")]
10776 pub id: Option<String>,
10777 #[serde(default, skip_serializing_if = "Option::is_none")]
10778 pub name: Option<String>,
10779}
10780
10781#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10782pub struct DocGenBatchBase {
10783 pub id: String,
10784 pub r#type: DocGenBatchBaseType,
10785}
10786
10787#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10788pub struct DocGenBatchCreateRequest {
10789 pub file: FileReference,
10790 #[serde(default, skip_serializing_if = "Option::is_none")]
10791 pub file_version: Option<FileVersionBase>,
10792 pub input_source: String,
10793 pub destination_folder: DocGenBatchCreateRequestDestinationFolder,
10794 pub output_type: String,
10795 pub document_generation_data: Vec<DocGenDocumentGenerationData>,
10796}
10797
10798#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10799pub struct DocGenDocumentGenerationData {
10800 pub generated_file_name: String,
10801 pub user_input: std::collections::HashMap<String, serde_json::Value>,
10802}
10803
10804#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10805pub struct DocGenJob {
10806 pub id: String,
10807 pub r#type: DocGenJobType,
10808 pub batch: DocGenBatchBase,
10809 pub template_file: FileReference,
10810 pub template_file_version: FileVersionBase,
10811 #[serde(
10812 default,
10813 skip_serializing_if = "Option::is_none",
10814 deserialize_with = "double_option"
10815 )]
10816 pub output_file: Option<Option<FileReference>>,
10817 #[serde(
10818 default,
10819 skip_serializing_if = "Option::is_none",
10820 deserialize_with = "double_option"
10821 )]
10822 pub output_file_version: Option<Option<FileVersionBase>>,
10823 pub status: DocGenJobStatus,
10824 pub output_type: String,
10825 #[serde(
10826 default,
10827 skip_serializing_if = "Option::is_none",
10828 deserialize_with = "double_option"
10829 )]
10830 pub failures: Option<Option<DocGenJobFailures>>,
10831}
10832
10833#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10834pub struct DocGenJobBase {
10835 pub id: String,
10836 pub r#type: DocGenJobType,
10837}
10838
10839#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10840pub struct DocGenJobFull {
10841 pub id: String,
10842 pub r#type: DocGenJobType,
10843 pub batch: DocGenBatchBase,
10844 pub template_file: FileReference,
10845 pub template_file_version: FileVersionBase,
10846 #[serde(
10847 default,
10848 skip_serializing_if = "Option::is_none",
10849 deserialize_with = "double_option"
10850 )]
10851 pub output_file: Option<Option<FileReference>>,
10852 #[serde(
10853 default,
10854 skip_serializing_if = "Option::is_none",
10855 deserialize_with = "double_option"
10856 )]
10857 pub output_file_version: Option<Option<FileVersionBase>>,
10858 pub status: DocGenJobStatus,
10859 pub output_type: String,
10860 #[serde(
10861 default,
10862 skip_serializing_if = "Option::is_none",
10863 deserialize_with = "double_option"
10864 )]
10865 pub failures: Option<Option<DocGenJobFailures>>,
10866 #[serde(default, skip_serializing_if = "Option::is_none")]
10867 pub created_at: Option<String>,
10868 pub created_by: UserBase,
10869 pub enterprise: EnterpriseReference,
10870 pub source: String,
10871}
10872
10873#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10874pub struct DocGenJobs {
10875 #[serde(default, skip_serializing_if = "Option::is_none")]
10876 pub limit: Option<i64>,
10877 #[serde(
10878 default,
10879 skip_serializing_if = "Option::is_none",
10880 deserialize_with = "double_option"
10881 )]
10882 pub next_marker: Option<Option<String>>,
10883 #[serde(
10884 default,
10885 skip_serializing_if = "Option::is_none",
10886 deserialize_with = "double_option"
10887 )]
10888 pub prev_marker: Option<Option<String>>,
10889 #[serde(default, skip_serializing_if = "Option::is_none")]
10890 pub entries: Option<Vec<DocGenJob>>,
10891}
10892
10893#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10894pub struct DocGenJobsFull {
10895 #[serde(default, skip_serializing_if = "Option::is_none")]
10896 pub limit: Option<i64>,
10897 #[serde(
10898 default,
10899 skip_serializing_if = "Option::is_none",
10900 deserialize_with = "double_option"
10901 )]
10902 pub next_marker: Option<Option<String>>,
10903 #[serde(
10904 default,
10905 skip_serializing_if = "Option::is_none",
10906 deserialize_with = "double_option"
10907 )]
10908 pub prev_marker: Option<Option<String>>,
10909 #[serde(default, skip_serializing_if = "Option::is_none")]
10910 pub entries: Option<Vec<DocGenJobFull>>,
10911}
10912
10913#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10914pub struct DocGenTag {
10915 pub tag_content: String,
10916 pub tag_type: DocGenTagTagType,
10917 pub json_paths: Vec<String>,
10918}
10919
10920#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10921pub struct DocGenTags {
10922 #[serde(default, skip_serializing_if = "Option::is_none")]
10923 pub limit: Option<i64>,
10924 #[serde(
10925 default,
10926 skip_serializing_if = "Option::is_none",
10927 deserialize_with = "double_option"
10928 )]
10929 pub next_marker: Option<Option<String>>,
10930 #[serde(
10931 default,
10932 skip_serializing_if = "Option::is_none",
10933 deserialize_with = "double_option"
10934 )]
10935 pub prev_marker: Option<Option<String>>,
10936 #[serde(default, skip_serializing_if = "Option::is_none")]
10937 pub entries: Option<Vec<DocGenTag>>,
10938}
10939
10940#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10941pub struct DocGenTagsProcessingMessage {
10942 pub message: String,
10943}
10944
10945#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10946pub struct DocGenTemplate {
10947 #[serde(default, skip_serializing_if = "Option::is_none")]
10948 pub file: Option<FileReference>,
10949 #[serde(
10950 default,
10951 skip_serializing_if = "Option::is_none",
10952 deserialize_with = "double_option"
10953 )]
10954 pub file_name: Option<Option<String>>,
10955}
10956
10957#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10958pub struct DocGenTemplateBase {
10959 #[serde(default, skip_serializing_if = "Option::is_none")]
10960 pub file: Option<FileReference>,
10961}
10962
10963#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10964pub struct DocGenTemplateCreateRequest {
10965 pub file: FileReference,
10966}
10967
10968#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10969pub struct DocGenTemplates {
10970 #[serde(default, skip_serializing_if = "Option::is_none")]
10971 pub limit: Option<i64>,
10972 #[serde(
10973 default,
10974 skip_serializing_if = "Option::is_none",
10975 deserialize_with = "double_option"
10976 )]
10977 pub next_marker: Option<Option<String>>,
10978 #[serde(
10979 default,
10980 skip_serializing_if = "Option::is_none",
10981 deserialize_with = "double_option"
10982 )]
10983 pub prev_marker: Option<Option<String>>,
10984 #[serde(default, skip_serializing_if = "Option::is_none")]
10985 pub entries: Option<Vec<DocGenTemplate>>,
10986}
10987
10988#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
10989pub struct EnterpriseConfiguration {
10990 #[serde(default, skip_serializing_if = "Option::is_none")]
10991 pub id: Option<String>,
10992 #[serde(default, skip_serializing_if = "Option::is_none")]
10993 pub r#type: Option<EnterpriseConfigurationType>,
10994 #[serde(
10995 default,
10996 skip_serializing_if = "Option::is_none",
10997 deserialize_with = "double_option"
10998 )]
10999 pub security: Option<Option<EnterpriseConfigurationSecurity>>,
11000 #[serde(
11001 default,
11002 skip_serializing_if = "Option::is_none",
11003 deserialize_with = "double_option"
11004 )]
11005 pub content_and_sharing: Option<Option<EnterpriseConfigurationContentAndSharing>>,
11006 #[serde(
11007 default,
11008 skip_serializing_if = "Option::is_none",
11009 deserialize_with = "double_option"
11010 )]
11011 pub user_settings: Option<Option<EnterpriseConfigurationUserSettings>>,
11012 #[serde(
11013 default,
11014 skip_serializing_if = "Option::is_none",
11015 deserialize_with = "double_option"
11016 )]
11017 pub shield: Option<Option<EnterpriseConfigurationShield>>,
11018}
11019
11020#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11021pub struct EnterpriseConfigurationContentAndSharing {
11022 #[serde(default, skip_serializing_if = "Option::is_none")]
11023 pub enterprise_feature_settings: Option<Vec<EnterpriseFeatureSettingsItem>>,
11024 #[serde(default, skip_serializing_if = "Option::is_none")]
11025 pub sharing_item_type: Option<EnterpriseConfigurationItemString>,
11026 #[serde(default, skip_serializing_if = "Option::is_none")]
11027 pub shared_link_company_definition: Option<EnterpriseConfigurationItemString>,
11028 #[serde(default, skip_serializing_if = "Option::is_none")]
11029 pub shared_link_access: Option<EnterpriseConfigurationItemString>,
11030 #[serde(default, skip_serializing_if = "Option::is_none")]
11031 pub shared_link_default_access: Option<EnterpriseConfigurationItemString>,
11032 #[serde(default, skip_serializing_if = "Option::is_none")]
11033 pub shared_link_default_permissions_selected:
11034 Option<EnterpriseConfigurationContentAndSharingSharedLinkDefaultPermissionsSelected>,
11035 #[serde(default, skip_serializing_if = "Option::is_none")]
11036 pub is_open_custom_urls_disabled: Option<EnterpriseConfigurationItemBoolean>,
11037 #[serde(default, skip_serializing_if = "Option::is_none")]
11038 pub is_custom_domain_hidden_in_shared_link: Option<EnterpriseConfigurationItemBoolean>,
11039 #[serde(default, skip_serializing_if = "Option::is_none")]
11040 pub collaboration_permissions:
11041 Option<EnterpriseConfigurationContentAndSharingCollaborationPermissions>,
11042 #[serde(default, skip_serializing_if = "Option::is_none")]
11043 pub default_collaboration_role: Option<EnterpriseConfigurationItemString>,
11044 #[serde(default, skip_serializing_if = "Option::is_none")]
11045 pub is_invite_privilege_restricted: Option<EnterpriseConfigurationItemBoolean>,
11046 #[serde(default, skip_serializing_if = "Option::is_none")]
11047 pub collaboration_restrictions:
11048 Option<EnterpriseConfigurationContentAndSharingCollaborationRestrictions>,
11049 #[serde(default, skip_serializing_if = "Option::is_none")]
11050 pub is_collaborator_invite_links_disabled: Option<EnterpriseConfigurationItemBoolean>,
11051 #[serde(default, skip_serializing_if = "Option::is_none")]
11052 pub is_invite_group_collaborator_disabled: Option<EnterpriseConfigurationItemBoolean>,
11053 #[serde(default, skip_serializing_if = "Option::is_none")]
11054 pub is_ownership_transfer_restricted: Option<EnterpriseConfigurationItemBoolean>,
11055 #[serde(default, skip_serializing_if = "Option::is_none")]
11056 pub external_collaboration_status:
11057 Option<EnterpriseConfigurationContentAndSharingExternalCollaborationStatus>,
11058 #[serde(default, skip_serializing_if = "Option::is_none")]
11059 pub external_collaboration_allowlist_users:
11060 Option<EnterpriseConfigurationContentAndSharingExternalCollaborationAllowlistUsers>,
11061 #[serde(default, skip_serializing_if = "Option::is_none")]
11062 pub is_watermarking_enterprise_feature_enabled: Option<EnterpriseConfigurationItemBoolean>,
11063 #[serde(default, skip_serializing_if = "Option::is_none")]
11064 pub is_root_content_creation_restricted: Option<EnterpriseConfigurationItemBoolean>,
11065 #[serde(default, skip_serializing_if = "Option::is_none")]
11066 pub is_tag_creation_restricted: Option<EnterpriseConfigurationItemBoolean>,
11067 #[serde(default, skip_serializing_if = "Option::is_none")]
11068 pub tag_creation_restriction: Option<EnterpriseConfigurationItemString>,
11069 #[serde(default, skip_serializing_if = "Option::is_none")]
11070 pub is_email_uploads_enabled: Option<EnterpriseConfigurationItemBoolean>,
11071 #[serde(default, skip_serializing_if = "Option::is_none")]
11072 pub is_custom_settings_enabled: Option<EnterpriseConfigurationItemBoolean>,
11073 #[serde(default, skip_serializing_if = "Option::is_none")]
11074 pub is_forms_login_required: Option<EnterpriseConfigurationItemBoolean>,
11075 #[serde(default, skip_serializing_if = "Option::is_none")]
11076 pub is_forms_branding_default_enabled: Option<EnterpriseConfigurationItemBoolean>,
11077 #[serde(default, skip_serializing_if = "Option::is_none")]
11078 pub is_cc_free_trial_active: Option<EnterpriseConfigurationItemBoolean>,
11079 #[serde(default, skip_serializing_if = "Option::is_none")]
11080 pub is_file_request_editors_allowed: Option<EnterpriseConfigurationItemBoolean>,
11081 #[serde(default, skip_serializing_if = "Option::is_none")]
11082 pub is_file_request_branding_default_enabled: Option<EnterpriseConfigurationItemBoolean>,
11083 #[serde(default, skip_serializing_if = "Option::is_none")]
11084 pub is_file_request_login_required: Option<EnterpriseConfigurationItemBoolean>,
11085 #[serde(default, skip_serializing_if = "Option::is_none")]
11086 pub is_shared_links_expiration_enabled: Option<EnterpriseConfigurationItemBoolean>,
11087 #[serde(default, skip_serializing_if = "Option::is_none")]
11088 pub shared_links_expiration_days: Option<EnterpriseConfigurationItemInteger>,
11089 #[serde(default, skip_serializing_if = "Option::is_none")]
11090 pub is_public_shared_links_expiration_enabled: Option<EnterpriseConfigurationItemBoolean>,
11091 #[serde(default, skip_serializing_if = "Option::is_none")]
11092 pub public_shared_links_expiration_days: Option<EnterpriseConfigurationItemInteger>,
11093 #[serde(default, skip_serializing_if = "Option::is_none")]
11094 pub shared_expiration_target: Option<EnterpriseConfigurationItemString>,
11095 #[serde(default, skip_serializing_if = "Option::is_none")]
11096 pub is_shared_links_expiration_notification_enabled: Option<EnterpriseConfigurationItemBoolean>,
11097 #[serde(default, skip_serializing_if = "Option::is_none")]
11098 pub shared_links_expiration_notification_days: Option<EnterpriseConfigurationItemInteger>,
11099 #[serde(default, skip_serializing_if = "Option::is_none")]
11100 pub is_shared_links_expiration_notification_prevented:
11101 Option<EnterpriseConfigurationItemBoolean>,
11102 #[serde(default, skip_serializing_if = "Option::is_none")]
11103 pub is_auto_delete_enabled: Option<EnterpriseConfigurationItemBoolean>,
11104 #[serde(default, skip_serializing_if = "Option::is_none")]
11105 pub auto_delete_days: Option<EnterpriseConfigurationItemInteger>,
11106 #[serde(default, skip_serializing_if = "Option::is_none")]
11107 pub is_auto_delete_expiration_modification_prevented:
11108 Option<EnterpriseConfigurationItemBoolean>,
11109 #[serde(default, skip_serializing_if = "Option::is_none")]
11110 pub auto_delete_target: Option<EnterpriseConfigurationItemString>,
11111 #[serde(default, skip_serializing_if = "Option::is_none")]
11112 pub is_collaboration_expiration_enabled: Option<EnterpriseConfigurationItemBoolean>,
11113 #[serde(default, skip_serializing_if = "Option::is_none")]
11114 pub collaboration_expiration_days: Option<EnterpriseConfigurationItemInteger>,
11115 #[serde(default, skip_serializing_if = "Option::is_none")]
11116 pub is_collaboration_expiration_modification_prevented:
11117 Option<EnterpriseConfigurationItemBoolean>,
11118 #[serde(default, skip_serializing_if = "Option::is_none")]
11119 pub is_collaboration_expiration_notification_enabled:
11120 Option<EnterpriseConfigurationItemBoolean>,
11121 #[serde(default, skip_serializing_if = "Option::is_none")]
11122 pub collaboration_expiration_target: Option<EnterpriseConfigurationItemString>,
11123 #[serde(default, skip_serializing_if = "Option::is_none")]
11124 pub trash_auto_clear_time: Option<EnterpriseConfigurationItemInteger>,
11125 #[serde(default, skip_serializing_if = "Option::is_none")]
11126 pub permanent_deletion_access: Option<EnterpriseConfigurationItemString>,
11127 #[serde(default, skip_serializing_if = "Option::is_none")]
11128 pub permanent_deletion_allowlist_users:
11129 Option<EnterpriseConfigurationContentAndSharingExternalCollaborationAllowlistUsers>,
11130}
11131
11132#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11133pub struct EnterpriseConfigurationItem {
11134 #[serde(default, skip_serializing_if = "Option::is_none")]
11135 pub is_used: Option<bool>,
11136}
11137
11138#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11139pub struct EnterpriseConfigurationItemBoolean {
11140 #[serde(default, skip_serializing_if = "Option::is_none")]
11141 pub is_used: Option<bool>,
11142 #[serde(
11143 default,
11144 skip_serializing_if = "Option::is_none",
11145 deserialize_with = "double_option"
11146 )]
11147 pub value: Option<Option<bool>>,
11148}
11149
11150#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11151pub struct EnterpriseConfigurationItemInteger {
11152 #[serde(default, skip_serializing_if = "Option::is_none")]
11153 pub is_used: Option<bool>,
11154 #[serde(
11155 default,
11156 skip_serializing_if = "Option::is_none",
11157 deserialize_with = "double_option"
11158 )]
11159 pub value: Option<Option<i64>>,
11160}
11161
11162#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11163pub struct EnterpriseConfigurationItemString {
11164 #[serde(default, skip_serializing_if = "Option::is_none")]
11165 pub is_used: Option<bool>,
11166 #[serde(
11167 default,
11168 skip_serializing_if = "Option::is_none",
11169 deserialize_with = "double_option"
11170 )]
11171 pub value: Option<Option<String>>,
11172}
11173
11174#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11175pub struct EnterpriseConfigurationSecurity {
11176 #[serde(default, skip_serializing_if = "Option::is_none")]
11177 pub is_managed_user_signup_enabled: Option<EnterpriseConfigurationItemBoolean>,
11178 #[serde(default, skip_serializing_if = "Option::is_none")]
11179 pub is_managed_user_signup_notification_enabled: Option<EnterpriseConfigurationItemBoolean>,
11180 #[serde(default, skip_serializing_if = "Option::is_none")]
11181 pub is_managed_user_signup_corporate_email_enabled: Option<EnterpriseConfigurationItemBoolean>,
11182 #[serde(default, skip_serializing_if = "Option::is_none")]
11183 pub is_new_user_notification_daily_digest_enabled: Option<EnterpriseConfigurationItemBoolean>,
11184 #[serde(default, skip_serializing_if = "Option::is_none")]
11185 pub is_managed_user_email_change_disabled: Option<EnterpriseConfigurationItemBoolean>,
11186 #[serde(default, skip_serializing_if = "Option::is_none")]
11187 pub is_multi_factor_auth_required: Option<EnterpriseConfigurationItemBoolean>,
11188 #[serde(default, skip_serializing_if = "Option::is_none")]
11189 pub is_weak_password_prevention_enabled: Option<EnterpriseConfigurationItemBoolean>,
11190 #[serde(default, skip_serializing_if = "Option::is_none")]
11191 pub is_password_leak_detection_enabled: Option<EnterpriseConfigurationItemBoolean>,
11192 #[serde(default, skip_serializing_if = "Option::is_none")]
11193 pub last_password_reset_at: Option<EnterpriseConfigurationSecurityLastPasswordResetAt>,
11194 #[serde(default, skip_serializing_if = "Option::is_none")]
11195 pub is_password_request_notification_enabled: Option<EnterpriseConfigurationItemBoolean>,
11196 #[serde(default, skip_serializing_if = "Option::is_none")]
11197 pub is_password_change_notification_enabled: Option<EnterpriseConfigurationItemBoolean>,
11198 #[serde(default, skip_serializing_if = "Option::is_none")]
11199 pub is_strong_password_for_ext_collab_enabled: Option<EnterpriseConfigurationItemBoolean>,
11200 #[serde(default, skip_serializing_if = "Option::is_none")]
11201 pub is_managed_user_migration_disabled: Option<EnterpriseConfigurationItemBoolean>,
11202 #[serde(default, skip_serializing_if = "Option::is_none")]
11203 pub join_link: Option<EnterpriseConfigurationItemString>,
11204 #[serde(default, skip_serializing_if = "Option::is_none")]
11205 pub join_url: Option<EnterpriseConfigurationItemString>,
11206 #[serde(default, skip_serializing_if = "Option::is_none")]
11207 pub failed_login_attempts_to_trigger_admin_notification:
11208 Option<EnterpriseConfigurationItemInteger>,
11209 #[serde(default, skip_serializing_if = "Option::is_none")]
11210 pub password_min_length: Option<EnterpriseConfigurationItemInteger>,
11211 #[serde(default, skip_serializing_if = "Option::is_none")]
11212 pub password_min_uppercase_characters: Option<EnterpriseConfigurationItemInteger>,
11213 #[serde(default, skip_serializing_if = "Option::is_none")]
11214 pub password_min_numeric_characters: Option<EnterpriseConfigurationItemInteger>,
11215 #[serde(default, skip_serializing_if = "Option::is_none")]
11216 pub password_min_special_characters: Option<EnterpriseConfigurationItemInteger>,
11217 #[serde(default, skip_serializing_if = "Option::is_none")]
11218 pub password_reset_frequency: Option<EnterpriseConfigurationItemString>,
11219 #[serde(default, skip_serializing_if = "Option::is_none")]
11220 pub previous_password_reuse_limit: Option<EnterpriseConfigurationItemString>,
11221 #[serde(default, skip_serializing_if = "Option::is_none")]
11222 pub session_duration: Option<EnterpriseConfigurationItemString>,
11223 #[serde(default, skip_serializing_if = "Option::is_none")]
11224 pub external_collab_multi_factor_auth_settings:
11225 Option<EnterpriseConfigurationSecurityExternalCollabMultiFactorAuthSettings>,
11226 #[serde(default, skip_serializing_if = "Option::is_none")]
11227 pub keysafe: Option<EnterpriseConfigurationSecurityKeysafe>,
11228 #[serde(default, skip_serializing_if = "Option::is_none")]
11229 pub is_custom_session_duration_enabled: Option<EnterpriseConfigurationItemBoolean>,
11230 #[serde(default, skip_serializing_if = "Option::is_none")]
11231 pub custom_session_duration_value: Option<EnterpriseConfigurationItemString>,
11232 #[serde(default, skip_serializing_if = "Option::is_none")]
11233 pub custom_session_duration_groups:
11234 Option<EnterpriseConfigurationSecurityCustomSessionDurationGroups>,
11235 #[serde(default, skip_serializing_if = "Option::is_none")]
11236 pub multi_factor_auth_type: Option<EnterpriseConfigurationItemString>,
11237 #[serde(default, skip_serializing_if = "Option::is_none")]
11238 pub enforced_mfa_frequency: Option<EnterpriseConfigurationSecurityEnforcedMfaFrequency>,
11239}
11240
11241#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11242pub struct EnterpriseConfigurationShield {
11243 #[serde(default, skip_serializing_if = "Option::is_none")]
11244 pub shield_rules: Option<Vec<ShieldRuleItem>>,
11245}
11246
11247#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11248pub struct EnterpriseConfigurationUserSettings {
11249 #[serde(default, skip_serializing_if = "Option::is_none")]
11250 pub enterprise_feature_settings: Option<Vec<EnterpriseFeatureSettingsItem>>,
11251 #[serde(default, skip_serializing_if = "Option::is_none")]
11252 pub user_invites_expiration_time_frame: Option<EnterpriseConfigurationItemString>,
11253 #[serde(default, skip_serializing_if = "Option::is_none")]
11254 pub is_username_change_restricted: Option<EnterpriseConfigurationItemBoolean>,
11255 #[serde(default, skip_serializing_if = "Option::is_none")]
11256 pub is_box_sync_restricted_for_new_users: Option<EnterpriseConfigurationItemBoolean>,
11257 #[serde(default, skip_serializing_if = "Option::is_none")]
11258 pub is_view_all_users_enabled_for_new_users: Option<EnterpriseConfigurationItemBoolean>,
11259 #[serde(default, skip_serializing_if = "Option::is_none")]
11260 pub is_device_limit_exemption_enabled_for_new_users: Option<EnterpriseConfigurationItemBoolean>,
11261 #[serde(default, skip_serializing_if = "Option::is_none")]
11262 pub is_external_collaboration_restricted_for_new_users:
11263 Option<EnterpriseConfigurationItemBoolean>,
11264 #[serde(default, skip_serializing_if = "Option::is_none")]
11265 pub is_unlimited_storage_enabled_for_new_users: Option<EnterpriseConfigurationItemBoolean>,
11266 #[serde(default, skip_serializing_if = "Option::is_none")]
11267 pub new_user_default_storage_limit: Option<EnterpriseConfigurationItemInteger>,
11268 #[serde(default, skip_serializing_if = "Option::is_none")]
11269 pub new_user_default_timezone: Option<EnterpriseConfigurationItemString>,
11270 #[serde(default, skip_serializing_if = "Option::is_none")]
11271 pub new_user_default_language: Option<EnterpriseConfigurationItemString>,
11272 #[serde(default, skip_serializing_if = "Option::is_none")]
11273 pub is_enterprise_sso_required: Option<EnterpriseConfigurationItemBoolean>,
11274 #[serde(default, skip_serializing_if = "Option::is_none")]
11275 pub is_enterprise_sso_in_testing: Option<EnterpriseConfigurationItemBoolean>,
11276 #[serde(default, skip_serializing_if = "Option::is_none")]
11277 pub is_sso_auto_add_groups_enabled: Option<EnterpriseConfigurationItemBoolean>,
11278 #[serde(default, skip_serializing_if = "Option::is_none")]
11279 pub is_sso_auto_add_user_to_groups_enabled: Option<EnterpriseConfigurationItemBoolean>,
11280 #[serde(default, skip_serializing_if = "Option::is_none")]
11281 pub is_sso_auto_remove_user_from_groups_enabled: Option<EnterpriseConfigurationItemBoolean>,
11282 #[serde(default, skip_serializing_if = "Option::is_none")]
11283 pub user_tracking_codes: Option<EnterpriseConfigurationUserSettingsUserTrackingCodes>,
11284 #[serde(default, skip_serializing_if = "Option::is_none")]
11285 pub number_of_user_tracking_codes_remaining: Option<EnterpriseConfigurationItemInteger>,
11286 #[serde(default, skip_serializing_if = "Option::is_none")]
11287 pub is_instant_login_restricted: Option<EnterpriseConfigurationItemBoolean>,
11288}
11289
11290#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11291pub struct EnterpriseFeatureSetting {
11292 #[serde(
11293 default,
11294 skip_serializing_if = "Option::is_none",
11295 deserialize_with = "double_option"
11296 )]
11297 pub id: Option<Option<String>>,
11298 #[serde(default, skip_serializing_if = "Option::is_none")]
11299 pub feature: Option<EnterpriseFeatureSettingFeature>,
11300 #[serde(
11301 default,
11302 skip_serializing_if = "Option::is_none",
11303 deserialize_with = "double_option"
11304 )]
11305 pub state: Option<Option<String>>,
11306 #[serde(
11307 default,
11308 skip_serializing_if = "Option::is_none",
11309 deserialize_with = "double_option"
11310 )]
11311 pub can_configure: Option<Option<bool>>,
11312 #[serde(
11313 default,
11314 skip_serializing_if = "Option::is_none",
11315 deserialize_with = "double_option"
11316 )]
11317 pub is_configured: Option<Option<bool>>,
11318 #[serde(
11319 default,
11320 skip_serializing_if = "Option::is_none",
11321 deserialize_with = "double_option"
11322 )]
11323 pub allowlist: Option<Option<Vec<UserOrGroupReference>>>,
11324 #[serde(
11325 default,
11326 skip_serializing_if = "Option::is_none",
11327 deserialize_with = "double_option"
11328 )]
11329 pub denylist: Option<Option<Vec<UserOrGroupReference>>>,
11330}
11331
11332#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11333pub struct EnterpriseFeatureSettingsItem {
11334 #[serde(default, skip_serializing_if = "Option::is_none")]
11335 pub is_used: Option<bool>,
11336 #[serde(default, skip_serializing_if = "Option::is_none")]
11337 pub value: Option<EnterpriseFeatureSetting>,
11338}
11339
11340#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11341pub struct EnterpriseReference {
11342 #[serde(default, skip_serializing_if = "Option::is_none")]
11343 pub id: Option<String>,
11344 #[serde(default, skip_serializing_if = "Option::is_none")]
11345 pub r#type: Option<EnterpriseReferenceType>,
11346}
11347
11348#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11349pub struct ExternalCollabSecuritySettings {
11350 #[serde(default, skip_serializing_if = "Option::is_none")]
11351 pub denylist_domains: Option<Vec<String>>,
11352 #[serde(default, skip_serializing_if = "Option::is_none")]
11353 pub denylist_emails: Option<Vec<String>>,
11354 #[serde(default, skip_serializing_if = "Option::is_none")]
11355 pub allowlist_domains: Option<Vec<String>>,
11356 #[serde(default, skip_serializing_if = "Option::is_none")]
11357 pub allowlist_emails: Option<Vec<String>>,
11358 #[serde(
11359 default,
11360 skip_serializing_if = "Option::is_none",
11361 deserialize_with = "double_option"
11362 )]
11363 pub state: Option<Option<String>>,
11364 #[serde(
11365 default,
11366 skip_serializing_if = "Option::is_none",
11367 deserialize_with = "double_option"
11368 )]
11369 pub scheduled_status: Option<Option<String>>,
11370 #[serde(
11371 default,
11372 skip_serializing_if = "Option::is_none",
11373 deserialize_with = "double_option"
11374 )]
11375 pub scheduled_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
11376 #[serde(
11377 default,
11378 skip_serializing_if = "Option::is_none",
11379 deserialize_with = "double_option"
11380 )]
11381 pub factor_type_settings: Option<Option<String>>,
11382}
11383
11384#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11385pub struct ExternalUserDeletionResult {
11386 pub user_id: String,
11387 pub status: i64,
11388 #[serde(default, skip_serializing_if = "Option::is_none")]
11389 pub detail: Option<String>,
11390}
11391
11392#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11393pub struct ExternalUsersSubmitDeleteJobRequest {
11394 pub external_users: Vec<UserReference>,
11395}
11396
11397#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11398pub struct ExternalUsersSubmitDeleteJobResponse {
11399 pub entries: Vec<ExternalUserDeletionResult>,
11400}
11401
11402#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11403pub struct FileReference {
11404 pub r#type: FileReferenceType,
11405 pub id: String,
11406}
11407
11408#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11409pub struct Hub {
11410 pub id: String,
11411 pub r#type: HubType,
11412 #[serde(default, skip_serializing_if = "Option::is_none")]
11413 pub title: Option<String>,
11414 #[serde(default, skip_serializing_if = "Option::is_none")]
11415 pub description: Option<String>,
11416 #[serde(default, skip_serializing_if = "Option::is_none")]
11417 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
11418 #[serde(default, skip_serializing_if = "Option::is_none")]
11419 pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
11420 #[serde(default, skip_serializing_if = "Option::is_none")]
11421 pub created_by: Option<UserMini>,
11422 #[serde(default, skip_serializing_if = "Option::is_none")]
11423 pub updated_by: Option<UserMini>,
11424 #[serde(default, skip_serializing_if = "Option::is_none")]
11425 pub view_count: Option<i64>,
11426 #[serde(default, skip_serializing_if = "Option::is_none")]
11427 pub is_ai_enabled: Option<bool>,
11428 #[serde(default, skip_serializing_if = "Option::is_none")]
11429 pub is_collaboration_restricted_to_enterprise: Option<bool>,
11430 #[serde(default, skip_serializing_if = "Option::is_none")]
11431 pub can_non_owners_invite: Option<bool>,
11432 #[serde(default, skip_serializing_if = "Option::is_none")]
11433 pub can_shared_link_be_created: Option<bool>,
11434 #[serde(default, skip_serializing_if = "Option::is_none")]
11435 pub can_public_shared_link_be_created: Option<bool>,
11436 #[serde(default, skip_serializing_if = "Option::is_none")]
11437 pub copy_hub_access: Option<HubCopyHubAccess>,
11438}
11439
11440#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11441pub struct HubBase {
11442 pub id: String,
11443 pub r#type: HubType,
11444}
11445
11446#[derive(Clone, Debug, PartialEq)]
11447pub enum HubAccessGrantee {
11448 User(HubCollaborationUser),
11449 Group(GroupMini),
11450 Unknown(serde_json::Value),
11452}
11453
11454impl Default for HubAccessGrantee {
11455 fn default() -> Self {
11456 Self::Unknown(Default::default())
11457 }
11458}
11459
11460impl serde::Serialize for HubAccessGrantee {
11461 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11462 match self {
11463 Self::User(inner) => inner.serialize(serializer),
11464 Self::Group(inner) => inner.serialize(serializer),
11465 Self::Unknown(inner) => inner.serialize(serializer),
11466 }
11467 }
11468}
11469
11470impl<'de> serde::Deserialize<'de> for HubAccessGrantee {
11471 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11472 let value = serde_json::Value::deserialize(deserializer)?;
11473 let tag = value
11474 .get("type")
11475 .and_then(serde_json::Value::as_str)
11476 .map(str::to_owned);
11477 match tag.as_deref() {
11478 Some("user") => Ok(Self::User(
11479 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
11480 )),
11481 Some("group") => Ok(Self::Group(
11482 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
11483 )),
11484 _ => Ok(Self::Unknown(value)),
11485 }
11486 }
11487}
11488
11489#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11490pub struct HubCalloutBoxTextBlock {
11491 pub id: String,
11492 #[serde(
11493 default,
11494 skip_serializing_if = "Option::is_none",
11495 deserialize_with = "double_option"
11496 )]
11497 pub parent_id: Option<Option<String>>,
11498 pub r#type: HubCalloutBoxTextBlockType,
11499 pub fragment: String,
11500}
11501
11502#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11503pub struct HubCollaboration {
11504 pub id: String,
11505 pub r#type: HubCollaborationType,
11506 #[serde(default, skip_serializing_if = "Option::is_none")]
11507 pub hub: Option<HubBase>,
11508 #[serde(default, skip_serializing_if = "Option::is_none")]
11509 pub accessible_by: Option<HubAccessGrantee>,
11510 #[serde(default, skip_serializing_if = "Option::is_none")]
11511 pub role: Option<String>,
11512 #[serde(default, skip_serializing_if = "Option::is_none")]
11513 pub status: Option<HubCollaborationStatus>,
11514 #[serde(default, skip_serializing_if = "Option::is_none")]
11515 pub acceptance_requirements_status: Option<HubCollaborationAcceptanceRequirementsStatus>,
11516}
11517
11518#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11519pub struct HubCollaborationCreateRequest {
11520 pub hub: HubCollaborationCreateRequestHub,
11521 pub accessible_by: HubCollaborationCreateRequestAccessibleBy,
11522 pub role: String,
11523}
11524
11525#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11526pub struct HubCollaborations {
11527 #[serde(default, skip_serializing_if = "Option::is_none")]
11528 pub entries: Option<Vec<HubCollaboration>>,
11529 #[serde(default, skip_serializing_if = "Option::is_none")]
11530 pub limit: Option<i64>,
11531 #[serde(
11532 default,
11533 skip_serializing_if = "Option::is_none",
11534 deserialize_with = "double_option"
11535 )]
11536 pub next_marker: Option<Option<String>>,
11537}
11538
11539#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11540pub struct HubCollaborationUpdateRequest {
11541 #[serde(default, skip_serializing_if = "Option::is_none")]
11542 pub role: Option<String>,
11543}
11544
11545#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11546pub struct HubCollaborationUser {
11547 pub id: String,
11548 pub r#type: HubCollaborationUserType,
11549 #[serde(default, skip_serializing_if = "Option::is_none")]
11550 pub name: Option<String>,
11551 #[serde(default, skip_serializing_if = "Option::is_none")]
11552 pub login: Option<String>,
11553}
11554
11555#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11556pub struct HubCopyRequest {
11557 #[serde(default, skip_serializing_if = "Option::is_none")]
11558 pub title: Option<String>,
11559 #[serde(default, skip_serializing_if = "Option::is_none")]
11560 pub description: Option<String>,
11561 #[serde(default, skip_serializing_if = "Option::is_none")]
11562 pub include_items: Option<bool>,
11563}
11564
11565#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11566pub struct HubCreateRequest {
11567 pub title: String,
11568 #[serde(default, skip_serializing_if = "Option::is_none")]
11569 pub description: Option<String>,
11570}
11571
11572#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11573pub struct HubDividerBlock {
11574 pub id: String,
11575 #[serde(
11576 default,
11577 skip_serializing_if = "Option::is_none",
11578 deserialize_with = "double_option"
11579 )]
11580 pub parent_id: Option<Option<String>>,
11581 pub r#type: HubDividerBlockType,
11582}
11583
11584#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11585pub struct HubDocumentBlock {
11586 pub id: String,
11587 #[serde(
11588 default,
11589 skip_serializing_if = "Option::is_none",
11590 deserialize_with = "double_option"
11591 )]
11592 pub parent_id: Option<Option<String>>,
11593}
11594
11595#[derive(Clone, Debug, PartialEq)]
11596pub enum HubDocumentBlockEntry {
11597 Paragraph(HubParagraphTextBlock),
11598 SectionTitle(HubSectionTitleTextBlock),
11599 CalloutBox(HubCalloutBoxTextBlock),
11600 ItemList(HubItemListBlock),
11601 Divider(HubDividerBlock),
11602 Unknown(serde_json::Value),
11604}
11605
11606impl Default for HubDocumentBlockEntry {
11607 fn default() -> Self {
11608 Self::Unknown(Default::default())
11609 }
11610}
11611
11612impl serde::Serialize for HubDocumentBlockEntry {
11613 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11614 match self {
11615 Self::Paragraph(inner) => inner.serialize(serializer),
11616 Self::SectionTitle(inner) => inner.serialize(serializer),
11617 Self::CalloutBox(inner) => inner.serialize(serializer),
11618 Self::ItemList(inner) => inner.serialize(serializer),
11619 Self::Divider(inner) => inner.serialize(serializer),
11620 Self::Unknown(inner) => inner.serialize(serializer),
11621 }
11622 }
11623}
11624
11625impl<'de> serde::Deserialize<'de> for HubDocumentBlockEntry {
11626 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11627 let value = serde_json::Value::deserialize(deserializer)?;
11628 let tag = value
11629 .get("type")
11630 .and_then(serde_json::Value::as_str)
11631 .map(str::to_owned);
11632 match tag.as_deref() {
11633 Some("paragraph") => Ok(Self::Paragraph(
11634 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
11635 )),
11636 Some("section_title") => Ok(Self::SectionTitle(
11637 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
11638 )),
11639 Some("callout_box") => Ok(Self::CalloutBox(
11640 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
11641 )),
11642 Some("item_list") => Ok(Self::ItemList(
11643 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
11644 )),
11645 Some("divider") => Ok(Self::Divider(
11646 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
11647 )),
11648 _ => Ok(Self::Unknown(value)),
11649 }
11650 }
11651}
11652
11653#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11654pub struct HubDocumentBlocks {
11655 pub entries: Vec<HubDocumentBlockEntry>,
11656 pub r#type: HubDocumentBlocksType,
11657 #[serde(default, skip_serializing_if = "Option::is_none")]
11658 pub limit: Option<i64>,
11659 #[serde(
11660 default,
11661 skip_serializing_if = "Option::is_none",
11662 deserialize_with = "double_option"
11663 )]
11664 pub next_marker: Option<Option<String>>,
11665}
11666
11667#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11668pub struct HubDocumentPage {
11669 pub id: String,
11670 pub r#type: String,
11671 #[serde(
11672 default,
11673 skip_serializing_if = "Option::is_none",
11674 deserialize_with = "double_option"
11675 )]
11676 pub parent_id: Option<Option<String>>,
11677 pub title_fragment: String,
11678}
11679
11680#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11681pub struct HubDocumentPages {
11682 pub entries: Vec<HubDocumentPage>,
11683 pub r#type: HubDocumentPagesType,
11684 #[serde(default, skip_serializing_if = "Option::is_none")]
11685 pub limit: Option<i64>,
11686 #[serde(
11687 default,
11688 skip_serializing_if = "Option::is_none",
11689 deserialize_with = "double_option"
11690 )]
11691 pub next_marker: Option<Option<String>>,
11692}
11693
11694#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11695pub struct HubItem {
11696 pub id: String,
11697 pub r#type: HubItemType,
11698 pub name: String,
11699}
11700
11701#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11702pub struct HubItemListBlock {
11703 pub id: String,
11704 #[serde(
11705 default,
11706 skip_serializing_if = "Option::is_none",
11707 deserialize_with = "double_option"
11708 )]
11709 pub parent_id: Option<Option<String>>,
11710 pub r#type: HubItemListBlockType,
11711}
11712
11713#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11714pub struct HubItemOperation {
11715 pub action: HubItemOperationAction,
11716 pub item: HubItemReference,
11717 #[serde(default, skip_serializing_if = "Option::is_none")]
11718 pub parent_id: Option<String>,
11719}
11720
11721#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11722pub struct HubItemOperationResult {
11723 #[serde(default, skip_serializing_if = "Option::is_none")]
11724 pub action: Option<String>,
11725 #[serde(default, skip_serializing_if = "Option::is_none")]
11726 pub item: Option<HubItemReference>,
11727 #[serde(default, skip_serializing_if = "Option::is_none")]
11728 pub parent_id: Option<String>,
11729 #[serde(default, skip_serializing_if = "Option::is_none")]
11730 pub status: Option<i64>,
11731 #[serde(default, skip_serializing_if = "Option::is_none")]
11732 pub error: Option<String>,
11733}
11734
11735#[derive(Clone, Debug, PartialEq)]
11736pub enum HubItemReference {
11737 File(FileReference),
11738 Folder(FolderReference),
11739 WebLink(WeblinkReference),
11740 Unknown(serde_json::Value),
11742}
11743
11744impl Default for HubItemReference {
11745 fn default() -> Self {
11746 Self::Unknown(Default::default())
11747 }
11748}
11749
11750impl serde::Serialize for HubItemReference {
11751 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11752 match self {
11753 Self::File(inner) => inner.serialize(serializer),
11754 Self::Folder(inner) => inner.serialize(serializer),
11755 Self::WebLink(inner) => inner.serialize(serializer),
11756 Self::Unknown(inner) => inner.serialize(serializer),
11757 }
11758 }
11759}
11760
11761impl<'de> serde::Deserialize<'de> for HubItemReference {
11762 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11763 let value = serde_json::Value::deserialize(deserializer)?;
11764 let tag = value
11765 .get("type")
11766 .and_then(serde_json::Value::as_str)
11767 .map(str::to_owned);
11768 match tag.as_deref() {
11769 Some("file") => Ok(Self::File(
11770 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
11771 )),
11772 Some("folder") => Ok(Self::Folder(
11773 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
11774 )),
11775 Some("web_link") => Ok(Self::WebLink(
11776 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
11777 )),
11778 _ => Ok(Self::Unknown(value)),
11779 }
11780 }
11781}
11782
11783#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11784pub struct HubItems {
11785 #[serde(default, skip_serializing_if = "Option::is_none")]
11786 pub entries: Option<Vec<HubItem>>,
11787 #[serde(default, skip_serializing_if = "Option::is_none")]
11788 pub limit: Option<i64>,
11789 #[serde(
11790 default,
11791 skip_serializing_if = "Option::is_none",
11792 deserialize_with = "double_option"
11793 )]
11794 pub next_marker: Option<Option<String>>,
11795}
11796
11797#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11798pub struct HubItemsManageRequest {
11799 #[serde(default, skip_serializing_if = "Option::is_none")]
11800 pub operations: Option<Vec<HubItemOperation>>,
11801}
11802
11803#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11804pub struct HubItemsManageResponse {
11805 pub operations: Vec<HubItemOperationResult>,
11806}
11807
11808#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11809pub struct HubParagraphTextBlock {
11810 pub id: String,
11811 #[serde(
11812 default,
11813 skip_serializing_if = "Option::is_none",
11814 deserialize_with = "double_option"
11815 )]
11816 pub parent_id: Option<Option<String>>,
11817 pub r#type: HubParagraphTextBlockType,
11818 pub fragment: String,
11819}
11820
11821#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11822pub struct Hubs {
11823 #[serde(default, skip_serializing_if = "Option::is_none")]
11824 pub entries: Option<Vec<Hub>>,
11825 #[serde(default, skip_serializing_if = "Option::is_none")]
11826 pub limit: Option<i64>,
11827 #[serde(
11828 default,
11829 skip_serializing_if = "Option::is_none",
11830 deserialize_with = "double_option"
11831 )]
11832 pub next_marker: Option<Option<String>>,
11833}
11834
11835#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11836pub struct HubSectionTitleTextBlock {
11837 pub id: String,
11838 #[serde(
11839 default,
11840 skip_serializing_if = "Option::is_none",
11841 deserialize_with = "double_option"
11842 )]
11843 pub parent_id: Option<Option<String>>,
11844 pub r#type: HubSectionTitleTextBlockType,
11845 pub fragment: String,
11846}
11847
11848#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11849pub struct HubUpdateRequest {
11850 #[serde(default, skip_serializing_if = "Option::is_none")]
11851 pub title: Option<String>,
11852 #[serde(default, skip_serializing_if = "Option::is_none")]
11853 pub description: Option<String>,
11854 #[serde(default, skip_serializing_if = "Option::is_none")]
11855 pub is_ai_enabled: Option<bool>,
11856 #[serde(default, skip_serializing_if = "Option::is_none")]
11857 pub is_collaboration_restricted_to_enterprise: Option<bool>,
11858 #[serde(default, skip_serializing_if = "Option::is_none")]
11859 pub can_non_owners_invite: Option<bool>,
11860 #[serde(default, skip_serializing_if = "Option::is_none")]
11861 pub can_shared_link_be_created: Option<bool>,
11862 #[serde(default, skip_serializing_if = "Option::is_none")]
11863 pub can_public_shared_link_be_created: Option<bool>,
11864 #[serde(default, skip_serializing_if = "Option::is_none")]
11865 pub copy_hub_access: Option<HubCopyHubAccess>,
11866}
11867
11868#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11869pub struct KeysafeSettings {
11870 #[serde(default, skip_serializing_if = "Option::is_none")]
11871 pub keysafe_enabled: Option<bool>,
11872 #[serde(
11873 default,
11874 skip_serializing_if = "Option::is_none",
11875 deserialize_with = "double_option"
11876 )]
11877 pub cloud_provider: Option<Option<String>>,
11878 #[serde(
11879 default,
11880 skip_serializing_if = "Option::is_none",
11881 deserialize_with = "double_option"
11882 )]
11883 pub key_id: Option<Option<String>>,
11884 #[serde(
11885 default,
11886 skip_serializing_if = "Option::is_none",
11887 deserialize_with = "double_option"
11888 )]
11889 pub account_id: Option<Option<String>>,
11890 #[serde(
11891 default,
11892 skip_serializing_if = "Option::is_none",
11893 deserialize_with = "double_option"
11894 )]
11895 pub location_id: Option<Option<String>>,
11896 #[serde(
11897 default,
11898 skip_serializing_if = "Option::is_none",
11899 deserialize_with = "double_option"
11900 )]
11901 pub project_id: Option<Option<String>>,
11902 #[serde(
11903 default,
11904 skip_serializing_if = "Option::is_none",
11905 deserialize_with = "double_option"
11906 )]
11907 pub keyring_id: Option<Option<String>>,
11908}
11909
11910#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11911pub struct ListUser {
11912 #[serde(
11913 default,
11914 skip_serializing_if = "Option::is_none",
11915 deserialize_with = "double_option"
11916 )]
11917 pub id: Option<Option<i64>>,
11918 #[serde(
11919 default,
11920 skip_serializing_if = "Option::is_none",
11921 deserialize_with = "double_option"
11922 )]
11923 pub name: Option<Option<String>>,
11924 #[serde(
11925 default,
11926 skip_serializing_if = "Option::is_none",
11927 deserialize_with = "double_option"
11928 )]
11929 pub email: Option<Option<String>>,
11930}
11931
11932#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11933pub struct ShieldList {
11934 pub id: String,
11935 pub r#type: String,
11936 pub name: String,
11937 pub enterprise: EnterpriseReference,
11938 #[serde(default, skip_serializing_if = "Option::is_none")]
11939 pub description: Option<String>,
11940 pub created_at: chrono::DateTime<chrono::Utc>,
11941 pub updated_at: chrono::DateTime<chrono::Utc>,
11942 pub content: ShieldListContent,
11943}
11944
11945#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
11946pub struct ShieldListMini {
11947 pub id: String,
11948 pub r#type: ShieldListMiniType,
11949 pub name: String,
11950 pub content: ShieldListMiniContent,
11951}
11952
11953#[derive(Clone, Debug, PartialEq)]
11954pub enum ShieldListContent {
11955 Country(ShieldListContentCountry),
11956 Domain(ShieldListContentDomain),
11957 Email(ShieldListContentEmail),
11958 Ip(ShieldListContentIp),
11959 Integration(ShieldListContentIntegration),
11960 Unknown(serde_json::Value),
11962}
11963
11964impl Default for ShieldListContent {
11965 fn default() -> Self {
11966 Self::Unknown(Default::default())
11967 }
11968}
11969
11970impl serde::Serialize for ShieldListContent {
11971 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
11972 match self {
11973 Self::Country(inner) => inner.serialize(serializer),
11974 Self::Domain(inner) => inner.serialize(serializer),
11975 Self::Email(inner) => inner.serialize(serializer),
11976 Self::Ip(inner) => inner.serialize(serializer),
11977 Self::Integration(inner) => inner.serialize(serializer),
11978 Self::Unknown(inner) => inner.serialize(serializer),
11979 }
11980 }
11981}
11982
11983impl<'de> serde::Deserialize<'de> for ShieldListContent {
11984 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
11985 let value = serde_json::Value::deserialize(deserializer)?;
11986 let tag = value
11987 .get("type")
11988 .and_then(serde_json::Value::as_str)
11989 .map(str::to_owned);
11990 match tag.as_deref() {
11991 Some("country") => Ok(Self::Country(
11992 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
11993 )),
11994 Some("domain") => Ok(Self::Domain(
11995 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
11996 )),
11997 Some("email") => Ok(Self::Email(
11998 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
11999 )),
12000 Some("ip") => Ok(Self::Ip(
12001 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
12002 )),
12003 Some("integration") => Ok(Self::Integration(
12004 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
12005 )),
12006 _ => Ok(Self::Unknown(value)),
12007 }
12008 }
12009}
12010
12011#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12012pub struct ShieldListContentCountry {
12013 pub r#type: ShieldListContentCountryType,
12014 pub country_codes: Vec<String>,
12015}
12016
12017#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12018pub struct ShieldListContentDomain {
12019 pub r#type: ShieldListContentDomainType,
12020 pub domains: Vec<String>,
12021}
12022
12023#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12024pub struct ShieldListContentEmail {
12025 pub r#type: ShieldListContentEmailType,
12026 pub email_addresses: Vec<String>,
12027}
12028
12029#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12030pub struct ShieldListContentIntegration {
12031 pub r#type: ShieldListContentIntegrationType,
12032 pub integrations: Vec<ShieldListContentIntegrationIntegrations>,
12033}
12034
12035#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12036pub struct ShieldListContentIp {
12037 pub r#type: ShieldListContentIpType,
12038 pub ip_addresses: Vec<String>,
12039}
12040
12041#[derive(Clone, Debug, PartialEq)]
12042pub enum ShieldListContentRequest {
12043 Country(ShieldListContentCountry),
12044 Domain(ShieldListContentDomain),
12045 Email(ShieldListContentEmail),
12046 Ip(ShieldListContentIp),
12047 Unknown(serde_json::Value),
12049}
12050
12051impl Default for ShieldListContentRequest {
12052 fn default() -> Self {
12053 Self::Unknown(Default::default())
12054 }
12055}
12056
12057impl serde::Serialize for ShieldListContentRequest {
12058 fn serialize<S: serde::Serializer>(&self, serializer: S) -> Result<S::Ok, S::Error> {
12059 match self {
12060 Self::Country(inner) => inner.serialize(serializer),
12061 Self::Domain(inner) => inner.serialize(serializer),
12062 Self::Email(inner) => inner.serialize(serializer),
12063 Self::Ip(inner) => inner.serialize(serializer),
12064 Self::Unknown(inner) => inner.serialize(serializer),
12065 }
12066 }
12067}
12068
12069impl<'de> serde::Deserialize<'de> for ShieldListContentRequest {
12070 fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
12071 let value = serde_json::Value::deserialize(deserializer)?;
12072 let tag = value
12073 .get("type")
12074 .and_then(serde_json::Value::as_str)
12075 .map(str::to_owned);
12076 match tag.as_deref() {
12077 Some("country") => Ok(Self::Country(
12078 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
12079 )),
12080 Some("domain") => Ok(Self::Domain(
12081 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
12082 )),
12083 Some("email") => Ok(Self::Email(
12084 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
12085 )),
12086 Some("ip") => Ok(Self::Ip(
12087 serde_json::from_value(value).map_err(serde::de::Error::custom)?,
12088 )),
12089 _ => Ok(Self::Unknown(value)),
12090 }
12091 }
12092}
12093
12094#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12095pub struct ShieldLists {
12096 #[serde(default, skip_serializing_if = "Option::is_none")]
12097 pub entries: Option<Vec<ShieldListMini>>,
12098}
12099
12100#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12101pub struct ShieldListsCreate {
12102 pub name: String,
12103 #[serde(default, skip_serializing_if = "Option::is_none")]
12104 pub description: Option<String>,
12105 pub content: ShieldListContentRequest,
12106}
12107
12108#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12109pub struct ShieldListsUpdate {
12110 pub name: String,
12111 #[serde(default, skip_serializing_if = "Option::is_none")]
12112 pub description: Option<String>,
12113 pub content: ShieldListContentRequest,
12114}
12115
12116#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12117pub struct ShieldRuleItem {
12118 #[serde(default, skip_serializing_if = "Option::is_none")]
12119 pub id: Option<String>,
12120 #[serde(default, skip_serializing_if = "Option::is_none")]
12121 pub r#type: Option<ShieldRuleItemType>,
12122 #[serde(default, skip_serializing_if = "Option::is_none")]
12123 pub rule_category: Option<String>,
12124 #[serde(default, skip_serializing_if = "Option::is_none")]
12125 pub name: Option<String>,
12126 #[serde(default, skip_serializing_if = "Option::is_none")]
12127 pub description: Option<String>,
12128 #[serde(default, skip_serializing_if = "Option::is_none")]
12129 pub priority: Option<ShieldRuleItemPriority>,
12130 #[serde(default, skip_serializing_if = "Option::is_none")]
12131 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
12132 #[serde(default, skip_serializing_if = "Option::is_none")]
12133 pub modified_at: Option<chrono::DateTime<chrono::Utc>>,
12134}
12135
12136#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12137pub struct UserOrGroupReference {
12138 #[serde(default, skip_serializing_if = "Option::is_none")]
12139 pub r#type: Option<UserOrGroupReferenceType>,
12140 #[serde(default, skip_serializing_if = "Option::is_none")]
12141 pub id: Option<String>,
12142}
12143
12144#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12145pub struct UserReference {
12146 pub r#type: HubCollaborationUserType,
12147 pub id: String,
12148}
12149
12150#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12151pub struct UserTrackingCode {
12152 #[serde(
12153 default,
12154 skip_serializing_if = "Option::is_none",
12155 deserialize_with = "double_option"
12156 )]
12157 pub id: Option<Option<i64>>,
12158 #[serde(
12159 default,
12160 skip_serializing_if = "Option::is_none",
12161 deserialize_with = "double_option"
12162 )]
12163 pub name: Option<Option<String>>,
12164}
12165
12166#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12167pub struct WeblinkReference {
12168 pub r#type: WeblinkReferenceType,
12169 pub id: String,
12170}
12171
12172#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12173#[serde(transparent)]
12174pub struct ArchiveType(pub String);
12175
12176impl ArchiveType {
12177 pub const ARCHIVE: &'static str = "archive";
12178}
12179
12180#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12181pub struct ArchiveOwnedBy {
12182 pub id: String,
12183 pub r#type: String,
12184}
12185
12186#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12187#[serde(transparent)]
12188pub struct DocGenBatchBaseType(pub String);
12189
12190impl DocGenBatchBaseType {
12191 pub const DOCGEN_BATCH: &'static str = "docgen_batch";
12192}
12193
12194#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12195#[serde(transparent)]
12196pub struct DestinationFolderType(pub String);
12197
12198impl DestinationFolderType {
12199 pub const FOLDER: &'static str = "folder";
12200}
12201
12202#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12203pub struct DocGenBatchCreateRequestDestinationFolder {
12204 pub r#type: DestinationFolderType,
12205 pub id: String,
12206}
12207
12208#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12209#[serde(transparent)]
12210pub struct DocGenJobType(pub String);
12211
12212impl DocGenJobType {
12213 pub const DOCGEN_JOB: &'static str = "docgen_job";
12214}
12215
12216#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12217#[serde(transparent)]
12218pub struct DocGenJobStatus(pub String);
12219
12220impl DocGenJobStatus {
12221 pub const SUBMITTED: &'static str = "submitted";
12222 pub const COMPLETED: &'static str = "completed";
12223 pub const FAILED: &'static str = "failed";
12224 pub const COMPLETED_WITH_ERROR: &'static str = "completed_with_error";
12225 pub const PENDING: &'static str = "pending";
12226}
12227
12228#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12229pub struct DocGenJobFailures {
12230 pub errors: Vec<String>,
12231 pub warnings: Vec<String>,
12232}
12233
12234#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12235#[serde(transparent)]
12236pub struct DocGenTagTagType(pub String);
12237
12238impl DocGenTagTagType {
12239 pub const TEXT: &'static str = "text";
12240 pub const ARITHMETIC: &'static str = "arithmetic";
12241 pub const CONDITIONAL: &'static str = "conditional";
12242 pub const FOR_LOOP: &'static str = "for-loop";
12243 pub const TABLE_LOOP: &'static str = "table-loop";
12244 pub const IMAGE: &'static str = "image";
12245}
12246
12247#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12248#[serde(transparent)]
12249pub struct EnterpriseConfigurationType(pub String);
12250
12251impl EnterpriseConfigurationType {
12252 pub const ENTERPRISE_CONFIGURATION: &'static str = "enterprise_configuration";
12253}
12254
12255#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12256pub struct EnterpriseConfigurationContentAndSharingSharedLinkDefaultPermissionsSelected {
12257 #[serde(default, skip_serializing_if = "Option::is_none")]
12258 pub is_used: Option<bool>,
12259 #[serde(default, skip_serializing_if = "Option::is_none")]
12260 pub value: Option<SharedLinkPermissions>,
12261}
12262
12263#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12264pub struct EnterpriseConfigurationContentAndSharingCollaborationPermissions {
12265 #[serde(default, skip_serializing_if = "Option::is_none")]
12266 pub is_used: Option<bool>,
12267 #[serde(default, skip_serializing_if = "Option::is_none")]
12268 pub value: Option<CollaborationPermissions>,
12269}
12270
12271#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12272pub struct EnterpriseConfigurationContentAndSharingCollaborationRestrictions {
12273 #[serde(default, skip_serializing_if = "Option::is_none")]
12274 pub is_used: Option<bool>,
12275 #[serde(default, skip_serializing_if = "Option::is_none")]
12276 pub value: Option<Vec<String>>,
12277}
12278
12279#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12280pub struct EnterpriseConfigurationContentAndSharingExternalCollaborationStatus {
12281 #[serde(default, skip_serializing_if = "Option::is_none")]
12282 pub is_used: Option<bool>,
12283 #[serde(
12284 default,
12285 skip_serializing_if = "Option::is_none",
12286 deserialize_with = "double_option"
12287 )]
12288 pub value: Option<Option<String>>,
12289}
12290
12291#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12292pub struct EnterpriseConfigurationContentAndSharingExternalCollaborationAllowlistUsers {
12293 #[serde(default, skip_serializing_if = "Option::is_none")]
12294 pub is_used: Option<bool>,
12295 #[serde(default, skip_serializing_if = "Option::is_none")]
12296 pub value: Option<Vec<ListUser>>,
12297}
12298
12299#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12300pub struct EnterpriseConfigurationSecurityLastPasswordResetAt {
12301 #[serde(default, skip_serializing_if = "Option::is_none")]
12302 pub is_used: Option<bool>,
12303 #[serde(
12304 default,
12305 skip_serializing_if = "Option::is_none",
12306 deserialize_with = "double_option"
12307 )]
12308 pub value: Option<Option<chrono::DateTime<chrono::Utc>>>,
12309}
12310
12311#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12312pub struct EnterpriseConfigurationSecurityExternalCollabMultiFactorAuthSettings {
12313 #[serde(default, skip_serializing_if = "Option::is_none")]
12314 pub is_used: Option<bool>,
12315 #[serde(
12316 default,
12317 skip_serializing_if = "Option::is_none",
12318 deserialize_with = "double_option"
12319 )]
12320 pub value: Option<Option<ExternalCollabSecuritySettings>>,
12321}
12322
12323#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12324pub struct EnterpriseConfigurationSecurityKeysafe {
12325 #[serde(default, skip_serializing_if = "Option::is_none")]
12326 pub is_used: Option<bool>,
12327 #[serde(
12328 default,
12329 skip_serializing_if = "Option::is_none",
12330 deserialize_with = "double_option"
12331 )]
12332 pub value: Option<Option<KeysafeSettings>>,
12333}
12334
12335#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12336pub struct EnterpriseConfigurationSecurityCustomSessionDurationGroups {
12337 #[serde(default, skip_serializing_if = "Option::is_none")]
12338 pub is_used: Option<bool>,
12339 #[serde(default, skip_serializing_if = "Option::is_none")]
12340 pub value: Option<Vec<CustomSessionDurationGroupItem>>,
12341}
12342
12343#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12344pub struct EnforcedMfaFrequencyValue {
12345 #[serde(
12346 default,
12347 skip_serializing_if = "Option::is_none",
12348 deserialize_with = "double_option"
12349 )]
12350 pub days: Option<Option<i64>>,
12351 #[serde(
12352 default,
12353 skip_serializing_if = "Option::is_none",
12354 deserialize_with = "double_option"
12355 )]
12356 pub hours: Option<Option<i64>>,
12357}
12358
12359#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12360pub struct EnterpriseConfigurationSecurityEnforcedMfaFrequency {
12361 #[serde(default, skip_serializing_if = "Option::is_none")]
12362 pub is_used: Option<bool>,
12363 #[serde(default, skip_serializing_if = "Option::is_none")]
12364 pub value: Option<EnforcedMfaFrequencyValue>,
12365}
12366
12367#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12368pub struct EnterpriseConfigurationUserSettingsUserTrackingCodes {
12369 #[serde(default, skip_serializing_if = "Option::is_none")]
12370 pub is_used: Option<bool>,
12371 #[serde(default, skip_serializing_if = "Option::is_none")]
12372 pub value: Option<Vec<UserTrackingCode>>,
12373}
12374
12375#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12376pub struct EnterpriseFeatureSettingFeature {
12377 #[serde(
12378 default,
12379 skip_serializing_if = "Option::is_none",
12380 deserialize_with = "double_option"
12381 )]
12382 pub id: Option<Option<String>>,
12383}
12384
12385#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12386#[serde(transparent)]
12387pub struct EnterpriseReferenceType(pub String);
12388
12389impl EnterpriseReferenceType {
12390 pub const ENTERPRISE: &'static str = "enterprise";
12391}
12392
12393#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12394#[serde(transparent)]
12395pub struct FileReferenceType(pub String);
12396
12397impl FileReferenceType {
12398 pub const FILE: &'static str = "file";
12399}
12400
12401#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12402#[serde(transparent)]
12403pub struct FileVersionBaseType(pub String);
12404
12405impl FileVersionBaseType {
12406 pub const FILE_VERSION: &'static str = "file_version";
12407}
12408
12409#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12410#[serde(transparent)]
12411pub struct GroupBaseType(pub String);
12412
12413impl GroupBaseType {
12414 pub const GROUP: &'static str = "group";
12415}
12416
12417#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12418#[serde(transparent)]
12419pub struct GroupMiniGroupType(pub String);
12420
12421impl GroupMiniGroupType {
12422 pub const MANAGED_GROUP: &'static str = "managed_group";
12423 pub const ALL_USERS_GROUP: &'static str = "all_users_group";
12424}
12425
12426#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12427#[serde(transparent)]
12428pub struct HubType(pub String);
12429
12430impl HubType {
12431 pub const HUBS: &'static str = "hubs";
12432}
12433
12434#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12435#[serde(transparent)]
12436pub struct HubCopyHubAccess(pub String);
12437
12438impl HubCopyHubAccess {
12439 pub const ALL: &'static str = "all";
12440 pub const COMPANY: &'static str = "company";
12441 pub const NONE: &'static str = "none";
12442}
12443
12444#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12445#[serde(transparent)]
12446pub struct HubCalloutBoxTextBlockType(pub String);
12447
12448impl HubCalloutBoxTextBlockType {
12449 pub const CALLOUT_BOX: &'static str = "callout_box";
12450}
12451
12452#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12453#[serde(transparent)]
12454pub struct HubCollaborationType(pub String);
12455
12456impl HubCollaborationType {
12457 pub const HUB_COLLABORATION: &'static str = "hub_collaboration";
12458}
12459
12460#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12461#[serde(transparent)]
12462pub struct HubCollaborationStatus(pub String);
12463
12464impl HubCollaborationStatus {
12465 pub const ACCEPTED: &'static str = "accepted";
12466 pub const PENDING: &'static str = "pending";
12467 pub const REJECTED: &'static str = "rejected";
12468}
12469
12470#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12471pub struct HubCollaborationAcceptanceRequirementsStatus {
12472 #[serde(default, skip_serializing_if = "Option::is_none")]
12473 pub terms_of_service_requirement: Option<AcceptanceRequirementsStatusTermsOfServiceRequirement>,
12474 #[serde(default, skip_serializing_if = "Option::is_none")]
12475 pub strong_password_requirement: Option<AcceptanceRequirementsStatusStrongPasswordRequirement>,
12476 #[serde(default, skip_serializing_if = "Option::is_none")]
12477 pub two_factor_authentication_requirement:
12478 Option<AcceptanceRequirementsStatusTwoFactorAuthenticationRequirement>,
12479}
12480
12481#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12482pub struct HubCollaborationCreateRequestHub {
12483 pub r#type: HubType,
12484 pub id: String,
12485}
12486
12487#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12488pub struct HubCollaborationCreateRequestAccessibleBy {
12489 pub r#type: String,
12490 #[serde(default, skip_serializing_if = "Option::is_none")]
12491 pub id: Option<String>,
12492 #[serde(default, skip_serializing_if = "Option::is_none")]
12493 pub login: Option<String>,
12494}
12495
12496#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12497#[serde(transparent)]
12498pub struct HubCollaborationUserType(pub String);
12499
12500impl HubCollaborationUserType {
12501 pub const USER: &'static str = "user";
12502}
12503
12504#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12505#[serde(transparent)]
12506pub struct HubDividerBlockType(pub String);
12507
12508impl HubDividerBlockType {
12509 pub const DIVIDER: &'static str = "divider";
12510}
12511
12512#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12513#[serde(transparent)]
12514pub struct HubDocumentBlocksType(pub String);
12515
12516impl HubDocumentBlocksType {
12517 pub const DOCUMENT_BLOCKS: &'static str = "document_blocks";
12518}
12519
12520#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12521#[serde(transparent)]
12522pub struct HubDocumentPagesType(pub String);
12523
12524impl HubDocumentPagesType {
12525 pub const DOCUMENT_PAGES: &'static str = "document_pages";
12526}
12527
12528#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12529#[serde(transparent)]
12530pub struct HubItemType(pub String);
12531
12532impl HubItemType {
12533 pub const FILE: &'static str = "file";
12534 pub const FOLDER: &'static str = "folder";
12535 pub const WEB_LINK: &'static str = "web_link";
12536}
12537
12538#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12539#[serde(transparent)]
12540pub struct HubItemListBlockType(pub String);
12541
12542impl HubItemListBlockType {
12543 pub const ITEM_LIST: &'static str = "item_list";
12544}
12545
12546#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12547#[serde(transparent)]
12548pub struct HubItemOperationAction(pub String);
12549
12550impl HubItemOperationAction {
12551 pub const ADD: &'static str = "add";
12552 pub const REMOVE: &'static str = "remove";
12553}
12554
12555#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12556#[serde(transparent)]
12557pub struct HubParagraphTextBlockType(pub String);
12558
12559impl HubParagraphTextBlockType {
12560 pub const PARAGRAPH: &'static str = "paragraph";
12561}
12562
12563#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12564#[serde(transparent)]
12565pub struct HubSectionTitleTextBlockType(pub String);
12566
12567impl HubSectionTitleTextBlockType {
12568 pub const SECTION_TITLE: &'static str = "section_title";
12569}
12570
12571#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12572#[serde(transparent)]
12573pub struct ShieldListMiniType(pub String);
12574
12575impl ShieldListMiniType {
12576 pub const SHIELD_LIST: &'static str = "shield_list";
12577}
12578
12579#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12580pub struct ShieldListMiniContent {
12581 #[serde(default, skip_serializing_if = "Option::is_none")]
12582 pub r#type: Option<String>,
12583}
12584
12585#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12586#[serde(transparent)]
12587pub struct ShieldListContentCountryType(pub String);
12588
12589impl ShieldListContentCountryType {
12590 pub const COUNTRY: &'static str = "country";
12591}
12592
12593#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12594#[serde(transparent)]
12595pub struct ShieldListContentDomainType(pub String);
12596
12597impl ShieldListContentDomainType {
12598 pub const DOMAIN: &'static str = "domain";
12599}
12600
12601#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12602#[serde(transparent)]
12603pub struct ShieldListContentEmailType(pub String);
12604
12605impl ShieldListContentEmailType {
12606 pub const EMAIL: &'static str = "email";
12607}
12608
12609#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12610#[serde(transparent)]
12611pub struct ShieldListContentIntegrationType(pub String);
12612
12613impl ShieldListContentIntegrationType {
12614 pub const INTEGRATION: &'static str = "integration";
12615}
12616
12617#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12618pub struct ShieldListContentIntegrationIntegrations {
12619 #[serde(default, skip_serializing_if = "Option::is_none")]
12620 pub id: Option<String>,
12621}
12622
12623#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12624#[serde(transparent)]
12625pub struct ShieldListContentIpType(pub String);
12626
12627impl ShieldListContentIpType {
12628 pub const IP: &'static str = "ip";
12629}
12630
12631#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12632#[serde(transparent)]
12633pub struct ShieldRuleItemType(pub String);
12634
12635impl ShieldRuleItemType {
12636 pub const SHIELD_RULE: &'static str = "shield_rule";
12637}
12638
12639#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12640#[serde(transparent)]
12641pub struct ShieldRuleItemPriority(pub String);
12642
12643impl ShieldRuleItemPriority {
12644 pub const INFORMATIONAL: &'static str = "informational";
12645 pub const LOW: &'static str = "low";
12646 pub const MEDIUM: &'static str = "medium";
12647 pub const HIGH: &'static str = "high";
12648 pub const CRITICAL: &'static str = "critical";
12649}
12650
12651#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12652#[serde(transparent)]
12653pub struct TermsOfServiceBaseType(pub String);
12654
12655impl TermsOfServiceBaseType {
12656 pub const TERMS_OF_SERVICE: &'static str = "terms_of_service";
12657}
12658
12659#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12660#[serde(transparent)]
12661pub struct UserOrGroupReferenceType(pub String);
12662
12663impl UserOrGroupReferenceType {
12664 pub const USER: &'static str = "user";
12665 pub const GROUP: &'static str = "group";
12666}
12667
12668#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12669#[serde(transparent)]
12670pub struct WeblinkReferenceType(pub String);
12671
12672impl WeblinkReferenceType {
12673 pub const WEB_LINK: &'static str = "web_link";
12674}
12675
12676#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12677pub struct CreateArchiveRequest {
12678 pub name: String,
12679 #[serde(default, skip_serializing_if = "Option::is_none")]
12680 pub description: Option<String>,
12681 #[serde(default, skip_serializing_if = "Option::is_none")]
12682 pub storage_policy_id: Option<String>,
12683}
12684
12685#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12686pub struct UpdateArchiveRequest {
12687 #[serde(default, skip_serializing_if = "Option::is_none")]
12688 pub name: Option<String>,
12689 #[serde(default, skip_serializing_if = "Option::is_none")]
12690 pub description: Option<String>,
12691}
12692
12693#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12694pub struct AutomateWorkflowAction {
12695 pub id: String,
12696 pub r#type: AutomateWorkflowActionType,
12697 pub action_type: AutomateWorkflowActionActionType,
12698 #[serde(default, skip_serializing_if = "Option::is_none")]
12699 pub description: Option<String>,
12700 #[serde(default, skip_serializing_if = "Option::is_none")]
12701 pub created_at: Option<chrono::DateTime<chrono::Utc>>,
12702 #[serde(default, skip_serializing_if = "Option::is_none")]
12703 pub updated_at: Option<chrono::DateTime<chrono::Utc>>,
12704 #[serde(default, skip_serializing_if = "Option::is_none")]
12705 pub created_by: Option<UserMini>,
12706 #[serde(default, skip_serializing_if = "Option::is_none")]
12707 pub updated_by: Option<UserMini>,
12708 pub workflow: AutomateWorkflowReference,
12709}
12710
12711#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12712pub struct AutomateWorkflowReference {
12713 pub id: String,
12714 pub r#type: AutomateWorkflowReferenceType,
12715 #[serde(default, skip_serializing_if = "Option::is_none")]
12716 pub name: Option<String>,
12717}
12718
12719#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12720pub struct AutomateWorkflows {
12721 #[serde(default, skip_serializing_if = "Option::is_none")]
12722 pub entries: Option<Vec<AutomateWorkflowAction>>,
12723 #[serde(default, skip_serializing_if = "Option::is_none")]
12724 pub limit: Option<i64>,
12725 #[serde(
12726 default,
12727 skip_serializing_if = "Option::is_none",
12728 deserialize_with = "double_option"
12729 )]
12730 pub next_marker: Option<Option<String>>,
12731}
12732
12733#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12734pub struct AutomateWorkflowStartRequest {
12735 pub workflow_action_id: String,
12736 pub file_ids: Vec<String>,
12737}
12738
12739#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12740pub struct NotesConvertRequestBody {
12741 pub content: String,
12742 pub content_format: NotesConvertRequestBodyContentFormat,
12743 pub parent: FolderReference,
12744 pub name: String,
12745}
12746
12747#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12748pub struct NotesConvertResponse {
12749 pub r#type: NotesConvertResponseType,
12750 pub id: String,
12751}
12752
12753#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12754pub struct QueryAncestorReference {
12755 pub id: String,
12756 pub r#type: String,
12757}
12758
12759#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12760pub struct QueryInsightEntry {
12761 pub key: Vec<String>,
12762 pub r#type: QueryInsightEntryType,
12763 pub metrics: std::collections::HashMap<String, QueryInsightMetricResult>,
12764}
12765
12766#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12767pub struct QueryInsightMetricResult {
12768 pub r#type: String,
12769 pub values: std::collections::HashMap<String, f64>,
12770}
12771
12772#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12773pub struct QueryInsights {
12774 pub insights: Vec<QueryInsightEntry>,
12775}
12776
12777#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12778pub struct QueryInsightsGroupBy {
12779 pub field: String,
12780 #[serde(default, skip_serializing_if = "Option::is_none")]
12781 pub bucket_limit: Option<i64>,
12782}
12783
12784#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12785pub struct QueryInsightsMetricDefinition {
12786 pub r#type: QueryInsightsMetricDefinitionType,
12787 pub field: String,
12788}
12789
12790#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12791pub struct QueryInsightsRequestBody {
12792 pub query: QueryInsightsRequestBodyQuery,
12793 pub metrics: std::collections::HashMap<String, QueryInsightsMetricDefinition>,
12794}
12795
12796#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12797pub struct QueryOrderBy {
12798 pub field_key: String,
12799 pub direction: QueryOrderByDirection,
12800}
12801
12802#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12803pub struct QueryRequestBody {
12804 pub query: QueryRequestBodyQuery,
12805 #[serde(default, skip_serializing_if = "Option::is_none")]
12806 pub order_by: Option<Vec<QueryOrderBy>>,
12807 #[serde(default, skip_serializing_if = "Option::is_none")]
12808 pub limit: Option<i64>,
12809 #[serde(default, skip_serializing_if = "Option::is_none")]
12810 pub fields: Option<Vec<String>>,
12811 #[serde(default, skip_serializing_if = "Option::is_none")]
12812 pub marker: Option<String>,
12813}
12814
12815#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12816pub struct QueryResultEntry {
12817 pub id: String,
12818 pub r#type: String,
12819 #[serde(flatten)]
12820 pub extra: std::collections::HashMap<String, serde_json::Value>,
12821}
12822
12823#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12824pub struct QueryResults {
12825 pub entries: Vec<QueryResultEntry>,
12826 pub next_marker: Option<String>,
12827 pub limit: i64,
12828}
12829
12830#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12831#[serde(transparent)]
12832pub struct AutomateWorkflowActionType(pub String);
12833
12834impl AutomateWorkflowActionType {
12835 pub const WORKFLOW_ACTION: &'static str = "workflow_action";
12836}
12837
12838#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12839#[serde(transparent)]
12840pub struct AutomateWorkflowActionActionType(pub String);
12841
12842impl AutomateWorkflowActionActionType {
12843 pub const RUN_WORKFLOW: &'static str = "run_workflow";
12844}
12845
12846#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12847#[serde(transparent)]
12848pub struct AutomateWorkflowReferenceType(pub String);
12849
12850impl AutomateWorkflowReferenceType {
12851 pub const WORKFLOW: &'static str = "workflow";
12852}
12853
12854#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12855#[serde(transparent)]
12856pub struct FolderReferenceType(pub String);
12857
12858impl FolderReferenceType {
12859 pub const FOLDER: &'static str = "folder";
12860}
12861
12862#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12863#[serde(transparent)]
12864pub struct NotesConvertRequestBodyContentFormat(pub String);
12865
12866impl NotesConvertRequestBodyContentFormat {
12867 pub const MARKDOWN: &'static str = "markdown";
12868}
12869
12870#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12871#[serde(transparent)]
12872pub struct NotesConvertResponseType(pub String);
12873
12874impl NotesConvertResponseType {
12875 pub const FILE: &'static str = "file";
12876}
12877
12878#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12879#[serde(transparent)]
12880pub struct QueryInsightEntryType(pub String);
12881
12882impl QueryInsightEntryType {
12883 pub const GROUP: &'static str = "group";
12884 pub const OVERALL: &'static str = "overall";
12885 pub const OTHER: &'static str = "other";
12886}
12887
12888#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12889#[serde(transparent)]
12890pub struct QueryInsightsMetricDefinitionType(pub String);
12891
12892impl QueryInsightsMetricDefinitionType {
12893 pub const SUM: &'static str = "sum";
12894 pub const AVG: &'static str = "avg";
12895 pub const MIN: &'static str = "min";
12896 pub const MAX: &'static str = "max";
12897 pub const COUNT: &'static str = "count";
12898}
12899
12900#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12901pub struct QueryInsightsRequestBodyQuery {
12902 pub predicate: String,
12903 #[serde(default, skip_serializing_if = "Option::is_none")]
12904 pub params: Option<std::collections::HashMap<String, serde_json::Value>>,
12905 #[serde(default, skip_serializing_if = "Option::is_none")]
12906 pub ancestors: Option<Vec<QueryAncestorReference>>,
12907 #[serde(default, skip_serializing_if = "Option::is_none")]
12908 pub group_by: Option<Vec<QueryInsightsGroupBy>>,
12909}
12910
12911#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12912#[serde(transparent)]
12913pub struct QueryOrderByDirection(pub String);
12914
12915impl QueryOrderByDirection {
12916 pub const ASC: &'static str = "asc";
12917 pub const DESC: &'static str = "desc";
12918}
12919
12920#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
12921pub struct QueryRequestBodyQuery {
12922 pub predicate: String,
12923 #[serde(default, skip_serializing_if = "Option::is_none")]
12924 pub params: Option<std::collections::HashMap<String, serde_json::Value>>,
12925 #[serde(default, skip_serializing_if = "Option::is_none")]
12926 pub ancestors: Option<Vec<QueryAncestorReference>>,
12927}
12928
12929#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
12930#[serde(transparent)]
12931pub struct UserBaseType(pub String);
12932
12933impl UserBaseType {
12934 pub const USER: &'static str = "user";
12935}