1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct RawScript {
17 #[serde(rename = "input_transforms")]
19 pub input_transforms: std::collections::HashMap<String, models::InputTransform>,
20 #[serde(rename = "content")]
22 pub content: String,
23 #[serde(rename = "language")]
25 pub language: Language,
26 #[serde(rename = "path", skip_serializing_if = "Option::is_none")]
28 pub path: Option<String>,
29 #[serde(rename = "lock", skip_serializing_if = "Option::is_none")]
31 pub lock: Option<String>,
32 #[serde(rename = "type")]
33 pub r#type: Type,
34 #[serde(rename = "tag", skip_serializing_if = "Option::is_none")]
36 pub tag: Option<String>,
37 #[serde(rename = "concurrent_limit", skip_serializing_if = "Option::is_none")]
39 pub concurrent_limit: Option<f64>,
40 #[serde(rename = "concurrency_time_window_s", skip_serializing_if = "Option::is_none")]
42 pub concurrency_time_window_s: Option<f64>,
43 #[serde(rename = "custom_concurrency_key", skip_serializing_if = "Option::is_none")]
45 pub custom_concurrency_key: Option<String>,
46 #[serde(rename = "is_trigger", skip_serializing_if = "Option::is_none")]
48 pub is_trigger: Option<bool>,
49 #[serde(rename = "assets", skip_serializing_if = "Option::is_none")]
51 pub assets: Option<Vec<models::RawScriptAssetsInner>>,
52}
53
54impl RawScript {
55 pub fn new(input_transforms: std::collections::HashMap<String, models::InputTransform>, content: String, language: Language, r#type: Type) -> RawScript {
57 RawScript {
58 input_transforms,
59 content,
60 language,
61 path: None,
62 lock: None,
63 r#type,
64 tag: None,
65 concurrent_limit: None,
66 concurrency_time_window_s: None,
67 custom_concurrency_key: None,
68 is_trigger: None,
69 assets: None,
70 }
71 }
72}
73#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
75pub enum Language {
76 #[serde(rename = "deno")]
77 Deno,
78 #[serde(rename = "bun")]
79 Bun,
80 #[serde(rename = "bunnative")]
81 Bunnative,
82 #[serde(rename = "python3")]
83 Python3,
84 #[serde(rename = "go")]
85 Go,
86 #[serde(rename = "bash")]
87 Bash,
88 #[serde(rename = "powershell")]
89 Powershell,
90 #[serde(rename = "postgresql")]
91 Postgresql,
92 #[serde(rename = "mysql")]
93 Mysql,
94 #[serde(rename = "bigquery")]
95 Bigquery,
96 #[serde(rename = "snowflake")]
97 Snowflake,
98 #[serde(rename = "mssql")]
99 Mssql,
100 #[serde(rename = "oracledb")]
101 Oracledb,
102 #[serde(rename = "graphql")]
103 Graphql,
104 #[serde(rename = "nativets")]
105 Nativets,
106 #[serde(rename = "php")]
107 Php,
108 #[serde(rename = "rust")]
109 Rust,
110 #[serde(rename = "ansible")]
111 Ansible,
112 #[serde(rename = "csharp")]
113 Csharp,
114 #[serde(rename = "nu")]
115 Nu,
116 #[serde(rename = "java")]
117 Java,
118 #[serde(rename = "ruby")]
119 Ruby,
120 #[serde(rename = "rlang")]
121 Rlang,
122 #[serde(rename = "duckdb")]
123 Duckdb,
124}
125
126impl Default for Language {
127 fn default() -> Language {
128 Self::Deno
129 }
130}
131#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
133pub enum Type {
134 #[serde(rename = "rawscript")]
135 Rawscript,
136}
137
138impl Default for Type {
139 fn default() -> Type {
140 Self::Rawscript
141 }
142}
143