1. Packages
  2. AWS Cloud Control
  3. API Docs
  4. stepfunctions
  5. StateMachine

We recommend new projects start with resources from the AWS provider.

AWS Cloud Control v1.27.0 published on Monday, Apr 14, 2025 by Pulumi

aws-native.stepfunctions.StateMachine

Explore with Pulumi AI

We recommend new projects start with resources from the AWS provider.

AWS Cloud Control v1.27.0 published on Monday, Apr 14, 2025 by Pulumi

Resource schema for StateMachine

Example Usage

Example

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AwsNative = Pulumi.AwsNative;

return await Deployment.RunAsync(() => 
{
    var myStateMachine = new AwsNative.StepFunctions.StateMachine("myStateMachine", new()
    {
        StateMachineName = "HelloWorld-StateMachine",
        StateMachineType = AwsNative.StepFunctions.StateMachineType.Standard,
        DefinitionString = "{\"StartAt\": \"HelloWorld\",  \"States\": {\"HelloWorld\": {\"Type\": \"Task\", \"Resource\":  \"arn:aws:lambda:us-east-1:111122223333;:function:HelloFunction\", \"End\": true}}}",
        RoleArn = "arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1;",
    });

});
Copy
package main

import (
	"github.com/pulumi/pulumi-aws-native/sdk/go/aws/stepfunctions"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := stepfunctions.NewStateMachine(ctx, "myStateMachine", &stepfunctions.StateMachineArgs{
			StateMachineName: pulumi.String("HelloWorld-StateMachine"),
			StateMachineType: stepfunctions.StateMachineTypeStandard,
			DefinitionString: pulumi.String("{\"StartAt\": \"HelloWorld\",  \"States\": {\"HelloWorld\": {\"Type\": \"Task\", \"Resource\":  \"arn:aws:lambda:us-east-1:111122223333;:function:HelloFunction\", \"End\": true}}}"),
			RoleArn:          pulumi.String("arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1;"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy

Coming soon!

import * as pulumi from "@pulumi/pulumi";
import * as aws_native from "@pulumi/aws-native";

const myStateMachine = new aws_native.stepfunctions.StateMachine("myStateMachine", {
    stateMachineName: "HelloWorld-StateMachine",
    stateMachineType: aws_native.stepfunctions.StateMachineType.Standard,
    definitionString: "{\"StartAt\": \"HelloWorld\",  \"States\": {\"HelloWorld\": {\"Type\": \"Task\", \"Resource\":  \"arn:aws:lambda:us-east-1:111122223333;:function:HelloFunction\", \"End\": true}}}",
    roleArn: "arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1;",
});
Copy
import pulumi
import pulumi_aws_native as aws_native

my_state_machine = aws_native.stepfunctions.StateMachine("myStateMachine",
    state_machine_name="HelloWorld-StateMachine",
    state_machine_type=aws_native.stepfunctions.StateMachineType.STANDARD,
    definition_string="{\"StartAt\": \"HelloWorld\",  \"States\": {\"HelloWorld\": {\"Type\": \"Task\", \"Resource\":  \"arn:aws:lambda:us-east-1:111122223333;:function:HelloFunction\", \"End\": true}}}",
    role_arn="arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1;")
Copy

Coming soon!

Example

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AwsNative = Pulumi.AwsNative;

return await Deployment.RunAsync(() => 
{
    var myStateMachine = new AwsNative.StepFunctions.StateMachine("myStateMachine", new()
    {
        StateMachineName = "HelloWorld-StateMachine",
        StateMachineType = AwsNative.StepFunctions.StateMachineType.Standard,
        DefinitionString = @"{
    ""StartAt"": ""HelloWorld"",
    ""States"" : {
        ""HelloWorld"" : {
            ""Type"" : ""Task"", 
            ""Resource"" : ""arn:aws:lambda:us-east-1:111122223333:function:HelloFunction"",
            ""End"" : true
        }
    }
}",
        RoleArn = "arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1",
        Tags = new[]
        {
            new AwsNative.Inputs.TagArgs
            {
                Key = "keyname1",
                Value = "value1",
            },
            new AwsNative.Inputs.TagArgs
            {
                Key = "keyname2",
                Value = "value2",
            },
        },
    });

});
Copy
package main

import (
	awsnative "github.com/pulumi/pulumi-aws-native/sdk/go/aws"
	"github.com/pulumi/pulumi-aws-native/sdk/go/aws/stepfunctions"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := stepfunctions.NewStateMachine(ctx, "myStateMachine", &stepfunctions.StateMachineArgs{
			StateMachineName: pulumi.String("HelloWorld-StateMachine"),
			StateMachineType: stepfunctions.StateMachineTypeStandard,
			DefinitionString: pulumi.String(`{
    "StartAt": "HelloWorld",
    "States" : {
        "HelloWorld" : {
            "Type" : "Task", 
            "Resource" : "arn:aws:lambda:us-east-1:111122223333:function:HelloFunction",
            "End" : true
        }
    }
}`),
			RoleArn: pulumi.String("arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1"),
			Tags: aws.TagArray{
				&aws.TagArgs{
					Key:   pulumi.String("keyname1"),
					Value: pulumi.String("value1"),
				},
				&aws.TagArgs{
					Key:   pulumi.String("keyname2"),
					Value: pulumi.String("value2"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy

Coming soon!

import * as pulumi from "@pulumi/pulumi";
import * as aws_native from "@pulumi/aws-native";

const myStateMachine = new aws_native.stepfunctions.StateMachine("myStateMachine", {
    stateMachineName: "HelloWorld-StateMachine",
    stateMachineType: aws_native.stepfunctions.StateMachineType.Standard,
    definitionString: `{
    "StartAt": "HelloWorld",
    "States" : {
        "HelloWorld" : {
            "Type" : "Task", 
            "Resource" : "arn:aws:lambda:us-east-1:111122223333:function:HelloFunction",
            "End" : true
        }
    }
}`,
    roleArn: "arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1",
    tags: [
        {
            key: "keyname1",
            value: "value1",
        },
        {
            key: "keyname2",
            value: "value2",
        },
    ],
});
Copy
import pulumi
import pulumi_aws_native as aws_native

my_state_machine = aws_native.stepfunctions.StateMachine("myStateMachine",
    state_machine_name="HelloWorld-StateMachine",
    state_machine_type=aws_native.stepfunctions.StateMachineType.STANDARD,
    definition_string="""{
    "StartAt": "HelloWorld",
    "States" : {
        "HelloWorld" : {
            "Type" : "Task", 
            "Resource" : "arn:aws:lambda:us-east-1:111122223333:function:HelloFunction",
            "End" : true
        }
    }
}""",
    role_arn="arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1",
    tags=[
        {
            "key": "keyname1",
            "value": "value1",
        },
        {
            "key": "keyname2",
            "value": "value2",
        },
    ])
Copy

Coming soon!

Example

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AwsNative = Pulumi.AwsNative;

return await Deployment.RunAsync(() => 
{
    var myStateMachine = new AwsNative.StepFunctions.StateMachine("myStateMachine", new()
    {
        StateMachineName = "HelloWorld-StateMachine",
        DefinitionString = @"{
  ""StartAt"": ""HelloWorld"",
  ""States"": {
    ""HelloWorld"": {
      ""Type"": ""Task"",
      ""Resource"": ""arn:aws:lambda:us-east-1:111122223333:function:HelloFunction"",
      ""End"": true
    }
  }
}",
        RoleArn = "arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1",
        Tags = new[]
        {
            new AwsNative.Inputs.TagArgs
            {
                Key = "keyname1",
                Value = "value1",
            },
            new AwsNative.Inputs.TagArgs
            {
                Key = "keyname2",
                Value = "value2",
            },
        },
    });

});
Copy
package main

import (
	awsnative "github.com/pulumi/pulumi-aws-native/sdk/go/aws"
	"github.com/pulumi/pulumi-aws-native/sdk/go/aws/stepfunctions"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := stepfunctions.NewStateMachine(ctx, "myStateMachine", &stepfunctions.StateMachineArgs{
			StateMachineName: pulumi.String("HelloWorld-StateMachine"),
			DefinitionString: pulumi.String(`{
  "StartAt": "HelloWorld",
  "States": {
    "HelloWorld": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:us-east-1:111122223333:function:HelloFunction",
      "End": true
    }
  }
}`),
			RoleArn: pulumi.String("arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1"),
			Tags: aws.TagArray{
				&aws.TagArgs{
					Key:   pulumi.String("keyname1"),
					Value: pulumi.String("value1"),
				},
				&aws.TagArgs{
					Key:   pulumi.String("keyname2"),
					Value: pulumi.String("value2"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy

Coming soon!

import * as pulumi from "@pulumi/pulumi";
import * as aws_native from "@pulumi/aws-native";

const myStateMachine = new aws_native.stepfunctions.StateMachine("myStateMachine", {
    stateMachineName: "HelloWorld-StateMachine",
    definitionString: `{
  "StartAt": "HelloWorld",
  "States": {
    "HelloWorld": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:us-east-1:111122223333:function:HelloFunction",
      "End": true
    }
  }
}`,
    roleArn: "arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1",
    tags: [
        {
            key: "keyname1",
            value: "value1",
        },
        {
            key: "keyname2",
            value: "value2",
        },
    ],
});
Copy
import pulumi
import pulumi_aws_native as aws_native

my_state_machine = aws_native.stepfunctions.StateMachine("myStateMachine",
    state_machine_name="HelloWorld-StateMachine",
    definition_string="""{
  "StartAt": "HelloWorld",
  "States": {
    "HelloWorld": {
      "Type": "Task",
      "Resource": "arn:aws:lambda:us-east-1:111122223333:function:HelloFunction",
      "End": true
    }
  }
}""",
    role_arn="arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1",
    tags=[
        {
            "key": "keyname1",
            "value": "value1",
        },
        {
            "key": "keyname2",
            "value": "value2",
        },
    ])
Copy

Coming soon!

Example

using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AwsNative = Pulumi.AwsNative;

return await Deployment.RunAsync(() => 
{
    var myStateMachine = new AwsNative.StepFunctions.StateMachine("myStateMachine", new()
    {
        StateMachineName = "HelloWorld-StateMachine",
        DefinitionS3Location = new AwsNative.StepFunctions.Inputs.StateMachineS3LocationArgs
        {
            Bucket = "example_bucket",
            Key = "hello_world.json",
        },
        DefinitionSubstitutions = 
        {
            { "helloFunction", "arn:aws:lambda:us-east-1:111122223333:function:HelloFunction" },
        },
        RoleArn = "arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1",
    });

});
Copy
package main

import (
	"github.com/pulumi/pulumi-aws-native/sdk/go/aws/stepfunctions"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := stepfunctions.NewStateMachine(ctx, "myStateMachine", &stepfunctions.StateMachineArgs{
			StateMachineName: pulumi.String("HelloWorld-StateMachine"),
			DefinitionS3Location: &stepfunctions.StateMachineS3LocationArgs{
				Bucket: pulumi.String("example_bucket"),
				Key:    pulumi.String("hello_world.json"),
			},
			DefinitionSubstitutions: pulumi.Map{
				"helloFunction": pulumi.Any("arn:aws:lambda:us-east-1:111122223333:function:HelloFunction"),
			},
			RoleArn: pulumi.String("arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}
Copy

Coming soon!

import * as pulumi from "@pulumi/pulumi";
import * as aws_native from "@pulumi/aws-native";

const myStateMachine = new aws_native.stepfunctions.StateMachine("myStateMachine", {
    stateMachineName: "HelloWorld-StateMachine",
    definitionS3Location: {
        bucket: "example_bucket",
        key: "hello_world.json",
    },
    definitionSubstitutions: {
        helloFunction: "arn:aws:lambda:us-east-1:111122223333:function:HelloFunction",
    },
    roleArn: "arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1",
});
Copy
import pulumi
import pulumi_aws_native as aws_native

my_state_machine = aws_native.stepfunctions.StateMachine("myStateMachine",
    state_machine_name="HelloWorld-StateMachine",
    definition_s3_location={
        "bucket": "example_bucket",
        "key": "hello_world.json",
    },
    definition_substitutions={
        "helloFunction": "arn:aws:lambda:us-east-1:111122223333:function:HelloFunction",
    },
    role_arn="arn:aws:iam::111122223333:role/service-role/StatesExecutionRole-us-east-1")
Copy

Coming soon!

Create StateMachine Resource

Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

Constructor syntax

new StateMachine(name: string, args: StateMachineArgs, opts?: CustomResourceOptions);
@overload
def StateMachine(resource_name: str,
                 args: StateMachineArgs,
                 opts: Optional[ResourceOptions] = None)

@overload
def StateMachine(resource_name: str,
                 opts: Optional[ResourceOptions] = None,
                 role_arn: Optional[str] = None,
                 definition: Optional[StateMachineDefinitionArgs] = None,
                 definition_s3_location: Optional[StateMachineS3LocationArgs] = None,
                 definition_string: Optional[str] = None,
                 definition_substitutions: Optional[Mapping[str, Union[str, int, bool]]] = None,
                 encryption_configuration: Optional[StateMachineEncryptionConfigurationArgs] = None,
                 logging_configuration: Optional[StateMachineLoggingConfigurationArgs] = None,
                 state_machine_name: Optional[str] = None,
                 state_machine_type: Optional[StateMachineType] = None,
                 tags: Optional[Sequence[_root_inputs.TagArgs]] = None,
                 tracing_configuration: Optional[StateMachineTracingConfigurationArgs] = None)
func NewStateMachine(ctx *Context, name string, args StateMachineArgs, opts ...ResourceOption) (*StateMachine, error)
public StateMachine(string name, StateMachineArgs args, CustomResourceOptions? opts = null)
public StateMachine(String name, StateMachineArgs args)
public StateMachine(String name, StateMachineArgs args, CustomResourceOptions options)
type: aws-native:stepfunctions:StateMachine
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

Parameters

name This property is required. string
The unique name of the resource.
args This property is required. StateMachineArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name This property is required. str
The unique name of the resource.
args This property is required. StateMachineArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name This property is required. string
The unique name of the resource.
args This property is required. StateMachineArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name This property is required. string
The unique name of the resource.
args This property is required. StateMachineArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name This property is required. String
The unique name of the resource.
args This property is required. StateMachineArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

StateMachine Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

The StateMachine resource accepts the following input properties:

RoleArn This property is required. string
The Amazon Resource Name (ARN) of the IAM role to use for this state machine.
Definition Pulumi.AwsNative.StepFunctions.Inputs.StateMachineDefinition
The Amazon States Language definition of the state machine. The state machine definition must be in JSON or YAML, and the format of the object must match the format of your CloudFormation template file. See Amazon States Language .
DefinitionS3Location Pulumi.AwsNative.StepFunctions.Inputs.StateMachineS3Location
The name of the S3 bucket where the state machine definition is stored. The state machine definition must be a JSON or YAML file.
DefinitionString string
The Amazon States Language definition of the state machine. The state machine definition must be in JSON. See Amazon States Language .
DefinitionSubstitutions Dictionary<string, object>

A map (string to string) that specifies the mappings for placeholder variables in the state machine definition. This enables the customer to inject values obtained at runtime, for example from intrinsic functions, in the state machine definition. Variables can be template parameter names, resource logical IDs, resource attributes, or a variable in a key-value map.

Substitutions must follow the syntax: ${key_name} or ${variable_1,variable_2,...} .

EncryptionConfiguration Pulumi.AwsNative.StepFunctions.Inputs.StateMachineEncryptionConfiguration
Encryption configuration for the state machine.
LoggingConfiguration Pulumi.AwsNative.StepFunctions.Inputs.StateMachineLoggingConfiguration

Defines what execution history events are logged and where they are logged.

By default, the level is set to OFF . For more information see Log Levels in the AWS Step Functions User Guide.

StateMachineName string

The name of the state machine.

A name must not contain:

  • white space
  • brackets < > { } [ ]
  • wildcard characters ? *
  • special characters " # % \ ^ | ~ $ & , ; : /`
  • control characters ( U+0000-001F , U+007F-009F )

If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.

StateMachineType Pulumi.AwsNative.StepFunctions.StateMachineType
Determines whether a STANDARD or EXPRESS state machine is created. The default is STANDARD . You cannot update the type of a state machine once it has been created. For more information on STANDARD and EXPRESS workflows, see Standard Versus Express Workflows in the AWS Step Functions Developer Guide.
Tags List<Pulumi.AwsNative.Inputs.Tag>

The list of tags to add to a resource.

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @ .

TracingConfiguration Pulumi.AwsNative.StepFunctions.Inputs.StateMachineTracingConfiguration
Selects whether or not the state machine's AWS X-Ray tracing is enabled.
RoleArn This property is required. string
The Amazon Resource Name (ARN) of the IAM role to use for this state machine.
Definition StateMachineDefinitionArgs
The Amazon States Language definition of the state machine. The state machine definition must be in JSON or YAML, and the format of the object must match the format of your CloudFormation template file. See Amazon States Language .
DefinitionS3Location StateMachineS3LocationArgs
The name of the S3 bucket where the state machine definition is stored. The state machine definition must be a JSON or YAML file.
DefinitionString string
The Amazon States Language definition of the state machine. The state machine definition must be in JSON. See Amazon States Language .
DefinitionSubstitutions map[string]interface{}

A map (string to string) that specifies the mappings for placeholder variables in the state machine definition. This enables the customer to inject values obtained at runtime, for example from intrinsic functions, in the state machine definition. Variables can be template parameter names, resource logical IDs, resource attributes, or a variable in a key-value map.

Substitutions must follow the syntax: ${key_name} or ${variable_1,variable_2,...} .

EncryptionConfiguration StateMachineEncryptionConfigurationArgs
Encryption configuration for the state machine.
LoggingConfiguration StateMachineLoggingConfigurationArgs

Defines what execution history events are logged and where they are logged.

By default, the level is set to OFF . For more information see Log Levels in the AWS Step Functions User Guide.

StateMachineName string

The name of the state machine.

A name must not contain:

  • white space
  • brackets < > { } [ ]
  • wildcard characters ? *
  • special characters " # % \ ^ | ~ $ & , ; : /`
  • control characters ( U+0000-001F , U+007F-009F )

If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.

StateMachineType StateMachineType
Determines whether a STANDARD or EXPRESS state machine is created. The default is STANDARD . You cannot update the type of a state machine once it has been created. For more information on STANDARD and EXPRESS workflows, see Standard Versus Express Workflows in the AWS Step Functions Developer Guide.
Tags TagArgs

The list of tags to add to a resource.

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @ .

TracingConfiguration StateMachineTracingConfigurationArgs
Selects whether or not the state machine's AWS X-Ray tracing is enabled.
roleArn This property is required. String
The Amazon Resource Name (ARN) of the IAM role to use for this state machine.
definition StateMachineDefinition
The Amazon States Language definition of the state machine. The state machine definition must be in JSON or YAML, and the format of the object must match the format of your CloudFormation template file. See Amazon States Language .
definitionS3Location StateMachineS3Location
The name of the S3 bucket where the state machine definition is stored. The state machine definition must be a JSON or YAML file.
definitionString String
The Amazon States Language definition of the state machine. The state machine definition must be in JSON. See Amazon States Language .
definitionSubstitutions Map<String,Object>

A map (string to string) that specifies the mappings for placeholder variables in the state machine definition. This enables the customer to inject values obtained at runtime, for example from intrinsic functions, in the state machine definition. Variables can be template parameter names, resource logical IDs, resource attributes, or a variable in a key-value map.

Substitutions must follow the syntax: ${key_name} or ${variable_1,variable_2,...} .

encryptionConfiguration StateMachineEncryptionConfiguration
Encryption configuration for the state machine.
loggingConfiguration StateMachineLoggingConfiguration

Defines what execution history events are logged and where they are logged.

By default, the level is set to OFF . For more information see Log Levels in the AWS Step Functions User Guide.

stateMachineName String

The name of the state machine.

A name must not contain:

  • white space
  • brackets < > { } [ ]
  • wildcard characters ? *
  • special characters " # % \ ^ | ~ $ & , ; : /`
  • control characters ( U+0000-001F , U+007F-009F )

If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.

stateMachineType StateMachineType
Determines whether a STANDARD or EXPRESS state machine is created. The default is STANDARD . You cannot update the type of a state machine once it has been created. For more information on STANDARD and EXPRESS workflows, see Standard Versus Express Workflows in the AWS Step Functions Developer Guide.
tags List<Tag>

The list of tags to add to a resource.

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @ .

tracingConfiguration StateMachineTracingConfiguration
Selects whether or not the state machine's AWS X-Ray tracing is enabled.
roleArn This property is required. string
The Amazon Resource Name (ARN) of the IAM role to use for this state machine.
definition StateMachineDefinition
The Amazon States Language definition of the state machine. The state machine definition must be in JSON or YAML, and the format of the object must match the format of your CloudFormation template file. See Amazon States Language .
definitionS3Location StateMachineS3Location
The name of the S3 bucket where the state machine definition is stored. The state machine definition must be a JSON or YAML file.
definitionString string
The Amazon States Language definition of the state machine. The state machine definition must be in JSON. See Amazon States Language .
definitionSubstitutions {[key: string]: string | number | boolean}

A map (string to string) that specifies the mappings for placeholder variables in the state machine definition. This enables the customer to inject values obtained at runtime, for example from intrinsic functions, in the state machine definition. Variables can be template parameter names, resource logical IDs, resource attributes, or a variable in a key-value map.

Substitutions must follow the syntax: ${key_name} or ${variable_1,variable_2,...} .

encryptionConfiguration StateMachineEncryptionConfiguration
Encryption configuration for the state machine.
loggingConfiguration StateMachineLoggingConfiguration

Defines what execution history events are logged and where they are logged.

By default, the level is set to OFF . For more information see Log Levels in the AWS Step Functions User Guide.

stateMachineName string

The name of the state machine.

A name must not contain:

  • white space
  • brackets < > { } [ ]
  • wildcard characters ? *
  • special characters " # % \ ^ | ~ $ & , ; : /`
  • control characters ( U+0000-001F , U+007F-009F )

If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.

stateMachineType StateMachineType
Determines whether a STANDARD or EXPRESS state machine is created. The default is STANDARD . You cannot update the type of a state machine once it has been created. For more information on STANDARD and EXPRESS workflows, see Standard Versus Express Workflows in the AWS Step Functions Developer Guide.
tags Tag[]

The list of tags to add to a resource.

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @ .

tracingConfiguration StateMachineTracingConfiguration
Selects whether or not the state machine's AWS X-Ray tracing is enabled.
role_arn This property is required. str
The Amazon Resource Name (ARN) of the IAM role to use for this state machine.
definition StateMachineDefinitionArgs
The Amazon States Language definition of the state machine. The state machine definition must be in JSON or YAML, and the format of the object must match the format of your CloudFormation template file. See Amazon States Language .
definition_s3_location StateMachineS3LocationArgs
The name of the S3 bucket where the state machine definition is stored. The state machine definition must be a JSON or YAML file.
definition_string str
The Amazon States Language definition of the state machine. The state machine definition must be in JSON. See Amazon States Language .
definition_substitutions Mapping[str, Union[str, int, bool]]

A map (string to string) that specifies the mappings for placeholder variables in the state machine definition. This enables the customer to inject values obtained at runtime, for example from intrinsic functions, in the state machine definition. Variables can be template parameter names, resource logical IDs, resource attributes, or a variable in a key-value map.

Substitutions must follow the syntax: ${key_name} or ${variable_1,variable_2,...} .

encryption_configuration StateMachineEncryptionConfigurationArgs
Encryption configuration for the state machine.
logging_configuration StateMachineLoggingConfigurationArgs

Defines what execution history events are logged and where they are logged.

By default, the level is set to OFF . For more information see Log Levels in the AWS Step Functions User Guide.

state_machine_name str

The name of the state machine.

A name must not contain:

  • white space
  • brackets < > { } [ ]
  • wildcard characters ? *
  • special characters " # % \ ^ | ~ $ & , ; : /`
  • control characters ( U+0000-001F , U+007F-009F )

If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.

state_machine_type StateMachineType
Determines whether a STANDARD or EXPRESS state machine is created. The default is STANDARD . You cannot update the type of a state machine once it has been created. For more information on STANDARD and EXPRESS workflows, see Standard Versus Express Workflows in the AWS Step Functions Developer Guide.
tags Sequence[TagArgs]

The list of tags to add to a resource.

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @ .

tracing_configuration StateMachineTracingConfigurationArgs
Selects whether or not the state machine's AWS X-Ray tracing is enabled.
roleArn This property is required. String
The Amazon Resource Name (ARN) of the IAM role to use for this state machine.
definition Property Map
The Amazon States Language definition of the state machine. The state machine definition must be in JSON or YAML, and the format of the object must match the format of your CloudFormation template file. See Amazon States Language .
definitionS3Location Property Map
The name of the S3 bucket where the state machine definition is stored. The state machine definition must be a JSON or YAML file.
definitionString String
The Amazon States Language definition of the state machine. The state machine definition must be in JSON. See Amazon States Language .
definitionSubstitutions Map<String | Number | Boolean>

A map (string to string) that specifies the mappings for placeholder variables in the state machine definition. This enables the customer to inject values obtained at runtime, for example from intrinsic functions, in the state machine definition. Variables can be template parameter names, resource logical IDs, resource attributes, or a variable in a key-value map.

Substitutions must follow the syntax: ${key_name} or ${variable_1,variable_2,...} .

encryptionConfiguration Property Map
Encryption configuration for the state machine.
loggingConfiguration Property Map

Defines what execution history events are logged and where they are logged.

By default, the level is set to OFF . For more information see Log Levels in the AWS Step Functions User Guide.

stateMachineName String

The name of the state machine.

A name must not contain:

  • white space
  • brackets < > { } [ ]
  • wildcard characters ? *
  • special characters " # % \ ^ | ~ $ & , ; : /`
  • control characters ( U+0000-001F , U+007F-009F )

If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name.

stateMachineType "STANDARD" | "EXPRESS"
Determines whether a STANDARD or EXPRESS state machine is created. The default is STANDARD . You cannot update the type of a state machine once it has been created. For more information on STANDARD and EXPRESS workflows, see Standard Versus Express Workflows in the AWS Step Functions Developer Guide.
tags List<Property Map>

The list of tags to add to a resource.

Tags may only contain Unicode letters, digits, white space, or these symbols: _ . : / = + - @ .

tracingConfiguration Property Map
Selects whether or not the state machine's AWS X-Ray tracing is enabled.

Outputs

All input properties are implicitly available as output properties. Additionally, the StateMachine resource produces the following output properties:

Arn string
Returns the ARN of the resource.
Id string
The provider-assigned unique ID for this managed resource.
Name string

Returns the name of the state machine. For example:

{ "Fn::GetAtt": ["MyStateMachine", "Name"] }

Returns the name of your state machine:

HelloWorld-StateMachine

If you did not specify the name it will be similar to the following:

MyStateMachine-1234abcdefgh

For more information about using Fn::GetAtt , see Fn::GetAtt .

StateMachineRevisionId string
Identifier for a state machine revision, which is an immutable, read-only snapshot of a state machine’s definition and configuration.
Arn string
Returns the ARN of the resource.
Id string
The provider-assigned unique ID for this managed resource.
Name string

Returns the name of the state machine. For example:

{ "Fn::GetAtt": ["MyStateMachine", "Name"] }

Returns the name of your state machine:

HelloWorld-StateMachine

If you did not specify the name it will be similar to the following:

MyStateMachine-1234abcdefgh

For more information about using Fn::GetAtt , see Fn::GetAtt .

StateMachineRevisionId string
Identifier for a state machine revision, which is an immutable, read-only snapshot of a state machine’s definition and configuration.
arn String
Returns the ARN of the resource.
id String
The provider-assigned unique ID for this managed resource.
name String

Returns the name of the state machine. For example:

{ "Fn::GetAtt": ["MyStateMachine", "Name"] }

Returns the name of your state machine:

HelloWorld-StateMachine

If you did not specify the name it will be similar to the following:

MyStateMachine-1234abcdefgh

For more information about using Fn::GetAtt , see Fn::GetAtt .

stateMachineRevisionId String
Identifier for a state machine revision, which is an immutable, read-only snapshot of a state machine’s definition and configuration.
arn string
Returns the ARN of the resource.
id string
The provider-assigned unique ID for this managed resource.
name string

Returns the name of the state machine. For example:

{ "Fn::GetAtt": ["MyStateMachine", "Name"] }

Returns the name of your state machine:

HelloWorld-StateMachine

If you did not specify the name it will be similar to the following:

MyStateMachine-1234abcdefgh

For more information about using Fn::GetAtt , see Fn::GetAtt .

stateMachineRevisionId string
Identifier for a state machine revision, which is an immutable, read-only snapshot of a state machine’s definition and configuration.
arn str
Returns the ARN of the resource.
id str
The provider-assigned unique ID for this managed resource.
name str

Returns the name of the state machine. For example:

{ "Fn::GetAtt": ["MyStateMachine", "Name"] }

Returns the name of your state machine:

HelloWorld-StateMachine

If you did not specify the name it will be similar to the following:

MyStateMachine-1234abcdefgh

For more information about using Fn::GetAtt , see Fn::GetAtt .

state_machine_revision_id str
Identifier for a state machine revision, which is an immutable, read-only snapshot of a state machine’s definition and configuration.
arn String
Returns the ARN of the resource.
id String
The provider-assigned unique ID for this managed resource.
name String

Returns the name of the state machine. For example:

{ "Fn::GetAtt": ["MyStateMachine", "Name"] }

Returns the name of your state machine:

HelloWorld-StateMachine

If you did not specify the name it will be similar to the following:

MyStateMachine-1234abcdefgh

For more information about using Fn::GetAtt , see Fn::GetAtt .

stateMachineRevisionId String
Identifier for a state machine revision, which is an immutable, read-only snapshot of a state machine’s definition and configuration.

Supporting Types

StateMachineCloudWatchLogsLogGroup
, StateMachineCloudWatchLogsLogGroupArgs

LogGroupArn string
The ARN of the the CloudWatch log group to which you want your logs emitted to. The ARN must end with :*
LogGroupArn string
The ARN of the the CloudWatch log group to which you want your logs emitted to. The ARN must end with :*
logGroupArn String
The ARN of the the CloudWatch log group to which you want your logs emitted to. The ARN must end with :*
logGroupArn string
The ARN of the the CloudWatch log group to which you want your logs emitted to. The ARN must end with :*
log_group_arn str
The ARN of the the CloudWatch log group to which you want your logs emitted to. The ARN must end with :*
logGroupArn String
The ARN of the the CloudWatch log group to which you want your logs emitted to. The ARN must end with :*

StateMachineEncryptionConfiguration
, StateMachineEncryptionConfigurationArgs

Type This property is required. Pulumi.AwsNative.StepFunctions.StateMachineEncryptionConfigurationType
Encryption option for a state machine.
KmsDataKeyReusePeriodSeconds int
Maximum duration that Step Functions will reuse data keys. When the period expires, Step Functions will call GenerateDataKey . Only applies to customer managed keys.
KmsKeyId string
An alias, alias ARN, key ID, or key ARN of a symmetric encryption AWS KMS key to encrypt data. To specify a AWS KMS key in a different AWS account, you must use the key ARN or alias ARN.
Type This property is required. StateMachineEncryptionConfigurationType
Encryption option for a state machine.
KmsDataKeyReusePeriodSeconds int
Maximum duration that Step Functions will reuse data keys. When the period expires, Step Functions will call GenerateDataKey . Only applies to customer managed keys.
KmsKeyId string
An alias, alias ARN, key ID, or key ARN of a symmetric encryption AWS KMS key to encrypt data. To specify a AWS KMS key in a different AWS account, you must use the key ARN or alias ARN.
type This property is required. StateMachineEncryptionConfigurationType
Encryption option for a state machine.
kmsDataKeyReusePeriodSeconds Integer
Maximum duration that Step Functions will reuse data keys. When the period expires, Step Functions will call GenerateDataKey . Only applies to customer managed keys.
kmsKeyId String
An alias, alias ARN, key ID, or key ARN of a symmetric encryption AWS KMS key to encrypt data. To specify a AWS KMS key in a different AWS account, you must use the key ARN or alias ARN.
type This property is required. StateMachineEncryptionConfigurationType
Encryption option for a state machine.
kmsDataKeyReusePeriodSeconds number
Maximum duration that Step Functions will reuse data keys. When the period expires, Step Functions will call GenerateDataKey . Only applies to customer managed keys.
kmsKeyId string
An alias, alias ARN, key ID, or key ARN of a symmetric encryption AWS KMS key to encrypt data. To specify a AWS KMS key in a different AWS account, you must use the key ARN or alias ARN.
type This property is required. StateMachineEncryptionConfigurationType
Encryption option for a state machine.
kms_data_key_reuse_period_seconds int
Maximum duration that Step Functions will reuse data keys. When the period expires, Step Functions will call GenerateDataKey . Only applies to customer managed keys.
kms_key_id str
An alias, alias ARN, key ID, or key ARN of a symmetric encryption AWS KMS key to encrypt data. To specify a AWS KMS key in a different AWS account, you must use the key ARN or alias ARN.
type This property is required. "CUSTOMER_MANAGED_KMS_KEY" | "AWS_OWNED_KEY"
Encryption option for a state machine.
kmsDataKeyReusePeriodSeconds Number
Maximum duration that Step Functions will reuse data keys. When the period expires, Step Functions will call GenerateDataKey . Only applies to customer managed keys.
kmsKeyId String
An alias, alias ARN, key ID, or key ARN of a symmetric encryption AWS KMS key to encrypt data. To specify a AWS KMS key in a different AWS account, you must use the key ARN or alias ARN.

StateMachineEncryptionConfigurationType
, StateMachineEncryptionConfigurationTypeArgs

CustomerManagedKmsKey
CUSTOMER_MANAGED_KMS_KEY
AwsOwnedKey
AWS_OWNED_KEY
StateMachineEncryptionConfigurationTypeCustomerManagedKmsKey
CUSTOMER_MANAGED_KMS_KEY
StateMachineEncryptionConfigurationTypeAwsOwnedKey
AWS_OWNED_KEY
CustomerManagedKmsKey
CUSTOMER_MANAGED_KMS_KEY
AwsOwnedKey
AWS_OWNED_KEY
CustomerManagedKmsKey
CUSTOMER_MANAGED_KMS_KEY
AwsOwnedKey
AWS_OWNED_KEY
CUSTOMER_MANAGED_KMS_KEY
CUSTOMER_MANAGED_KMS_KEY
AWS_OWNED_KEY
AWS_OWNED_KEY
"CUSTOMER_MANAGED_KMS_KEY"
CUSTOMER_MANAGED_KMS_KEY
"AWS_OWNED_KEY"
AWS_OWNED_KEY

StateMachineLogDestination
, StateMachineLogDestinationArgs

CloudWatchLogsLogGroup Pulumi.AwsNative.StepFunctions.Inputs.StateMachineCloudWatchLogsLogGroup
An object describing a CloudWatch log group. For more information, see AWS::Logs::LogGroup in the AWS CloudFormation User Guide.
CloudWatchLogsLogGroup StateMachineCloudWatchLogsLogGroup
An object describing a CloudWatch log group. For more information, see AWS::Logs::LogGroup in the AWS CloudFormation User Guide.
cloudWatchLogsLogGroup StateMachineCloudWatchLogsLogGroup
An object describing a CloudWatch log group. For more information, see AWS::Logs::LogGroup in the AWS CloudFormation User Guide.
cloudWatchLogsLogGroup StateMachineCloudWatchLogsLogGroup
An object describing a CloudWatch log group. For more information, see AWS::Logs::LogGroup in the AWS CloudFormation User Guide.
cloud_watch_logs_log_group StateMachineCloudWatchLogsLogGroup
An object describing a CloudWatch log group. For more information, see AWS::Logs::LogGroup in the AWS CloudFormation User Guide.
cloudWatchLogsLogGroup Property Map
An object describing a CloudWatch log group. For more information, see AWS::Logs::LogGroup in the AWS CloudFormation User Guide.

StateMachineLoggingConfiguration
, StateMachineLoggingConfigurationArgs

Destinations List<Pulumi.AwsNative.StepFunctions.Inputs.StateMachineLogDestination>
An array of objects that describes where your execution history events will be logged. Limited to size 1. Required, if your log level is not set to OFF .
IncludeExecutionData bool
Determines whether execution data is included in your log. When set to false , data is excluded.
Level Pulumi.AwsNative.StepFunctions.StateMachineLoggingConfigurationLevel
Defines which category of execution history events are logged.
Destinations []StateMachineLogDestination
An array of objects that describes where your execution history events will be logged. Limited to size 1. Required, if your log level is not set to OFF .
IncludeExecutionData bool
Determines whether execution data is included in your log. When set to false , data is excluded.
Level StateMachineLoggingConfigurationLevel
Defines which category of execution history events are logged.
destinations List<StateMachineLogDestination>
An array of objects that describes where your execution history events will be logged. Limited to size 1. Required, if your log level is not set to OFF .
includeExecutionData Boolean
Determines whether execution data is included in your log. When set to false , data is excluded.
level StateMachineLoggingConfigurationLevel
Defines which category of execution history events are logged.
destinations StateMachineLogDestination[]
An array of objects that describes where your execution history events will be logged. Limited to size 1. Required, if your log level is not set to OFF .
includeExecutionData boolean
Determines whether execution data is included in your log. When set to false , data is excluded.
level StateMachineLoggingConfigurationLevel
Defines which category of execution history events are logged.
destinations Sequence[StateMachineLogDestination]
An array of objects that describes where your execution history events will be logged. Limited to size 1. Required, if your log level is not set to OFF .
include_execution_data bool
Determines whether execution data is included in your log. When set to false , data is excluded.
level StateMachineLoggingConfigurationLevel
Defines which category of execution history events are logged.
destinations List<Property Map>
An array of objects that describes where your execution history events will be logged. Limited to size 1. Required, if your log level is not set to OFF .
includeExecutionData Boolean
Determines whether execution data is included in your log. When set to false , data is excluded.
level "ALL" | "ERROR" | "FATAL" | "OFF"
Defines which category of execution history events are logged.

StateMachineLoggingConfigurationLevel
, StateMachineLoggingConfigurationLevelArgs

All
ALL
Error
ERROR
Fatal
FATAL
Off
OFF
StateMachineLoggingConfigurationLevelAll
ALL
StateMachineLoggingConfigurationLevelError
ERROR
StateMachineLoggingConfigurationLevelFatal
FATAL
StateMachineLoggingConfigurationLevelOff
OFF
All
ALL
Error
ERROR
Fatal
FATAL
Off
OFF
All
ALL
Error
ERROR
Fatal
FATAL
Off
OFF
ALL
ALL
ERROR
ERROR
FATAL
FATAL
OFF
OFF
"ALL"
ALL
"ERROR"
ERROR
"FATAL"
FATAL
"OFF"
OFF

StateMachineS3Location
, StateMachineS3LocationArgs

Bucket This property is required. string
The name of the S3 bucket where the state machine definition JSON or YAML file is stored.
Key This property is required. string
The name of the state machine definition file (Amazon S3 object name).
Version string
For versioning-enabled buckets, a specific version of the state machine definition.
Bucket This property is required. string
The name of the S3 bucket where the state machine definition JSON or YAML file is stored.
Key This property is required. string
The name of the state machine definition file (Amazon S3 object name).
Version string
For versioning-enabled buckets, a specific version of the state machine definition.
bucket This property is required. String
The name of the S3 bucket where the state machine definition JSON or YAML file is stored.
key This property is required. String
The name of the state machine definition file (Amazon S3 object name).
version String
For versioning-enabled buckets, a specific version of the state machine definition.
bucket This property is required. string
The name of the S3 bucket where the state machine definition JSON or YAML file is stored.
key This property is required. string
The name of the state machine definition file (Amazon S3 object name).
version string
For versioning-enabled buckets, a specific version of the state machine definition.
bucket This property is required. str
The name of the S3 bucket where the state machine definition JSON or YAML file is stored.
key This property is required. str
The name of the state machine definition file (Amazon S3 object name).
version str
For versioning-enabled buckets, a specific version of the state machine definition.
bucket This property is required. String
The name of the S3 bucket where the state machine definition JSON or YAML file is stored.
key This property is required. String
The name of the state machine definition file (Amazon S3 object name).
version String
For versioning-enabled buckets, a specific version of the state machine definition.

StateMachineTracingConfiguration
, StateMachineTracingConfigurationArgs

Enabled bool
When set to true , X-Ray tracing is enabled.
Enabled bool
When set to true , X-Ray tracing is enabled.
enabled Boolean
When set to true , X-Ray tracing is enabled.
enabled boolean
When set to true , X-Ray tracing is enabled.
enabled bool
When set to true , X-Ray tracing is enabled.
enabled Boolean
When set to true , X-Ray tracing is enabled.

StateMachineType
, StateMachineTypeArgs

Standard
STANDARD
Express
EXPRESS
StateMachineTypeStandard
STANDARD
StateMachineTypeExpress
EXPRESS
Standard
STANDARD
Express
EXPRESS
Standard
STANDARD
Express
EXPRESS
STANDARD
STANDARD
EXPRESS
EXPRESS
"STANDARD"
STANDARD
"EXPRESS"
EXPRESS

Tag
, TagArgs

Key This property is required. string
The key name of the tag
Value This property is required. string
The value of the tag
Key This property is required. string
The key name of the tag
Value This property is required. string
The value of the tag
key This property is required. String
The key name of the tag
value This property is required. String
The value of the tag
key This property is required. string
The key name of the tag
value This property is required. string
The value of the tag
key This property is required. str
The key name of the tag
value This property is required. str
The value of the tag
key This property is required. String
The key name of the tag
value This property is required. String
The value of the tag

Package Details

Repository
AWS Native pulumi/pulumi-aws-native
License
Apache-2.0

We recommend new projects start with resources from the AWS provider.

AWS Cloud Control v1.27.0 published on Monday, Apr 14, 2025 by Pulumi