windmill_api/models/
exportable_completed_job.rs

1/*
2 * Windmill API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: 1.592.1
7 * Contact: contact@windmill.dev
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// ExportableCompletedJob : Completed job with full data for export/import operations
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct ExportableCompletedJob {
17    #[serde(rename = "id")]
18    pub id: uuid::Uuid,
19    #[serde(rename = "parent_job", skip_serializing_if = "Option::is_none")]
20    pub parent_job: Option<uuid::Uuid>,
21    #[serde(rename = "created_by")]
22    pub created_by: String,
23    #[serde(rename = "created_at")]
24    pub created_at: String,
25    #[serde(rename = "started_at", skip_serializing_if = "Option::is_none")]
26    pub started_at: Option<String>,
27    #[serde(rename = "completed_at", skip_serializing_if = "Option::is_none")]
28    pub completed_at: Option<String>,
29    #[serde(rename = "duration_ms", skip_serializing_if = "Option::is_none")]
30    pub duration_ms: Option<i32>,
31    #[serde(rename = "script_path", skip_serializing_if = "Option::is_none")]
32    pub script_path: Option<String>,
33    #[serde(rename = "script_hash", skip_serializing_if = "Option::is_none")]
34    pub script_hash: Option<String>,
35    /// Full job arguments without size restrictions
36    #[serde(rename = "args", skip_serializing_if = "Option::is_none")]
37    pub args: Option<serde_json::Value>,
38    /// Full job result without size restrictions
39    #[serde(rename = "result", skip_serializing_if = "Option::is_none")]
40    pub result: Option<serde_json::Value>,
41    /// Complete job logs from v2_job table
42    #[serde(rename = "logs", skip_serializing_if = "Option::is_none")]
43    pub logs: Option<String>,
44    #[serde(rename = "raw_code", skip_serializing_if = "Option::is_none")]
45    pub raw_code: Option<String>,
46    #[serde(rename = "raw_lock", skip_serializing_if = "Option::is_none")]
47    pub raw_lock: Option<String>,
48    #[serde(rename = "canceled_by", skip_serializing_if = "Option::is_none")]
49    pub canceled_by: Option<String>,
50    #[serde(rename = "canceled_reason", skip_serializing_if = "Option::is_none")]
51    pub canceled_reason: Option<String>,
52    #[serde(rename = "job_kind")]
53    pub job_kind: JobKind,
54    /// Trigger path for the job (replaces schedule_path)
55    #[serde(rename = "trigger", skip_serializing_if = "Option::is_none")]
56    pub trigger: Option<String>,
57    #[serde(rename = "trigger_kind", skip_serializing_if = "Option::is_none")]
58    pub trigger_kind: Option<TriggerKind>,
59    #[serde(rename = "permissioned_as")]
60    pub permissioned_as: String,
61    #[serde(rename = "permissioned_as_email", skip_serializing_if = "Option::is_none")]
62    pub permissioned_as_email: Option<String>,
63    /// Flow status from v2_job_status table
64    #[serde(rename = "flow_status", skip_serializing_if = "Option::is_none")]
65    pub flow_status: Option<serde_json::Value>,
66    #[serde(rename = "workflow_as_code_status", skip_serializing_if = "Option::is_none")]
67    pub workflow_as_code_status: Option<serde_json::Value>,
68    #[serde(rename = "raw_flow", skip_serializing_if = "Option::is_none")]
69    pub raw_flow: Option<serde_json::Value>,
70    #[serde(rename = "is_flow_step", skip_serializing_if = "Option::is_none")]
71    pub is_flow_step: Option<bool>,
72    #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
73    pub language: Option<models::ScriptLang>,
74    #[serde(rename = "is_skipped", skip_serializing_if = "Option::is_none")]
75    pub is_skipped: Option<bool>,
76    #[serde(rename = "email")]
77    pub email: String,
78    #[serde(rename = "visible_to_owner")]
79    pub visible_to_owner: bool,
80    #[serde(rename = "mem_peak", skip_serializing_if = "Option::is_none")]
81    pub mem_peak: Option<i32>,
82    #[serde(rename = "tag", skip_serializing_if = "Option::is_none")]
83    pub tag: Option<String>,
84    #[serde(rename = "priority", skip_serializing_if = "Option::is_none")]
85    pub priority: Option<i32>,
86    #[serde(rename = "labels", skip_serializing_if = "Option::is_none")]
87    pub labels: Option<Vec<String>>,
88    #[serde(rename = "same_worker", skip_serializing_if = "Option::is_none")]
89    pub same_worker: Option<bool>,
90    #[serde(rename = "flow_step_id", skip_serializing_if = "Option::is_none")]
91    pub flow_step_id: Option<String>,
92    #[serde(rename = "flow_innermost_root_job", skip_serializing_if = "Option::is_none")]
93    pub flow_innermost_root_job: Option<uuid::Uuid>,
94    #[serde(rename = "concurrent_limit", skip_serializing_if = "Option::is_none")]
95    pub concurrent_limit: Option<i32>,
96    #[serde(rename = "concurrency_time_window_s", skip_serializing_if = "Option::is_none")]
97    pub concurrency_time_window_s: Option<i32>,
98    #[serde(rename = "timeout", skip_serializing_if = "Option::is_none")]
99    pub timeout: Option<i32>,
100    #[serde(rename = "cache_ttl", skip_serializing_if = "Option::is_none")]
101    pub cache_ttl: Option<i32>,
102    #[serde(rename = "self_wait_time_ms", skip_serializing_if = "Option::is_none")]
103    pub self_wait_time_ms: Option<i32>,
104    #[serde(rename = "aggregate_wait_time_ms", skip_serializing_if = "Option::is_none")]
105    pub aggregate_wait_time_ms: Option<i32>,
106    #[serde(rename = "preprocessed", skip_serializing_if = "Option::is_none")]
107    pub preprocessed: Option<bool>,
108    #[serde(rename = "worker", skip_serializing_if = "Option::is_none")]
109    pub worker: Option<String>,
110    /// Actual job status from database
111    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
112    pub status: Option<String>,
113}
114
115impl ExportableCompletedJob {
116    /// Completed job with full data for export/import operations
117    pub fn new(id: uuid::Uuid, created_by: String, created_at: String, job_kind: JobKind, permissioned_as: String, email: String, visible_to_owner: bool) -> ExportableCompletedJob {
118        ExportableCompletedJob {
119            id,
120            parent_job: None,
121            created_by,
122            created_at,
123            started_at: None,
124            completed_at: None,
125            duration_ms: None,
126            script_path: None,
127            script_hash: None,
128            args: None,
129            result: None,
130            logs: None,
131            raw_code: None,
132            raw_lock: None,
133            canceled_by: None,
134            canceled_reason: None,
135            job_kind,
136            trigger: None,
137            trigger_kind: None,
138            permissioned_as,
139            permissioned_as_email: None,
140            flow_status: None,
141            workflow_as_code_status: None,
142            raw_flow: None,
143            is_flow_step: None,
144            language: None,
145            is_skipped: None,
146            email,
147            visible_to_owner,
148            mem_peak: None,
149            tag: None,
150            priority: None,
151            labels: None,
152            same_worker: None,
153            flow_step_id: None,
154            flow_innermost_root_job: None,
155            concurrent_limit: None,
156            concurrency_time_window_s: None,
157            timeout: None,
158            cache_ttl: None,
159            self_wait_time_ms: None,
160            aggregate_wait_time_ms: None,
161            preprocessed: None,
162            worker: None,
163            status: None,
164        }
165    }
166}
167/// 
168#[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/// 
214#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
215pub enum TriggerKind {
216    #[serde(rename = "webhook")]
217    Webhook,
218    #[serde(rename = "http")]
219    Http,
220    #[serde(rename = "websocket")]
221    Websocket,
222    #[serde(rename = "kafka")]
223    Kafka,
224    #[serde(rename = "email")]
225    Email,
226    #[serde(rename = "nats")]
227    Nats,
228    #[serde(rename = "schedule")]
229    Schedule,
230    #[serde(rename = "app")]
231    App,
232    #[serde(rename = "ui")]
233    Ui,
234    #[serde(rename = "postgres")]
235    Postgres,
236    #[serde(rename = "sqs")]
237    Sqs,
238    #[serde(rename = "gcp")]
239    Gcp,
240}
241
242impl Default for TriggerKind {
243    fn default() -> TriggerKind {
244        Self::Webhook
245    }
246}
247