Class Choice
java.lang.Object
software.amazon.jsii.JsiiObject
software.constructs.Construct
software.amazon.awscdk.core.Construct
software.amazon.awscdk.services.stepfunctions.State
software.amazon.awscdk.services.stepfunctions.Choice
- All Implemented Interfaces:
IConstruct
,IDependable
,IChainable
,software.amazon.jsii.JsiiSerializable
,software.constructs.IConstruct
@Generated(value="jsii-pacmak/1.84.0 (build 5404dcf)",
date="2023-06-19T16:30:39.896Z")
@Stability(Stable)
public class Choice
extends State
Define a Choice in the state machine.
A choice state can be used to make decisions based on the execution state.
Example:
import software.amazon.awscdk.services.lambda.*; Function submitLambda; Function getStatusLambda; LambdaInvoke submitJob = LambdaInvoke.Builder.create(this, "Submit Job") .lambdaFunction(submitLambda) // Lambda's result is in the attribute `Payload` .outputPath("$.Payload") .build(); Wait waitX = Wait.Builder.create(this, "Wait X Seconds") .time(WaitTime.secondsPath("$.waitSeconds")) .build(); LambdaInvoke getStatus = LambdaInvoke.Builder.create(this, "Get Job Status") .lambdaFunction(getStatusLambda) // Pass just the field named "guid" into the Lambda, put the // Lambda's result in a field called "status" in the response .inputPath("$.guid") .outputPath("$.Payload") .build(); Fail jobFailed = Fail.Builder.create(this, "Job Failed") .cause("AWS Batch Job Failed") .error("DescribeJob returned FAILED") .build(); LambdaInvoke finalStatus = LambdaInvoke.Builder.create(this, "Get Final Job Status") .lambdaFunction(getStatusLambda) // Use "guid" field as input .inputPath("$.guid") .outputPath("$.Payload") .build(); Chain definition = submitJob.next(waitX).next(getStatus).next(new Choice(this, "Job Complete?").when(Condition.stringEquals("$.status", "FAILED"), jobFailed).when(Condition.stringEquals("$.status", "SUCCEEDED"), finalStatus).otherwise(waitX)); StateMachine.Builder.create(this, "StateMachine") .definition(definition) .timeout(Duration.minutes(5)) .build();
-
Nested Class Summary
Nested classes/interfaces inherited from class software.amazon.jsii.JsiiObject
software.amazon.jsii.JsiiObject.InitializationMode
Nested classes/interfaces inherited from interface software.amazon.awscdk.services.stepfunctions.IChainable
IChainable.Jsii$Default
Nested classes/interfaces inherited from interface software.amazon.awscdk.core.IConstruct
IConstruct.Jsii$Default
Nested classes/interfaces inherited from interface software.constructs.IConstruct
software.constructs.IConstruct.Jsii$Default
-
Constructor Summary
ModifierConstructorDescriptionprotected
Choice
(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) protected
Choice
(software.amazon.jsii.JsiiObjectRef objRef) Choice
(software.constructs.Construct scope, String id, ChoiceProps props) -
Method Summary
Modifier and TypeMethodDescriptionReturn a Chain that contains all reachable end states from this Choice.afterwards
(AfterwardsOptions options) Return a Chain that contains all reachable end states from this Choice.Continuable states of this Chainable.otherwise
(IChainable def) If none of the given conditions match, continue execution with the given state.com.fasterxml.jackson.databind.node.ObjectNode
Return the Amazon States Language object for this state.when
(Condition condition, IChainable next) If the given condition matches, continue execution with the given state.Methods inherited from class software.amazon.awscdk.services.stepfunctions.State
addBranch, addChoice, addIterator, addPrefix, bindToGraph, filterNextables, findReachableEndStates, findReachableEndStates, findReachableStates, findReachableStates, getBranches, getComment, getDefaultChoice, getId, getInputPath, getIteration, getOutputPath, getParameters, getResultPath, getResultSelector, getStartState, getStateId, makeDefault, makeNext, prefixStates, renderBranches, renderChoices, renderInputOutput, renderIterator, renderNextEnd, renderResultSelector, renderRetryCatch, setDefaultChoice, setIteration, whenBoundToGraph
Methods inherited from class software.amazon.awscdk.core.Construct
getNode, isConstruct, onPrepare, onSynthesize, onValidate, prepare, synthesize, validate
Methods inherited from class software.constructs.Construct
toString
Methods inherited from class software.amazon.jsii.JsiiObject
jsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSet
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface software.amazon.jsii.JsiiSerializable
$jsii$toJson
-
Constructor Details
-
Choice
protected Choice(software.amazon.jsii.JsiiObjectRef objRef) -
Choice
protected Choice(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) -
Choice
@Stability(Stable) public Choice(@NotNull software.constructs.Construct scope, @NotNull String id, @Nullable ChoiceProps props) - Parameters:
scope
- This parameter is required.id
- This parameter is required.props
-
-
Choice
- Parameters:
scope
- This parameter is required.id
- This parameter is required.
-
-
Method Details
-
afterwards
Return a Chain that contains all reachable end states from this Choice.Use this to combine all possible choice paths back.
- Parameters:
options
-
-
afterwards
Return a Chain that contains all reachable end states from this Choice.Use this to combine all possible choice paths back.
-
otherwise
If none of the given conditions match, continue execution with the given state.If no conditions match and no otherwise() has been given, an execution error will be raised.
- Parameters:
def
- This parameter is required.
-
toStateJson
@Stability(Stable) @NotNull public com.fasterxml.jackson.databind.node.ObjectNode toStateJson()Return the Amazon States Language object for this state.- Specified by:
toStateJson
in classState
-
when
@Stability(Stable) @NotNull public Choice when(@NotNull Condition condition, @NotNull IChainable next) If the given condition matches, continue execution with the given state.- Parameters:
condition
- This parameter is required.next
- This parameter is required.
-
getEndStates
Continuable states of this Chainable.- Specified by:
getEndStates
in interfaceIChainable
- Specified by:
getEndStates
in classState
-