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