@Generated(value="jsii-pacmak/1.74.0 (build 6d08790)", date="2023-03-22T19:35:43.456Z") public class Choice extends State
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();
Modifier and Type | Class and Description |
---|---|
static class |
Choice.Builder
A fluent builder for
Choice . |
IChainable.Jsii$Default
IConstruct.Jsii$Default
Modifier | Constructor and Description |
---|---|
protected |
Choice(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) |
protected |
Choice(software.amazon.jsii.JsiiObjectRef objRef) |
|
Choice(software.constructs.Construct scope,
java.lang.String id) |
|
Choice(software.constructs.Construct scope,
java.lang.String id,
ChoiceProps props) |
Modifier and Type | Method and Description |
---|---|
Chain |
afterwards()
Return a Chain that contains all reachable end states from this Choice.
|
Chain |
afterwards(AfterwardsOptions options)
Return a Chain that contains all reachable end states from this Choice.
|
java.util.List<INextable> |
getEndStates()
Continuable states of this Chainable.
|
Choice |
otherwise(IChainable def)
If none of the given conditions match, continue execution with the given state.
|
com.fasterxml.jackson.databind.node.ObjectNode |
toStateJson()
Return the Amazon States Language object for this state.
|
Choice |
when(Condition condition,
IChainable next)
If the given condition matches, continue execution with the given 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
getNode, isConstruct, onPrepare, onSynthesize, onValidate, prepare, synthesize, validate
protected Choice(software.amazon.jsii.JsiiObjectRef objRef)
protected Choice(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
public Choice(software.constructs.Construct scope, java.lang.String id, ChoiceProps props)
scope
- This parameter is required.id
- This parameter is required.props
- public Choice(software.constructs.Construct scope, java.lang.String id)
scope
- This parameter is required.id
- This parameter is required.public Chain afterwards(AfterwardsOptions options)
Use this to combine all possible choice paths back.
options
- public Chain afterwards()
Use this to combine all possible choice paths back.
public Choice otherwise(IChainable def)
If no conditions match and no otherwise() has been given, an execution error will be raised.
def
- This parameter is required.public com.fasterxml.jackson.databind.node.ObjectNode toStateJson()
toStateJson
in class State
public Choice when(Condition condition, IChainable next)
condition
- This parameter is required.next
- This parameter is required.public java.util.List<INextable> getEndStates()
getEndStates
in interface IChainable
getEndStates
in class State