Amazon State Language

A definition using Amazon state language that describes your deployment.

In addition to the Amazon state language types, the deployment plan can also use the Attini types.

This definition converts to a AWS State Machine Definition.

DeploymentPlan:
  StartAt: StateName
  States:
    StateName:
      Type: String
      # Optional configuration based on State Type
      Next: String
      End: Boolean

StartAt

Type: String

The step that the deployment plan should start with. This is the same as the StartAt property in the Amazon States Language

Required: Yes

States

Type: Map<Sting,Map>

This is the same as the States property in the Amazon States Language after the Attini-specific resources (ex AttiniCfn) have been converted into a valid Amazon States Language definition.

Make sure that the actions that you specify here are allowed by the deployment plan Role.

This map has limited support for CloudFormation functions.

  • Simple functions like Ref, Fn::GetAtt and Fn::Sub work like normal CloudFormation.
  • Complex functions like Fn::Join will need to use the DefinitionSubstitutions property.
  • Conditions are not supported. You can often work around this limitation using logic in your definition, example by using the Choice state.

Required: Yes

Type

Type: String

Any valid State type like Attini types, StateMachine Task, or other StateMachine States like Pass, Wait, Succeed, Fail, Choice or Parallel.

Next

Type: String

Name of the next step.

Required: Yes, if End is not configured

End

Type: Boolean

Marks the end of a branch execution.

Required: Yes, if End is not configured

Example
DeploymentPlan:
  StartAt: ManualApproval
  States:
    ManualApproval:
      Type: AttiniManualApproval
      Next: MyDatabaseStack

    MyDatabaseStack:
      Type: AttiniCfn
      Properties:
        StackName: database
        Template: /database.yaml
      End: True