windmill_api/models/
exportable_queued_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/// ExportableQueuedJob : Queued job with full data for export/import operations
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct ExportableQueuedJob {
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 = "scheduled_for", skip_serializing_if = "Option::is_none")]
28    pub scheduled_for: Option<String>,
29    #[serde(rename = "script_path", skip_serializing_if = "Option::is_none")]
30    pub script_path: Option<String>,
31    #[serde(rename = "script_hash", skip_serializing_if = "Option::is_none")]
32    pub script_hash: Option<String>,
33    /// Full job arguments without size restrictions
34    #[serde(rename = "args", skip_serializing_if = "Option::is_none")]
35    pub args: Option<serde_json::Value>,
36    /// Complete job logs from v2_job table
37    #[serde(rename = "logs", skip_serializing_if = "Option::is_none")]
38    pub logs: Option<String>,
39    #[serde(rename = "raw_code", skip_serializing_if = "Option::is_none")]
40    pub raw_code: Option<String>,
41    #[serde(rename = "raw_lock", skip_serializing_if = "Option::is_none")]
42    pub raw_lock: Option<String>,
43    #[serde(rename = "canceled_by", skip_serializing_if = "Option::is_none")]
44    pub canceled_by: Option<String>,
45    #[serde(rename = "canceled_reason", skip_serializing_if = "Option::is_none")]
46    pub canceled_reason: Option<String>,
47    #[serde(rename = "job_kind")]
48    pub job_kind: JobKind,
49    /// Trigger path for the job (replaces schedule_path)
50    #[serde(rename = "trigger", skip_serializing_if = "Option::is_none")]
51    pub trigger: Option<String>,
52    #[serde(rename = "trigger_kind", skip_serializing_if = "Option::is_none")]
53    pub trigger_kind: Option<TriggerKind>,
54    #[serde(rename = "permissioned_as")]
55    pub permissioned_as: String,
56    #[serde(rename = "permissioned_as_email", skip_serializing_if = "Option::is_none")]
57    pub permissioned_as_email: Option<String>,
58    /// Flow status from v2_job_status table
59    #[serde(rename = "flow_status", skip_serializing_if = "Option::is_none")]
60    pub flow_status: Option<serde_json::Value>,
61    #[serde(rename = "workflow_as_code_status", skip_serializing_if = "Option::is_none")]
62    pub workflow_as_code_status: Option<serde_json::Value>,
63    #[serde(rename = "raw_flow", skip_serializing_if = "Option::is_none")]
64    pub raw_flow: Option<serde_json::Value>,
65    #[serde(rename = "is_flow_step", skip_serializing_if = "Option::is_none")]
66    pub is_flow_step: Option<bool>,
67    #[serde(rename = "language", skip_serializing_if = "Option::is_none")]
68    pub language: Option<models::ScriptLang>,
69    #[serde(rename = "email")]
70    pub email: String,
71    #[serde(rename = "visible_to_owner")]
72    pub visible_to_owner: bool,
73    #[serde(rename = "mem_peak", skip_serializing_if = "Option::is_none")]
74    pub mem_peak: Option<i32>,
75    #[serde(rename = "tag", skip_serializing_if = "Option::is_none")]
76    pub tag: Option<String>,
77    #[serde(rename = "priority", skip_serializing_if = "Option::is_none")]
78    pub priority: Option<i32>,
79    #[serde(rename = "labels", skip_serializing_if = "Option::is_none")]
80    pub labels: Option<Vec<String>>,
81    #[serde(rename = "same_worker", skip_serializing_if = "Option::is_none")]
82    pub same_worker: Option<bool>,
83    #[serde(rename = "flow_step_id", skip_serializing_if = "Option::is_none")]
84    pub flow_step_id: Option<String>,
85    #[serde(rename = "flow_innermost_root_job", skip_serializing_if = "Option::is_none")]
86    pub flow_innermost_root_job: Option<uuid::Uuid>,
87    #[serde(rename = "concurrent_limit", skip_serializing_if = "Option::is_none")]
88    pub concurrent_limit: Option<i32>,
89    #[serde(rename = "concurrency_time_window_s", skip_serializing_if = "Option::is_none")]
90    pub concurrency_time_window_s: Option<i32>,
91    #[serde(rename = "timeout", skip_serializing_if = "Option::is_none")]
92    pub timeout: Option<i32>,
93    #[serde(rename = "cache_ttl", skip_serializing_if = "Option::is_none")]
94    pub cache_ttl: Option<i32>,
95    #[serde(rename = "self_wait_time_ms", skip_serializing_if = "Option::is_none")]
96    pub self_wait_time_ms: Option<i32>,
97    #[serde(rename = "aggregate_wait_time_ms", skip_serializing_if = "Option::is_none")]
98    pub aggregate_wait_time_ms: Option<i32>,
99    #[serde(rename = "preprocessed", skip_serializing_if = "Option::is_none")]
100    pub preprocessed: Option<bool>,
101    #[serde(rename = "suspend", skip_serializing_if = "Option::is_none")]
102    pub suspend: Option<i32>,
103    #[serde(rename = "suspend_until", skip_serializing_if = "Option::is_none")]
104    pub suspend_until: Option<String>,
105}
106
107impl ExportableQueuedJob {
108    /// Queued job with full data for export/import operations
109    pub fn new(id: uuid::Uuid, created_by: String, created_at: String, job_kind: JobKind, permissioned_as: String, email: String, visible_to_owner: bool) -> ExportableQueuedJob {
110        ExportableQueuedJob {
111            id,
112            parent_job: None,
113            created_by,
114            created_at,
115            started_at: None,
116            scheduled_for: None,
117            script_path: None,
118            script_hash: None,
119            args: None,
120            logs: None,
121            raw_code: None,
122            raw_lock: None,
123            canceled_by: None,
124            canceled_reason: None,
125            job_kind,
126            trigger: None,
127            trigger_kind: None,
128            permissioned_as,
129            permissioned_as_email: None,
130            flow_status: None,
131            workflow_as_code_status: None,
132            raw_flow: None,
133            is_flow_step: None,
134            language: None,
135            email,
136            visible_to_owner,
137            mem_peak: None,
138            tag: None,
139            priority: None,
140            labels: None,
141            same_worker: None,
142            flow_step_id: None,
143            flow_innermost_root_job: None,
144            concurrent_limit: None,
145            concurrency_time_window_s: None,
146            timeout: None,
147            cache_ttl: None,
148            self_wait_time_ms: None,
149            aggregate_wait_time_ms: None,
150            preprocessed: None,
151            suspend: None,
152            suspend_until: None,
153        }
154    }
155}
156/// 
157#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
158pub enum JobKind {
159    #[serde(rename = "script")]
160    Script,
161    #[serde(rename = "preview")]
162    Preview,
163    #[serde(rename = "dependencies")]
164    Dependencies,
165    #[serde(rename = "flowdependencies")]
166    Flowdependencies,
167    #[serde(rename = "appdependencies")]
168    Appdependencies,
169    #[serde(rename = "flow")]
170    Flow,
171    #[serde(rename = "flowpreview")]
172    Flowpreview,
173    #[serde(rename = "script_hub")]
174    ScriptHub,
175    #[serde(rename = "identity")]
176    Identity,
177    #[serde(rename = "deploymentcallback")]
178    Deploymentcallback,
179    #[serde(rename = "singlestepflow")]
180    Singlestepflow,
181    #[serde(rename = "flowscript")]
182    Flowscript,
183    #[serde(rename = "flownode")]
184    Flownode,
185    #[serde(rename = "appscript")]
186    Appscript,
187    #[serde(rename = "aiagent")]
188    Aiagent,
189    #[serde(rename = "unassigned_script")]
190    UnassignedScript,
191    #[serde(rename = "unassigned_flow")]
192    UnassignedFlow,
193    #[serde(rename = "unassigned_singlestepflow")]
194    UnassignedSinglestepflow,
195}
196
197impl Default for JobKind {
198    fn default() -> JobKind {
199        Self::Script
200    }
201}
202/// 
203#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
204pub enum TriggerKind {
205    #[serde(rename = "webhook")]
206    Webhook,
207    #[serde(rename = "http")]
208    Http,
209    #[serde(rename = "websocket")]
210    Websocket,
211    #[serde(rename = "kafka")]
212    Kafka,
213    #[serde(rename = "email")]
214    Email,
215    #[serde(rename = "nats")]
216    Nats,
217    #[serde(rename = "schedule")]
218    Schedule,
219    #[serde(rename = "app")]
220    App,
221    #[serde(rename = "ui")]
222    Ui,
223    #[serde(rename = "postgres")]
224    Postgres,
225    #[serde(rename = "sqs")]
226    Sqs,
227    #[serde(rename = "gcp")]
228    Gcp,
229}
230
231impl Default for TriggerKind {
232    fn default() -> TriggerKind {
233        Self::Webhook
234    }
235}
236