Skip to main content

box_open_sdk/models/schemas/
retention_policy_assignments.rs

1// Code generated by box-gantry 0.1.0 (spec 3fb3510fe12f2f80) for Box API 2024.0. DO NOT EDIT.
2
3use crate::serde_helpers::double_option;
4
5use super::*;
6
7#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8pub struct FilesUnderRetention {
9    #[serde(default, skip_serializing_if = "Option::is_none")]
10    pub limit: Option<i64>,
11    #[serde(
12        default,
13        skip_serializing_if = "Option::is_none",
14        deserialize_with = "double_option"
15    )]
16    pub next_marker: Option<Option<String>>,
17    #[serde(
18        default,
19        skip_serializing_if = "Option::is_none",
20        deserialize_with = "double_option"
21    )]
22    pub prev_marker: Option<Option<String>>,
23    #[serde(default, skip_serializing_if = "Option::is_none")]
24    pub entries: Option<Vec<FileMini>>,
25}
26
27#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
28pub struct RetentionPolicyAssignment {
29    pub id: String,
30    pub r#type: RetentionPolicyAssignmentType,
31    #[serde(default, skip_serializing_if = "Option::is_none")]
32    pub retention_policy: Option<RetentionPolicyMini>,
33    #[serde(default, skip_serializing_if = "Option::is_none")]
34    pub assigned_to: Option<RetentionPolicyAssignmentAssignedTo>,
35    #[serde(
36        default,
37        skip_serializing_if = "Option::is_none",
38        deserialize_with = "double_option"
39    )]
40    pub filter_fields: Option<Option<Vec<RetentionPolicyAssignmentFilterFields>>>,
41    #[serde(default, skip_serializing_if = "Option::is_none")]
42    pub assigned_by: Option<UserMini>,
43    #[serde(default, skip_serializing_if = "Option::is_none")]
44    pub assigned_at: Option<chrono::DateTime<chrono::Utc>>,
45    #[serde(default, skip_serializing_if = "Option::is_none")]
46    pub start_date_field: Option<String>,
47}
48
49#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
50pub struct RetentionPolicyAssignments {
51    #[serde(default, skip_serializing_if = "Option::is_none")]
52    pub entries: Option<Vec<RetentionPolicyAssignment>>,
53    #[serde(default, skip_serializing_if = "Option::is_none")]
54    pub limit: Option<i64>,
55    #[serde(
56        default,
57        skip_serializing_if = "Option::is_none",
58        deserialize_with = "double_option"
59    )]
60    pub next_marker: Option<Option<String>>,
61}
62
63#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
64#[serde(transparent)]
65pub struct RetentionPolicyAssignmentType(pub String);
66
67impl RetentionPolicyAssignmentType {
68    pub const RETENTION_POLICY_ASSIGNMENT: &'static str = "retention_policy_assignment";
69}
70
71#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
72#[serde(transparent)]
73pub struct AssignedToType(pub String);
74
75impl AssignedToType {
76    pub const FOLDER: &'static str = "folder";
77    pub const ENTERPRISE: &'static str = "enterprise";
78    pub const METADATA_TEMPLATE: &'static str = "metadata_template";
79}
80
81#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
82pub struct RetentionPolicyAssignmentAssignedTo {
83    #[serde(
84        default,
85        skip_serializing_if = "Option::is_none",
86        deserialize_with = "double_option"
87    )]
88    pub id: Option<Option<String>>,
89    #[serde(default, skip_serializing_if = "Option::is_none")]
90    pub r#type: Option<AssignedToType>,
91}
92
93#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
94pub struct RetentionPolicyAssignmentFilterFields {
95    #[serde(
96        default,
97        skip_serializing_if = "Option::is_none",
98        deserialize_with = "double_option"
99    )]
100    pub field: Option<Option<String>>,
101    #[serde(
102        default,
103        skip_serializing_if = "Option::is_none",
104        deserialize_with = "double_option"
105    )]
106    pub value: Option<Option<String>>,
107}
108
109#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
110#[serde(transparent)]
111pub struct AssignToType(pub String);
112
113impl AssignToType {
114    pub const ENTERPRISE: &'static str = "enterprise";
115    pub const FOLDER: &'static str = "folder";
116    pub const METADATA_TEMPLATE: &'static str = "metadata_template";
117}
118
119#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
120pub struct CreateRetentionPolicyAssignmentRequestAssignTo {
121    pub r#type: AssignToType,
122    #[serde(
123        default,
124        skip_serializing_if = "Option::is_none",
125        deserialize_with = "double_option"
126    )]
127    pub id: Option<Option<String>>,
128}
129
130#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
131pub struct PostFilterFields {
132    #[serde(default, skip_serializing_if = "Option::is_none")]
133    pub field: Option<String>,
134    #[serde(default, skip_serializing_if = "Option::is_none")]
135    pub value: Option<String>,
136}
137
138#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
139pub struct CreateRetentionPolicyAssignmentRequest {
140    pub policy_id: String,
141    pub assign_to: CreateRetentionPolicyAssignmentRequestAssignTo,
142    #[serde(default, skip_serializing_if = "Option::is_none")]
143    pub filter_fields: Option<Vec<PostFilterFields>>,
144    #[serde(default, skip_serializing_if = "Option::is_none")]
145    pub start_date_field: Option<String>,
146}