# IChainable

Interface for objects that can be used in a Chain.

Extends: IChainable
Implemented by: Chain, Choice, CustomState, DistributedMap, Fail, Map, MapBase, Parallel, Pass, State, StateMachineFragment, Succeed, TaskStateBase, Wait, AthenaGetQueryExecution, AthenaGetQueryResults, AthenaStartQueryExecution, AthenaStopQueryExecution, BatchSubmitJob, BedrockCreateModelCustomizationJob, BedrockInvokeModel, CallApiGatewayHttpApiEndpoint, CallApiGatewayRestApiEndpoint, CallAwsService, CallAwsServiceCrossRegion, CodeBuildStartBuild, CodeBuildStartBuildBatch, DynamoDeleteItem, DynamoGetItem, DynamoPutItem, DynamoUpdateItem, EcsRunTask, EksCall, EmrAddStep, EmrCancelStep, EmrContainersCreateVirtualCluster, EmrContainersDeleteVirtualCluster, EmrContainersStartJobRun, EmrCreateCluster, EmrModifyInstanceFleetByName, EmrModifyInstanceGroupByName, EmrSetClusterTerminationProtection, EmrTerminateCluster, EvaluateExpression, EventBridgePutEvents, EventBridgeSchedulerCreateScheduleTask, GlueDataBrewStartJobRun, GlueStartCrawlerRun, GlueStartJobRun, HttpInvoke, LambdaInvoke, MediaConvertCreateJob, SageMakerCreateEndpoint, SageMakerCreateEndpointConfig, SageMakerCreateModel, SageMakerCreateTrainingJob, SageMakerCreateTransformJob, SageMakerUpdateEndpoint, SnsPublish, SqsSendMessage, StepFunctionsInvokeActivity, StepFunctionsStartExecution

- Source: [`aws-stepfunctions/lib/types.ts`](https://github.com/aws/aws-cdk/blob/v2.274.0/packages/aws-cdk-lib/aws-stepfunctions/lib/types.ts#L20)

## Properties

- `endStates`: [INextable](/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions.INextable.html)[] (required) — The chainable end state(s) of this chainable.

- `id`: string (required) — Descriptive identifier for this chainable.

- `startState`: [State](/cdk/api/v2/docs/aws-cdk-lib.aws_stepfunctions.State.html) (required) — The start state of this chainable.
