Show / Hide Table of Contents

Namespace Amazon.CDK.AWS.StepFunctions.Tasks

Tasks for AWS Step Functions

--- End-of-Support
AWS CDK v1 has reached End-of-Support on 2023-06-01.
This package is no longer being updated, and users should migrate to AWS CDK v2.

For more information on how to migrate, see the Migrating to AWS CDK v2 guide.


AWS Step Functions is a web service that enables you to coordinate the components of distributed applications and microservices using visual workflows. You build applications from individual components that each perform a discrete function, or task, allowing you to scale and change applications quickly.

A Task state represents a single unit of work performed by a state machine. All work in your state machine is performed by tasks.

This module is part of the AWS Cloud Development Kit project.

Table Of Contents

    Task

    A Task state represents a single unit of work performed by a state machine. In the CDK, the exact work to be done is determined by a class that implements IStepFunctionsTask.

    AWS Step Functions integrates with some AWS services so that you can call API actions, and coordinate executions directly from the Amazon States Language in Step Functions. You can directly call and pass parameters to the APIs of those services.

    Paths

    In the Amazon States Language, a path is a string beginning with $ that you can use to identify components within JSON text.

    Learn more about input and output processing in Step Functions here

    InputPath

    Both InputPath and Parameters fields provide a way to manipulate JSON as it moves through your workflow. AWS Step Functions applies the InputPath field first, and then the Parameters field. You can first filter your raw input to a selection you want using InputPath, and then apply Parameters to manipulate that input further, or add new values. If you don't specify an InputPath, a default value of $ will be used.

    The following example provides the field named input as the input to the Task state that runs a Lambda function.

    Function fn;
    
    var submitJob = new LambdaInvoke(this, "Invoke Handler", new LambdaInvokeProps {
        LambdaFunction = fn,
        InputPath = "$.input"
    });

    OutputPath

    Tasks also allow you to select a portion of the state output to pass to the next state. This enables you to filter out unwanted information, and pass only the portion of the JSON that you care about. If you don't specify an OutputPath, a default value of $ will be used. This passes the entire JSON node to the next state.

    The response from a Lambda function includes the response from the function as well as other metadata.

    The following example assigns the output from the Task to a field named result

    Function fn;
    
    var submitJob = new LambdaInvoke(this, "Invoke Handler", new LambdaInvokeProps {
        LambdaFunction = fn,
        OutputPath = "$.Payload.result"
    });

    ResultSelector

    You can use ResultSelector to manipulate the raw result of a Task, Map or Parallel state before it is passed to ResultPath. For service integrations, the raw result contains metadata in addition to the response payload. You can use ResultSelector to construct a JSON payload that becomes the effective result using static values or references to the raw result or context object.

    The following example extracts the output payload of a Lambda function Task and combines it with some static values and the state name from the context object.

    Function fn;
    
    new LambdaInvoke(this, "Invoke Handler", new LambdaInvokeProps {
        LambdaFunction = fn,
        ResultSelector = new Dictionary<string, object> {
            { "lambdaOutput", JsonPath.StringAt("$.Payload") },
            { "invokeRequestId", JsonPath.StringAt("$.SdkResponseMetadata.RequestId") },
            { "staticValue", new Dictionary<string, string> {
                { "foo", "bar" }
            } },
            { "stateName", JsonPath.StringAt("$.State.Name") }
        }
    });

    ResultPath

    The output of a state can be a copy of its input, the result it produces (for example, output from a Task state’s Lambda function), or a combination of its input and result. Use ResultPath to control which combination of these is passed to the state output. If you don't specify an ResultPath, a default value of $ will be used.

    The following example adds the item from calling DynamoDB's getItem API to the state input and passes it to the next state.

    Table myTable;
    
    new DynamoPutItem(this, "PutItem", new DynamoPutItemProps {
        Item = new Dictionary<string, DynamoAttributeValue> {
            { "MessageId", DynamoAttributeValue.FromString("message-id") }
        },
        Table = myTable,
        ResultPath = "$.Item"
    });

    ⚠️ The OutputPath is computed after applying ResultPath. All service integrations return metadata as part of their response. When using ResultPath, it's not possible to merge a subset of the task output to the input.

    Task parameters from the state JSON

    Most tasks take parameters. Parameter values can either be static, supplied directly in the workflow definition (by specifying their values), or a value available at runtime in the state machine's execution (either as its input or an output of a prior state). Parameter values available at runtime can be specified via the JsonPath class, using methods such as JsonPath.stringAt().

    The following example provides the field named input as the input to the Lambda function and invokes it asynchronously.

    Function fn;
    
    
    var submitJob = new LambdaInvoke(this, "Invoke Handler", new LambdaInvokeProps {
        LambdaFunction = fn,
        Payload = TaskInput.FromJsonPathAt("$.input"),
        InvocationType = LambdaInvocationType.EVENT
    });

    You can also use intrinsic functions available on JsonPath, for example JsonPath.format(). Here is an example of starting an Athena query that is dynamically created using the task input:

    var startQueryExecutionJob = new AthenaStartQueryExecution(this, "Athena Start Query", new AthenaStartQueryExecutionProps {
        QueryString = JsonPath.Format("select contacts where year={};", JsonPath.StringAt("$.year")),
        QueryExecutionContext = new QueryExecutionContext {
            DatabaseName = "interactions"
        },
        ResultConfiguration = new ResultConfiguration {
            EncryptionConfiguration = new EncryptionConfiguration {
                EncryptionOption = EncryptionOption.S3_MANAGED
            },
            OutputLocation = new Location {
                BucketName = "mybucket",
                ObjectKey = "myprefix"
            }
        },
        IntegrationPattern = IntegrationPattern.RUN_JOB
    });

    Each service integration has its own set of parameters that can be supplied.

    Evaluate Expression

    Use the EvaluateExpression to perform simple operations referencing state paths. The expression referenced in the task will be evaluated in a Lambda function (eval()). This allows you to not have to write Lambda code for simple operations.

    Example: convert a wait time from milliseconds to seconds, concat this in a message and wait:

    var convertToSeconds = new EvaluateExpression(this, "Convert to seconds", new EvaluateExpressionProps {
        Expression = "$.waitMilliseconds / 1000",
        ResultPath = "$.waitSeconds"
    });
    
    var createMessage = new EvaluateExpression(this, "Create message", new EvaluateExpressionProps {
        // Note: this is a string inside a string.
        Expression = "`Now waiting ${$.waitSeconds} seconds...`",
        Runtime = Runtime.NODEJS_14_X,
        ResultPath = "$.message"
    });
    
    var publishMessage = new SnsPublish(this, "Publish message", new SnsPublishProps {
        Topic = new Topic(this, "cool-topic"),
        Message = TaskInput.FromJsonPathAt("$.message"),
        ResultPath = "$.sns"
    });
    
    var wait = new Wait(this, "Wait", new WaitProps {
        Time = WaitTime.SecondsPath("$.waitSeconds")
    });
    
    new StateMachine(this, "StateMachine", new StateMachineProps {
        Definition = convertToSeconds.Next(createMessage).Next(publishMessage).Next(wait)
    });

    The EvaluateExpression supports a runtime prop to specify the Lambda runtime to use to evaluate the expression. Currently, only runtimes of the Node.js family are supported.

    API Gateway

    Step Functions supports API Gateway through the service integration pattern.

    HTTP APIs are designed for low-latency, cost-effective integrations with AWS services, including AWS Lambda, and HTTP endpoints. HTTP APIs support OIDC and OAuth 2.0 authorization, and come with built-in support for CORS and automatic deployments. Previous-generation REST APIs currently offer more features. More details can be found here.

    Call REST API Endpoint

    The CallApiGatewayRestApiEndpoint calls the REST API endpoint.

    using Amazon.CDK.AWS.APIGateway;
    
    var restApi = new RestApi(this, "MyRestApi");
    
    var invokeTask = new CallApiGatewayRestApiEndpoint(this, "Call REST API", new CallApiGatewayRestApiEndpointProps {
        Api = restApi,
        StageName = "prod",
        Method = HttpMethod.GET
    });

    Be aware that the header values must be arrays. When passing the Task Token in the headers field WAIT_FOR_TASK_TOKEN integration, use JsonPath.array() to wrap the token in an array:

    using Amazon.CDK.AWS.APIGateway;
    RestApi api;
    
    
    new CallApiGatewayRestApiEndpoint(this, "Endpoint", new CallApiGatewayRestApiEndpointProps {
        Api = api,
        StageName = "Stage",
        Method = HttpMethod.PUT,
        IntegrationPattern = IntegrationPattern.WAIT_FOR_TASK_TOKEN,
        Headers = TaskInput.FromObject(new Dictionary<string, object> {
            { "TaskToken", JsonPath.Array(JsonPath.TaskToken) }
        })
    });

    Call HTTP API Endpoint

    The CallApiGatewayHttpApiEndpoint calls the HTTP API endpoint.

    using Amazon.CDK.AWS.APIGatewayv2;
    
    var httpApi = new HttpApi(this, "MyHttpApi");
    
    var invokeTask = new CallApiGatewayHttpApiEndpoint(this, "Call HTTP API", new CallApiGatewayHttpApiEndpointProps {
        ApiId = httpApi.ApiId,
        ApiStack = Stack.Of(httpApi),
        Method = HttpMethod.GET
    });

    AWS SDK

    Step Functions supports calling AWS service's API actions through the service integration pattern.

    You can use Step Functions' AWS SDK integrations to call any of the over two hundred AWS services directly from your state machine, giving you access to over nine thousand API actions.

    Bucket myBucket;
    
    var getObject = new CallAwsService(this, "GetObject", new CallAwsServiceProps {
        Service = "s3",
        Action = "getObject",
        Parameters = new Dictionary<string, object> {
            { "Bucket", myBucket.BucketName },
            { "Key", JsonPath.StringAt("$.key") }
        },
        IamResources = new [] { myBucket.ArnForObjects("*") }
    });

    Use camelCase for actions and PascalCase for parameter names.

    The task automatically adds an IAM statement to the state machine role's policy based on the service and action called. The resources for this statement must be specified in iamResources.

    Use the iamAction prop to manually specify the IAM action name in the case where the IAM action name does not match with the API service/action name:

    var listBuckets = new CallAwsService(this, "ListBuckets", new CallAwsServiceProps {
        Service = "s3",
        Action = "listBuckets",
        IamResources = new [] { "*" },
        IamAction = "s3:ListAllMyBuckets"
    });

    Athena

    Step Functions supports Athena through the service integration pattern.

    StartQueryExecution

    The StartQueryExecution API runs the SQL query statement.

    var startQueryExecutionJob = new AthenaStartQueryExecution(this, "Start Athena Query", new AthenaStartQueryExecutionProps {
        QueryString = JsonPath.StringAt("$.queryString"),
        QueryExecutionContext = new QueryExecutionContext {
            DatabaseName = "mydatabase"
        },
        ResultConfiguration = new ResultConfiguration {
            EncryptionConfiguration = new EncryptionConfiguration {
                EncryptionOption = EncryptionOption.S3_MANAGED
            },
            OutputLocation = new Location {
                BucketName = "query-results-bucket",
                ObjectKey = "folder"
            }
        }
    });

    GetQueryExecution

    The GetQueryExecution API gets information about a single execution of a query.

    var getQueryExecutionJob = new AthenaGetQueryExecution(this, "Get Query Execution", new AthenaGetQueryExecutionProps {
        QueryExecutionId = JsonPath.StringAt("$.QueryExecutionId")
    });

    GetQueryResults

    The GetQueryResults API that streams the results of a single query execution specified by QueryExecutionId from S3.

    var getQueryResultsJob = new AthenaGetQueryResults(this, "Get Query Results", new AthenaGetQueryResultsProps {
        QueryExecutionId = JsonPath.StringAt("$.QueryExecutionId")
    });

    StopQueryExecution

    The StopQueryExecution API that stops a query execution.

    var stopQueryExecutionJob = new AthenaStopQueryExecution(this, "Stop Query Execution", new AthenaStopQueryExecutionProps {
        QueryExecutionId = JsonPath.StringAt("$.QueryExecutionId")
    });

    Batch

    Step Functions supports Batch through the service integration pattern.

    SubmitJob

    The SubmitJob API submits an AWS Batch job from a job definition.

    using Amazon.CDK.AWS.Batch;
    JobDefinition batchJobDefinition;
    JobQueue batchQueue;
    
    
    var task = new BatchSubmitJob(this, "Submit Job", new BatchSubmitJobProps {
        JobDefinitionArn = batchJobDefinition.JobDefinitionArn,
        JobName = "MyJob",
        JobQueueArn = batchQueue.JobQueueArn
    });

    CodeBuild

    Step Functions supports CodeBuild through the service integration pattern.

    StartBuild

    StartBuild starts a CodeBuild Project by Project Name.

    using Amazon.CDK.AWS.CodeBuild;
    
    
    var codebuildProject = new Project(this, "Project", new ProjectProps {
        ProjectName = "MyTestProject",
        BuildSpec = BuildSpec.FromObject(new Dictionary<string, object> {
            { "version", "0.2" },
            { "phases", new Dictionary<string, IDictionary<string, string[]>> {
                { "build", new Struct {
                    Commands = new [] { "echo \"Hello, CodeBuild!\"" }
                } }
            } }
        })
    });
    
    var task = new CodeBuildStartBuild(this, "Task", new CodeBuildStartBuildProps {
        Project = codebuildProject,
        IntegrationPattern = IntegrationPattern.RUN_JOB,
        EnvironmentVariablesOverride = new Dictionary<string, BuildEnvironmentVariable> {
            { "ZONE", new BuildEnvironmentVariable {
                Type = BuildEnvironmentVariableType.PLAINTEXT,
                Value = JsonPath.StringAt("$.envVariables.zone")
            } }
        }
    });

    DynamoDB

    You can call DynamoDB APIs from a Task state. Read more about calling DynamoDB APIs here

    GetItem

    The GetItem operation returns a set of attributes for the item with the given primary key.

    Table myTable;
    
    new DynamoGetItem(this, "Get Item", new DynamoGetItemProps {
        Key = new Dictionary<string, DynamoAttributeValue> { { "messageId", DynamoAttributeValue.FromString("message-007") } },
        Table = myTable
    });

    PutItem

    The PutItem operation creates a new item, or replaces an old item with a new item.

    Table myTable;
    
    new DynamoPutItem(this, "PutItem", new DynamoPutItemProps {
        Item = new Dictionary<string, DynamoAttributeValue> {
            { "MessageId", DynamoAttributeValue.FromString("message-007") },
            { "Text", DynamoAttributeValue.FromString(JsonPath.StringAt("$.bar")) },
            { "TotalCount", DynamoAttributeValue.FromNumber(10) }
        },
        Table = myTable
    });

    DeleteItem

    The DeleteItem operation deletes a single item in a table by primary key.

    Table myTable;
    
    new DynamoDeleteItem(this, "DeleteItem", new DynamoDeleteItemProps {
        Key = new Dictionary<string, DynamoAttributeValue> { { "MessageId", DynamoAttributeValue.FromString("message-007") } },
        Table = myTable,
        ResultPath = JsonPath.DISCARD
    });

    UpdateItem

    The UpdateItem operation edits an existing item's attributes, or adds a new item to the table if it does not already exist.

    Table myTable;
    
    new DynamoUpdateItem(this, "UpdateItem", new DynamoUpdateItemProps {
        Key = new Dictionary<string, DynamoAttributeValue> {
            { "MessageId", DynamoAttributeValue.FromString("message-007") }
        },
        Table = myTable,
        ExpressionAttributeValues = new Dictionary<string, DynamoAttributeValue> {
            { ":val", DynamoAttributeValue.NumberFromString(JsonPath.StringAt("$.Item.TotalCount.N")) },
            { ":rand", DynamoAttributeValue.FromNumber(20) }
        },
        UpdateExpression = "SET TotalCount = :val + :rand"
    });

    ECS

    Step Functions supports ECS/Fargate through the service integration pattern.

    RunTask

    RunTask starts a new task using the specified task definition.

    EC2

    The EC2 launch type allows you to run your containerized applications on a cluster of Amazon EC2 instances that you manage.

    When a task that uses the EC2 launch type is launched, Amazon ECS must determine where to place the task based on the requirements specified in the task definition, such as CPU and memory. Similarly, when you scale down the task count, Amazon ECS must determine which tasks to terminate. You can apply task placement strategies and constraints to customize how Amazon ECS places and terminates tasks. Learn more about task placement

    The latest ACTIVE revision of the passed task definition is used for running the task.

    The following example runs a job from a task definition on EC2

    var vpc = Vpc.FromLookup(this, "Vpc", new VpcLookupOptions {
        IsDefault = true
    });
    
    var cluster = new Cluster(this, "Ec2Cluster", new ClusterProps { Vpc = vpc });
    cluster.AddCapacity("DefaultAutoScalingGroup", new AddCapacityOptions {
        InstanceType = new InstanceType("t2.micro"),
        VpcSubnets = new SubnetSelection { SubnetType = SubnetType.PUBLIC }
    });
    
    var taskDefinition = new TaskDefinition(this, "TD", new TaskDefinitionProps {
        Compatibility = Compatibility.EC2
    });
    
    taskDefinition.AddContainer("TheContainer", new ContainerDefinitionOptions {
        Image = ContainerImage.FromRegistry("foo/bar"),
        MemoryLimitMiB = 256
    });
    
    var runTask = new EcsRunTask(this, "Run", new EcsRunTaskProps {
        IntegrationPattern = IntegrationPattern.RUN_JOB,
        Cluster = cluster,
        TaskDefinition = taskDefinition,
        LaunchTarget = new EcsEc2LaunchTarget(new EcsEc2LaunchTargetOptions {
            PlacementStrategies = new [] { PlacementStrategy.SpreadAcrossInstances(), PlacementStrategy.PackedByCpu(), PlacementStrategy.Randomly() },
            PlacementConstraints = new [] { PlacementConstraint.MemberOf("blieptuut") }
        })
    });

    Fargate

    AWS Fargate is a serverless compute engine for containers that works with Amazon Elastic Container Service (ECS). Fargate makes it easy for you to focus on building your applications. Fargate removes the need to provision and manage servers, lets you specify and pay for resources per application, and improves security through application isolation by design. Learn more about Fargate

    The Fargate launch type allows you to run your containerized applications without the need to provision and manage the backend infrastructure. Just register your task definition and Fargate launches the container for you. The latest ACTIVE revision of the passed task definition is used for running the task. Learn more about Fargate Versioning

    The following example runs a job from a task definition on Fargate

    var vpc = Vpc.FromLookup(this, "Vpc", new VpcLookupOptions {
        IsDefault = true
    });
    
    var cluster = new Cluster(this, "FargateCluster", new ClusterProps { Vpc = vpc });
    
    var taskDefinition = new TaskDefinition(this, "TD", new TaskDefinitionProps {
        MemoryMiB = "512",
        Cpu = "256",
        Compatibility = Compatibility.FARGATE
    });
    
    var containerDefinition = taskDefinition.AddContainer("TheContainer", new ContainerDefinitionOptions {
        Image = ContainerImage.FromRegistry("foo/bar"),
        MemoryLimitMiB = 256
    });
    
    var runTask = new EcsRunTask(this, "RunFargate", new EcsRunTaskProps {
        IntegrationPattern = IntegrationPattern.RUN_JOB,
        Cluster = cluster,
        TaskDefinition = taskDefinition,
        AssignPublicIp = true,
        ContainerOverrides = new [] { new ContainerOverride {
            ContainerDefinition = containerDefinition,
            Environment = new [] { new TaskEnvironmentVariable { Name = "SOME_KEY", Value = JsonPath.StringAt("$.SomeKey") } }
        } },
        LaunchTarget = new EcsFargateLaunchTarget()
    });

    EMR

    Step Functions supports Amazon EMR through the service integration pattern. The service integration APIs correspond to Amazon EMR APIs but differ in the parameters that are used.

    Read more about the differences when using these service integrations.

    Create Cluster

    Creates and starts running a cluster (job flow). Corresponds to the runJobFlow API in EMR.

    var clusterRole = new Role(this, "ClusterRole", new RoleProps {
        AssumedBy = new ServicePrincipal("ec2.amazonaws.com")
    });
    
    var serviceRole = new Role(this, "ServiceRole", new RoleProps {
        AssumedBy = new ServicePrincipal("elasticmapreduce.amazonaws.com")
    });
    
    var autoScalingRole = new Role(this, "AutoScalingRole", new RoleProps {
        AssumedBy = new ServicePrincipal("elasticmapreduce.amazonaws.com")
    });
    
    autoScalingRole.AssumeRolePolicy.AddStatements(
    new PolicyStatement(new PolicyStatementProps {
        Effect = Effect.ALLOW,
        Principals = new [] {
            new ServicePrincipal("application-autoscaling.amazonaws.com") },
        Actions = new [] { "sts:AssumeRole" }
    }));
    
    new EmrCreateCluster(this, "Create Cluster", new EmrCreateClusterProps {
        Instances = new InstancesConfigProperty { },
        ClusterRole = clusterRole,
        Name = TaskInput.FromJsonPathAt("$.ClusterName").Value,
        ServiceRole = serviceRole,
        AutoScalingRole = autoScalingRole
    });

    If you want to run multiple steps in parallel, you can specify the stepConcurrencyLevel property. The concurrency range is between 1 and 256 inclusive, where the default concurrency of 1 means no step concurrency is allowed. stepConcurrencyLevel requires the EMR release label to be 5.28.0 or above.

    new EmrCreateCluster(this, "Create Cluster", new EmrCreateClusterProps {
        Instances = new InstancesConfigProperty { },
        Name = TaskInput.FromJsonPathAt("$.ClusterName").Value,
        StepConcurrencyLevel = 10
    });

    Termination Protection

    Locks a cluster (job flow) so the EC2 instances in the cluster cannot be terminated by user intervention, an API call, or a job-flow error.

    Corresponds to the setTerminationProtection API in EMR.

    new EmrSetClusterTerminationProtection(this, "Task", new EmrSetClusterTerminationProtectionProps {
        ClusterId = "ClusterId",
        TerminationProtected = false
    });

    Terminate Cluster

    Shuts down a cluster (job flow). Corresponds to the terminateJobFlows API in EMR.

    new EmrTerminateCluster(this, "Task", new EmrTerminateClusterProps {
        ClusterId = "ClusterId"
    });

    Add Step

    Adds a new step to a running cluster. Corresponds to the addJobFlowSteps API in EMR.

    new EmrAddStep(this, "Task", new EmrAddStepProps {
        ClusterId = "ClusterId",
        Name = "StepName",
        Jar = "Jar",
        ActionOnFailure = ActionOnFailure.CONTINUE
    });

    Cancel Step

    Cancels a pending step in a running cluster. Corresponds to the cancelSteps API in EMR.

    new EmrCancelStep(this, "Task", new EmrCancelStepProps {
        ClusterId = "ClusterId",
        StepId = "StepId"
    });

    Modify Instance Fleet

    Modifies the target On-Demand and target Spot capacities for the instance fleet with the specified InstanceFleetName.

    Corresponds to the modifyInstanceFleet API in EMR.

    new EmrModifyInstanceFleetByName(this, "Task", new EmrModifyInstanceFleetByNameProps {
        ClusterId = "ClusterId",
        InstanceFleetName = "InstanceFleetName",
        TargetOnDemandCapacity = 2,
        TargetSpotCapacity = 0
    });

    Modify Instance Group

    Modifies the number of nodes and configuration settings of an instance group.

    Corresponds to the modifyInstanceGroups API in EMR.

    new EmrModifyInstanceGroupByName(this, "Task", new EmrModifyInstanceGroupByNameProps {
        ClusterId = "ClusterId",
        InstanceGroupName = JsonPath.StringAt("$.InstanceGroupName"),
        InstanceGroup = new InstanceGroupModifyConfigProperty {
            InstanceCount = 1
        }
    });

    EMR on EKS

    Step Functions supports Amazon EMR on EKS through the service integration pattern. The service integration APIs correspond to Amazon EMR on EKS APIs, but differ in the parameters that are used.

    Read more about the differences when using these service integrations.

    Setting up the EKS cluster is required.

    Create Virtual Cluster

    The CreateVirtualCluster API creates a single virtual cluster that's mapped to a single Kubernetes namespace.

    The EKS cluster containing the Kubernetes namespace where the virtual cluster will be mapped can be passed in from the task input.

    new EmrContainersCreateVirtualCluster(this, "Create a Virtual Cluster", new EmrContainersCreateVirtualClusterProps {
        EksCluster = EksClusterInput.FromTaskInput(TaskInput.FromText("clusterId"))
    });

    The EKS cluster can also be passed in directly.

    using Amazon.CDK.AWS.EKS;
    
    Cluster eksCluster;
    
    
    new EmrContainersCreateVirtualCluster(this, "Create a Virtual Cluster", new EmrContainersCreateVirtualClusterProps {
        EksCluster = EksClusterInput.FromCluster(eksCluster)
    });

    By default, the Kubernetes namespace that a virtual cluster maps to is "default", but a specific namespace within an EKS cluster can be selected.

    new EmrContainersCreateVirtualCluster(this, "Create a Virtual Cluster", new EmrContainersCreateVirtualClusterProps {
        EksCluster = EksClusterInput.FromTaskInput(TaskInput.FromText("clusterId")),
        EksNamespace = "specified-namespace"
    });

    Delete Virtual Cluster

    The DeleteVirtualCluster API deletes a virtual cluster.

    new EmrContainersDeleteVirtualCluster(this, "Delete a Virtual Cluster", new EmrContainersDeleteVirtualClusterProps {
        VirtualClusterId = TaskInput.FromJsonPathAt("$.virtualCluster")
    });

    Start Job Run

    The StartJobRun API starts a job run. A job is a unit of work that you submit to Amazon EMR on EKS for execution. The work performed by the job can be defined by a Spark jar, PySpark script, or SparkSQL query. A job run is an execution of the job on the virtual cluster.

    Required setup:

      The following actions must be performed if the virtual cluster ID is supplied from the task input. Otherwise, if it is supplied statically in the state machine definition, these actions will be done automatically.

        The job can be configured with spark submit parameters:

        new EmrContainersStartJobRun(this, "EMR Containers Start Job Run", new EmrContainersStartJobRunProps {
            VirtualCluster = VirtualClusterInput.FromVirtualClusterId("de92jdei2910fwedz"),
            ReleaseLabel = ReleaseLabel.EMR_6_2_0,
            JobDriver = new JobDriver {
                SparkSubmitJobDriver = new SparkSubmitJobDriver {
                    EntryPoint = TaskInput.FromText("local:///usr/lib/spark/examples/src/main/python/pi.py"),
                    SparkSubmitParameters = "--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1"
                }
            }
        });

        Configuring the job can also be done via application configuration:

        new EmrContainersStartJobRun(this, "EMR Containers Start Job Run", new EmrContainersStartJobRunProps {
            VirtualCluster = VirtualClusterInput.FromVirtualClusterId("de92jdei2910fwedz"),
            ReleaseLabel = ReleaseLabel.EMR_6_2_0,
            JobName = "EMR-Containers-Job",
            JobDriver = new JobDriver {
                SparkSubmitJobDriver = new SparkSubmitJobDriver {
                    EntryPoint = TaskInput.FromText("local:///usr/lib/spark/examples/src/main/python/pi.py")
                }
            },
            ApplicationConfig = new [] { new ApplicationConfiguration {
                Classification = Classification.SPARK_DEFAULTS,
                Properties = new Dictionary<string, string> {
                    { "spark.executor.instances", "1" },
                    { "spark.executor.memory", "512M" }
                }
            } }
        });

        Job monitoring can be enabled if monitoring.logging is set true. This automatically generates an S3 bucket and CloudWatch logs.

        new EmrContainersStartJobRun(this, "EMR Containers Start Job Run", new EmrContainersStartJobRunProps {
            VirtualCluster = VirtualClusterInput.FromVirtualClusterId("de92jdei2910fwedz"),
            ReleaseLabel = ReleaseLabel.EMR_6_2_0,
            JobDriver = new JobDriver {
                SparkSubmitJobDriver = new SparkSubmitJobDriver {
                    EntryPoint = TaskInput.FromText("local:///usr/lib/spark/examples/src/main/python/pi.py"),
                    SparkSubmitParameters = "--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1"
                }
            },
            Monitoring = new Monitoring {
                Logging = true
            }
        });

        Otherwise, providing monitoring for jobs with existing log groups and log buckets is also available.

        using Amazon.CDK.AWS.Logs;
        
        
        var logGroup = new LogGroup(this, "Log Group");
        var logBucket = new Bucket(this, "S3 Bucket");
        
        new EmrContainersStartJobRun(this, "EMR Containers Start Job Run", new EmrContainersStartJobRunProps {
            VirtualCluster = VirtualClusterInput.FromVirtualClusterId("de92jdei2910fwedz"),
            ReleaseLabel = ReleaseLabel.EMR_6_2_0,
            JobDriver = new JobDriver {
                SparkSubmitJobDriver = new SparkSubmitJobDriver {
                    EntryPoint = TaskInput.FromText("local:///usr/lib/spark/examples/src/main/python/pi.py"),
                    SparkSubmitParameters = "--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1"
                }
            },
            Monitoring = new Monitoring {
                LogGroup = logGroup,
                LogBucket = logBucket
            }
        });

        Users can provide their own existing Job Execution Role.

        new EmrContainersStartJobRun(this, "EMR Containers Start Job Run", new EmrContainersStartJobRunProps {
            VirtualCluster = VirtualClusterInput.FromTaskInput(TaskInput.FromJsonPathAt("$.VirtualClusterId")),
            ReleaseLabel = ReleaseLabel.EMR_6_2_0,
            JobName = "EMR-Containers-Job",
            ExecutionRole = Role.FromRoleArn(this, "Job-Execution-Role", "arn:aws:iam::xxxxxxxxxxxx:role/JobExecutionRole"),
            JobDriver = new JobDriver {
                SparkSubmitJobDriver = new SparkSubmitJobDriver {
                    EntryPoint = TaskInput.FromText("local:///usr/lib/spark/examples/src/main/python/pi.py"),
                    SparkSubmitParameters = "--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1"
                }
            }
        });

        EKS

        Step Functions supports Amazon EKS through the service integration pattern. The service integration APIs correspond to Amazon EKS APIs.

        Read more about the differences when using these service integrations.

        Call

        Read and write Kubernetes resource objects via a Kubernetes API endpoint. Corresponds to the call API in Step Functions Connector.

        The following code snippet includes a Task state that uses eks:call to list the pods.

        using Amazon.CDK.AWS.EKS;
        
        
        var myEksCluster = new Cluster(this, "my sample cluster", new ClusterProps {
            Version = KubernetesVersion.V1_18,
            ClusterName = "myEksCluster"
        });
        
        new EksCall(this, "Call a EKS Endpoint", new EksCallProps {
            Cluster = myEksCluster,
            HttpMethod = HttpMethods.GET,
            HttpPath = "/api/v1/namespaces/default/pods"
        });

        EventBridge

        Step Functions supports Amazon EventBridge through the service integration pattern. The service integration APIs correspond to Amazon EventBridge APIs.

        Read more about the differences when using these service integrations.

        Put Events

        Send events to an EventBridge bus. Corresponds to the put-events API in Step Functions Connector.

        The following code snippet includes a Task state that uses events:putevents to send an event to the default bus.

        using Amazon.CDK.AWS.Events;
        
        
        var myEventBus = new EventBus(this, "EventBus", new EventBusProps {
            EventBusName = "MyEventBus1"
        });
        
        new EventBridgePutEvents(this, "Send an event to EventBridge", new EventBridgePutEventsProps {
            Entries = new [] { new EventBridgePutEventsEntry {
                Detail = TaskInput.FromObject(new Dictionary<string, object> {
                    { "Message", "Hello from Step Functions!" }
                }),
                EventBus = myEventBus,
                DetailType = "MessageFromStepFunctions",
                Source = "step.functions"
            } }
        });

        Glue

        Step Functions supports AWS Glue through the service integration pattern.

        You can call the StartJobRun API from a Task state.

        new GlueStartJobRun(this, "Task", new GlueStartJobRunProps {
            GlueJobName = "my-glue-job",
            Arguments = TaskInput.FromObject(new Dictionary<string, object> {
                { "key", "value" }
            }),
            Timeout = Duration.Minutes(30),
            NotifyDelayAfter = Duration.Minutes(5)
        });

        Glue DataBrew

        Step Functions supports AWS Glue DataBrew through the service integration pattern.

        You can call the StartJobRun API from a Task state.

        new GlueDataBrewStartJobRun(this, "Task", new GlueDataBrewStartJobRunProps {
            Name = "databrew-job"
        });

        Lambda

        Invoke a Lambda function.

        You can specify the input to your Lambda function through the payload attribute. By default, Step Functions invokes Lambda function with the state input (JSON path '$') as the input.

        The following snippet invokes a Lambda Function with the state input as the payload by referencing the $ path.

        Function fn;
        
        new LambdaInvoke(this, "Invoke with state input", new LambdaInvokeProps {
            LambdaFunction = fn
        });

        When a function is invoked, the Lambda service sends these response elements back.

        ⚠️ The response from the Lambda function is in an attribute called Payload

        The following snippet invokes a Lambda Function by referencing the $.Payload path to reference the output of a Lambda executed before it.

        Function fn;
        
        new LambdaInvoke(this, "Invoke with empty object as payload", new LambdaInvokeProps {
            LambdaFunction = fn,
            Payload = TaskInput.FromObject(new Dictionary<string, object> { })
        });
        
        // use the output of fn as input
        // use the output of fn as input
        new LambdaInvoke(this, "Invoke with payload field in the state input", new LambdaInvokeProps {
            LambdaFunction = fn,
            Payload = TaskInput.FromJsonPathAt("$.Payload")
        });

        The following snippet invokes a Lambda and sets the task output to only include the Lambda function response.

        Function fn;
        
        new LambdaInvoke(this, "Invoke and set function response as task output", new LambdaInvokeProps {
            LambdaFunction = fn,
            OutputPath = "$.Payload"
        });

        If you want to combine the input and the Lambda function response you can use the payloadResponseOnly property and specify the resultPath. This will put the Lambda function ARN directly in the "Resource" string, but it conflicts with the integrationPattern, invocationType, clientContext, and qualifier properties.

        Function fn;
        
        new LambdaInvoke(this, "Invoke and combine function response with task input", new LambdaInvokeProps {
            LambdaFunction = fn,
            PayloadResponseOnly = true,
            ResultPath = "$.fn"
        });

        You can have Step Functions pause a task, and wait for an external process to return a task token. Read more about the callback pattern

        To use the callback pattern, set the token property on the task. Call the Step Functions SendTaskSuccess or SendTaskFailure APIs with the token to indicate that the task has completed and the state machine should resume execution.

        The following snippet invokes a Lambda with the task token as part of the input to the Lambda.

        Function fn;
        
        new LambdaInvoke(this, "Invoke with callback", new LambdaInvokeProps {
            LambdaFunction = fn,
            IntegrationPattern = IntegrationPattern.WAIT_FOR_TASK_TOKEN,
            Payload = TaskInput.FromObject(new Dictionary<string, object> {
                { "token", JsonPath.TaskToken },
                { "input", JsonPath.StringAt("$.someField") }
            })
        });

        ⚠️ The task will pause until it receives that task token back with a SendTaskSuccess or SendTaskFailure call. Learn more about Callback with the Task Token.

        AWS Lambda can occasionally experience transient service errors. In this case, invoking Lambda results in a 500 error, such as ServiceException, AWSLambdaException, or SdkClientException. As a best practice, the LambdaInvoke task will retry on those errors with an interval of 2 seconds, a back-off rate of 2 and 6 maximum attempts. Set the retryOnServiceExceptions prop to false to disable this behavior.

        SageMaker

        Step Functions supports AWS SageMaker through the service integration pattern.

        If your training job or model uses resources from AWS Marketplace, network isolation is required. To do so, set the enableNetworkIsolation property to true for SageMakerCreateModel or SageMakerCreateTrainingJob.

        To set environment variables for the Docker container use the environment property.

        Create Training Job

        You can call the CreateTrainingJob API from a Task state.

        new SageMakerCreateTrainingJob(this, "TrainSagemaker", new SageMakerCreateTrainingJobProps {
            TrainingJobName = JsonPath.StringAt("$.JobName"),
            AlgorithmSpecification = new AlgorithmSpecification {
                AlgorithmName = "BlazingText",
                TrainingInputMode = InputMode.FILE
            },
            InputDataConfig = new [] { new Channel {
                ChannelName = "train",
                DataSource = new DataSource {
                    S3DataSource = new S3DataSource {
                        S3DataType = S3DataType.S3_PREFIX,
                        S3Location = S3Location.FromJsonExpression("$.S3Bucket")
                    }
                }
            } },
            OutputDataConfig = new OutputDataConfig {
                S3OutputLocation = S3Location.FromBucket(Bucket.FromBucketName(this, "Bucket", "mybucket"), "myoutputpath")
            },
            ResourceConfig = new ResourceConfig {
                InstanceCount = 1,
                InstanceType = new InstanceType(JsonPath.StringAt("$.InstanceType")),
                VolumeSize = Size.Gibibytes(50)
            },  // optional: default is 1 instance of EC2 `M4.XLarge` with `10GB` volume
            StoppingCondition = new StoppingCondition {
                MaxRuntime = Duration.Hours(2)
            }
        });

        Create Transform Job

        You can call the CreateTransformJob API from a Task state.

        new SageMakerCreateTransformJob(this, "Batch Inference", new SageMakerCreateTransformJobProps {
            TransformJobName = "MyTransformJob",
            ModelName = "MyModelName",
            ModelClientOptions = new ModelClientOptions {
                InvocationsMaxRetries = 3,  // default is 0
                InvocationsTimeout = Duration.Minutes(5)
            },
            TransformInput = new TransformInput {
                TransformDataSource = new TransformDataSource {
                    S3DataSource = new TransformS3DataSource {
                        S3Uri = "s3://inputbucket/train",
                        S3DataType = S3DataType.S3_PREFIX
                    }
                }
            },
            TransformOutput = new TransformOutput {
                S3OutputPath = "s3://outputbucket/TransformJobOutputPath"
            },
            TransformResources = new TransformResources {
                InstanceCount = 1,
                InstanceType = InstanceType.Of(InstanceClass.M4, InstanceSize.XLARGE)
            }
        });

        Create Endpoint

        You can call the CreateEndpoint API from a Task state.

        new SageMakerCreateEndpoint(this, "SagemakerEndpoint", new SageMakerCreateEndpointProps {
            EndpointName = JsonPath.StringAt("$.EndpointName"),
            EndpointConfigName = JsonPath.StringAt("$.EndpointConfigName")
        });

        Create Endpoint Config

        You can call the CreateEndpointConfig API from a Task state.

        new SageMakerCreateEndpointConfig(this, "SagemakerEndpointConfig", new SageMakerCreateEndpointConfigProps {
            EndpointConfigName = "MyEndpointConfig",
            ProductionVariants = new [] { new ProductionVariant {
                InitialInstanceCount = 2,
                InstanceType = InstanceType.Of(InstanceClass.M5, InstanceSize.XLARGE),
                ModelName = "MyModel",
                VariantName = "awesome-variant"
            } }
        });

        Create Model

        You can call the CreateModel API from a Task state.

        new SageMakerCreateModel(this, "Sagemaker", new SageMakerCreateModelProps {
            ModelName = "MyModel",
            PrimaryContainer = new ContainerDefinition(new ContainerDefinitionOptions {
                Image = DockerImage.FromJsonExpression(JsonPath.StringAt("$.Model.imageName")),
                Mode = Mode.SINGLE_MODEL,
                ModelS3Location = S3Location.FromJsonExpression("$.TrainingJob.ModelArtifacts.S3ModelArtifacts")
            })
        });

        Update Endpoint

        You can call the UpdateEndpoint API from a Task state.

        new SageMakerUpdateEndpoint(this, "SagemakerEndpoint", new SageMakerUpdateEndpointProps {
            EndpointName = JsonPath.StringAt("$.Endpoint.Name"),
            EndpointConfigName = JsonPath.StringAt("$.Endpoint.EndpointConfig")
        });

        SNS

        Step Functions supports Amazon SNS through the service integration pattern.

        You can call the Publish API from a Task state to publish to an SNS topic.

        var topic = new Topic(this, "Topic");
        
        // Use a field from the execution data as message.
        var task1 = new SnsPublish(this, "Publish1", new SnsPublishProps {
            Topic = topic,
            IntegrationPattern = IntegrationPattern.REQUEST_RESPONSE,
            Message = TaskInput.FromDataAt("$.state.message"),
            MessageAttributes = new Dictionary<string, MessageAttribute> {
                { "place", new MessageAttribute {
                    Value = JsonPath.StringAt("$.place")
                } },
                { "pic", new MessageAttribute {
                    // BINARY must be explicitly set
                    DataType = MessageAttributeDataType.BINARY,
                    Value = JsonPath.StringAt("$.pic")
                } },
                { "people", new MessageAttribute {
                    Value = 4
                } },
                { "handles", new MessageAttribute {
                    Value = new [] { "@kslater", "@jjf", null, "@mfanning" }
                } }
            }
        });
        
        // Combine a field from the execution data with
        // a literal object.
        var task2 = new SnsPublish(this, "Publish2", new SnsPublishProps {
            Topic = topic,
            Message = TaskInput.FromObject(new Dictionary<string, object> {
                { "field1", "somedata" },
                { "field2", JsonPath.StringAt("$.field2") }
            })
        });

        Step Functions

        Start Execution

        You can manage AWS Step Functions executions.

        AWS Step Functions supports it's own StartExecution API as a service integration.

        // Define a state machine with one Pass state
        var child = new StateMachine(this, "ChildStateMachine", new StateMachineProps {
            Definition = Chain.Start(new Pass(this, "PassState"))
        });
        
        // Include the state machine in a Task state with callback pattern
        var task = new StepFunctionsStartExecution(this, "ChildTask", new StepFunctionsStartExecutionProps {
            StateMachine = child,
            IntegrationPattern = IntegrationPattern.WAIT_FOR_TASK_TOKEN,
            Input = TaskInput.FromObject(new Dictionary<string, object> {
                { "token", JsonPath.TaskToken },
                { "foo", "bar" }
            }),
            Name = "MyExecutionName"
        });
        
        // Define a second state machine with the Task state above
        // Define a second state machine with the Task state above
        new StateMachine(this, "ParentStateMachine", new StateMachineProps {
            Definition = task
        });

        You can utilize Associate Workflow Executions via the associateWithParent property. This allows the Step Functions UI to link child executions from parent executions, making it easier to trace execution flow across state machines.

        StateMachine child;
        
        var task = new StepFunctionsStartExecution(this, "ChildTask", new StepFunctionsStartExecutionProps {
            StateMachine = child,
            AssociateWithParent = true
        });

        This will add the payload AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$: $$.Execution.Id to the inputproperty for you, which will pass the execution ID from the context object to the execution input. It requires input to be an object or not be set at all.

        Invoke Activity

        You can invoke a Step Functions Activity which enables you to have a task in your state machine where the work is performed by a worker that can be hosted on Amazon EC2, Amazon ECS, AWS Lambda, basically anywhere. Activities are a way to associate code running somewhere (known as an activity worker) with a specific task in a state machine.

        When Step Functions reaches an activity task state, the workflow waits for an activity worker to poll for a task. An activity worker polls Step Functions by using GetActivityTask, and sending the ARN for the related activity.

        After the activity worker completes its work, it can provide a report of its success or failure by using SendTaskSuccess or SendTaskFailure. These two calls use the taskToken provided by GetActivityTask to associate the result with that task.

        The following example creates an activity and creates a task that invokes the activity.

        var submitJobActivity = new Activity(this, "SubmitJob");
        
        new StepFunctionsInvokeActivity(this, "Submit Job", new StepFunctionsInvokeActivityProps {
            Activity = submitJobActivity
        });

        SQS

        Step Functions supports Amazon SQS

        You can call the SendMessage API from a Task state to send a message to an SQS queue.

        var queue = new Queue(this, "Queue");
        
        // Use a field from the execution data as message.
        var task1 = new SqsSendMessage(this, "Send1", new SqsSendMessageProps {
            Queue = queue,
            MessageBody = TaskInput.FromJsonPathAt("$.message")
        });
        
        // Combine a field from the execution data with
        // a literal object.
        var task2 = new SqsSendMessage(this, "Send2", new SqsSendMessageProps {
            Queue = queue,
            MessageBody = TaskInput.FromObject(new Dictionary<string, object> {
                { "field1", "somedata" },
                { "field2", JsonPath.StringAt("$.field2") }
            })
        });

        Classes

        AcceleratorClass

        The generation of Elastic Inference (EI) instance.

        AcceleratorType

        The size of the Elastic Inference (EI) instance to use for the production variant.

        ActionOnFailure

        The action to take when the cluster step fails.

        AlgorithmSpecification

        Specify the training algorithm and algorithm-specific metadata.

        ApplicationConfiguration

        A configuration specification to be used when provisioning virtual clusters, which can include configurations for applications and software bundled with Amazon EMR on EKS.

        AssembleWith

        How to assemble the results of the transform job as a single S3 object.

        AthenaGetQueryExecution

        Get an Athena Query Execution as a Task.

        AthenaGetQueryExecutionProps

        Properties for getting a Query Execution.

        AthenaGetQueryResults

        Get an Athena Query Results as a Task.

        AthenaGetQueryResultsProps

        Properties for getting a Query Results.

        AthenaStartQueryExecution

        Start an Athena Query as a Task.

        AthenaStartQueryExecutionProps

        Properties for starting a Query Execution.

        AthenaStopQueryExecution

        Stop an Athena Query Execution as a Task.

        AthenaStopQueryExecutionProps

        Properties for stoping a Query Execution.

        AuthType

        The authentication method used to call the endpoint.

        BatchContainerOverrides

        The overrides that should be sent to a container.

        BatchJobDependency

        An object representing an AWS Batch job dependency.

        BatchStrategy

        Specifies the number of records to include in a mini-batch for an HTTP inference request.

        BatchSubmitJob

        Task to submits an AWS Batch job from a job definition.

        BatchSubmitJobProps

        Properties for RunBatchJob.

        CallApiGatewayEndpointBaseProps

        Base CallApiGatewayEdnpoint Task Props.

        CallApiGatewayHttpApiEndpoint

        Call HTTP API endpoint as a Task.

        CallApiGatewayHttpApiEndpointProps

        Properties for calling an HTTP API Endpoint.

        CallApiGatewayRestApiEndpoint

        Call REST API endpoint as a Task.

        CallApiGatewayRestApiEndpointProps

        Properties for calling an REST API Endpoint.

        CallAwsService

        A StepFunctions task to call an AWS service API.

        CallAwsServiceProps

        Properties for calling an AWS service's API action from your state machine.

        Channel

        Describes the training, validation or test dataset and the Amazon S3 location where it is stored.

        Classification

        The classification within a EMR Containers application configuration.

        CodeBuildStartBuild

        Start a CodeBuild Build as a task.

        CodeBuildStartBuildProps

        Properties for CodeBuildStartBuild.

        CommonEcsRunTaskProps

        Basic properties for ECS Tasks.

        CompressionType

        Compression type of the data.

        ContainerDefinition

        Describes the container, as part of model definition.

        ContainerDefinitionConfig

        Configuration options for the ContainerDefinition.

        ContainerDefinitionOptions

        Properties to define a ContainerDefinition.

        ContainerOverride

        A list of container overrides that specify the name of a container and the overrides it should receive.

        ContainerOverrides

        The overrides that should be sent to a container.

        DataSource

        Location of the channel data.

        DockerImage

        Creates IDockerImage instances.

        DockerImageConfig

        Configuration for a using Docker image.

        DynamoAttributeValue

        Represents the data for an attribute.

        DynamoConsumedCapacity

        Determines the level of detail about provisioned throughput consumption that is returned.

        DynamoDeleteItem

        A StepFunctions task to call DynamoDeleteItem.

        DynamoDeleteItemProps

        Properties for DynamoDeleteItem Task.

        DynamoGetItem

        A StepFunctions task to call DynamoGetItem.

        DynamoGetItemProps

        Properties for DynamoGetItem Task.

        DynamoItemCollectionMetrics

        Determines whether item collection metrics are returned.

        DynamoProjectionExpression

        Class to generate projection expression.

        DynamoPutItem

        A StepFunctions task to call DynamoPutItem.

        DynamoPutItemProps

        Properties for DynamoPutItem Task.

        DynamoReturnValues

        Use ReturnValues if you want to get the item attributes as they appear before or after they are changed.

        DynamoUpdateItem

        A StepFunctions task to call DynamoUpdateItem.

        DynamoUpdateItemProps

        Properties for DynamoUpdateItem Task.

        EcsEc2LaunchTarget

        Configuration for running an ECS task on EC2.

        EcsEc2LaunchTargetOptions

        Options to run an ECS task on EC2 in StepFunctions and ECS.

        EcsFargateLaunchTarget

        Configuration for running an ECS task on Fargate.

        EcsFargateLaunchTargetOptions

        Properties to define an ECS service.

        EcsLaunchTargetConfig

        Configuration options for the ECS launch type.

        EcsRunTask

        Run a Task on ECS or Fargate.

        EcsRunTaskBase

        (deprecated) A StepFunctions Task to run a Task on ECS or Fargate.

        EcsRunTaskBaseProps

        (deprecated) Construction properties for the BaseRunTaskProps.

        EcsRunTaskProps

        Properties for ECS Tasks.

        EksCall

        Call a EKS endpoint as a Task.

        EksCallProps

        Properties for calling a EKS endpoint with EksCall.

        EksClusterInput

        Class that supports methods which return the EKS cluster name depending on input type.

        EmrAddStep

        A Step Functions Task to add a Step to an EMR Cluster.

        EmrAddStepProps

        Properties for EmrAddStep.

        EmrCancelStep

        A Step Functions Task to to cancel a Step on an EMR Cluster.

        EmrCancelStepProps

        Properties for EmrCancelStep.

        EmrContainersCreateVirtualCluster

        Task that creates an EMR Containers virtual cluster from an EKS cluster.

        EmrContainersCreateVirtualClusterProps

        Properties to define a EMR Containers CreateVirtualCluster Task on an EKS cluster.

        EmrContainersDeleteVirtualCluster

        Deletes an EMR Containers virtual cluster as a Task.

        EmrContainersDeleteVirtualClusterProps

        Properties to define a EMR Containers DeleteVirtualCluster Task.

        EmrContainersStartJobRun

        Starts a job run.

        EmrContainersStartJobRunProps

        The props for a EMR Containers StartJobRun Task.

        EmrCreateCluster

        A Step Functions Task to create an EMR Cluster.

        EmrCreateCluster.ApplicationConfigProperty

        Properties for the EMR Cluster Applications.

        EmrCreateCluster.AutoScalingPolicyProperty

        An automatic scaling policy for a core instance group or task instance group in an Amazon EMR cluster.

        EmrCreateCluster.BootstrapActionConfigProperty

        Configuration of a bootstrap action.

        EmrCreateCluster.CloudWatchAlarmComparisonOperator

        CloudWatch Alarm Comparison Operators.

        EmrCreateCluster.CloudWatchAlarmDefinitionProperty

        The definition of a CloudWatch metric alarm, which determines when an automatic scaling activity is triggered.

        EmrCreateCluster.CloudWatchAlarmStatistic

        CloudWatch Alarm Statistics.

        EmrCreateCluster.CloudWatchAlarmUnit

        CloudWatch Alarm Units.

        EmrCreateCluster.ConfigurationProperty

        An optional configuration specification to be used when provisioning cluster instances, which can include configurations for applications and software bundled with Amazon EMR.

        EmrCreateCluster.EbsBlockDeviceConfigProperty

        Configuration of requested EBS block device associated with the instance group with count of volumes that will be associated to every instance.

        EmrCreateCluster.EbsBlockDeviceVolumeType

        EBS Volume Types.

        EmrCreateCluster.EbsConfigurationProperty

        The Amazon EBS configuration of a cluster instance.

        EmrCreateCluster.EmrClusterScaleDownBehavior

        The Cluster ScaleDownBehavior specifies the way that individual Amazon EC2 instances terminate when an automatic scale-in activity occurs or an instance group is resized.

        EmrCreateCluster.InstanceFleetConfigProperty

        The configuration that defines an instance fleet.

        EmrCreateCluster.InstanceFleetProvisioningSpecificationsProperty

        The launch specification for Spot instances in the fleet, which determines the defined duration and provisioning timeout behavior.

        EmrCreateCluster.InstanceGroupConfigProperty

        Configuration defining a new instance group.

        EmrCreateCluster.InstanceMarket

        EC2 Instance Market.

        EmrCreateCluster.InstanceRoleType

        Instance Role Types.

        EmrCreateCluster.InstancesConfigProperty

        A specification of the number and type of Amazon EC2 instances.

        EmrCreateCluster.InstanceTypeConfigProperty

        An instance type configuration for each instance type in an instance fleet, which determines the EC2 instances Amazon EMR attempts to provision to fulfill On-Demand and Spot target capacities.

        EmrCreateCluster.KerberosAttributesProperty

        Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration.

        EmrCreateCluster.MetricDimensionProperty

        A CloudWatch dimension, which is specified using a Key (known as a Name in CloudWatch), Value pair.

        EmrCreateCluster.PlacementTypeProperty

        The Amazon EC2 Availability Zone configuration of the cluster (job flow).

        EmrCreateCluster.ScalingActionProperty

        The type of adjustment the automatic scaling activity makes when triggered, and the periodicity of the adjustment.

        EmrCreateCluster.ScalingAdjustmentType

        AutoScaling Adjustment Type.

        EmrCreateCluster.ScalingConstraintsProperty

        The upper and lower EC2 instance limits for an automatic scaling policy.

        EmrCreateCluster.ScalingRuleProperty

        A scale-in or scale-out rule that defines scaling activity, including the CloudWatch metric alarm that triggers activity, how EC2 instances are added or removed, and the periodicity of adjustments.

        EmrCreateCluster.ScalingTriggerProperty

        The conditions that trigger an automatic scaling activity and the definition of a CloudWatch metric alarm.

        EmrCreateCluster.ScriptBootstrapActionConfigProperty

        Configuration of the script to run during a bootstrap action.

        EmrCreateCluster.SimpleScalingPolicyConfigurationProperty

        An automatic scaling configuration, which describes how the policy adds or removes instances, the cooldown period, and the number of EC2 instances that will be added each time the CloudWatch metric alarm condition is satisfied.

        EmrCreateCluster.SpotAllocationStrategy

        Spot Allocation Strategies.

        EmrCreateCluster.SpotProvisioningSpecificationProperty

        The launch specification for Spot instances in the instance fleet, which determines the defined duration and provisioning timeout behavior.

        EmrCreateCluster.SpotTimeoutAction

        Spot Timeout Actions.

        EmrCreateCluster.VolumeSpecificationProperty

        EBS volume specifications such as volume type, IOPS, and size (GiB) that will be requested for the EBS volume attached to an EC2 instance in the cluster.

        EmrCreateClusterProps

        Properties for EmrCreateCluster.

        EmrModifyInstanceFleetByName

        A Step Functions Task to to modify an InstanceFleet on an EMR Cluster.

        EmrModifyInstanceFleetByNameProps

        Properties for EmrModifyInstanceFleetByName.

        EmrModifyInstanceGroupByName

        A Step Functions Task to to modify an InstanceGroup on an EMR Cluster.

        EmrModifyInstanceGroupByName.InstanceGroupModifyConfigProperty

        Modify the size or configurations of an instance group.

        EmrModifyInstanceGroupByName.InstanceResizePolicyProperty

        Custom policy for requesting termination protection or termination of specific instances when shrinking an instance group.

        EmrModifyInstanceGroupByName.ShrinkPolicyProperty

        Policy for customizing shrink operations.

        EmrModifyInstanceGroupByNameProps

        Properties for EmrModifyInstanceGroupByName.

        EmrSetClusterTerminationProtection

        A Step Functions Task to to set Termination Protection on an EMR Cluster.

        EmrSetClusterTerminationProtectionProps

        Properties for EmrSetClusterTerminationProtection.

        EmrTerminateCluster

        A Step Functions Task to terminate an EMR Cluster.

        EmrTerminateClusterProps

        Properties for EmrTerminateCluster.

        EncryptionConfiguration

        Encryption Configuration of the S3 bucket.

        EncryptionOption

        Encryption Options of the S3 bucket.

        EvaluateExpression

        A Step Functions Task to evaluate an expression.

        EvaluateExpressionProps

        Properties for EvaluateExpression.

        EventBridgePutEvents

        A StepFunctions Task to send events to an EventBridge event bus.

        EventBridgePutEventsEntry

        An entry to be sent to EventBridge.

        EventBridgePutEventsProps

        Properties for sending events with PutEvents.

        GlueDataBrewStartJobRun

        Start a Job run as a Task.

        GlueDataBrewStartJobRunProps

        Properties for starting a job run with StartJobRun.

        GlueStartJobRun

        Starts an AWS Glue job in a Task state.

        GlueStartJobRunProps

        Properties for starting an AWS Glue job as a task.

        HttpMethod

        Http Methods that API Gateway supports.

        HttpMethods

        Method type of a EKS call.

        InputMode

        Input mode that the algorithm supports.

        InvocationType

        (deprecated) Invocation type of a Lambda.

        InvokeActivity

        (deprecated) A Step Functions Task to invoke an Activity worker.

        InvokeActivityProps

        (deprecated) Properties for FunctionTask.

        InvokeFunction

        (deprecated) A Step Functions Task to invoke a Lambda function.

        InvokeFunctionProps

        (deprecated) Properties for InvokeFunction.

        JobDependency

        An object representing an AWS Batch job dependency.

        JobDriver

        Specify the driver that the EMR Containers job runs on.

        LambdaInvocationType

        Invocation type of a Lambda.

        LambdaInvoke

        Invoke a Lambda function as a Task.

        LambdaInvokeProps

        Properties for invoking a Lambda function with LambdaInvoke.

        LaunchTargetBindOptions

        Options for binding a launch target to an ECS run job task.

        MessageAttribute

        A message attribute to add to the SNS message.

        MessageAttributeDataType

        The data type set for the SNS message attributes.

        MetricDefinition

        Specifies the metric name and regular expressions used to parse algorithm logs.

        Mode

        Specifies how many models the container hosts.

        ModelClientOptions

        Configures the timeout and maximum number of retries for processing a transform job invocation.

        Monitoring

        Configuration setting for monitoring.

        OutputDataConfig

        Configures the S3 bucket where SageMaker will save the result of model training.

        ProductionVariant

        Identifies a model that you want to host and the resources to deploy for hosting it.

        PublishToTopic

        (deprecated) A Step Functions Task to publish messages to SNS topic.

        PublishToTopicProps

        (deprecated) Properties for PublishTask.

        QueryExecutionContext

        Database and data catalog context in which the query execution occurs.

        RecordWrapperType

        Define the format of the input data.

        ReleaseLabel

        The Amazon EMR release version to use for the job run.

        ResourceConfig

        Specifies the resources, ML compute instances, and ML storage volumes to deploy for model training.

        ResultConfiguration

        Location of query result along with S3 bucket configuration.

        RunBatchJob

        (deprecated) A Step Functions Task to run AWS Batch.

        RunBatchJobProps

        (deprecated) Properties for RunBatchJob.

        RunEcsEc2Task

        (deprecated) Run an ECS/EC2 Task in a StepFunctions workflow.

        RunEcsEc2TaskProps

        (deprecated) Properties to run an ECS task on EC2 in StepFunctionsan ECS.

        RunEcsFargateTask

        (deprecated) Start a service on an ECS cluster.

        RunEcsFargateTaskProps

        (deprecated) Properties to define an ECS service.

        RunGlueJobTask

        (deprecated) Invoke a Glue job as a Task.

        RunGlueJobTaskProps

        (deprecated) Properties for RunGlueJobTask.

        RunLambdaTask

        (deprecated) Invoke a Lambda function as a Task.

        RunLambdaTaskProps

        (deprecated) Properties for RunLambdaTask.

        S3DataDistributionType

        S3 Data Distribution Type.

        S3DataSource

        S3 location of the channel data.

        S3DataType

        S3 Data Type.

        S3Location

        Constructs IS3Location objects.

        S3LocationBindOptions

        Options for binding an S3 Location.

        S3LocationConfig

        Stores information about the location of an object in Amazon S3.

        SageMakerCreateEndpoint

        A Step Functions Task to create a SageMaker endpoint.

        SageMakerCreateEndpointConfig

        A Step Functions Task to create a SageMaker endpoint configuration.

        SageMakerCreateEndpointConfigProps

        Properties for creating an Amazon SageMaker endpoint configuration.

        SageMakerCreateEndpointProps

        Properties for creating an Amazon SageMaker endpoint.

        SageMakerCreateModel

        A Step Functions Task to create a SageMaker model.

        SageMakerCreateModelProps

        Properties for creating an Amazon SageMaker model.

        SageMakerCreateTrainingJob

        Class representing the SageMaker Create Training Job task.

        SageMakerCreateTrainingJobProps

        Properties for creating an Amazon SageMaker training job.

        SageMakerCreateTransformJob

        Class representing the SageMaker Create Transform Job task.

        SageMakerCreateTransformJobProps

        Properties for creating an Amazon SageMaker transform job task.

        SageMakerUpdateEndpoint

        A Step Functions Task to update a SageMaker endpoint.

        SageMakerUpdateEndpointProps

        Properties for updating Amazon SageMaker endpoint.

        SendToQueue

        (deprecated) A StepFunctions Task to send messages to SQS queue.

        SendToQueueProps

        (deprecated) Properties for SendMessageTask.

        ShuffleConfig

        Configuration for a shuffle option for input data in a channel.

        SnsPublish

        A Step Functions Task to publish messages to SNS topic.

        SnsPublishProps

        Properties for publishing a message to an SNS topic.

        SparkSubmitJobDriver

        The information about job driver for Spark submit.

        SplitType

        Method to use to split the transform job's data files into smaller batches.

        SqsSendMessage

        A StepFunctions Task to send messages to SQS queue.

        SqsSendMessageProps

        Properties for sending a message to an SQS queue.

        StartExecution

        (deprecated) A Step Functions Task to call StartExecution on another state machine.

        StartExecutionProps

        (deprecated) Properties for StartExecution.

        StepFunctionsInvokeActivity

        A Step Functions Task to invoke an Activity worker.

        StepFunctionsInvokeActivityProps

        Properties for invoking an Activity worker.

        StepFunctionsStartExecution

        A Step Functions Task to call StartExecution on another state machine.

        StepFunctionsStartExecutionProps

        Properties for StartExecution.

        StoppingCondition

        Specifies a limit to how long a model training job can run.

        TaskEnvironmentVariable

        An environment variable to be set in the container run as a task.

        TransformDataSource

        S3 location of the input data that the model can consume.

        TransformInput

        Dataset to be transformed and the Amazon S3 location where it is stored.

        TransformOutput

        S3 location where you want Amazon SageMaker to save the results from the transform job.

        TransformResources

        ML compute instances for the transform job.

        TransformS3DataSource

        Location of the channel data.

        VirtualClusterInput

        Class that returns a virtual cluster's id depending on input type.

        VpcConfig

        Specifies the VPC that you want your Amazon SageMaker training job to connect to.

        Interfaces

        EmrCreateCluster.IApplicationConfigProperty

        Properties for the EMR Cluster Applications.

        EmrCreateCluster.IAutoScalingPolicyProperty

        An automatic scaling policy for a core instance group or task instance group in an Amazon EMR cluster.

        EmrCreateCluster.IBootstrapActionConfigProperty

        Configuration of a bootstrap action.

        EmrCreateCluster.ICloudWatchAlarmDefinitionProperty

        The definition of a CloudWatch metric alarm, which determines when an automatic scaling activity is triggered.

        EmrCreateCluster.IConfigurationProperty

        An optional configuration specification to be used when provisioning cluster instances, which can include configurations for applications and software bundled with Amazon EMR.

        EmrCreateCluster.IEbsBlockDeviceConfigProperty

        Configuration of requested EBS block device associated with the instance group with count of volumes that will be associated to every instance.

        EmrCreateCluster.IEbsConfigurationProperty

        The Amazon EBS configuration of a cluster instance.

        EmrCreateCluster.IInstanceFleetConfigProperty

        The configuration that defines an instance fleet.

        EmrCreateCluster.IInstanceFleetProvisioningSpecificationsProperty

        The launch specification for Spot instances in the fleet, which determines the defined duration and provisioning timeout behavior.

        EmrCreateCluster.IInstanceGroupConfigProperty

        Configuration defining a new instance group.

        EmrCreateCluster.IInstancesConfigProperty

        A specification of the number and type of Amazon EC2 instances.

        EmrCreateCluster.IInstanceTypeConfigProperty

        An instance type configuration for each instance type in an instance fleet, which determines the EC2 instances Amazon EMR attempts to provision to fulfill On-Demand and Spot target capacities.

        EmrCreateCluster.IKerberosAttributesProperty

        Attributes for Kerberos configuration when Kerberos authentication is enabled using a security configuration.

        EmrCreateCluster.IMetricDimensionProperty

        A CloudWatch dimension, which is specified using a Key (known as a Name in CloudWatch), Value pair.

        EmrCreateCluster.IPlacementTypeProperty

        The Amazon EC2 Availability Zone configuration of the cluster (job flow).

        EmrCreateCluster.IScalingActionProperty

        The type of adjustment the automatic scaling activity makes when triggered, and the periodicity of the adjustment.

        EmrCreateCluster.IScalingConstraintsProperty

        The upper and lower EC2 instance limits for an automatic scaling policy.

        EmrCreateCluster.IScalingRuleProperty

        A scale-in or scale-out rule that defines scaling activity, including the CloudWatch metric alarm that triggers activity, how EC2 instances are added or removed, and the periodicity of adjustments.

        EmrCreateCluster.IScalingTriggerProperty

        The conditions that trigger an automatic scaling activity and the definition of a CloudWatch metric alarm.

        EmrCreateCluster.IScriptBootstrapActionConfigProperty

        Configuration of the script to run during a bootstrap action.

        EmrCreateCluster.ISimpleScalingPolicyConfigurationProperty

        An automatic scaling configuration, which describes how the policy adds or removes instances, the cooldown period, and the number of EC2 instances that will be added each time the CloudWatch metric alarm condition is satisfied.

        EmrCreateCluster.ISpotProvisioningSpecificationProperty

        The launch specification for Spot instances in the instance fleet, which determines the defined duration and provisioning timeout behavior.

        EmrCreateCluster.IVolumeSpecificationProperty

        EBS volume specifications such as volume type, IOPS, and size (GiB) that will be requested for the EBS volume attached to an EC2 instance in the cluster.

        EmrModifyInstanceGroupByName.IInstanceGroupModifyConfigProperty

        Modify the size or configurations of an instance group.

        EmrModifyInstanceGroupByName.IInstanceResizePolicyProperty

        Custom policy for requesting termination protection or termination of specific instances when shrinking an instance group.

        EmrModifyInstanceGroupByName.IShrinkPolicyProperty

        Policy for customizing shrink operations.

        IAlgorithmSpecification

        Specify the training algorithm and algorithm-specific metadata.

        IApplicationConfiguration

        A configuration specification to be used when provisioning virtual clusters, which can include configurations for applications and software bundled with Amazon EMR on EKS.

        IAthenaGetQueryExecutionProps

        Properties for getting a Query Execution.

        IAthenaGetQueryResultsProps

        Properties for getting a Query Results.

        IAthenaStartQueryExecutionProps

        Properties for starting a Query Execution.

        IAthenaStopQueryExecutionProps

        Properties for stoping a Query Execution.

        IBatchContainerOverrides

        The overrides that should be sent to a container.

        IBatchJobDependency

        An object representing an AWS Batch job dependency.

        IBatchSubmitJobProps

        Properties for RunBatchJob.

        ICallApiGatewayEndpointBaseProps

        Base CallApiGatewayEdnpoint Task Props.

        ICallApiGatewayHttpApiEndpointProps

        Properties for calling an HTTP API Endpoint.

        ICallApiGatewayRestApiEndpointProps

        Properties for calling an REST API Endpoint.

        ICallAwsServiceProps

        Properties for calling an AWS service's API action from your state machine.

        IChannel

        Describes the training, validation or test dataset and the Amazon S3 location where it is stored.

        ICodeBuildStartBuildProps

        Properties for CodeBuildStartBuild.

        ICommonEcsRunTaskProps

        Basic properties for ECS Tasks.

        IContainerDefinition

        Configuration of the container used to host the model.

        IContainerDefinitionConfig

        Configuration options for the ContainerDefinition.

        IContainerDefinitionOptions

        Properties to define a ContainerDefinition.

        IContainerOverride

        A list of container overrides that specify the name of a container and the overrides it should receive.

        IContainerOverrides

        The overrides that should be sent to a container.

        IDataSource

        Location of the channel data.

        IDockerImageConfig

        Configuration for a using Docker image.

        IDynamoDeleteItemProps

        Properties for DynamoDeleteItem Task.

        IDynamoGetItemProps

        Properties for DynamoGetItem Task.

        IDynamoPutItemProps

        Properties for DynamoPutItem Task.

        IDynamoUpdateItemProps

        Properties for DynamoUpdateItem Task.

        IEcsEc2LaunchTargetOptions

        Options to run an ECS task on EC2 in StepFunctions and ECS.

        IEcsFargateLaunchTargetOptions

        Properties to define an ECS service.

        IEcsLaunchTarget

        An Amazon ECS launch type determines the type of infrastructure on which your tasks and services are hosted.

        IEcsLaunchTargetConfig

        Configuration options for the ECS launch type.

        IEcsRunTaskBaseProps

        (deprecated) Construction properties for the BaseRunTaskProps.

        IEcsRunTaskProps

        Properties for ECS Tasks.

        IEksCallProps

        Properties for calling a EKS endpoint with EksCall.

        IEmrAddStepProps

        Properties for EmrAddStep.

        IEmrCancelStepProps

        Properties for EmrCancelStep.

        IEmrContainersCreateVirtualClusterProps

        Properties to define a EMR Containers CreateVirtualCluster Task on an EKS cluster.

        IEmrContainersDeleteVirtualClusterProps

        Properties to define a EMR Containers DeleteVirtualCluster Task.

        IEmrContainersStartJobRunProps

        The props for a EMR Containers StartJobRun Task.

        IEmrCreateClusterProps

        Properties for EmrCreateCluster.

        IEmrModifyInstanceFleetByNameProps

        Properties for EmrModifyInstanceFleetByName.

        IEmrModifyInstanceGroupByNameProps

        Properties for EmrModifyInstanceGroupByName.

        IEmrSetClusterTerminationProtectionProps

        Properties for EmrSetClusterTerminationProtection.

        IEmrTerminateClusterProps

        Properties for EmrTerminateCluster.

        IEncryptionConfiguration

        Encryption Configuration of the S3 bucket.

        IEvaluateExpressionProps

        Properties for EvaluateExpression.

        IEventBridgePutEventsEntry

        An entry to be sent to EventBridge.

        IEventBridgePutEventsProps

        Properties for sending events with PutEvents.

        IGlueDataBrewStartJobRunProps

        Properties for starting a job run with StartJobRun.

        IGlueStartJobRunProps

        Properties for starting an AWS Glue job as a task.

        IInvokeActivityProps

        (deprecated) Properties for FunctionTask.

        IInvokeFunctionProps

        (deprecated) Properties for InvokeFunction.

        IJobDependency

        An object representing an AWS Batch job dependency.

        IJobDriver

        Specify the driver that the EMR Containers job runs on.

        ILambdaInvokeProps

        Properties for invoking a Lambda function with LambdaInvoke.

        ILaunchTargetBindOptions

        Options for binding a launch target to an ECS run job task.

        IMessageAttribute

        A message attribute to add to the SNS message.

        IMetricDefinition

        Specifies the metric name and regular expressions used to parse algorithm logs.

        IModelClientOptions

        Configures the timeout and maximum number of retries for processing a transform job invocation.

        IMonitoring

        Configuration setting for monitoring.

        IOutputDataConfig

        Configures the S3 bucket where SageMaker will save the result of model training.

        IProductionVariant

        Identifies a model that you want to host and the resources to deploy for hosting it.

        IPublishToTopicProps

        (deprecated) Properties for PublishTask.

        IQueryExecutionContext

        Database and data catalog context in which the query execution occurs.

        IResourceConfig

        Specifies the resources, ML compute instances, and ML storage volumes to deploy for model training.

        IResultConfiguration

        Location of query result along with S3 bucket configuration.

        IRunBatchJobProps

        (deprecated) Properties for RunBatchJob.

        IRunEcsEc2TaskProps

        (deprecated) Properties to run an ECS task on EC2 in StepFunctionsan ECS.

        IRunEcsFargateTaskProps

        (deprecated) Properties to define an ECS service.

        IRunGlueJobTaskProps

        (deprecated) Properties for RunGlueJobTask.

        IRunLambdaTaskProps

        (deprecated) Properties for RunLambdaTask.

        IS3DataSource

        S3 location of the channel data.

        IS3LocationBindOptions

        Options for binding an S3 Location.

        IS3LocationConfig

        Stores information about the location of an object in Amazon S3.

        ISageMakerCreateEndpointConfigProps

        Properties for creating an Amazon SageMaker endpoint configuration.

        ISageMakerCreateEndpointProps

        Properties for creating an Amazon SageMaker endpoint.

        ISageMakerCreateModelProps

        Properties for creating an Amazon SageMaker model.

        ISageMakerCreateTrainingJobProps

        Properties for creating an Amazon SageMaker training job.

        ISageMakerCreateTransformJobProps

        Properties for creating an Amazon SageMaker transform job task.

        ISageMakerTask

        Task to train a machine learning model using Amazon SageMaker.

        ISageMakerUpdateEndpointProps

        Properties for updating Amazon SageMaker endpoint.

        ISendToQueueProps

        (deprecated) Properties for SendMessageTask.

        IShuffleConfig

        Configuration for a shuffle option for input data in a channel.

        ISnsPublishProps

        Properties for publishing a message to an SNS topic.

        ISparkSubmitJobDriver

        The information about job driver for Spark submit.

        ISqsSendMessageProps

        Properties for sending a message to an SQS queue.

        IStartExecutionProps

        (deprecated) Properties for StartExecution.

        IStepFunctionsInvokeActivityProps

        Properties for invoking an Activity worker.

        IStepFunctionsStartExecutionProps

        Properties for StartExecution.

        IStoppingCondition

        Specifies a limit to how long a model training job can run.

        ITaskEnvironmentVariable

        An environment variable to be set in the container run as a task.

        ITransformDataSource

        S3 location of the input data that the model can consume.

        ITransformInput

        Dataset to be transformed and the Amazon S3 location where it is stored.

        ITransformOutput

        S3 location where you want Amazon SageMaker to save the results from the transform job.

        ITransformResources

        ML compute instances for the transform job.

        ITransformS3DataSource

        Location of the channel data.

        IVpcConfig

        Specifies the VPC that you want your Amazon SageMaker training job to connect to.

        Back to top Generated by DocFX