java.lang.Object
software.amazon.jsii.JsiiObject
software.constructs.Construct
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.906Z") @Stability(Stable) public class Fail extends State
Define a Fail state in the state machine.

Reaching a Fail state terminates the state execution in failure.

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();
 
  • Constructor Details

    • Fail

      protected Fail(software.amazon.jsii.JsiiObjectRef objRef)
    • Fail

      protected Fail(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
    • Fail

      @Stability(Stable) public Fail(@NotNull software.constructs.Construct scope, @NotNull String id, @Nullable FailProps props)
      Parameters:
      scope - This parameter is required.
      id - This parameter is required.
      props -
    • Fail

      @Stability(Stable) public Fail(@NotNull software.constructs.Construct scope, @NotNull String id)
      Parameters:
      scope - This parameter is required.
      id - This parameter is required.
  • Method Details

    • 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
    • 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