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