Class Choice
java.lang.Object
software.amazon.jsii.JsiiObject
software.constructs.Construct
software.amazon.awscdk.services.stepfunctions.State
software.amazon.awscdk.services.stepfunctions.Choice
- All Implemented Interfaces:
IChainable,software.amazon.jsii.JsiiSerializable,software.constructs.IConstruct,software.constructs.IDependable
@Generated(value="jsii-pacmak/1.119.0 (build 1634eac)",
date="2025-12-01T16:02:30.463Z")
@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:
Map map = Map.Builder.create(this, "Map State")
.maxConcurrency(1)
.itemsPath(JsonPath.stringAt("$.inputForMap"))
.itemSelector(Map.of(
"item", JsonPath.stringAt("$.Map.Item.Value")))
.resultPath("$.mapOutput")
.build();
// The Map iterator can contain a IChainable, which can be an individual or multiple steps chained together.
// Below example is with a Choice and Pass step
Choice choice = new Choice(this, "Choice");
Condition condition1 = Condition.stringEquals("$.item.status", "SUCCESS");
Pass step1 = new Pass(this, "Step1");
Pass step2 = new Pass(this, "Step2");
Pass finish = new Pass(this, "Finish");
Chain definition = choice.when(condition1, step1).otherwise(step2).afterwards().next(finish);
map.itemProcessor(definition);
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class software.amazon.jsii.JsiiObject
software.amazon.jsii.JsiiObject.InitializationModeNested classes/interfaces inherited from interface software.amazon.awscdk.services.stepfunctions.IChainable
IChainable.Jsii$DefaultNested classes/interfaces inherited from interface software.constructs.IConstruct
software.constructs.IConstruct.Jsii$Default -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedChoice(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) protectedChoice(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.static ChoiceDefine a Choice using JSONata in the state machine.static Choicejsonata(software.constructs.Construct scope, String id, ChoiceJsonataProps props) Define a Choice using JSONata in the state machine.static ChoiceDefine a Choice using JSONPath in the state machine.static ChoicejsonPath(software.constructs.Construct scope, String id, ChoiceJsonPathProps props) Define a Choice using JSONPath in the state machine.otherwise(IChainable def) If none of the given conditions match, continue execution with the given state.com.fasterxml.jackson.databind.node.ObjectNodeReturn the Amazon States Language object for this state.com.fasterxml.jackson.databind.node.ObjectNodetoStateJson(QueryLanguage topLevelQueryLanguage) 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.when(Condition condition, IChainable next, ChoiceTransitionOptions options) If the given condition matches, continue execution with the given state.Methods inherited from class software.amazon.awscdk.services.stepfunctions.State
addBranch, addChoice, addChoice, addItemProcessor, addItemProcessor, addIterator, addPrefix, bindToGraph, filterNextables, findReachableEndStates, findReachableEndStates, findReachableStates, findReachableStates, getArguments, getAssign, getBranches, getComment, getDefaultChoice, getId, getInputPath, getIteration, getOutputPath, getOutputs, getParameters, getProcessor, getProcessorConfig, getProcessorMode, getQueryLanguage, getResultPath, getResultSelector, getStartState, getStateId, getStateName, makeDefault, makeNext, prefixStates, renderAssign, renderAssign, renderBranches, renderChoices, renderChoices, renderInputOutput, renderItemProcessor, renderIterator, renderNextEnd, renderQueryLanguage, renderQueryLanguage, renderResultSelector, renderRetryCatch, renderRetryCatch, setDefaultChoice, setIteration, setProcessor, setProcessorConfig, setProcessorMode, validateState, whenBoundToGraphMethods inherited from class software.constructs.Construct
getNode, isConstruct, toStringMethods inherited from class software.amazon.jsii.JsiiObject
jsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSetMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods 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- Descriptive identifier for this chainable. This parameter is required.props-
-
Choice
- Parameters:
scope- This parameter is required.id- Descriptive identifier for this chainable. This parameter is required.
-
-
Method Details
-
jsonata
@Stability(Stable) @NotNull public static Choice jsonata(@NotNull software.constructs.Construct scope, @NotNull String id, @Nullable ChoiceJsonataProps props) Define a Choice using JSONata in the state machine.A choice state can be used to make decisions based on the execution state.
- Parameters:
scope- This parameter is required.id- This parameter is required.props-
-
jsonata
@Stability(Stable) @NotNull public static Choice jsonata(@NotNull software.constructs.Construct scope, @NotNull String id) Define a Choice using JSONata in the state machine.A choice state can be used to make decisions based on the execution state.
- Parameters:
scope- This parameter is required.id- This parameter is required.
-
jsonPath
@Stability(Stable) @NotNull public static Choice jsonPath(@NotNull software.constructs.Construct scope, @NotNull String id, @Nullable ChoiceJsonPathProps props) Define a Choice using JSONPath in the state machine.A choice state can be used to make decisions based on the execution state.
- Parameters:
scope- This parameter is required.id- This parameter is required.props-
-
jsonPath
@Stability(Stable) @NotNull public static Choice jsonPath(@NotNull software.constructs.Construct scope, @NotNull String id) Define a Choice using JSONPath in the state machine.A choice state can be used to make decisions based on the execution state.
- Parameters:
scope- This parameter is required.id- This parameter is required.
-
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(@Nullable QueryLanguage topLevelQueryLanguage) Return the Amazon States Language object for this state.- Specified by:
toStateJsonin classState- Parameters:
topLevelQueryLanguage-
-
toStateJson
@Stability(Stable) @NotNull public com.fasterxml.jackson.databind.node.ObjectNode toStateJson()Return the Amazon States Language object for this state.- Specified by:
toStateJsonin classState
-
when
@Stability(Stable) @NotNull public Choice when(@NotNull Condition condition, @NotNull IChainable next, @Nullable ChoiceTransitionOptions options) If the given condition matches, continue execution with the given state.- Parameters:
condition- This parameter is required.next- This parameter is required.options-
-
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:
getEndStatesin interfaceIChainable- Specified by:
getEndStatesin classState
-