Skip to main content

windmill_api/models/
raw_script.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.864.0
7 * Contact: contact@windmill.dev
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// RawScript : Inline script with code defined directly in the flow. Use 'bun' as default language if unspecified. The script receives arguments from input_transforms
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct RawScript {
17    /// Map of parameter names to their values (static or JavaScript expressions). These become the script's input arguments
18    #[serde(rename = "input_transforms")]
19    pub input_transforms: std::collections::HashMap<String, models::InputTransform>,
20    /// The script source code. Should export a 'main' function
21    #[serde(rename = "content")]
22    pub content: String,
23    /// Programming language for this script
24    #[serde(rename = "language")]
25    pub language: Language,
26    /// Optional path for saving this script
27    #[serde(rename = "path", skip_serializing_if = "Option::is_none")]
28    pub path: Option<String>,
29    /// Lock file content for dependencies
30    #[serde(rename = "lock", skip_serializing_if = "Option::is_none")]
31    pub lock: Option<String>,
32    #[serde(rename = "type")]
33    pub r#type: Type,
34    /// Worker group tag for execution routing
35    #[serde(rename = "tag", skip_serializing_if = "Option::is_none")]
36    pub tag: Option<String>,
37    /// Maximum concurrent executions of this script
38    #[serde(rename = "concurrent_limit", skip_serializing_if = "Option::is_none")]
39    pub concurrent_limit: Option<f64>,
40    /// Time window for concurrent_limit
41    #[serde(rename = "concurrency_time_window_s", skip_serializing_if = "Option::is_none")]
42    pub concurrency_time_window_s: Option<f64>,
43    /// What a run of this step does when its concurrency limit is reached. `queue` (default) re-queues it to a later slot, `fail` ends it immediately as failed.
44    #[serde(rename = "on_concurrency_limit", skip_serializing_if = "Option::is_none")]
45    pub on_concurrency_limit: Option<OnConcurrencyLimit>,
46    /// Custom key for grouping concurrent executions
47    #[serde(rename = "custom_concurrency_key", skip_serializing_if = "Option::is_none")]
48    pub custom_concurrency_key: Option<String>,
49    /// If true, this script is a trigger that can start the flow
50    #[serde(rename = "is_trigger", skip_serializing_if = "Option::is_none")]
51    pub is_trigger: Option<bool>,
52    /// External resources this script accesses (S3 objects, resources, etc.)
53    #[serde(rename = "assets", skip_serializing_if = "Option::is_none")]
54    pub assets: Option<Vec<models::RawScriptAssetsInner>>,
55}
56
57impl RawScript {
58    /// Inline script with code defined directly in the flow. Use 'bun' as default language if unspecified. The script receives arguments from input_transforms
59    pub fn new(input_transforms: std::collections::HashMap<String, models::InputTransform>, content: String, language: Language, r#type: Type) -> RawScript {
60        RawScript {
61            input_transforms,
62            content,
63            language,
64            path: None,
65            lock: None,
66            r#type,
67            tag: None,
68            concurrent_limit: None,
69            concurrency_time_window_s: None,
70            on_concurrency_limit: None,
71            custom_concurrency_key: None,
72            is_trigger: None,
73            assets: None,
74        }
75    }
76}
77/// Programming language for this script
78#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
79pub enum Language {
80    #[serde(rename = "deno")]
81    Deno,
82    #[serde(rename = "bun")]
83    Bun,
84    #[serde(rename = "bunnative")]
85    Bunnative,
86    #[serde(rename = "python3")]
87    Python3,
88    #[serde(rename = "go")]
89    Go,
90    #[serde(rename = "bash")]
91    Bash,
92    #[serde(rename = "powershell")]
93    Powershell,
94    #[serde(rename = "postgresql")]
95    Postgresql,
96    #[serde(rename = "mysql")]
97    Mysql,
98    #[serde(rename = "bigquery")]
99    Bigquery,
100    #[serde(rename = "snowflake")]
101    Snowflake,
102    #[serde(rename = "mssql")]
103    Mssql,
104    #[serde(rename = "oracledb")]
105    Oracledb,
106    #[serde(rename = "graphql")]
107    Graphql,
108    #[serde(rename = "nativets")]
109    Nativets,
110    #[serde(rename = "php")]
111    Php,
112    #[serde(rename = "rust")]
113    Rust,
114    #[serde(rename = "ansible")]
115    Ansible,
116    #[serde(rename = "csharp")]
117    Csharp,
118    #[serde(rename = "nu")]
119    Nu,
120    #[serde(rename = "java")]
121    Java,
122    #[serde(rename = "ruby")]
123    Ruby,
124    #[serde(rename = "rlang")]
125    Rlang,
126    #[serde(rename = "duckdb")]
127    Duckdb,
128}
129
130impl Default for Language {
131    fn default() -> Language {
132        Self::Deno
133    }
134}
135/// 
136#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
137pub enum Type {
138    #[serde(rename = "rawscript")]
139    Rawscript,
140}
141
142impl Default for Type {
143    fn default() -> Type {
144        Self::Rawscript
145    }
146}
147/// What a run of this step does when its concurrency limit is reached. `queue` (default) re-queues it to a later slot, `fail` ends it immediately as failed.
148#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
149pub enum OnConcurrencyLimit {
150    #[serde(rename = "queue")]
151    Queue,
152    #[serde(rename = "fail")]
153    Fail,
154}
155
156impl Default for OnConcurrencyLimit {
157    fn default() -> OnConcurrencyLimit {
158        Self::Queue
159    }
160}
161