{
  "description": "StateMachine is the Schema for the StateMachines API",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "StateMachineSpec defines the desired state of StateMachine.",
      "properties": {
        "definition": {
          "description": "The Amazon States Language definition of the state machine. See Amazon States\nLanguage (https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html).",
          "type": "string"
        },
        "loggingConfiguration": {
          "description": "Defines what execution history events are logged and where they are logged.\n\nBy default, the level is set to OFF. For more information see Log Levels\n(https://docs.aws.amazon.com/step-functions/latest/dg/cloudwatch-log-level.html)\nin the Step Functions User Guide.",
          "properties": {
            "destinations": {
              "items": {
                "properties": {
                  "cloudWatchLogsLogGroup": {
                    "properties": {
                      "logGroupARN": {
                        "type": "string"
                      }
                    },
                    "type": "object",
                    "additionalProperties": false
                  }
                },
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "includeExecutionData": {
              "type": "boolean"
            },
            "level": {
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "name": {
          "description": "The name of the state machine.\n\nA name must not contain:\n\n  - white space",
          "type": "string",
          "x-kubernetes-validations": [
            {
              "message": "Value is immutable once set",
              "rule": "self == oldSelf"
            }
          ]
        },
        "roleARN": {
          "description": "The Amazon Resource Name (ARN) of the IAM role to use for this state machine.",
          "type": "string"
        },
        "tags": {
          "description": "Tags to be added when creating a state machine.\n\nAn array of key-value pairs. For more information, see Using Cost Allocation\nTags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)\nin the Amazon Web Services Billing and Cost Management User Guide, and Controlling\nAccess Using IAM Tags (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html).\n\nTags may only contain Unicode letters, digits, white space, or these symbols:\n_ . : / = + - @.",
          "items": {
            "description": "Tags are key-value pairs that can be associated with Step Functions state\nmachines and activities.\n\nAn array of key-value pairs. For more information, see Using Cost Allocation\nTags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)\nin the Amazon Web Services Billing and Cost Management User Guide, and Controlling\nAccess Using IAM Tags (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_iam-tags.html).\n\nTags may only contain Unicode letters, digits, white space, or these symbols:\n_ . : / = + - @.",
            "properties": {
              "key": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "tracingConfiguration": {
          "description": "Selects whether X-Ray tracing is enabled.",
          "properties": {
            "enabled": {
              "type": "boolean"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "type_": {
          "description": "Determines whether a Standard or Express state machine is created. The default\nis STANDARD. You cannot update the type of a state machine once it has been\ncreated.",
          "type": "string"
        }
      },
      "required": [
        "definition",
        "name",
        "roleARN"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "StateMachineStatus defines the observed state of StateMachine",
      "properties": {
        "ackResourceMetadata": {
          "description": "All CRs managed by ACK have a common `Status.ACKResourceMetadata` member\nthat is used to contain resource sync state, account ownership,\nconstructed ARN for the resource",
          "properties": {
            "arn": {
              "description": "ARN is the Amazon Resource Name for the resource. This is a\nglobally-unique identifier and is set only by the ACK service controller\nonce the controller has orchestrated the creation of the resource OR\nwhen it has verified that an \"adopted\" resource (a resource where the\nARN annotation was set by the Kubernetes user on the CR) exists and\nmatches the supplied CR's Spec field values.\nhttps://github.com/aws/aws-controllers-k8s/issues/270",
              "type": "string"
            },
            "ownerAccountID": {
              "description": "OwnerAccountID is the AWS Account ID of the account that owns the\nbackend AWS service API resource.",
              "type": "string"
            },
            "region": {
              "description": "Region is the AWS region in which the resource exists or will exist.",
              "type": "string"
            }
          },
          "required": [
            "ownerAccountID",
            "region"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "conditions": {
          "description": "All CRs managed by ACK have a common `Status.Conditions` member that\ncontains a collection of `ackv1alpha1.Condition` objects that describe\nthe various terminal states of the CR and its backend AWS service API\nresource",
          "items": {
            "description": "Condition is the common struct used by all CRDs managed by ACK service\ncontrollers to indicate terminal states  of the CR and its backend AWS\nservice API resource",
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A human readable message indicating details about the transition.",
                "type": "string"
              },
              "reason": {
                "description": "The reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition, one of True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type is the type of the Condition",
                "type": "string"
              }
            },
            "required": [
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "creationDate": {
          "description": "The date the state machine is created.",
          "format": "date-time",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
