1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct JobOneOf {
16 #[serde(rename = "workspace_id", skip_serializing_if = "Option::is_none")]
17 pub workspace_id: Option<String>,
18 #[serde(rename = "id")]
19 pub id: uuid::Uuid,
20 #[serde(rename = "parent_job", skip_serializing_if = "Option::is_none")]
21 pub parent_job: Option<uuid::Uuid>,
22 #[serde(rename = "created_by")]
23 pub created_by: String,
24 #[serde(rename = "created_at")]
25 pub created_at: String,
26 #[serde(rename = "started_at")]
27 pub started_at: String,
28 #[serde(rename = "completed_at", skip_serializing_if = "Option::is_none")]
29 pub completed_at: Option<String>,
30 #[serde(rename = "duration_ms")]
31 pub duration_ms: i32,
32 #[serde(rename = "success")]
33 pub success: bool,
34 #[serde(rename = "script_path", skip_serializing_if = "Option::is_none")]
35 pub script_path: Option<String>,
36 #[serde(rename = "script_hash", skip_serializing_if = "Option::is_none")]
37 pub script_hash: Option<String>,
38 #[serde(rename = "args", skip_serializing_if = "Option::is_none")]
40 pub args: Option<std::collections::HashMap<String, serde_json::Value>>,
41 #[serde(rename = "result", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
43 pub result: Option<Option<serde_json::Value>>,
44 #[serde(rename = "logs", skip_serializing_if = "Option::is_none")]
45 pub logs: Option<String>,
46 #[serde(rename = "deleted", skip_serializing_if = "Option::is_none")]
47 pub deleted: Option<bool>,
48 #[serde(rename = "raw_code", skip_serializing_if = "Option::is_none")]
49 pub raw_code: Option<String>,
50 #[serde(rename = "canceled")]
51 pub canceled: bool,
52 #[serde(rename = "canceled_by", skip_serializing_if = "Option::is_none")]
53 pub canceled_by: Option<String>,
54 #[serde(rename = "canceled_reason", skip_serializing_if = "Option::is_none")]
55 pub canceled_reason: Option<String>,
56 #[serde(rename = "job_kind")]
57 pub job_kind: JobKind,
58 #[serde(rename = "schedule_path", skip_serializing_if = "Option::is_none")]
59 pub schedule_path: Option<String>,
60 #[serde(rename = "permissioned_as")]
62 pub permissioned_as: String,
63 #[serde(rename = "flow_status", skip_serializing_if = "Option::is_none")]
64 pub flow_status: Option<Box<models::FlowStatus>>,
65 #[serde(rename = "workflow_as_code_status", skip_serializing_if = "Option::is_none")]
66 pub workflow_as_code_status: Option<Box<models::WorkflowStatus>>,
67 #[serde(rename = "raw_flow", skip_serializing_if = "Option::is_none")]
68 pub raw_flow: Option<Box<models::FlowValue>>,
69 #[serde(rename = "is_flow_step")]
70 pub is_flow_step: bool,
71 #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
72 pub language: Option<models::ScriptLang>,
73 #[serde(rename = "is_skipped")]
74 pub is_skipped: bool,
75 #[serde(rename = "email")]
76 pub email: String,
77 #[serde(rename = "visible_to_owner")]
78 pub visible_to_owner: bool,
79 #[serde(rename = "mem_peak", skip_serializing_if = "Option::is_none")]
80 pub mem_peak: Option<i32>,
81 #[serde(rename = "tag")]
82 pub tag: String,
83 #[serde(rename = "priority", skip_serializing_if = "Option::is_none")]
84 pub priority: Option<i32>,
85 #[serde(rename = "labels", skip_serializing_if = "Option::is_none")]
86 pub labels: Option<Vec<String>>,
87 #[serde(rename = "self_wait_time_ms", skip_serializing_if = "Option::is_none")]
88 pub self_wait_time_ms: Option<f64>,
89 #[serde(rename = "aggregate_wait_time_ms", skip_serializing_if = "Option::is_none")]
90 pub aggregate_wait_time_ms: Option<f64>,
91 #[serde(rename = "preprocessed", skip_serializing_if = "Option::is_none")]
92 pub preprocessed: Option<bool>,
93 #[serde(rename = "is_retry", skip_serializing_if = "Option::is_none")]
94 pub is_retry: Option<bool>,
95 #[serde(rename = "resolved", skip_serializing_if = "Option::is_none")]
97 pub resolved: Option<bool>,
98 #[serde(rename = "resolved_by", skip_serializing_if = "Option::is_none")]
100 pub resolved_by: Option<String>,
101 #[serde(rename = "resolved_at", skip_serializing_if = "Option::is_none")]
102 pub resolved_at: Option<String>,
103 #[serde(rename = "resolution_note", skip_serializing_if = "Option::is_none")]
104 pub resolution_note: Option<String>,
105 #[serde(rename = "resolved_automatically", skip_serializing_if = "Option::is_none")]
107 pub resolved_automatically: Option<bool>,
108 #[serde(rename = "trigger_kind", skip_serializing_if = "Option::is_none")]
109 pub trigger_kind: Option<models::JobTriggerKind>,
110 #[serde(rename = "trigger_path", skip_serializing_if = "Option::is_none")]
112 pub trigger_path: Option<String>,
113 #[serde(rename = "worker", skip_serializing_if = "Option::is_none")]
114 pub worker: Option<String>,
115 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
116 pub r#type: Option<Type>,
117}
118
119impl JobOneOf {
120 pub fn new(id: uuid::Uuid, created_by: String, created_at: String, started_at: String, duration_ms: i32, success: bool, canceled: bool, job_kind: JobKind, permissioned_as: String, is_flow_step: bool, is_skipped: bool, email: String, visible_to_owner: bool, tag: String) -> JobOneOf {
121 JobOneOf {
122 workspace_id: None,
123 id,
124 parent_job: None,
125 created_by,
126 created_at,
127 started_at,
128 completed_at: None,
129 duration_ms,
130 success,
131 script_path: None,
132 script_hash: None,
133 args: None,
134 result: None,
135 logs: None,
136 deleted: None,
137 raw_code: None,
138 canceled,
139 canceled_by: None,
140 canceled_reason: None,
141 job_kind,
142 schedule_path: None,
143 permissioned_as,
144 flow_status: None,
145 workflow_as_code_status: None,
146 raw_flow: None,
147 is_flow_step,
148 language: None,
149 is_skipped,
150 email,
151 visible_to_owner,
152 mem_peak: None,
153 tag,
154 priority: None,
155 labels: None,
156 self_wait_time_ms: None,
157 aggregate_wait_time_ms: None,
158 preprocessed: None,
159 is_retry: None,
160 resolved: None,
161 resolved_by: None,
162 resolved_at: None,
163 resolution_note: None,
164 resolved_automatically: None,
165 trigger_kind: None,
166 trigger_path: None,
167 worker: None,
168 r#type: None,
169 }
170 }
171}
172#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
174pub enum JobKind {
175 #[serde(rename = "script")]
176 Script,
177 #[serde(rename = "preview")]
178 Preview,
179 #[serde(rename = "dependencies")]
180 Dependencies,
181 #[serde(rename = "flow")]
182 Flow,
183 #[serde(rename = "flowdependencies")]
184 Flowdependencies,
185 #[serde(rename = "appdependencies")]
186 Appdependencies,
187 #[serde(rename = "flowpreview")]
188 Flowpreview,
189 #[serde(rename = "script_hub")]
190 ScriptHub,
191 #[serde(rename = "identity")]
192 Identity,
193 #[serde(rename = "deploymentcallback")]
194 Deploymentcallback,
195 #[serde(rename = "singlestepflow")]
196 Singlestepflow,
197 #[serde(rename = "flowscript")]
198 Flowscript,
199 #[serde(rename = "flownode")]
200 Flownode,
201 #[serde(rename = "appscript")]
202 Appscript,
203 #[serde(rename = "aiagent")]
204 Aiagent,
205 #[serde(rename = "unassigned_script")]
206 UnassignedScript,
207 #[serde(rename = "unassigned_flow")]
208 UnassignedFlow,
209 #[serde(rename = "unassigned_singlestepflow")]
210 UnassignedSinglestepflow,
211}
212
213impl Default for JobKind {
214 fn default() -> JobKind {
215 Self::Script
216 }
217}
218#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
220pub enum Type {
221 #[serde(rename = "CompletedJob")]
222 CompletedJob,
223}
224
225impl Default for Type {
226 fn default() -> Type {
227 Self::CompletedJob
228 }
229}
230