{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://schemas.api.aws/cloudformation/stack.json", "title": "AWS CloudFormation Stack", "description": "Represents an AWS CloudFormation stack, which is a collection of AWS resources that you can manage as a single unit. A stack is created from a CloudFormation template and provisions the defined resources in the correct order based on dependency relationships.", "type": "object", "required": [ "StackName", "CreationTime", "StackStatus" ], "properties": { "StackId": { "type": "string", "description": "Unique identifier of the stack, formatted as an Amazon Resource Name (ARN).", "examples": [ "arn:aws:cloudformation:us-east-1:123456789012:stack/MyStack/aaf549a0-a413-11df-adb3-5081b3858e83" ] }, "StackName": { "type": "string", "description": "The name associated with the stack. Must be unique within a region.", "maxLength": 128, "pattern": "^[a-zA-Z][-a-zA-Z0-9]*$", "examples": [ "MyProductionStack" ] }, "ChangeSetId": { "type": "string", "description": "The unique ID of the change set associated with this stack." }, "Description": { "type": ["string", "null"], "description": "A user-defined description associated with the stack.", "maxLength": 1024 }, "CreationTime": { "type": "string", "format": "date-time", "description": "The time at which the stack was created." }, "DeletionTime": { "type": ["string", "null"], "format": "date-time", "description": "The time the stack was deleted." }, "LastUpdatedTime": { "type": ["string", "null"], "format": "date-time", "description": "The time the stack was last updated. This field is only returned if the stack has been updated at least once." }, "StackStatus": { "type": "string", "description": "Current status of the stack.", "enum": [ "CREATE_IN_PROGRESS", "CREATE_FAILED", "CREATE_COMPLETE", "ROLLBACK_IN_PROGRESS", "ROLLBACK_FAILED", "ROLLBACK_COMPLETE", "DELETE_IN_PROGRESS", "DELETE_FAILED", "DELETE_COMPLETE", "UPDATE_IN_PROGRESS", "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS", "UPDATE_COMPLETE", "UPDATE_FAILED", "UPDATE_ROLLBACK_IN_PROGRESS", "UPDATE_ROLLBACK_FAILED", "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS", "UPDATE_ROLLBACK_COMPLETE", "REVIEW_IN_PROGRESS", "IMPORT_IN_PROGRESS", "IMPORT_COMPLETE", "IMPORT_ROLLBACK_IN_PROGRESS", "IMPORT_ROLLBACK_FAILED", "IMPORT_ROLLBACK_COMPLETE" ] }, "StackStatusReason": { "type": ["string", "null"], "description": "Success or failure message associated with the stack status." }, "DisableRollback": { "type": "boolean", "description": "Boolean to enable or disable rollback on stack creation failures.", "default": false }, "NotificationARNs": { "type": "array", "description": "Amazon SNS topic ARNs to which stack related events are published.", "items": { "type": "string" }, "maxItems": 5 }, "TimeoutInMinutes": { "type": ["integer", "null"], "description": "The amount of time within which stack creation should complete.", "minimum": 1 }, "Capabilities": { "type": "array", "description": "The capabilities allowed in the stack.", "items": { "type": "string", "enum": [ "CAPABILITY_IAM", "CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND" ] } }, "Outputs": { "type": "array", "description": "A list of output structures containing stack outputs.", "items": { "$ref": "#/$defs/Output" } }, "RoleARN": { "type": ["string", "null"], "description": "The Amazon Resource Name (ARN) of an IAM role that CloudFormation assumes to create the stack.", "minLength": 20, "maxLength": 2048 }, "Tags": { "type": "array", "description": "A list of tags associated with this stack.", "items": { "$ref": "#/$defs/Tag" }, "maxItems": 50 }, "EnableTerminationProtection": { "type": "boolean", "description": "Whether termination protection is enabled for the stack.", "default": false }, "Parameters": { "type": "array", "description": "A list of parameter structures.", "items": { "$ref": "#/$defs/Parameter" } }, "RollbackConfiguration": { "$ref": "#/$defs/RollbackConfiguration" }, "ParentId": { "type": ["string", "null"], "description": "For nested stacks, the stack ID of the direct parent of this stack." }, "RootId": { "type": ["string", "null"], "description": "For nested stacks, the stack ID of the top-level stack to which this stack belongs." }, "DriftInformation": { "$ref": "#/$defs/StackDriftInformation" }, "DeletionMode": { "type": "string", "description": "Specifies the deletion mode for the stack.", "enum": [ "STANDARD", "FORCE_DELETE_STACK" ] }, "DetailedStatus": { "type": ["string", "null"], "description": "The detailed status of the resource or stack.", "enum": [ "CONFIGURATION_COMPLETE", "VALIDATION_FAILED", null ] }, "RetainExceptOnCreate": { "type": "boolean", "description": "When true, newly created resources are deleted when the operation rolls back.", "default": false } }, "$defs": { "Output": { "type": "object", "description": "An output value from a CloudFormation stack.", "properties": { "OutputKey": { "type": "string", "description": "The key associated with the output." }, "OutputValue": { "type": "string", "description": "The value associated with the output." }, "Description": { "type": ["string", "null"], "description": "User-defined description of the output." }, "ExportName": { "type": ["string", "null"], "description": "The name of the export associated with this output for cross-stack references." } } }, "Tag": { "type": "object", "description": "A key-value pair used to tag the stack.", "required": [ "Key", "Value" ], "properties": { "Key": { "type": "string", "description": "The tag key.", "minLength": 1, "maxLength": 128 }, "Value": { "type": "string", "description": "The tag value.", "minLength": 0, "maxLength": 256 } } }, "Parameter": { "type": "object", "description": "An input parameter for the stack.", "properties": { "ParameterKey": { "type": "string", "description": "The key associated with the parameter." }, "ParameterValue": { "type": "string", "description": "The input value associated with the parameter." }, "UsePreviousValue": { "type": "boolean", "description": "During a stack update, use the existing parameter value." }, "ResolvedValue": { "type": ["string", "null"], "description": "Read-only. The value that corresponds to an SSM parameter key." } } }, "RollbackConfiguration": { "type": "object", "description": "Monitoring and rollback configuration for the stack.", "properties": { "RollbackTriggers": { "type": "array", "description": "The triggers to monitor during stack creation or update actions.", "items": { "type": "object", "required": [ "Arn", "Type" ], "properties": { "Arn": { "type": "string", "description": "The ARN of the rollback trigger (must be a CloudWatch alarm)." }, "Type": { "type": "string", "description": "The resource type of the rollback trigger." } } }, "maxItems": 5 }, "MonitoringTimeInMinutes": { "type": "integer", "description": "The amount of time in minutes to monitor after stack deployment.", "minimum": 0, "maximum": 180 } } }, "StackDriftInformation": { "type": "object", "description": "Contains information about whether the stack's actual configuration differs from its expected configuration.", "required": [ "StackDriftStatus" ], "properties": { "StackDriftStatus": { "type": "string", "description": "Status of the stack's actual configuration compared to its expected template configuration.", "enum": [ "DRIFTED", "IN_SYNC", "UNKNOWN", "NOT_CHECKED" ] }, "LastCheckTimestamp": { "type": ["string", "null"], "format": "date-time", "description": "Most recent time when a drift detection operation was initiated." } } } } }