CloudFormation Compatible Resource Types
AWS::AutoScaling::AutoScalingGroup Available since 2014.1 (Icehouse)
Properties AvailabilityZones Not Implemented. Updates cause replacement. Required property. Cooldown Cooldown period, in seconds. Can be updated without replacement. Optional property. DesiredCapacity Desired initial number of instances. Can be updated without replacement. Optional property. HealthCheckGracePeriod Not implemented. HealthCheckType Not implemented. InstanceId The ID of an existing instance to use to create the Auto Scaling group. If specify this property, will create the group use an existing instance instead of a launch configuration. Updates cause replacement. Optional property. Value must be of type nova.server LaunchConfigurationName The reference to a LaunchConfiguration resource. Can be updated without replacement. Optional property. LoadBalancerNames List of LoadBalancer resources. Updates cause replacement. Optional property. MaxSize Maximum number of instances in the group. Can be updated without replacement. Required property. MinSize Minimum number of instances in the group. Can be updated without replacement. Required property. Tags Tags to attach to this group. Updates cause replacement. Optional property. List contents: * Updates cause replacement. Optional property. Map properties: Key Updates cause replacement. Required property. Value Updates cause replacement. Required property. VPCZoneIdentifier Use only with Neutron, to list the internal subnet to which the instance will be attached; needed only if multiple exist; list length must be exactly 1. Updates cause replacement. Optional property. List contents: * UUID of the internal subnet to which the instance will be attached. Updates cause replacement. Optional property.
Attributes InstanceList A comma-delimited list of server ip addresses. (Heat extension).
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::AutoScaling::AutoScalingGroup properties: AvailabilityZones: [Value, Value, ...] Cooldown: Number DesiredCapacity: Integer InstanceId: String LaunchConfigurationName: String LoadBalancerNames: [Value, Value, ...] MaxSize: Integer MinSize: Integer Tags: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...] VPCZoneIdentifier: [String, String, ...]
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::AutoScaling::AutoScalingGroup Properties: AvailabilityZones: [Value, Value, ...] Cooldown: Number DesiredCapacity: Integer InstanceId: String LaunchConfigurationName: String LoadBalancerNames: [Value, Value, ...] MaxSize: Integer MinSize: Integer Tags: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...] VPCZoneIdentifier: [String, String, ...]
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::AutoScaling::AutoScalingGroup", "Properties": { "AvailabilityZones": [Value, Value, ...], "Cooldown": Number, "DesiredCapacity": Integer, "InstanceId": String, "LaunchConfigurationName": String, "LoadBalancerNames": [Value, Value, ...], "MaxSize": Integer, "MinSize": Integer, "Tags": [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...], "VPCZoneIdentifier": [String, String, ...] } } } }
AWS::AutoScaling::LaunchConfiguration
Properties BlockDeviceMappings Block device mappings to attach to instance. Updates cause replacement. Optional property. List contents: * Updates cause replacement. Optional property. Map properties: DeviceName A device name where the volume will be attached in the system at /dev/device_name.e.g. vdb Updates cause replacement. Required property. Ebs The ebs volume to attach to the instance. Updates cause replacement. Optional property. Map properties: DeleteOnTermination Indicate whether the volume should be deleted when the instance is terminated. Updates cause replacement. Optional property, defaults to "True". Iops Not implemented. SnapshotId The ID of the snapshot to create a volume from. Updates cause replacement. Optional property. Value must be of type cinder.snapshot VolumeSize The size of the volume, in GB. Must be equal or greater than the size of the snapshot. It is safe to leave this blank and have the Compute service infer the size. Updates cause replacement. Optional property. VolumeType Not implemented. NoDevice Not implemented. VirtualName Not implemented. ImageId Glance image ID or name. Updates cause replacement. Optional property. Value must be of type glance.image InstanceId The ID of an existing instance you want to use to create the launch configuration. All properties are derived from the instance with the exception of BlockDeviceMapping. Updates cause replacement. Optional property. Value must be of type nova.server InstanceType Nova instance type (flavor). Updates cause replacement. Optional property. Value must be of type nova.flavor KernelId Not implemented. KeyName Optional Nova keypair name. Updates cause replacement. Optional property. Value must be of type nova.keypair NovaSchedulerHints Scheduler hints to pass to Nova (Heat extension). Updates cause replacement. Optional property. List contents: * Updates cause replacement. Optional property. Map properties: Key Updates cause replacement. Required property. Value Updates cause replacement. Required property. RamDiskId Not implemented. SecurityGroups Security group names to assign. Updates cause replacement. Optional property. UserData User data to pass to instance. Updates cause replacement. Optional property.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::AutoScaling::LaunchConfiguration properties: BlockDeviceMappings: [{"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean, "VolumeSize": String, "SnapshotId": String}}, {"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean, "VolumeSize": String, "SnapshotId": String}}, ...] ImageId: String InstanceId: String InstanceType: String KeyName: String NovaSchedulerHints: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...] SecurityGroups: [Value, Value, ...] UserData: String
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::AutoScaling::LaunchConfiguration Properties: BlockDeviceMappings: [{"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean, "VolumeSize": String, "SnapshotId": String}}, {"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean, "VolumeSize": String, "SnapshotId": String}}, ...] ImageId: String InstanceId: String InstanceType: String KeyName: String NovaSchedulerHints: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...] SecurityGroups: [Value, Value, ...] UserData: String
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::AutoScaling::LaunchConfiguration", "Properties": { "BlockDeviceMappings": [{"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean, "VolumeSize": String, "SnapshotId": String}}, {"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean, "VolumeSize": String, "SnapshotId": String}}, ...], "ImageId": String, "InstanceId": String, "InstanceType": String, "KeyName": String, "NovaSchedulerHints": [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...], "SecurityGroups": [Value, Value, ...], "UserData": String } } } }
AWS::AutoScaling::ScalingPolicy
Properties AdjustmentType Type of adjustment (absolute or percentage). Can be updated without replacement. Required property. Allowed values: ChangeInCapacity, ExactCapacity, PercentChangeInCapacity AutoScalingGroupName AutoScaling group name to apply policy to. Updates cause replacement. Required property. Cooldown Cooldown period, in seconds. Can be updated without replacement. Optional property. ScalingAdjustment Size of adjustment. Can be updated without replacement. Required property.
Attributes AlarmUrl A signed url to handle the alarm. (Heat extension).
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::AutoScaling::ScalingPolicy properties: AdjustmentType: String AutoScalingGroupName: String Cooldown: Number ScalingAdjustment: Number
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::AutoScaling::ScalingPolicy Properties: AdjustmentType: String AutoScalingGroupName: String Cooldown: Number ScalingAdjustment: Number
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::AutoScaling::ScalingPolicy", "Properties": { "AdjustmentType": String, "AutoScalingGroupName": String, "Cooldown": Number, "ScalingAdjustment": Number } } } }
AWS::CloudFormation::Stack A Resource representing a child stack to allow composition of templates.
Properties Parameters The set of parameters passed to this nested stack. Can be updated without replacement. Optional property. TemplateURL The URL of a template that specifies the stack to be created as a resource. Can be updated without replacement. Required property. TimeoutInMinutes The length of time, in minutes, to wait for the nested stack creation. Can be updated without replacement. Optional property.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::CloudFormation::Stack properties: Parameters: {...} TemplateURL: String TimeoutInMinutes: Number
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::CloudFormation::Stack Properties: Parameters: {...} TemplateURL: String TimeoutInMinutes: Number
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::CloudFormation::Stack", "Properties": { "Parameters": {...}, "TemplateURL": String, "TimeoutInMinutes": Number } } } }
AWS::CloudFormation::WaitCondition Available since 2014.1 (Icehouse)
Properties Count The number of success signals that must be received before the stack creation process continues. Can be updated without replacement. Optional property, defaults to "1". The value must be at least 1. Handle A reference to the wait condition handle used to signal this wait condition. Updates cause replacement. Required property. Timeout The number of seconds to wait for the correct number of signals to arrive. Updates cause replacement. Required property. The value must be in the range 1 to 43200.
Attributes Data JSON serialized dict containing data associated with wait condition signals sent to the handle.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::CloudFormation::WaitCondition properties: Count: Number Handle: String Timeout: Number
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::CloudFormation::WaitCondition Properties: Count: Number Handle: String Timeout: Number
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::CloudFormation::WaitCondition", "Properties": { "Count": Number, "Handle": String, "Timeout": Number } } } }
AWS::CloudFormation::WaitConditionHandle Available since 2014.1 (Icehouse) the main point of this class is to : have no dependencies (so the instance can reference it) generate a unique url (to be returned in the reference) then the cfn-signal will use this url to post to and WaitCondition will poll it to see if has been written to.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::CloudFormation::WaitConditionHandle
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::CloudFormation::WaitConditionHandle
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::CloudFormation::WaitConditionHandle" } } }
AWS::CloudWatch::Alarm
Properties AlarmActions Can be updated without replacement. Optional property. AlarmDescription Can be updated without replacement. Optional property. ComparisonOperator Can be updated without replacement. Required property. Allowed values: GreaterThanOrEqualToThreshold, GreaterThanThreshold, LessThanThreshold, LessThanOrEqualToThreshold Dimensions Can be updated without replacement. Optional property. EvaluationPeriods Can be updated without replacement. Required property. InsufficientDataActions Can be updated without replacement. Optional property. MetricName Can be updated without replacement. Required property. Namespace Can be updated without replacement. Optional property. OKActions Can be updated without replacement. Optional property. Period Can be updated without replacement. Required property. Statistic Can be updated without replacement. Required property. Allowed values: SampleCount, Average, Sum, Minimum, Maximum Threshold Can be updated without replacement. Required property. Units Can be updated without replacement. Optional property. Allowed values: Seconds, Microseconds, Milliseconds, Bytes, Kilobytes, Megabytes, Gigabytes, Terabytes, Bits, Kilobits, Megabits, Gigabits, Terabits, Percent, Count, Bytes/Second, Kilobytes/Second, Megabytes/Second, Gigabytes/Second, Terabytes/Second, Bits/Second, Kilobits/Second, Megabits/Second, Gigabits/Second, Terabits/Second, Count/Second, None
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::CloudWatch::Alarm properties: AlarmActions: [Value, Value, ...] AlarmDescription: String ComparisonOperator: String Dimensions: [Value, Value, ...] EvaluationPeriods: String InsufficientDataActions: [Value, Value, ...] MetricName: String Namespace: String OKActions: [Value, Value, ...] Period: String Statistic: String Threshold: String Units: String
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::CloudWatch::Alarm Properties: AlarmActions: [Value, Value, ...] AlarmDescription: String ComparisonOperator: String Dimensions: [Value, Value, ...] EvaluationPeriods: String InsufficientDataActions: [Value, Value, ...] MetricName: String Namespace: String OKActions: [Value, Value, ...] Period: String Statistic: String Threshold: String Units: String
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::CloudWatch::Alarm", "Properties": { "AlarmActions": [Value, Value, ...], "AlarmDescription": String, "ComparisonOperator": String, "Dimensions": [Value, Value, ...], "EvaluationPeriods": String, "InsufficientDataActions": [Value, Value, ...], "MetricName": String, "Namespace": String, "OKActions": [Value, Value, ...], "Period": String, "Statistic": String, "Threshold": String, "Units": String } } } }
AWS::EC2::EIP
Properties Domain Set to "vpc" to have IP address allocation associated to your VPC. Updates cause replacement. Optional property. Allowed values: vpc InstanceId Instance ID to associate with EIP. Can be updated without replacement. Optional property. Value must be of type nova.server
Attributes AllocationId ID that AWS assigns to represent the allocation of the address for use with Amazon VPC. Returned only for VPC elastic IP addresses.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::EC2::EIP properties: Domain: String InstanceId: String
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::EC2::EIP Properties: Domain: String InstanceId: String
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::EC2::EIP", "Properties": { "Domain": String, "InstanceId": String } } } }
AWS::EC2::EIPAssociation
Properties AllocationId Allocation ID for VPC EIP address. Can be updated without replacement. Optional property. EIP EIP address to associate with instance. Can be updated without replacement. Optional property. InstanceId Instance ID to associate with EIP specified by EIP property. Can be updated without replacement. Optional property. Value must be of type nova.server NetworkInterfaceId Network interface ID to associate with EIP. Can be updated without replacement. Optional property.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::EC2::EIPAssociation properties: AllocationId: String EIP: String InstanceId: String NetworkInterfaceId: String
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::EC2::EIPAssociation Properties: AllocationId: String EIP: String InstanceId: String NetworkInterfaceId: String
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::EC2::EIPAssociation", "Properties": { "AllocationId": String, "EIP": String, "InstanceId": String, "NetworkInterfaceId": String } } } }
AWS::EC2::Instance
Properties AvailabilityZone Availability zone to launch the instance in. Updates cause replacement. Optional property. BlockDeviceMappings Block device mappings to attach to instance. Updates cause replacement. Optional property. List contents: * Updates cause replacement. Optional property. Map properties: DeviceName A device name where the volume will be attached in the system at /dev/device_name.e.g. vdb Updates cause replacement. Required property. Ebs The ebs volume to attach to the instance. Updates cause replacement. Optional property. Map properties: DeleteOnTermination Indicate whether the volume should be deleted when the instance is terminated. Updates cause replacement. Optional property, defaults to "True". Iops Not implemented. SnapshotId The ID of the snapshot to create a volume from. Updates cause replacement. Optional property. Value must be of type cinder.snapshot VolumeSize The size of the volume, in GB. Must be equal or greater than the size of the snapshot. It is safe to leave this blank and have the Compute service infer the size. Updates cause replacement. Optional property. VolumeType Not implemented. NoDevice Not implemented. VirtualName Not implemented. DisableApiTermination Not implemented. ImageId Glance image ID or name. Updates cause replacement. Required property. Value must be of type glance.image InstanceType Nova instance type (flavor). Can be updated without replacement. Required property. Value must be of type nova.flavor KernelId Not implemented. KeyName Optional Nova keypair name. Updates cause replacement. Optional property. Value must be of type nova.keypair Monitoring Not implemented. NetworkInterfaces Network interfaces to associate with instance. Can be updated without replacement. Optional property. NovaSchedulerHints Scheduler hints to pass to Nova (Heat extension). Updates cause replacement. Optional property. List contents: * Updates cause replacement. Optional property. Map properties: Key Updates cause replacement. Required property. Value Updates cause replacement. Required property. PlacementGroupName Not implemented. PrivateIpAddress Not implemented. RamDiskId Not implemented. SecurityGroupIds Security group IDs to assign. Updates cause replacement. Optional property. SecurityGroups Security group names to assign. Updates cause replacement. Optional property. SourceDestCheck Not implemented. SubnetId Subnet ID to launch instance in. Can be updated without replacement. Optional property. Tags Tags to attach to instance. Can be updated without replacement. Optional property. List contents: * Updates cause replacement. Optional property. Map properties: Key Updates cause replacement. Required property. Value Updates cause replacement. Required property. Tenancy Not implemented. UserData User data to pass to instance. Updates cause replacement. Optional property. Volumes Volumes to attach to instance. Updates cause replacement. Optional property, defaults to "[]". List contents: * Updates cause replacement. Optional property. Map properties: Device The device where the volume is exposed on the instance. This assignment may not be honored and it is advised that the path /dev/disk/by-id/virtio-<VolumeId> be used instead. Updates cause replacement. Required property. VolumeId The ID of the volume to be attached. Updates cause replacement. Required property. Value must be of type cinder.volume
Attributes AvailabilityZone The Availability Zone where the specified instance is launched. PrivateDnsName Private DNS name of the specified instance. PrivateIp Private IP address of the specified instance. PublicDnsName Public DNS name of the specified instance. PublicIp Public IP address of the specified instance.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::EC2::Instance properties: AvailabilityZone: String BlockDeviceMappings: [{"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean, "VolumeSize": String, "SnapshotId": String}}, {"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean, "VolumeSize": String, "SnapshotId": String}}, ...] ImageId: String InstanceType: String KeyName: String NetworkInterfaces: [Value, Value, ...] NovaSchedulerHints: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...] SecurityGroupIds: [Value, Value, ...] SecurityGroups: [Value, Value, ...] SubnetId: String Tags: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...] UserData: String Volumes: [{"Device": String, "VolumeId": String}, {"Device": String, "VolumeId": String}, ...]
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::EC2::Instance Properties: AvailabilityZone: String BlockDeviceMappings: [{"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean, "VolumeSize": String, "SnapshotId": String}}, {"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean, "VolumeSize": String, "SnapshotId": String}}, ...] ImageId: String InstanceType: String KeyName: String NetworkInterfaces: [Value, Value, ...] NovaSchedulerHints: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...] SecurityGroupIds: [Value, Value, ...] SecurityGroups: [Value, Value, ...] SubnetId: String Tags: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...] UserData: String Volumes: [{"Device": String, "VolumeId": String}, {"Device": String, "VolumeId": String}, ...]
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::EC2::Instance", "Properties": { "AvailabilityZone": String, "BlockDeviceMappings": [{"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean, "VolumeSize": String, "SnapshotId": String}}, {"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean, "VolumeSize": String, "SnapshotId": String}}, ...], "ImageId": String, "InstanceType": String, "KeyName": String, "NetworkInterfaces": [Value, Value, ...], "NovaSchedulerHints": [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...], "SecurityGroupIds": [Value, Value, ...], "SecurityGroups": [Value, Value, ...], "SubnetId": String, "Tags": [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...], "UserData": String, "Volumes": [{"Device": String, "VolumeId": String}, {"Device": String, "VolumeId": String}, ...] } } } }
AWS::EC2::InternetGateway
Properties Tags Updates cause replacement. Optional property. List contents: * Not implemented.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::EC2::InternetGateway properties: Tags: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...]
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::EC2::InternetGateway Properties: Tags: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...]
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::EC2::InternetGateway", "Properties": { "Tags": [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...] } } } }
AWS::EC2::NetworkInterface
Properties Description Description for this interface. Updates cause replacement. Optional property. GroupSet List of security group IDs associated with this interface. Can be updated without replacement. Optional property. PrivateIpAddress Updates cause replacement. Optional property. SourceDestCheck Not implemented. SubnetId Subnet ID to associate with this interface. Updates cause replacement. Required property. Value must be of type neutron.subnet Tags Updates cause replacement. Optional property. List contents: * Not implemented.
Attributes PrivateIpAddress Private IP address of the network interface.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::EC2::NetworkInterface properties: Description: String GroupSet: [Value, Value, ...] PrivateIpAddress: String SubnetId: String Tags: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...]
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::EC2::NetworkInterface Properties: Description: String GroupSet: [Value, Value, ...] PrivateIpAddress: String SubnetId: String Tags: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...]
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::EC2::NetworkInterface", "Properties": { "Description": String, "GroupSet": [Value, Value, ...], "PrivateIpAddress": String, "SubnetId": String, "Tags": [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...] } } } }
AWS::EC2::RouteTable Available since 2014.1 (Icehouse)
Properties Tags Updates cause replacement. Optional property. List contents: * Not implemented. VpcId VPC ID for where the route table is created. Updates cause replacement. Required property.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::EC2::RouteTable properties: Tags: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...] VpcId: String
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::EC2::RouteTable Properties: Tags: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...] VpcId: String
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::EC2::RouteTable", "Properties": { "Tags": [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...], "VpcId": String } } } }
AWS::EC2::SecurityGroup
Properties GroupDescription Description of the security group. Updates cause replacement. Required property. SecurityGroupEgress Can be updated without replacement. Optional property. List contents: * List of security group egress rules. Updates cause replacement. Optional property. Map properties: CidrIp Updates cause replacement. Optional property. FromPort Updates cause replacement. Optional property. IpProtocol Updates cause replacement. Optional property. SourceSecurityGroupId Updates cause replacement. Optional property. SourceSecurityGroupName Updates cause replacement. Optional property. SourceSecurityGroupOwnerId Not implemented. ToPort Updates cause replacement. Optional property. SecurityGroupIngress Can be updated without replacement. Optional property. List contents: * List of security group ingress rules. Updates cause replacement. Optional property. Map properties: CidrIp Updates cause replacement. Optional property. FromPort Updates cause replacement. Optional property. IpProtocol Updates cause replacement. Optional property. SourceSecurityGroupId Updates cause replacement. Optional property. SourceSecurityGroupName Updates cause replacement. Optional property. SourceSecurityGroupOwnerId Not implemented. ToPort Updates cause replacement. Optional property. VpcId Physical ID of the VPC. Not implemented. Updates cause replacement. Optional property.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::EC2::SecurityGroup properties: GroupDescription: String SecurityGroupEgress: [{"CidrIp": String, "SourceSecurityGroupId": String, "FromPort": String, "SourceSecurityGroupName": String, "ToPort": String, "IpProtocol": String}, {"CidrIp": String, "SourceSecurityGroupId": String, "FromPort": String, "SourceSecurityGroupName": String, "ToPort": String, "IpProtocol": String}, ...] SecurityGroupIngress: [{"CidrIp": String, "SourceSecurityGroupId": String, "FromPort": String, "SourceSecurityGroupName": String, "ToPort": String, "IpProtocol": String}, {"CidrIp": String, "SourceSecurityGroupId": String, "FromPort": String, "SourceSecurityGroupName": String, "ToPort": String, "IpProtocol": String}, ...] VpcId: String
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: String SecurityGroupEgress: [{"CidrIp": String, "SourceSecurityGroupId": String, "FromPort": String, "SourceSecurityGroupName": String, "ToPort": String, "IpProtocol": String}, {"CidrIp": String, "SourceSecurityGroupId": String, "FromPort": String, "SourceSecurityGroupName": String, "ToPort": String, "IpProtocol": String}, ...] SecurityGroupIngress: [{"CidrIp": String, "SourceSecurityGroupId": String, "FromPort": String, "SourceSecurityGroupName": String, "ToPort": String, "IpProtocol": String}, {"CidrIp": String, "SourceSecurityGroupId": String, "FromPort": String, "SourceSecurityGroupName": String, "ToPort": String, "IpProtocol": String}, ...] VpcId: String
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "GroupDescription": String, "SecurityGroupEgress": [{"CidrIp": String, "SourceSecurityGroupId": String, "FromPort": String, "SourceSecurityGroupName": String, "ToPort": String, "IpProtocol": String}, {"CidrIp": String, "SourceSecurityGroupId": String, "FromPort": String, "SourceSecurityGroupName": String, "ToPort": String, "IpProtocol": String}, ...], "SecurityGroupIngress": [{"CidrIp": String, "SourceSecurityGroupId": String, "FromPort": String, "SourceSecurityGroupName": String, "ToPort": String, "IpProtocol": String}, {"CidrIp": String, "SourceSecurityGroupId": String, "FromPort": String, "SourceSecurityGroupName": String, "ToPort": String, "IpProtocol": String}, ...], "VpcId": String } } } }
AWS::EC2::Subnet
Properties AvailabilityZone Availability zone in which you want the subnet. Updates cause replacement. Optional property. CidrBlock CIDR block to apply to subnet. Updates cause replacement. Required property. Tags Updates cause replacement. Optional property. List contents: * Not implemented. VpcId Ref structure that contains the ID of the VPC on which you want to create the subnet. Updates cause replacement. Required property.
Attributes AvailabilityZone Availability Zone of the subnet.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::EC2::Subnet properties: AvailabilityZone: String CidrBlock: String Tags: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...] VpcId: String
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::EC2::Subnet Properties: AvailabilityZone: String CidrBlock: String Tags: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...] VpcId: String
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::EC2::Subnet", "Properties": { "AvailabilityZone": String, "CidrBlock": String, "Tags": [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...], "VpcId": String } } } }
AWS::EC2::SubnetRouteTableAssociation
Properties RouteTableId Route table ID. Updates cause replacement. Required property. SubnetId Subnet ID. Updates cause replacement. Required property. Value must be of type neutron.subnet
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::EC2::SubnetRouteTableAssociation properties: RouteTableId: String SubnetId: String
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::EC2::SubnetRouteTableAssociation Properties: RouteTableId: String SubnetId: String
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::EC2::SubnetRouteTableAssociation", "Properties": { "RouteTableId": String, "SubnetId": String } } } }
AWS::EC2::VPC
Properties CidrBlock CIDR block to apply to the VPC. Updates cause replacement. Optional property. InstanceTenancy Not implemented. Tags Updates cause replacement. Optional property. List contents: * Not implemented.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::EC2::VPC properties: CidrBlock: String Tags: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...]
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::EC2::VPC Properties: CidrBlock: String Tags: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...]
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::EC2::VPC", "Properties": { "CidrBlock": String, "Tags": [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...] } } } }
AWS::EC2::VPCGatewayAttachment
Properties InternetGatewayId ID of the InternetGateway. Updates cause replacement. Optional property. VpcId VPC ID for this gateway association. Updates cause replacement. Required property. VpnGatewayId Not implemented.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::EC2::VPCGatewayAttachment properties: InternetGatewayId: String VpcId: String
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::EC2::VPCGatewayAttachment Properties: InternetGatewayId: String VpcId: String
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::EC2::VPCGatewayAttachment", "Properties": { "InternetGatewayId": String, "VpcId": String } } } }
AWS::EC2::Volume
Properties AvailabilityZone The availability zone in which the volume will be created. Updates are not supported. Resource update will fail on any attempt to update this property. Required property. Size The size of the volume in GB. Updates are not supported. Resource update will fail on any attempt to update this property. Optional property. The value must be at least 1. SnapshotId If specified, the backup used as the source to create the volume. Updates are not supported. Resource update will fail on any attempt to update this property. Optional property. Tags The list of tags to associate with the volume. Updates are not supported. Resource update will fail on any attempt to update this property. Optional property. List contents: * Updates cause replacement. Optional property. Map properties: Key Updates cause replacement. Required property. Value Updates cause replacement. Required property.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::EC2::Volume properties: AvailabilityZone: String Size: Integer SnapshotId: String Tags: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...]
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::EC2::Volume Properties: AvailabilityZone: String Size: Integer SnapshotId: String Tags: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...]
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::EC2::Volume", "Properties": { "AvailabilityZone": String, "Size": Integer, "SnapshotId": String, "Tags": [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...] } } } }
AWS::EC2::VolumeAttachment
Properties Device The device where the volume is exposed on the instance. This assignment may not be honored and it is advised that the path /dev/disk/by-id/virtio-<VolumeId> be used instead. Updates are not supported. Resource update will fail on any attempt to update this property. Required property. Value must match pattern: /dev/vd[b-z] InstanceId The ID of the instance to which the volume attaches. Updates are not supported. Resource update will fail on any attempt to update this property. Required property. Value must be of type nova.server VolumeId The ID of the volume to be attached. Updates are not supported. Resource update will fail on any attempt to update this property. Required property. Value must be of type cinder.volume
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::EC2::VolumeAttachment properties: Device: String InstanceId: String VolumeId: String
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::EC2::VolumeAttachment Properties: Device: String InstanceId: String VolumeId: String
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::EC2::VolumeAttachment", "Properties": { "Device": String, "InstanceId": String, "VolumeId": String } } } }
AWS::ElasticLoadBalancing::LoadBalancer Implements a HAProxy-bearing instance as a nested stack. The template for the nested stack can be redefined with loadbalancer_template option in heat.conf. Generally the image used for the instance must have the following packages installed or available for installation at runtime: - heat-cfntools and its dependencies like python-psutil - cronie - socat - haproxy Current default builtin template uses Fedora 21 x86_64 base cloud image (https://getfedora.org/cloud/download/) and apart from installing packages goes through some hoops around SELinux due to pecularities of heat-cfntools.
Properties AppCookieStickinessPolicy Not implemented. AvailabilityZones The Availability Zones in which to create the load balancer. Updates cause replacement. Required property. HealthCheck An application health check for the instances. Updates cause replacement. Optional property. Map properties: HealthyThreshold The number of consecutive health probe successes required before moving the instance to the healthy state. Updates cause replacement. Required property. Interval The approximate interval, in seconds, between health checks of an individual instance. Updates cause replacement. Required property. Target The port being checked. Updates cause replacement. Required property. Timeout Health probe timeout, in seconds. Updates cause replacement. Required property. UnhealthyThreshold The number of consecutive health probe failures required before moving the instance to the unhealthy state Updates cause replacement. Required property. Instances The list of instance IDs load balanced. Can be updated without replacement. Optional property. LBCookieStickinessPolicy Not implemented. Listeners One or more listeners for this load balancer. Updates cause replacement. Required property. List contents: * Updates cause replacement. Optional property. Map properties: InstancePort TCP port on which the instance server is listening. Updates cause replacement. Required property. LoadBalancerPort The external load balancer port number. Updates cause replacement. Required property. PolicyNames Not implemented. Protocol The load balancer transport protocol to use. Updates cause replacement. Required property. Allowed values: TCP, HTTP SSLCertificateId Not implemented. SecurityGroups Not implemented. Subnets Not implemented.
Attributes CanonicalHostedZoneName The name of the hosted zone that is associated with the LoadBalancer. CanonicalHostedZoneNameID The ID of the hosted zone name that is associated with the LoadBalancer. DNSName The DNS name for the LoadBalancer. SourceSecurityGroup.GroupName The security group that you can use as part of your inbound rules for your LoadBalancer's back-end instances. SourceSecurityGroup.OwnerAlias Owner of the source security group.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::ElasticLoadBalancing::LoadBalancer properties: AvailabilityZones: [Value, Value, ...] HealthCheck: {"HealthyThreshold": Number, "Interval": Number, "Target": String, "Timeout": Number, "UnhealthyThreshold": Number} Instances: [Value, Value, ...] Listeners: [{"InstancePort": Number, "LoadBalancerPort": Number, "Protocol": String}, {"InstancePort": Number, "LoadBalancerPort": Number, "Protocol": String}, ...]
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::ElasticLoadBalancing::LoadBalancer Properties: AvailabilityZones: [Value, Value, ...] HealthCheck: {"HealthyThreshold": Number, "Interval": Number, "Target": String, "Timeout": Number, "UnhealthyThreshold": Number} Instances: [Value, Value, ...] Listeners: [{"InstancePort": Number, "LoadBalancerPort": Number, "Protocol": String}, {"InstancePort": Number, "LoadBalancerPort": Number, "Protocol": String}, ...]
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::ElasticLoadBalancing::LoadBalancer", "Properties": { "AvailabilityZones": [Value, Value, ...], "HealthCheck": {"HealthyThreshold": Number, "Interval": Number, "Target": String, "Timeout": Number, "UnhealthyThreshold": Number}, "Instances": [Value, Value, ...], "Listeners": [{"InstancePort": Number, "LoadBalancerPort": Number, "Protocol": String}, {"InstancePort": Number, "LoadBalancerPort": Number, "Protocol": String}, ...] } } } }
AWS::IAM::AccessKey
Properties Serial Not implemented. Status Not implemented. UserName The name of the user that the new key will belong to. Updates cause replacement. Required property.
Attributes SecretAccessKey Keypair secret key. UserName Username associated with the AccessKey.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::IAM::AccessKey properties: UserName: String
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::IAM::AccessKey Properties: UserName: String
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::IAM::AccessKey", "Properties": { "UserName": String } } } }
AWS::IAM::User
Properties Groups Not Implemented. Updates cause replacement. Optional property. LoginProfile A login profile for the user. Updates cause replacement. Optional property. Map properties: Password Updates cause replacement. Optional property. Path Not Implemented. Updates cause replacement. Optional property. Policies Access policies to apply to the user. Updates cause replacement. Optional property.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::IAM::User properties: Groups: [Value, Value, ...] LoginProfile: {"Password": String} Path: String Policies: [Value, Value, ...]
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::IAM::User Properties: Groups: [Value, Value, ...] LoginProfile: {"Password": String} Path: String Policies: [Value, Value, ...]
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::IAM::User", "Properties": { "Groups": [Value, Value, ...], "LoginProfile": {"Password": String}, "Path": String, "Policies": [Value, Value, ...] } } } }
AWS::RDS::DBInstance
Properties AllocatedStorage Can be updated without replacement. Required property. DBInstanceClass Can be updated without replacement. Required property. DBName Can be updated without replacement. Required property. DBSecurityGroups Can be updated without replacement. Optional property. Engine Can be updated without replacement. Required property. Allowed values: MySQL KeyName Can be updated without replacement. Optional property. MasterUserPassword Can be updated without replacement. Required property. MasterUsername Can be updated without replacement. Required property. Port Can be updated without replacement. Optional property.
Attributes Endpoint.Address ??? Endpoint.Port ???
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::RDS::DBInstance properties: AllocatedStorage: String DBInstanceClass: String DBName: String DBSecurityGroups: [Value, Value, ...] Engine: String KeyName: String MasterUserPassword: String MasterUsername: String Port: String
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::RDS::DBInstance Properties: AllocatedStorage: String DBInstanceClass: String DBName: String DBSecurityGroups: [Value, Value, ...] Engine: String KeyName: String MasterUserPassword: String MasterUsername: String Port: String
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::RDS::DBInstance", "Properties": { "AllocatedStorage": String, "DBInstanceClass": String, "DBName": String, "DBSecurityGroups": [Value, Value, ...], "Engine": String, "KeyName": String, "MasterUserPassword": String, "MasterUsername": String, "Port": String } } } }
AWS::S3::Bucket
Properties AccessControl A predefined access control list (ACL) that grants permissions on the bucket. Updates cause replacement. Optional property. Allowed values: Private, PublicRead, PublicReadWrite, AuthenticatedRead, BucketOwnerRead, BucketOwnerFullControl Tags Tags to attach to the bucket. Updates cause replacement. Optional property. List contents: * Updates cause replacement. Optional property. Map properties: Key The tag key name. Updates cause replacement. Required property. Value The tag value. Updates cause replacement. Required property. WebsiteConfiguration Information used to configure the bucket as a static website. Updates cause replacement. Optional property. Map properties: ErrorDocument The name of the error document. Updates cause replacement. Optional property. IndexDocument The name of the index document. Updates cause replacement. Optional property.
Attributes DomainName The DNS name of the specified bucket. WebsiteURL The website endpoint for the specified bucket.
HOT Syntax heat_template_version: 2013-05-23 ... resources: ... the_resource: type: AWS::S3::Bucket properties: AccessControl: String Tags: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...] WebsiteConfiguration: {"IndexDocument": String, "ErrorDocument": String}
YAML Syntax HeatTemplateFormatVersion: '2012-12-12' ... Resources: ... TheResource: Type: AWS::S3::Bucket Properties: AccessControl: String Tags: [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...] WebsiteConfiguration: {"IndexDocument": String, "ErrorDocument": String}
JSON Syntax { "AWSTemplateFormatVersion" : "2010-09-09", ... "Resources" : { "TheResource": { "Type": "AWS::S3::Bucket", "Properties": { "AccessControl": String, "Tags": [{"Value": String, "Key": String}, {"Value": String, "Key": String}, ...], "WebsiteConfiguration": {"IndexDocument": String, "ErrorDocument": String} } } } }