box_open_sdk/models/schemas/
web_links.rs1use crate::serde_helpers::double_option;
4
5use super::*;
6
7#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8pub struct CreateWebLinkRequest {
9 pub url: String,
10 pub parent: AttributesParent,
11 #[serde(default, skip_serializing_if = "Option::is_none")]
12 pub name: Option<String>,
13 #[serde(default, skip_serializing_if = "Option::is_none")]
14 pub description: Option<String>,
15}
16
17#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
18pub struct UpdateWebLinkRequestSharedLink {
19 #[serde(default, skip_serializing_if = "Option::is_none")]
20 pub access: Option<SharedLinkAccess>,
21 #[serde(
22 default,
23 skip_serializing_if = "Option::is_none",
24 deserialize_with = "double_option"
25 )]
26 pub password: Option<Option<String>>,
27 #[serde(default, skip_serializing_if = "Option::is_none")]
28 pub vanity_name: Option<String>,
29 #[serde(default, skip_serializing_if = "Option::is_none")]
30 pub unshared_at: Option<chrono::DateTime<chrono::Utc>>,
31}
32
33#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
34pub struct UpdateWebLinkRequest {
35 #[serde(default, skip_serializing_if = "Option::is_none")]
36 pub url: Option<String>,
37 #[serde(default, skip_serializing_if = "Option::is_none")]
38 pub parent: Option<PutIdParent>,
39 #[serde(default, skip_serializing_if = "Option::is_none")]
40 pub name: Option<String>,
41 #[serde(default, skip_serializing_if = "Option::is_none")]
42 pub description: Option<String>,
43 #[serde(default, skip_serializing_if = "Option::is_none")]
44 pub shared_link: Option<UpdateWebLinkRequestSharedLink>,
45}