Skip to main content

box_open_sdk/models/schemas/
sign_requests.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 SignRequest {
9    #[serde(default, skip_serializing_if = "Option::is_none")]
10    pub is_document_preparation_needed: Option<bool>,
11    #[serde(
12        default,
13        skip_serializing_if = "Option::is_none",
14        deserialize_with = "double_option"
15    )]
16    pub redirect_url: Option<Option<String>>,
17    #[serde(
18        default,
19        skip_serializing_if = "Option::is_none",
20        deserialize_with = "double_option"
21    )]
22    pub declined_redirect_url: Option<Option<String>>,
23    #[serde(default, skip_serializing_if = "Option::is_none")]
24    pub are_text_signatures_enabled: Option<bool>,
25    #[serde(
26        default,
27        skip_serializing_if = "Option::is_none",
28        deserialize_with = "double_option"
29    )]
30    pub email_subject: Option<Option<String>>,
31    #[serde(
32        default,
33        skip_serializing_if = "Option::is_none",
34        deserialize_with = "double_option"
35    )]
36    pub email_message: Option<Option<String>>,
37    #[serde(default, skip_serializing_if = "Option::is_none")]
38    pub are_reminders_enabled: Option<bool>,
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 prefill_tags: Option<Vec<SignRequestPrefillTag>>,
43    #[serde(
44        default,
45        skip_serializing_if = "Option::is_none",
46        deserialize_with = "double_option"
47    )]
48    pub days_valid: Option<Option<i64>>,
49    #[serde(
50        default,
51        skip_serializing_if = "Option::is_none",
52        deserialize_with = "double_option"
53    )]
54    pub external_id: Option<Option<String>>,
55    #[serde(
56        default,
57        skip_serializing_if = "Option::is_none",
58        deserialize_with = "double_option"
59    )]
60    pub template_id: Option<Option<String>>,
61    #[serde(
62        default,
63        skip_serializing_if = "Option::is_none",
64        deserialize_with = "double_option"
65    )]
66    pub external_system_name: Option<Option<String>>,
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    #[serde(default, skip_serializing_if = "Option::is_none")]
74    pub r#type: Option<SignRequestType>,
75    #[serde(default, skip_serializing_if = "Option::is_none")]
76    pub source_files: Option<Vec<FileBase>>,
77    #[serde(default, skip_serializing_if = "Option::is_none")]
78    pub signers: Option<Vec<SignRequestSigner>>,
79    #[serde(
80        default,
81        skip_serializing_if = "Option::is_none",
82        deserialize_with = "double_option"
83    )]
84    pub signature_color: Option<Option<String>>,
85    #[serde(default, skip_serializing_if = "Option::is_none")]
86    pub id: Option<String>,
87    #[serde(
88        default,
89        skip_serializing_if = "Option::is_none",
90        deserialize_with = "double_option"
91    )]
92    pub prepare_url: Option<Option<String>>,
93    #[serde(default, skip_serializing_if = "Option::is_none")]
94    pub signing_log: Option<FileMini>,
95    #[serde(default, skip_serializing_if = "Option::is_none")]
96    pub status: Option<SignRequestStatus>,
97    #[serde(default, skip_serializing_if = "Option::is_none")]
98    pub sign_files: Option<SignRequestSignFiles>,
99    #[serde(
100        default,
101        skip_serializing_if = "Option::is_none",
102        deserialize_with = "double_option"
103    )]
104    pub auto_expire_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
105    #[serde(default, skip_serializing_if = "Option::is_none")]
106    pub parent_folder: Option<FolderMini>,
107    #[serde(
108        default,
109        skip_serializing_if = "Option::is_none",
110        deserialize_with = "double_option"
111    )]
112    pub collaborator_level: Option<Option<String>>,
113    #[serde(default, skip_serializing_if = "Option::is_none")]
114    pub short_id: Option<String>,
115    #[serde(default, skip_serializing_if = "Option::is_none")]
116    pub created_at: Option<chrono::DateTime<chrono::Utc>>,
117    #[serde(
118        default,
119        skip_serializing_if = "Option::is_none",
120        deserialize_with = "double_option"
121    )]
122    pub finished_at: Option<Option<chrono::DateTime<chrono::Utc>>>,
123    #[serde(
124        default,
125        skip_serializing_if = "Option::is_none",
126        deserialize_with = "double_option"
127    )]
128    pub error_code: Option<Option<String>>,
129    #[serde(
130        default,
131        skip_serializing_if = "Option::is_none",
132        deserialize_with = "double_option"
133    )]
134    pub sender_email: Option<Option<String>>,
135    #[serde(
136        default,
137        skip_serializing_if = "Option::is_none",
138        deserialize_with = "double_option"
139    )]
140    pub sender_id: Option<Option<i64>>,
141}
142
143#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
144pub struct SignRequestCancelRequest {
145    #[serde(default, skip_serializing_if = "Option::is_none")]
146    pub reason: Option<String>,
147}
148
149#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
150pub struct SignRequestCreateRequest {
151    #[serde(default, skip_serializing_if = "Option::is_none")]
152    pub is_document_preparation_needed: Option<bool>,
153    #[serde(
154        default,
155        skip_serializing_if = "Option::is_none",
156        deserialize_with = "double_option"
157    )]
158    pub redirect_url: Option<Option<String>>,
159    #[serde(
160        default,
161        skip_serializing_if = "Option::is_none",
162        deserialize_with = "double_option"
163    )]
164    pub declined_redirect_url: Option<Option<String>>,
165    #[serde(default, skip_serializing_if = "Option::is_none")]
166    pub are_text_signatures_enabled: Option<bool>,
167    #[serde(
168        default,
169        skip_serializing_if = "Option::is_none",
170        deserialize_with = "double_option"
171    )]
172    pub email_subject: Option<Option<String>>,
173    #[serde(
174        default,
175        skip_serializing_if = "Option::is_none",
176        deserialize_with = "double_option"
177    )]
178    pub email_message: Option<Option<String>>,
179    #[serde(default, skip_serializing_if = "Option::is_none")]
180    pub are_reminders_enabled: Option<bool>,
181    #[serde(default, skip_serializing_if = "Option::is_none")]
182    pub name: Option<String>,
183    #[serde(default, skip_serializing_if = "Option::is_none")]
184    pub prefill_tags: Option<Vec<SignRequestPrefillTag>>,
185    #[serde(
186        default,
187        skip_serializing_if = "Option::is_none",
188        deserialize_with = "double_option"
189    )]
190    pub days_valid: Option<Option<i64>>,
191    #[serde(
192        default,
193        skip_serializing_if = "Option::is_none",
194        deserialize_with = "double_option"
195    )]
196    pub external_id: Option<Option<String>>,
197    #[serde(
198        default,
199        skip_serializing_if = "Option::is_none",
200        deserialize_with = "double_option"
201    )]
202    pub template_id: Option<Option<String>>,
203    #[serde(
204        default,
205        skip_serializing_if = "Option::is_none",
206        deserialize_with = "double_option"
207    )]
208    pub external_system_name: Option<Option<String>>,
209    #[serde(
210        default,
211        skip_serializing_if = "Option::is_none",
212        deserialize_with = "double_option"
213    )]
214    pub request_flow: Option<Option<String>>,
215    #[serde(
216        default,
217        skip_serializing_if = "Option::is_none",
218        deserialize_with = "double_option"
219    )]
220    pub source_files: Option<Option<Vec<FileBase>>>,
221    #[serde(
222        default,
223        skip_serializing_if = "Option::is_none",
224        deserialize_with = "double_option"
225    )]
226    pub signature_color: Option<Option<SignRequestCreateRequestSignatureColor>>,
227    pub signers: Vec<SignRequestCreateSigner>,
228    #[serde(default, skip_serializing_if = "Option::is_none")]
229    pub parent_folder: Option<FolderMini>,
230}
231
232#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
233pub struct SignRequestCreateSigner {
234    #[serde(
235        default,
236        skip_serializing_if = "Option::is_none",
237        deserialize_with = "double_option"
238    )]
239    pub email: Option<Option<String>>,
240    #[serde(default, skip_serializing_if = "Option::is_none")]
241    pub role: Option<SignRequestCreateSignerRole>,
242    #[serde(default, skip_serializing_if = "Option::is_none")]
243    pub is_in_person: Option<bool>,
244    #[serde(default, skip_serializing_if = "Option::is_none")]
245    pub order: Option<i64>,
246    #[serde(
247        default,
248        skip_serializing_if = "Option::is_none",
249        deserialize_with = "double_option"
250    )]
251    pub embed_url_external_user_id: Option<Option<String>>,
252    #[serde(
253        default,
254        skip_serializing_if = "Option::is_none",
255        deserialize_with = "double_option"
256    )]
257    pub redirect_url: Option<Option<String>>,
258    #[serde(
259        default,
260        skip_serializing_if = "Option::is_none",
261        deserialize_with = "double_option"
262    )]
263    pub declined_redirect_url: Option<Option<String>>,
264    #[serde(
265        default,
266        skip_serializing_if = "Option::is_none",
267        deserialize_with = "double_option"
268    )]
269    pub login_required: Option<Option<bool>>,
270    #[serde(
271        default,
272        skip_serializing_if = "Option::is_none",
273        deserialize_with = "double_option"
274    )]
275    pub verification_phone_number: Option<Option<String>>,
276    #[serde(
277        default,
278        skip_serializing_if = "Option::is_none",
279        deserialize_with = "double_option"
280    )]
281    pub password: Option<Option<String>>,
282    #[serde(
283        default,
284        skip_serializing_if = "Option::is_none",
285        deserialize_with = "double_option"
286    )]
287    pub signer_group_id: Option<Option<String>>,
288    #[serde(
289        default,
290        skip_serializing_if = "Option::is_none",
291        deserialize_with = "double_option"
292    )]
293    pub suppress_notifications: Option<Option<bool>>,
294    #[serde(
295        default,
296        skip_serializing_if = "Option::is_none",
297        deserialize_with = "double_option"
298    )]
299    pub language: Option<Option<String>>,
300}
301
302#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
303pub struct SignRequestPrefillTag {
304    #[serde(
305        default,
306        skip_serializing_if = "Option::is_none",
307        deserialize_with = "double_option"
308    )]
309    pub document_tag_id: Option<Option<String>>,
310    #[serde(
311        default,
312        skip_serializing_if = "Option::is_none",
313        deserialize_with = "double_option"
314    )]
315    pub text_value: Option<Option<String>>,
316    #[serde(
317        default,
318        skip_serializing_if = "Option::is_none",
319        deserialize_with = "double_option"
320    )]
321    pub checkbox_value: Option<Option<bool>>,
322    #[serde(
323        default,
324        skip_serializing_if = "Option::is_none",
325        deserialize_with = "double_option"
326    )]
327    pub date_value: Option<Option<chrono::NaiveDate>>,
328}
329
330#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
331pub struct SignRequests {
332    #[serde(default, skip_serializing_if = "Option::is_none")]
333    pub limit: Option<i64>,
334    #[serde(
335        default,
336        skip_serializing_if = "Option::is_none",
337        deserialize_with = "double_option"
338    )]
339    pub next_marker: Option<Option<String>>,
340    #[serde(default, skip_serializing_if = "Option::is_none")]
341    pub entries: Option<Vec<SignRequest>>,
342}
343
344#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
345pub struct SignRequestSigner {
346    pub email: Option<String>,
347    #[serde(default, skip_serializing_if = "Option::is_none")]
348    pub role: Option<SignRequestCreateSignerRole>,
349    #[serde(default, skip_serializing_if = "Option::is_none")]
350    pub is_in_person: Option<bool>,
351    #[serde(default, skip_serializing_if = "Option::is_none")]
352    pub order: Option<i64>,
353    #[serde(
354        default,
355        skip_serializing_if = "Option::is_none",
356        deserialize_with = "double_option"
357    )]
358    pub embed_url_external_user_id: Option<Option<String>>,
359    #[serde(
360        default,
361        skip_serializing_if = "Option::is_none",
362        deserialize_with = "double_option"
363    )]
364    pub redirect_url: Option<Option<String>>,
365    #[serde(
366        default,
367        skip_serializing_if = "Option::is_none",
368        deserialize_with = "double_option"
369    )]
370    pub declined_redirect_url: Option<Option<String>>,
371    #[serde(
372        default,
373        skip_serializing_if = "Option::is_none",
374        deserialize_with = "double_option"
375    )]
376    pub login_required: Option<Option<bool>>,
377    #[serde(
378        default,
379        skip_serializing_if = "Option::is_none",
380        deserialize_with = "double_option"
381    )]
382    pub verification_phone_number: Option<Option<String>>,
383    #[serde(
384        default,
385        skip_serializing_if = "Option::is_none",
386        deserialize_with = "double_option"
387    )]
388    pub password: Option<Option<String>>,
389    #[serde(
390        default,
391        skip_serializing_if = "Option::is_none",
392        deserialize_with = "double_option"
393    )]
394    pub signer_group_id: Option<Option<String>>,
395    #[serde(
396        default,
397        skip_serializing_if = "Option::is_none",
398        deserialize_with = "double_option"
399    )]
400    pub suppress_notifications: Option<Option<bool>>,
401    #[serde(
402        default,
403        skip_serializing_if = "Option::is_none",
404        deserialize_with = "double_option"
405    )]
406    pub language: Option<Option<String>>,
407    #[serde(default, skip_serializing_if = "Option::is_none")]
408    pub has_viewed_document: Option<bool>,
409    #[serde(
410        default,
411        skip_serializing_if = "Option::is_none",
412        deserialize_with = "double_option"
413    )]
414    pub signer_decision: Option<Option<SignRequestSignerSignerDecision>>,
415    #[serde(default, skip_serializing_if = "Option::is_none")]
416    pub inputs: Option<Vec<SignRequestSignerInput>>,
417    #[serde(
418        default,
419        skip_serializing_if = "Option::is_none",
420        deserialize_with = "double_option"
421    )]
422    pub embed_url: Option<Option<String>>,
423    #[serde(
424        default,
425        skip_serializing_if = "Option::is_none",
426        deserialize_with = "double_option"
427    )]
428    pub iframeable_embed_url: Option<Option<String>>,
429    #[serde(
430        default,
431        skip_serializing_if = "Option::is_none",
432        deserialize_with = "double_option"
433    )]
434    pub attachments: Option<Option<Vec<SignRequestSignerAttachment>>>,
435}
436
437#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
438pub struct SignRequestSignerAttachment {
439    #[serde(
440        default,
441        skip_serializing_if = "Option::is_none",
442        deserialize_with = "double_option"
443    )]
444    pub id: Option<Option<String>>,
445    #[serde(
446        default,
447        skip_serializing_if = "Option::is_none",
448        deserialize_with = "double_option"
449    )]
450    pub name: Option<Option<String>>,
451}
452
453#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
454pub struct SignRequestSignerInput {
455    #[serde(
456        default,
457        skip_serializing_if = "Option::is_none",
458        deserialize_with = "double_option"
459    )]
460    pub document_tag_id: Option<Option<String>>,
461    #[serde(
462        default,
463        skip_serializing_if = "Option::is_none",
464        deserialize_with = "double_option"
465    )]
466    pub text_value: Option<Option<String>>,
467    #[serde(
468        default,
469        skip_serializing_if = "Option::is_none",
470        deserialize_with = "double_option"
471    )]
472    pub checkbox_value: Option<Option<bool>>,
473    #[serde(
474        default,
475        skip_serializing_if = "Option::is_none",
476        deserialize_with = "double_option"
477    )]
478    pub date_value: Option<Option<chrono::NaiveDate>>,
479    #[serde(default, skip_serializing_if = "Option::is_none")]
480    pub r#type: Option<SignRequestSignerInputType>,
481    #[serde(default, skip_serializing_if = "Option::is_none")]
482    pub content_type: Option<SignRequestSignerInputContentType>,
483    pub page_index: i64,
484    #[serde(default, skip_serializing_if = "Option::is_none")]
485    pub read_only: Option<bool>,
486    #[serde(
487        default,
488        skip_serializing_if = "Option::is_none",
489        deserialize_with = "double_option"
490    )]
491    pub validation: Option<Option<SignRequestSignerInputValidation>>,
492    #[serde(
493        default,
494        skip_serializing_if = "Option::is_none",
495        deserialize_with = "double_option"
496    )]
497    pub reason: Option<Option<String>>,
498    #[serde(
499        default,
500        skip_serializing_if = "Option::is_none",
501        deserialize_with = "double_option"
502    )]
503    pub is_validated: Option<Option<bool>>,
504}
505
506#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
507#[serde(transparent)]
508pub struct SignRequestType(pub String);
509
510impl SignRequestType {
511    pub const SIGN_REQUEST: &'static str = "sign-request";
512}
513
514#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
515#[serde(transparent)]
516pub struct SignRequestStatus(pub String);
517
518impl SignRequestStatus {
519    pub const CONVERTING: &'static str = "converting";
520    pub const CREATED: &'static str = "created";
521    pub const SENT: &'static str = "sent";
522    pub const VIEWED: &'static str = "viewed";
523    pub const SIGNED: &'static str = "signed";
524    pub const CANCELLED: &'static str = "cancelled";
525    pub const DECLINED: &'static str = "declined";
526    pub const ERROR: &'static str = "error";
527    pub const ERROR_CONVERTING: &'static str = "error_converting";
528    pub const ERROR_SENDING: &'static str = "error_sending";
529    pub const EXPIRED: &'static str = "expired";
530    pub const FINALIZING: &'static str = "finalizing";
531    pub const ERROR_FINALIZING: &'static str = "error_finalizing";
532}
533
534#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
535pub struct SignRequestSignFiles {
536    #[serde(default, skip_serializing_if = "Option::is_none")]
537    pub files: Option<Vec<FileMini>>,
538    #[serde(default, skip_serializing_if = "Option::is_none")]
539    pub is_ready_for_download: Option<bool>,
540}
541
542#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
543#[serde(transparent)]
544pub struct SignRequestCreateRequestSignatureColor(pub String);
545
546impl SignRequestCreateRequestSignatureColor {
547    pub const BLUE: &'static str = "blue";
548    pub const BLACK: &'static str = "black";
549    pub const RED: &'static str = "red";
550}
551
552#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
553#[serde(transparent)]
554pub struct SignerDecisionType(pub String);
555
556impl SignerDecisionType {
557    pub const SIGNED: &'static str = "signed";
558    pub const DECLINED: &'static str = "declined";
559}
560
561#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
562pub struct SignRequestSignerSignerDecision {
563    #[serde(default, skip_serializing_if = "Option::is_none")]
564    pub r#type: Option<SignerDecisionType>,
565    #[serde(default, skip_serializing_if = "Option::is_none")]
566    pub finalized_at: Option<chrono::DateTime<chrono::Utc>>,
567    #[serde(
568        default,
569        skip_serializing_if = "Option::is_none",
570        deserialize_with = "double_option"
571    )]
572    pub additional_info: Option<Option<String>>,
573}
574
575#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
576#[serde(transparent)]
577pub struct SignRequestSignerInputType(pub String);
578
579impl SignRequestSignerInputType {
580    pub const SIGNATURE: &'static str = "signature";
581    pub const DATE: &'static str = "date";
582    pub const TEXT: &'static str = "text";
583    pub const CHECKBOX: &'static str = "checkbox";
584    pub const RADIO: &'static str = "radio";
585    pub const DROPDOWN: &'static str = "dropdown";
586}