
com.amazonaws.services.simpleworkflow.model.Decision Maven / Gradle / Ivy
Show all versions of aws-java-sdk-simpleworkflow Show documentation
/*
* Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights
* Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
package com.amazonaws.services.simpleworkflow.model;
import java.io.Serializable;
/**
*
* 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 do not 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 will be canceled. If the activity task was
* already assigned to a worker, then the worker will be 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.
* - ScheduleLambdaFunction: schedules a AWS Lambda function.
* - 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 will fire 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.
*
*
* 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
* will therefore fail.
* - 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.
*
*
* - ScheduleActivityTaskFailed: a ScheduleActivityTask decision
* failed. This could happen if the activity type specified in the decision is
* not registered, is in a deprecated state, or the decision is not properly
* configured.
* - ScheduleLambdaFunctionFailed: a ScheduleLambdaFunctionFailed
* decision failed. This could happen if the AWS Lambda function specified in
* the decision does not exist, or the AWS Lambda service's limits are exceeded.
*
* - 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 is not
* registered, is deprecated, or the decision is not 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 will
* be 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:
*
*
* - ScheduleActivityTaskDecisionAttributes
* - ScheduleLambdaFunctionDecisionAttributes
* - RequestCancelActivityTaskDecisionAttributes
* - CompleteWorkflowExecutionDecisionAttributes
* - FailWorkflowExecutionDecisionAttributes
* - CancelWorkflowExecutionDecisionAttributes
* - ContinueAsNewWorkflowExecutionDecisionAttributes
* - RecordMarkerDecisionAttributes
* - StartTimerDecisionAttributes
* - CancelTimerDecisionAttributes
* - SignalExternalWorkflowExecutionDecisionAttributes
* - RequestCancelExternalWorkflowExecutionDecisionAttributes
* - StartChildWorkflowExecutionDecisionAttributes
*
*/
public class Decision implements Serializable, Cloneable {
/**
*
* Specifies the type of the decision.
*
*/
private String decisionType;
/**
*
* Provides details of the ScheduleActivityTask
decision. It is
* not set for other decision types.
*
*/
private ScheduleActivityTaskDecisionAttributes scheduleActivityTaskDecisionAttributes;
/**
*
* Provides details of the RequestCancelActivityTask
decision.
* It is not set for other decision types.
*
*/
private RequestCancelActivityTaskDecisionAttributes requestCancelActivityTaskDecisionAttributes;
/**
*
* Provides details of the CompleteWorkflowExecution
decision.
* It is not set for other decision types.
*
*/
private CompleteWorkflowExecutionDecisionAttributes completeWorkflowExecutionDecisionAttributes;
/**
*
* Provides details of the FailWorkflowExecution
decision. It
* is not set for other decision types.
*
*/
private FailWorkflowExecutionDecisionAttributes failWorkflowExecutionDecisionAttributes;
/**
*
* Provides details of the CancelWorkflowExecution
decision. It
* is not set for other decision types.
*
*/
private CancelWorkflowExecutionDecisionAttributes cancelWorkflowExecutionDecisionAttributes;
/**
*
* Provides details of the ContinueAsNewWorkflowExecution
* decision. It is not set for other decision types.
*
*/
private ContinueAsNewWorkflowExecutionDecisionAttributes continueAsNewWorkflowExecutionDecisionAttributes;
/**
*
* Provides details of the RecordMarker
decision. It is not set
* for other decision types.
*
*/
private RecordMarkerDecisionAttributes recordMarkerDecisionAttributes;
/**
*
* Provides details of the StartTimer
decision. It is not set
* for other decision types.
*
*/
private StartTimerDecisionAttributes startTimerDecisionAttributes;
/**
*
* Provides details of the CancelTimer
decision. It is not set
* for other decision types.
*
*/
private CancelTimerDecisionAttributes cancelTimerDecisionAttributes;
/**
*
* Provides details of the SignalExternalWorkflowExecution
* decision. It is not set for other decision types.
*
*/
private SignalExternalWorkflowExecutionDecisionAttributes signalExternalWorkflowExecutionDecisionAttributes;
/**
*
* Provides details of the
* RequestCancelExternalWorkflowExecution
decision. It is not
* set for other decision types.
*
*/
private RequestCancelExternalWorkflowExecutionDecisionAttributes requestCancelExternalWorkflowExecutionDecisionAttributes;
/**
*
* Provides details of the StartChildWorkflowExecution
* decision. It is not set for other decision types.
*
*/
private StartChildWorkflowExecutionDecisionAttributes startChildWorkflowExecutionDecisionAttributes;
private ScheduleLambdaFunctionDecisionAttributes scheduleLambdaFunctionDecisionAttributes;
/**
*
* Specifies the type of the decision.
*
*
* @param decisionType
* Specifies the type of the decision.
* @see DecisionType
*/
public void setDecisionType(String decisionType) {
this.decisionType = decisionType;
}
/**
*
* Specifies the type of the decision.
*
*
* @return Specifies the type of the decision.
* @see DecisionType
*/
public String getDecisionType() {
return this.decisionType;
}
/**
*
* Specifies the type of the decision.
*
*
* @param decisionType
* Specifies the type of the decision.
* @return Returns a reference to this object so that method calls can be
* chained together.
* @see DecisionType
*/
public Decision withDecisionType(String decisionType) {
setDecisionType(decisionType);
return this;
}
/**
*
* Specifies the type of the decision.
*
*
* @param decisionType
* Specifies the type of the decision.
* @see DecisionType
*/
public void setDecisionType(DecisionType decisionType) {
this.decisionType = decisionType.toString();
}
/**
*
* Specifies the type of the decision.
*
*
* @param decisionType
* Specifies the type of the decision.
* @return Returns a reference to this object so that method calls can be
* chained together.
* @see DecisionType
*/
public Decision withDecisionType(DecisionType decisionType) {
setDecisionType(decisionType);
return this;
}
/**
*
* Provides details of the ScheduleActivityTask
decision. It is
* not set for other decision types.
*
*
* @param scheduleActivityTaskDecisionAttributes
* Provides details of the ScheduleActivityTask
* decision. It is not set for other decision types.
*/
public void setScheduleActivityTaskDecisionAttributes(
ScheduleActivityTaskDecisionAttributes scheduleActivityTaskDecisionAttributes) {
this.scheduleActivityTaskDecisionAttributes = scheduleActivityTaskDecisionAttributes;
}
/**
*
* Provides details of the ScheduleActivityTask
decision. It is
* not set for other decision types.
*
*
* @return Provides details of the ScheduleActivityTask
* decision. It is not set for other decision types.
*/
public ScheduleActivityTaskDecisionAttributes getScheduleActivityTaskDecisionAttributes() {
return this.scheduleActivityTaskDecisionAttributes;
}
/**
*
* Provides details of the ScheduleActivityTask
decision. It is
* not set for other decision types.
*
*
* @param scheduleActivityTaskDecisionAttributes
* Provides details of the ScheduleActivityTask
* decision. It is not set for other decision types.
* @return Returns a reference to this object so that method calls can be
* chained together.
*/
public Decision withScheduleActivityTaskDecisionAttributes(
ScheduleActivityTaskDecisionAttributes scheduleActivityTaskDecisionAttributes) {
setScheduleActivityTaskDecisionAttributes(scheduleActivityTaskDecisionAttributes);
return this;
}
/**
*
* Provides details of the RequestCancelActivityTask
decision.
* It is not set for other decision types.
*
*
* @param requestCancelActivityTaskDecisionAttributes
* Provides details of the RequestCancelActivityTask
* decision. It is not set for other decision types.
*/
public void setRequestCancelActivityTaskDecisionAttributes(
RequestCancelActivityTaskDecisionAttributes requestCancelActivityTaskDecisionAttributes) {
this.requestCancelActivityTaskDecisionAttributes = requestCancelActivityTaskDecisionAttributes;
}
/**
*
* Provides details of the RequestCancelActivityTask
decision.
* It is not set for other decision types.
*
*
* @return Provides details of the RequestCancelActivityTask
* decision. It is not set for other decision types.
*/
public RequestCancelActivityTaskDecisionAttributes getRequestCancelActivityTaskDecisionAttributes() {
return this.requestCancelActivityTaskDecisionAttributes;
}
/**
*
* Provides details of the RequestCancelActivityTask
decision.
* It is not set for other decision types.
*
*
* @param requestCancelActivityTaskDecisionAttributes
* Provides details of the RequestCancelActivityTask
* decision. It is not set for other decision types.
* @return Returns a reference to this object so that method calls can be
* chained together.
*/
public Decision withRequestCancelActivityTaskDecisionAttributes(
RequestCancelActivityTaskDecisionAttributes requestCancelActivityTaskDecisionAttributes) {
setRequestCancelActivityTaskDecisionAttributes(requestCancelActivityTaskDecisionAttributes);
return this;
}
/**
*
* Provides details of the CompleteWorkflowExecution
decision.
* It is not set for other decision types.
*
*
* @param completeWorkflowExecutionDecisionAttributes
* Provides details of the CompleteWorkflowExecution
* decision. It is not set for other decision types.
*/
public void setCompleteWorkflowExecutionDecisionAttributes(
CompleteWorkflowExecutionDecisionAttributes completeWorkflowExecutionDecisionAttributes) {
this.completeWorkflowExecutionDecisionAttributes = completeWorkflowExecutionDecisionAttributes;
}
/**
*
* Provides details of the CompleteWorkflowExecution
decision.
* It is not set for other decision types.
*
*
* @return Provides details of the CompleteWorkflowExecution
* decision. It is not set for other decision types.
*/
public CompleteWorkflowExecutionDecisionAttributes getCompleteWorkflowExecutionDecisionAttributes() {
return this.completeWorkflowExecutionDecisionAttributes;
}
/**
*
* Provides details of the CompleteWorkflowExecution
decision.
* It is not set for other decision types.
*
*
* @param completeWorkflowExecutionDecisionAttributes
* Provides details of the CompleteWorkflowExecution
* decision. It is not set for other decision types.
* @return Returns a reference to this object so that method calls can be
* chained together.
*/
public Decision withCompleteWorkflowExecutionDecisionAttributes(
CompleteWorkflowExecutionDecisionAttributes completeWorkflowExecutionDecisionAttributes) {
setCompleteWorkflowExecutionDecisionAttributes(completeWorkflowExecutionDecisionAttributes);
return this;
}
/**
*
* Provides details of the FailWorkflowExecution
decision. It
* is not set for other decision types.
*
*
* @param failWorkflowExecutionDecisionAttributes
* Provides details of the FailWorkflowExecution
* decision. It is not set for other decision types.
*/
public void setFailWorkflowExecutionDecisionAttributes(
FailWorkflowExecutionDecisionAttributes failWorkflowExecutionDecisionAttributes) {
this.failWorkflowExecutionDecisionAttributes = failWorkflowExecutionDecisionAttributes;
}
/**
*
* Provides details of the FailWorkflowExecution
decision. It
* is not set for other decision types.
*
*
* @return Provides details of the FailWorkflowExecution
* decision. It is not set for other decision types.
*/
public FailWorkflowExecutionDecisionAttributes getFailWorkflowExecutionDecisionAttributes() {
return this.failWorkflowExecutionDecisionAttributes;
}
/**
*
* Provides details of the FailWorkflowExecution
decision. It
* is not set for other decision types.
*
*
* @param failWorkflowExecutionDecisionAttributes
* Provides details of the FailWorkflowExecution
* decision. It is not set for other decision types.
* @return Returns a reference to this object so that method calls can be
* chained together.
*/
public Decision withFailWorkflowExecutionDecisionAttributes(
FailWorkflowExecutionDecisionAttributes failWorkflowExecutionDecisionAttributes) {
setFailWorkflowExecutionDecisionAttributes(failWorkflowExecutionDecisionAttributes);
return this;
}
/**
*
* Provides details of the CancelWorkflowExecution
decision. It
* is not set for other decision types.
*
*
* @param cancelWorkflowExecutionDecisionAttributes
* Provides details of the CancelWorkflowExecution
* decision. It is not set for other decision types.
*/
public void setCancelWorkflowExecutionDecisionAttributes(
CancelWorkflowExecutionDecisionAttributes cancelWorkflowExecutionDecisionAttributes) {
this.cancelWorkflowExecutionDecisionAttributes = cancelWorkflowExecutionDecisionAttributes;
}
/**
*
* Provides details of the CancelWorkflowExecution
decision. It
* is not set for other decision types.
*
*
* @return Provides details of the CancelWorkflowExecution
* decision. It is not set for other decision types.
*/
public CancelWorkflowExecutionDecisionAttributes getCancelWorkflowExecutionDecisionAttributes() {
return this.cancelWorkflowExecutionDecisionAttributes;
}
/**
*
* Provides details of the CancelWorkflowExecution
decision. It
* is not set for other decision types.
*
*
* @param cancelWorkflowExecutionDecisionAttributes
* Provides details of the CancelWorkflowExecution
* decision. It is not set for other decision types.
* @return Returns a reference to this object so that method calls can be
* chained together.
*/
public Decision withCancelWorkflowExecutionDecisionAttributes(
CancelWorkflowExecutionDecisionAttributes cancelWorkflowExecutionDecisionAttributes) {
setCancelWorkflowExecutionDecisionAttributes(cancelWorkflowExecutionDecisionAttributes);
return this;
}
/**
*
* Provides details of the ContinueAsNewWorkflowExecution
* decision. It is not set for other decision types.
*
*
* @param continueAsNewWorkflowExecutionDecisionAttributes
* Provides details of the
* ContinueAsNewWorkflowExecution
decision. It is not
* set for other decision types.
*/
public void setContinueAsNewWorkflowExecutionDecisionAttributes(
ContinueAsNewWorkflowExecutionDecisionAttributes continueAsNewWorkflowExecutionDecisionAttributes) {
this.continueAsNewWorkflowExecutionDecisionAttributes = continueAsNewWorkflowExecutionDecisionAttributes;
}
/**
*
* Provides details of the ContinueAsNewWorkflowExecution
* decision. It is not set for other decision types.
*
*
* @return Provides details of the
* ContinueAsNewWorkflowExecution
decision. It is not
* set for other decision types.
*/
public ContinueAsNewWorkflowExecutionDecisionAttributes getContinueAsNewWorkflowExecutionDecisionAttributes() {
return this.continueAsNewWorkflowExecutionDecisionAttributes;
}
/**
*
* Provides details of the ContinueAsNewWorkflowExecution
* decision. It is not set for other decision types.
*
*
* @param continueAsNewWorkflowExecutionDecisionAttributes
* Provides details of the
* ContinueAsNewWorkflowExecution
decision. It is not
* set for other decision types.
* @return Returns a reference to this object so that method calls can be
* chained together.
*/
public Decision withContinueAsNewWorkflowExecutionDecisionAttributes(
ContinueAsNewWorkflowExecutionDecisionAttributes continueAsNewWorkflowExecutionDecisionAttributes) {
setContinueAsNewWorkflowExecutionDecisionAttributes(continueAsNewWorkflowExecutionDecisionAttributes);
return this;
}
/**
*
* Provides details of the RecordMarker
decision. It is not set
* for other decision types.
*
*
* @param recordMarkerDecisionAttributes
* Provides details of the RecordMarker
decision. It is
* not set for other decision types.
*/
public void setRecordMarkerDecisionAttributes(
RecordMarkerDecisionAttributes recordMarkerDecisionAttributes) {
this.recordMarkerDecisionAttributes = recordMarkerDecisionAttributes;
}
/**
*
* Provides details of the RecordMarker
decision. It is not set
* for other decision types.
*
*
* @return Provides details of the RecordMarker
decision. It is
* not set for other decision types.
*/
public RecordMarkerDecisionAttributes getRecordMarkerDecisionAttributes() {
return this.recordMarkerDecisionAttributes;
}
/**
*
* Provides details of the RecordMarker
decision. It is not set
* for other decision types.
*
*
* @param recordMarkerDecisionAttributes
* Provides details of the RecordMarker
decision. It is
* not set for other decision types.
* @return Returns a reference to this object so that method calls can be
* chained together.
*/
public Decision withRecordMarkerDecisionAttributes(
RecordMarkerDecisionAttributes recordMarkerDecisionAttributes) {
setRecordMarkerDecisionAttributes(recordMarkerDecisionAttributes);
return this;
}
/**
*
* Provides details of the StartTimer
decision. It is not set
* for other decision types.
*
*
* @param startTimerDecisionAttributes
* Provides details of the StartTimer
decision. It is
* not set for other decision types.
*/
public void setStartTimerDecisionAttributes(
StartTimerDecisionAttributes startTimerDecisionAttributes) {
this.startTimerDecisionAttributes = startTimerDecisionAttributes;
}
/**
*
* Provides details of the StartTimer
decision. It is not set
* for other decision types.
*
*
* @return Provides details of the StartTimer
decision. It is
* not set for other decision types.
*/
public StartTimerDecisionAttributes getStartTimerDecisionAttributes() {
return this.startTimerDecisionAttributes;
}
/**
*
* Provides details of the StartTimer
decision. It is not set
* for other decision types.
*
*
* @param startTimerDecisionAttributes
* Provides details of the StartTimer
decision. It is
* not set for other decision types.
* @return Returns a reference to this object so that method calls can be
* chained together.
*/
public Decision withStartTimerDecisionAttributes(
StartTimerDecisionAttributes startTimerDecisionAttributes) {
setStartTimerDecisionAttributes(startTimerDecisionAttributes);
return this;
}
/**
*
* Provides details of the CancelTimer
decision. It is not set
* for other decision types.
*
*
* @param cancelTimerDecisionAttributes
* Provides details of the CancelTimer
decision. It is
* not set for other decision types.
*/
public void setCancelTimerDecisionAttributes(
CancelTimerDecisionAttributes cancelTimerDecisionAttributes) {
this.cancelTimerDecisionAttributes = cancelTimerDecisionAttributes;
}
/**
*
* Provides details of the CancelTimer
decision. It is not set
* for other decision types.
*
*
* @return Provides details of the CancelTimer
decision. It is
* not set for other decision types.
*/
public CancelTimerDecisionAttributes getCancelTimerDecisionAttributes() {
return this.cancelTimerDecisionAttributes;
}
/**
*
* Provides details of the CancelTimer
decision. It is not set
* for other decision types.
*
*
* @param cancelTimerDecisionAttributes
* Provides details of the CancelTimer
decision. It is
* not set for other decision types.
* @return Returns a reference to this object so that method calls can be
* chained together.
*/
public Decision withCancelTimerDecisionAttributes(
CancelTimerDecisionAttributes cancelTimerDecisionAttributes) {
setCancelTimerDecisionAttributes(cancelTimerDecisionAttributes);
return this;
}
/**
*
* Provides details of the SignalExternalWorkflowExecution
* decision. It is not set for other decision types.
*
*
* @param signalExternalWorkflowExecutionDecisionAttributes
* Provides details of the
* SignalExternalWorkflowExecution
decision. It is not
* set for other decision types.
*/
public void setSignalExternalWorkflowExecutionDecisionAttributes(
SignalExternalWorkflowExecutionDecisionAttributes signalExternalWorkflowExecutionDecisionAttributes) {
this.signalExternalWorkflowExecutionDecisionAttributes = signalExternalWorkflowExecutionDecisionAttributes;
}
/**
*
* Provides details of the SignalExternalWorkflowExecution
* decision. It is not set for other decision types.
*
*
* @return Provides details of the
* SignalExternalWorkflowExecution
decision. It is not
* set for other decision types.
*/
public SignalExternalWorkflowExecutionDecisionAttributes getSignalExternalWorkflowExecutionDecisionAttributes() {
return this.signalExternalWorkflowExecutionDecisionAttributes;
}
/**
*
* Provides details of the SignalExternalWorkflowExecution
* decision. It is not set for other decision types.
*
*
* @param signalExternalWorkflowExecutionDecisionAttributes
* Provides details of the
* SignalExternalWorkflowExecution
decision. It is not
* set for other decision types.
* @return Returns a reference to this object so that method calls can be
* chained together.
*/
public Decision withSignalExternalWorkflowExecutionDecisionAttributes(
SignalExternalWorkflowExecutionDecisionAttributes signalExternalWorkflowExecutionDecisionAttributes) {
setSignalExternalWorkflowExecutionDecisionAttributes(signalExternalWorkflowExecutionDecisionAttributes);
return this;
}
/**
*
* Provides details of the
* RequestCancelExternalWorkflowExecution
decision. It is not
* set for other decision types.
*
*
* @param requestCancelExternalWorkflowExecutionDecisionAttributes
* Provides details of the
* RequestCancelExternalWorkflowExecution
decision. It
* is not set for other decision types.
*/
public void setRequestCancelExternalWorkflowExecutionDecisionAttributes(
RequestCancelExternalWorkflowExecutionDecisionAttributes requestCancelExternalWorkflowExecutionDecisionAttributes) {
this.requestCancelExternalWorkflowExecutionDecisionAttributes = requestCancelExternalWorkflowExecutionDecisionAttributes;
}
/**
*
* Provides details of the
* RequestCancelExternalWorkflowExecution
decision. It is not
* set for other decision types.
*
*
* @return Provides details of the
* RequestCancelExternalWorkflowExecution
decision. It
* is not set for other decision types.
*/
public RequestCancelExternalWorkflowExecutionDecisionAttributes getRequestCancelExternalWorkflowExecutionDecisionAttributes() {
return this.requestCancelExternalWorkflowExecutionDecisionAttributes;
}
/**
*
* Provides details of the
* RequestCancelExternalWorkflowExecution
decision. It is not
* set for other decision types.
*
*
* @param requestCancelExternalWorkflowExecutionDecisionAttributes
* Provides details of the
* RequestCancelExternalWorkflowExecution
decision. It
* is not set for other decision types.
* @return Returns a reference to this object so that method calls can be
* chained together.
*/
public Decision withRequestCancelExternalWorkflowExecutionDecisionAttributes(
RequestCancelExternalWorkflowExecutionDecisionAttributes requestCancelExternalWorkflowExecutionDecisionAttributes) {
setRequestCancelExternalWorkflowExecutionDecisionAttributes(requestCancelExternalWorkflowExecutionDecisionAttributes);
return this;
}
/**
*
* Provides details of the StartChildWorkflowExecution
* decision. It is not set for other decision types.
*
*
* @param startChildWorkflowExecutionDecisionAttributes
* Provides details of the StartChildWorkflowExecution
* decision. It is not set for other decision types.
*/
public void setStartChildWorkflowExecutionDecisionAttributes(
StartChildWorkflowExecutionDecisionAttributes startChildWorkflowExecutionDecisionAttributes) {
this.startChildWorkflowExecutionDecisionAttributes = startChildWorkflowExecutionDecisionAttributes;
}
/**
*
* Provides details of the StartChildWorkflowExecution
* decision. It is not set for other decision types.
*
*
* @return Provides details of the StartChildWorkflowExecution
* decision. It is not set for other decision types.
*/
public StartChildWorkflowExecutionDecisionAttributes getStartChildWorkflowExecutionDecisionAttributes() {
return this.startChildWorkflowExecutionDecisionAttributes;
}
/**
*
* Provides details of the StartChildWorkflowExecution
* decision. It is not set for other decision types.
*
*
* @param startChildWorkflowExecutionDecisionAttributes
* Provides details of the StartChildWorkflowExecution
* decision. It is not set for other decision types.
* @return Returns a reference to this object so that method calls can be
* chained together.
*/
public Decision withStartChildWorkflowExecutionDecisionAttributes(
StartChildWorkflowExecutionDecisionAttributes startChildWorkflowExecutionDecisionAttributes) {
setStartChildWorkflowExecutionDecisionAttributes(startChildWorkflowExecutionDecisionAttributes);
return this;
}
/**
* @param scheduleLambdaFunctionDecisionAttributes
*/
public void setScheduleLambdaFunctionDecisionAttributes(
ScheduleLambdaFunctionDecisionAttributes scheduleLambdaFunctionDecisionAttributes) {
this.scheduleLambdaFunctionDecisionAttributes = scheduleLambdaFunctionDecisionAttributes;
}
/**
* @return
*/
public ScheduleLambdaFunctionDecisionAttributes getScheduleLambdaFunctionDecisionAttributes() {
return this.scheduleLambdaFunctionDecisionAttributes;
}
/**
* @param scheduleLambdaFunctionDecisionAttributes
* @return Returns a reference to this object so that method calls can be
* chained together.
*/
public Decision withScheduleLambdaFunctionDecisionAttributes(
ScheduleLambdaFunctionDecisionAttributes scheduleLambdaFunctionDecisionAttributes) {
setScheduleLambdaFunctionDecisionAttributes(scheduleLambdaFunctionDecisionAttributes);
return this;
}
/**
* Returns a string representation of this object; useful for testing and
* debugging.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getDecisionType() != null)
sb.append("DecisionType: " + getDecisionType() + ",");
if (getScheduleActivityTaskDecisionAttributes() != null)
sb.append("ScheduleActivityTaskDecisionAttributes: "
+ getScheduleActivityTaskDecisionAttributes() + ",");
if (getRequestCancelActivityTaskDecisionAttributes() != null)
sb.append("RequestCancelActivityTaskDecisionAttributes: "
+ getRequestCancelActivityTaskDecisionAttributes() + ",");
if (getCompleteWorkflowExecutionDecisionAttributes() != null)
sb.append("CompleteWorkflowExecutionDecisionAttributes: "
+ getCompleteWorkflowExecutionDecisionAttributes() + ",");
if (getFailWorkflowExecutionDecisionAttributes() != null)
sb.append("FailWorkflowExecutionDecisionAttributes: "
+ getFailWorkflowExecutionDecisionAttributes() + ",");
if (getCancelWorkflowExecutionDecisionAttributes() != null)
sb.append("CancelWorkflowExecutionDecisionAttributes: "
+ getCancelWorkflowExecutionDecisionAttributes() + ",");
if (getContinueAsNewWorkflowExecutionDecisionAttributes() != null)
sb.append("ContinueAsNewWorkflowExecutionDecisionAttributes: "
+ getContinueAsNewWorkflowExecutionDecisionAttributes()
+ ",");
if (getRecordMarkerDecisionAttributes() != null)
sb.append("RecordMarkerDecisionAttributes: "
+ getRecordMarkerDecisionAttributes() + ",");
if (getStartTimerDecisionAttributes() != null)
sb.append("StartTimerDecisionAttributes: "
+ getStartTimerDecisionAttributes() + ",");
if (getCancelTimerDecisionAttributes() != null)
sb.append("CancelTimerDecisionAttributes: "
+ getCancelTimerDecisionAttributes() + ",");
if (getSignalExternalWorkflowExecutionDecisionAttributes() != null)
sb.append("SignalExternalWorkflowExecutionDecisionAttributes: "
+ getSignalExternalWorkflowExecutionDecisionAttributes()
+ ",");
if (getRequestCancelExternalWorkflowExecutionDecisionAttributes() != null)
sb.append("RequestCancelExternalWorkflowExecutionDecisionAttributes: "
+ getRequestCancelExternalWorkflowExecutionDecisionAttributes()
+ ",");
if (getStartChildWorkflowExecutionDecisionAttributes() != null)
sb.append("StartChildWorkflowExecutionDecisionAttributes: "
+ getStartChildWorkflowExecutionDecisionAttributes() + ",");
if (getScheduleLambdaFunctionDecisionAttributes() != null)
sb.append("ScheduleLambdaFunctionDecisionAttributes: "
+ getScheduleLambdaFunctionDecisionAttributes());
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof Decision == false)
return false;
Decision other = (Decision) obj;
if (other.getDecisionType() == null ^ this.getDecisionType() == null)
return false;
if (other.getDecisionType() != null
&& other.getDecisionType().equals(this.getDecisionType()) == false)
return false;
if (other.getScheduleActivityTaskDecisionAttributes() == null
^ this.getScheduleActivityTaskDecisionAttributes() == null)
return false;
if (other.getScheduleActivityTaskDecisionAttributes() != null
&& other.getScheduleActivityTaskDecisionAttributes().equals(
this.getScheduleActivityTaskDecisionAttributes()) == false)
return false;
if (other.getRequestCancelActivityTaskDecisionAttributes() == null
^ this.getRequestCancelActivityTaskDecisionAttributes() == null)
return false;
if (other.getRequestCancelActivityTaskDecisionAttributes() != null
&& other.getRequestCancelActivityTaskDecisionAttributes()
.equals(this
.getRequestCancelActivityTaskDecisionAttributes()) == false)
return false;
if (other.getCompleteWorkflowExecutionDecisionAttributes() == null
^ this.getCompleteWorkflowExecutionDecisionAttributes() == null)
return false;
if (other.getCompleteWorkflowExecutionDecisionAttributes() != null
&& other.getCompleteWorkflowExecutionDecisionAttributes()
.equals(this
.getCompleteWorkflowExecutionDecisionAttributes()) == false)
return false;
if (other.getFailWorkflowExecutionDecisionAttributes() == null
^ this.getFailWorkflowExecutionDecisionAttributes() == null)
return false;
if (other.getFailWorkflowExecutionDecisionAttributes() != null
&& other.getFailWorkflowExecutionDecisionAttributes().equals(
this.getFailWorkflowExecutionDecisionAttributes()) == false)
return false;
if (other.getCancelWorkflowExecutionDecisionAttributes() == null
^ this.getCancelWorkflowExecutionDecisionAttributes() == null)
return false;
if (other.getCancelWorkflowExecutionDecisionAttributes() != null
&& other.getCancelWorkflowExecutionDecisionAttributes().equals(
this.getCancelWorkflowExecutionDecisionAttributes()) == false)
return false;
if (other.getContinueAsNewWorkflowExecutionDecisionAttributes() == null
^ this.getContinueAsNewWorkflowExecutionDecisionAttributes() == null)
return false;
if (other.getContinueAsNewWorkflowExecutionDecisionAttributes() != null
&& other.getContinueAsNewWorkflowExecutionDecisionAttributes()
.equals(this
.getContinueAsNewWorkflowExecutionDecisionAttributes()) == false)
return false;
if (other.getRecordMarkerDecisionAttributes() == null
^ this.getRecordMarkerDecisionAttributes() == null)
return false;
if (other.getRecordMarkerDecisionAttributes() != null
&& other.getRecordMarkerDecisionAttributes().equals(
this.getRecordMarkerDecisionAttributes()) == false)
return false;
if (other.getStartTimerDecisionAttributes() == null
^ this.getStartTimerDecisionAttributes() == null)
return false;
if (other.getStartTimerDecisionAttributes() != null
&& other.getStartTimerDecisionAttributes().equals(
this.getStartTimerDecisionAttributes()) == false)
return false;
if (other.getCancelTimerDecisionAttributes() == null
^ this.getCancelTimerDecisionAttributes() == null)
return false;
if (other.getCancelTimerDecisionAttributes() != null
&& other.getCancelTimerDecisionAttributes().equals(
this.getCancelTimerDecisionAttributes()) == false)
return false;
if (other.getSignalExternalWorkflowExecutionDecisionAttributes() == null
^ this.getSignalExternalWorkflowExecutionDecisionAttributes() == null)
return false;
if (other.getSignalExternalWorkflowExecutionDecisionAttributes() != null
&& other.getSignalExternalWorkflowExecutionDecisionAttributes()
.equals(this
.getSignalExternalWorkflowExecutionDecisionAttributes()) == false)
return false;
if (other.getRequestCancelExternalWorkflowExecutionDecisionAttributes() == null
^ this.getRequestCancelExternalWorkflowExecutionDecisionAttributes() == null)
return false;
if (other.getRequestCancelExternalWorkflowExecutionDecisionAttributes() != null
&& other.getRequestCancelExternalWorkflowExecutionDecisionAttributes()
.equals(this
.getRequestCancelExternalWorkflowExecutionDecisionAttributes()) == false)
return false;
if (other.getStartChildWorkflowExecutionDecisionAttributes() == null
^ this.getStartChildWorkflowExecutionDecisionAttributes() == null)
return false;
if (other.getStartChildWorkflowExecutionDecisionAttributes() != null
&& other.getStartChildWorkflowExecutionDecisionAttributes()
.equals(this
.getStartChildWorkflowExecutionDecisionAttributes()) == false)
return false;
if (other.getScheduleLambdaFunctionDecisionAttributes() == null
^ this.getScheduleLambdaFunctionDecisionAttributes() == null)
return false;
if (other.getScheduleLambdaFunctionDecisionAttributes() != null
&& other.getScheduleLambdaFunctionDecisionAttributes().equals(
this.getScheduleLambdaFunctionDecisionAttributes()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime
* hashCode
+ ((getDecisionType() == null) ? 0 : getDecisionType()
.hashCode());
hashCode = prime
* hashCode
+ ((getScheduleActivityTaskDecisionAttributes() == null) ? 0
: getScheduleActivityTaskDecisionAttributes()
.hashCode());
hashCode = prime
* hashCode
+ ((getRequestCancelActivityTaskDecisionAttributes() == null) ? 0
: getRequestCancelActivityTaskDecisionAttributes()
.hashCode());
hashCode = prime
* hashCode
+ ((getCompleteWorkflowExecutionDecisionAttributes() == null) ? 0
: getCompleteWorkflowExecutionDecisionAttributes()
.hashCode());
hashCode = prime
* hashCode
+ ((getFailWorkflowExecutionDecisionAttributes() == null) ? 0
: getFailWorkflowExecutionDecisionAttributes()
.hashCode());
hashCode = prime
* hashCode
+ ((getCancelWorkflowExecutionDecisionAttributes() == null) ? 0
: getCancelWorkflowExecutionDecisionAttributes()
.hashCode());
hashCode = prime
* hashCode
+ ((getContinueAsNewWorkflowExecutionDecisionAttributes() == null) ? 0
: getContinueAsNewWorkflowExecutionDecisionAttributes()
.hashCode());
hashCode = prime
* hashCode
+ ((getRecordMarkerDecisionAttributes() == null) ? 0
: getRecordMarkerDecisionAttributes().hashCode());
hashCode = prime
* hashCode
+ ((getStartTimerDecisionAttributes() == null) ? 0
: getStartTimerDecisionAttributes().hashCode());
hashCode = prime
* hashCode
+ ((getCancelTimerDecisionAttributes() == null) ? 0
: getCancelTimerDecisionAttributes().hashCode());
hashCode = prime
* hashCode
+ ((getSignalExternalWorkflowExecutionDecisionAttributes() == null) ? 0
: getSignalExternalWorkflowExecutionDecisionAttributes()
.hashCode());
hashCode = prime
* hashCode
+ ((getRequestCancelExternalWorkflowExecutionDecisionAttributes() == null) ? 0
: getRequestCancelExternalWorkflowExecutionDecisionAttributes()
.hashCode());
hashCode = prime
* hashCode
+ ((getStartChildWorkflowExecutionDecisionAttributes() == null) ? 0
: getStartChildWorkflowExecutionDecisionAttributes()
.hashCode());
hashCode = prime
* hashCode
+ ((getScheduleLambdaFunctionDecisionAttributes() == null) ? 0
: getScheduleLambdaFunctionDecisionAttributes()
.hashCode());
return hashCode;
}
@Override
public Decision clone() {
try {
return (Decision) super.clone();
} catch (CloneNotSupportedException e) {
throw new IllegalStateException(
"Got a CloneNotSupportedException from Object.clone() "
+ "even though we're Cloneable!", e);
}
}
}