Skip to main content

box_open_sdk/models/schemas/
sign_templates.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 SignTemplate {
9    #[serde(default, skip_serializing_if = "Option::is_none")]
10    pub r#type: Option<SignTemplateType>,
11    #[serde(default, skip_serializing_if = "Option::is_none")]
12    pub id: Option<String>,
13    #[serde(
14        default,
15        skip_serializing_if = "Option::is_none",
16        deserialize_with = "double_option"
17    )]
18    pub name: Option<Option<String>>,
19    #[serde(
20        default,
21        skip_serializing_if = "Option::is_none",
22        deserialize_with = "double_option"
23    )]
24    pub email_subject: Option<Option<String>>,
25    #[serde(
26        default,
27        skip_serializing_if = "Option::is_none",
28        deserialize_with = "double_option"
29    )]
30    pub email_message: Option<Option<String>>,
31    #[serde(
32        default,
33        skip_serializing_if = "Option::is_none",
34        deserialize_with = "double_option"
35    )]
36    pub days_valid: Option<Option<i64>>,
37    #[serde(default, skip_serializing_if = "Option::is_none")]
38    pub parent_folder: Option<FolderMini>,
39    #[serde(default, skip_serializing_if = "Option::is_none")]
40    pub source_files: Option<Vec<FileMini>>,
41    #[serde(default, skip_serializing_if = "Option::is_none")]
42    pub are_fields_locked: Option<bool>,
43    #[serde(default, skip_serializing_if = "Option::is_none")]
44    pub are_options_locked: Option<bool>,
45    #[serde(default, skip_serializing_if = "Option::is_none")]
46    pub are_recipients_locked: Option<bool>,
47    #[serde(default, skip_serializing_if = "Option::is_none")]
48    pub are_email_settings_locked: Option<bool>,
49    #[serde(default, skip_serializing_if = "Option::is_none")]
50    pub are_files_locked: Option<bool>,
51    #[serde(default, skip_serializing_if = "Option::is_none")]
52    pub signers: Option<Vec<TemplateSigner>>,
53    #[serde(default, skip_serializing_if = "Option::is_none")]
54    pub additional_info: Option<SignTemplateAdditionalInfo>,
55    #[serde(
56        default,
57        skip_serializing_if = "Option::is_none",
58        deserialize_with = "double_option"
59    )]
60    pub ready_sign_link: Option<Option<SignTemplateReadySignLink>>,
61    #[serde(
62        default,
63        skip_serializing_if = "Option::is_none",
64        deserialize_with = "double_option"
65    )]
66    pub custom_branding: Option<Option<SignTemplateCustomBranding>>,
67    #[serde(
68        default,
69        skip_serializing_if = "Option::is_none",
70        deserialize_with = "double_option"
71    )]
72    pub request_flow: Option<Option<String>>,
73}
74
75#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
76pub struct SignTemplates {
77    #[serde(default, skip_serializing_if = "Option::is_none")]
78    pub limit: Option<i64>,
79    #[serde(
80        default,
81        skip_serializing_if = "Option::is_none",
82        deserialize_with = "double_option"
83    )]
84    pub next_marker: Option<Option<String>>,
85    #[serde(
86        default,
87        skip_serializing_if = "Option::is_none",
88        deserialize_with = "double_option"
89    )]
90    pub prev_marker: Option<Option<String>>,
91    #[serde(default, skip_serializing_if = "Option::is_none")]
92    pub entries: Option<Vec<SignTemplate>>,
93}
94
95#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
96pub struct TemplateSigner {
97    #[serde(default, skip_serializing_if = "Option::is_none")]
98    pub inputs: Option<Vec<TemplateSignerInput>>,
99    #[serde(
100        default,
101        skip_serializing_if = "Option::is_none",
102        deserialize_with = "double_option"
103    )]
104    pub email: Option<Option<String>>,
105    #[serde(default, skip_serializing_if = "Option::is_none")]
106    pub role: Option<SignRequestCreateSignerRole>,
107    #[serde(default, skip_serializing_if = "Option::is_none")]
108    pub is_in_person: Option<bool>,
109    #[serde(default, skip_serializing_if = "Option::is_none")]
110    pub order: Option<i64>,
111    #[serde(
112        default,
113        skip_serializing_if = "Option::is_none",
114        deserialize_with = "double_option"
115    )]
116    pub signer_group_id: Option<Option<String>>,
117    #[serde(
118        default,
119        skip_serializing_if = "Option::is_none",
120        deserialize_with = "double_option"
121    )]
122    pub label: Option<Option<String>>,
123    #[serde(default, skip_serializing_if = "Option::is_none")]
124    pub public_id: Option<String>,
125    #[serde(
126        default,
127        skip_serializing_if = "Option::is_none",
128        deserialize_with = "double_option"
129    )]
130    pub is_password_required: Option<Option<bool>>,
131    #[serde(
132        default,
133        skip_serializing_if = "Option::is_none",
134        deserialize_with = "double_option"
135    )]
136    pub is_phone_number_required: Option<Option<bool>>,
137    #[serde(
138        default,
139        skip_serializing_if = "Option::is_none",
140        deserialize_with = "double_option"
141    )]
142    pub login_required: Option<Option<bool>>,
143}
144
145#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
146pub struct TemplateSignerInput {
147    #[serde(
148        default,
149        skip_serializing_if = "Option::is_none",
150        deserialize_with = "double_option"
151    )]
152    pub document_tag_id: Option<Option<String>>,
153    #[serde(
154        default,
155        skip_serializing_if = "Option::is_none",
156        deserialize_with = "double_option"
157    )]
158    pub text_value: Option<Option<String>>,
159    #[serde(
160        default,
161        skip_serializing_if = "Option::is_none",
162        deserialize_with = "double_option"
163    )]
164    pub checkbox_value: Option<Option<bool>>,
165    #[serde(
166        default,
167        skip_serializing_if = "Option::is_none",
168        deserialize_with = "double_option"
169    )]
170    pub date_value: Option<Option<chrono::NaiveDate>>,
171    #[serde(default, skip_serializing_if = "Option::is_none")]
172    pub r#type: Option<TemplateSignerInputType>,
173    #[serde(default, skip_serializing_if = "Option::is_none")]
174    pub content_type: Option<SignRequestSignerInputContentType>,
175    #[serde(default, skip_serializing_if = "Option::is_none")]
176    pub is_required: Option<bool>,
177    pub page_index: i64,
178    #[serde(
179        default,
180        skip_serializing_if = "Option::is_none",
181        deserialize_with = "double_option"
182    )]
183    pub document_id: Option<Option<String>>,
184    #[serde(
185        default,
186        skip_serializing_if = "Option::is_none",
187        deserialize_with = "double_option"
188    )]
189    pub dropdown_choices: Option<Option<Vec<String>>>,
190    #[serde(
191        default,
192        skip_serializing_if = "Option::is_none",
193        deserialize_with = "double_option"
194    )]
195    pub group_id: Option<Option<String>>,
196    #[serde(default, skip_serializing_if = "Option::is_none")]
197    pub coordinates: Option<TemplateSignerInputCoordinates>,
198    #[serde(default, skip_serializing_if = "Option::is_none")]
199    pub dimensions: Option<TemplateSignerInputDimensions>,
200    #[serde(
201        default,
202        skip_serializing_if = "Option::is_none",
203        deserialize_with = "double_option"
204    )]
205    pub label: Option<Option<String>>,
206    #[serde(default, skip_serializing_if = "Option::is_none")]
207    pub read_only: Option<bool>,
208    #[serde(
209        default,
210        skip_serializing_if = "Option::is_none",
211        deserialize_with = "double_option"
212    )]
213    pub validation: Option<Option<SignRequestSignerInputValidation>>,
214}
215
216#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
217#[serde(transparent)]
218pub struct SignTemplateType(pub String);
219
220impl SignTemplateType {
221    pub const SIGN_TEMPLATE: &'static str = "sign-template";
222}
223
224#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
225#[serde(transparent)]
226pub struct AdditionalInfoNonEditable(pub String);
227
228impl AdditionalInfoNonEditable {
229    pub const EMAIL_SUBJECT: &'static str = "email_subject";
230    pub const EMAIL_MESSAGE: &'static str = "email_message";
231    pub const NAME: &'static str = "name";
232    pub const DAYS_VALID: &'static str = "days_valid";
233    pub const SIGNERS: &'static str = "signers";
234    pub const SOURCE_FILES: &'static str = "source_files";
235}
236
237#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
238pub struct AdditionalInfoRequired {
239    #[serde(default, skip_serializing_if = "Option::is_none")]
240    pub signers: Option<Vec<Vec<SignRequestSignerInputEmailValidationValidationType>>>,
241}
242
243#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
244pub struct SignTemplateAdditionalInfo {
245    #[serde(default, skip_serializing_if = "Option::is_none")]
246    pub non_editable: Option<Vec<AdditionalInfoNonEditable>>,
247    #[serde(default, skip_serializing_if = "Option::is_none")]
248    pub required: Option<AdditionalInfoRequired>,
249}
250
251#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
252pub struct SignTemplateReadySignLink {
253    #[serde(default, skip_serializing_if = "Option::is_none")]
254    pub url: Option<String>,
255    #[serde(
256        default,
257        skip_serializing_if = "Option::is_none",
258        deserialize_with = "double_option"
259    )]
260    pub name: Option<Option<String>>,
261    #[serde(
262        default,
263        skip_serializing_if = "Option::is_none",
264        deserialize_with = "double_option"
265    )]
266    pub instructions: Option<Option<String>>,
267    #[serde(
268        default,
269        skip_serializing_if = "Option::is_none",
270        deserialize_with = "double_option"
271    )]
272    pub folder_id: Option<Option<String>>,
273    #[serde(default, skip_serializing_if = "Option::is_none")]
274    pub is_notification_disabled: Option<bool>,
275    #[serde(default, skip_serializing_if = "Option::is_none")]
276    pub is_active: Option<bool>,
277}
278
279#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
280pub struct SignTemplateCustomBranding {
281    #[serde(
282        default,
283        skip_serializing_if = "Option::is_none",
284        deserialize_with = "double_option"
285    )]
286    pub company_name: Option<Option<String>>,
287    #[serde(
288        default,
289        skip_serializing_if = "Option::is_none",
290        deserialize_with = "double_option"
291    )]
292    pub logo_uri: Option<Option<String>>,
293    #[serde(
294        default,
295        skip_serializing_if = "Option::is_none",
296        deserialize_with = "double_option"
297    )]
298    pub branding_color: Option<Option<String>>,
299    #[serde(
300        default,
301        skip_serializing_if = "Option::is_none",
302        deserialize_with = "double_option"
303    )]
304    pub email_footer_text: Option<Option<String>>,
305}
306
307#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
308#[serde(transparent)]
309pub struct TemplateSignerInputType(pub String);
310
311impl TemplateSignerInputType {
312    pub const SIGNATURE: &'static str = "signature";
313    pub const DATE: &'static str = "date";
314    pub const TEXT: &'static str = "text";
315    pub const CHECKBOX: &'static str = "checkbox";
316    pub const ATTACHMENT: &'static str = "attachment";
317    pub const RADIO: &'static str = "radio";
318    pub const DROPDOWN: &'static str = "dropdown";
319}
320
321#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
322pub struct TemplateSignerInputCoordinates {
323    #[serde(default, skip_serializing_if = "Option::is_none")]
324    pub x: Option<f64>,
325    #[serde(default, skip_serializing_if = "Option::is_none")]
326    pub y: Option<f64>,
327}
328
329#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
330pub struct TemplateSignerInputDimensions {
331    #[serde(default, skip_serializing_if = "Option::is_none")]
332    pub width: Option<f64>,
333    #[serde(default, skip_serializing_if = "Option::is_none")]
334    pub height: Option<f64>,
335}