windmill_api/models/
new_schedule.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct NewSchedule {
16 #[serde(rename = "path")]
18 pub path: String,
19 #[serde(rename = "schedule")]
21 pub schedule: String,
22 #[serde(rename = "timezone")]
24 pub timezone: String,
25 #[serde(rename = "script_path")]
27 pub script_path: String,
28 #[serde(rename = "is_flow")]
30 pub is_flow: bool,
31 #[serde(rename = "args")]
33 pub args: std::collections::HashMap<String, serde_json::Value>,
34 #[serde(rename = "enabled", skip_serializing_if = "Option::is_none")]
36 pub enabled: Option<bool>,
37 #[serde(rename = "on_failure", skip_serializing_if = "Option::is_none")]
39 pub on_failure: Option<String>,
40 #[serde(rename = "on_failure_times", skip_serializing_if = "Option::is_none")]
42 pub on_failure_times: Option<f64>,
43 #[serde(rename = "on_failure_exact", skip_serializing_if = "Option::is_none")]
45 pub on_failure_exact: Option<bool>,
46 #[serde(rename = "on_failure_extra_args", skip_serializing_if = "Option::is_none")]
48 pub on_failure_extra_args: Option<std::collections::HashMap<String, serde_json::Value>>,
49 #[serde(rename = "on_recovery", skip_serializing_if = "Option::is_none")]
51 pub on_recovery: Option<String>,
52 #[serde(rename = "on_recovery_times", skip_serializing_if = "Option::is_none")]
54 pub on_recovery_times: Option<f64>,
55 #[serde(rename = "on_recovery_extra_args", skip_serializing_if = "Option::is_none")]
57 pub on_recovery_extra_args: Option<std::collections::HashMap<String, serde_json::Value>>,
58 #[serde(rename = "on_success", skip_serializing_if = "Option::is_none")]
60 pub on_success: Option<String>,
61 #[serde(rename = "on_success_extra_args", skip_serializing_if = "Option::is_none")]
63 pub on_success_extra_args: Option<std::collections::HashMap<String, serde_json::Value>>,
64 #[serde(rename = "ws_error_handler_muted", skip_serializing_if = "Option::is_none")]
66 pub ws_error_handler_muted: Option<bool>,
67 #[serde(rename = "retry", skip_serializing_if = "Option::is_none")]
68 pub retry: Option<Box<models::Retry>>,
69 #[serde(rename = "no_flow_overlap", skip_serializing_if = "Option::is_none")]
71 pub no_flow_overlap: Option<bool>,
72 #[serde(rename = "summary", skip_serializing_if = "Option::is_none")]
74 pub summary: Option<String>,
75 #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
77 pub description: Option<String>,
78 #[serde(rename = "tag", skip_serializing_if = "Option::is_none")]
80 pub tag: Option<String>,
81 #[serde(rename = "paused_until", skip_serializing_if = "Option::is_none")]
83 pub paused_until: Option<String>,
84 #[serde(rename = "cron_version", skip_serializing_if = "Option::is_none")]
86 pub cron_version: Option<String>,
87}
88
89impl NewSchedule {
90 pub fn new(path: String, schedule: String, timezone: String, script_path: String, is_flow: bool, args: std::collections::HashMap<String, serde_json::Value>) -> NewSchedule {
91 NewSchedule {
92 path,
93 schedule,
94 timezone,
95 script_path,
96 is_flow,
97 args,
98 enabled: None,
99 on_failure: None,
100 on_failure_times: None,
101 on_failure_exact: None,
102 on_failure_extra_args: None,
103 on_recovery: None,
104 on_recovery_times: None,
105 on_recovery_extra_args: None,
106 on_success: None,
107 on_success_extra_args: None,
108 ws_error_handler_muted: None,
109 retry: None,
110 no_flow_overlap: None,
111 summary: None,
112 description: None,
113 tag: None,
114 paused_until: None,
115 cron_version: None,
116 }
117 }
118}
119