1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/swf/SWF_EXPORTS.h>
8 #include <aws/swf/SWFRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/swf/model/WorkflowType.h>
11 #include <aws/swf/model/TaskList.h>
12 #include <aws/core/utils/memory/stl/AWSVector.h>
13 #include <aws/swf/model/ChildPolicy.h>
14 #include <utility>
15 
16 namespace Aws
17 {
18 namespace SWF
19 {
20 namespace Model
21 {
22 
23   /**
24    */
25   class AWS_SWF_API StartWorkflowExecutionRequest : public SWFRequest
26   {
27   public:
28     StartWorkflowExecutionRequest();
29 
30     // Service request name is the Operation name which will send this request out,
31     // each operation should has unique request name, so that we can get operation's name from this request.
32     // Note: this is not true for response, multiple operations may have the same response name,
33     // so we can not get operation's name from response.
GetServiceRequestName()34     inline virtual const char* GetServiceRequestName() const override { return "StartWorkflowExecution"; }
35 
36     Aws::String SerializePayload() const override;
37 
38     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
39 
40 
41     /**
42      * <p>The name of the domain in which the workflow execution is created.</p>
43      */
GetDomain()44     inline const Aws::String& GetDomain() const{ return m_domain; }
45 
46     /**
47      * <p>The name of the domain in which the workflow execution is created.</p>
48      */
DomainHasBeenSet()49     inline bool DomainHasBeenSet() const { return m_domainHasBeenSet; }
50 
51     /**
52      * <p>The name of the domain in which the workflow execution is created.</p>
53      */
SetDomain(const Aws::String & value)54     inline void SetDomain(const Aws::String& value) { m_domainHasBeenSet = true; m_domain = value; }
55 
56     /**
57      * <p>The name of the domain in which the workflow execution is created.</p>
58      */
SetDomain(Aws::String && value)59     inline void SetDomain(Aws::String&& value) { m_domainHasBeenSet = true; m_domain = std::move(value); }
60 
61     /**
62      * <p>The name of the domain in which the workflow execution is created.</p>
63      */
SetDomain(const char * value)64     inline void SetDomain(const char* value) { m_domainHasBeenSet = true; m_domain.assign(value); }
65 
66     /**
67      * <p>The name of the domain in which the workflow execution is created.</p>
68      */
WithDomain(const Aws::String & value)69     inline StartWorkflowExecutionRequest& WithDomain(const Aws::String& value) { SetDomain(value); return *this;}
70 
71     /**
72      * <p>The name of the domain in which the workflow execution is created.</p>
73      */
WithDomain(Aws::String && value)74     inline StartWorkflowExecutionRequest& WithDomain(Aws::String&& value) { SetDomain(std::move(value)); return *this;}
75 
76     /**
77      * <p>The name of the domain in which the workflow execution is created.</p>
78      */
WithDomain(const char * value)79     inline StartWorkflowExecutionRequest& WithDomain(const char* value) { SetDomain(value); return *this;}
80 
81 
82     /**
83      * <p>The user defined identifier associated with the workflow execution. You can
84      * use this to associate a custom identifier with the workflow execution. You may
85      * specify the same identifier if a workflow execution is logically a
86      * <i>restart</i> of a previous execution. You cannot have two open workflow
87      * executions with the same <code>workflowId</code> at the same time within the
88      * same domain.</p> <p>The specified string must not start or end with whitespace.
89      * It must not contain a <code>:</code> (colon), <code>/</code> (slash),
90      * <code>|</code> (vertical bar), or any control characters
91      * (<code>\u0000-\u001f</code> | <code>\u007f-\u009f</code>). Also, it must not
92      * <i>be</i> the literal string <code>arn</code>.</p>
93      */
GetWorkflowId()94     inline const Aws::String& GetWorkflowId() const{ return m_workflowId; }
95 
96     /**
97      * <p>The user defined identifier associated with the workflow execution. You can
98      * use this to associate a custom identifier with the workflow execution. You may
99      * specify the same identifier if a workflow execution is logically a
100      * <i>restart</i> of a previous execution. You cannot have two open workflow
101      * executions with the same <code>workflowId</code> at the same time within the
102      * same domain.</p> <p>The specified string must not start or end with whitespace.
103      * It must not contain a <code>:</code> (colon), <code>/</code> (slash),
104      * <code>|</code> (vertical bar), or any control characters
105      * (<code>\u0000-\u001f</code> | <code>\u007f-\u009f</code>). Also, it must not
106      * <i>be</i> the literal string <code>arn</code>.</p>
107      */
WorkflowIdHasBeenSet()108     inline bool WorkflowIdHasBeenSet() const { return m_workflowIdHasBeenSet; }
109 
110     /**
111      * <p>The user defined identifier associated with the workflow execution. You can
112      * use this to associate a custom identifier with the workflow execution. You may
113      * specify the same identifier if a workflow execution is logically a
114      * <i>restart</i> of a previous execution. You cannot have two open workflow
115      * executions with the same <code>workflowId</code> at the same time within the
116      * same domain.</p> <p>The specified string must not start or end with whitespace.
117      * It must not contain a <code>:</code> (colon), <code>/</code> (slash),
118      * <code>|</code> (vertical bar), or any control characters
119      * (<code>\u0000-\u001f</code> | <code>\u007f-\u009f</code>). Also, it must not
120      * <i>be</i> the literal string <code>arn</code>.</p>
121      */
SetWorkflowId(const Aws::String & value)122     inline void SetWorkflowId(const Aws::String& value) { m_workflowIdHasBeenSet = true; m_workflowId = value; }
123 
124     /**
125      * <p>The user defined identifier associated with the workflow execution. You can
126      * use this to associate a custom identifier with the workflow execution. You may
127      * specify the same identifier if a workflow execution is logically a
128      * <i>restart</i> of a previous execution. You cannot have two open workflow
129      * executions with the same <code>workflowId</code> at the same time within the
130      * same domain.</p> <p>The specified string must not start or end with whitespace.
131      * It must not contain a <code>:</code> (colon), <code>/</code> (slash),
132      * <code>|</code> (vertical bar), or any control characters
133      * (<code>\u0000-\u001f</code> | <code>\u007f-\u009f</code>). Also, it must not
134      * <i>be</i> the literal string <code>arn</code>.</p>
135      */
SetWorkflowId(Aws::String && value)136     inline void SetWorkflowId(Aws::String&& value) { m_workflowIdHasBeenSet = true; m_workflowId = std::move(value); }
137 
138     /**
139      * <p>The user defined identifier associated with the workflow execution. You can
140      * use this to associate a custom identifier with the workflow execution. You may
141      * specify the same identifier if a workflow execution is logically a
142      * <i>restart</i> of a previous execution. You cannot have two open workflow
143      * executions with the same <code>workflowId</code> at the same time within the
144      * same domain.</p> <p>The specified string must not start or end with whitespace.
145      * It must not contain a <code>:</code> (colon), <code>/</code> (slash),
146      * <code>|</code> (vertical bar), or any control characters
147      * (<code>\u0000-\u001f</code> | <code>\u007f-\u009f</code>). Also, it must not
148      * <i>be</i> the literal string <code>arn</code>.</p>
149      */
SetWorkflowId(const char * value)150     inline void SetWorkflowId(const char* value) { m_workflowIdHasBeenSet = true; m_workflowId.assign(value); }
151 
152     /**
153      * <p>The user defined identifier associated with the workflow execution. You can
154      * use this to associate a custom identifier with the workflow execution. You may
155      * specify the same identifier if a workflow execution is logically a
156      * <i>restart</i> of a previous execution. You cannot have two open workflow
157      * executions with the same <code>workflowId</code> at the same time within the
158      * same domain.</p> <p>The specified string must not start or end with whitespace.
159      * It must not contain a <code>:</code> (colon), <code>/</code> (slash),
160      * <code>|</code> (vertical bar), or any control characters
161      * (<code>\u0000-\u001f</code> | <code>\u007f-\u009f</code>). Also, it must not
162      * <i>be</i> the literal string <code>arn</code>.</p>
163      */
WithWorkflowId(const Aws::String & value)164     inline StartWorkflowExecutionRequest& WithWorkflowId(const Aws::String& value) { SetWorkflowId(value); return *this;}
165 
166     /**
167      * <p>The user defined identifier associated with the workflow execution. You can
168      * use this to associate a custom identifier with the workflow execution. You may
169      * specify the same identifier if a workflow execution is logically a
170      * <i>restart</i> of a previous execution. You cannot have two open workflow
171      * executions with the same <code>workflowId</code> at the same time within the
172      * same domain.</p> <p>The specified string must not start or end with whitespace.
173      * It must not contain a <code>:</code> (colon), <code>/</code> (slash),
174      * <code>|</code> (vertical bar), or any control characters
175      * (<code>\u0000-\u001f</code> | <code>\u007f-\u009f</code>). Also, it must not
176      * <i>be</i> the literal string <code>arn</code>.</p>
177      */
WithWorkflowId(Aws::String && value)178     inline StartWorkflowExecutionRequest& WithWorkflowId(Aws::String&& value) { SetWorkflowId(std::move(value)); return *this;}
179 
180     /**
181      * <p>The user defined identifier associated with the workflow execution. You can
182      * use this to associate a custom identifier with the workflow execution. You may
183      * specify the same identifier if a workflow execution is logically a
184      * <i>restart</i> of a previous execution. You cannot have two open workflow
185      * executions with the same <code>workflowId</code> at the same time within the
186      * same domain.</p> <p>The specified string must not start or end with whitespace.
187      * It must not contain a <code>:</code> (colon), <code>/</code> (slash),
188      * <code>|</code> (vertical bar), or any control characters
189      * (<code>\u0000-\u001f</code> | <code>\u007f-\u009f</code>). Also, it must not
190      * <i>be</i> the literal string <code>arn</code>.</p>
191      */
WithWorkflowId(const char * value)192     inline StartWorkflowExecutionRequest& WithWorkflowId(const char* value) { SetWorkflowId(value); return *this;}
193 
194 
195     /**
196      * <p>The type of the workflow to start.</p>
197      */
GetWorkflowType()198     inline const WorkflowType& GetWorkflowType() const{ return m_workflowType; }
199 
200     /**
201      * <p>The type of the workflow to start.</p>
202      */
WorkflowTypeHasBeenSet()203     inline bool WorkflowTypeHasBeenSet() const { return m_workflowTypeHasBeenSet; }
204 
205     /**
206      * <p>The type of the workflow to start.</p>
207      */
SetWorkflowType(const WorkflowType & value)208     inline void SetWorkflowType(const WorkflowType& value) { m_workflowTypeHasBeenSet = true; m_workflowType = value; }
209 
210     /**
211      * <p>The type of the workflow to start.</p>
212      */
SetWorkflowType(WorkflowType && value)213     inline void SetWorkflowType(WorkflowType&& value) { m_workflowTypeHasBeenSet = true; m_workflowType = std::move(value); }
214 
215     /**
216      * <p>The type of the workflow to start.</p>
217      */
WithWorkflowType(const WorkflowType & value)218     inline StartWorkflowExecutionRequest& WithWorkflowType(const WorkflowType& value) { SetWorkflowType(value); return *this;}
219 
220     /**
221      * <p>The type of the workflow to start.</p>
222      */
WithWorkflowType(WorkflowType && value)223     inline StartWorkflowExecutionRequest& WithWorkflowType(WorkflowType&& value) { SetWorkflowType(std::move(value)); return *this;}
224 
225 
226     /**
227      * <p>The task list to use for the decision tasks generated for this workflow
228      * execution. This overrides the <code>defaultTaskList</code> specified when
229      * registering the workflow type.</p>  <p>A task list for this workflow
230      * execution must be specified either as a default for the workflow type or through
231      * this parameter. If neither this parameter is set nor a default task list was
232      * specified at registration time then a fault is returned.</p>  <p>The
233      * specified string must not start or end with whitespace. It must not contain a
234      * <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar),
235      * or any control characters (<code>\u0000-\u001f</code> |
236      * <code>\u007f-\u009f</code>). Also, it must not <i>be</i> the literal string
237      * <code>arn</code>.</p>
238      */
GetTaskList()239     inline const TaskList& GetTaskList() const{ return m_taskList; }
240 
241     /**
242      * <p>The task list to use for the decision tasks generated for this workflow
243      * execution. This overrides the <code>defaultTaskList</code> specified when
244      * registering the workflow type.</p>  <p>A task list for this workflow
245      * execution must be specified either as a default for the workflow type or through
246      * this parameter. If neither this parameter is set nor a default task list was
247      * specified at registration time then a fault is returned.</p>  <p>The
248      * specified string must not start or end with whitespace. It must not contain a
249      * <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar),
250      * or any control characters (<code>\u0000-\u001f</code> |
251      * <code>\u007f-\u009f</code>). Also, it must not <i>be</i> the literal string
252      * <code>arn</code>.</p>
253      */
TaskListHasBeenSet()254     inline bool TaskListHasBeenSet() const { return m_taskListHasBeenSet; }
255 
256     /**
257      * <p>The task list to use for the decision tasks generated for this workflow
258      * execution. This overrides the <code>defaultTaskList</code> specified when
259      * registering the workflow type.</p>  <p>A task list for this workflow
260      * execution must be specified either as a default for the workflow type or through
261      * this parameter. If neither this parameter is set nor a default task list was
262      * specified at registration time then a fault is returned.</p>  <p>The
263      * specified string must not start or end with whitespace. It must not contain a
264      * <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar),
265      * or any control characters (<code>\u0000-\u001f</code> |
266      * <code>\u007f-\u009f</code>). Also, it must not <i>be</i> the literal string
267      * <code>arn</code>.</p>
268      */
SetTaskList(const TaskList & value)269     inline void SetTaskList(const TaskList& value) { m_taskListHasBeenSet = true; m_taskList = value; }
270 
271     /**
272      * <p>The task list to use for the decision tasks generated for this workflow
273      * execution. This overrides the <code>defaultTaskList</code> specified when
274      * registering the workflow type.</p>  <p>A task list for this workflow
275      * execution must be specified either as a default for the workflow type or through
276      * this parameter. If neither this parameter is set nor a default task list was
277      * specified at registration time then a fault is returned.</p>  <p>The
278      * specified string must not start or end with whitespace. It must not contain a
279      * <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar),
280      * or any control characters (<code>\u0000-\u001f</code> |
281      * <code>\u007f-\u009f</code>). Also, it must not <i>be</i> the literal string
282      * <code>arn</code>.</p>
283      */
SetTaskList(TaskList && value)284     inline void SetTaskList(TaskList&& value) { m_taskListHasBeenSet = true; m_taskList = std::move(value); }
285 
286     /**
287      * <p>The task list to use for the decision tasks generated for this workflow
288      * execution. This overrides the <code>defaultTaskList</code> specified when
289      * registering the workflow type.</p>  <p>A task list for this workflow
290      * execution must be specified either as a default for the workflow type or through
291      * this parameter. If neither this parameter is set nor a default task list was
292      * specified at registration time then a fault is returned.</p>  <p>The
293      * specified string must not start or end with whitespace. It must not contain a
294      * <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar),
295      * or any control characters (<code>\u0000-\u001f</code> |
296      * <code>\u007f-\u009f</code>). Also, it must not <i>be</i> the literal string
297      * <code>arn</code>.</p>
298      */
WithTaskList(const TaskList & value)299     inline StartWorkflowExecutionRequest& WithTaskList(const TaskList& value) { SetTaskList(value); return *this;}
300 
301     /**
302      * <p>The task list to use for the decision tasks generated for this workflow
303      * execution. This overrides the <code>defaultTaskList</code> specified when
304      * registering the workflow type.</p>  <p>A task list for this workflow
305      * execution must be specified either as a default for the workflow type or through
306      * this parameter. If neither this parameter is set nor a default task list was
307      * specified at registration time then a fault is returned.</p>  <p>The
308      * specified string must not start or end with whitespace. It must not contain a
309      * <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar),
310      * or any control characters (<code>\u0000-\u001f</code> |
311      * <code>\u007f-\u009f</code>). Also, it must not <i>be</i> the literal string
312      * <code>arn</code>.</p>
313      */
WithTaskList(TaskList && value)314     inline StartWorkflowExecutionRequest& WithTaskList(TaskList&& value) { SetTaskList(std::move(value)); return *this;}
315 
316 
317     /**
318      * <p>The task priority to use for this workflow execution. This overrides any
319      * default priority that was assigned when the workflow type was registered. If not
320      * set, then the default task priority for the workflow type is used. Valid values
321      * are integers that range from Java's <code>Integer.MIN_VALUE</code> (-2147483648)
322      * to <code>Integer.MAX_VALUE</code> (2147483647). Higher numbers indicate higher
323      * priority.</p> <p>For more information about setting task priority, see <a
324      * href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/programming-priority.html">Setting
325      * Task Priority</a> in the <i>Amazon SWF Developer Guide</i>.</p>
326      */
GetTaskPriority()327     inline const Aws::String& GetTaskPriority() const{ return m_taskPriority; }
328 
329     /**
330      * <p>The task priority to use for this workflow execution. This overrides any
331      * default priority that was assigned when the workflow type was registered. If not
332      * set, then the default task priority for the workflow type is used. Valid values
333      * are integers that range from Java's <code>Integer.MIN_VALUE</code> (-2147483648)
334      * to <code>Integer.MAX_VALUE</code> (2147483647). Higher numbers indicate higher
335      * priority.</p> <p>For more information about setting task priority, see <a
336      * href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/programming-priority.html">Setting
337      * Task Priority</a> in the <i>Amazon SWF Developer Guide</i>.</p>
338      */
TaskPriorityHasBeenSet()339     inline bool TaskPriorityHasBeenSet() const { return m_taskPriorityHasBeenSet; }
340 
341     /**
342      * <p>The task priority to use for this workflow execution. This overrides any
343      * default priority that was assigned when the workflow type was registered. If not
344      * set, then the default task priority for the workflow type is used. Valid values
345      * are integers that range from Java's <code>Integer.MIN_VALUE</code> (-2147483648)
346      * to <code>Integer.MAX_VALUE</code> (2147483647). Higher numbers indicate higher
347      * priority.</p> <p>For more information about setting task priority, see <a
348      * href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/programming-priority.html">Setting
349      * Task Priority</a> in the <i>Amazon SWF Developer Guide</i>.</p>
350      */
SetTaskPriority(const Aws::String & value)351     inline void SetTaskPriority(const Aws::String& value) { m_taskPriorityHasBeenSet = true; m_taskPriority = value; }
352 
353     /**
354      * <p>The task priority to use for this workflow execution. This overrides any
355      * default priority that was assigned when the workflow type was registered. If not
356      * set, then the default task priority for the workflow type is used. Valid values
357      * are integers that range from Java's <code>Integer.MIN_VALUE</code> (-2147483648)
358      * to <code>Integer.MAX_VALUE</code> (2147483647). Higher numbers indicate higher
359      * priority.</p> <p>For more information about setting task priority, see <a
360      * href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/programming-priority.html">Setting
361      * Task Priority</a> in the <i>Amazon SWF Developer Guide</i>.</p>
362      */
SetTaskPriority(Aws::String && value)363     inline void SetTaskPriority(Aws::String&& value) { m_taskPriorityHasBeenSet = true; m_taskPriority = std::move(value); }
364 
365     /**
366      * <p>The task priority to use for this workflow execution. This overrides any
367      * default priority that was assigned when the workflow type was registered. If not
368      * set, then the default task priority for the workflow type is used. Valid values
369      * are integers that range from Java's <code>Integer.MIN_VALUE</code> (-2147483648)
370      * to <code>Integer.MAX_VALUE</code> (2147483647). Higher numbers indicate higher
371      * priority.</p> <p>For more information about setting task priority, see <a
372      * href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/programming-priority.html">Setting
373      * Task Priority</a> in the <i>Amazon SWF Developer Guide</i>.</p>
374      */
SetTaskPriority(const char * value)375     inline void SetTaskPriority(const char* value) { m_taskPriorityHasBeenSet = true; m_taskPriority.assign(value); }
376 
377     /**
378      * <p>The task priority to use for this workflow execution. This overrides any
379      * default priority that was assigned when the workflow type was registered. If not
380      * set, then the default task priority for the workflow type is used. Valid values
381      * are integers that range from Java's <code>Integer.MIN_VALUE</code> (-2147483648)
382      * to <code>Integer.MAX_VALUE</code> (2147483647). Higher numbers indicate higher
383      * priority.</p> <p>For more information about setting task priority, see <a
384      * href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/programming-priority.html">Setting
385      * Task Priority</a> in the <i>Amazon SWF Developer Guide</i>.</p>
386      */
WithTaskPriority(const Aws::String & value)387     inline StartWorkflowExecutionRequest& WithTaskPriority(const Aws::String& value) { SetTaskPriority(value); return *this;}
388 
389     /**
390      * <p>The task priority to use for this workflow execution. This overrides any
391      * default priority that was assigned when the workflow type was registered. If not
392      * set, then the default task priority for the workflow type is used. Valid values
393      * are integers that range from Java's <code>Integer.MIN_VALUE</code> (-2147483648)
394      * to <code>Integer.MAX_VALUE</code> (2147483647). Higher numbers indicate higher
395      * priority.</p> <p>For more information about setting task priority, see <a
396      * href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/programming-priority.html">Setting
397      * Task Priority</a> in the <i>Amazon SWF Developer Guide</i>.</p>
398      */
WithTaskPriority(Aws::String && value)399     inline StartWorkflowExecutionRequest& WithTaskPriority(Aws::String&& value) { SetTaskPriority(std::move(value)); return *this;}
400 
401     /**
402      * <p>The task priority to use for this workflow execution. This overrides any
403      * default priority that was assigned when the workflow type was registered. If not
404      * set, then the default task priority for the workflow type is used. Valid values
405      * are integers that range from Java's <code>Integer.MIN_VALUE</code> (-2147483648)
406      * to <code>Integer.MAX_VALUE</code> (2147483647). Higher numbers indicate higher
407      * priority.</p> <p>For more information about setting task priority, see <a
408      * href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/programming-priority.html">Setting
409      * Task Priority</a> in the <i>Amazon SWF Developer Guide</i>.</p>
410      */
WithTaskPriority(const char * value)411     inline StartWorkflowExecutionRequest& WithTaskPriority(const char* value) { SetTaskPriority(value); return *this;}
412 
413 
414     /**
415      * <p>The input for the workflow execution. This is a free form string which should
416      * be meaningful to the workflow you are starting. This <code>input</code> is made
417      * available to the new workflow execution in the
418      * <code>WorkflowExecutionStarted</code> history event.</p>
419      */
GetInput()420     inline const Aws::String& GetInput() const{ return m_input; }
421 
422     /**
423      * <p>The input for the workflow execution. This is a free form string which should
424      * be meaningful to the workflow you are starting. This <code>input</code> is made
425      * available to the new workflow execution in the
426      * <code>WorkflowExecutionStarted</code> history event.</p>
427      */
InputHasBeenSet()428     inline bool InputHasBeenSet() const { return m_inputHasBeenSet; }
429 
430     /**
431      * <p>The input for the workflow execution. This is a free form string which should
432      * be meaningful to the workflow you are starting. This <code>input</code> is made
433      * available to the new workflow execution in the
434      * <code>WorkflowExecutionStarted</code> history event.</p>
435      */
SetInput(const Aws::String & value)436     inline void SetInput(const Aws::String& value) { m_inputHasBeenSet = true; m_input = value; }
437 
438     /**
439      * <p>The input for the workflow execution. This is a free form string which should
440      * be meaningful to the workflow you are starting. This <code>input</code> is made
441      * available to the new workflow execution in the
442      * <code>WorkflowExecutionStarted</code> history event.</p>
443      */
SetInput(Aws::String && value)444     inline void SetInput(Aws::String&& value) { m_inputHasBeenSet = true; m_input = std::move(value); }
445 
446     /**
447      * <p>The input for the workflow execution. This is a free form string which should
448      * be meaningful to the workflow you are starting. This <code>input</code> is made
449      * available to the new workflow execution in the
450      * <code>WorkflowExecutionStarted</code> history event.</p>
451      */
SetInput(const char * value)452     inline void SetInput(const char* value) { m_inputHasBeenSet = true; m_input.assign(value); }
453 
454     /**
455      * <p>The input for the workflow execution. This is a free form string which should
456      * be meaningful to the workflow you are starting. This <code>input</code> is made
457      * available to the new workflow execution in the
458      * <code>WorkflowExecutionStarted</code> history event.</p>
459      */
WithInput(const Aws::String & value)460     inline StartWorkflowExecutionRequest& WithInput(const Aws::String& value) { SetInput(value); return *this;}
461 
462     /**
463      * <p>The input for the workflow execution. This is a free form string which should
464      * be meaningful to the workflow you are starting. This <code>input</code> is made
465      * available to the new workflow execution in the
466      * <code>WorkflowExecutionStarted</code> history event.</p>
467      */
WithInput(Aws::String && value)468     inline StartWorkflowExecutionRequest& WithInput(Aws::String&& value) { SetInput(std::move(value)); return *this;}
469 
470     /**
471      * <p>The input for the workflow execution. This is a free form string which should
472      * be meaningful to the workflow you are starting. This <code>input</code> is made
473      * available to the new workflow execution in the
474      * <code>WorkflowExecutionStarted</code> history event.</p>
475      */
WithInput(const char * value)476     inline StartWorkflowExecutionRequest& WithInput(const char* value) { SetInput(value); return *this;}
477 
478 
479     /**
480      * <p>The total duration for this workflow execution. This overrides the
481      * defaultExecutionStartToCloseTimeout specified when registering the workflow
482      * type.</p> <p>The duration is specified in seconds; an integer greater than or
483      * equal to <code>0</code>. Exceeding this limit causes the workflow execution to
484      * time out. Unlike some of the other timeout parameters in Amazon SWF, you cannot
485      * specify a value of "NONE" for this timeout; there is a one-year max limit on the
486      * time that a workflow execution can run.</p>  <p>An execution
487      * start-to-close timeout must be specified either through this parameter or as a
488      * default when the workflow type is registered. If neither this parameter nor a
489      * default execution start-to-close timeout is specified, a fault is returned.</p>
490      *
491      */
GetExecutionStartToCloseTimeout()492     inline const Aws::String& GetExecutionStartToCloseTimeout() const{ return m_executionStartToCloseTimeout; }
493 
494     /**
495      * <p>The total duration for this workflow execution. This overrides the
496      * defaultExecutionStartToCloseTimeout specified when registering the workflow
497      * type.</p> <p>The duration is specified in seconds; an integer greater than or
498      * equal to <code>0</code>. Exceeding this limit causes the workflow execution to
499      * time out. Unlike some of the other timeout parameters in Amazon SWF, you cannot
500      * specify a value of "NONE" for this timeout; there is a one-year max limit on the
501      * time that a workflow execution can run.</p>  <p>An execution
502      * start-to-close timeout must be specified either through this parameter or as a
503      * default when the workflow type is registered. If neither this parameter nor a
504      * default execution start-to-close timeout is specified, a fault is returned.</p>
505      *
506      */
ExecutionStartToCloseTimeoutHasBeenSet()507     inline bool ExecutionStartToCloseTimeoutHasBeenSet() const { return m_executionStartToCloseTimeoutHasBeenSet; }
508 
509     /**
510      * <p>The total duration for this workflow execution. This overrides the
511      * defaultExecutionStartToCloseTimeout specified when registering the workflow
512      * type.</p> <p>The duration is specified in seconds; an integer greater than or
513      * equal to <code>0</code>. Exceeding this limit causes the workflow execution to
514      * time out. Unlike some of the other timeout parameters in Amazon SWF, you cannot
515      * specify a value of "NONE" for this timeout; there is a one-year max limit on the
516      * time that a workflow execution can run.</p>  <p>An execution
517      * start-to-close timeout must be specified either through this parameter or as a
518      * default when the workflow type is registered. If neither this parameter nor a
519      * default execution start-to-close timeout is specified, a fault is returned.</p>
520      *
521      */
SetExecutionStartToCloseTimeout(const Aws::String & value)522     inline void SetExecutionStartToCloseTimeout(const Aws::String& value) { m_executionStartToCloseTimeoutHasBeenSet = true; m_executionStartToCloseTimeout = value; }
523 
524     /**
525      * <p>The total duration for this workflow execution. This overrides the
526      * defaultExecutionStartToCloseTimeout specified when registering the workflow
527      * type.</p> <p>The duration is specified in seconds; an integer greater than or
528      * equal to <code>0</code>. Exceeding this limit causes the workflow execution to
529      * time out. Unlike some of the other timeout parameters in Amazon SWF, you cannot
530      * specify a value of "NONE" for this timeout; there is a one-year max limit on the
531      * time that a workflow execution can run.</p>  <p>An execution
532      * start-to-close timeout must be specified either through this parameter or as a
533      * default when the workflow type is registered. If neither this parameter nor a
534      * default execution start-to-close timeout is specified, a fault is returned.</p>
535      *
536      */
SetExecutionStartToCloseTimeout(Aws::String && value)537     inline void SetExecutionStartToCloseTimeout(Aws::String&& value) { m_executionStartToCloseTimeoutHasBeenSet = true; m_executionStartToCloseTimeout = std::move(value); }
538 
539     /**
540      * <p>The total duration for this workflow execution. This overrides the
541      * defaultExecutionStartToCloseTimeout specified when registering the workflow
542      * type.</p> <p>The duration is specified in seconds; an integer greater than or
543      * equal to <code>0</code>. Exceeding this limit causes the workflow execution to
544      * time out. Unlike some of the other timeout parameters in Amazon SWF, you cannot
545      * specify a value of "NONE" for this timeout; there is a one-year max limit on the
546      * time that a workflow execution can run.</p>  <p>An execution
547      * start-to-close timeout must be specified either through this parameter or as a
548      * default when the workflow type is registered. If neither this parameter nor a
549      * default execution start-to-close timeout is specified, a fault is returned.</p>
550      *
551      */
SetExecutionStartToCloseTimeout(const char * value)552     inline void SetExecutionStartToCloseTimeout(const char* value) { m_executionStartToCloseTimeoutHasBeenSet = true; m_executionStartToCloseTimeout.assign(value); }
553 
554     /**
555      * <p>The total duration for this workflow execution. This overrides the
556      * defaultExecutionStartToCloseTimeout specified when registering the workflow
557      * type.</p> <p>The duration is specified in seconds; an integer greater than or
558      * equal to <code>0</code>. Exceeding this limit causes the workflow execution to
559      * time out. Unlike some of the other timeout parameters in Amazon SWF, you cannot
560      * specify a value of "NONE" for this timeout; there is a one-year max limit on the
561      * time that a workflow execution can run.</p>  <p>An execution
562      * start-to-close timeout must be specified either through this parameter or as a
563      * default when the workflow type is registered. If neither this parameter nor a
564      * default execution start-to-close timeout is specified, a fault is returned.</p>
565      *
566      */
WithExecutionStartToCloseTimeout(const Aws::String & value)567     inline StartWorkflowExecutionRequest& WithExecutionStartToCloseTimeout(const Aws::String& value) { SetExecutionStartToCloseTimeout(value); return *this;}
568 
569     /**
570      * <p>The total duration for this workflow execution. This overrides the
571      * defaultExecutionStartToCloseTimeout specified when registering the workflow
572      * type.</p> <p>The duration is specified in seconds; an integer greater than or
573      * equal to <code>0</code>. Exceeding this limit causes the workflow execution to
574      * time out. Unlike some of the other timeout parameters in Amazon SWF, you cannot
575      * specify a value of "NONE" for this timeout; there is a one-year max limit on the
576      * time that a workflow execution can run.</p>  <p>An execution
577      * start-to-close timeout must be specified either through this parameter or as a
578      * default when the workflow type is registered. If neither this parameter nor a
579      * default execution start-to-close timeout is specified, a fault is returned.</p>
580      *
581      */
WithExecutionStartToCloseTimeout(Aws::String && value)582     inline StartWorkflowExecutionRequest& WithExecutionStartToCloseTimeout(Aws::String&& value) { SetExecutionStartToCloseTimeout(std::move(value)); return *this;}
583 
584     /**
585      * <p>The total duration for this workflow execution. This overrides the
586      * defaultExecutionStartToCloseTimeout specified when registering the workflow
587      * type.</p> <p>The duration is specified in seconds; an integer greater than or
588      * equal to <code>0</code>. Exceeding this limit causes the workflow execution to
589      * time out. Unlike some of the other timeout parameters in Amazon SWF, you cannot
590      * specify a value of "NONE" for this timeout; there is a one-year max limit on the
591      * time that a workflow execution can run.</p>  <p>An execution
592      * start-to-close timeout must be specified either through this parameter or as a
593      * default when the workflow type is registered. If neither this parameter nor a
594      * default execution start-to-close timeout is specified, a fault is returned.</p>
595      *
596      */
WithExecutionStartToCloseTimeout(const char * value)597     inline StartWorkflowExecutionRequest& WithExecutionStartToCloseTimeout(const char* value) { SetExecutionStartToCloseTimeout(value); return *this;}
598 
599 
600     /**
601      * <p>The list of tags to associate with the workflow execution. You can specify a
602      * maximum of 5 tags. You can list workflow executions with a specific tag by
603      * calling <a>ListOpenWorkflowExecutions</a> or <a>ListClosedWorkflowExecutions</a>
604      * and specifying a <a>TagFilter</a>.</p>
605      */
GetTagList()606     inline const Aws::Vector<Aws::String>& GetTagList() const{ return m_tagList; }
607 
608     /**
609      * <p>The list of tags to associate with the workflow execution. You can specify a
610      * maximum of 5 tags. You can list workflow executions with a specific tag by
611      * calling <a>ListOpenWorkflowExecutions</a> or <a>ListClosedWorkflowExecutions</a>
612      * and specifying a <a>TagFilter</a>.</p>
613      */
TagListHasBeenSet()614     inline bool TagListHasBeenSet() const { return m_tagListHasBeenSet; }
615 
616     /**
617      * <p>The list of tags to associate with the workflow execution. You can specify a
618      * maximum of 5 tags. You can list workflow executions with a specific tag by
619      * calling <a>ListOpenWorkflowExecutions</a> or <a>ListClosedWorkflowExecutions</a>
620      * and specifying a <a>TagFilter</a>.</p>
621      */
SetTagList(const Aws::Vector<Aws::String> & value)622     inline void SetTagList(const Aws::Vector<Aws::String>& value) { m_tagListHasBeenSet = true; m_tagList = value; }
623 
624     /**
625      * <p>The list of tags to associate with the workflow execution. You can specify a
626      * maximum of 5 tags. You can list workflow executions with a specific tag by
627      * calling <a>ListOpenWorkflowExecutions</a> or <a>ListClosedWorkflowExecutions</a>
628      * and specifying a <a>TagFilter</a>.</p>
629      */
SetTagList(Aws::Vector<Aws::String> && value)630     inline void SetTagList(Aws::Vector<Aws::String>&& value) { m_tagListHasBeenSet = true; m_tagList = std::move(value); }
631 
632     /**
633      * <p>The list of tags to associate with the workflow execution. You can specify a
634      * maximum of 5 tags. You can list workflow executions with a specific tag by
635      * calling <a>ListOpenWorkflowExecutions</a> or <a>ListClosedWorkflowExecutions</a>
636      * and specifying a <a>TagFilter</a>.</p>
637      */
WithTagList(const Aws::Vector<Aws::String> & value)638     inline StartWorkflowExecutionRequest& WithTagList(const Aws::Vector<Aws::String>& value) { SetTagList(value); return *this;}
639 
640     /**
641      * <p>The list of tags to associate with the workflow execution. You can specify a
642      * maximum of 5 tags. You can list workflow executions with a specific tag by
643      * calling <a>ListOpenWorkflowExecutions</a> or <a>ListClosedWorkflowExecutions</a>
644      * and specifying a <a>TagFilter</a>.</p>
645      */
WithTagList(Aws::Vector<Aws::String> && value)646     inline StartWorkflowExecutionRequest& WithTagList(Aws::Vector<Aws::String>&& value) { SetTagList(std::move(value)); return *this;}
647 
648     /**
649      * <p>The list of tags to associate with the workflow execution. You can specify a
650      * maximum of 5 tags. You can list workflow executions with a specific tag by
651      * calling <a>ListOpenWorkflowExecutions</a> or <a>ListClosedWorkflowExecutions</a>
652      * and specifying a <a>TagFilter</a>.</p>
653      */
AddTagList(const Aws::String & value)654     inline StartWorkflowExecutionRequest& AddTagList(const Aws::String& value) { m_tagListHasBeenSet = true; m_tagList.push_back(value); return *this; }
655 
656     /**
657      * <p>The list of tags to associate with the workflow execution. You can specify a
658      * maximum of 5 tags. You can list workflow executions with a specific tag by
659      * calling <a>ListOpenWorkflowExecutions</a> or <a>ListClosedWorkflowExecutions</a>
660      * and specifying a <a>TagFilter</a>.</p>
661      */
AddTagList(Aws::String && value)662     inline StartWorkflowExecutionRequest& AddTagList(Aws::String&& value) { m_tagListHasBeenSet = true; m_tagList.push_back(std::move(value)); return *this; }
663 
664     /**
665      * <p>The list of tags to associate with the workflow execution. You can specify a
666      * maximum of 5 tags. You can list workflow executions with a specific tag by
667      * calling <a>ListOpenWorkflowExecutions</a> or <a>ListClosedWorkflowExecutions</a>
668      * and specifying a <a>TagFilter</a>.</p>
669      */
AddTagList(const char * value)670     inline StartWorkflowExecutionRequest& AddTagList(const char* value) { m_tagListHasBeenSet = true; m_tagList.push_back(value); return *this; }
671 
672 
673     /**
674      * <p>Specifies the maximum duration of decision tasks for this workflow execution.
675      * This parameter overrides the <code>defaultTaskStartToCloseTimout</code>
676      * specified when registering the workflow type using
677      * <a>RegisterWorkflowType</a>.</p> <p>The duration is specified in seconds, an
678      * integer greater than or equal to <code>0</code>. You can use <code>NONE</code>
679      * to specify unlimited duration.</p>  <p>A task start-to-close timeout for
680      * this workflow execution must be specified either as a default for the workflow
681      * type or through this parameter. If neither this parameter is set nor a default
682      * task start-to-close timeout was specified at registration time then a fault is
683      * returned.</p>
684      */
GetTaskStartToCloseTimeout()685     inline const Aws::String& GetTaskStartToCloseTimeout() const{ return m_taskStartToCloseTimeout; }
686 
687     /**
688      * <p>Specifies the maximum duration of decision tasks for this workflow execution.
689      * This parameter overrides the <code>defaultTaskStartToCloseTimout</code>
690      * specified when registering the workflow type using
691      * <a>RegisterWorkflowType</a>.</p> <p>The duration is specified in seconds, an
692      * integer greater than or equal to <code>0</code>. You can use <code>NONE</code>
693      * to specify unlimited duration.</p>  <p>A task start-to-close timeout for
694      * this workflow execution must be specified either as a default for the workflow
695      * type or through this parameter. If neither this parameter is set nor a default
696      * task start-to-close timeout was specified at registration time then a fault is
697      * returned.</p>
698      */
TaskStartToCloseTimeoutHasBeenSet()699     inline bool TaskStartToCloseTimeoutHasBeenSet() const { return m_taskStartToCloseTimeoutHasBeenSet; }
700 
701     /**
702      * <p>Specifies the maximum duration of decision tasks for this workflow execution.
703      * This parameter overrides the <code>defaultTaskStartToCloseTimout</code>
704      * specified when registering the workflow type using
705      * <a>RegisterWorkflowType</a>.</p> <p>The duration is specified in seconds, an
706      * integer greater than or equal to <code>0</code>. You can use <code>NONE</code>
707      * to specify unlimited duration.</p>  <p>A task start-to-close timeout for
708      * this workflow execution must be specified either as a default for the workflow
709      * type or through this parameter. If neither this parameter is set nor a default
710      * task start-to-close timeout was specified at registration time then a fault is
711      * returned.</p>
712      */
SetTaskStartToCloseTimeout(const Aws::String & value)713     inline void SetTaskStartToCloseTimeout(const Aws::String& value) { m_taskStartToCloseTimeoutHasBeenSet = true; m_taskStartToCloseTimeout = value; }
714 
715     /**
716      * <p>Specifies the maximum duration of decision tasks for this workflow execution.
717      * This parameter overrides the <code>defaultTaskStartToCloseTimout</code>
718      * specified when registering the workflow type using
719      * <a>RegisterWorkflowType</a>.</p> <p>The duration is specified in seconds, an
720      * integer greater than or equal to <code>0</code>. You can use <code>NONE</code>
721      * to specify unlimited duration.</p>  <p>A task start-to-close timeout for
722      * this workflow execution must be specified either as a default for the workflow
723      * type or through this parameter. If neither this parameter is set nor a default
724      * task start-to-close timeout was specified at registration time then a fault is
725      * returned.</p>
726      */
SetTaskStartToCloseTimeout(Aws::String && value)727     inline void SetTaskStartToCloseTimeout(Aws::String&& value) { m_taskStartToCloseTimeoutHasBeenSet = true; m_taskStartToCloseTimeout = std::move(value); }
728 
729     /**
730      * <p>Specifies the maximum duration of decision tasks for this workflow execution.
731      * This parameter overrides the <code>defaultTaskStartToCloseTimout</code>
732      * specified when registering the workflow type using
733      * <a>RegisterWorkflowType</a>.</p> <p>The duration is specified in seconds, an
734      * integer greater than or equal to <code>0</code>. You can use <code>NONE</code>
735      * to specify unlimited duration.</p>  <p>A task start-to-close timeout for
736      * this workflow execution must be specified either as a default for the workflow
737      * type or through this parameter. If neither this parameter is set nor a default
738      * task start-to-close timeout was specified at registration time then a fault is
739      * returned.</p>
740      */
SetTaskStartToCloseTimeout(const char * value)741     inline void SetTaskStartToCloseTimeout(const char* value) { m_taskStartToCloseTimeoutHasBeenSet = true; m_taskStartToCloseTimeout.assign(value); }
742 
743     /**
744      * <p>Specifies the maximum duration of decision tasks for this workflow execution.
745      * This parameter overrides the <code>defaultTaskStartToCloseTimout</code>
746      * specified when registering the workflow type using
747      * <a>RegisterWorkflowType</a>.</p> <p>The duration is specified in seconds, an
748      * integer greater than or equal to <code>0</code>. You can use <code>NONE</code>
749      * to specify unlimited duration.</p>  <p>A task start-to-close timeout for
750      * this workflow execution must be specified either as a default for the workflow
751      * type or through this parameter. If neither this parameter is set nor a default
752      * task start-to-close timeout was specified at registration time then a fault is
753      * returned.</p>
754      */
WithTaskStartToCloseTimeout(const Aws::String & value)755     inline StartWorkflowExecutionRequest& WithTaskStartToCloseTimeout(const Aws::String& value) { SetTaskStartToCloseTimeout(value); return *this;}
756 
757     /**
758      * <p>Specifies the maximum duration of decision tasks for this workflow execution.
759      * This parameter overrides the <code>defaultTaskStartToCloseTimout</code>
760      * specified when registering the workflow type using
761      * <a>RegisterWorkflowType</a>.</p> <p>The duration is specified in seconds, an
762      * integer greater than or equal to <code>0</code>. You can use <code>NONE</code>
763      * to specify unlimited duration.</p>  <p>A task start-to-close timeout for
764      * this workflow execution must be specified either as a default for the workflow
765      * type or through this parameter. If neither this parameter is set nor a default
766      * task start-to-close timeout was specified at registration time then a fault is
767      * returned.</p>
768      */
WithTaskStartToCloseTimeout(Aws::String && value)769     inline StartWorkflowExecutionRequest& WithTaskStartToCloseTimeout(Aws::String&& value) { SetTaskStartToCloseTimeout(std::move(value)); return *this;}
770 
771     /**
772      * <p>Specifies the maximum duration of decision tasks for this workflow execution.
773      * This parameter overrides the <code>defaultTaskStartToCloseTimout</code>
774      * specified when registering the workflow type using
775      * <a>RegisterWorkflowType</a>.</p> <p>The duration is specified in seconds, an
776      * integer greater than or equal to <code>0</code>. You can use <code>NONE</code>
777      * to specify unlimited duration.</p>  <p>A task start-to-close timeout for
778      * this workflow execution must be specified either as a default for the workflow
779      * type or through this parameter. If neither this parameter is set nor a default
780      * task start-to-close timeout was specified at registration time then a fault is
781      * returned.</p>
782      */
WithTaskStartToCloseTimeout(const char * value)783     inline StartWorkflowExecutionRequest& WithTaskStartToCloseTimeout(const char* value) { SetTaskStartToCloseTimeout(value); return *this;}
784 
785 
786     /**
787      * <p>If set, specifies the policy to use for the child workflow executions of this
788      * workflow execution if it is terminated, by calling the
789      * <a>TerminateWorkflowExecution</a> action explicitly or due to an expired
790      * timeout. This policy overrides the default child policy specified when
791      * registering the workflow type using <a>RegisterWorkflowType</a>.</p> <p>The
792      * supported child policies are:</p> <ul> <li> <p> <code>TERMINATE</code> – The
793      * child executions are terminated.</p> </li> <li> <p> <code>REQUEST_CANCEL</code>
794      * – A request to cancel is attempted for each child execution by recording a
795      * <code>WorkflowExecutionCancelRequested</code> event in its history. It is up to
796      * the decider to take appropriate actions when it receives an execution history
797      * with this event.</p> </li> <li> <p> <code>ABANDON</code> – No action is taken.
798      * The child executions continue to run.</p> </li> </ul>  <p>A child policy
799      * for this workflow execution must be specified either as a default for the
800      * workflow type or through this parameter. If neither this parameter is set nor a
801      * default child policy was specified at registration time then a fault is
802      * returned.</p>
803      */
GetChildPolicy()804     inline const ChildPolicy& GetChildPolicy() const{ return m_childPolicy; }
805 
806     /**
807      * <p>If set, specifies the policy to use for the child workflow executions of this
808      * workflow execution if it is terminated, by calling the
809      * <a>TerminateWorkflowExecution</a> action explicitly or due to an expired
810      * timeout. This policy overrides the default child policy specified when
811      * registering the workflow type using <a>RegisterWorkflowType</a>.</p> <p>The
812      * supported child policies are:</p> <ul> <li> <p> <code>TERMINATE</code> – The
813      * child executions are terminated.</p> </li> <li> <p> <code>REQUEST_CANCEL</code>
814      * – A request to cancel is attempted for each child execution by recording a
815      * <code>WorkflowExecutionCancelRequested</code> event in its history. It is up to
816      * the decider to take appropriate actions when it receives an execution history
817      * with this event.</p> </li> <li> <p> <code>ABANDON</code> – No action is taken.
818      * The child executions continue to run.</p> </li> </ul>  <p>A child policy
819      * for this workflow execution must be specified either as a default for the
820      * workflow type or through this parameter. If neither this parameter is set nor a
821      * default child policy was specified at registration time then a fault is
822      * returned.</p>
823      */
ChildPolicyHasBeenSet()824     inline bool ChildPolicyHasBeenSet() const { return m_childPolicyHasBeenSet; }
825 
826     /**
827      * <p>If set, specifies the policy to use for the child workflow executions of this
828      * workflow execution if it is terminated, by calling the
829      * <a>TerminateWorkflowExecution</a> action explicitly or due to an expired
830      * timeout. This policy overrides the default child policy specified when
831      * registering the workflow type using <a>RegisterWorkflowType</a>.</p> <p>The
832      * supported child policies are:</p> <ul> <li> <p> <code>TERMINATE</code> – The
833      * child executions are terminated.</p> </li> <li> <p> <code>REQUEST_CANCEL</code>
834      * – A request to cancel is attempted for each child execution by recording a
835      * <code>WorkflowExecutionCancelRequested</code> event in its history. It is up to
836      * the decider to take appropriate actions when it receives an execution history
837      * with this event.</p> </li> <li> <p> <code>ABANDON</code> – No action is taken.
838      * The child executions continue to run.</p> </li> </ul>  <p>A child policy
839      * for this workflow execution must be specified either as a default for the
840      * workflow type or through this parameter. If neither this parameter is set nor a
841      * default child policy was specified at registration time then a fault is
842      * returned.</p>
843      */
SetChildPolicy(const ChildPolicy & value)844     inline void SetChildPolicy(const ChildPolicy& value) { m_childPolicyHasBeenSet = true; m_childPolicy = value; }
845 
846     /**
847      * <p>If set, specifies the policy to use for the child workflow executions of this
848      * workflow execution if it is terminated, by calling the
849      * <a>TerminateWorkflowExecution</a> action explicitly or due to an expired
850      * timeout. This policy overrides the default child policy specified when
851      * registering the workflow type using <a>RegisterWorkflowType</a>.</p> <p>The
852      * supported child policies are:</p> <ul> <li> <p> <code>TERMINATE</code> – The
853      * child executions are terminated.</p> </li> <li> <p> <code>REQUEST_CANCEL</code>
854      * – A request to cancel is attempted for each child execution by recording a
855      * <code>WorkflowExecutionCancelRequested</code> event in its history. It is up to
856      * the decider to take appropriate actions when it receives an execution history
857      * with this event.</p> </li> <li> <p> <code>ABANDON</code> – No action is taken.
858      * The child executions continue to run.</p> </li> </ul>  <p>A child policy
859      * for this workflow execution must be specified either as a default for the
860      * workflow type or through this parameter. If neither this parameter is set nor a
861      * default child policy was specified at registration time then a fault is
862      * returned.</p>
863      */
SetChildPolicy(ChildPolicy && value)864     inline void SetChildPolicy(ChildPolicy&& value) { m_childPolicyHasBeenSet = true; m_childPolicy = std::move(value); }
865 
866     /**
867      * <p>If set, specifies the policy to use for the child workflow executions of this
868      * workflow execution if it is terminated, by calling the
869      * <a>TerminateWorkflowExecution</a> action explicitly or due to an expired
870      * timeout. This policy overrides the default child policy specified when
871      * registering the workflow type using <a>RegisterWorkflowType</a>.</p> <p>The
872      * supported child policies are:</p> <ul> <li> <p> <code>TERMINATE</code> – The
873      * child executions are terminated.</p> </li> <li> <p> <code>REQUEST_CANCEL</code>
874      * – A request to cancel is attempted for each child execution by recording a
875      * <code>WorkflowExecutionCancelRequested</code> event in its history. It is up to
876      * the decider to take appropriate actions when it receives an execution history
877      * with this event.</p> </li> <li> <p> <code>ABANDON</code> – No action is taken.
878      * The child executions continue to run.</p> </li> </ul>  <p>A child policy
879      * for this workflow execution must be specified either as a default for the
880      * workflow type or through this parameter. If neither this parameter is set nor a
881      * default child policy was specified at registration time then a fault is
882      * returned.</p>
883      */
WithChildPolicy(const ChildPolicy & value)884     inline StartWorkflowExecutionRequest& WithChildPolicy(const ChildPolicy& value) { SetChildPolicy(value); return *this;}
885 
886     /**
887      * <p>If set, specifies the policy to use for the child workflow executions of this
888      * workflow execution if it is terminated, by calling the
889      * <a>TerminateWorkflowExecution</a> action explicitly or due to an expired
890      * timeout. This policy overrides the default child policy specified when
891      * registering the workflow type using <a>RegisterWorkflowType</a>.</p> <p>The
892      * supported child policies are:</p> <ul> <li> <p> <code>TERMINATE</code> – The
893      * child executions are terminated.</p> </li> <li> <p> <code>REQUEST_CANCEL</code>
894      * – A request to cancel is attempted for each child execution by recording a
895      * <code>WorkflowExecutionCancelRequested</code> event in its history. It is up to
896      * the decider to take appropriate actions when it receives an execution history
897      * with this event.</p> </li> <li> <p> <code>ABANDON</code> – No action is taken.
898      * The child executions continue to run.</p> </li> </ul>  <p>A child policy
899      * for this workflow execution must be specified either as a default for the
900      * workflow type or through this parameter. If neither this parameter is set nor a
901      * default child policy was specified at registration time then a fault is
902      * returned.</p>
903      */
WithChildPolicy(ChildPolicy && value)904     inline StartWorkflowExecutionRequest& WithChildPolicy(ChildPolicy&& value) { SetChildPolicy(std::move(value)); return *this;}
905 
906 
907     /**
908      * <p>The IAM role to attach to this workflow execution.</p>  <p>Executions
909      * of this workflow type need IAM roles to invoke Lambda functions. If you don't
910      * attach an IAM role, any attempt to schedule a Lambda task fails. This results in
911      * a <code>ScheduleLambdaFunctionFailed</code> history event. For more information,
912      * see <a
913      * href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html">https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html</a>
914      * in the <i>Amazon SWF Developer Guide</i>.</p>
915      */
GetLambdaRole()916     inline const Aws::String& GetLambdaRole() const{ return m_lambdaRole; }
917 
918     /**
919      * <p>The IAM role to attach to this workflow execution.</p>  <p>Executions
920      * of this workflow type need IAM roles to invoke Lambda functions. If you don't
921      * attach an IAM role, any attempt to schedule a Lambda task fails. This results in
922      * a <code>ScheduleLambdaFunctionFailed</code> history event. For more information,
923      * see <a
924      * href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html">https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html</a>
925      * in the <i>Amazon SWF Developer Guide</i>.</p>
926      */
LambdaRoleHasBeenSet()927     inline bool LambdaRoleHasBeenSet() const { return m_lambdaRoleHasBeenSet; }
928 
929     /**
930      * <p>The IAM role to attach to this workflow execution.</p>  <p>Executions
931      * of this workflow type need IAM roles to invoke Lambda functions. If you don't
932      * attach an IAM role, any attempt to schedule a Lambda task fails. This results in
933      * a <code>ScheduleLambdaFunctionFailed</code> history event. For more information,
934      * see <a
935      * href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html">https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html</a>
936      * in the <i>Amazon SWF Developer Guide</i>.</p>
937      */
SetLambdaRole(const Aws::String & value)938     inline void SetLambdaRole(const Aws::String& value) { m_lambdaRoleHasBeenSet = true; m_lambdaRole = value; }
939 
940     /**
941      * <p>The IAM role to attach to this workflow execution.</p>  <p>Executions
942      * of this workflow type need IAM roles to invoke Lambda functions. If you don't
943      * attach an IAM role, any attempt to schedule a Lambda task fails. This results in
944      * a <code>ScheduleLambdaFunctionFailed</code> history event. For more information,
945      * see <a
946      * href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html">https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html</a>
947      * in the <i>Amazon SWF Developer Guide</i>.</p>
948      */
SetLambdaRole(Aws::String && value)949     inline void SetLambdaRole(Aws::String&& value) { m_lambdaRoleHasBeenSet = true; m_lambdaRole = std::move(value); }
950 
951     /**
952      * <p>The IAM role to attach to this workflow execution.</p>  <p>Executions
953      * of this workflow type need IAM roles to invoke Lambda functions. If you don't
954      * attach an IAM role, any attempt to schedule a Lambda task fails. This results in
955      * a <code>ScheduleLambdaFunctionFailed</code> history event. For more information,
956      * see <a
957      * href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html">https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html</a>
958      * in the <i>Amazon SWF Developer Guide</i>.</p>
959      */
SetLambdaRole(const char * value)960     inline void SetLambdaRole(const char* value) { m_lambdaRoleHasBeenSet = true; m_lambdaRole.assign(value); }
961 
962     /**
963      * <p>The IAM role to attach to this workflow execution.</p>  <p>Executions
964      * of this workflow type need IAM roles to invoke Lambda functions. If you don't
965      * attach an IAM role, any attempt to schedule a Lambda task fails. This results in
966      * a <code>ScheduleLambdaFunctionFailed</code> history event. For more information,
967      * see <a
968      * href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html">https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html</a>
969      * in the <i>Amazon SWF Developer Guide</i>.</p>
970      */
WithLambdaRole(const Aws::String & value)971     inline StartWorkflowExecutionRequest& WithLambdaRole(const Aws::String& value) { SetLambdaRole(value); return *this;}
972 
973     /**
974      * <p>The IAM role to attach to this workflow execution.</p>  <p>Executions
975      * of this workflow type need IAM roles to invoke Lambda functions. If you don't
976      * attach an IAM role, any attempt to schedule a Lambda task fails. This results in
977      * a <code>ScheduleLambdaFunctionFailed</code> history event. For more information,
978      * see <a
979      * href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html">https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html</a>
980      * in the <i>Amazon SWF Developer Guide</i>.</p>
981      */
WithLambdaRole(Aws::String && value)982     inline StartWorkflowExecutionRequest& WithLambdaRole(Aws::String&& value) { SetLambdaRole(std::move(value)); return *this;}
983 
984     /**
985      * <p>The IAM role to attach to this workflow execution.</p>  <p>Executions
986      * of this workflow type need IAM roles to invoke Lambda functions. If you don't
987      * attach an IAM role, any attempt to schedule a Lambda task fails. This results in
988      * a <code>ScheduleLambdaFunctionFailed</code> history event. For more information,
989      * see <a
990      * href="https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html">https://docs.aws.amazon.com/amazonswf/latest/developerguide/lambda-task.html</a>
991      * in the <i>Amazon SWF Developer Guide</i>.</p>
992      */
WithLambdaRole(const char * value)993     inline StartWorkflowExecutionRequest& WithLambdaRole(const char* value) { SetLambdaRole(value); return *this;}
994 
995   private:
996 
997     Aws::String m_domain;
998     bool m_domainHasBeenSet;
999 
1000     Aws::String m_workflowId;
1001     bool m_workflowIdHasBeenSet;
1002 
1003     WorkflowType m_workflowType;
1004     bool m_workflowTypeHasBeenSet;
1005 
1006     TaskList m_taskList;
1007     bool m_taskListHasBeenSet;
1008 
1009     Aws::String m_taskPriority;
1010     bool m_taskPriorityHasBeenSet;
1011 
1012     Aws::String m_input;
1013     bool m_inputHasBeenSet;
1014 
1015     Aws::String m_executionStartToCloseTimeout;
1016     bool m_executionStartToCloseTimeoutHasBeenSet;
1017 
1018     Aws::Vector<Aws::String> m_tagList;
1019     bool m_tagListHasBeenSet;
1020 
1021     Aws::String m_taskStartToCloseTimeout;
1022     bool m_taskStartToCloseTimeoutHasBeenSet;
1023 
1024     ChildPolicy m_childPolicy;
1025     bool m_childPolicyHasBeenSet;
1026 
1027     Aws::String m_lambdaRole;
1028     bool m_lambdaRoleHasBeenSet;
1029   };
1030 
1031 } // namespace Model
1032 } // namespace SWF
1033 } // namespace Aws
1034