box_open_sdk/models/schemas/
archives.rs1use crate::serde_helpers::double_option;
4
5#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
6pub struct Archive {
7 pub id: String,
8 pub r#type: ArchiveType,
9 pub name: String,
10 pub size: i64,
11 #[serde(
12 default,
13 skip_serializing_if = "Option::is_none",
14 deserialize_with = "double_option"
15 )]
16 pub description: Option<Option<String>>,
17 #[serde(default, skip_serializing_if = "Option::is_none")]
18 pub owned_by: Option<ArchiveOwnedBy>,
19}
20
21#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
22pub struct Archives {
23 #[serde(default, skip_serializing_if = "Option::is_none")]
24 pub entries: Option<Vec<Archive>>,
25 #[serde(default, skip_serializing_if = "Option::is_none")]
26 pub limit: Option<i64>,
27 #[serde(
28 default,
29 skip_serializing_if = "Option::is_none",
30 deserialize_with = "double_option"
31 )]
32 pub next_marker: Option<Option<String>>,
33}
34
35#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
36#[serde(transparent)]
37pub struct ArchiveType(pub String);
38
39impl ArchiveType {
40 pub const ARCHIVE: &'static str = "archive";
41}
42
43#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
44pub struct ArchiveOwnedBy {
45 pub id: String,
46 pub r#type: String,
47}
48
49#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
50pub struct CreateArchiveRequest {
51 pub name: String,
52 #[serde(default, skip_serializing_if = "Option::is_none")]
53 pub description: Option<String>,
54 #[serde(default, skip_serializing_if = "Option::is_none")]
55 pub storage_policy_id: Option<String>,
56}
57
58#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
59pub struct UpdateArchiveRequest {
60 #[serde(default, skip_serializing_if = "Option::is_none")]
61 pub name: Option<String>,
62 #[serde(default, skip_serializing_if = "Option::is_none")]
63 pub description: Option<String>,
64}