aws_sdk_scheduler/operation/create_schedule/
_create_schedule_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct CreateScheduleInput {
6    /// <p>The name of the schedule that you are creating.</p>
7    pub name: ::std::option::Option<::std::string::String>,
8    /// <p>The name of the schedule group to associate with this schedule. If you omit this, the default schedule group is used.</p>
9    pub group_name: ::std::option::Option<::std::string::String>,
10    /// <p>The expression that defines when the schedule runs. The following formats are supported.</p>
11    /// <ul>
12    /// <li>
13    /// <p><code>at</code> expression - <code>at(yyyy-mm-ddThh:mm:ss)</code></p></li>
14    /// <li>
15    /// <p><code>rate</code> expression - <code>rate(value unit)</code></p></li>
16    /// <li>
17    /// <p><code>cron</code> expression - <code>cron(fields)</code></p></li>
18    /// </ul>
19    /// <p>You can use <code>at</code> expressions to create one-time schedules that invoke a target once, at the time and in the time zone, that you specify. You can use <code>rate</code> and <code>cron</code> expressions to create recurring schedules. Rate-based schedules are useful when you want to invoke a target at regular intervals, such as every 15 minutes or every five days. Cron-based schedules are useful when you want to invoke a target periodically at a specific time, such as at 8:00 am (UTC+0) every 1st day of the month.</p>
20    /// <p>A <code>cron</code> expression consists of six fields separated by white spaces: <code>(minutes hours day_of_month month day_of_week year)</code>.</p>
21    /// <p>A <code>rate</code> expression consists of a <i>value</i> as a positive integer, and a <i>unit</i> with the following options: <code>minute</code> | <code>minutes</code> | <code>hour</code> | <code>hours</code> | <code>day</code> | <code>days</code></p>
22    /// <p>For more information and examples, see <a href="https://docs.aws.amazon.com/scheduler/latest/UserGuide/schedule-types.html">Schedule types on EventBridge Scheduler</a> in the <i>EventBridge Scheduler User Guide</i>.</p>
23    pub schedule_expression: ::std::option::Option<::std::string::String>,
24    /// <p>The date, in UTC, after which the schedule can begin invoking its target. Depending on the schedule's recurrence expression, invocations might occur on, or after, the <code>StartDate</code> you specify. EventBridge Scheduler ignores <code>StartDate</code> for one-time schedules.</p>
25    pub start_date: ::std::option::Option<::aws_smithy_types::DateTime>,
26    /// <p>The date, in UTC, before which the schedule can invoke its target. Depending on the schedule's recurrence expression, invocations might stop on, or before, the <code>EndDate</code> you specify. EventBridge Scheduler ignores <code>EndDate</code> for one-time schedules.</p>
27    pub end_date: ::std::option::Option<::aws_smithy_types::DateTime>,
28    /// <p>The description you specify for the schedule.</p>
29    pub description: ::std::option::Option<::std::string::String>,
30    /// <p>The timezone in which the scheduling expression is evaluated.</p>
31    pub schedule_expression_timezone: ::std::option::Option<::std::string::String>,
32    /// <p>Specifies whether the schedule is enabled or disabled.</p>
33    pub state: ::std::option::Option<crate::types::ScheduleState>,
34    /// <p>The Amazon Resource Name (ARN) for the customer managed KMS key that EventBridge Scheduler will use to encrypt and decrypt your data.</p>
35    pub kms_key_arn: ::std::option::Option<::std::string::String>,
36    /// <p>The schedule's target.</p>
37    pub target: ::std::option::Option<crate::types::Target>,
38    /// <p>Allows you to configure a time window during which EventBridge Scheduler invokes the schedule.</p>
39    pub flexible_time_window: ::std::option::Option<crate::types::FlexibleTimeWindow>,
40    /// <p>Unique, case-sensitive identifier you provide to ensure the idempotency of the request. If you do not specify a client token, EventBridge Scheduler uses a randomly generated token for the request to ensure idempotency.</p>
41    pub client_token: ::std::option::Option<::std::string::String>,
42    /// <p>Specifies the action that EventBridge Scheduler applies to the schedule after the schedule completes invoking the target.</p>
43    pub action_after_completion: ::std::option::Option<crate::types::ActionAfterCompletion>,
44}
45impl CreateScheduleInput {
46    /// <p>The name of the schedule that you are creating.</p>
47    pub fn name(&self) -> ::std::option::Option<&str> {
48        self.name.as_deref()
49    }
50    /// <p>The name of the schedule group to associate with this schedule. If you omit this, the default schedule group is used.</p>
51    pub fn group_name(&self) -> ::std::option::Option<&str> {
52        self.group_name.as_deref()
53    }
54    /// <p>The expression that defines when the schedule runs. The following formats are supported.</p>
55    /// <ul>
56    /// <li>
57    /// <p><code>at</code> expression - <code>at(yyyy-mm-ddThh:mm:ss)</code></p></li>
58    /// <li>
59    /// <p><code>rate</code> expression - <code>rate(value unit)</code></p></li>
60    /// <li>
61    /// <p><code>cron</code> expression - <code>cron(fields)</code></p></li>
62    /// </ul>
63    /// <p>You can use <code>at</code> expressions to create one-time schedules that invoke a target once, at the time and in the time zone, that you specify. You can use <code>rate</code> and <code>cron</code> expressions to create recurring schedules. Rate-based schedules are useful when you want to invoke a target at regular intervals, such as every 15 minutes or every five days. Cron-based schedules are useful when you want to invoke a target periodically at a specific time, such as at 8:00 am (UTC+0) every 1st day of the month.</p>
64    /// <p>A <code>cron</code> expression consists of six fields separated by white spaces: <code>(minutes hours day_of_month month day_of_week year)</code>.</p>
65    /// <p>A <code>rate</code> expression consists of a <i>value</i> as a positive integer, and a <i>unit</i> with the following options: <code>minute</code> | <code>minutes</code> | <code>hour</code> | <code>hours</code> | <code>day</code> | <code>days</code></p>
66    /// <p>For more information and examples, see <a href="https://docs.aws.amazon.com/scheduler/latest/UserGuide/schedule-types.html">Schedule types on EventBridge Scheduler</a> in the <i>EventBridge Scheduler User Guide</i>.</p>
67    pub fn schedule_expression(&self) -> ::std::option::Option<&str> {
68        self.schedule_expression.as_deref()
69    }
70    /// <p>The date, in UTC, after which the schedule can begin invoking its target. Depending on the schedule's recurrence expression, invocations might occur on, or after, the <code>StartDate</code> you specify. EventBridge Scheduler ignores <code>StartDate</code> for one-time schedules.</p>
71    pub fn start_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
72        self.start_date.as_ref()
73    }
74    /// <p>The date, in UTC, before which the schedule can invoke its target. Depending on the schedule's recurrence expression, invocations might stop on, or before, the <code>EndDate</code> you specify. EventBridge Scheduler ignores <code>EndDate</code> for one-time schedules.</p>
75    pub fn end_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
76        self.end_date.as_ref()
77    }
78    /// <p>The description you specify for the schedule.</p>
79    pub fn description(&self) -> ::std::option::Option<&str> {
80        self.description.as_deref()
81    }
82    /// <p>The timezone in which the scheduling expression is evaluated.</p>
83    pub fn schedule_expression_timezone(&self) -> ::std::option::Option<&str> {
84        self.schedule_expression_timezone.as_deref()
85    }
86    /// <p>Specifies whether the schedule is enabled or disabled.</p>
87    pub fn state(&self) -> ::std::option::Option<&crate::types::ScheduleState> {
88        self.state.as_ref()
89    }
90    /// <p>The Amazon Resource Name (ARN) for the customer managed KMS key that EventBridge Scheduler will use to encrypt and decrypt your data.</p>
91    pub fn kms_key_arn(&self) -> ::std::option::Option<&str> {
92        self.kms_key_arn.as_deref()
93    }
94    /// <p>The schedule's target.</p>
95    pub fn target(&self) -> ::std::option::Option<&crate::types::Target> {
96        self.target.as_ref()
97    }
98    /// <p>Allows you to configure a time window during which EventBridge Scheduler invokes the schedule.</p>
99    pub fn flexible_time_window(&self) -> ::std::option::Option<&crate::types::FlexibleTimeWindow> {
100        self.flexible_time_window.as_ref()
101    }
102    /// <p>Unique, case-sensitive identifier you provide to ensure the idempotency of the request. If you do not specify a client token, EventBridge Scheduler uses a randomly generated token for the request to ensure idempotency.</p>
103    pub fn client_token(&self) -> ::std::option::Option<&str> {
104        self.client_token.as_deref()
105    }
106    /// <p>Specifies the action that EventBridge Scheduler applies to the schedule after the schedule completes invoking the target.</p>
107    pub fn action_after_completion(&self) -> ::std::option::Option<&crate::types::ActionAfterCompletion> {
108        self.action_after_completion.as_ref()
109    }
110}
111impl CreateScheduleInput {
112    /// Creates a new builder-style object to manufacture [`CreateScheduleInput`](crate::operation::create_schedule::CreateScheduleInput).
113    pub fn builder() -> crate::operation::create_schedule::builders::CreateScheduleInputBuilder {
114        crate::operation::create_schedule::builders::CreateScheduleInputBuilder::default()
115    }
116}
117
118/// A builder for [`CreateScheduleInput`](crate::operation::create_schedule::CreateScheduleInput).
119#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
120#[non_exhaustive]
121pub struct CreateScheduleInputBuilder {
122    pub(crate) name: ::std::option::Option<::std::string::String>,
123    pub(crate) group_name: ::std::option::Option<::std::string::String>,
124    pub(crate) schedule_expression: ::std::option::Option<::std::string::String>,
125    pub(crate) start_date: ::std::option::Option<::aws_smithy_types::DateTime>,
126    pub(crate) end_date: ::std::option::Option<::aws_smithy_types::DateTime>,
127    pub(crate) description: ::std::option::Option<::std::string::String>,
128    pub(crate) schedule_expression_timezone: ::std::option::Option<::std::string::String>,
129    pub(crate) state: ::std::option::Option<crate::types::ScheduleState>,
130    pub(crate) kms_key_arn: ::std::option::Option<::std::string::String>,
131    pub(crate) target: ::std::option::Option<crate::types::Target>,
132    pub(crate) flexible_time_window: ::std::option::Option<crate::types::FlexibleTimeWindow>,
133    pub(crate) client_token: ::std::option::Option<::std::string::String>,
134    pub(crate) action_after_completion: ::std::option::Option<crate::types::ActionAfterCompletion>,
135}
136impl CreateScheduleInputBuilder {
137    /// <p>The name of the schedule that you are creating.</p>
138    /// This field is required.
139    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
140        self.name = ::std::option::Option::Some(input.into());
141        self
142    }
143    /// <p>The name of the schedule that you are creating.</p>
144    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
145        self.name = input;
146        self
147    }
148    /// <p>The name of the schedule that you are creating.</p>
149    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
150        &self.name
151    }
152    /// <p>The name of the schedule group to associate with this schedule. If you omit this, the default schedule group is used.</p>
153    pub fn group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
154        self.group_name = ::std::option::Option::Some(input.into());
155        self
156    }
157    /// <p>The name of the schedule group to associate with this schedule. If you omit this, the default schedule group is used.</p>
158    pub fn set_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
159        self.group_name = input;
160        self
161    }
162    /// <p>The name of the schedule group to associate with this schedule. If you omit this, the default schedule group is used.</p>
163    pub fn get_group_name(&self) -> &::std::option::Option<::std::string::String> {
164        &self.group_name
165    }
166    /// <p>The expression that defines when the schedule runs. The following formats are supported.</p>
167    /// <ul>
168    /// <li>
169    /// <p><code>at</code> expression - <code>at(yyyy-mm-ddThh:mm:ss)</code></p></li>
170    /// <li>
171    /// <p><code>rate</code> expression - <code>rate(value unit)</code></p></li>
172    /// <li>
173    /// <p><code>cron</code> expression - <code>cron(fields)</code></p></li>
174    /// </ul>
175    /// <p>You can use <code>at</code> expressions to create one-time schedules that invoke a target once, at the time and in the time zone, that you specify. You can use <code>rate</code> and <code>cron</code> expressions to create recurring schedules. Rate-based schedules are useful when you want to invoke a target at regular intervals, such as every 15 minutes or every five days. Cron-based schedules are useful when you want to invoke a target periodically at a specific time, such as at 8:00 am (UTC+0) every 1st day of the month.</p>
176    /// <p>A <code>cron</code> expression consists of six fields separated by white spaces: <code>(minutes hours day_of_month month day_of_week year)</code>.</p>
177    /// <p>A <code>rate</code> expression consists of a <i>value</i> as a positive integer, and a <i>unit</i> with the following options: <code>minute</code> | <code>minutes</code> | <code>hour</code> | <code>hours</code> | <code>day</code> | <code>days</code></p>
178    /// <p>For more information and examples, see <a href="https://docs.aws.amazon.com/scheduler/latest/UserGuide/schedule-types.html">Schedule types on EventBridge Scheduler</a> in the <i>EventBridge Scheduler User Guide</i>.</p>
179    /// This field is required.
180    pub fn schedule_expression(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
181        self.schedule_expression = ::std::option::Option::Some(input.into());
182        self
183    }
184    /// <p>The expression that defines when the schedule runs. The following formats are supported.</p>
185    /// <ul>
186    /// <li>
187    /// <p><code>at</code> expression - <code>at(yyyy-mm-ddThh:mm:ss)</code></p></li>
188    /// <li>
189    /// <p><code>rate</code> expression - <code>rate(value unit)</code></p></li>
190    /// <li>
191    /// <p><code>cron</code> expression - <code>cron(fields)</code></p></li>
192    /// </ul>
193    /// <p>You can use <code>at</code> expressions to create one-time schedules that invoke a target once, at the time and in the time zone, that you specify. You can use <code>rate</code> and <code>cron</code> expressions to create recurring schedules. Rate-based schedules are useful when you want to invoke a target at regular intervals, such as every 15 minutes or every five days. Cron-based schedules are useful when you want to invoke a target periodically at a specific time, such as at 8:00 am (UTC+0) every 1st day of the month.</p>
194    /// <p>A <code>cron</code> expression consists of six fields separated by white spaces: <code>(minutes hours day_of_month month day_of_week year)</code>.</p>
195    /// <p>A <code>rate</code> expression consists of a <i>value</i> as a positive integer, and a <i>unit</i> with the following options: <code>minute</code> | <code>minutes</code> | <code>hour</code> | <code>hours</code> | <code>day</code> | <code>days</code></p>
196    /// <p>For more information and examples, see <a href="https://docs.aws.amazon.com/scheduler/latest/UserGuide/schedule-types.html">Schedule types on EventBridge Scheduler</a> in the <i>EventBridge Scheduler User Guide</i>.</p>
197    pub fn set_schedule_expression(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
198        self.schedule_expression = input;
199        self
200    }
201    /// <p>The expression that defines when the schedule runs. The following formats are supported.</p>
202    /// <ul>
203    /// <li>
204    /// <p><code>at</code> expression - <code>at(yyyy-mm-ddThh:mm:ss)</code></p></li>
205    /// <li>
206    /// <p><code>rate</code> expression - <code>rate(value unit)</code></p></li>
207    /// <li>
208    /// <p><code>cron</code> expression - <code>cron(fields)</code></p></li>
209    /// </ul>
210    /// <p>You can use <code>at</code> expressions to create one-time schedules that invoke a target once, at the time and in the time zone, that you specify. You can use <code>rate</code> and <code>cron</code> expressions to create recurring schedules. Rate-based schedules are useful when you want to invoke a target at regular intervals, such as every 15 minutes or every five days. Cron-based schedules are useful when you want to invoke a target periodically at a specific time, such as at 8:00 am (UTC+0) every 1st day of the month.</p>
211    /// <p>A <code>cron</code> expression consists of six fields separated by white spaces: <code>(minutes hours day_of_month month day_of_week year)</code>.</p>
212    /// <p>A <code>rate</code> expression consists of a <i>value</i> as a positive integer, and a <i>unit</i> with the following options: <code>minute</code> | <code>minutes</code> | <code>hour</code> | <code>hours</code> | <code>day</code> | <code>days</code></p>
213    /// <p>For more information and examples, see <a href="https://docs.aws.amazon.com/scheduler/latest/UserGuide/schedule-types.html">Schedule types on EventBridge Scheduler</a> in the <i>EventBridge Scheduler User Guide</i>.</p>
214    pub fn get_schedule_expression(&self) -> &::std::option::Option<::std::string::String> {
215        &self.schedule_expression
216    }
217    /// <p>The date, in UTC, after which the schedule can begin invoking its target. Depending on the schedule's recurrence expression, invocations might occur on, or after, the <code>StartDate</code> you specify. EventBridge Scheduler ignores <code>StartDate</code> for one-time schedules.</p>
218    pub fn start_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
219        self.start_date = ::std::option::Option::Some(input);
220        self
221    }
222    /// <p>The date, in UTC, after which the schedule can begin invoking its target. Depending on the schedule's recurrence expression, invocations might occur on, or after, the <code>StartDate</code> you specify. EventBridge Scheduler ignores <code>StartDate</code> for one-time schedules.</p>
223    pub fn set_start_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
224        self.start_date = input;
225        self
226    }
227    /// <p>The date, in UTC, after which the schedule can begin invoking its target. Depending on the schedule's recurrence expression, invocations might occur on, or after, the <code>StartDate</code> you specify. EventBridge Scheduler ignores <code>StartDate</code> for one-time schedules.</p>
228    pub fn get_start_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
229        &self.start_date
230    }
231    /// <p>The date, in UTC, before which the schedule can invoke its target. Depending on the schedule's recurrence expression, invocations might stop on, or before, the <code>EndDate</code> you specify. EventBridge Scheduler ignores <code>EndDate</code> for one-time schedules.</p>
232    pub fn end_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
233        self.end_date = ::std::option::Option::Some(input);
234        self
235    }
236    /// <p>The date, in UTC, before which the schedule can invoke its target. Depending on the schedule's recurrence expression, invocations might stop on, or before, the <code>EndDate</code> you specify. EventBridge Scheduler ignores <code>EndDate</code> for one-time schedules.</p>
237    pub fn set_end_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
238        self.end_date = input;
239        self
240    }
241    /// <p>The date, in UTC, before which the schedule can invoke its target. Depending on the schedule's recurrence expression, invocations might stop on, or before, the <code>EndDate</code> you specify. EventBridge Scheduler ignores <code>EndDate</code> for one-time schedules.</p>
242    pub fn get_end_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
243        &self.end_date
244    }
245    /// <p>The description you specify for the schedule.</p>
246    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
247        self.description = ::std::option::Option::Some(input.into());
248        self
249    }
250    /// <p>The description you specify for the schedule.</p>
251    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
252        self.description = input;
253        self
254    }
255    /// <p>The description you specify for the schedule.</p>
256    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
257        &self.description
258    }
259    /// <p>The timezone in which the scheduling expression is evaluated.</p>
260    pub fn schedule_expression_timezone(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
261        self.schedule_expression_timezone = ::std::option::Option::Some(input.into());
262        self
263    }
264    /// <p>The timezone in which the scheduling expression is evaluated.</p>
265    pub fn set_schedule_expression_timezone(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
266        self.schedule_expression_timezone = input;
267        self
268    }
269    /// <p>The timezone in which the scheduling expression is evaluated.</p>
270    pub fn get_schedule_expression_timezone(&self) -> &::std::option::Option<::std::string::String> {
271        &self.schedule_expression_timezone
272    }
273    /// <p>Specifies whether the schedule is enabled or disabled.</p>
274    pub fn state(mut self, input: crate::types::ScheduleState) -> Self {
275        self.state = ::std::option::Option::Some(input);
276        self
277    }
278    /// <p>Specifies whether the schedule is enabled or disabled.</p>
279    pub fn set_state(mut self, input: ::std::option::Option<crate::types::ScheduleState>) -> Self {
280        self.state = input;
281        self
282    }
283    /// <p>Specifies whether the schedule is enabled or disabled.</p>
284    pub fn get_state(&self) -> &::std::option::Option<crate::types::ScheduleState> {
285        &self.state
286    }
287    /// <p>The Amazon Resource Name (ARN) for the customer managed KMS key that EventBridge Scheduler will use to encrypt and decrypt your data.</p>
288    pub fn kms_key_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
289        self.kms_key_arn = ::std::option::Option::Some(input.into());
290        self
291    }
292    /// <p>The Amazon Resource Name (ARN) for the customer managed KMS key that EventBridge Scheduler will use to encrypt and decrypt your data.</p>
293    pub fn set_kms_key_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
294        self.kms_key_arn = input;
295        self
296    }
297    /// <p>The Amazon Resource Name (ARN) for the customer managed KMS key that EventBridge Scheduler will use to encrypt and decrypt your data.</p>
298    pub fn get_kms_key_arn(&self) -> &::std::option::Option<::std::string::String> {
299        &self.kms_key_arn
300    }
301    /// <p>The schedule's target.</p>
302    /// This field is required.
303    pub fn target(mut self, input: crate::types::Target) -> Self {
304        self.target = ::std::option::Option::Some(input);
305        self
306    }
307    /// <p>The schedule's target.</p>
308    pub fn set_target(mut self, input: ::std::option::Option<crate::types::Target>) -> Self {
309        self.target = input;
310        self
311    }
312    /// <p>The schedule's target.</p>
313    pub fn get_target(&self) -> &::std::option::Option<crate::types::Target> {
314        &self.target
315    }
316    /// <p>Allows you to configure a time window during which EventBridge Scheduler invokes the schedule.</p>
317    /// This field is required.
318    pub fn flexible_time_window(mut self, input: crate::types::FlexibleTimeWindow) -> Self {
319        self.flexible_time_window = ::std::option::Option::Some(input);
320        self
321    }
322    /// <p>Allows you to configure a time window during which EventBridge Scheduler invokes the schedule.</p>
323    pub fn set_flexible_time_window(mut self, input: ::std::option::Option<crate::types::FlexibleTimeWindow>) -> Self {
324        self.flexible_time_window = input;
325        self
326    }
327    /// <p>Allows you to configure a time window during which EventBridge Scheduler invokes the schedule.</p>
328    pub fn get_flexible_time_window(&self) -> &::std::option::Option<crate::types::FlexibleTimeWindow> {
329        &self.flexible_time_window
330    }
331    /// <p>Unique, case-sensitive identifier you provide to ensure the idempotency of the request. If you do not specify a client token, EventBridge Scheduler uses a randomly generated token for the request to ensure idempotency.</p>
332    pub fn client_token(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
333        self.client_token = ::std::option::Option::Some(input.into());
334        self
335    }
336    /// <p>Unique, case-sensitive identifier you provide to ensure the idempotency of the request. If you do not specify a client token, EventBridge Scheduler uses a randomly generated token for the request to ensure idempotency.</p>
337    pub fn set_client_token(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
338        self.client_token = input;
339        self
340    }
341    /// <p>Unique, case-sensitive identifier you provide to ensure the idempotency of the request. If you do not specify a client token, EventBridge Scheduler uses a randomly generated token for the request to ensure idempotency.</p>
342    pub fn get_client_token(&self) -> &::std::option::Option<::std::string::String> {
343        &self.client_token
344    }
345    /// <p>Specifies the action that EventBridge Scheduler applies to the schedule after the schedule completes invoking the target.</p>
346    pub fn action_after_completion(mut self, input: crate::types::ActionAfterCompletion) -> Self {
347        self.action_after_completion = ::std::option::Option::Some(input);
348        self
349    }
350    /// <p>Specifies the action that EventBridge Scheduler applies to the schedule after the schedule completes invoking the target.</p>
351    pub fn set_action_after_completion(mut self, input: ::std::option::Option<crate::types::ActionAfterCompletion>) -> Self {
352        self.action_after_completion = input;
353        self
354    }
355    /// <p>Specifies the action that EventBridge Scheduler applies to the schedule after the schedule completes invoking the target.</p>
356    pub fn get_action_after_completion(&self) -> &::std::option::Option<crate::types::ActionAfterCompletion> {
357        &self.action_after_completion
358    }
359    /// Consumes the builder and constructs a [`CreateScheduleInput`](crate::operation::create_schedule::CreateScheduleInput).
360    pub fn build(
361        self,
362    ) -> ::std::result::Result<crate::operation::create_schedule::CreateScheduleInput, ::aws_smithy_types::error::operation::BuildError> {
363        ::std::result::Result::Ok(crate::operation::create_schedule::CreateScheduleInput {
364            name: self.name,
365            group_name: self.group_name,
366            schedule_expression: self.schedule_expression,
367            start_date: self.start_date,
368            end_date: self.end_date,
369            description: self.description,
370            schedule_expression_timezone: self.schedule_expression_timezone,
371            state: self.state,
372            kms_key_arn: self.kms_key_arn,
373            target: self.target,
374            flexible_time_window: self.flexible_time_window,
375            client_token: self.client_token,
376            action_after_completion: self.action_after_completion,
377        })
378    }
379}