All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.simpleworkflow.model.Decision Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon SWF module holds the client classes that are used for communicating with Amazon Simple Workflow Service

There is a newer version: 1.9.13
Show newest version
/*
 * Copyright 2011-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: *

* */ 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); } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy