box_open_sdk/models/schemas/
files.rs1use crate::serde_helpers::double_option;
4
5use super::*;
6
7#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8pub struct PutIdLock {
9 #[serde(default, skip_serializing_if = "Option::is_none")]
10 pub access: Option<LockType>,
11 #[serde(default, skip_serializing_if = "Option::is_none")]
12 pub expires_at: Option<chrono::DateTime<chrono::Utc>>,
13 #[serde(default, skip_serializing_if = "Option::is_none")]
14 pub is_download_prevented: Option<bool>,
15}
16
17#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
18#[serde(transparent)]
19pub struct PermissionsCanDownload(pub String);
20
21impl PermissionsCanDownload {
22 pub const OPEN: &'static str = "open";
23 pub const COMPANY: &'static str = "company";
24}
25
26#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
27pub struct PutIdPermissions {
28 #[serde(default, skip_serializing_if = "Option::is_none")]
29 pub can_download: Option<PermissionsCanDownload>,
30}
31
32#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
33pub struct UpdateFileRequest {
34 #[serde(default, skip_serializing_if = "Option::is_none")]
35 pub name: Option<String>,
36 #[serde(default, skip_serializing_if = "Option::is_none")]
37 pub description: Option<String>,
38 #[serde(default, skip_serializing_if = "Option::is_none")]
39 pub parent: Option<PutIdParent>,
40 #[serde(
41 default,
42 skip_serializing_if = "Option::is_none",
43 deserialize_with = "double_option"
44 )]
45 pub shared_link: Option<Option<PutIdSharedLink>>,
46 #[serde(
47 default,
48 skip_serializing_if = "Option::is_none",
49 deserialize_with = "double_option"
50 )]
51 pub lock: Option<Option<PutIdLock>>,
52 #[serde(default, skip_serializing_if = "Option::is_none")]
53 pub disposition_at: Option<chrono::DateTime<chrono::Utc>>,
54 #[serde(default, skip_serializing_if = "Option::is_none")]
55 pub permissions: Option<PutIdPermissions>,
56 #[serde(
57 default,
58 skip_serializing_if = "Option::is_none",
59 deserialize_with = "double_option"
60 )]
61 pub collections: Option<Option<Vec<CommentItem>>>,
62 #[serde(default, skip_serializing_if = "Option::is_none")]
63 pub tags: Option<Vec<String>>,
64}
65
66#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
67pub struct CopyFileRequest {
68 #[serde(default, skip_serializing_if = "Option::is_none")]
69 pub name: Option<String>,
70 #[serde(default, skip_serializing_if = "Option::is_none")]
71 pub version: Option<String>,
72 pub parent: AttributesParent,
73}
74
75#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
76#[serde(transparent)]
77pub struct GetIdThumbnailIdExtension(pub String);
78
79impl GetIdThumbnailIdExtension {
80 pub const PNG: &'static str = "png";
81 pub const JPG: &'static str = "jpg";
82}