aws_sdk_sfn/operation/start_execution/
_start_execution_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)]
5pub struct StartExecutionInput {
6    /// <p>The Amazon Resource Name (ARN) of the state machine to execute.</p>
7    /// <p>The <code>stateMachineArn</code> parameter accepts one of the following inputs:</p>
8    /// <ul>
9    /// <li>
10    /// <p><b>An unqualified state machine ARN</b> – Refers to a state machine ARN that isn't qualified with a version or alias ARN. The following is an example of an unqualified state machine ARN.</p>
11    /// <p><code>arn:<partition>
12    /// :states:
13    /// <region>
14    /// :
15    /// <account-id>
16    /// :stateMachine:
17    /// <mystatemachine></mystatemachine>
18    /// </account-id>
19    /// </region>
20    /// </partition></code></p>
21    /// <p>Step Functions doesn't associate state machine executions that you start with an unqualified ARN with a version. This is true even if that version uses the same revision that the execution used.</p></li>
22    /// <li>
23    /// <p><b>A state machine version ARN</b> – Refers to a version ARN, which is a combination of state machine ARN and the version number separated by a colon (:). The following is an example of the ARN for version 10.</p>
24    /// <p><code>arn:<partition>
25    /// :states:
26    /// <region>
27    /// :
28    /// <account-id>
29    /// :stateMachine:
30    /// <mystatemachine>
31    /// :10
32    /// </mystatemachine>
33    /// </account-id>
34    /// </region>
35    /// </partition></code></p>
36    /// <p>Step Functions doesn't associate executions that you start with a version ARN with any aliases that point to that version.</p></li>
37    /// <li>
38    /// <p><b>A state machine alias ARN</b> – Refers to an alias ARN, which is a combination of state machine ARN and the alias name separated by a colon (:). The following is an example of the ARN for an alias named <code>PROD</code>.</p>
39    /// <p><code>arn:<partition>
40    /// :states:
41    /// <region>
42    /// :
43    /// <account-id>
44    /// :stateMachine:
45    /// <mystatemachine:prod></mystatemachine:prod>
46    /// </account-id>
47    /// </region>
48    /// </partition></code></p>
49    /// <p>Step Functions associates executions that you start with an alias ARN with that alias and the state machine version used for that execution.</p></li>
50    /// </ul>
51    pub state_machine_arn: ::std::option::Option<::std::string::String>,
52    /// <p>Optional name of the execution. This name must be unique for your Amazon Web Services account, Region, and state machine for 90 days. For more information, see <a href="https://docs.aws.amazon.com/step-functions/latest/dg/limits.html#service-limits-state-machine-executions"> Limits Related to State Machine Executions</a> in the <i>Step Functions Developer Guide</i>.</p>
53    /// <p>If you don't provide a name for the execution, Step Functions automatically generates a universally unique identifier (UUID) as the execution name.</p>
54    /// <p>A name must <i>not</i> contain:</p>
55    /// <ul>
56    /// <li>
57    /// <p>white space</p></li>
58    /// <li>
59    /// <p>brackets <code>&lt; &gt; { } \[ \]</code></p></li>
60    /// <li>
61    /// <p>wildcard characters <code>? *</code></p></li>
62    /// <li>
63    /// <p>special characters <code>" # % \ ^ | ~ ` $ &amp; , ; : /</code></p></li>
64    /// <li>
65    /// <p>control characters (<code>U+0000-001F</code>, <code>U+007F-009F</code>, <code>U+FFFE-FFFF</code>)</p></li>
66    /// <li>
67    /// <p>surrogates (<code>U+D800-DFFF</code>)</p></li>
68    /// <li>
69    /// <p>invalid characters (<code> U+10FFFF</code>)</p></li>
70    /// </ul>
71    /// <p>To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.</p>
72    pub name: ::std::option::Option<::std::string::String>,
73    /// <p>The string that contains the JSON input data for the execution, for example:</p>
74    /// <p><code>"{\"first_name\" : \"Alejandro\"}"</code></p><note>
75    /// <p>If you don't include any JSON input data, you still must include the two braces, for example: <code>"{}"</code></p>
76    /// </note>
77    /// <p>Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.</p>
78    pub input: ::std::option::Option<::std::string::String>,
79    /// <p>Passes the X-Ray trace header. The trace header can also be passed in the request payload.</p><note>
80    /// <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>
81    /// </note>
82    pub trace_header: ::std::option::Option<::std::string::String>,
83}
84impl StartExecutionInput {
85    /// <p>The Amazon Resource Name (ARN) of the state machine to execute.</p>
86    /// <p>The <code>stateMachineArn</code> parameter accepts one of the following inputs:</p>
87    /// <ul>
88    /// <li>
89    /// <p><b>An unqualified state machine ARN</b> – Refers to a state machine ARN that isn't qualified with a version or alias ARN. The following is an example of an unqualified state machine ARN.</p>
90    /// <p><code>arn:<partition>
91    /// :states:
92    /// <region>
93    /// :
94    /// <account-id>
95    /// :stateMachine:
96    /// <mystatemachine></mystatemachine>
97    /// </account-id>
98    /// </region>
99    /// </partition></code></p>
100    /// <p>Step Functions doesn't associate state machine executions that you start with an unqualified ARN with a version. This is true even if that version uses the same revision that the execution used.</p></li>
101    /// <li>
102    /// <p><b>A state machine version ARN</b> – Refers to a version ARN, which is a combination of state machine ARN and the version number separated by a colon (:). The following is an example of the ARN for version 10.</p>
103    /// <p><code>arn:<partition>
104    /// :states:
105    /// <region>
106    /// :
107    /// <account-id>
108    /// :stateMachine:
109    /// <mystatemachine>
110    /// :10
111    /// </mystatemachine>
112    /// </account-id>
113    /// </region>
114    /// </partition></code></p>
115    /// <p>Step Functions doesn't associate executions that you start with a version ARN with any aliases that point to that version.</p></li>
116    /// <li>
117    /// <p><b>A state machine alias ARN</b> – Refers to an alias ARN, which is a combination of state machine ARN and the alias name separated by a colon (:). The following is an example of the ARN for an alias named <code>PROD</code>.</p>
118    /// <p><code>arn:<partition>
119    /// :states:
120    /// <region>
121    /// :
122    /// <account-id>
123    /// :stateMachine:
124    /// <mystatemachine:prod></mystatemachine:prod>
125    /// </account-id>
126    /// </region>
127    /// </partition></code></p>
128    /// <p>Step Functions associates executions that you start with an alias ARN with that alias and the state machine version used for that execution.</p></li>
129    /// </ul>
130    pub fn state_machine_arn(&self) -> ::std::option::Option<&str> {
131        self.state_machine_arn.as_deref()
132    }
133    /// <p>Optional name of the execution. This name must be unique for your Amazon Web Services account, Region, and state machine for 90 days. For more information, see <a href="https://docs.aws.amazon.com/step-functions/latest/dg/limits.html#service-limits-state-machine-executions"> Limits Related to State Machine Executions</a> in the <i>Step Functions Developer Guide</i>.</p>
134    /// <p>If you don't provide a name for the execution, Step Functions automatically generates a universally unique identifier (UUID) as the execution name.</p>
135    /// <p>A name must <i>not</i> contain:</p>
136    /// <ul>
137    /// <li>
138    /// <p>white space</p></li>
139    /// <li>
140    /// <p>brackets <code>&lt; &gt; { } \[ \]</code></p></li>
141    /// <li>
142    /// <p>wildcard characters <code>? *</code></p></li>
143    /// <li>
144    /// <p>special characters <code>" # % \ ^ | ~ ` $ &amp; , ; : /</code></p></li>
145    /// <li>
146    /// <p>control characters (<code>U+0000-001F</code>, <code>U+007F-009F</code>, <code>U+FFFE-FFFF</code>)</p></li>
147    /// <li>
148    /// <p>surrogates (<code>U+D800-DFFF</code>)</p></li>
149    /// <li>
150    /// <p>invalid characters (<code> U+10FFFF</code>)</p></li>
151    /// </ul>
152    /// <p>To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.</p>
153    pub fn name(&self) -> ::std::option::Option<&str> {
154        self.name.as_deref()
155    }
156    /// <p>The string that contains the JSON input data for the execution, for example:</p>
157    /// <p><code>"{\"first_name\" : \"Alejandro\"}"</code></p><note>
158    /// <p>If you don't include any JSON input data, you still must include the two braces, for example: <code>"{}"</code></p>
159    /// </note>
160    /// <p>Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.</p>
161    pub fn input(&self) -> ::std::option::Option<&str> {
162        self.input.as_deref()
163    }
164    /// <p>Passes the X-Ray trace header. The trace header can also be passed in the request payload.</p><note>
165    /// <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>
166    /// </note>
167    pub fn trace_header(&self) -> ::std::option::Option<&str> {
168        self.trace_header.as_deref()
169    }
170}
171impl ::std::fmt::Debug for StartExecutionInput {
172    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
173        let mut formatter = f.debug_struct("StartExecutionInput");
174        formatter.field("state_machine_arn", &self.state_machine_arn);
175        formatter.field("name", &self.name);
176        formatter.field("input", &"*** Sensitive Data Redacted ***");
177        formatter.field("trace_header", &self.trace_header);
178        formatter.finish()
179    }
180}
181impl StartExecutionInput {
182    /// Creates a new builder-style object to manufacture [`StartExecutionInput`](crate::operation::start_execution::StartExecutionInput).
183    pub fn builder() -> crate::operation::start_execution::builders::StartExecutionInputBuilder {
184        crate::operation::start_execution::builders::StartExecutionInputBuilder::default()
185    }
186}
187
188/// A builder for [`StartExecutionInput`](crate::operation::start_execution::StartExecutionInput).
189#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
190#[non_exhaustive]
191pub struct StartExecutionInputBuilder {
192    pub(crate) state_machine_arn: ::std::option::Option<::std::string::String>,
193    pub(crate) name: ::std::option::Option<::std::string::String>,
194    pub(crate) input: ::std::option::Option<::std::string::String>,
195    pub(crate) trace_header: ::std::option::Option<::std::string::String>,
196}
197impl StartExecutionInputBuilder {
198    /// <p>The Amazon Resource Name (ARN) of the state machine to execute.</p>
199    /// <p>The <code>stateMachineArn</code> parameter accepts one of the following inputs:</p>
200    /// <ul>
201    /// <li>
202    /// <p><b>An unqualified state machine ARN</b> – Refers to a state machine ARN that isn't qualified with a version or alias ARN. The following is an example of an unqualified state machine ARN.</p>
203    /// <p><code>arn:<partition>
204    /// :states:
205    /// <region>
206    /// :
207    /// <account-id>
208    /// :stateMachine:
209    /// <mystatemachine></mystatemachine>
210    /// </account-id>
211    /// </region>
212    /// </partition></code></p>
213    /// <p>Step Functions doesn't associate state machine executions that you start with an unqualified ARN with a version. This is true even if that version uses the same revision that the execution used.</p></li>
214    /// <li>
215    /// <p><b>A state machine version ARN</b> – Refers to a version ARN, which is a combination of state machine ARN and the version number separated by a colon (:). The following is an example of the ARN for version 10.</p>
216    /// <p><code>arn:<partition>
217    /// :states:
218    /// <region>
219    /// :
220    /// <account-id>
221    /// :stateMachine:
222    /// <mystatemachine>
223    /// :10
224    /// </mystatemachine>
225    /// </account-id>
226    /// </region>
227    /// </partition></code></p>
228    /// <p>Step Functions doesn't associate executions that you start with a version ARN with any aliases that point to that version.</p></li>
229    /// <li>
230    /// <p><b>A state machine alias ARN</b> – Refers to an alias ARN, which is a combination of state machine ARN and the alias name separated by a colon (:). The following is an example of the ARN for an alias named <code>PROD</code>.</p>
231    /// <p><code>arn:<partition>
232    /// :states:
233    /// <region>
234    /// :
235    /// <account-id>
236    /// :stateMachine:
237    /// <mystatemachine:prod></mystatemachine:prod>
238    /// </account-id>
239    /// </region>
240    /// </partition></code></p>
241    /// <p>Step Functions associates executions that you start with an alias ARN with that alias and the state machine version used for that execution.</p></li>
242    /// </ul>
243    /// This field is required.
244    pub fn state_machine_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
245        self.state_machine_arn = ::std::option::Option::Some(input.into());
246        self
247    }
248    /// <p>The Amazon Resource Name (ARN) of the state machine to execute.</p>
249    /// <p>The <code>stateMachineArn</code> parameter accepts one of the following inputs:</p>
250    /// <ul>
251    /// <li>
252    /// <p><b>An unqualified state machine ARN</b> – Refers to a state machine ARN that isn't qualified with a version or alias ARN. The following is an example of an unqualified state machine ARN.</p>
253    /// <p><code>arn:<partition>
254    /// :states:
255    /// <region>
256    /// :
257    /// <account-id>
258    /// :stateMachine:
259    /// <mystatemachine></mystatemachine>
260    /// </account-id>
261    /// </region>
262    /// </partition></code></p>
263    /// <p>Step Functions doesn't associate state machine executions that you start with an unqualified ARN with a version. This is true even if that version uses the same revision that the execution used.</p></li>
264    /// <li>
265    /// <p><b>A state machine version ARN</b> – Refers to a version ARN, which is a combination of state machine ARN and the version number separated by a colon (:). The following is an example of the ARN for version 10.</p>
266    /// <p><code>arn:<partition>
267    /// :states:
268    /// <region>
269    /// :
270    /// <account-id>
271    /// :stateMachine:
272    /// <mystatemachine>
273    /// :10
274    /// </mystatemachine>
275    /// </account-id>
276    /// </region>
277    /// </partition></code></p>
278    /// <p>Step Functions doesn't associate executions that you start with a version ARN with any aliases that point to that version.</p></li>
279    /// <li>
280    /// <p><b>A state machine alias ARN</b> – Refers to an alias ARN, which is a combination of state machine ARN and the alias name separated by a colon (:). The following is an example of the ARN for an alias named <code>PROD</code>.</p>
281    /// <p><code>arn:<partition>
282    /// :states:
283    /// <region>
284    /// :
285    /// <account-id>
286    /// :stateMachine:
287    /// <mystatemachine:prod></mystatemachine:prod>
288    /// </account-id>
289    /// </region>
290    /// </partition></code></p>
291    /// <p>Step Functions associates executions that you start with an alias ARN with that alias and the state machine version used for that execution.</p></li>
292    /// </ul>
293    pub fn set_state_machine_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
294        self.state_machine_arn = input;
295        self
296    }
297    /// <p>The Amazon Resource Name (ARN) of the state machine to execute.</p>
298    /// <p>The <code>stateMachineArn</code> parameter accepts one of the following inputs:</p>
299    /// <ul>
300    /// <li>
301    /// <p><b>An unqualified state machine ARN</b> – Refers to a state machine ARN that isn't qualified with a version or alias ARN. The following is an example of an unqualified state machine ARN.</p>
302    /// <p><code>arn:<partition>
303    /// :states:
304    /// <region>
305    /// :
306    /// <account-id>
307    /// :stateMachine:
308    /// <mystatemachine></mystatemachine>
309    /// </account-id>
310    /// </region>
311    /// </partition></code></p>
312    /// <p>Step Functions doesn't associate state machine executions that you start with an unqualified ARN with a version. This is true even if that version uses the same revision that the execution used.</p></li>
313    /// <li>
314    /// <p><b>A state machine version ARN</b> – Refers to a version ARN, which is a combination of state machine ARN and the version number separated by a colon (:). The following is an example of the ARN for version 10.</p>
315    /// <p><code>arn:<partition>
316    /// :states:
317    /// <region>
318    /// :
319    /// <account-id>
320    /// :stateMachine:
321    /// <mystatemachine>
322    /// :10
323    /// </mystatemachine>
324    /// </account-id>
325    /// </region>
326    /// </partition></code></p>
327    /// <p>Step Functions doesn't associate executions that you start with a version ARN with any aliases that point to that version.</p></li>
328    /// <li>
329    /// <p><b>A state machine alias ARN</b> – Refers to an alias ARN, which is a combination of state machine ARN and the alias name separated by a colon (:). The following is an example of the ARN for an alias named <code>PROD</code>.</p>
330    /// <p><code>arn:<partition>
331    /// :states:
332    /// <region>
333    /// :
334    /// <account-id>
335    /// :stateMachine:
336    /// <mystatemachine:prod></mystatemachine:prod>
337    /// </account-id>
338    /// </region>
339    /// </partition></code></p>
340    /// <p>Step Functions associates executions that you start with an alias ARN with that alias and the state machine version used for that execution.</p></li>
341    /// </ul>
342    pub fn get_state_machine_arn(&self) -> &::std::option::Option<::std::string::String> {
343        &self.state_machine_arn
344    }
345    /// <p>Optional name of the execution. This name must be unique for your Amazon Web Services account, Region, and state machine for 90 days. For more information, see <a href="https://docs.aws.amazon.com/step-functions/latest/dg/limits.html#service-limits-state-machine-executions"> Limits Related to State Machine Executions</a> in the <i>Step Functions Developer Guide</i>.</p>
346    /// <p>If you don't provide a name for the execution, Step Functions automatically generates a universally unique identifier (UUID) as the execution name.</p>
347    /// <p>A name must <i>not</i> contain:</p>
348    /// <ul>
349    /// <li>
350    /// <p>white space</p></li>
351    /// <li>
352    /// <p>brackets <code>&lt; &gt; { } \[ \]</code></p></li>
353    /// <li>
354    /// <p>wildcard characters <code>? *</code></p></li>
355    /// <li>
356    /// <p>special characters <code>" # % \ ^ | ~ ` $ &amp; , ; : /</code></p></li>
357    /// <li>
358    /// <p>control characters (<code>U+0000-001F</code>, <code>U+007F-009F</code>, <code>U+FFFE-FFFF</code>)</p></li>
359    /// <li>
360    /// <p>surrogates (<code>U+D800-DFFF</code>)</p></li>
361    /// <li>
362    /// <p>invalid characters (<code> U+10FFFF</code>)</p></li>
363    /// </ul>
364    /// <p>To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.</p>
365    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
366        self.name = ::std::option::Option::Some(input.into());
367        self
368    }
369    /// <p>Optional name of the execution. This name must be unique for your Amazon Web Services account, Region, and state machine for 90 days. For more information, see <a href="https://docs.aws.amazon.com/step-functions/latest/dg/limits.html#service-limits-state-machine-executions"> Limits Related to State Machine Executions</a> in the <i>Step Functions Developer Guide</i>.</p>
370    /// <p>If you don't provide a name for the execution, Step Functions automatically generates a universally unique identifier (UUID) as the execution name.</p>
371    /// <p>A name must <i>not</i> contain:</p>
372    /// <ul>
373    /// <li>
374    /// <p>white space</p></li>
375    /// <li>
376    /// <p>brackets <code>&lt; &gt; { } \[ \]</code></p></li>
377    /// <li>
378    /// <p>wildcard characters <code>? *</code></p></li>
379    /// <li>
380    /// <p>special characters <code>" # % \ ^ | ~ ` $ &amp; , ; : /</code></p></li>
381    /// <li>
382    /// <p>control characters (<code>U+0000-001F</code>, <code>U+007F-009F</code>, <code>U+FFFE-FFFF</code>)</p></li>
383    /// <li>
384    /// <p>surrogates (<code>U+D800-DFFF</code>)</p></li>
385    /// <li>
386    /// <p>invalid characters (<code> U+10FFFF</code>)</p></li>
387    /// </ul>
388    /// <p>To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.</p>
389    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
390        self.name = input;
391        self
392    }
393    /// <p>Optional name of the execution. This name must be unique for your Amazon Web Services account, Region, and state machine for 90 days. For more information, see <a href="https://docs.aws.amazon.com/step-functions/latest/dg/limits.html#service-limits-state-machine-executions"> Limits Related to State Machine Executions</a> in the <i>Step Functions Developer Guide</i>.</p>
394    /// <p>If you don't provide a name for the execution, Step Functions automatically generates a universally unique identifier (UUID) as the execution name.</p>
395    /// <p>A name must <i>not</i> contain:</p>
396    /// <ul>
397    /// <li>
398    /// <p>white space</p></li>
399    /// <li>
400    /// <p>brackets <code>&lt; &gt; { } \[ \]</code></p></li>
401    /// <li>
402    /// <p>wildcard characters <code>? *</code></p></li>
403    /// <li>
404    /// <p>special characters <code>" # % \ ^ | ~ ` $ &amp; , ; : /</code></p></li>
405    /// <li>
406    /// <p>control characters (<code>U+0000-001F</code>, <code>U+007F-009F</code>, <code>U+FFFE-FFFF</code>)</p></li>
407    /// <li>
408    /// <p>surrogates (<code>U+D800-DFFF</code>)</p></li>
409    /// <li>
410    /// <p>invalid characters (<code> U+10FFFF</code>)</p></li>
411    /// </ul>
412    /// <p>To enable logging with CloudWatch Logs, the name should only contain 0-9, A-Z, a-z, - and _.</p>
413    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
414        &self.name
415    }
416    /// <p>The string that contains the JSON input data for the execution, for example:</p>
417    /// <p><code>"{\"first_name\" : \"Alejandro\"}"</code></p><note>
418    /// <p>If you don't include any JSON input data, you still must include the two braces, for example: <code>"{}"</code></p>
419    /// </note>
420    /// <p>Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.</p>
421    pub fn input(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
422        self.input = ::std::option::Option::Some(input.into());
423        self
424    }
425    /// <p>The string that contains the JSON input data for the execution, for example:</p>
426    /// <p><code>"{\"first_name\" : \"Alejandro\"}"</code></p><note>
427    /// <p>If you don't include any JSON input data, you still must include the two braces, for example: <code>"{}"</code></p>
428    /// </note>
429    /// <p>Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.</p>
430    pub fn set_input(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
431        self.input = input;
432        self
433    }
434    /// <p>The string that contains the JSON input data for the execution, for example:</p>
435    /// <p><code>"{\"first_name\" : \"Alejandro\"}"</code></p><note>
436    /// <p>If you don't include any JSON input data, you still must include the two braces, for example: <code>"{}"</code></p>
437    /// </note>
438    /// <p>Length constraints apply to the payload size, and are expressed as bytes in UTF-8 encoding.</p>
439    pub fn get_input(&self) -> &::std::option::Option<::std::string::String> {
440        &self.input
441    }
442    /// <p>Passes the X-Ray trace header. The trace header can also be passed in the request payload.</p><note>
443    /// <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>
444    /// </note>
445    pub fn trace_header(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
446        self.trace_header = ::std::option::Option::Some(input.into());
447        self
448    }
449    /// <p>Passes the X-Ray trace header. The trace header can also be passed in the request payload.</p><note>
450    /// <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>
451    /// </note>
452    pub fn set_trace_header(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
453        self.trace_header = input;
454        self
455    }
456    /// <p>Passes the X-Ray trace header. The trace header can also be passed in the request payload.</p><note>
457    /// <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>
458    /// </note>
459    pub fn get_trace_header(&self) -> &::std::option::Option<::std::string::String> {
460        &self.trace_header
461    }
462    /// Consumes the builder and constructs a [`StartExecutionInput`](crate::operation::start_execution::StartExecutionInput).
463    pub fn build(
464        self,
465    ) -> ::std::result::Result<crate::operation::start_execution::StartExecutionInput, ::aws_smithy_types::error::operation::BuildError> {
466        ::std::result::Result::Ok(crate::operation::start_execution::StartExecutionInput {
467            state_machine_arn: self.state_machine_arn,
468            name: self.name,
469            input: self.input,
470            trace_header: self.trace_header,
471        })
472    }
473}
474impl ::std::fmt::Debug for StartExecutionInputBuilder {
475    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
476        let mut formatter = f.debug_struct("StartExecutionInputBuilder");
477        formatter.field("state_machine_arn", &self.state_machine_arn);
478        formatter.field("name", &self.name);
479        formatter.field("input", &"*** Sensitive Data Redacted ***");
480        formatter.field("trace_header", &self.trace_header);
481        formatter.finish()
482    }
483}