aws_sdk_sfn/operation/describe_execution/
_describe_execution_output.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)]
5pub struct DescribeExecutionOutput {
6    /// <p>The Amazon Resource Name (ARN) that identifies the execution.</p>
7    pub execution_arn: ::std::string::String,
8    /// <p>The Amazon Resource Name (ARN) of the executed stated machine.</p>
9    pub state_machine_arn: ::std::string::String,
10    /// <p>The name of the execution.</p>
11    /// <p>A name must <i>not</i> contain:</p>
12    /// <ul>
13    /// <li>
14    /// <p>white space</p></li>
15    /// <li>
16    /// <p>brackets <code>&lt; &gt; { } \[ \]</code></p></li>
17    /// <li>
18    /// <p>wildcard characters <code>? *</code></p></li>
19    /// <li>
20    /// <p>special characters <code>" # % \ ^ | ~ ` $ &amp; , ; : /</code></p></li>
21    /// <li>
22    /// <p>control characters (<code>U+0000-001F</code>, <code>U+007F-009F</code>, <code>U+FFFE-FFFF</code>)</p></li>
23    /// <li>
24    /// <p>surrogates (<code>U+D800-DFFF</code>)</p></li>
25    /// <li>
26    /// <p>invalid characters (<code> U+10FFFF</code>)</p></li>
27    /// </ul>
28    /// <p>To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.</p>
29    pub name: ::std::option::Option<::std::string::String>,
30    /// <p>The current status of the execution.</p>
31    pub status: crate::types::ExecutionStatus,
32    /// <p>The date the execution is started.</p>
33    pub start_date: ::aws_smithy_types::DateTime,
34    /// <p>If the execution ended, the date the execution stopped.</p>
35    pub stop_date: ::std::option::Option<::aws_smithy_types::DateTime>,
36    /// <p>The string that contains the JSON input data of the execution. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.</p>
37    pub input: ::std::option::Option<::std::string::String>,
38    /// <p>Provides details about execution input or output.</p>
39    pub input_details: ::std::option::Option<crate::types::CloudWatchEventsExecutionDataDetails>,
40    /// <p>The JSON output data of the execution. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.</p><note>
41    /// <p>This field is set only if the execution succeeds. If the execution fails, this field is null.</p>
42    /// </note>
43    pub output: ::std::option::Option<::std::string::String>,
44    /// <p>Provides details about execution input or output.</p>
45    pub output_details: ::std::option::Option<crate::types::CloudWatchEventsExecutionDataDetails>,
46    /// <p>The X-Ray trace header that was passed to the execution.</p><note>
47    /// <p>For X-Ray traces, all Amazon Web Services services use the <code>X-Amzn-Trace-Id</code> header from the HTTP request. Using the header is the preferred mechanism to identify a trace. <code>StartExecution</code> and <code>StartSyncExecution</code> API operations can also use <code>traceHeader</code> from the body of the request payload. If <b>both</b> sources are provided, Step Functions will use the <b>header value</b> (preferred) over the value in the request body.</p>
48    /// </note>
49    pub trace_header: ::std::option::Option<::std::string::String>,
50    /// <p>The Amazon Resource Name (ARN) that identifies a Map Run, which dispatched this execution.</p>
51    pub map_run_arn: ::std::option::Option<::std::string::String>,
52    /// <p>The error string if the state machine execution failed.</p>
53    pub error: ::std::option::Option<::std::string::String>,
54    /// <p>The cause string if the state machine execution failed.</p>
55    pub cause: ::std::option::Option<::std::string::String>,
56    /// <p>The Amazon Resource Name (ARN) of the state machine version associated with the execution. The version ARN is a combination of state machine ARN and the version number separated by a colon (:). For example, <code>stateMachineARN:1</code>.</p>
57    /// <p>If you start an execution from a <code>StartExecution</code> request without specifying a state machine version or alias ARN, Step Functions returns a null value.</p>
58    pub state_machine_version_arn: ::std::option::Option<::std::string::String>,
59    /// <p>The Amazon Resource Name (ARN) of the state machine alias associated with the execution. The alias ARN is a combination of state machine ARN and the alias name separated by a colon (:). For example, <code>stateMachineARN:PROD</code>.</p>
60    /// <p>If you start an execution from a <code>StartExecution</code> request with a state machine version ARN, this field will be null.</p>
61    pub state_machine_alias_arn: ::std::option::Option<::std::string::String>,
62    /// <p>The number of times you've redriven an execution. If you have not yet redriven an execution, the <code>redriveCount</code> is 0. This count is only updated if you successfully redrive an execution.</p>
63    pub redrive_count: ::std::option::Option<i32>,
64    /// <p>The date the execution was last redriven. If you have not yet redriven an execution, the <code>redriveDate</code> is null.</p>
65    /// <p>The <code>redriveDate</code> is unavailable if you redrive a Map Run that starts child workflow executions of type <code>EXPRESS</code>.</p>
66    pub redrive_date: ::std::option::Option<::aws_smithy_types::DateTime>,
67    /// <p>Indicates whether or not an execution can be redriven at a given point in time.</p>
68    /// <ul>
69    /// <li>
70    /// <p>For executions of type <code>STANDARD</code>, <code>redriveStatus</code> is <code>NOT_REDRIVABLE</code> if calling the <code>RedriveExecution</code> API action would return the <code>ExecutionNotRedrivable</code> error.</p></li>
71    /// <li>
72    /// <p>For a Distributed Map that includes child workflows of type <code>STANDARD</code>, <code>redriveStatus</code> indicates whether or not the Map Run can redrive child workflow executions.</p></li>
73    /// <li>
74    /// <p>For a Distributed Map that includes child workflows of type <code>EXPRESS</code>, <code>redriveStatus</code> indicates whether or not the Map Run can redrive child workflow executions.</p>
75    /// <p>You can redrive failed or timed out <code>EXPRESS</code> workflows <i>only if</i> they're a part of a Map Run. When you <a href="https://docs.aws.amazon.com/step-functions/latest/dg/redrive-map-run.html">redrive</a> the Map Run, these workflows are restarted using the <code>StartExecution</code> API action.</p></li>
76    /// </ul>
77    pub redrive_status: ::std::option::Option<crate::types::ExecutionRedriveStatus>,
78    /// <p>When <code>redriveStatus</code> is <code>NOT_REDRIVABLE</code>, <code>redriveStatusReason</code> specifies the reason why an execution cannot be redriven.</p>
79    /// <ul>
80    /// <li>
81    /// <p>For executions of type <code>STANDARD</code>, or for a Distributed Map that includes child workflows of type <code>STANDARD</code>, <code>redriveStatusReason</code> can include one of the following reasons:</p>
82    /// <ul>
83    /// <li>
84    /// <p><code>State machine is in DELETING status</code>.</p></li>
85    /// <li>
86    /// <p><code>Execution is RUNNING and cannot be redriven</code>.</p></li>
87    /// <li>
88    /// <p><code>Execution is SUCCEEDED and cannot be redriven</code>.</p></li>
89    /// <li>
90    /// <p><code>Execution was started before the launch of RedriveExecution</code>.</p></li>
91    /// <li>
92    /// <p><code>Execution history event limit exceeded</code>.</p></li>
93    /// <li>
94    /// <p><code>Execution has exceeded the max execution time</code>.</p></li>
95    /// <li>
96    /// <p><code>Execution redrivable period exceeded</code>.</p></li>
97    /// </ul></li>
98    /// <li>
99    /// <p>For a Distributed Map that includes child workflows of type <code>EXPRESS</code>, <code>redriveStatusReason</code> is only returned if the child workflows are not redrivable. This happens when the child workflow executions have completed successfully.</p></li>
100    /// </ul>
101    pub redrive_status_reason: ::std::option::Option<::std::string::String>,
102    _request_id: Option<String>,
103}
104impl DescribeExecutionOutput {
105    /// <p>The Amazon Resource Name (ARN) that identifies the execution.</p>
106    pub fn execution_arn(&self) -> &str {
107        use std::ops::Deref;
108        self.execution_arn.deref()
109    }
110    /// <p>The Amazon Resource Name (ARN) of the executed stated machine.</p>
111    pub fn state_machine_arn(&self) -> &str {
112        use std::ops::Deref;
113        self.state_machine_arn.deref()
114    }
115    /// <p>The name of the execution.</p>
116    /// <p>A name must <i>not</i> contain:</p>
117    /// <ul>
118    /// <li>
119    /// <p>white space</p></li>
120    /// <li>
121    /// <p>brackets <code>&lt; &gt; { } \[ \]</code></p></li>
122    /// <li>
123    /// <p>wildcard characters <code>? *</code></p></li>
124    /// <li>
125    /// <p>special characters <code>" # % \ ^ | ~ ` $ &amp; , ; : /</code></p></li>
126    /// <li>
127    /// <p>control characters (<code>U+0000-001F</code>, <code>U+007F-009F</code>, <code>U+FFFE-FFFF</code>)</p></li>
128    /// <li>
129    /// <p>surrogates (<code>U+D800-DFFF</code>)</p></li>
130    /// <li>
131    /// <p>invalid characters (<code> U+10FFFF</code>)</p></li>
132    /// </ul>
133    /// <p>To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.</p>
134    pub fn name(&self) -> ::std::option::Option<&str> {
135        self.name.as_deref()
136    }
137    /// <p>The current status of the execution.</p>
138    pub fn status(&self) -> &crate::types::ExecutionStatus {
139        &self.status
140    }
141    /// <p>The date the execution is started.</p>
142    pub fn start_date(&self) -> &::aws_smithy_types::DateTime {
143        &self.start_date
144    }
145    /// <p>If the execution ended, the date the execution stopped.</p>
146    pub fn stop_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
147        self.stop_date.as_ref()
148    }
149    /// <p>The string that contains the JSON input data of the execution. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.</p>
150    pub fn input(&self) -> ::std::option::Option<&str> {
151        self.input.as_deref()
152    }
153    /// <p>Provides details about execution input or output.</p>
154    pub fn input_details(&self) -> ::std::option::Option<&crate::types::CloudWatchEventsExecutionDataDetails> {
155        self.input_details.as_ref()
156    }
157    /// <p>The JSON output data of the execution. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.</p><note>
158    /// <p>This field is set only if the execution succeeds. If the execution fails, this field is null.</p>
159    /// </note>
160    pub fn output(&self) -> ::std::option::Option<&str> {
161        self.output.as_deref()
162    }
163    /// <p>Provides details about execution input or output.</p>
164    pub fn output_details(&self) -> ::std::option::Option<&crate::types::CloudWatchEventsExecutionDataDetails> {
165        self.output_details.as_ref()
166    }
167    /// <p>The X-Ray trace header that was passed to the execution.</p><note>
168    /// <p>For X-Ray traces, all Amazon Web Services services use the <code>X-Amzn-Trace-Id</code> header from the HTTP request. Using the header is the preferred mechanism to identify a trace. <code>StartExecution</code> and <code>StartSyncExecution</code> API operations can also use <code>traceHeader</code> from the body of the request payload. If <b>both</b> sources are provided, Step Functions will use the <b>header value</b> (preferred) over the value in the request body.</p>
169    /// </note>
170    pub fn trace_header(&self) -> ::std::option::Option<&str> {
171        self.trace_header.as_deref()
172    }
173    /// <p>The Amazon Resource Name (ARN) that identifies a Map Run, which dispatched this execution.</p>
174    pub fn map_run_arn(&self) -> ::std::option::Option<&str> {
175        self.map_run_arn.as_deref()
176    }
177    /// <p>The error string if the state machine execution failed.</p>
178    pub fn error(&self) -> ::std::option::Option<&str> {
179        self.error.as_deref()
180    }
181    /// <p>The cause string if the state machine execution failed.</p>
182    pub fn cause(&self) -> ::std::option::Option<&str> {
183        self.cause.as_deref()
184    }
185    /// <p>The Amazon Resource Name (ARN) of the state machine version associated with the execution. The version ARN is a combination of state machine ARN and the version number separated by a colon (:). For example, <code>stateMachineARN:1</code>.</p>
186    /// <p>If you start an execution from a <code>StartExecution</code> request without specifying a state machine version or alias ARN, Step Functions returns a null value.</p>
187    pub fn state_machine_version_arn(&self) -> ::std::option::Option<&str> {
188        self.state_machine_version_arn.as_deref()
189    }
190    /// <p>The Amazon Resource Name (ARN) of the state machine alias associated with the execution. The alias ARN is a combination of state machine ARN and the alias name separated by a colon (:). For example, <code>stateMachineARN:PROD</code>.</p>
191    /// <p>If you start an execution from a <code>StartExecution</code> request with a state machine version ARN, this field will be null.</p>
192    pub fn state_machine_alias_arn(&self) -> ::std::option::Option<&str> {
193        self.state_machine_alias_arn.as_deref()
194    }
195    /// <p>The number of times you've redriven an execution. If you have not yet redriven an execution, the <code>redriveCount</code> is 0. This count is only updated if you successfully redrive an execution.</p>
196    pub fn redrive_count(&self) -> ::std::option::Option<i32> {
197        self.redrive_count
198    }
199    /// <p>The date the execution was last redriven. If you have not yet redriven an execution, the <code>redriveDate</code> is null.</p>
200    /// <p>The <code>redriveDate</code> is unavailable if you redrive a Map Run that starts child workflow executions of type <code>EXPRESS</code>.</p>
201    pub fn redrive_date(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
202        self.redrive_date.as_ref()
203    }
204    /// <p>Indicates whether or not an execution can be redriven at a given point in time.</p>
205    /// <ul>
206    /// <li>
207    /// <p>For executions of type <code>STANDARD</code>, <code>redriveStatus</code> is <code>NOT_REDRIVABLE</code> if calling the <code>RedriveExecution</code> API action would return the <code>ExecutionNotRedrivable</code> error.</p></li>
208    /// <li>
209    /// <p>For a Distributed Map that includes child workflows of type <code>STANDARD</code>, <code>redriveStatus</code> indicates whether or not the Map Run can redrive child workflow executions.</p></li>
210    /// <li>
211    /// <p>For a Distributed Map that includes child workflows of type <code>EXPRESS</code>, <code>redriveStatus</code> indicates whether or not the Map Run can redrive child workflow executions.</p>
212    /// <p>You can redrive failed or timed out <code>EXPRESS</code> workflows <i>only if</i> they're a part of a Map Run. When you <a href="https://docs.aws.amazon.com/step-functions/latest/dg/redrive-map-run.html">redrive</a> the Map Run, these workflows are restarted using the <code>StartExecution</code> API action.</p></li>
213    /// </ul>
214    pub fn redrive_status(&self) -> ::std::option::Option<&crate::types::ExecutionRedriveStatus> {
215        self.redrive_status.as_ref()
216    }
217    /// <p>When <code>redriveStatus</code> is <code>NOT_REDRIVABLE</code>, <code>redriveStatusReason</code> specifies the reason why an execution cannot be redriven.</p>
218    /// <ul>
219    /// <li>
220    /// <p>For executions of type <code>STANDARD</code>, or for a Distributed Map that includes child workflows of type <code>STANDARD</code>, <code>redriveStatusReason</code> can include one of the following reasons:</p>
221    /// <ul>
222    /// <li>
223    /// <p><code>State machine is in DELETING status</code>.</p></li>
224    /// <li>
225    /// <p><code>Execution is RUNNING and cannot be redriven</code>.</p></li>
226    /// <li>
227    /// <p><code>Execution is SUCCEEDED and cannot be redriven</code>.</p></li>
228    /// <li>
229    /// <p><code>Execution was started before the launch of RedriveExecution</code>.</p></li>
230    /// <li>
231    /// <p><code>Execution history event limit exceeded</code>.</p></li>
232    /// <li>
233    /// <p><code>Execution has exceeded the max execution time</code>.</p></li>
234    /// <li>
235    /// <p><code>Execution redrivable period exceeded</code>.</p></li>
236    /// </ul></li>
237    /// <li>
238    /// <p>For a Distributed Map that includes child workflows of type <code>EXPRESS</code>, <code>redriveStatusReason</code> is only returned if the child workflows are not redrivable. This happens when the child workflow executions have completed successfully.</p></li>
239    /// </ul>
240    pub fn redrive_status_reason(&self) -> ::std::option::Option<&str> {
241        self.redrive_status_reason.as_deref()
242    }
243}
244impl ::std::fmt::Debug for DescribeExecutionOutput {
245    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
246        let mut formatter = f.debug_struct("DescribeExecutionOutput");
247        formatter.field("execution_arn", &self.execution_arn);
248        formatter.field("state_machine_arn", &self.state_machine_arn);
249        formatter.field("name", &self.name);
250        formatter.field("status", &self.status);
251        formatter.field("start_date", &self.start_date);
252        formatter.field("stop_date", &self.stop_date);
253        formatter.field("input", &"*** Sensitive Data Redacted ***");
254        formatter.field("input_details", &self.input_details);
255        formatter.field("output", &"*** Sensitive Data Redacted ***");
256        formatter.field("output_details", &self.output_details);
257        formatter.field("trace_header", &self.trace_header);
258        formatter.field("map_run_arn", &self.map_run_arn);
259        formatter.field("error", &"*** Sensitive Data Redacted ***");
260        formatter.field("cause", &"*** Sensitive Data Redacted ***");
261        formatter.field("state_machine_version_arn", &self.state_machine_version_arn);
262        formatter.field("state_machine_alias_arn", &self.state_machine_alias_arn);
263        formatter.field("redrive_count", &self.redrive_count);
264        formatter.field("redrive_date", &self.redrive_date);
265        formatter.field("redrive_status", &self.redrive_status);
266        formatter.field("redrive_status_reason", &"*** Sensitive Data Redacted ***");
267        formatter.field("_request_id", &self._request_id);
268        formatter.finish()
269    }
270}
271impl ::aws_types::request_id::RequestId for DescribeExecutionOutput {
272    fn request_id(&self) -> Option<&str> {
273        self._request_id.as_deref()
274    }
275}
276impl DescribeExecutionOutput {
277    /// Creates a new builder-style object to manufacture [`DescribeExecutionOutput`](crate::operation::describe_execution::DescribeExecutionOutput).
278    pub fn builder() -> crate::operation::describe_execution::builders::DescribeExecutionOutputBuilder {
279        crate::operation::describe_execution::builders::DescribeExecutionOutputBuilder::default()
280    }
281}
282
283/// A builder for [`DescribeExecutionOutput`](crate::operation::describe_execution::DescribeExecutionOutput).
284#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
285#[non_exhaustive]
286pub struct DescribeExecutionOutputBuilder {
287    pub(crate) execution_arn: ::std::option::Option<::std::string::String>,
288    pub(crate) state_machine_arn: ::std::option::Option<::std::string::String>,
289    pub(crate) name: ::std::option::Option<::std::string::String>,
290    pub(crate) status: ::std::option::Option<crate::types::ExecutionStatus>,
291    pub(crate) start_date: ::std::option::Option<::aws_smithy_types::DateTime>,
292    pub(crate) stop_date: ::std::option::Option<::aws_smithy_types::DateTime>,
293    pub(crate) input: ::std::option::Option<::std::string::String>,
294    pub(crate) input_details: ::std::option::Option<crate::types::CloudWatchEventsExecutionDataDetails>,
295    pub(crate) output: ::std::option::Option<::std::string::String>,
296    pub(crate) output_details: ::std::option::Option<crate::types::CloudWatchEventsExecutionDataDetails>,
297    pub(crate) trace_header: ::std::option::Option<::std::string::String>,
298    pub(crate) map_run_arn: ::std::option::Option<::std::string::String>,
299    pub(crate) error: ::std::option::Option<::std::string::String>,
300    pub(crate) cause: ::std::option::Option<::std::string::String>,
301    pub(crate) state_machine_version_arn: ::std::option::Option<::std::string::String>,
302    pub(crate) state_machine_alias_arn: ::std::option::Option<::std::string::String>,
303    pub(crate) redrive_count: ::std::option::Option<i32>,
304    pub(crate) redrive_date: ::std::option::Option<::aws_smithy_types::DateTime>,
305    pub(crate) redrive_status: ::std::option::Option<crate::types::ExecutionRedriveStatus>,
306    pub(crate) redrive_status_reason: ::std::option::Option<::std::string::String>,
307    _request_id: Option<String>,
308}
309impl DescribeExecutionOutputBuilder {
310    /// <p>The Amazon Resource Name (ARN) that identifies the execution.</p>
311    /// This field is required.
312    pub fn execution_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
313        self.execution_arn = ::std::option::Option::Some(input.into());
314        self
315    }
316    /// <p>The Amazon Resource Name (ARN) that identifies the execution.</p>
317    pub fn set_execution_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
318        self.execution_arn = input;
319        self
320    }
321    /// <p>The Amazon Resource Name (ARN) that identifies the execution.</p>
322    pub fn get_execution_arn(&self) -> &::std::option::Option<::std::string::String> {
323        &self.execution_arn
324    }
325    /// <p>The Amazon Resource Name (ARN) of the executed stated machine.</p>
326    /// This field is required.
327    pub fn state_machine_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
328        self.state_machine_arn = ::std::option::Option::Some(input.into());
329        self
330    }
331    /// <p>The Amazon Resource Name (ARN) of the executed stated machine.</p>
332    pub fn set_state_machine_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
333        self.state_machine_arn = input;
334        self
335    }
336    /// <p>The Amazon Resource Name (ARN) of the executed stated machine.</p>
337    pub fn get_state_machine_arn(&self) -> &::std::option::Option<::std::string::String> {
338        &self.state_machine_arn
339    }
340    /// <p>The name of the execution.</p>
341    /// <p>A name must <i>not</i> contain:</p>
342    /// <ul>
343    /// <li>
344    /// <p>white space</p></li>
345    /// <li>
346    /// <p>brackets <code>&lt; &gt; { } \[ \]</code></p></li>
347    /// <li>
348    /// <p>wildcard characters <code>? *</code></p></li>
349    /// <li>
350    /// <p>special characters <code>" # % \ ^ | ~ ` $ &amp; , ; : /</code></p></li>
351    /// <li>
352    /// <p>control characters (<code>U+0000-001F</code>, <code>U+007F-009F</code>, <code>U+FFFE-FFFF</code>)</p></li>
353    /// <li>
354    /// <p>surrogates (<code>U+D800-DFFF</code>)</p></li>
355    /// <li>
356    /// <p>invalid characters (<code> U+10FFFF</code>)</p></li>
357    /// </ul>
358    /// <p>To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.</p>
359    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
360        self.name = ::std::option::Option::Some(input.into());
361        self
362    }
363    /// <p>The name of the execution.</p>
364    /// <p>A name must <i>not</i> contain:</p>
365    /// <ul>
366    /// <li>
367    /// <p>white space</p></li>
368    /// <li>
369    /// <p>brackets <code>&lt; &gt; { } \[ \]</code></p></li>
370    /// <li>
371    /// <p>wildcard characters <code>? *</code></p></li>
372    /// <li>
373    /// <p>special characters <code>" # % \ ^ | ~ ` $ &amp; , ; : /</code></p></li>
374    /// <li>
375    /// <p>control characters (<code>U+0000-001F</code>, <code>U+007F-009F</code>, <code>U+FFFE-FFFF</code>)</p></li>
376    /// <li>
377    /// <p>surrogates (<code>U+D800-DFFF</code>)</p></li>
378    /// <li>
379    /// <p>invalid characters (<code> U+10FFFF</code>)</p></li>
380    /// </ul>
381    /// <p>To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.</p>
382    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
383        self.name = input;
384        self
385    }
386    /// <p>The name of the execution.</p>
387    /// <p>A name must <i>not</i> contain:</p>
388    /// <ul>
389    /// <li>
390    /// <p>white space</p></li>
391    /// <li>
392    /// <p>brackets <code>&lt; &gt; { } \[ \]</code></p></li>
393    /// <li>
394    /// <p>wildcard characters <code>? *</code></p></li>
395    /// <li>
396    /// <p>special characters <code>" # % \ ^ | ~ ` $ &amp; , ; : /</code></p></li>
397    /// <li>
398    /// <p>control characters (<code>U+0000-001F</code>, <code>U+007F-009F</code>, <code>U+FFFE-FFFF</code>)</p></li>
399    /// <li>
400    /// <p>surrogates (<code>U+D800-DFFF</code>)</p></li>
401    /// <li>
402    /// <p>invalid characters (<code> U+10FFFF</code>)</p></li>
403    /// </ul>
404    /// <p>To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.</p>
405    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
406        &self.name
407    }
408    /// <p>The current status of the execution.</p>
409    /// This field is required.
410    pub fn status(mut self, input: crate::types::ExecutionStatus) -> Self {
411        self.status = ::std::option::Option::Some(input);
412        self
413    }
414    /// <p>The current status of the execution.</p>
415    pub fn set_status(mut self, input: ::std::option::Option<crate::types::ExecutionStatus>) -> Self {
416        self.status = input;
417        self
418    }
419    /// <p>The current status of the execution.</p>
420    pub fn get_status(&self) -> &::std::option::Option<crate::types::ExecutionStatus> {
421        &self.status
422    }
423    /// <p>The date the execution is started.</p>
424    /// This field is required.
425    pub fn start_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
426        self.start_date = ::std::option::Option::Some(input);
427        self
428    }
429    /// <p>The date the execution is started.</p>
430    pub fn set_start_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
431        self.start_date = input;
432        self
433    }
434    /// <p>The date the execution is started.</p>
435    pub fn get_start_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
436        &self.start_date
437    }
438    /// <p>If the execution ended, the date the execution stopped.</p>
439    pub fn stop_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
440        self.stop_date = ::std::option::Option::Some(input);
441        self
442    }
443    /// <p>If the execution ended, the date the execution stopped.</p>
444    pub fn set_stop_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
445        self.stop_date = input;
446        self
447    }
448    /// <p>If the execution ended, the date the execution stopped.</p>
449    pub fn get_stop_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
450        &self.stop_date
451    }
452    /// <p>The string that contains the JSON input data of the execution. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.</p>
453    pub fn input(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
454        self.input = ::std::option::Option::Some(input.into());
455        self
456    }
457    /// <p>The string that contains the JSON input data of the execution. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.</p>
458    pub fn set_input(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
459        self.input = input;
460        self
461    }
462    /// <p>The string that contains the JSON input data of the execution. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.</p>
463    pub fn get_input(&self) -> &::std::option::Option<::std::string::String> {
464        &self.input
465    }
466    /// <p>Provides details about execution input or output.</p>
467    pub fn input_details(mut self, input: crate::types::CloudWatchEventsExecutionDataDetails) -> Self {
468        self.input_details = ::std::option::Option::Some(input);
469        self
470    }
471    /// <p>Provides details about execution input or output.</p>
472    pub fn set_input_details(mut self, input: ::std::option::Option<crate::types::CloudWatchEventsExecutionDataDetails>) -> Self {
473        self.input_details = input;
474        self
475    }
476    /// <p>Provides details about execution input or output.</p>
477    pub fn get_input_details(&self) -> &::std::option::Option<crate::types::CloudWatchEventsExecutionDataDetails> {
478        &self.input_details
479    }
480    /// <p>The JSON output data of the execution. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.</p><note>
481    /// <p>This field is set only if the execution succeeds. If the execution fails, this field is null.</p>
482    /// </note>
483    pub fn output(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
484        self.output = ::std::option::Option::Some(input.into());
485        self
486    }
487    /// <p>The JSON output data of the execution. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.</p><note>
488    /// <p>This field is set only if the execution succeeds. If the execution fails, this field is null.</p>
489    /// </note>
490    pub fn set_output(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
491        self.output = input;
492        self
493    }
494    /// <p>The JSON output data of the execution. Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.</p><note>
495    /// <p>This field is set only if the execution succeeds. If the execution fails, this field is null.</p>
496    /// </note>
497    pub fn get_output(&self) -> &::std::option::Option<::std::string::String> {
498        &self.output
499    }
500    /// <p>Provides details about execution input or output.</p>
501    pub fn output_details(mut self, input: crate::types::CloudWatchEventsExecutionDataDetails) -> Self {
502        self.output_details = ::std::option::Option::Some(input);
503        self
504    }
505    /// <p>Provides details about execution input or output.</p>
506    pub fn set_output_details(mut self, input: ::std::option::Option<crate::types::CloudWatchEventsExecutionDataDetails>) -> Self {
507        self.output_details = input;
508        self
509    }
510    /// <p>Provides details about execution input or output.</p>
511    pub fn get_output_details(&self) -> &::std::option::Option<crate::types::CloudWatchEventsExecutionDataDetails> {
512        &self.output_details
513    }
514    /// <p>The X-Ray trace header that was passed to the execution.</p><note>
515    /// <p>For X-Ray traces, all Amazon Web Services services use the <code>X-Amzn-Trace-Id</code> header from the HTTP request. Using the header is the preferred mechanism to identify a trace. <code>StartExecution</code> and <code>StartSyncExecution</code> API operations can also use <code>traceHeader</code> from the body of the request payload. If <b>both</b> sources are provided, Step Functions will use the <b>header value</b> (preferred) over the value in the request body.</p>
516    /// </note>
517    pub fn trace_header(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
518        self.trace_header = ::std::option::Option::Some(input.into());
519        self
520    }
521    /// <p>The X-Ray trace header that was passed to the execution.</p><note>
522    /// <p>For X-Ray traces, all Amazon Web Services services use the <code>X-Amzn-Trace-Id</code> header from the HTTP request. Using the header is the preferred mechanism to identify a trace. <code>StartExecution</code> and <code>StartSyncExecution</code> API operations can also use <code>traceHeader</code> from the body of the request payload. If <b>both</b> sources are provided, Step Functions will use the <b>header value</b> (preferred) over the value in the request body.</p>
523    /// </note>
524    pub fn set_trace_header(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
525        self.trace_header = input;
526        self
527    }
528    /// <p>The X-Ray trace header that was passed to the execution.</p><note>
529    /// <p>For X-Ray traces, all Amazon Web Services services use the <code>X-Amzn-Trace-Id</code> header from the HTTP request. Using the header is the preferred mechanism to identify a trace. <code>StartExecution</code> and <code>StartSyncExecution</code> API operations can also use <code>traceHeader</code> from the body of the request payload. If <b>both</b> sources are provided, Step Functions will use the <b>header value</b> (preferred) over the value in the request body.</p>
530    /// </note>
531    pub fn get_trace_header(&self) -> &::std::option::Option<::std::string::String> {
532        &self.trace_header
533    }
534    /// <p>The Amazon Resource Name (ARN) that identifies a Map Run, which dispatched this execution.</p>
535    pub fn map_run_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
536        self.map_run_arn = ::std::option::Option::Some(input.into());
537        self
538    }
539    /// <p>The Amazon Resource Name (ARN) that identifies a Map Run, which dispatched this execution.</p>
540    pub fn set_map_run_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
541        self.map_run_arn = input;
542        self
543    }
544    /// <p>The Amazon Resource Name (ARN) that identifies a Map Run, which dispatched this execution.</p>
545    pub fn get_map_run_arn(&self) -> &::std::option::Option<::std::string::String> {
546        &self.map_run_arn
547    }
548    /// <p>The error string if the state machine execution failed.</p>
549    pub fn error(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
550        self.error = ::std::option::Option::Some(input.into());
551        self
552    }
553    /// <p>The error string if the state machine execution failed.</p>
554    pub fn set_error(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
555        self.error = input;
556        self
557    }
558    /// <p>The error string if the state machine execution failed.</p>
559    pub fn get_error(&self) -> &::std::option::Option<::std::string::String> {
560        &self.error
561    }
562    /// <p>The cause string if the state machine execution failed.</p>
563    pub fn cause(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
564        self.cause = ::std::option::Option::Some(input.into());
565        self
566    }
567    /// <p>The cause string if the state machine execution failed.</p>
568    pub fn set_cause(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
569        self.cause = input;
570        self
571    }
572    /// <p>The cause string if the state machine execution failed.</p>
573    pub fn get_cause(&self) -> &::std::option::Option<::std::string::String> {
574        &self.cause
575    }
576    /// <p>The Amazon Resource Name (ARN) of the state machine version associated with the execution. The version ARN is a combination of state machine ARN and the version number separated by a colon (:). For example, <code>stateMachineARN:1</code>.</p>
577    /// <p>If you start an execution from a <code>StartExecution</code> request without specifying a state machine version or alias ARN, Step Functions returns a null value.</p>
578    pub fn state_machine_version_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
579        self.state_machine_version_arn = ::std::option::Option::Some(input.into());
580        self
581    }
582    /// <p>The Amazon Resource Name (ARN) of the state machine version associated with the execution. The version ARN is a combination of state machine ARN and the version number separated by a colon (:). For example, <code>stateMachineARN:1</code>.</p>
583    /// <p>If you start an execution from a <code>StartExecution</code> request without specifying a state machine version or alias ARN, Step Functions returns a null value.</p>
584    pub fn set_state_machine_version_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
585        self.state_machine_version_arn = input;
586        self
587    }
588    /// <p>The Amazon Resource Name (ARN) of the state machine version associated with the execution. The version ARN is a combination of state machine ARN and the version number separated by a colon (:). For example, <code>stateMachineARN:1</code>.</p>
589    /// <p>If you start an execution from a <code>StartExecution</code> request without specifying a state machine version or alias ARN, Step Functions returns a null value.</p>
590    pub fn get_state_machine_version_arn(&self) -> &::std::option::Option<::std::string::String> {
591        &self.state_machine_version_arn
592    }
593    /// <p>The Amazon Resource Name (ARN) of the state machine alias associated with the execution. The alias ARN is a combination of state machine ARN and the alias name separated by a colon (:). For example, <code>stateMachineARN:PROD</code>.</p>
594    /// <p>If you start an execution from a <code>StartExecution</code> request with a state machine version ARN, this field will be null.</p>
595    pub fn state_machine_alias_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
596        self.state_machine_alias_arn = ::std::option::Option::Some(input.into());
597        self
598    }
599    /// <p>The Amazon Resource Name (ARN) of the state machine alias associated with the execution. The alias ARN is a combination of state machine ARN and the alias name separated by a colon (:). For example, <code>stateMachineARN:PROD</code>.</p>
600    /// <p>If you start an execution from a <code>StartExecution</code> request with a state machine version ARN, this field will be null.</p>
601    pub fn set_state_machine_alias_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
602        self.state_machine_alias_arn = input;
603        self
604    }
605    /// <p>The Amazon Resource Name (ARN) of the state machine alias associated with the execution. The alias ARN is a combination of state machine ARN and the alias name separated by a colon (:). For example, <code>stateMachineARN:PROD</code>.</p>
606    /// <p>If you start an execution from a <code>StartExecution</code> request with a state machine version ARN, this field will be null.</p>
607    pub fn get_state_machine_alias_arn(&self) -> &::std::option::Option<::std::string::String> {
608        &self.state_machine_alias_arn
609    }
610    /// <p>The number of times you've redriven an execution. If you have not yet redriven an execution, the <code>redriveCount</code> is 0. This count is only updated if you successfully redrive an execution.</p>
611    pub fn redrive_count(mut self, input: i32) -> Self {
612        self.redrive_count = ::std::option::Option::Some(input);
613        self
614    }
615    /// <p>The number of times you've redriven an execution. If you have not yet redriven an execution, the <code>redriveCount</code> is 0. This count is only updated if you successfully redrive an execution.</p>
616    pub fn set_redrive_count(mut self, input: ::std::option::Option<i32>) -> Self {
617        self.redrive_count = input;
618        self
619    }
620    /// <p>The number of times you've redriven an execution. If you have not yet redriven an execution, the <code>redriveCount</code> is 0. This count is only updated if you successfully redrive an execution.</p>
621    pub fn get_redrive_count(&self) -> &::std::option::Option<i32> {
622        &self.redrive_count
623    }
624    /// <p>The date the execution was last redriven. If you have not yet redriven an execution, the <code>redriveDate</code> is null.</p>
625    /// <p>The <code>redriveDate</code> is unavailable if you redrive a Map Run that starts child workflow executions of type <code>EXPRESS</code>.</p>
626    pub fn redrive_date(mut self, input: ::aws_smithy_types::DateTime) -> Self {
627        self.redrive_date = ::std::option::Option::Some(input);
628        self
629    }
630    /// <p>The date the execution was last redriven. If you have not yet redriven an execution, the <code>redriveDate</code> is null.</p>
631    /// <p>The <code>redriveDate</code> is unavailable if you redrive a Map Run that starts child workflow executions of type <code>EXPRESS</code>.</p>
632    pub fn set_redrive_date(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
633        self.redrive_date = input;
634        self
635    }
636    /// <p>The date the execution was last redriven. If you have not yet redriven an execution, the <code>redriveDate</code> is null.</p>
637    /// <p>The <code>redriveDate</code> is unavailable if you redrive a Map Run that starts child workflow executions of type <code>EXPRESS</code>.</p>
638    pub fn get_redrive_date(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
639        &self.redrive_date
640    }
641    /// <p>Indicates whether or not an execution can be redriven at a given point in time.</p>
642    /// <ul>
643    /// <li>
644    /// <p>For executions of type <code>STANDARD</code>, <code>redriveStatus</code> is <code>NOT_REDRIVABLE</code> if calling the <code>RedriveExecution</code> API action would return the <code>ExecutionNotRedrivable</code> error.</p></li>
645    /// <li>
646    /// <p>For a Distributed Map that includes child workflows of type <code>STANDARD</code>, <code>redriveStatus</code> indicates whether or not the Map Run can redrive child workflow executions.</p></li>
647    /// <li>
648    /// <p>For a Distributed Map that includes child workflows of type <code>EXPRESS</code>, <code>redriveStatus</code> indicates whether or not the Map Run can redrive child workflow executions.</p>
649    /// <p>You can redrive failed or timed out <code>EXPRESS</code> workflows <i>only if</i> they're a part of a Map Run. When you <a href="https://docs.aws.amazon.com/step-functions/latest/dg/redrive-map-run.html">redrive</a> the Map Run, these workflows are restarted using the <code>StartExecution</code> API action.</p></li>
650    /// </ul>
651    pub fn redrive_status(mut self, input: crate::types::ExecutionRedriveStatus) -> Self {
652        self.redrive_status = ::std::option::Option::Some(input);
653        self
654    }
655    /// <p>Indicates whether or not an execution can be redriven at a given point in time.</p>
656    /// <ul>
657    /// <li>
658    /// <p>For executions of type <code>STANDARD</code>, <code>redriveStatus</code> is <code>NOT_REDRIVABLE</code> if calling the <code>RedriveExecution</code> API action would return the <code>ExecutionNotRedrivable</code> error.</p></li>
659    /// <li>
660    /// <p>For a Distributed Map that includes child workflows of type <code>STANDARD</code>, <code>redriveStatus</code> indicates whether or not the Map Run can redrive child workflow executions.</p></li>
661    /// <li>
662    /// <p>For a Distributed Map that includes child workflows of type <code>EXPRESS</code>, <code>redriveStatus</code> indicates whether or not the Map Run can redrive child workflow executions.</p>
663    /// <p>You can redrive failed or timed out <code>EXPRESS</code> workflows <i>only if</i> they're a part of a Map Run. When you <a href="https://docs.aws.amazon.com/step-functions/latest/dg/redrive-map-run.html">redrive</a> the Map Run, these workflows are restarted using the <code>StartExecution</code> API action.</p></li>
664    /// </ul>
665    pub fn set_redrive_status(mut self, input: ::std::option::Option<crate::types::ExecutionRedriveStatus>) -> Self {
666        self.redrive_status = input;
667        self
668    }
669    /// <p>Indicates whether or not an execution can be redriven at a given point in time.</p>
670    /// <ul>
671    /// <li>
672    /// <p>For executions of type <code>STANDARD</code>, <code>redriveStatus</code> is <code>NOT_REDRIVABLE</code> if calling the <code>RedriveExecution</code> API action would return the <code>ExecutionNotRedrivable</code> error.</p></li>
673    /// <li>
674    /// <p>For a Distributed Map that includes child workflows of type <code>STANDARD</code>, <code>redriveStatus</code> indicates whether or not the Map Run can redrive child workflow executions.</p></li>
675    /// <li>
676    /// <p>For a Distributed Map that includes child workflows of type <code>EXPRESS</code>, <code>redriveStatus</code> indicates whether or not the Map Run can redrive child workflow executions.</p>
677    /// <p>You can redrive failed or timed out <code>EXPRESS</code> workflows <i>only if</i> they're a part of a Map Run. When you <a href="https://docs.aws.amazon.com/step-functions/latest/dg/redrive-map-run.html">redrive</a> the Map Run, these workflows are restarted using the <code>StartExecution</code> API action.</p></li>
678    /// </ul>
679    pub fn get_redrive_status(&self) -> &::std::option::Option<crate::types::ExecutionRedriveStatus> {
680        &self.redrive_status
681    }
682    /// <p>When <code>redriveStatus</code> is <code>NOT_REDRIVABLE</code>, <code>redriveStatusReason</code> specifies the reason why an execution cannot be redriven.</p>
683    /// <ul>
684    /// <li>
685    /// <p>For executions of type <code>STANDARD</code>, or for a Distributed Map that includes child workflows of type <code>STANDARD</code>, <code>redriveStatusReason</code> can include one of the following reasons:</p>
686    /// <ul>
687    /// <li>
688    /// <p><code>State machine is in DELETING status</code>.</p></li>
689    /// <li>
690    /// <p><code>Execution is RUNNING and cannot be redriven</code>.</p></li>
691    /// <li>
692    /// <p><code>Execution is SUCCEEDED and cannot be redriven</code>.</p></li>
693    /// <li>
694    /// <p><code>Execution was started before the launch of RedriveExecution</code>.</p></li>
695    /// <li>
696    /// <p><code>Execution history event limit exceeded</code>.</p></li>
697    /// <li>
698    /// <p><code>Execution has exceeded the max execution time</code>.</p></li>
699    /// <li>
700    /// <p><code>Execution redrivable period exceeded</code>.</p></li>
701    /// </ul></li>
702    /// <li>
703    /// <p>For a Distributed Map that includes child workflows of type <code>EXPRESS</code>, <code>redriveStatusReason</code> is only returned if the child workflows are not redrivable. This happens when the child workflow executions have completed successfully.</p></li>
704    /// </ul>
705    pub fn redrive_status_reason(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
706        self.redrive_status_reason = ::std::option::Option::Some(input.into());
707        self
708    }
709    /// <p>When <code>redriveStatus</code> is <code>NOT_REDRIVABLE</code>, <code>redriveStatusReason</code> specifies the reason why an execution cannot be redriven.</p>
710    /// <ul>
711    /// <li>
712    /// <p>For executions of type <code>STANDARD</code>, or for a Distributed Map that includes child workflows of type <code>STANDARD</code>, <code>redriveStatusReason</code> can include one of the following reasons:</p>
713    /// <ul>
714    /// <li>
715    /// <p><code>State machine is in DELETING status</code>.</p></li>
716    /// <li>
717    /// <p><code>Execution is RUNNING and cannot be redriven</code>.</p></li>
718    /// <li>
719    /// <p><code>Execution is SUCCEEDED and cannot be redriven</code>.</p></li>
720    /// <li>
721    /// <p><code>Execution was started before the launch of RedriveExecution</code>.</p></li>
722    /// <li>
723    /// <p><code>Execution history event limit exceeded</code>.</p></li>
724    /// <li>
725    /// <p><code>Execution has exceeded the max execution time</code>.</p></li>
726    /// <li>
727    /// <p><code>Execution redrivable period exceeded</code>.</p></li>
728    /// </ul></li>
729    /// <li>
730    /// <p>For a Distributed Map that includes child workflows of type <code>EXPRESS</code>, <code>redriveStatusReason</code> is only returned if the child workflows are not redrivable. This happens when the child workflow executions have completed successfully.</p></li>
731    /// </ul>
732    pub fn set_redrive_status_reason(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
733        self.redrive_status_reason = input;
734        self
735    }
736    /// <p>When <code>redriveStatus</code> is <code>NOT_REDRIVABLE</code>, <code>redriveStatusReason</code> specifies the reason why an execution cannot be redriven.</p>
737    /// <ul>
738    /// <li>
739    /// <p>For executions of type <code>STANDARD</code>, or for a Distributed Map that includes child workflows of type <code>STANDARD</code>, <code>redriveStatusReason</code> can include one of the following reasons:</p>
740    /// <ul>
741    /// <li>
742    /// <p><code>State machine is in DELETING status</code>.</p></li>
743    /// <li>
744    /// <p><code>Execution is RUNNING and cannot be redriven</code>.</p></li>
745    /// <li>
746    /// <p><code>Execution is SUCCEEDED and cannot be redriven</code>.</p></li>
747    /// <li>
748    /// <p><code>Execution was started before the launch of RedriveExecution</code>.</p></li>
749    /// <li>
750    /// <p><code>Execution history event limit exceeded</code>.</p></li>
751    /// <li>
752    /// <p><code>Execution has exceeded the max execution time</code>.</p></li>
753    /// <li>
754    /// <p><code>Execution redrivable period exceeded</code>.</p></li>
755    /// </ul></li>
756    /// <li>
757    /// <p>For a Distributed Map that includes child workflows of type <code>EXPRESS</code>, <code>redriveStatusReason</code> is only returned if the child workflows are not redrivable. This happens when the child workflow executions have completed successfully.</p></li>
758    /// </ul>
759    pub fn get_redrive_status_reason(&self) -> &::std::option::Option<::std::string::String> {
760        &self.redrive_status_reason
761    }
762    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
763        self._request_id = Some(request_id.into());
764        self
765    }
766
767    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
768        self._request_id = request_id;
769        self
770    }
771    /// Consumes the builder and constructs a [`DescribeExecutionOutput`](crate::operation::describe_execution::DescribeExecutionOutput).
772    /// This method will fail if any of the following fields are not set:
773    /// - [`execution_arn`](crate::operation::describe_execution::builders::DescribeExecutionOutputBuilder::execution_arn)
774    /// - [`state_machine_arn`](crate::operation::describe_execution::builders::DescribeExecutionOutputBuilder::state_machine_arn)
775    /// - [`status`](crate::operation::describe_execution::builders::DescribeExecutionOutputBuilder::status)
776    /// - [`start_date`](crate::operation::describe_execution::builders::DescribeExecutionOutputBuilder::start_date)
777    pub fn build(
778        self,
779    ) -> ::std::result::Result<crate::operation::describe_execution::DescribeExecutionOutput, ::aws_smithy_types::error::operation::BuildError> {
780        ::std::result::Result::Ok(crate::operation::describe_execution::DescribeExecutionOutput {
781            execution_arn: self.execution_arn.ok_or_else(|| {
782                ::aws_smithy_types::error::operation::BuildError::missing_field(
783                    "execution_arn",
784                    "execution_arn was not specified but it is required when building DescribeExecutionOutput",
785                )
786            })?,
787            state_machine_arn: self.state_machine_arn.ok_or_else(|| {
788                ::aws_smithy_types::error::operation::BuildError::missing_field(
789                    "state_machine_arn",
790                    "state_machine_arn was not specified but it is required when building DescribeExecutionOutput",
791                )
792            })?,
793            name: self.name,
794            status: self.status.ok_or_else(|| {
795                ::aws_smithy_types::error::operation::BuildError::missing_field(
796                    "status",
797                    "status was not specified but it is required when building DescribeExecutionOutput",
798                )
799            })?,
800            start_date: self.start_date.ok_or_else(|| {
801                ::aws_smithy_types::error::operation::BuildError::missing_field(
802                    "start_date",
803                    "start_date was not specified but it is required when building DescribeExecutionOutput",
804                )
805            })?,
806            stop_date: self.stop_date,
807            input: self.input,
808            input_details: self.input_details,
809            output: self.output,
810            output_details: self.output_details,
811            trace_header: self.trace_header,
812            map_run_arn: self.map_run_arn,
813            error: self.error,
814            cause: self.cause,
815            state_machine_version_arn: self.state_machine_version_arn,
816            state_machine_alias_arn: self.state_machine_alias_arn,
817            redrive_count: self.redrive_count,
818            redrive_date: self.redrive_date,
819            redrive_status: self.redrive_status,
820            redrive_status_reason: self.redrive_status_reason,
821            _request_id: self._request_id,
822        })
823    }
824}
825impl ::std::fmt::Debug for DescribeExecutionOutputBuilder {
826    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
827        let mut formatter = f.debug_struct("DescribeExecutionOutputBuilder");
828        formatter.field("execution_arn", &self.execution_arn);
829        formatter.field("state_machine_arn", &self.state_machine_arn);
830        formatter.field("name", &self.name);
831        formatter.field("status", &self.status);
832        formatter.field("start_date", &self.start_date);
833        formatter.field("stop_date", &self.stop_date);
834        formatter.field("input", &"*** Sensitive Data Redacted ***");
835        formatter.field("input_details", &self.input_details);
836        formatter.field("output", &"*** Sensitive Data Redacted ***");
837        formatter.field("output_details", &self.output_details);
838        formatter.field("trace_header", &self.trace_header);
839        formatter.field("map_run_arn", &self.map_run_arn);
840        formatter.field("error", &"*** Sensitive Data Redacted ***");
841        formatter.field("cause", &"*** Sensitive Data Redacted ***");
842        formatter.field("state_machine_version_arn", &self.state_machine_version_arn);
843        formatter.field("state_machine_alias_arn", &self.state_machine_alias_arn);
844        formatter.field("redrive_count", &self.redrive_count);
845        formatter.field("redrive_date", &self.redrive_date);
846        formatter.field("redrive_status", &self.redrive_status);
847        formatter.field("redrive_status_reason", &"*** Sensitive Data Redacted ***");
848        formatter.field("_request_id", &self._request_id);
849        formatter.finish()
850    }
851}