box_open_sdk/models/schemas/
docgen.rs1use crate::serde_helpers::double_option;
4
5use super::*;
6
7#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
8pub struct DocGenBatchCreateRequest {
9 pub file: FileReference,
10 #[serde(default, skip_serializing_if = "Option::is_none")]
11 pub file_version: Option<FileVersionBase>,
12 pub input_source: String,
13 pub destination_folder: DocGenBatchCreateRequestDestinationFolder,
14 pub output_type: String,
15 pub document_generation_data: Vec<DocGenDocumentGenerationData>,
16}
17
18#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
19pub struct DocGenDocumentGenerationData {
20 pub generated_file_name: String,
21 pub user_input: std::collections::HashMap<String, serde_json::Value>,
22}
23
24#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
25pub struct DocGenJobFull {
26 pub id: String,
27 pub r#type: DocGenJobType,
28 pub batch: DocGenBatchBase,
29 pub template_file: FileReference,
30 pub template_file_version: FileVersionBase,
31 #[serde(
32 default,
33 skip_serializing_if = "Option::is_none",
34 deserialize_with = "double_option"
35 )]
36 pub output_file: Option<Option<FileReference>>,
37 #[serde(
38 default,
39 skip_serializing_if = "Option::is_none",
40 deserialize_with = "double_option"
41 )]
42 pub output_file_version: Option<Option<FileVersionBase>>,
43 pub status: DocGenJobStatus,
44 pub output_type: String,
45 #[serde(
46 default,
47 skip_serializing_if = "Option::is_none",
48 deserialize_with = "double_option"
49 )]
50 pub failures: Option<Option<DocGenJobFailures>>,
51 #[serde(default, skip_serializing_if = "Option::is_none")]
52 pub created_at: Option<String>,
53 pub created_by: UserBase,
54 pub enterprise: EnterpriseReference,
55 pub source: String,
56}
57
58#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
59pub struct DocGenJobsFull {
60 #[serde(default, skip_serializing_if = "Option::is_none")]
61 pub limit: Option<i64>,
62 #[serde(
63 default,
64 skip_serializing_if = "Option::is_none",
65 deserialize_with = "double_option"
66 )]
67 pub next_marker: Option<Option<String>>,
68 #[serde(
69 default,
70 skip_serializing_if = "Option::is_none",
71 deserialize_with = "double_option"
72 )]
73 pub prev_marker: Option<Option<String>>,
74 #[serde(default, skip_serializing_if = "Option::is_none")]
75 pub entries: Option<Vec<DocGenJobFull>>,
76}
77
78#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
79#[serde(transparent)]
80pub struct DestinationFolderType(pub String);
81
82impl DestinationFolderType {
83 pub const FOLDER: &'static str = "folder";
84}
85
86#[derive(Clone, Debug, Default, PartialEq, serde::Deserialize, serde::Serialize)]
87pub struct DocGenBatchCreateRequestDestinationFolder {
88 pub r#type: DestinationFolderType,
89 pub id: String,
90}