/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SWF { namespace Model { /** *

The configuration settings for a workflow execution including timeout values, * tasklist etc. These configuration settings are determined from the defaults * specified when registering the workflow type and those specified when starting * the workflow execution.

See Also:

AWS * API Reference

*/ class WorkflowExecutionConfiguration { public: AWS_SWF_API WorkflowExecutionConfiguration(); AWS_SWF_API WorkflowExecutionConfiguration(Aws::Utils::Json::JsonView jsonValue); AWS_SWF_API WorkflowExecutionConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SWF_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The maximum duration allowed for decision tasks for this workflow * execution.

The duration is specified in seconds, an integer greater than * or equal to 0. You can use NONE to specify unlimited * duration.

*/ inline const Aws::String& GetTaskStartToCloseTimeout() const{ return m_taskStartToCloseTimeout; } /** *

The maximum duration allowed for decision tasks for this workflow * execution.

The duration is specified in seconds, an integer greater than * or equal to 0. You can use NONE to specify unlimited * duration.

*/ inline bool TaskStartToCloseTimeoutHasBeenSet() const { return m_taskStartToCloseTimeoutHasBeenSet; } /** *

The maximum duration allowed for decision tasks for this workflow * execution.

The duration is specified in seconds, an integer greater than * or equal to 0. You can use NONE to specify unlimited * duration.

*/ inline void SetTaskStartToCloseTimeout(const Aws::String& value) { m_taskStartToCloseTimeoutHasBeenSet = true; m_taskStartToCloseTimeout = value; } /** *

The maximum duration allowed for decision tasks for this workflow * execution.

The duration is specified in seconds, an integer greater than * or equal to 0. You can use NONE to specify unlimited * duration.

*/ inline void SetTaskStartToCloseTimeout(Aws::String&& value) { m_taskStartToCloseTimeoutHasBeenSet = true; m_taskStartToCloseTimeout = std::move(value); } /** *

The maximum duration allowed for decision tasks for this workflow * execution.

The duration is specified in seconds, an integer greater than * or equal to 0. You can use NONE to specify unlimited * duration.

*/ inline void SetTaskStartToCloseTimeout(const char* value) { m_taskStartToCloseTimeoutHasBeenSet = true; m_taskStartToCloseTimeout.assign(value); } /** *

The maximum duration allowed for decision tasks for this workflow * execution.

The duration is specified in seconds, an integer greater than * or equal to 0. You can use NONE to specify unlimited * duration.

*/ inline WorkflowExecutionConfiguration& WithTaskStartToCloseTimeout(const Aws::String& value) { SetTaskStartToCloseTimeout(value); return *this;} /** *

The maximum duration allowed for decision tasks for this workflow * execution.

The duration is specified in seconds, an integer greater than * or equal to 0. You can use NONE to specify unlimited * duration.

*/ inline WorkflowExecutionConfiguration& WithTaskStartToCloseTimeout(Aws::String&& value) { SetTaskStartToCloseTimeout(std::move(value)); return *this;} /** *

The maximum duration allowed for decision tasks for this workflow * execution.

The duration is specified in seconds, an integer greater than * or equal to 0. You can use NONE to specify unlimited * duration.

*/ inline WorkflowExecutionConfiguration& WithTaskStartToCloseTimeout(const char* value) { SetTaskStartToCloseTimeout(value); return *this;} /** *

The total duration for this workflow execution.

The duration is * specified in seconds, an integer greater than or equal to 0. You * can use NONE to specify unlimited duration.

*/ inline const Aws::String& GetExecutionStartToCloseTimeout() const{ return m_executionStartToCloseTimeout; } /** *

The total duration for this workflow execution.

The duration is * specified in seconds, an integer greater than or equal to 0. You * can use NONE to specify unlimited duration.

*/ inline bool ExecutionStartToCloseTimeoutHasBeenSet() const { return m_executionStartToCloseTimeoutHasBeenSet; } /** *

The total duration for this workflow execution.

The duration is * specified in seconds, an integer greater than or equal to 0. You * can use NONE to specify unlimited duration.

*/ inline void SetExecutionStartToCloseTimeout(const Aws::String& value) { m_executionStartToCloseTimeoutHasBeenSet = true; m_executionStartToCloseTimeout = value; } /** *

The total duration for this workflow execution.

The duration is * specified in seconds, an integer greater than or equal to 0. You * can use NONE to specify unlimited duration.

*/ inline void SetExecutionStartToCloseTimeout(Aws::String&& value) { m_executionStartToCloseTimeoutHasBeenSet = true; m_executionStartToCloseTimeout = std::move(value); } /** *

The total duration for this workflow execution.

The duration is * specified in seconds, an integer greater than or equal to 0. You * can use NONE to specify unlimited duration.

*/ inline void SetExecutionStartToCloseTimeout(const char* value) { m_executionStartToCloseTimeoutHasBeenSet = true; m_executionStartToCloseTimeout.assign(value); } /** *

The total duration for this workflow execution.

The duration is * specified in seconds, an integer greater than or equal to 0. You * can use NONE to specify unlimited duration.

*/ inline WorkflowExecutionConfiguration& WithExecutionStartToCloseTimeout(const Aws::String& value) { SetExecutionStartToCloseTimeout(value); return *this;} /** *

The total duration for this workflow execution.

The duration is * specified in seconds, an integer greater than or equal to 0. You * can use NONE to specify unlimited duration.

*/ inline WorkflowExecutionConfiguration& WithExecutionStartToCloseTimeout(Aws::String&& value) { SetExecutionStartToCloseTimeout(std::move(value)); return *this;} /** *

The total duration for this workflow execution.

The duration is * specified in seconds, an integer greater than or equal to 0. You * can use NONE to specify unlimited duration.

*/ inline WorkflowExecutionConfiguration& WithExecutionStartToCloseTimeout(const char* value) { SetExecutionStartToCloseTimeout(value); return *this;} /** *

The task list used for the decision tasks generated for this workflow * execution.

*/ inline const TaskList& GetTaskList() const{ return m_taskList; } /** *

The task list used for the decision tasks generated for this workflow * execution.

*/ inline bool TaskListHasBeenSet() const { return m_taskListHasBeenSet; } /** *

The task list used for the decision tasks generated for this workflow * execution.

*/ inline void SetTaskList(const TaskList& value) { m_taskListHasBeenSet = true; m_taskList = value; } /** *

The task list used for the decision tasks generated for this workflow * execution.

*/ inline void SetTaskList(TaskList&& value) { m_taskListHasBeenSet = true; m_taskList = std::move(value); } /** *

The task list used for the decision tasks generated for this workflow * execution.

*/ inline WorkflowExecutionConfiguration& WithTaskList(const TaskList& value) { SetTaskList(value); return *this;} /** *

The task list used for the decision tasks generated for this workflow * execution.

*/ inline WorkflowExecutionConfiguration& WithTaskList(TaskList&& value) { SetTaskList(std::move(value)); return *this;} /** *

The priority assigned to decision tasks for this workflow execution. Valid * values are integers that range from Java's Integer.MIN_VALUE * (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers * indicate higher priority.

For more information about setting task * priority, see Setting * Task Priority in the Amazon SWF Developer Guide.

*/ inline const Aws::String& GetTaskPriority() const{ return m_taskPriority; } /** *

The priority assigned to decision tasks for this workflow execution. Valid * values are integers that range from Java's Integer.MIN_VALUE * (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers * indicate higher priority.

For more information about setting task * priority, see Setting * Task Priority in the Amazon SWF Developer Guide.

*/ inline bool TaskPriorityHasBeenSet() const { return m_taskPriorityHasBeenSet; } /** *

The priority assigned to decision tasks for this workflow execution. Valid * values are integers that range from Java's Integer.MIN_VALUE * (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers * indicate higher priority.

For more information about setting task * priority, see Setting * Task Priority in the Amazon SWF Developer Guide.

*/ inline void SetTaskPriority(const Aws::String& value) { m_taskPriorityHasBeenSet = true; m_taskPriority = value; } /** *

The priority assigned to decision tasks for this workflow execution. Valid * values are integers that range from Java's Integer.MIN_VALUE * (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers * indicate higher priority.

For more information about setting task * priority, see Setting * Task Priority in the Amazon SWF Developer Guide.

*/ inline void SetTaskPriority(Aws::String&& value) { m_taskPriorityHasBeenSet = true; m_taskPriority = std::move(value); } /** *

The priority assigned to decision tasks for this workflow execution. Valid * values are integers that range from Java's Integer.MIN_VALUE * (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers * indicate higher priority.

For more information about setting task * priority, see Setting * Task Priority in the Amazon SWF Developer Guide.

*/ inline void SetTaskPriority(const char* value) { m_taskPriorityHasBeenSet = true; m_taskPriority.assign(value); } /** *

The priority assigned to decision tasks for this workflow execution. Valid * values are integers that range from Java's Integer.MIN_VALUE * (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers * indicate higher priority.

For more information about setting task * priority, see Setting * Task Priority in the Amazon SWF Developer Guide.

*/ inline WorkflowExecutionConfiguration& WithTaskPriority(const Aws::String& value) { SetTaskPriority(value); return *this;} /** *

The priority assigned to decision tasks for this workflow execution. Valid * values are integers that range from Java's Integer.MIN_VALUE * (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers * indicate higher priority.

For more information about setting task * priority, see Setting * Task Priority in the Amazon SWF Developer Guide.

*/ inline WorkflowExecutionConfiguration& WithTaskPriority(Aws::String&& value) { SetTaskPriority(std::move(value)); return *this;} /** *

The priority assigned to decision tasks for this workflow execution. Valid * values are integers that range from Java's Integer.MIN_VALUE * (-2147483648) to Integer.MAX_VALUE (2147483647). Higher numbers * indicate higher priority.

For more information about setting task * priority, see Setting * Task Priority in the Amazon SWF Developer Guide.

*/ inline WorkflowExecutionConfiguration& WithTaskPriority(const char* value) { SetTaskPriority(value); return *this;} /** *

The policy to use for the child workflow executions if this workflow * execution is terminated, by calling the TerminateWorkflowExecution action * explicitly or due to an expired timeout.

The supported child policies * are:

  • TERMINATE – The child executions are * terminated.

  • REQUEST_CANCEL – A request to cancel * is attempted for each child execution by recording a * WorkflowExecutionCancelRequested event in its history. It is up to * the decider to take appropriate actions when it receives an execution history * with this event.

  • ABANDON – No action is taken. * The child executions continue to run.

*/ inline const ChildPolicy& GetChildPolicy() const{ return m_childPolicy; } /** *

The policy to use for the child workflow executions if this workflow * execution is terminated, by calling the TerminateWorkflowExecution action * explicitly or due to an expired timeout.

The supported child policies * are:

  • TERMINATE – The child executions are * terminated.

  • REQUEST_CANCEL – A request to cancel * is attempted for each child execution by recording a * WorkflowExecutionCancelRequested event in its history. It is up to * the decider to take appropriate actions when it receives an execution history * with this event.

  • ABANDON – No action is taken. * The child executions continue to run.

*/ inline bool ChildPolicyHasBeenSet() const { return m_childPolicyHasBeenSet; } /** *

The policy to use for the child workflow executions if this workflow * execution is terminated, by calling the TerminateWorkflowExecution action * explicitly or due to an expired timeout.

The supported child policies * are:

  • TERMINATE – The child executions are * terminated.

  • REQUEST_CANCEL – A request to cancel * is attempted for each child execution by recording a * WorkflowExecutionCancelRequested event in its history. It is up to * the decider to take appropriate actions when it receives an execution history * with this event.

  • ABANDON – No action is taken. * The child executions continue to run.

*/ inline void SetChildPolicy(const ChildPolicy& value) { m_childPolicyHasBeenSet = true; m_childPolicy = value; } /** *

The policy to use for the child workflow executions if this workflow * execution is terminated, by calling the TerminateWorkflowExecution action * explicitly or due to an expired timeout.

The supported child policies * are:

  • TERMINATE – The child executions are * terminated.

  • REQUEST_CANCEL – A request to cancel * is attempted for each child execution by recording a * WorkflowExecutionCancelRequested event in its history. It is up to * the decider to take appropriate actions when it receives an execution history * with this event.

  • ABANDON – No action is taken. * The child executions continue to run.

*/ inline void SetChildPolicy(ChildPolicy&& value) { m_childPolicyHasBeenSet = true; m_childPolicy = std::move(value); } /** *

The policy to use for the child workflow executions if this workflow * execution is terminated, by calling the TerminateWorkflowExecution action * explicitly or due to an expired timeout.

The supported child policies * are:

  • TERMINATE – The child executions are * terminated.

  • REQUEST_CANCEL – A request to cancel * is attempted for each child execution by recording a * WorkflowExecutionCancelRequested event in its history. It is up to * the decider to take appropriate actions when it receives an execution history * with this event.

  • ABANDON – No action is taken. * The child executions continue to run.

*/ inline WorkflowExecutionConfiguration& WithChildPolicy(const ChildPolicy& value) { SetChildPolicy(value); return *this;} /** *

The policy to use for the child workflow executions if this workflow * execution is terminated, by calling the TerminateWorkflowExecution action * explicitly or due to an expired timeout.

The supported child policies * are:

  • TERMINATE – The child executions are * terminated.

  • REQUEST_CANCEL – A request to cancel * is attempted for each child execution by recording a * WorkflowExecutionCancelRequested event in its history. It is up to * the decider to take appropriate actions when it receives an execution history * with this event.

  • ABANDON – No action is taken. * The child executions continue to run.

*/ inline WorkflowExecutionConfiguration& WithChildPolicy(ChildPolicy&& value) { SetChildPolicy(std::move(value)); return *this;} /** *

The IAM role attached to the child workflow execution.

*/ inline const Aws::String& GetLambdaRole() const{ return m_lambdaRole; } /** *

The IAM role attached to the child workflow execution.

*/ inline bool LambdaRoleHasBeenSet() const { return m_lambdaRoleHasBeenSet; } /** *

The IAM role attached to the child workflow execution.

*/ inline void SetLambdaRole(const Aws::String& value) { m_lambdaRoleHasBeenSet = true; m_lambdaRole = value; } /** *

The IAM role attached to the child workflow execution.

*/ inline void SetLambdaRole(Aws::String&& value) { m_lambdaRoleHasBeenSet = true; m_lambdaRole = std::move(value); } /** *

The IAM role attached to the child workflow execution.

*/ inline void SetLambdaRole(const char* value) { m_lambdaRoleHasBeenSet = true; m_lambdaRole.assign(value); } /** *

The IAM role attached to the child workflow execution.

*/ inline WorkflowExecutionConfiguration& WithLambdaRole(const Aws::String& value) { SetLambdaRole(value); return *this;} /** *

The IAM role attached to the child workflow execution.

*/ inline WorkflowExecutionConfiguration& WithLambdaRole(Aws::String&& value) { SetLambdaRole(std::move(value)); return *this;} /** *

The IAM role attached to the child workflow execution.

*/ inline WorkflowExecutionConfiguration& WithLambdaRole(const char* value) { SetLambdaRole(value); return *this;} private: Aws::String m_taskStartToCloseTimeout; bool m_taskStartToCloseTimeoutHasBeenSet = false; Aws::String m_executionStartToCloseTimeout; bool m_executionStartToCloseTimeoutHasBeenSet = false; TaskList m_taskList; bool m_taskListHasBeenSet = false; Aws::String m_taskPriority; bool m_taskPriorityHasBeenSet = false; ChildPolicy m_childPolicy; bool m_childPolicyHasBeenSet = false; Aws::String m_lambdaRole; bool m_lambdaRoleHasBeenSet = false; }; } // namespace Model } // namespace SWF } // namespace Aws