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.104.0 (build e79254c)", date="2024-12-11T23:26:41.879Z") @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);
 
  • 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

      @Stability(Stable) public Choice(@NotNull software.constructs.Construct scope, @NotNull String id)
      Parameters:
      scope - This parameter is required.
      id - Descriptive identifier for this chainable. This parameter is required.
  • Method Details

    • afterwards

      @Stability(Stable) @NotNull public Chain afterwards(@Nullable AfterwardsOptions options)
      Return a Chain that contains all reachable end states from this Choice.

      Use this to combine all possible choice paths back.

      Parameters:
      options -
    • afterwards

      @Stability(Stable) @NotNull public Chain afterwards()
      Return a Chain that contains all reachable end states from this Choice.

      Use this to combine all possible choice paths back.

    • otherwise

      @Stability(Stable) @NotNull public Choice otherwise(@NotNull IChainable def)
      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 class State
    • 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

      @Stability(Stable) @NotNull public List<INextable> getEndStates()
      Continuable states of this Chainable.
      Specified by:
      getEndStates in interface IChainable
      Specified by:
      getEndStates in class State