box_open_sdk/models/schemas/
folders.rs1use crate::serde_helpers::double_option;
4
5use super::*;
6
7#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
8#[serde(transparent)]
9pub struct GetIdSort(pub String);
10
11impl GetIdSort {
12 pub const ID: &'static str = "id";
13 pub const NAME: &'static str = "name";
14 pub const DATE: &'static str = "date";
15 pub const SIZE: &'static str = "size";
16}
17
18#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
19pub struct PutIdFolderUploadEmail {
20 #[serde(default, skip_serializing_if = "Option::is_none")]
21 pub access: Option<FolderUploadEmailAccess>,
22}
23
24#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
25pub struct UpdateFolderRequest {
26 #[serde(default, skip_serializing_if = "Option::is_none")]
27 pub name: Option<String>,
28 #[serde(default, skip_serializing_if = "Option::is_none")]
29 pub description: Option<String>,
30 #[serde(default, skip_serializing_if = "Option::is_none")]
31 pub sync_state: Option<FolderFullSyncState>,
32 #[serde(default, skip_serializing_if = "Option::is_none")]
33 pub can_non_owners_invite: Option<bool>,
34 #[serde(default, skip_serializing_if = "Option::is_none")]
35 pub parent: Option<PutIdParent>,
36 #[serde(default, skip_serializing_if = "Option::is_none")]
37 pub shared_link: Option<PutIdSharedLink>,
38 #[serde(
39 default,
40 skip_serializing_if = "Option::is_none",
41 deserialize_with = "double_option"
42 )]
43 pub folder_upload_email: Option<Option<PutIdFolderUploadEmail>>,
44 #[serde(default, skip_serializing_if = "Option::is_none")]
45 pub tags: Option<Vec<String>>,
46 #[serde(default, skip_serializing_if = "Option::is_none")]
47 pub is_collaboration_restricted_to_enterprise: Option<bool>,
48 #[serde(
49 default,
50 skip_serializing_if = "Option::is_none",
51 deserialize_with = "double_option"
52 )]
53 pub collections: Option<Option<Vec<CommentItem>>>,
54 #[serde(default, skip_serializing_if = "Option::is_none")]
55 pub can_non_owners_view_collaborators: Option<bool>,
56}
57
58#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
59pub struct CreateFolderRequest {
60 pub name: String,
61 pub parent: AttributesParent,
62 #[serde(default, skip_serializing_if = "Option::is_none")]
63 pub folder_upload_email: Option<PutIdFolderUploadEmail>,
64 #[serde(default, skip_serializing_if = "Option::is_none")]
65 pub sync_state: Option<FolderFullSyncState>,
66}
67
68#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
69pub struct CopyFolderRequest {
70 #[serde(default, skip_serializing_if = "Option::is_none")]
71 pub name: Option<String>,
72 pub parent: AttributesParent,
73}