AWS CloudFormation
User Guide (API Version 2010-05-15)

AWS CloudFormation Resource Specification

The AWS CloudFormation resource specification is a JSON-formatted text file that defines the resources and properties that AWS CloudFormation supports. The document is a machine-readable, strongly typed specification that you can use to build tools for creating AWS CloudFormation templates. For example, you can use the specification to build auto completion and validation functionality for AWS CloudFormation templates in your IDE (integrated development environment).

The resource specification is organized as both a single file and as a series of files, where each file contains the definition of one resource type. The single and separated files contain identical information. Depending on the tool and your implementation, use the file or files that work for you.

To download the resource specification, see the following table.

Resource availability may vary by region. To check the availability of a resource in a given region, refer to the resource specification for that region.

Resource Specification

The following example shows the specification for an AWS Key Management Service key resource (AWS::KMS::Key). It shows the properties for the AWS::KMS::Key resource, which properties are required, the type of allowed value for each property, and their update behavior. For details about the specification, see Specification Format.

"AWS::KMS::Key": { "Attributes": { "Arn": { "PrimitiveType": "String" } }, "Documentation": "", "Properties": { "Description": { "Documentation": "", "PrimitiveType": "String", "Required": false, "UpdateType": "Mutable" }, "EnableKeyRotation": { "Documentation": "", "PrimitiveType": "Boolean", "Required": false, "UpdateType": "Mutable" }, "Enabled": { "Documentation": "", "PrimitiveType": "Boolean", "Required": false, "UpdateType": "Mutable" }, "KeyPolicy": { "Documentation": "", "PrimitiveType": "Json", "Required": true, "UpdateType": "Mutable" }, "KeyUsage": { "Documentation": "", "PrimitiveType": "String", "Required": false, "UpdateType": "Immutable" } } }