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

Specifies a decision made by the decider. A decision can be one of these * types:

  • CancelTimer – Cancels a previously started * timer and records a TimerCanceled event in the history.

  • *
  • CancelWorkflowExecution – Closes the workflow execution * and records a WorkflowExecutionCanceled event in the history.

    *
  • CompleteWorkflowExecution – Closes the workflow * execution and records a WorkflowExecutionCompleted event in the * history .

  • ContinueAsNewWorkflowExecution – * Closes the workflow execution and starts a new workflow execution of the same * type using the same workflow ID and a unique run Id. A * WorkflowExecutionContinuedAsNew event is recorded in the * history.

  • FailWorkflowExecution – Closes the * workflow execution and records a WorkflowExecutionFailed event in * the history.

  • RecordMarker – Records a * MarkerRecorded event in the history. Markers can be used for adding * custom information in the history for instance to let deciders know that they * don't need to look at the history beyond the marker event.

  • * RequestCancelActivityTask – Attempts to cancel a previously * scheduled activity task. If the activity task was scheduled but has not been * assigned to a worker, then it is canceled. If the activity task was already * assigned to a worker, then the worker is informed that cancellation has been * requested in the response to RecordActivityTaskHeartbeat.

  • *

    RequestCancelExternalWorkflowExecution – Requests that a * request be made to cancel the specified external workflow execution and records * a RequestCancelExternalWorkflowExecutionInitiated event in the * history.

  • ScheduleActivityTask – Schedules an * activity task.

  • SignalExternalWorkflowExecution – * Requests a signal to be delivered to the specified external workflow execution * and records a SignalExternalWorkflowExecutionInitiated event in the * history.

  • StartChildWorkflowExecution – Requests * that a child workflow execution be started and records a * StartChildWorkflowExecutionInitiated event in the history. The * child workflow execution is a separate workflow execution with its own * history.

  • StartTimer – Starts a timer for this * workflow execution and records a TimerStarted event in the history. * This timer fires after the specified delay and record a TimerFired * event.

Access Control

If you grant permission * to use RespondDecisionTaskCompleted, you can use IAM policies to * express permissions for the list of decisions returned by this action as if they * were members of the API. Treating decisions as a pseudo API maintains a uniform * conceptual model and helps keep policies readable. For details and example IAM * policies, see Using * IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer * Guide.

Decision Failure

Decisions can fail for * several reasons

  • The ordering of decisions should follow a * logical flow. Some decisions might not make sense in the current context of the * workflow execution and therefore fails.

  • A limit on your * account was reached.

  • The decision lacks sufficient * permissions.

One of the following events might be added to * the history to indicate an error. The event attribute's cause * parameter indicates the cause. If cause is set to * OPERATION_NOT_PERMITTED, the decision failed because it lacked * sufficient permissions. For details and example IAM policies, see Using * IAM to Manage Access to Amazon SWF Workflows in the Amazon SWF Developer * Guide.

  • ScheduleActivityTaskFailed – A * ScheduleActivityTask decision failed. This could happen if the * activity type specified in the decision isn't registered, is in a deprecated * state, or the decision isn't properly configured.

  • * RequestCancelActivityTaskFailed – A * RequestCancelActivityTask decision failed. This could happen if * there is no open activity task with the specified activityId.

  • * StartTimerFailed – A StartTimer decision failed. This * could happen if there is another open timer with the same timerId.

  • *
  • CancelTimerFailed – A CancelTimer decision * failed. This could happen if there is no open timer with the specified * timerId.

  • StartChildWorkflowExecutionFailed – A * StartChildWorkflowExecution decision failed. This could happen if * the workflow type specified isn't registered, is deprecated, or the decision * isn't properly configured.

  • * SignalExternalWorkflowExecutionFailed – A * SignalExternalWorkflowExecution decision failed. This could happen * if the workflowID specified in the decision was incorrect.

    *
  • RequestCancelExternalWorkflowExecutionFailed – A * RequestCancelExternalWorkflowExecution decision failed. This could * happen if the workflowID specified in the decision was * incorrect.

  • CancelWorkflowExecutionFailed – A * CancelWorkflowExecution decision failed. This could happen if there * is an unhandled decision task pending in the workflow execution.

  • *

    CompleteWorkflowExecutionFailed – A * CompleteWorkflowExecution decision failed. This could happen if * there is an unhandled decision task pending in the workflow execution.

  • *
  • ContinueAsNewWorkflowExecutionFailed – A * ContinueAsNewWorkflowExecution decision failed. This could happen * if there is an unhandled decision task pending in the workflow execution or the * ContinueAsNewWorkflowExecution decision was not configured correctly.

  • *
  • FailWorkflowExecutionFailed – A * FailWorkflowExecution decision failed. This could happen if there * is an unhandled decision task pending in the workflow execution.

*

The preceding error events might occur due to an error in the decider logic, * which might put the workflow execution in an unstable state The cause field in * the event structure for the error event indicates the cause of the error.

*

A workflow execution may be closed by the decider by returning one of * the following decisions when completing a decision task: * CompleteWorkflowExecution, FailWorkflowExecution, * CancelWorkflowExecution and * ContinueAsNewWorkflowExecution. An UnhandledDecision * fault is returned if a workflow closing decision is specified and a signal or * activity event had been added to the history while the decision task was being * performed by the decider. Unlike the above situations which are logic issues, * this fault is always possible because of race conditions in a distributed * system. The right action here is to call RespondDecisionTaskCompleted * without any decisions. This would result in another decision task with these new * events included in the history. The decider should handle the new events and may * decide to close the workflow execution.

How to Code a * Decision

You code a decision by first setting the decision type * field to one of the above decision values, and then set the corresponding * attributes field shown below:

See Also:

AWS API * Reference

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

Specifies the type of the decision.

*/ inline const DecisionType& GetDecisionType() const{ return m_decisionType; } /** *

Specifies the type of the decision.

*/ inline bool DecisionTypeHasBeenSet() const { return m_decisionTypeHasBeenSet; } /** *

Specifies the type of the decision.

*/ inline void SetDecisionType(const DecisionType& value) { m_decisionTypeHasBeenSet = true; m_decisionType = value; } /** *

Specifies the type of the decision.

*/ inline void SetDecisionType(DecisionType&& value) { m_decisionTypeHasBeenSet = true; m_decisionType = std::move(value); } /** *

Specifies the type of the decision.

*/ inline Decision& WithDecisionType(const DecisionType& value) { SetDecisionType(value); return *this;} /** *

Specifies the type of the decision.

*/ inline Decision& WithDecisionType(DecisionType&& value) { SetDecisionType(std::move(value)); return *this;} /** *

Provides the details of the ScheduleActivityTask decision. It * isn't set for other decision types.

*/ inline const ScheduleActivityTaskDecisionAttributes& GetScheduleActivityTaskDecisionAttributes() const{ return m_scheduleActivityTaskDecisionAttributes; } /** *

Provides the details of the ScheduleActivityTask decision. It * isn't set for other decision types.

*/ inline bool ScheduleActivityTaskDecisionAttributesHasBeenSet() const { return m_scheduleActivityTaskDecisionAttributesHasBeenSet; } /** *

Provides the details of the ScheduleActivityTask decision. It * isn't set for other decision types.

*/ inline void SetScheduleActivityTaskDecisionAttributes(const ScheduleActivityTaskDecisionAttributes& value) { m_scheduleActivityTaskDecisionAttributesHasBeenSet = true; m_scheduleActivityTaskDecisionAttributes = value; } /** *

Provides the details of the ScheduleActivityTask decision. It * isn't set for other decision types.

*/ inline void SetScheduleActivityTaskDecisionAttributes(ScheduleActivityTaskDecisionAttributes&& value) { m_scheduleActivityTaskDecisionAttributesHasBeenSet = true; m_scheduleActivityTaskDecisionAttributes = std::move(value); } /** *

Provides the details of the ScheduleActivityTask decision. It * isn't set for other decision types.

*/ inline Decision& WithScheduleActivityTaskDecisionAttributes(const ScheduleActivityTaskDecisionAttributes& value) { SetScheduleActivityTaskDecisionAttributes(value); return *this;} /** *

Provides the details of the ScheduleActivityTask decision. It * isn't set for other decision types.

*/ inline Decision& WithScheduleActivityTaskDecisionAttributes(ScheduleActivityTaskDecisionAttributes&& value) { SetScheduleActivityTaskDecisionAttributes(std::move(value)); return *this;} /** *

Provides the details of the RequestCancelActivityTask decision. * It isn't set for other decision types.

*/ inline const RequestCancelActivityTaskDecisionAttributes& GetRequestCancelActivityTaskDecisionAttributes() const{ return m_requestCancelActivityTaskDecisionAttributes; } /** *

Provides the details of the RequestCancelActivityTask decision. * It isn't set for other decision types.

*/ inline bool RequestCancelActivityTaskDecisionAttributesHasBeenSet() const { return m_requestCancelActivityTaskDecisionAttributesHasBeenSet; } /** *

Provides the details of the RequestCancelActivityTask decision. * It isn't set for other decision types.

*/ inline void SetRequestCancelActivityTaskDecisionAttributes(const RequestCancelActivityTaskDecisionAttributes& value) { m_requestCancelActivityTaskDecisionAttributesHasBeenSet = true; m_requestCancelActivityTaskDecisionAttributes = value; } /** *

Provides the details of the RequestCancelActivityTask decision. * It isn't set for other decision types.

*/ inline void SetRequestCancelActivityTaskDecisionAttributes(RequestCancelActivityTaskDecisionAttributes&& value) { m_requestCancelActivityTaskDecisionAttributesHasBeenSet = true; m_requestCancelActivityTaskDecisionAttributes = std::move(value); } /** *

Provides the details of the RequestCancelActivityTask decision. * It isn't set for other decision types.

*/ inline Decision& WithRequestCancelActivityTaskDecisionAttributes(const RequestCancelActivityTaskDecisionAttributes& value) { SetRequestCancelActivityTaskDecisionAttributes(value); return *this;} /** *

Provides the details of the RequestCancelActivityTask decision. * It isn't set for other decision types.

*/ inline Decision& WithRequestCancelActivityTaskDecisionAttributes(RequestCancelActivityTaskDecisionAttributes&& value) { SetRequestCancelActivityTaskDecisionAttributes(std::move(value)); return *this;} /** *

Provides the details of the CompleteWorkflowExecution decision. * It isn't set for other decision types.

*/ inline const CompleteWorkflowExecutionDecisionAttributes& GetCompleteWorkflowExecutionDecisionAttributes() const{ return m_completeWorkflowExecutionDecisionAttributes; } /** *

Provides the details of the CompleteWorkflowExecution decision. * It isn't set for other decision types.

*/ inline bool CompleteWorkflowExecutionDecisionAttributesHasBeenSet() const { return m_completeWorkflowExecutionDecisionAttributesHasBeenSet; } /** *

Provides the details of the CompleteWorkflowExecution decision. * It isn't set for other decision types.

*/ inline void SetCompleteWorkflowExecutionDecisionAttributes(const CompleteWorkflowExecutionDecisionAttributes& value) { m_completeWorkflowExecutionDecisionAttributesHasBeenSet = true; m_completeWorkflowExecutionDecisionAttributes = value; } /** *

Provides the details of the CompleteWorkflowExecution decision. * It isn't set for other decision types.

*/ inline void SetCompleteWorkflowExecutionDecisionAttributes(CompleteWorkflowExecutionDecisionAttributes&& value) { m_completeWorkflowExecutionDecisionAttributesHasBeenSet = true; m_completeWorkflowExecutionDecisionAttributes = std::move(value); } /** *

Provides the details of the CompleteWorkflowExecution decision. * It isn't set for other decision types.

*/ inline Decision& WithCompleteWorkflowExecutionDecisionAttributes(const CompleteWorkflowExecutionDecisionAttributes& value) { SetCompleteWorkflowExecutionDecisionAttributes(value); return *this;} /** *

Provides the details of the CompleteWorkflowExecution decision. * It isn't set for other decision types.

*/ inline Decision& WithCompleteWorkflowExecutionDecisionAttributes(CompleteWorkflowExecutionDecisionAttributes&& value) { SetCompleteWorkflowExecutionDecisionAttributes(std::move(value)); return *this;} /** *

Provides the details of the FailWorkflowExecution decision. It * isn't set for other decision types.

*/ inline const FailWorkflowExecutionDecisionAttributes& GetFailWorkflowExecutionDecisionAttributes() const{ return m_failWorkflowExecutionDecisionAttributes; } /** *

Provides the details of the FailWorkflowExecution decision. It * isn't set for other decision types.

*/ inline bool FailWorkflowExecutionDecisionAttributesHasBeenSet() const { return m_failWorkflowExecutionDecisionAttributesHasBeenSet; } /** *

Provides the details of the FailWorkflowExecution decision. It * isn't set for other decision types.

*/ inline void SetFailWorkflowExecutionDecisionAttributes(const FailWorkflowExecutionDecisionAttributes& value) { m_failWorkflowExecutionDecisionAttributesHasBeenSet = true; m_failWorkflowExecutionDecisionAttributes = value; } /** *

Provides the details of the FailWorkflowExecution decision. It * isn't set for other decision types.

*/ inline void SetFailWorkflowExecutionDecisionAttributes(FailWorkflowExecutionDecisionAttributes&& value) { m_failWorkflowExecutionDecisionAttributesHasBeenSet = true; m_failWorkflowExecutionDecisionAttributes = std::move(value); } /** *

Provides the details of the FailWorkflowExecution decision. It * isn't set for other decision types.

*/ inline Decision& WithFailWorkflowExecutionDecisionAttributes(const FailWorkflowExecutionDecisionAttributes& value) { SetFailWorkflowExecutionDecisionAttributes(value); return *this;} /** *

Provides the details of the FailWorkflowExecution decision. It * isn't set for other decision types.

*/ inline Decision& WithFailWorkflowExecutionDecisionAttributes(FailWorkflowExecutionDecisionAttributes&& value) { SetFailWorkflowExecutionDecisionAttributes(std::move(value)); return *this;} /** *

Provides the details of the CancelWorkflowExecution decision. It * isn't set for other decision types.

*/ inline const CancelWorkflowExecutionDecisionAttributes& GetCancelWorkflowExecutionDecisionAttributes() const{ return m_cancelWorkflowExecutionDecisionAttributes; } /** *

Provides the details of the CancelWorkflowExecution decision. It * isn't set for other decision types.

*/ inline bool CancelWorkflowExecutionDecisionAttributesHasBeenSet() const { return m_cancelWorkflowExecutionDecisionAttributesHasBeenSet; } /** *

Provides the details of the CancelWorkflowExecution decision. It * isn't set for other decision types.

*/ inline void SetCancelWorkflowExecutionDecisionAttributes(const CancelWorkflowExecutionDecisionAttributes& value) { m_cancelWorkflowExecutionDecisionAttributesHasBeenSet = true; m_cancelWorkflowExecutionDecisionAttributes = value; } /** *

Provides the details of the CancelWorkflowExecution decision. It * isn't set for other decision types.

*/ inline void SetCancelWorkflowExecutionDecisionAttributes(CancelWorkflowExecutionDecisionAttributes&& value) { m_cancelWorkflowExecutionDecisionAttributesHasBeenSet = true; m_cancelWorkflowExecutionDecisionAttributes = std::move(value); } /** *

Provides the details of the CancelWorkflowExecution decision. It * isn't set for other decision types.

*/ inline Decision& WithCancelWorkflowExecutionDecisionAttributes(const CancelWorkflowExecutionDecisionAttributes& value) { SetCancelWorkflowExecutionDecisionAttributes(value); return *this;} /** *

Provides the details of the CancelWorkflowExecution decision. It * isn't set for other decision types.

*/ inline Decision& WithCancelWorkflowExecutionDecisionAttributes(CancelWorkflowExecutionDecisionAttributes&& value) { SetCancelWorkflowExecutionDecisionAttributes(std::move(value)); return *this;} /** *

Provides the details of the ContinueAsNewWorkflowExecution * decision. It isn't set for other decision types.

*/ inline const ContinueAsNewWorkflowExecutionDecisionAttributes& GetContinueAsNewWorkflowExecutionDecisionAttributes() const{ return m_continueAsNewWorkflowExecutionDecisionAttributes; } /** *

Provides the details of the ContinueAsNewWorkflowExecution * decision. It isn't set for other decision types.

*/ inline bool ContinueAsNewWorkflowExecutionDecisionAttributesHasBeenSet() const { return m_continueAsNewWorkflowExecutionDecisionAttributesHasBeenSet; } /** *

Provides the details of the ContinueAsNewWorkflowExecution * decision. It isn't set for other decision types.

*/ inline void SetContinueAsNewWorkflowExecutionDecisionAttributes(const ContinueAsNewWorkflowExecutionDecisionAttributes& value) { m_continueAsNewWorkflowExecutionDecisionAttributesHasBeenSet = true; m_continueAsNewWorkflowExecutionDecisionAttributes = value; } /** *

Provides the details of the ContinueAsNewWorkflowExecution * decision. It isn't set for other decision types.

*/ inline void SetContinueAsNewWorkflowExecutionDecisionAttributes(ContinueAsNewWorkflowExecutionDecisionAttributes&& value) { m_continueAsNewWorkflowExecutionDecisionAttributesHasBeenSet = true; m_continueAsNewWorkflowExecutionDecisionAttributes = std::move(value); } /** *

Provides the details of the ContinueAsNewWorkflowExecution * decision. It isn't set for other decision types.

*/ inline Decision& WithContinueAsNewWorkflowExecutionDecisionAttributes(const ContinueAsNewWorkflowExecutionDecisionAttributes& value) { SetContinueAsNewWorkflowExecutionDecisionAttributes(value); return *this;} /** *

Provides the details of the ContinueAsNewWorkflowExecution * decision. It isn't set for other decision types.

*/ inline Decision& WithContinueAsNewWorkflowExecutionDecisionAttributes(ContinueAsNewWorkflowExecutionDecisionAttributes&& value) { SetContinueAsNewWorkflowExecutionDecisionAttributes(std::move(value)); return *this;} /** *

Provides the details of the RecordMarker decision. It isn't set * for other decision types.

*/ inline const RecordMarkerDecisionAttributes& GetRecordMarkerDecisionAttributes() const{ return m_recordMarkerDecisionAttributes; } /** *

Provides the details of the RecordMarker decision. It isn't set * for other decision types.

*/ inline bool RecordMarkerDecisionAttributesHasBeenSet() const { return m_recordMarkerDecisionAttributesHasBeenSet; } /** *

Provides the details of the RecordMarker decision. It isn't set * for other decision types.

*/ inline void SetRecordMarkerDecisionAttributes(const RecordMarkerDecisionAttributes& value) { m_recordMarkerDecisionAttributesHasBeenSet = true; m_recordMarkerDecisionAttributes = value; } /** *

Provides the details of the RecordMarker decision. It isn't set * for other decision types.

*/ inline void SetRecordMarkerDecisionAttributes(RecordMarkerDecisionAttributes&& value) { m_recordMarkerDecisionAttributesHasBeenSet = true; m_recordMarkerDecisionAttributes = std::move(value); } /** *

Provides the details of the RecordMarker decision. It isn't set * for other decision types.

*/ inline Decision& WithRecordMarkerDecisionAttributes(const RecordMarkerDecisionAttributes& value) { SetRecordMarkerDecisionAttributes(value); return *this;} /** *

Provides the details of the RecordMarker decision. It isn't set * for other decision types.

*/ inline Decision& WithRecordMarkerDecisionAttributes(RecordMarkerDecisionAttributes&& value) { SetRecordMarkerDecisionAttributes(std::move(value)); return *this;} /** *

Provides the details of the StartTimer decision. It isn't set * for other decision types.

*/ inline const StartTimerDecisionAttributes& GetStartTimerDecisionAttributes() const{ return m_startTimerDecisionAttributes; } /** *

Provides the details of the StartTimer decision. It isn't set * for other decision types.

*/ inline bool StartTimerDecisionAttributesHasBeenSet() const { return m_startTimerDecisionAttributesHasBeenSet; } /** *

Provides the details of the StartTimer decision. It isn't set * for other decision types.

*/ inline void SetStartTimerDecisionAttributes(const StartTimerDecisionAttributes& value) { m_startTimerDecisionAttributesHasBeenSet = true; m_startTimerDecisionAttributes = value; } /** *

Provides the details of the StartTimer decision. It isn't set * for other decision types.

*/ inline void SetStartTimerDecisionAttributes(StartTimerDecisionAttributes&& value) { m_startTimerDecisionAttributesHasBeenSet = true; m_startTimerDecisionAttributes = std::move(value); } /** *

Provides the details of the StartTimer decision. It isn't set * for other decision types.

*/ inline Decision& WithStartTimerDecisionAttributes(const StartTimerDecisionAttributes& value) { SetStartTimerDecisionAttributes(value); return *this;} /** *

Provides the details of the StartTimer decision. It isn't set * for other decision types.

*/ inline Decision& WithStartTimerDecisionAttributes(StartTimerDecisionAttributes&& value) { SetStartTimerDecisionAttributes(std::move(value)); return *this;} /** *

Provides the details of the CancelTimer decision. It isn't set * for other decision types.

*/ inline const CancelTimerDecisionAttributes& GetCancelTimerDecisionAttributes() const{ return m_cancelTimerDecisionAttributes; } /** *

Provides the details of the CancelTimer decision. It isn't set * for other decision types.

*/ inline bool CancelTimerDecisionAttributesHasBeenSet() const { return m_cancelTimerDecisionAttributesHasBeenSet; } /** *

Provides the details of the CancelTimer decision. It isn't set * for other decision types.

*/ inline void SetCancelTimerDecisionAttributes(const CancelTimerDecisionAttributes& value) { m_cancelTimerDecisionAttributesHasBeenSet = true; m_cancelTimerDecisionAttributes = value; } /** *

Provides the details of the CancelTimer decision. It isn't set * for other decision types.

*/ inline void SetCancelTimerDecisionAttributes(CancelTimerDecisionAttributes&& value) { m_cancelTimerDecisionAttributesHasBeenSet = true; m_cancelTimerDecisionAttributes = std::move(value); } /** *

Provides the details of the CancelTimer decision. It isn't set * for other decision types.

*/ inline Decision& WithCancelTimerDecisionAttributes(const CancelTimerDecisionAttributes& value) { SetCancelTimerDecisionAttributes(value); return *this;} /** *

Provides the details of the CancelTimer decision. It isn't set * for other decision types.

*/ inline Decision& WithCancelTimerDecisionAttributes(CancelTimerDecisionAttributes&& value) { SetCancelTimerDecisionAttributes(std::move(value)); return *this;} /** *

Provides the details of the SignalExternalWorkflowExecution * decision. It isn't set for other decision types.

*/ inline const SignalExternalWorkflowExecutionDecisionAttributes& GetSignalExternalWorkflowExecutionDecisionAttributes() const{ return m_signalExternalWorkflowExecutionDecisionAttributes; } /** *

Provides the details of the SignalExternalWorkflowExecution * decision. It isn't set for other decision types.

*/ inline bool SignalExternalWorkflowExecutionDecisionAttributesHasBeenSet() const { return m_signalExternalWorkflowExecutionDecisionAttributesHasBeenSet; } /** *

Provides the details of the SignalExternalWorkflowExecution * decision. It isn't set for other decision types.

*/ inline void SetSignalExternalWorkflowExecutionDecisionAttributes(const SignalExternalWorkflowExecutionDecisionAttributes& value) { m_signalExternalWorkflowExecutionDecisionAttributesHasBeenSet = true; m_signalExternalWorkflowExecutionDecisionAttributes = value; } /** *

Provides the details of the SignalExternalWorkflowExecution * decision. It isn't set for other decision types.

*/ inline void SetSignalExternalWorkflowExecutionDecisionAttributes(SignalExternalWorkflowExecutionDecisionAttributes&& value) { m_signalExternalWorkflowExecutionDecisionAttributesHasBeenSet = true; m_signalExternalWorkflowExecutionDecisionAttributes = std::move(value); } /** *

Provides the details of the SignalExternalWorkflowExecution * decision. It isn't set for other decision types.

*/ inline Decision& WithSignalExternalWorkflowExecutionDecisionAttributes(const SignalExternalWorkflowExecutionDecisionAttributes& value) { SetSignalExternalWorkflowExecutionDecisionAttributes(value); return *this;} /** *

Provides the details of the SignalExternalWorkflowExecution * decision. It isn't set for other decision types.

*/ inline Decision& WithSignalExternalWorkflowExecutionDecisionAttributes(SignalExternalWorkflowExecutionDecisionAttributes&& value) { SetSignalExternalWorkflowExecutionDecisionAttributes(std::move(value)); return *this;} /** *

Provides the details of the * RequestCancelExternalWorkflowExecution decision. It isn't set for * other decision types.

*/ inline const RequestCancelExternalWorkflowExecutionDecisionAttributes& GetRequestCancelExternalWorkflowExecutionDecisionAttributes() const{ return m_requestCancelExternalWorkflowExecutionDecisionAttributes; } /** *

Provides the details of the * RequestCancelExternalWorkflowExecution decision. It isn't set for * other decision types.

*/ inline bool RequestCancelExternalWorkflowExecutionDecisionAttributesHasBeenSet() const { return m_requestCancelExternalWorkflowExecutionDecisionAttributesHasBeenSet; } /** *

Provides the details of the * RequestCancelExternalWorkflowExecution decision. It isn't set for * other decision types.

*/ inline void SetRequestCancelExternalWorkflowExecutionDecisionAttributes(const RequestCancelExternalWorkflowExecutionDecisionAttributes& value) { m_requestCancelExternalWorkflowExecutionDecisionAttributesHasBeenSet = true; m_requestCancelExternalWorkflowExecutionDecisionAttributes = value; } /** *

Provides the details of the * RequestCancelExternalWorkflowExecution decision. It isn't set for * other decision types.

*/ inline void SetRequestCancelExternalWorkflowExecutionDecisionAttributes(RequestCancelExternalWorkflowExecutionDecisionAttributes&& value) { m_requestCancelExternalWorkflowExecutionDecisionAttributesHasBeenSet = true; m_requestCancelExternalWorkflowExecutionDecisionAttributes = std::move(value); } /** *

Provides the details of the * RequestCancelExternalWorkflowExecution decision. It isn't set for * other decision types.

*/ inline Decision& WithRequestCancelExternalWorkflowExecutionDecisionAttributes(const RequestCancelExternalWorkflowExecutionDecisionAttributes& value) { SetRequestCancelExternalWorkflowExecutionDecisionAttributes(value); return *this;} /** *

Provides the details of the * RequestCancelExternalWorkflowExecution decision. It isn't set for * other decision types.

*/ inline Decision& WithRequestCancelExternalWorkflowExecutionDecisionAttributes(RequestCancelExternalWorkflowExecutionDecisionAttributes&& value) { SetRequestCancelExternalWorkflowExecutionDecisionAttributes(std::move(value)); return *this;} /** *

Provides the details of the StartChildWorkflowExecution * decision. It isn't set for other decision types.

*/ inline const StartChildWorkflowExecutionDecisionAttributes& GetStartChildWorkflowExecutionDecisionAttributes() const{ return m_startChildWorkflowExecutionDecisionAttributes; } /** *

Provides the details of the StartChildWorkflowExecution * decision. It isn't set for other decision types.

*/ inline bool StartChildWorkflowExecutionDecisionAttributesHasBeenSet() const { return m_startChildWorkflowExecutionDecisionAttributesHasBeenSet; } /** *

Provides the details of the StartChildWorkflowExecution * decision. It isn't set for other decision types.

*/ inline void SetStartChildWorkflowExecutionDecisionAttributes(const StartChildWorkflowExecutionDecisionAttributes& value) { m_startChildWorkflowExecutionDecisionAttributesHasBeenSet = true; m_startChildWorkflowExecutionDecisionAttributes = value; } /** *

Provides the details of the StartChildWorkflowExecution * decision. It isn't set for other decision types.

*/ inline void SetStartChildWorkflowExecutionDecisionAttributes(StartChildWorkflowExecutionDecisionAttributes&& value) { m_startChildWorkflowExecutionDecisionAttributesHasBeenSet = true; m_startChildWorkflowExecutionDecisionAttributes = std::move(value); } /** *

Provides the details of the StartChildWorkflowExecution * decision. It isn't set for other decision types.

*/ inline Decision& WithStartChildWorkflowExecutionDecisionAttributes(const StartChildWorkflowExecutionDecisionAttributes& value) { SetStartChildWorkflowExecutionDecisionAttributes(value); return *this;} /** *

Provides the details of the StartChildWorkflowExecution * decision. It isn't set for other decision types.

*/ inline Decision& WithStartChildWorkflowExecutionDecisionAttributes(StartChildWorkflowExecutionDecisionAttributes&& value) { SetStartChildWorkflowExecutionDecisionAttributes(std::move(value)); return *this;} /** *

Provides the details of the ScheduleLambdaFunction decision. It * isn't set for other decision types.

*/ inline const ScheduleLambdaFunctionDecisionAttributes& GetScheduleLambdaFunctionDecisionAttributes() const{ return m_scheduleLambdaFunctionDecisionAttributes; } /** *

Provides the details of the ScheduleLambdaFunction decision. It * isn't set for other decision types.

*/ inline bool ScheduleLambdaFunctionDecisionAttributesHasBeenSet() const { return m_scheduleLambdaFunctionDecisionAttributesHasBeenSet; } /** *

Provides the details of the ScheduleLambdaFunction decision. It * isn't set for other decision types.

*/ inline void SetScheduleLambdaFunctionDecisionAttributes(const ScheduleLambdaFunctionDecisionAttributes& value) { m_scheduleLambdaFunctionDecisionAttributesHasBeenSet = true; m_scheduleLambdaFunctionDecisionAttributes = value; } /** *

Provides the details of the ScheduleLambdaFunction decision. It * isn't set for other decision types.

*/ inline void SetScheduleLambdaFunctionDecisionAttributes(ScheduleLambdaFunctionDecisionAttributes&& value) { m_scheduleLambdaFunctionDecisionAttributesHasBeenSet = true; m_scheduleLambdaFunctionDecisionAttributes = std::move(value); } /** *

Provides the details of the ScheduleLambdaFunction decision. It * isn't set for other decision types.

*/ inline Decision& WithScheduleLambdaFunctionDecisionAttributes(const ScheduleLambdaFunctionDecisionAttributes& value) { SetScheduleLambdaFunctionDecisionAttributes(value); return *this;} /** *

Provides the details of the ScheduleLambdaFunction decision. It * isn't set for other decision types.

*/ inline Decision& WithScheduleLambdaFunctionDecisionAttributes(ScheduleLambdaFunctionDecisionAttributes&& value) { SetScheduleLambdaFunctionDecisionAttributes(std::move(value)); return *this;} private: DecisionType m_decisionType; bool m_decisionTypeHasBeenSet = false; ScheduleActivityTaskDecisionAttributes m_scheduleActivityTaskDecisionAttributes; bool m_scheduleActivityTaskDecisionAttributesHasBeenSet = false; RequestCancelActivityTaskDecisionAttributes m_requestCancelActivityTaskDecisionAttributes; bool m_requestCancelActivityTaskDecisionAttributesHasBeenSet = false; CompleteWorkflowExecutionDecisionAttributes m_completeWorkflowExecutionDecisionAttributes; bool m_completeWorkflowExecutionDecisionAttributesHasBeenSet = false; FailWorkflowExecutionDecisionAttributes m_failWorkflowExecutionDecisionAttributes; bool m_failWorkflowExecutionDecisionAttributesHasBeenSet = false; CancelWorkflowExecutionDecisionAttributes m_cancelWorkflowExecutionDecisionAttributes; bool m_cancelWorkflowExecutionDecisionAttributesHasBeenSet = false; ContinueAsNewWorkflowExecutionDecisionAttributes m_continueAsNewWorkflowExecutionDecisionAttributes; bool m_continueAsNewWorkflowExecutionDecisionAttributesHasBeenSet = false; RecordMarkerDecisionAttributes m_recordMarkerDecisionAttributes; bool m_recordMarkerDecisionAttributesHasBeenSet = false; StartTimerDecisionAttributes m_startTimerDecisionAttributes; bool m_startTimerDecisionAttributesHasBeenSet = false; CancelTimerDecisionAttributes m_cancelTimerDecisionAttributes; bool m_cancelTimerDecisionAttributesHasBeenSet = false; SignalExternalWorkflowExecutionDecisionAttributes m_signalExternalWorkflowExecutionDecisionAttributes; bool m_signalExternalWorkflowExecutionDecisionAttributesHasBeenSet = false; RequestCancelExternalWorkflowExecutionDecisionAttributes m_requestCancelExternalWorkflowExecutionDecisionAttributes; bool m_requestCancelExternalWorkflowExecutionDecisionAttributesHasBeenSet = false; StartChildWorkflowExecutionDecisionAttributes m_startChildWorkflowExecutionDecisionAttributes; bool m_startChildWorkflowExecutionDecisionAttributesHasBeenSet = false; ScheduleLambdaFunctionDecisionAttributes m_scheduleLambdaFunctionDecisionAttributes; bool m_scheduleLambdaFunctionDecisionAttributesHasBeenSet = false; }; } // namespace Model } // namespace SWF } // namespace Aws