Sie sind auf Seite 1von 212

docs.openstack.

org

Heat Orchestration Template reference

December 11, 2014

Heat Orchestration Template reference


current (2014-12-11)

Copyright 2014 OpenStack Foundation Some rights reserved.


This guide documents the Heat Orchestration Template syntax.
Except where otherwise noted, this document is licensed under
Creative Commons Attribution 3.0 License.
http://creativecommons.org/licenses/by/3.0/legalcode

ii

current

Heat Orchestration Template reference

December 11, 2014

current

Table of Contents
HOT reference overview ................................................................................................. vi
Conventions ............................................................................................................ vi
1. OpenStack Resource Types .......................................................................................... 1
OS::Ceilometer::Alarm ............................................................................................. 2
OS::Ceilometer::CombinationAlarm .......................................................................... 6
OS::Cinder::Volume ................................................................................................. 8
OS::Cinder::VolumeAttachment ............................................................................. 11
OS::Glance::Image ................................................................................................. 12
OS::Heat::AccessPolicy ............................................................................................ 15
OS::Heat::AutoScalingGroup .................................................................................. 16
OS::Heat::CWLiteAlarm .......................................................................................... 18
OS::Heat::CloudConfig ........................................................................................... 21
OS::Heat::HARestarter ........................................................................................... 23
OS::Heat::InstanceGroup ........................................................................................ 24
OS::Heat::MultipartMime ....................................................................................... 25
OS::Heat::RandomString ........................................................................................ 27
OS::Heat::ResourceGroup ....................................................................................... 30
OS::Heat::ScalingPolicy ........................................................................................... 34
OS::Heat::SoftwareComponent .............................................................................. 35
OS::Heat::SoftwareConfig ...................................................................................... 39
OS::Heat::SoftwareDeployment ............................................................................. 43
OS::Heat::SoftwareDeployments ............................................................................ 45
OS::Heat::StructuredConfig .................................................................................... 48
OS::Heat::StructuredDeployment ........................................................................... 51
OS::Heat::StructuredDeployments .......................................................................... 53
OS::Heat::SwiftSignal ............................................................................................. 55
OS::Heat::SwiftSignalHandle .................................................................................. 57
OS::Heat::UpdateWaitConditionHandle .................................................................. 58
OS::Heat::WaitCondition ........................................................................................ 59
OS::Heat::WaitConditionHandle ............................................................................. 60
OS::Neutron::Firewall ............................................................................................. 61
OS::Neutron::FirewallPolicy .................................................................................... 63
OS::Neutron::FirewallRule ...................................................................................... 64
OS::Neutron::FloatingIP ......................................................................................... 68
OS::Neutron::FloatingIPAssociation ........................................................................ 69
OS::Neutron::HealthMonitor .................................................................................. 71
OS::Neutron::IKEPolicy ........................................................................................... 73
OS::Neutron::IPsecPolicy ........................................................................................ 76
OS::Neutron::IPsecSiteConnection .......................................................................... 79
OS::Neutron::LoadBalancer .................................................................................... 83
OS::Neutron::MeteringLabel .................................................................................. 84
OS::Neutron::MeteringRule .................................................................................... 85
OS::Neutron::Net ................................................................................................... 87
OS::Neutron::NetworkGateway .............................................................................. 89
OS::Neutron::Pool .................................................................................................. 92
OS::Neutron::PoolMember ..................................................................................... 96
OS::Neutron::Port .................................................................................................. 98
OS::Neutron::ProviderNet .................................................................................... 102

iii

Heat Orchestration Template reference

December 11, 2014

current

OS::Neutron::Router ............................................................................................
OS::Neutron::RouterGateway ...............................................................................
OS::Neutron::RouterInterface ...............................................................................
OS::Neutron::SecurityGroup .................................................................................
OS::Neutron::Subnet ............................................................................................
OS::Neutron::VPNService ......................................................................................
OS::Nova::FloatingIP ............................................................................................
OS::Nova::FloatingIPAssociation ...........................................................................
OS::Nova::KeyPair ................................................................................................
OS::Nova::Server ..................................................................................................
OS::Nova::ServerGroup ........................................................................................
OS::Sahara::Cluster ..............................................................................................
OS::Sahara::ClusterTemplate ................................................................................
OS::Sahara::NodeGroupTemplate .........................................................................
OS::Swift::Container .............................................................................................
OS::Trove::Instance ..............................................................................................
2. CloudFormation Compatible Resource Types ............................................................
AWS::AutoScaling::AutoScalingGroup ..................................................................
AWS::AutoScaling::LaunchConfiguration ..............................................................
AWS::AutoScaling::ScalingPolicy ...........................................................................
AWS::CloudFormation::Stack ................................................................................
AWS::CloudFormation::WaitCondition .................................................................
AWS::CloudFormation::WaitConditionHandle .......................................................
AWS::CloudWatch::Alarm ....................................................................................
AWS::EC2::EIP ......................................................................................................
AWS::EC2::EIPAssociation .....................................................................................
AWS::EC2::Instance ..............................................................................................
AWS::EC2::InternetGateway .................................................................................
AWS::EC2::NetworkInterface ...............................................................................
AWS::EC2::RouteTable .........................................................................................
AWS::EC2::SecurityGroup .....................................................................................
AWS::EC2::Subnet ................................................................................................
AWS::EC2::SubnetRouteTableAssociation .............................................................
AWS::EC2::VPC ....................................................................................................
AWS::EC2::VPCGatewayAttachment .....................................................................
AWS::EC2::Volume ...............................................................................................
AWS::EC2::VolumeAttachment .............................................................................
AWS::ElasticLoadBalancing::LoadBalancer ............................................................
AWS::IAM::AccessKey ..........................................................................................
AWS::IAM::User ...................................................................................................
AWS::RDS::DBInstance .........................................................................................
AWS::S3::Bucket ..................................................................................................
3. CloudFormation Compatible Functions .....................................................................
Ref ......................................................................................................................
Fn::Base64 ...........................................................................................................
Fn::FindInMap .....................................................................................................
Fn::GetAtt ...........................................................................................................
Fn::GetAZs ...........................................................................................................
Fn::Join ................................................................................................................
Fn::Select .............................................................................................................
Fn::Split ...............................................................................................................

iv

104
107
108
109
113
116
118
119
120
122
130
131
133
136
139
141
146
146
149
154
155
157
158
159
161
162
164
171
172
174
175
178
180
181
182
183
185
187
190
191
193
195
198
198
198
199
199
199
200
200
200

Heat Orchestration Template reference

December 11, 2014

current

Fn::Replace ..........................................................................................................
Fn::ResourceFacade .............................................................................................
Fn::MemberListToMap .........................................................................................
A. Community support ................................................................................................
Documentation ...................................................................................................
ask.openstack.org ................................................................................................
OpenStack mailing lists ........................................................................................
The OpenStack wiki .............................................................................................
The Launchpad Bugs area ...................................................................................
The OpenStack IRC channel .................................................................................
Documentation feedback ....................................................................................
OpenStack distribution packages .........................................................................

201
201
202
203
203
204
204
205
205
206
206
206

Heat Orchestration Template reference

December 11, 2014

current

HOT reference overview


Conventions .................................................................................................................... vi
Heat Orchestration Template (HOT) is a new template format meant to replace the Heat
CloudFormation-compatible format (CFN) as the native format supported by the Orchestration module over time.
This reference documents the syntax of:
OpenStack native resources
CloudFormation-compatible resources
CloudFormation-compatible functions

Conventions
The OpenStack documentation uses several typesetting conventions.

Notices
Notices take these forms:

Note
A handy tip or reminder.

Important
Something you must be aware of before proceeding.

Warning
Critical information about the risk of data loss or security issues.

Command prompts
$ prompt

Any user, including the root user, can run commands that are prefixed with
the $ prompt.

# prompt

The root user must run commands that are prefixed with the # prompt. You
can also prefix these commands with the sudo command, if available, to run
them.

vi

Heat Orchestration Template reference

December 11, 2014

current

1. OpenStack Resource Types


OS::Ceilometer::Alarm ..................................................................................................... 2
OS::Ceilometer::CombinationAlarm .................................................................................. 6
OS::Cinder::Volume ......................................................................................................... 8
OS::Cinder::VolumeAttachment ..................................................................................... 11
OS::Glance::Image ......................................................................................................... 12
OS::Heat::AccessPolicy .................................................................................................... 15
OS::Heat::AutoScalingGroup .......................................................................................... 16
OS::Heat::CWLiteAlarm .................................................................................................. 18
OS::Heat::CloudConfig ................................................................................................... 21
OS::Heat::HARestarter ................................................................................................... 23
OS::Heat::InstanceGroup ................................................................................................ 24
OS::Heat::MultipartMime ............................................................................................... 25
OS::Heat::RandomString ................................................................................................ 27
OS::Heat::ResourceGroup ............................................................................................... 30
OS::Heat::ScalingPolicy ................................................................................................... 34
OS::Heat::SoftwareComponent ...................................................................................... 35
OS::Heat::SoftwareConfig .............................................................................................. 39
OS::Heat::SoftwareDeployment ..................................................................................... 43
OS::Heat::SoftwareDeployments .................................................................................... 45
OS::Heat::StructuredConfig ............................................................................................ 48
OS::Heat::StructuredDeployment ................................................................................... 51
OS::Heat::StructuredDeployments .................................................................................. 53
OS::Heat::SwiftSignal ..................................................................................................... 55
OS::Heat::SwiftSignalHandle .......................................................................................... 57
OS::Heat::UpdateWaitConditionHandle .......................................................................... 58
OS::Heat::WaitCondition ................................................................................................ 59
OS::Heat::WaitConditionHandle ..................................................................................... 60
OS::Neutron::Firewall ..................................................................................................... 61
OS::Neutron::FirewallPolicy ............................................................................................ 63
OS::Neutron::FirewallRule .............................................................................................. 64
OS::Neutron::FloatingIP ................................................................................................. 68
OS::Neutron::FloatingIPAssociation ................................................................................ 69
OS::Neutron::HealthMonitor .......................................................................................... 71
OS::Neutron::IKEPolicy ................................................................................................... 73
OS::Neutron::IPsecPolicy ................................................................................................ 76
OS::Neutron::IPsecSiteConnection .................................................................................. 79
OS::Neutron::LoadBalancer ............................................................................................ 83
OS::Neutron::MeteringLabel .......................................................................................... 84
OS::Neutron::MeteringRule ............................................................................................ 85
OS::Neutron::Net ........................................................................................................... 87
OS::Neutron::NetworkGateway ...................................................................................... 89
OS::Neutron::Pool .......................................................................................................... 92
OS::Neutron::PoolMember ............................................................................................. 96
OS::Neutron::Port .......................................................................................................... 98
OS::Neutron::ProviderNet ............................................................................................ 102
OS::Neutron::Router .................................................................................................... 104
OS::Neutron::RouterGateway ....................................................................................... 107
OS::Neutron::RouterInterface ....................................................................................... 108
1

Heat Orchestration Template reference

December 11, 2014

current

OS::Neutron::SecurityGroup .........................................................................................
OS::Neutron::Subnet ....................................................................................................
OS::Neutron::VPNService ..............................................................................................
OS::Nova::FloatingIP ....................................................................................................
OS::Nova::FloatingIPAssociation ...................................................................................
OS::Nova::KeyPair ........................................................................................................
OS::Nova::Server ..........................................................................................................
OS::Nova::ServerGroup ................................................................................................
OS::Sahara::Cluster ......................................................................................................
OS::Sahara::ClusterTemplate ........................................................................................
OS::Sahara::NodeGroupTemplate .................................................................................
OS::Swift::Container .....................................................................................................
OS::Trove::Instance ......................................................................................................

109
113
116
118
119
120
122
130
131
133
136
139
141

OS::Ceilometer::Alarm
Properties
alarm_actions

A list of URLs (webhooks) to invoke when state transitions to alarm.


Can be updated without replacement.
Optional property.

comparison_operator

Operator used to compare specified statistic with


threshold.
Can be updated without replacement.
Optional property.
Allowed values: ge, gt, eq, ne, lt, le

description

Description for the alarm.


Can be updated without replacement.
Optional property.

enabled

True if alarm evaluation/actioning is enabled.


Can be updated without replacement.
Optional property, defaults to "true".

evaluation_periods

Number of periods to evaluate over.


Can be updated without replacement.
Optional property.

insufficient_data_actions

A list of URLs (webhooks) to invoke when state transitions to insufficient-data.

Heat Orchestration Template reference

December 11, 2014

current

Can be updated without replacement.


Optional property.
matching_metadata

Meter should match this resource metadata (key=value)


additionally to the meter_name.
Can be updated without replacement.
Optional property, defaults to "{}".

meter_name

Meter name watched by the alarm.


Updates cause replacement.
Required property.

ok_actions

A list of URLs (webhooks) to invoke when state transitions to ok.


Can be updated without replacement.
Optional property.

period

Period (seconds) to evaluate over.


Can be updated without replacement.
Optional property.

query

A list of query factors, each comparing a Sample


attribute with a value. Implicitly combined with
matching_metadata, if any.
Can be updated without replacement.
Optional property.
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
field

Name of attribute to compare. Names


of the form metadata.user_metadata.X
or metadata.metering.X are equivalent to what you can address through
matching_metadata; the former for Nova
meters, the latter for all others. To see the
attributes of your Samples, use `ceilometer
--debug sample-list`.

Heat Orchestration Template reference

December 11, 2014

current

Updates cause replacement.


Optional property.
op

Comparison operator
Updates cause replacement.
Optional property.
Allowed values: le, ge, eq, lt, gt, ne

value

String value with which to compare


Updates cause replacement.
Optional property.

repeat_actions

False to trigger actions when the threshold is reached


AND the alarm's state has changed. By default, actions
are called each time the threshold is reached.
Can be updated without replacement.
Optional property, defaults to "true".

statistic

Meter statistic to evaluate.


Can be updated without replacement.
Optional property.
Allowed values: count, avg, sum, min, max

threshold

Threshold to evaluate against.


Can be updated without replacement.
Required property.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Ceilometer::Alarm
properties:
alarm_actions: [Value, Value, ...]
comparison_operator: String
description: String
enabled: Boolean
evaluation_periods: Integer
insufficient_data_actions: [Value, Value, ...]

Heat Orchestration Template reference

December 11, 2014

current

matching_metadata: {...}
meter_name: String
ok_actions: [Value, Value, ...]
period: Integer
query: [{"field": String, "value": String, "op": String}, {"field":
String, "value": String, "op": String}, ...]
repeat_actions: Boolean
statistic: String
threshold: Number

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Ceilometer::Alarm
Properties:
alarm_actions: [Value, Value, ...]
comparison_operator: String
description: String
enabled: Boolean
evaluation_periods: Integer
insufficient_data_actions: [Value, Value, ...]
matching_metadata: {...}
meter_name: String
ok_actions: [Value, Value, ...]
period: Integer
query: [{"field": String, "value": String, "op": String}, {"field":
String, "value": String, "op": String}, ...]
repeat_actions: Boolean
statistic: String
threshold: Number

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Ceilometer::Alarm",
"Properties": {
"alarm_actions": [Value, Value, ...],
"comparison_operator": String,
"description": String,
"enabled": Boolean,
"evaluation_periods": Integer,
"insufficient_data_actions": [Value, Value, ...],
"matching_metadata": {...},
"meter_name": String,
"ok_actions": [Value, Value, ...],
"period": Integer,
"query": [{"field": String, "value": String, "op": String}, {"field":
String, "value": String, "op": String}, ...],
"repeat_actions": Boolean,
"statistic": String,
"threshold": Number

Heat Orchestration Template reference

December 11, 2014

current

}
}
}
}

OS::Ceilometer::CombinationAlarm
Available since 2014.1 (Icehouse).

Properties
alarm_actions

A list of URLs (webhooks) to invoke when state transitions to alarm.


Can be updated without replacement.
Optional property.

alarm_ids

List of alarm identifiers to combine.


Can be updated without replacement.
Required property.
The length must be at least 1.

description

Description for the alarm.


Can be updated without replacement.
Optional property.

enabled

True if alarm evaluation/actioning is enabled.


Can be updated without replacement.
Optional property, defaults to "true".

insufficient_data_actions

A list of URLs (webhooks) to invoke when state transitions to insufficient-data.


Can be updated without replacement.
Optional property.

ok_actions

A list of URLs (webhooks) to invoke when state transitions to ok.


Can be updated without replacement.
Optional property.

operator

Operator used to combine the alarms.


6

Heat Orchestration Template reference

December 11, 2014

current

Can be updated without replacement.


Optional property.
Allowed values: and, or
repeat_actions

False to trigger actions when the threshold is reached


AND the alarm's state has changed. By default, actions
are called each time the threshold is reached.
Can be updated without replacement.
Optional property, defaults to "true".

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Ceilometer::CombinationAlarm
properties:
alarm_actions: [Value, Value, ...]
alarm_ids: [Value, Value, ...]
description: String
enabled: Boolean
insufficient_data_actions: [Value, Value, ...]
ok_actions: [Value, Value, ...]
operator: String
repeat_actions: Boolean

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Ceilometer::CombinationAlarm
Properties:
alarm_actions: [Value, Value, ...]
alarm_ids: [Value, Value, ...]
description: String
enabled: Boolean
insufficient_data_actions: [Value, Value, ...]
ok_actions: [Value, Value, ...]
operator: String
repeat_actions: Boolean

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {

Heat Orchestration Template reference

December 11, 2014

current

"TheResource": {
"Type": "OS::Ceilometer::CombinationAlarm",
"Properties": {
"alarm_actions": [Value, Value, ...],
"alarm_ids": [Value, Value, ...],
"description": String,
"enabled": Boolean,
"insufficient_data_actions": [Value, Value, ...],
"ok_actions": [Value, Value, ...],
"operator": String,
"repeat_actions": Boolean
}
}
}
}

OS::Cinder::Volume
Properties
availability_zone

The availability zone in which the volume will be created.


Updates cause replacement.
Optional property.

backup_id

If specified, the backup to create the volume from.


Updates cause replacement.
Optional property.

description

A description of the volume.


Can be updated without replacement.
Optional property.

image

If specified, the name or ID of the image to create the volume


from.
Updates cause replacement.
Optional property.
Value must be of type glance.image

metadata

Key/value pairs to associate with the volume.


Can be updated without replacement.
Optional property.

name

A name used to distinguish the volume.


Can be updated without replacement.

Heat Orchestration Template reference

December 11, 2014

current

Optional property.
scheduler_hints

Arbitrary key-value pairs specified by the client to help the Cinder


scheduler creating a volume.
Updates cause replacement.
Optional property.

size

The size of the volume in GB. On update only increase in size is


supported.
Can be updated without replacement.
Optional property.
The value must be at least 1.

snapshot_id

If specified, the snapshot to create the volume from.


Updates cause replacement.
Optional property.

source_volid

If specified, the volume to use as source.


Updates cause replacement.
Optional property.

volume_type

If specified, the type of volume to use, mapping to a specific backend.


Updates cause replacement.
Optional property.

imageRef

Note
DEPRECATED - Use property image.
The ID of the image to create the volume from.
Updates cause replacement.
Optional property.

Attributes
attachments

The list of attachments of the volume.

availability_zone

The availability zone in which the volume is located.

bootable

Boolean indicating if the volume can be booted or not.

Heat Orchestration Template reference

December 11, 2014

current

created_at

The timestamp indicating volume creation.

display_description

Description of the volume.

display_name

Name of the volume.

encrypted

Boolean indicating if the volume is encrypted or not.

metadata

Key/value pairs associated with the volume.

metadata_values

Key/value pairs associated with the volume in raw dict form.

size

The size of the volume in GB.

snapshot_id

The snapshot the volume was created from, if any.

source_volid

The volume used as source, if any.

status

The current status of the volume.

volume_type

The type of the volume mapping to a backend, if any.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Cinder::Volume
properties:
availability_zone: String
backup_id: String
description: String
image: String
metadata: {...}
name: String
scheduler_hints: {...}
size: Integer
snapshot_id: String
source_volid: String
volume_type: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Cinder::Volume
Properties:
availability_zone: String
backup_id: String
description: String
image: String

10

Heat Orchestration Template reference

December 11, 2014

current

metadata: {...}
name: String
scheduler_hints: {...}
size: Integer
snapshot_id: String
source_volid: String
volume_type: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Cinder::Volume",
"Properties": {
"availability_zone": String,
"backup_id": String,
"description": String,
"image": String,
"metadata": {...},
"name": String,
"scheduler_hints": {...},
"size": Integer,
"snapshot_id": String,
"source_volid": String,
"volume_type": String
}
}
}
}

OS::Cinder::VolumeAttachment
Properties
instance_uuid

The ID of the server to which the volume attaches.


Can be updated without replacement.
Required property.

mountpoint

The location where the volume is exposed on the instance. This assignment may not be honored and it is advised that the path /dev/disk/byid/virtio-<VolumeId> be used instead.
Can be updated without replacement.
Optional property.

volume_id

The ID of the volume to be attached.


Can be updated without replacement.
Required property.
11

Heat Orchestration Template reference

December 11, 2014

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Cinder::VolumeAttachment
properties:
instance_uuid: String
mountpoint: String
volume_id: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Cinder::VolumeAttachment
Properties:
instance_uuid: String
mountpoint: String
volume_id: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Cinder::VolumeAttachment",
"Properties": {
"instance_uuid": String,
"mountpoint": String,
"volume_id": String
}
}
}
}

OS::Glance::Image
A resource managing for image in Glance.
Available since 2014.2 (Juno).

Properties
container_format

Container format of image.


Updates cause replacement.
Required property.
12

current

Heat Orchestration Template reference

December 11, 2014

current

Allowed values: ami, ari, aki, bare, ova, ovf


disk_format

Disk format of image.


Updates cause replacement.
Required property.
Allowed values: ami, ari, aki, vhd, vmdk, raw, qcow2, vdi, iso

id

The image ID. Glance will generate a UUID if not specified.


Updates cause replacement.
Optional property.

is_public

Scope of image accessibility. Public or private. Default value is False


means private.
Updates cause replacement.
Optional property, defaults to "False".

location

URL where the data for this image already resides. For example,
if the image data is stored in swift, you could specify "swift://
example.com/container/obj".
Updates cause replacement.
Required property.

min_disk

Amount of disk space (in GB) required to boot image. Default value is 0 if not specified and means no limit on the disk size.
Updates cause replacement.
Optional property.
The value must be at least 0.

min_ram

Amount of ram (in MB) required to boot image. Default value is 0


if not specified and means no limit on the ram size.
Updates cause replacement.
Optional property.
The value must be at least 0.

name

Name for the image. The name of an image is not unique to a Image Service node.
Updates cause replacement.
Optional property.

13

Heat Orchestration Template reference


protected

December 11, 2014

current

Whether the image can be deleted. If the value is True, the image
is protected and cannot be deleted.
Updates cause replacement.
Optional property.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Glance::Image
properties:
container_format: String
disk_format: String
id: String
is_public: Boolean
location: String
min_disk: Integer
min_ram: Integer
name: String
protected: Boolean

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Glance::Image
Properties:
container_format: String
disk_format: String
id: String
is_public: Boolean
location: String
min_disk: Integer
min_ram: Integer
name: String
protected: Boolean

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Glance::Image",
"Properties": {
"container_format": String,
"disk_format": String,
"id": String,
"is_public": Boolean,

14

Heat Orchestration Template reference

December 11, 2014

current

"location": String,
"min_disk": Integer,
"min_ram": Integer,
"name": String,
"protected": Boolean
}
}
}
}

OS::Heat::AccessPolicy
Properties
AllowedResources

Resources that users are allowed to access by the DescribeStackResource API.


Updates cause replacement.
Required property.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::AccessPolicy
properties:
AllowedResources: [Value, Value, ...]

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::AccessPolicy
Properties:
AllowedResources: [Value, Value, ...]

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::AccessPolicy",
"Properties": {
"AllowedResources": [Value, Value, ...]
}
}
}
}

15

Heat Orchestration Template reference

December 11, 2014

current

OS::Heat::AutoScalingGroup
An autoscaling group that can scale arbitrary resources.
Available since 2014.1 (Icehouse).

Properties
cooldown

Cooldown period, in seconds.


Can be updated without replacement.
Optional property.

desired_capacity

Desired initial number of resources.


Can be updated without replacement.
Optional property.

max_size

Maximum number of resources in the group.


Can be updated without replacement.
Required property.
The value must be at least 0.

min_size

Minimum number of resources in the group.


Can be updated without replacement.
Required property.
The value must be at least 0.

resource

Resource definition for the resources in the group, in HOT format.


The value of this property is the definition of a resource just as if it
had been declared in the template itself.
Can be updated without replacement.
Required property.

rolling_updates

Policy for rolling updates for this scaling group.


Can be updated without replacement.
Optional property.
Map properties:
max_batch_size

16

The maximum number of resources to replace at once.

Heat Orchestration Template reference

December 11, 2014

current

Updates cause replacement.


Optional property, defaults to "1".
The value must be at least 0.
min_in_service

The minimum number of resources in service


while rolling updates are being executed.
Updates cause replacement.
Optional property, defaults to "0".
The value must be at least 0.

pause_time

The number of seconds to wait between


batches of updates.
Updates cause replacement.
Optional property, defaults to "0".
The value must be at least 0.

Attributes
current_size

The current size of AutoscalingResourceGroup.

outputs

A map of resource names to the specified attribute of each individual resource.

outputs_list

A list of the specified attribute of each individual resource.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::AutoScalingGroup
properties:
cooldown: Integer
desired_capacity: Integer
max_size: Integer
min_size: Integer
resource: {...}
rolling_updates: {"min_in_service": Number, "pause_time": Number,
"max_batch_size": Number}

17

Heat Orchestration Template reference

December 11, 2014

current

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::AutoScalingGroup
Properties:
cooldown: Integer
desired_capacity: Integer
max_size: Integer
min_size: Integer
resource: {...}
rolling_updates: {"min_in_service": Number, "pause_time": Number,
"max_batch_size": Number}

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::AutoScalingGroup",
"Properties": {
"cooldown": Integer,
"desired_capacity": Integer,
"max_size": Integer,
"min_size": Integer,
"resource": {...},
"rolling_updates": {"min_in_service": Number, "pause_time": Number,
"max_batch_size": Number}
}
}
}
}

OS::Heat::CWLiteAlarm
Note
DEPRECATED - OS::Heat::CWLiteAlarm is deprecated, use OS::Ceilometer::Alarm
instead.

Properties
AlarmActions

A list of actions to execute when state transitions to


alarm.
Can be updated without replacement.
Optional property.

AlarmDescription

Description for the alarm.


18

Heat Orchestration Template reference

December 11, 2014

current

Can be updated without replacement.


Optional property.
ComparisonOperator

Operator used to compare the specified Statistic with


Threshold.
Can be updated without replacement.
Optional property.
Allowed values: GreaterThanOrEqualToThreshold,
GreaterThanThreshold, LessThanThreshold, LessThanOrEqualToThreshold

Dimensions

A list of dimensions (arbitrary name/value pairs) associated with the metric.


Updates cause replacement.
Optional property.

EvaluationPeriods

Number of periods to evaluate over.


Can be updated without replacement.
Optional property.

InsufficientDataActions

A list of actions to execute when state transitions to insufficient-data.


Can be updated without replacement.
Optional property.

MetricName

Metric name watched by the alarm.


Updates cause replacement.
Optional property.

Namespace

Namespace for the metric.


Updates cause replacement.
Optional property.

OKActions

A list of actions to execute when state transitions to ok.


Can be updated without replacement.
Optional property.

Period

Period (seconds) to evaluate over.


19

Heat Orchestration Template reference

December 11, 2014

current

Can be updated without replacement.


Optional property.
Statistic

Metric statistic to evaluate.


Can be updated without replacement.
Optional property.
Allowed values: SampleCount, Average, Sum, Minimum,
Maximum

Threshold

Threshold to evaluate against.


Can be updated without replacement.
Optional property.

Units

Unit for the metric.


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: OS::Heat::CWLiteAlarm
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

20

Heat Orchestration Template reference

December 11, 2014

current

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::CWLiteAlarm
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": "OS::Heat::CWLiteAlarm",
"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
}
}
}
}

OS::Heat::CloudConfig
A configuration resource for representing cloud-init cloud-config.
This resource allows cloud-config YAML to be defined and stored by the config API. Any intrinsic functions called in the config will be resolved before storing the result.
21

Heat Orchestration Template reference

December 11, 2014

current

This resource will generally be referenced by OS::Nova::Server user_data, or


OS::Heat::MultipartMime parts config. Since cloud-config is boot-only configuration, any
changes to the definition will result in the replacement of all servers which reference it.
Available since 2014.1 (Icehouse).

Properties
cloud_config

Map representing the cloud-config data structure which will be formatted as YAML.
Updates cause replacement.
Optional property.

Attributes
config

The config value of the software config.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::CloudConfig
properties:
cloud_config: {...}

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::CloudConfig
Properties:
cloud_config: {...}

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::CloudConfig",
"Properties": {
"cloud_config": {...}
}
}
}
}

22

Heat Orchestration Template reference

December 11, 2014

OS::Heat::HARestarter
Properties
InstanceId

Instance ID to be restarted.
Updates cause 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: OS::Heat::HARestarter
properties:
InstanceId: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::HARestarter
Properties:
InstanceId: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::HARestarter",
"Properties": {
"InstanceId": String
}
}
}
}

23

current

Heat Orchestration Template reference

December 11, 2014

OS::Heat::InstanceGroup
Properties
AvailabilityZones

Not Implemented.
Updates cause replacement.
Required property.

LaunchConfigurationName

The reference to a LaunchConfiguration resource.


Can be updated without replacement.
Required property.

LoadBalancerNames

List of LoadBalancer resources.


Updates cause replacement.
Optional property.

Size

Desired number of instances.


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.

Attributes
InstanceList

A comma-delimited list of server ip addresses. (Heat extension).


24

current

Heat Orchestration Template reference

December 11, 2014

current

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::InstanceGroup
properties:
AvailabilityZones: [Value, Value, ...]
LaunchConfigurationName: String
LoadBalancerNames: [Value, Value, ...]
Size: Integer
Tags: [{"Value": String, "Key": String}, {"Value": String, "Key":
String}, ...]

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::InstanceGroup
Properties:
AvailabilityZones: [Value, Value, ...]
LaunchConfigurationName: String
LoadBalancerNames: [Value, Value, ...]
Size: Integer
Tags: [{"Value": String, "Key": String}, {"Value": String, "Key":
String}, ...]

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::InstanceGroup",
"Properties": {
"AvailabilityZones": [Value, Value, ...],
"LaunchConfigurationName": String,
"LoadBalancerNames": [Value, Value, ...],
"Size": Integer,
"Tags": [{"Value": String, "Key": String}, {"Value": String, "Key":
String}, ...]
}
}
}
}

OS::Heat::MultipartMime
A resource which assembles a collection of software configurations as a multi-part mime
message.
25

Heat Orchestration Template reference

December 11, 2014

current

Parts in the message can be populated with inline configuration or references to other config resources. If the referenced resource is itself a valid multi-part mime message, that will
be broken into parts and those parts appended to this message.
The resulting multi-part mime message will be stored by the configs API and can be referenced in properties such as OS::Nova::Server user_data.
This resource is generally used to build a list of cloud-init configuration elements including
scripts and cloud-config. Since cloud-init is boot-only configuration, any changes to the definition will result in the replacement of all servers which reference it.
Available since 2014.1 (Icehouse).

Properties
parts

Parts belonging to this message.


Updates cause replacement.
Optional property, defaults to "[]".
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
config

Content of part to attach, either inline or by referencing the ID of


another software config resource
Updates cause replacement.
Required property.

filename

Optional filename to associate with part.


Updates cause replacement.
Optional property.

subtype

Optional subtype to specify with the type.


Updates cause replacement.
Optional property.

type

Whether the part content is text or multipart.


Updates cause replacement.
Optional property, defaults to "text".
Allowed values: text, multipart

26

Heat Orchestration Template reference

December 11, 2014

current

Attributes
config

The config value of the software config.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::MultipartMime
properties:
parts: [{"type": String, "subtype": String, "config": String,
"filename": String}, {"type": String, "subtype": String, "config": String,
"filename": String}, ...]

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::MultipartMime
Properties:
parts: [{"type": String, "subtype": String, "config": String,
"filename": String}, {"type": String, "subtype": String, "config": String,
"filename": String}, ...]

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::MultipartMime",
"Properties": {
"parts": [{"type": String, "subtype": String, "config": String,
"filename": String}, {"type": String, "subtype": String, "config": String,
"filename": String}, ...]
}
}
}
}

OS::Heat::RandomString
A resource which generates a random string.
This is useful for configuring passwords and secrets on services.
Available since 2014.1 (Icehouse).
27

Heat Orchestration Template reference

December 11, 2014

current

Properties
character_classes

A list of character class and their constraints to generate the


random string from.
Updates cause replacement.
Optional property.
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
class

A character class and its corresponding min constraint to generate the random string from.
Updates cause replacement.
Optional property, defaults to "lettersdigits".
Allowed values: lettersdigits, letters, lowercase,
uppercase, digits, hexdigits, octdigits

min

The minimum number of characters from this


character class that will be in the generated string.
Updates cause replacement.
Optional property, defaults to "1".
The value must be in the range 1 to 512.

character_sequences

A list of character sequences and their constraints to generate


the random string from.
Updates cause replacement.
Optional property.
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
min

The minimum number of characters from this


sequence that will be in the generated string.
Updates cause replacement.

28

Heat Orchestration Template reference

December 11, 2014

current

Optional property, defaults to "1".


The value must be in the range 1 to 512.
sequence

A character sequence and its corresponding


min constraint to generate the random string
from.
Updates cause replacement.
Required property.

length

Length of the string to generate.


Updates cause replacement.
Optional property, defaults to "32".
The value must be in the range 1 to 512.

salt

Value which can be set or changed on stack update to trigger


the resource for replacement with a new random string . The
salt value itself is ignored by the random generator.
Updates cause replacement.
Optional property.

sequence

Note
DEPRECATED - Use property character_classes.
Sequence of characters to build the random string from.
Updates cause replacement.
Optional property.
Allowed values: lettersdigits, letters, lowercase, uppercase, digits, hexdigits, octdigits

Attributes
value

The random string generated by this resource. This value is also available by referencing the resource.

29

Heat Orchestration Template reference

December 11, 2014

current

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::RandomString
properties:
character_classes: [{"class": String, "min": Integer}, {"class": String,
"min": Integer}, ...]
character_sequences: [{"min": Integer, "sequence": String}, {"min":
Integer, "sequence": String}, ...]
length: Integer
salt: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::RandomString
Properties:
character_classes: [{"class": String, "min": Integer}, {"class": String,
"min": Integer}, ...]
character_sequences: [{"min": Integer, "sequence": String}, {"min":
Integer, "sequence": String}, ...]
length: Integer
salt: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::RandomString",
"Properties": {
"character_classes": [{"class": String, "min": Integer}, {"class":
String, "min": Integer}, ...],
"character_sequences": [{"min": Integer, "sequence": String}, {"min":
Integer, "sequence": String}, ...],
"length": Integer,
"salt": String
}
}
}
}

OS::Heat::ResourceGroup
A resource that creates one or more identically configured nested resources.

30

Heat Orchestration Template reference

December 11, 2014

current

In addition to the refs attribute, this resource implements synthetic attributes that mirror
those of the resources in the group. When getting an attribute from this resource, however, a list of attribute values for each resource in the group is returned. To get attribute values for a single resource in the group, synthetic attributes of the form resource.{resource
index}.{attribute name} can be used. The resource ID of a particular resource in the group
can be obtained via the synthetic attribute resource.{resource index}.
While each resource in the group will be identically configured, this resource does allow for
some index-based customization of the properties of the resources in the group. For example:
resources:
my_indexed_group:
type: OS::Heat::ResourceGroup
properties:
count: 3
resource_def:
type: OS::Nova::Server
properties:
# create a unique name for each server
# using its index in the group
name: my_server_%index%
image: CentOS 6.5
flavor: 4GB Performance

would result in a group of three servers having the same image and flavor, but names of
my_server_0, my_server_1, and my_server_2. The variable used for substitution can be customized by using the index_var property.
Available since 2014.1 (Icehouse).

Properties
count

The number of instances to create.


Can be updated without replacement.
Optional property, defaults to "1".
The value must be at least 0.

index_var

A variable that this resource will use to replace with the current index of a given resource in the group. Can be used, for example, to
customize the name property of grouped servers in order to differentiate them when listed with nova client.
Updates cause replacement.
Optional property, defaults to "%index%".
The length must be at least 3.

removal_policies

Policies for removal of resources on update


Can be updated without replacement.
31

Heat Orchestration Template reference

December 11, 2014

current

Optional property, defaults to "[]".


List contents:
*

Policy to be processed when doing an update which requires removal of specific resources.
Updates cause replacement.
Optional property.
Map properties:
resource_list

List of resources to be removed when doing an update which requires removal


of specific resources. The resource may
be specified several ways: (1) The resource name, as in the nested stack, (2)
The resource reference returned from
get_resource in a template, as available
via the 'refs' attribute Note this is destructive on update when specified; even if the
count is not being reduced, and once a resource name is removed, it's name is never
reused in subsequent updates
Updates cause replacement.
Optional property, defaults to "[]".

resource_def

Resource definition for the resources in the group. The value of


this property is the definition of a resource just as if it had been declared in the template itself.
Updates cause replacement.
Required property.
Map properties:
properties

Property values for the resources in the group


Updates cause replacement.
Optional property.

type

The type of the resources in the group


Updates cause replacement.
Required property.

32

Heat Orchestration Template reference

December 11, 2014

current

Attributes
attributes

A map of resource names to the specified attribute of each individual resource.

refs

A list of resource IDs for the resources in the group

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::ResourceGroup
properties:
count: Integer
index_var: String
removal_policies: [{"resource_list": [Value, Value, ...]},
{"resource_list": [Value, Value, ...]}, ...]
resource_def: {"type": String, "properties": {...}}

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::ResourceGroup
Properties:
count: Integer
index_var: String
removal_policies: [{"resource_list": [Value, Value, ...]},
{"resource_list": [Value, Value, ...]}, ...]
resource_def: {"type": String, "properties": {...}}

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::ResourceGroup",
"Properties": {
"count": Integer,
"index_var": String,
"removal_policies": [{"resource_list": [Value, Value, ...]},
{"resource_list": [Value, Value, ...]}, ...],
"resource_def": {"type": String, "properties": {...}}
}
}
}
}

33

Heat Orchestration Template reference

December 11, 2014

current

OS::Heat::ScalingPolicy
A resource to manage scaling of OS::Heat::AutoScalingGroup.
while it may incidentally support AWS::AutoScaling::AutoScalingGroup for now, please
don't use it for that purpose and use AWS::AutoScaling::ScalingPolicy instead.

Properties
adjustment_type

Type of adjustment (absolute or percentage).


Can be updated without replacement.
Required property.
Allowed values: change_in_capacity, exact_capacity,
percent_change_in_capacity

auto_scaling_group_id

AutoScaling group ID to apply policy to.


Updates cause replacement.
Required property.

cooldown

Cooldown period, in seconds.


Can be updated without replacement.
Optional property.

scaling_adjustment

Size of adjustment.
Can be updated without replacement.
Required property.

Attributes
alarm_url

A signed url to handle the alarm.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::ScalingPolicy
properties:
adjustment_type: String
auto_scaling_group_id: String
cooldown: Number
scaling_adjustment: Number

34

Heat Orchestration Template reference

December 11, 2014

current

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::ScalingPolicy
Properties:
adjustment_type: String
auto_scaling_group_id: String
cooldown: Number
scaling_adjustment: Number

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::ScalingPolicy",
"Properties": {
"adjustment_type": String,
"auto_scaling_group_id": String,
"cooldown": Number,
"scaling_adjustment": Number
}
}
}
}

OS::Heat::SoftwareComponent
A resource for describing and storing a software component.
This resource is similar to OS::Heat::SoftwareConfig. In contrast to SoftwareConfig which
allows for storing only one configuration (e.g. one script), SoftwareComponent allows for
storing multiple configurations to address handling of all lifecycle hooks (CREATE, UPDATE,
SUSPEND, RESUME, DELETE) for a software component in one place.
This resource is backed by the persistence layer and the API of the SoftwareConfig resource, and only adds handling for the additional 'configs' property and attribute.
Available since 2014.2 (Juno).

Properties
configs

The list of configurations for the different lifecycle actions of the represented
software component.
Updates cause replacement.
Required property.
35

Heat Orchestration Template reference

December 11, 2014

current

The length must be at least 1.


List contents:
*

Updates cause replacement.


Optional property.
Map properties:
actions

Lifecycle actions to which the configuration applies. The string


values provided for this property can include the standard resource actions CREATE, DELETE, UPDATE, SUSPEND and RESUME supported by Heat.
Updates cause replacement.
Required property.
The length must be at least 1.
List contents:
*

Updates cause replacement.


Optional property.

config

Configuration script or manifest which specifies what actual


configuration is performed.
Updates cause replacement.
Optional property.

tool

The configuration tool used to actually apply the configuration


on a server. This string property has to be understood by in-instance tools running inside deployed servers.
Updates cause replacement.
Required property.

inputs

Schema representing the inputs that this software config is expecting.


Updates cause replacement.
Optional property.
List contents:
*

Updates cause replacement.


Optional property.
36

Heat Orchestration Template reference

December 11, 2014

current

Map properties:
default

Default value for the input if none is specified.


Updates cause replacement.
Optional property.

description

Description of the input.


Updates cause replacement.
Optional property.

name

Name of the input.


Updates cause replacement.
Required property.

type

Type of the value of the input.


Updates cause replacement.
Optional property, defaults to "String".
Allowed values: String, Number, CommaDelimitedList,
Json

options

Map containing options specific to the configuration management tool used by


this resource.
Updates cause replacement.
Optional property.

outputs

Schema representing the outputs that this software config will produce.
Updates cause replacement.
Optional property.
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
description

Description of the output.


Updates cause replacement.
Optional property.

37

Heat Orchestration Template reference


error_output

December 11, 2014

current

Denotes that the deployment is in an error state if this


output has a value.
Updates cause replacement.
Optional property, defaults to "False".

name

Name of the output.


Updates cause replacement.
Required property.

type

Type of the value of the output.


Updates cause replacement.
Optional property, defaults to "String".
Allowed values: String, Number, CommaDelimitedList,
Json

Attributes
config

The config value of the software config.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::SoftwareComponent
properties:
configs: [{"tool": String, "config": String, "actions": [String, String,
...]}, {"tool": String, "config": String, "actions": [String, String, ...]},
...]
inputs: [{"default": String, "type": String, "name": String,
"description": String}, {"default": String, "type": String, "name": String,
"description": String}, ...]
options: {...}
outputs: [{"type": String, "name": String, "error_output": Boolean,
"description": String}, {"type": String, "name": String, "error_output":
Boolean, "description": String}, ...]

38

Heat Orchestration Template reference

December 11, 2014

current

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::SoftwareComponent
Properties:
configs: [{"tool": String, "config": String, "actions": [String, String,
...]}, {"tool": String, "config": String, "actions": [String, String, ...]},
...]
inputs: [{"default": String, "type": String, "name": String,
"description": String}, {"default": String, "type": String, "name": String,
"description": String}, ...]
options: {...}
outputs: [{"type": String, "name": String, "error_output": Boolean,
"description": String}, {"type": String, "name": String, "error_output":
Boolean, "description": String}, ...]

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::SoftwareComponent",
"Properties": {
"configs": [{"tool": String, "config": String, "actions": [String,
String, ...]}, {"tool": String, "config": String, "actions": [String, String,
...]}, ...],
"inputs": [{"default": String, "type": String, "name": String,
"description": String}, {"default": String, "type": String, "name": String,
"description": String}, ...],
"options": {...},
"outputs": [{"type": String, "name": String, "error_output": Boolean,
"description": String}, {"type": String, "name": String, "error_output":
Boolean, "description": String}, ...]
}
}
}
}

OS::Heat::SoftwareConfig
A resource for describing and storing software configuration.
The software_configs API which backs this resource creates immutable configs, so any
change to the template resource definition will result in a new config being created, and
the old one being deleted.
Configs can be defined in the same template which uses them, or they can be created in
one stack, and passed to another stack via a parameter.

39

Heat Orchestration Template reference

December 11, 2014

current

A config resource can be referenced in other resource properties which are config-aware.
This includes the properties OS::Nova::Server user_data, OS::Heat::SoftwareDeployment
config and OS::Heat::MultipartMime parts config.
Along with the config script itself, this resource can define schemas for inputs and outputs
which the config script is expected to consume and produce. Inputs and outputs are optional and will map to concepts which are specific to the configuration tool being used.
Available since 2014.1 (Icehouse).

Properties
config

Configuration script or manifest which specifies what actual configuration is


performed.
Updates cause replacement.
Optional property.

group

Namespace to group this software config by when delivered to a server. This


may imply what configuration tool is going to perform the configuration.
Updates cause replacement.
Optional property, defaults to "Heat::Ungrouped".

inputs

Schema representing the inputs that this software config is expecting.


Updates cause replacement.
Optional property.
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
default

Default value for the input if none is specified.


Updates cause replacement.
Optional property.

description

Description of the input.


Updates cause replacement.
Optional property.

name

Name of the input.


Updates cause replacement.

40

Heat Orchestration Template reference

December 11, 2014

current

Required property.
type

Type of the value of the input.


Updates cause replacement.
Optional property, defaults to "String".
Allowed values: String, Number, CommaDelimitedList,
Json

options

Map containing options specific to the configuration management tool used by


this resource.
Updates cause replacement.
Optional property.

outputs

Schema representing the outputs that this software config will produce.
Updates cause replacement.
Optional property.
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
description

Description of the output.


Updates cause replacement.
Optional property.

error_output

Denotes that the deployment is in an error state if this


output has a value.
Updates cause replacement.
Optional property, defaults to "False".

name

Name of the output.


Updates cause replacement.
Required property.

type

Type of the value of the output.


Updates
41 cause replacement.

Heat Orchestration Template reference

December 11, 2014

current

Optional property, defaults to "String".


Allowed values: String, Number, CommaDelimitedList,
Json

Attributes
config

The config value of the software config.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::SoftwareConfig
properties:
config: String
group: String
inputs: [{"default": String, "type": String, "name": String,
"description": String}, {"default": String, "type": String, "name": String,
"description": String}, ...]
options: {...}
outputs: [{"type": String, "name": String, "error_output": Boolean,
"description": String}, {"type": String, "name": String, "error_output":
Boolean, "description": String}, ...]

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::SoftwareConfig
Properties:
config: String
group: String
inputs: [{"default": String, "type": String, "name": String,
"description": String}, {"default": String, "type": String, "name": String,
"description": String}, ...]
options: {...}
outputs: [{"type": String, "name": String, "error_output": Boolean,
"description": String}, {"type": String, "name": String, "error_output":
Boolean, "description": String}, ...]

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::SoftwareConfig",

42

Heat Orchestration Template reference

December 11, 2014

current

"Properties": {
"config": String,
"group": String,
"inputs": [{"default": String, "type": String, "name": String,
"description": String}, {"default": String, "type": String, "name": String,
"description": String}, ...],
"options": {...},
"outputs": [{"type": String, "name": String, "error_output": Boolean,
"description": String}, {"type": String, "name": String, "error_output":
Boolean, "description": String}, ...]
}
}
}
}

OS::Heat::SoftwareDeployment
This resource associates a server with some configuration which is to be deployed to that
server.
A deployment allows input values to be specified which map to the inputs schema defined
in the config resource. These input values are interpreted by the configuration tool in a
tool-specific manner.
Whenever this resource goes to an IN_PROGRESS state, it creates an ephemeral config that
includes the inputs values plus a number of extra inputs which have names prefixed with
deploy_. The extra inputs relate to the current state of the stack, along with the information and credentials required to signal back the deployment results.
Unless signal_transport=NO_SIGNAL, this resource will remain in an IN_PROGRESS state
until the server signals it with the output values for that deployment. Those output values
are then available as resource attributes, along with the default attributes deploy_stdout,
deploy_stderr and deploy_status_code.
Specifying actions other than the default CREATE and UPDATE will result in the deployment
being triggered in those actions. For example this would allow cleanup configuration to be
performed during actions SUSPEND and DELETE. A config could be designed to only work
with some specific actions, or a config can read the value of the deploy_action input to allow conditional logic to perform different configuration for different actions.
Available since 2014.1 (Icehouse).

Properties
actions

Which stack actions will result in this deployment being triggered.


Can be updated without replacement.
Optional property, defaults to "['CREATE', 'UPDATE']".
Allowed values: CREATE, UPDATE, DELETE, SUSPEND, RESUME

config

ID of software configuration resource to execute when applying to


the server.
43

Heat Orchestration Template reference

December 11, 2014

current

Can be updated without replacement.


Optional property.
input_values

Input values to apply to the software configuration on this server.


Can be updated without replacement.
Optional property.

name

Name of the derived config associated with this deployment. This is


used to apply a sort order to the list of configurations currently deployed to a server.
Updates cause replacement.
Optional property.

server

ID of Nova server to apply configuration to.


Updates cause replacement.
Optional property.

signal_transport

How the server should signal to heat with the deployment output values. CFN_SIGNAL will allow an HTTP POST to a CFN keypair signed URL. HEAT_SIGNAL will allow calls to the Heat API resource-signal using the provided keystone credentials. NO_SIGNAL
will result in the resource going to the COMPLETE state without
waiting for any signal.
Updates cause replacement.
Optional property, defaults to "CFN_SIGNAL".
Allowed values: CFN_SIGNAL, HEAT_SIGNAL, NO_SIGNAL

Attributes
deploy_status_code

Returned status code from the configuration execution

deploy_stderr

Captured stderr from the configuration execution.

deploy_stdout

Captured stdout from the configuration execution.

44

Heat Orchestration Template reference

December 11, 2014

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::SoftwareDeployment
properties:
actions: [Value, Value, ...]
config: String
input_values: {...}
name: String
server: String
signal_transport: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::SoftwareDeployment
Properties:
actions: [Value, Value, ...]
config: String
input_values: {...}
name: String
server: String
signal_transport: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::SoftwareDeployment",
"Properties": {
"actions": [Value, Value, ...],
"config": String,
"input_values": {...},
"name": String,
"server": String,
"signal_transport": String
}
}
}
}

OS::Heat::SoftwareDeployments
Available since 2014.2 (Juno).

45

current

Heat Orchestration Template reference

December 11, 2014

current

Properties
actions

Which stack actions will result in this deployment being triggered.


Can be updated without replacement.
Optional property, defaults to "['CREATE', 'UPDATE']".
Allowed values: CREATE, UPDATE, DELETE, SUSPEND, RESUME

config

ID of software configuration resource to execute when applying to


the server.
Can be updated without replacement.
Optional property.

input_values

Input values to apply to the software configuration on this server.


Can be updated without replacement.
Optional property.

name

Name of the derived config associated with this deployment. This is


used to apply a sort order to the list of configurations currently deployed to a server.
Updates cause replacement.
Optional property.

servers

A map of Nova names and IDs to apply configuration to.


Updates cause replacement.
Optional property.

signal_transport

How the server should signal to heat with the deployment output values. CFN_SIGNAL will allow an HTTP POST to a CFN keypair signed URL. HEAT_SIGNAL will allow calls to the Heat API resource-signal using the provided keystone credentials. NO_SIGNAL
will result in the resource going to the COMPLETE state without
waiting for any signal.
Updates cause replacement.
Optional property, defaults to "CFN_SIGNAL".
Allowed values: CFN_SIGNAL, HEAT_SIGNAL, NO_SIGNAL

Attributes
deploy_status_codes

A map of Nova names and returned status code from the configuration execution

46

Heat Orchestration Template reference

December 11, 2014

current

deploy_stderrs

A map of Nova names and captured stderrs from the configuration execution to each server.

deploy_stdouts

A map of Nova names and captured stdouts from the configuration execution to each server.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::SoftwareDeployments
properties:
actions: [Value, Value, ...]
config: String
input_values: {...}
name: String
servers: {...}
signal_transport: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::SoftwareDeployments
Properties:
actions: [Value, Value, ...]
config: String
input_values: {...}
name: String
servers: {...}
signal_transport: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::SoftwareDeployments",
"Properties": {
"actions": [Value, Value, ...],
"config": String,
"input_values": {...},
"name": String,
"servers": {...},
"signal_transport": String
}
}
}
}

47

Heat Orchestration Template reference

December 11, 2014

current

OS::Heat::StructuredConfig
This resource is like OS::Heat::SoftwareConfig except that the config property is represented by a Map rather than a String.
This is useful for configuration tools which use YAML or JSON as their configuration syntax.
The resulting configuration is transferred, stored and returned by the software_configs API
as parsed JSON.
Available since 2014.1 (Icehouse).

Properties
config

Map representing the configuration data structure which will be serialized to


JSON format.
Updates cause replacement.
Optional property.

group

Namespace to group this software config by when delivered to a server. This


may imply what configuration tool is going to perform the configuration.
Updates cause replacement.
Optional property, defaults to "Heat::Ungrouped".

inputs

Schema representing the inputs that this software config is expecting.


Updates cause replacement.
Optional property.
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
default

Default value for the input if none is specified.


Updates cause replacement.
Optional property.

description

Description of the input.


Updates cause replacement.
Optional property.

name

Name of the input.

48

Heat Orchestration Template reference

December 11, 2014

current

Updates cause replacement.


Required property.
type

Type of the value of the input.


Updates cause replacement.
Optional property, defaults to "String".
Allowed values: String, Number, CommaDelimitedList,
Json

options

Map containing options specific to the configuration management tool used by


this resource.
Updates cause replacement.
Optional property.

outputs

Schema representing the outputs that this software config will produce.
Updates cause replacement.
Optional property.
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
description

Description of the output.


Updates cause replacement.
Optional property.

error_output

Denotes that the deployment is in an error state if this


output has a value.
Updates cause replacement.
Optional property, defaults to "False".

name

Name of the output.


Updates cause replacement.
Required property.

type

Type 49
of the value of the output.

Heat Orchestration Template reference

December 11, 2014

current

Updates cause replacement.


Optional property, defaults to "String".
Allowed values: String, Number, CommaDelimitedList,
Json

Attributes
config

The config value of the software config.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::StructuredConfig
properties:
config: {...}
group: String
inputs: [{"default": String, "type": String, "name": String,
"description": String}, {"default": String, "type": String, "name": String,
"description": String}, ...]
options: {...}
outputs: [{"type": String, "name": String, "error_output": Boolean,
"description": String}, {"type": String, "name": String, "error_output":
Boolean, "description": String}, ...]

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::StructuredConfig
Properties:
config: {...}
group: String
inputs: [{"default": String, "type": String, "name": String,
"description": String}, {"default": String, "type": String, "name": String,
"description": String}, ...]
options: {...}
outputs: [{"type": String, "name": String, "error_output": Boolean,
"description": String}, {"type": String, "name": String, "error_output":
Boolean, "description": String}, ...]

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {

50

Heat Orchestration Template reference

December 11, 2014

current

"Type": "OS::Heat::StructuredConfig",
"Properties": {
"config": {...},
"group": String,
"inputs": [{"default": String, "type": String, "name": String,
"description": String}, {"default": String, "type": String, "name": String,
"description": String}, ...],
"options": {...},
"outputs": [{"type": String, "name": String, "error_output": Boolean,
"description": String}, {"type": String, "name": String, "error_output":
Boolean, "description": String}, ...]
}
}
}
}

OS::Heat::StructuredDeployment
A deployment resource like OS::Heat::SoftwareDeployment, but which performs input value substitution on the config defined by a OS::Heat::StructuredConfig resource.
Some configuration tools have no concept of inputs, so the input value substitution needs
to occur in the deployment resource. An example of this is the JSON metadata consumed
by the cfn-init tool.
Where the config contains {get_input: input_name} this will be substituted with the value
of input_name in this resource's input_values. If get_input needs to be passed through to
the substituted configuration then a different input_key property value can be specified.
Available since 2014.1 (Icehouse).

Properties
actions

Which stack actions will result in this deployment being triggered.


Can be updated without replacement.
Optional property, defaults to "['CREATE', 'UPDATE']".
Allowed values: CREATE, UPDATE, DELETE, SUSPEND, RESUME

config

ID of software configuration resource to execute when applying to


the server.
Can be updated without replacement.
Optional property.

input_key

Name of key to use for substituting inputs during deployment


Updates cause replacement.
Optional property, defaults to "get_input".

input_values

Input values to apply to the software configuration on this server.


51

Heat Orchestration Template reference

December 11, 2014

current

Can be updated without replacement.


Optional property.
name

Name of the derived config associated with this deployment. This is


used to apply a sort order to the list of configurations currently deployed to a server.
Updates cause replacement.
Optional property.

server

ID of Nova server to apply configuration to.


Updates cause replacement.
Optional property.

signal_transport

How the server should signal to heat with the deployment output values. CFN_SIGNAL will allow an HTTP POST to a CFN keypair signed URL. HEAT_SIGNAL will allow calls to the Heat API resource-signal using the provided keystone credentials. NO_SIGNAL
will result in the resource going to the COMPLETE state without
waiting for any signal.
Updates cause replacement.
Optional property, defaults to "CFN_SIGNAL".
Allowed values: CFN_SIGNAL, HEAT_SIGNAL, NO_SIGNAL

Attributes
deploy_status_code

Returned status code from the configuration execution

deploy_stderr

Captured stderr from the configuration execution.

deploy_stdout

Captured stdout from the configuration execution.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::StructuredDeployment
properties:
actions: [Value, Value, ...]
config: String
input_key: String
input_values: {...}
name: String
server: String
signal_transport: String

52

Heat Orchestration Template reference

December 11, 2014

current

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::StructuredDeployment
Properties:
actions: [Value, Value, ...]
config: String
input_key: String
input_values: {...}
name: String
server: String
signal_transport: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::StructuredDeployment",
"Properties": {
"actions": [Value, Value, ...],
"config": String,
"input_key": String,
"input_values": {...},
"name": String,
"server": String,
"signal_transport": String
}
}
}
}

OS::Heat::StructuredDeployments
Available since 2014.2 (Juno).

Properties
actions

Which stack actions will result in this deployment being triggered.


Can be updated without replacement.
Optional property, defaults to "['CREATE', 'UPDATE']".
Allowed values: CREATE, UPDATE, DELETE, SUSPEND, RESUME

config

ID of software configuration resource to execute when applying to


the server.
Can be updated without replacement.

53

Heat Orchestration Template reference

December 11, 2014

current

Optional property.
input_key

Name of key to use for substituting inputs during deployment


Updates cause replacement.
Optional property, defaults to "get_input".

input_values

Input values to apply to the software configuration on this server.


Can be updated without replacement.
Optional property.

name

Name of the derived config associated with this deployment. This is


used to apply a sort order to the list of configurations currently deployed to a server.
Updates cause replacement.
Optional property.

servers

A map of Nova names and IDs to apply configuration to.


Updates cause replacement.
Optional property.

signal_transport

How the server should signal to heat with the deployment output values. CFN_SIGNAL will allow an HTTP POST to a CFN keypair signed URL. HEAT_SIGNAL will allow calls to the Heat API resource-signal using the provided keystone credentials. NO_SIGNAL
will result in the resource going to the COMPLETE state without
waiting for any signal.
Updates cause replacement.
Optional property, defaults to "CFN_SIGNAL".
Allowed values: CFN_SIGNAL, HEAT_SIGNAL, NO_SIGNAL

Attributes
deploy_status_codes

A map of Nova names and returned status code from the configuration execution

deploy_stderrs

A map of Nova names and captured stderrs from the configuration execution to each server.

deploy_stdouts

A map of Nova names and captured stdouts from the configuration execution to each server.
54

Heat Orchestration Template reference

December 11, 2014

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::StructuredDeployments
properties:
actions: [Value, Value, ...]
config: String
input_key: String
input_values: {...}
name: String
servers: {...}
signal_transport: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::StructuredDeployments
Properties:
actions: [Value, Value, ...]
config: String
input_key: String
input_values: {...}
name: String
servers: {...}
signal_transport: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::StructuredDeployments",
"Properties": {
"actions": [Value, Value, ...],
"config": String,
"input_key": String,
"input_values": {...},
"name": String,
"servers": {...},
"signal_transport": String
}
}
}
}

OS::Heat::SwiftSignal
Available since 2014.2 (Juno).
55

current

Heat Orchestration Template reference

December 11, 2014

current

Properties
count

The number of success signals that must be received before the stack creation
process continues.
Updates cause replacement.
Optional property, defaults to "1".
The value must be in the range 1 to 1000.

handle

URL of TempURL where resource will signal completion and optionally upload
data.
Updates cause replacement.
Required property.

timeout

The maximum number of seconds to wait for the resource to signal completion.
Once the timeout is reached, creation of the signal resource will fail.
Updates cause replacement.
Required property.
The value must be in the range 1 to 43200.

Attributes
data

JSON data that was uploaded via the SwiftSignalHandle.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::SwiftSignal
properties:
count: Number
handle: String
timeout: Number

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::SwiftSignal
Properties:
count: Number
handle: String
timeout: Number

56

Heat Orchestration Template reference

December 11, 2014

current

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::SwiftSignal",
"Properties": {
"count": Number,
"handle": String,
"timeout": Number
}
}
}
}

OS::Heat::SwiftSignalHandle
Available since 2014.2 (Juno).

Attributes
curl_cli

Convenience attribute, provides curl CLI command prefix, which can be used
for signalling handle completion or failure. You can signal success by adding
--data-binary '{"status": "SUCCESS"}' , or signal failure by adding --data-binary
'{"status": "FAILURE"}'

endpoint

Endpoint/url which can be used for signalling handle

token

Tokens are not needed for Swift TempURLs. This attribute is being kept for
compatibility with the OS::Heat::WaitConditionHandle resource

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::SwiftSignalHandle

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::SwiftSignalHandle

57

Heat Orchestration Template reference

December 11, 2014

current

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::SwiftSignalHandle"
}
}
}

OS::Heat::UpdateWaitConditionHandle
This works identically to a regular WaitConditionHandle, except that on update it clears all
signals received and changes the handle. Using this handle means that you must setup the
signal senders to send their signals again any time the update handle changes. This allows
us to roll out new configurations and be confident that they are rolled out once UPDATE
COMPLETE is reached.
Available since 2014.1 (Icehouse).

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::UpdateWaitConditionHandle

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::UpdateWaitConditionHandle

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::UpdateWaitConditionHandle"
}
}
}

58

Heat Orchestration Template reference

December 11, 2014

current

OS::Heat::WaitCondition
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: OS::Heat::WaitCondition
properties:
count: Number
handle: String
timeout: Number

59

Heat Orchestration Template reference

December 11, 2014

current

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::WaitCondition
Properties:
count: Number
handle: String
timeout: Number

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::WaitCondition",
"Properties": {
"count": Number,
"handle": String,
"timeout": Number
}
}
}
}

OS::Heat::WaitConditionHandle
Attributes
curl_cli

Convenience attribute, provides curl CLI command prefix, which can be used
for signalling handle completion or failure. You can signal success by adding
--data-binary '{"status": "SUCCESS"}' , or signal failure by adding --data-binary
'{"status": "FAILURE"}'

endpoint

Endpoint/url which can be used for signalling handle

token

Token for stack-user which can be used for signalling handle

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::WaitConditionHandle

60

Heat Orchestration Template reference

December 11, 2014

current

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::WaitConditionHandle

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Heat::WaitConditionHandle"
}
}
}

OS::Neutron::Firewall
A resource for the Firewall resource in Neutron FWaaS.

Properties
admin_state_up

Administrative state of the firewall. If false (down), firewall does


not forward packets and will drop all traffic to/from VMs behind the firewall.
Can be updated without replacement.
Optional property, defaults to "True".

description

Description for the firewall.


Can be updated without replacement.
Optional property.

firewall_policy_id

The ID of the firewall policy that this firewall is associated with.


Can be updated without replacement.
Required property.

name

Name for the firewall.


Can be updated without replacement.
Optional property.
61

Heat Orchestration Template reference

December 11, 2014

current

Attributes
admin_state_up

The administrative state of the firewall.

description

Description of the firewall.

firewall_policy_id

Unique identifier of the firewall policy used to create the firewall.

name

Name for the firewall.

show

All attributes.

status

The status of the firewall.

tenant_id

Id of the tenant owning the firewall.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::Firewall
properties:
admin_state_up: Boolean
description: String
firewall_policy_id: String
name: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::Firewall
Properties:
admin_state_up: Boolean
description: String
firewall_policy_id: String
name: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::Firewall",
"Properties": {
"admin_state_up": Boolean,
"description": String,
"firewall_policy_id": String,

62

Heat Orchestration Template reference

December 11, 2014

current

"name": String
}
}
}
}

OS::Neutron::FirewallPolicy
A resource for the FirewallPolicy resource in Neutron FWaaS.

Properties
audited

Whether this policy should be audited. When set to True, each time
the firewall policy or the associated firewall rules are changed, this
attribute will be set to False and will have to be explicitly set to True
through an update operation.
Can be updated without replacement.
Optional property, defaults to "False".

description

Description for the firewall policy.


Can be updated without replacement.
Optional property.

firewall_rules

An ordered list of firewall rules to apply to the firewall.


Can be updated without replacement.
Required property.

name

Name for the firewall policy.


Can be updated without replacement.
Optional property.

shared

Whether this policy should be shared across all tenants.


Can be updated without replacement.
Optional property, defaults to "False".

Attributes
audited

Audit status of this firewall policy.

description

Description of the firewall policy.

firewall_rules

List of firewall rules in this firewall policy.

name

Name for the firewall policy.

63

Heat Orchestration Template reference

December 11, 2014

shared

Shared status of this firewall policy.

tenant_id

Id of the tenant owning the firewall policy.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::FirewallPolicy
properties:
audited: Boolean
description: String
firewall_rules: [Value, Value, ...]
name: String
shared: Boolean

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::FirewallPolicy
Properties:
audited: Boolean
description: String
firewall_rules: [Value, Value, ...]
name: String
shared: Boolean

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::FirewallPolicy",
"Properties": {
"audited": Boolean,
"description": String,
"firewall_rules": [Value, Value, ...],
"name": String,
"shared": Boolean
}
}
}
}

OS::Neutron::FirewallRule
A resource for the FirewallRule resource in Neutron FWaaS.
64

current

Heat Orchestration Template reference

December 11, 2014

current

Properties
action

Action to be performed on the traffic matching the rule.


Can be updated without replacement.
Optional property, defaults to "deny".
Allowed values: allow, deny

description

Description for the firewall rule.


Can be updated without replacement.
Optional property.

destination_ip_address

Destination IP address or CIDR.


Can be updated without replacement.
Optional property.

destination_port

Destination port number or a range.


Can be updated without replacement.
Optional property.

enabled

Whether this rule should be enabled.


Can be updated without replacement.
Optional property, defaults to "True".

ip_version

Internet protocol version.


Can be updated without replacement.
Optional property, defaults to "4".
Allowed values: 4, 6

name

Name for the firewall rule.


Can be updated without replacement.
Optional property.

protocol

Protocol for the firewall rule.


Can be updated without replacement.
Optional property.
Allowed values: tcp, udp, icmp, None
65

Heat Orchestration Template reference


shared

December 11, 2014

current

Whether this rule should be shared across all tenants.


Can be updated without replacement.
Optional property, defaults to "False".

source_ip_address

Source IP address or CIDR.


Can be updated without replacement.
Optional property.

source_port

Source port number or a range.


Can be updated without replacement.
Optional property.

Attributes
action

Allow or deny action for this firewall rule.

description

Description of the firewall rule.

destination_ip_address

Destination ip_address for this firewall rule.

destination_port

Destination port range for this firewall rule.

enabled

Indicates whether this firewall rule is enabled or not.

firewall_policy_id

Unique identifier of the firewall policy to which this firewall rule belongs.

ip_version

Ip_version for this firewall rule.

name

Name for the firewall rule.

position

Position of the rule within the firewall policy.

protocol

Protocol value for this firewall rule.

shared

Shared status of this firewall rule.

source_ip_address

Source ip_address for this firewall rule.

source_port

Source port range for this firewall rule.

tenant_id

Id of the tenant owning the firewall.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:

66

Heat Orchestration Template reference

December 11, 2014

type: OS::Neutron::FirewallRule
properties:
action: String
description: String
destination_ip_address: String
destination_port: String
enabled: Boolean
ip_version: String
name: String
protocol: String
shared: Boolean
source_ip_address: String
source_port: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::FirewallRule
Properties:
action: String
description: String
destination_ip_address: String
destination_port: String
enabled: Boolean
ip_version: String
name: String
protocol: String
shared: Boolean
source_ip_address: String
source_port: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::FirewallRule",
"Properties": {
"action": String,
"description": String,
"destination_ip_address": String,
"destination_port": String,
"enabled": Boolean,
"ip_version": String,
"name": String,
"protocol": String,
"shared": Boolean,
"source_ip_address": String,
"source_port": String
}
}
}
}

67

current

Heat Orchestration Template reference

December 11, 2014

current

OS::Neutron::FloatingIP
Properties
fixed_ip_address

IP address to use if the port has multiple addresses.


Can be updated without replacement.
Optional property.

floating_network

Network to allocate floating IP from.


Updates cause replacement.
Optional property.

port_id

ID of an existing port with at least one IP address to associate


with this floating IP.
Can be updated without replacement.
Optional property.

value_specs

Extra parameters to include in the "floatingip" object in the creation request. Parameters are often specific to installed hardware or extensions.
Updates cause replacement.
Optional property, defaults to "{}".

floating_network_id

Note
DEPRECATED - Use property floating_network.
Updates cause replacement.
Optional property.

Attributes
fixed_ip_address

IP address of the associated port, if specified.

floating_ip_address

The allocated address of this IP.

floating_network_id

ID of the network in which this IP is allocated.

port_id

ID of the port associated with this IP.

router_id

ID of the router used as gateway, set when associated with a


port.

show

All attributes.
68

Heat Orchestration Template reference


tenant_id

December 11, 2014


The tenant owning this floating IP.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::FloatingIP
properties:
fixed_ip_address: String
floating_network: String
port_id: String
value_specs: {...}

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::FloatingIP
Properties:
fixed_ip_address: String
floating_network: String
port_id: String
value_specs: {...}

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::FloatingIP",
"Properties": {
"fixed_ip_address": String,
"floating_network": String,
"port_id": String,
"value_specs": {...}
}
}
}
}

OS::Neutron::FloatingIPAssociation
Properties
fixed_ip_address

IP address to use if the port has multiple addresses.


Can be updated without replacement.
69

current

Heat Orchestration Template reference

December 11, 2014

current

Optional property.
floatingip_id

ID of the floating IP to associate.


Can be updated without replacement.
Required property.

port_id

ID of an existing port with at least one IP address to associate with


this floating IP.
Can be updated without replacement.
Required property.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::FloatingIPAssociation
properties:
fixed_ip_address: String
floatingip_id: String
port_id: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::FloatingIPAssociation
Properties:
fixed_ip_address: String
floatingip_id: String
port_id: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::FloatingIPAssociation",
"Properties": {
"fixed_ip_address": String,
"floatingip_id": String,
"port_id": String
}
}
}
}

70

Heat Orchestration Template reference

December 11, 2014

current

OS::Neutron::HealthMonitor
A resource for managing health monitors for load balancers in Neutron.

Properties
admin_state_up

The administrative state of the health monitor.


Can be updated without replacement.
Optional property, defaults to "True".

delay

The minimum time in seconds between regular connections of the


member.
Can be updated without replacement.
Required property.

expected_codes

The list of HTTP status codes expected in response from the member
to declare it healthy.
Can be updated without replacement.
Optional property.

http_method

The HTTP method used for requests by the monitor of type HTTP.
Can be updated without replacement.
Optional property.

max_retries

Number of permissible connection failures before changing the member status to INACTIVE.
Can be updated without replacement.
Required property.

timeout

Maximum number of seconds for a monitor to wait for a connection


to be established before it times out.
Can be updated without replacement.
Required property.

type

One of predefined health monitor types.


Updates cause replacement.
Required property.
Allowed values: PING, TCP, HTTP, HTTPS
71

Heat Orchestration Template reference


url_path

December 11, 2014

current

The HTTP path used in the HTTP request used by the monitor to test a
member health.
Can be updated without replacement.
Optional property.

Attributes
admin_state_up

The administrative state of this health monitor.

delay

The minimum time in seconds between regular connections of the


member.

expected_codes

The list of HTTP status codes expected in response from the member
to declare it healthy.

http_method

The HTTP method used for requests by the monitor of type HTTP.

max_retries

Number of permissible connection failures before changing the member status to INACTIVE.

show

All attributes.

tenant_id

Tenant owning the health monitor.

timeout

Maximum number of seconds for a monitor to wait for a connection


to be established before it times out.

type

One of predefined health monitor types.

url_path

The HTTP path used in the HTTP request used by the monitor to test a
member health.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::HealthMonitor
properties:
admin_state_up: Boolean
delay: Integer
expected_codes: String
http_method: String
max_retries: Integer
timeout: Integer
type: String
url_path: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'

72

Heat Orchestration Template reference

December 11, 2014

...
Resources:
...
TheResource:
Type: OS::Neutron::HealthMonitor
Properties:
admin_state_up: Boolean
delay: Integer
expected_codes: String
http_method: String
max_retries: Integer
timeout: Integer
type: String
url_path: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::HealthMonitor",
"Properties": {
"admin_state_up": Boolean,
"delay": Integer,
"expected_codes": String,
"http_method": String,
"max_retries": Integer,
"timeout": Integer,
"type": String,
"url_path": String
}
}
}
}

OS::Neutron::IKEPolicy
A resource for IKE policy in Neutron.

Properties
auth_algorithm

Authentication hash algorithm for the ike policy.


Updates cause replacement.
Optional property, defaults to "sha1".
Allowed values: sha1

description

Description for the ike policy.


Can be updated without replacement.
Optional property.
73

current

Heat Orchestration Template reference


encryption_algorithm

December 11, 2014

current

Encryption algorithm for the ike policy.


Updates cause replacement.
Optional property, defaults to "aes-128".
Allowed values: 3des, aes-128, aes-192, aes-256

ike_version

Version for the ike policy.


Updates cause replacement.
Optional property, defaults to "v1".
Allowed values: v1, v2

lifetime

Safety assessment lifetime configuration for the ike policy.


Updates cause replacement.
Optional property.
Map properties:
units

Safety assessment lifetime units.


Updates cause replacement.
Optional property, defaults to "seconds".
Allowed values: seconds, kilobytes

value

Safety assessment lifetime value in specified


units.
Updates cause replacement.
Optional property, defaults to "3600".

name

Name for the ike policy.


Can be updated without replacement.
Optional property.

pfs

Perfect forward secrecy in lowercase for the ike policy.


Updates cause replacement.
Optional property, defaults to "group5".
Allowed values: group2, group5, group14

phase1_negotiation_mode

74
Negotiation
mode for the ike policy.

Heat Orchestration Template reference

December 11, 2014

current

Updates cause replacement.


Optional property, defaults to "main".
Allowed values: main

Attributes
auth_algorithm

The authentication hash algorithm used by the ike policy.

description

The description of the ike policy.

encryption_algorithm

The encryption algorithm used by the ike policy.

ike_version

The version of the ike policy.

lifetime

The safety assessment lifetime configuration for the ike


policy.

name

The name of the ike policy.

pfs

The perfect forward secrecy of the ike policy.

phase1_negotiation_mode

The negotiation mode of the ike policy.

tenant_id

The unique identifier of the tenant owning the ike policy.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::IKEPolicy
properties:
auth_algorithm: String
description: String
encryption_algorithm: String
ike_version: String
lifetime: {"units": String, "value": Integer}
name: String
pfs: String
phase1_negotiation_mode: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::IKEPolicy

75

Heat Orchestration Template reference

December 11, 2014

Properties:
auth_algorithm: String
description: String
encryption_algorithm: String
ike_version: String
lifetime: {"units": String, "value": Integer}
name: String
pfs: String
phase1_negotiation_mode: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::IKEPolicy",
"Properties": {
"auth_algorithm": String,
"description": String,
"encryption_algorithm": String,
"ike_version": String,
"lifetime": {"units": String, "value": Integer},
"name": String,
"pfs": String,
"phase1_negotiation_mode": String
}
}
}
}

OS::Neutron::IPsecPolicy
A resource for IPsec policy in Neutron.

Properties
auth_algorithm

Authentication hash algorithm for the ipsec policy.


Updates cause replacement.
Optional property, defaults to "sha1".
Allowed values: sha1

description

Description for the ipsec policy.


Can be updated without replacement.
Optional property.

encapsulation_mode

Encapsulation mode for the ipsec policy.


Updates cause replacement.
76

current

Heat Orchestration Template reference

December 11, 2014

current

Optional property, defaults to "tunnel".


Allowed values: tunnel, transport
encryption_algorithm

Encryption algorithm for the ipsec policy.


Updates cause replacement.
Optional property, defaults to "aes-128".
Allowed values: 3des, aes-128, aes-192, aes-256

lifetime

Safety assessment lifetime configuration for the ipsec policy.


Updates cause replacement.
Optional property.
Map properties:
units

Safety assessment lifetime units.


Updates cause replacement.
Optional property, defaults to "seconds".
Allowed values: seconds, kilobytes

value

Safety assessment lifetime value in specified units.


Updates cause replacement.
Optional property, defaults to "3600".

name

Name for the ipsec policy.


Can be updated without replacement.
Optional property.

pfs

Perfect forward secrecy for the ipsec policy.


Updates cause replacement.
Optional property, defaults to "group5".
Allowed values: group2, group5, group14

transform_protocol

Transform protocol for the ipsec policy.


Updates cause replacement.
Optional property, defaults to "esp".
Allowed values: esp, ah, ah-esp

77

Heat Orchestration Template reference

December 11, 2014

current

Attributes
auth_algorithm

The authentication hash algorithm of the ipsec policy.

description

The description of the ipsec policy.

encapsulation_mode

The encapsulation mode of the ipsec policy.

encryption_algorithm

The encryption algorithm of the ipsec policy.

lifetime

The safety assessment lifetime configuration of the ipsec policy.

name

The name of the ipsec policy.

pfs

The perfect forward secrecy of the ipsec policy.

tenant_id

The unique identifier of the tenant owning the ipsec policy.

transform_protocol

The transform protocol of the ipsec policy.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::IPsecPolicy
properties:
auth_algorithm: String
description: String
encapsulation_mode: String
encryption_algorithm: String
lifetime: {"units": String, "value": Integer}
name: String
pfs: String
transform_protocol: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::IPsecPolicy
Properties:
auth_algorithm: String
description: String
encapsulation_mode: String
encryption_algorithm: String
lifetime: {"units": String, "value": Integer}
name: String
pfs: String

78

Heat Orchestration Template reference

December 11, 2014

current

transform_protocol: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::IPsecPolicy",
"Properties": {
"auth_algorithm": String,
"description": String,
"encapsulation_mode": String,
"encryption_algorithm": String,
"lifetime": {"units": String, "value": Integer},
"name": String,
"pfs": String,
"transform_protocol": String
}
}
}
}

OS::Neutron::IPsecSiteConnection
A resource for IPsec site connection in Neutron.

Properties
admin_state_up

Administrative state for the ipsec site connection.


Can be updated without replacement.
Optional property, defaults to "True".

description

Description for the ipsec site connection.


Can be updated without replacement.
Optional property.

dpd

Dead Peer Detection protocol configuration for the ipsec site connection.
Updates cause replacement.
Optional property.
Map properties:
actions

Controls DPD protocol mode.


Updates cause replacement.
79

Heat Orchestration Template reference

December 11, 2014

current

Optional property, defaults to "hold".


Allowed values: clear, disabled, hold, restart, restart-bypeer
interval

Number of seconds for the DPD delay.


Updates cause replacement.
Optional property, defaults to "30".

timeout

Number of seconds for the DPD timeout.


Updates cause replacement.
Optional property, defaults to "120".

ikepolicy_id

Unique identifier for the ike policy associated with the ipsec site connection.
Updates cause replacement.
Required property.

initiator

Initiator state in lowercase for the ipsec site connection.


Updates cause replacement.
Optional property, defaults to "bi-directional".
Allowed values: bi-directional, response-only

ipsecpolicy_id

Unique identifier for the ipsec policy associated with the ipsec site
connection.
Updates cause replacement.
Required property.

mtu

Maximum transmission unit size (in bytes) for the ipsec site connection.
Updates cause replacement.
Optional property, defaults to "1500".

name

Name for the ipsec site connection.


Can be updated without replacement.
Optional property.

peer_address

Remote branch router public IPv4 address or IPv6 address or FQDN.


Updates cause replacement.

80

Heat Orchestration Template reference

December 11, 2014

current

Required property.
peer_cidrs

Remote subnet(s) in CIDR format.


Updates cause replacement.
Required property.

peer_id

Remote branch router identity.


Updates cause replacement.
Required property.

psk

Pre-shared key string for the ipsec site connection.


Updates cause replacement.
Required property.

vpnservice_id

Unique identifier for the vpn service associated with the ipsec site connection.
Updates cause replacement.
Required property.

Attributes
admin_state_up

The administrative state of the ipsec site connection.

auth_mode

The authentication mode of the ipsec site connection.

description

The description of the ipsec site connection.

dpd

The dead peer detection protocol configuration of the ipsec site connection.

ikepolicy_id

The unique identifier of ike policy associated with the ipsec site connection.

initiator

The initiator of the ipsec site connection.

ipsecpolicy_id

The unique identifier of ipsec policy associated with the ipsec site connection.

mtu

The maximum transmission unit size (in bytes) of the ipsec site connection.

name

The name of the ipsec site connection.

peer_address

The remote branch router public IPv4 address or IPv6 address or


FQDN.

81

Heat Orchestration Template reference

December 11, 2014

current

peer_cidrs

The remote subnet(s) in CIDR format of the ipsec site connection.

peer_id

The remote branch router identity of the ipsec site connection.

psk

The pre-shared key string of the ipsec site connection.

route_mode

The route mode of the ipsec site connection.

status

The status of the ipsec site connection.

tenant_id

The unique identifier of the tenant owning the ipsec site connection.

vpnservice_id

The unique identifier of vpn service associated with the ipsec site connection.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::IPsecSiteConnection
properties:
admin_state_up: Boolean
description: String
dpd: {"interval": Integer, "timeout": Integer, "actions": String}
ikepolicy_id: String
initiator: String
ipsecpolicy_id: String
mtu: Integer
name: String
peer_address: String
peer_cidrs: [Value, Value, ...]
peer_id: String
psk: String
vpnservice_id: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::IPsecSiteConnection
Properties:
admin_state_up: Boolean
description: String
dpd: {"interval": Integer, "timeout": Integer, "actions": String}
ikepolicy_id: String
initiator: String
ipsecpolicy_id: String
mtu: Integer
name: String
peer_address: String

82

Heat Orchestration Template reference

December 11, 2014

current

peer_cidrs: [Value, Value, ...]


peer_id: String
psk: String
vpnservice_id: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::IPsecSiteConnection",
"Properties": {
"admin_state_up": Boolean,
"description": String,
"dpd": {"interval": Integer, "timeout": Integer, "actions": String},
"ikepolicy_id": String,
"initiator": String,
"ipsecpolicy_id": String,
"mtu": Integer,
"name": String,
"peer_address": String,
"peer_cidrs": [Value, Value, ...],
"peer_id": String,
"psk": String,
"vpnservice_id": String
}
}
}
}

OS::Neutron::LoadBalancer
A resource to link a neutron pool with servers.

Properties
members

The list of Nova server IDs load balanced.


Can be updated without replacement.
Optional property.

pool_id

The ID of the load balancing pool.


Can be updated without replacement.
Required property.

protocol_port

Port number on which the servers are running on the members.


Updates cause replacement.
Required property.
83

Heat Orchestration Template reference

December 11, 2014

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::LoadBalancer
properties:
members: [Value, Value, ...]
pool_id: String
protocol_port: Integer

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::LoadBalancer
Properties:
members: [Value, Value, ...]
pool_id: String
protocol_port: Integer

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::LoadBalancer",
"Properties": {
"members": [Value, Value, ...],
"pool_id": String,
"protocol_port": Integer
}
}
}
}

OS::Neutron::MeteringLabel
A resource for creating neutron metering label.
Available since 2014.1 (Icehouse).

Properties
description

Description of the metering label.


Updates cause replacement.
Optional property.
84

current

Heat Orchestration Template reference


name

December 11, 2014

Name of the metering label.


Updates cause replacement.
Optional property.

Attributes
description

Description of the metering label.

name

Name of the metering label.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::MeteringLabel
properties:
description: String
name: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::MeteringLabel
Properties:
description: String
name: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::MeteringLabel",
"Properties": {
"description": String,
"name": String
}
}
}
}

OS::Neutron::MeteringRule
A resource to create rule for some label.
Available since 2014.1 (Icehouse).

85

current

Heat Orchestration Template reference

December 11, 2014

current

Properties
direction

The direction in which metering rule is applied, either ingress or


egress.
Updates cause replacement.
Optional property, defaults to "ingress".
Allowed values: ingress, egress

excluded

Specify whether the remote_ip_prefix will be excluded or not


from traffic counters of the metering label. For example to not
count the traffic of a specific IP address of a range.
Updates cause replacement.
Optional property, defaults to "False".

metering_label_id

The metering label ID to associate with this metering rule.


Updates cause replacement.
Required property.

remote_ip_prefix

Indicates remote IP prefix to be associated with this metering


rule.
Updates cause replacement.
Required property.

Attributes
direction

The direction in which metering rule is applied.

excluded

Exclude state for cidr.

metering_label_id

The metering label ID to associate with this metering rule.

remote_ip_prefix

CIDR to be associated with this metering rule.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::MeteringRule
properties:
direction: String
excluded: Boolean
metering_label_id: String
remote_ip_prefix: String

86

Heat Orchestration Template reference

December 11, 2014

current

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::MeteringRule
Properties:
direction: String
excluded: Boolean
metering_label_id: String
remote_ip_prefix: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::MeteringRule",
"Properties": {
"direction": String,
"excluded": Boolean,
"metering_label_id": String,
"remote_ip_prefix": String
}
}
}
}

OS::Neutron::Net
Properties
admin_state_up

A boolean value specifying the administrative status of the network.


Can be updated without replacement.
Optional property, defaults to "True".

dhcp_agent_ids

The IDs of the DHCP agent to schedule the network. Note that the
default policy setting in Neutron restricts usage of this property to administrative users only.
Can be updated without replacement.
Optional property.

name

A string specifying a symbolic name for the network, which is not required to be unique.
Can be updated without replacement.
87

Heat Orchestration Template reference

December 11, 2014

current

Optional property.
shared

Whether this network should be shared across all tenants. Note that
the default policy setting restricts usage of this attribute to administrative users only.
Can be updated without replacement.
Optional property, defaults to "False".

tenant_id

The ID of the tenant which will own the network. Only administrative
users can set the tenant identifier; this cannot be changed using authorization policies.
Updates cause replacement.
Optional property.

value_specs

Extra parameters to include in the "network" object in the creation request. Parameters are often specific to installed hardware or extensions.
Can be updated without replacement.
Optional property, defaults to "{}".

Attributes
admin_state_up

The administrative status of the network.

name

The name of the network.

show

All attributes.

status

The status of the network.

subnets

Subnets of this network.

tenant_id

The tenant owning this network.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::Net
properties:
admin_state_up: Boolean
dhcp_agent_ids: [Value, Value, ...]
name: String
shared: Boolean
tenant_id: String
value_specs: {...}

88

Heat Orchestration Template reference

December 11, 2014

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::Net
Properties:
admin_state_up: Boolean
dhcp_agent_ids: [Value, Value, ...]
name: String
shared: Boolean
tenant_id: String
value_specs: {...}

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::Net",
"Properties": {
"admin_state_up": Boolean,
"dhcp_agent_ids": [Value, Value, ...],
"name": String,
"shared": Boolean,
"tenant_id": String,
"value_specs": {...}
}
}
}
}

OS::Neutron::NetworkGateway
A resource for the Network Gateway resource in Neutron Network Gateway.
Available since 2014.1 (Icehouse).

Properties
connections

Connection info for this network gateway.


Can be updated without replacement.
Optional property, defaults to "{}".
List contents:
*

Updates cause replacement.


Optional property.
89

current

Heat Orchestration Template reference

December 11, 2014

current

Map properties:
network

The internal network to connect on the network gateway.


Updates cause replacement.
Optional property.

segmentation_id

The id for L2 segment on the external side


of the network gateway. Must be specified
when using vlan.
Updates cause replacement.
Optional property.
The value must be in the range 0 to 4094.

segmentation_type

L2 segmentation strategy on the external


side of the network gateway.
Updates cause replacement.
Optional property, defaults to "flat".
Allowed values: flat, vlan

Note

network_id

DEPRECATED - Use property network.


Updates cause replacement.
Optional property.
devices

Device info for this network gateway.


Can be updated without replacement.
Required property.
The length must be at least 1.
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
id

90 The device id for the network gateway.

Heat Orchestration Template reference

December 11, 2014

current

Updates cause replacement.


Required property.
interface_name

The interface name for the network gateway.


Updates cause replacement.
Required property.

name

The name of the network gateway.


Can be updated without replacement.
Optional property.

Attributes
default

A boolean value of default flag.

show

All attributes.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::NetworkGateway
properties:
connections: [{"network_id": String, "segmentation_id": Integer,
"segmentation_type": String, "network": String}, {"network_id": String,
"segmentation_id": Integer, "segmentation_type": String, "network": String},
...]
devices: [{"interface_name": String, "id": String}, {"interface_name":
String, "id": String}, ...]
name: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::NetworkGateway
Properties:
connections: [{"network_id": String, "segmentation_id": Integer,
"segmentation_type": String, "network": String}, {"network_id": String,
"segmentation_id": Integer, "segmentation_type": String, "network": String},
...]
devices: [{"interface_name": String, "id": String}, {"interface_name":
String, "id": String}, ...]
name: String

91

Heat Orchestration Template reference

December 11, 2014

current

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::NetworkGateway",
"Properties": {
"connections": [{"network_id": String, "segmentation_id": Integer,
"segmentation_type": String, "network": String}, {"network_id": String,
"segmentation_id": Integer, "segmentation_type": String, "network": String},
...],
"devices": [{"interface_name": String, "id": String},
{"interface_name": String, "id": String}, ...],
"name": String
}
}
}
}

OS::Neutron::Pool
A resource for managing load balancer pools in Neutron.

Properties
admin_state_up

The administrative state of this pool.


Can be updated without replacement.
Optional property, defaults to "True".

description

Description of the pool.


Can be updated without replacement.
Optional property.

lb_method

The algorithm used to distribute load between the members of the


pool.
Can be updated without replacement.
Required property.
Allowed values: ROUND_ROBIN, LEAST_CONNECTIONS, SOURCE_IP

monitors

List of health monitors associated with the pool.


Can be updated without replacement.
Optional property, defaults to "[]".

name

Name of the pool.


92

Heat Orchestration Template reference

December 11, 2014

current

Updates cause replacement.


Optional property.
protocol

Protocol for balancing.


Updates cause replacement.
Required property.
Allowed values: TCP, HTTP, HTTPS

subnet

The subnet for the port on which the members of the pool will be
connected.
Updates cause replacement.
Optional property.

vip

IP address and port of the pool.


Updates cause replacement.
Required property.
Map properties:
address

IP address of the vip.


Updates cause replacement.
Optional property.

admin_state_up

The administrative state of this vip.


Updates cause replacement.
Optional property, defaults to "True".

connection_limit

The maximum number of connections


per second allowed for the vip.
Updates cause replacement.
Optional property.

description

Description of the vip.


Updates cause replacement.
Optional property.

name

Name of the vip.


Updates cause replacement.

93

Heat Orchestration Template reference

December 11, 2014

current

Optional property.
protocol_port

TCP port on which to listen for client traffic that is associated with the vip address.
Updates cause replacement.
Required property.

session_persistence

Configuration of session persistence.


Updates cause replacement.
Optional property.
Map properties:
cookie_name

Name of the cookie, required if type is


APP_COOKIE.
Updates cause replacement.
Optional property.

type

Method of implementation of session persistence feature.


Updates cause replacement.
Required property.
Allowed values: SOURCE_IP,
HTTP_COOKIE,
APP_COOKIE

subnet

Subnet of the vip.


Updates cause replacement.
Optional property.

subnet_id

Note
DEPRECATED - Use property subnet.
Updates cause replacement.
Optional property.
94

Heat Orchestration Template reference

December 11, 2014

current

Attributes
admin_state_up

The administrative state of this pool.

description

Description of the pool.

lb_method

The algorithm used to distribute load between the members of the


pool.

name

Name of the pool.

protocol

Protocol to balance.

subnet_id

The subnet for the port on which the members of the pool will be
connected.

tenant_id

Tenant owning the pool.

vip

Vip associated with the pool.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::Pool
properties:
admin_state_up: Boolean
description: String
lb_method: String
monitors: [Value, Value, ...]
name: String
protocol: String
subnet: String
vip: {"session_persistence": {"cookie_name": String, "type": String},
"subnet": String, "name": String, "address": String, "protocol_port":
Integer, "connection_limit": Integer, "admin_state_up": Boolean,
"description": String}

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::Pool
Properties:
admin_state_up: Boolean
description: String
lb_method: String
monitors: [Value, Value, ...]
name: String

95

Heat Orchestration Template reference

December 11, 2014

current

protocol: String
subnet: String
vip: {"session_persistence": {"cookie_name": String, "type": String},
"subnet": String, "name": String, "address": String, "protocol_port":
Integer, "connection_limit": Integer, "admin_state_up": Boolean,
"description": String}

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::Pool",
"Properties": {
"admin_state_up": Boolean,
"description": String,
"lb_method": String,
"monitors": [Value, Value, ...],
"name": String,
"protocol": String,
"subnet": String,
"vip": {"session_persistence": {"cookie_name": String,
"type": String}, "subnet": String, "name": String, "address": String,
"protocol_port": Integer, "connection_limit": Integer, "admin_state_up":
Boolean, "description": String}
}
}
}
}

OS::Neutron::PoolMember
A resource to handle load balancer members.
Available since 2014.1 (Icehouse).

Properties
address

IP address of the pool member on the pool network.


Updates cause replacement.
Required property.

admin_state_up

The administrative state of the pool member.


Updates cause replacement.
Optional property, defaults to "True".

pool_id

The ID of the load balancing pool.


Can be updated without replacement.
96

Heat Orchestration Template reference

December 11, 2014

current

Required property.
protocol_port

TCP port on which the pool member listens for requests or connections.
Updates cause replacement.
Required property.
The value must be in the range 0 to 65535.

weight

Weight of pool member in the pool (default to 1).


Can be updated without replacement.
Optional property.
The value must be in the range 0 to 256.

Attributes
address

IP address of the pool member.

admin_state_up

The administrative state of this pool member.

pool_id

The ID of the load balancing pool.

protocol_port

TCP port on which the pool member listens for requests or connections.

show

All attributes.

tenant_id

Tenant owning the pool member.

weight

Weight of the pool member in the pool.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::PoolMember
properties:
address: String
admin_state_up: Boolean
pool_id: String
protocol_port: Integer
weight: Integer

97

Heat Orchestration Template reference

December 11, 2014

current

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::PoolMember
Properties:
address: String
admin_state_up: Boolean
pool_id: String
protocol_port: Integer
weight: Integer

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::PoolMember",
"Properties": {
"address": String,
"admin_state_up": Boolean,
"pool_id": String,
"protocol_port": Integer,
"weight": Integer
}
}
}
}

OS::Neutron::Port
Properties
admin_state_up

The administrative state of this port.


Can be updated without replacement.
Optional property, defaults to "True".

allowed_address_pairs

Additional MAC/IP address pairs allowed to pass through


the port.
Updates cause replacement.
Optional property.
List contents:
*

Updates cause replacement.


Optional property.

98

Heat Orchestration Template reference

December 11, 2014

current

Map properties:
ip_address

IP address to allow through this port.


Updates cause replacement.
Required property.

mac_address

MAC address to allow through this


port.
Updates cause replacement.
Optional property.

device_id

Device ID of this port.


Can be updated without replacement.
Optional property.

device_owner

Name of the network owning the port. The value is typically network:floatingip or network:router_interface or
network:dhcp
Can be updated without replacement.
Optional property.

fixed_ips

Desired IPs for this port.


Can be updated without replacement.
Optional property, defaults to "[]".
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
ip_address

IP address desired in the subnet for this


port.
Updates cause replacement.
Optional property.

subnet

99

Subnet in which to allocate the IP address for this port.


Updates cause replacement.

Heat Orchestration Template reference

December 11, 2014

current
Optional property.

Note

subnet_id

DEPRECATED - Use property


subnet.
Updates cause replacement.
Optional property.
mac_address

MAC address to give to this port.


Updates cause replacement.
Optional property.

name

A symbolic name for this port.


Can be updated without replacement.
Optional property.

network

Network this port belongs to.


Updates cause replacement.
Optional property.

replacement_policy

Policy on how to respond to a stack-update for this resource. REPLACE_ALWAYS will replace the port regardless
of any property changes. AUTO will update the existing port
for any changed update-allowed property.
Can be updated without replacement.
Optional property, defaults to "REPLACE_ALWAYS".
Allowed values: REPLACE_ALWAYS, AUTO

security_groups

Security group IDs to associate with this port.


Can be updated without replacement.
Optional property.

value_specs

Extra parameters to include in the "port" object in the creation request.


Updates cause replacement.
Optional property, defaults to "{}".
100

Heat Orchestration Template reference

December 11, 2014

current

Note

network_id

DEPRECATED - Use property network.


Updates cause replacement.
Optional property.

Attributes
admin_state_up

The administrative state of this port.

allowed_address_pairs

Additional MAC/IP address pairs allowed to pass through a


port.

device_id

Unique identifier for the device.

device_owner

Name of the network owning the port.

fixed_ips

Fixed IP addresses.

mac_address

MAC address of the port.

name

Friendly name of the port.

network_id

Unique identifier for the network owning the port.

security_groups

A list of security groups for the port.

show

All attributes.

status

The status of the port.

subnets

A list of all subnet attributes for the port.

tenant_id

Tenant owning the port.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::Port
properties:
admin_state_up: Boolean
allowed_address_pairs: [{"ip_address": String, "mac_address": String},
{"ip_address": String, "mac_address": String}, ...]
device_id: String
device_owner: String
fixed_ips: [{"subnet_id": String, "subnet": String, "ip_address":
String}, {"subnet_id": String, "subnet": String, "ip_address": String}, ...]
mac_address: String
name: String
network: String
replacement_policy: String

101

Heat Orchestration Template reference

December 11, 2014

current

security_groups: [Value, Value, ...]


value_specs: {...}

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::Port
Properties:
admin_state_up: Boolean
allowed_address_pairs: [{"ip_address": String, "mac_address": String},
{"ip_address": String, "mac_address": String}, ...]
device_id: String
device_owner: String
fixed_ips: [{"subnet_id": String, "subnet": String, "ip_address":
String}, {"subnet_id": String, "subnet": String, "ip_address": String}, ...]
mac_address: String
name: String
network: String
replacement_policy: String
security_groups: [Value, Value, ...]
value_specs: {...}

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::Port",
"Properties": {
"admin_state_up": Boolean,
"allowed_address_pairs": [{"ip_address": String, "mac_address":
String}, {"ip_address": String, "mac_address": String}, ...],
"device_id": String,
"device_owner": String,
"fixed_ips": [{"subnet_id": String, "subnet": String, "ip_address":
String}, {"subnet_id": String, "subnet": String, "ip_address": String}, ...],
"mac_address": String,
"name": String,
"network": String,
"replacement_policy": String,
"security_groups": [Value, Value, ...],
"value_specs": {...}
}
}
}
}

OS::Neutron::ProviderNet
Available since 2014.1 (Icehouse).

102

Heat Orchestration Template reference

December 11, 2014

current

Properties
admin_state_up

A boolean value specifying the administrative status of the network.


Can be updated without replacement.
Optional property, defaults to "True".

name

A string specifying a symbolic name for the network, which is not


required to be unique.
Can be updated without replacement.
Optional property.

network_type

A string specifying the provider network type for the network.


Can be updated without replacement.
Required property.
Allowed values: vlan, flat

physical_network

A string specifying physical network mapping for the network.


Can be updated without replacement.
Required property.

segmentation_id

A string specifying the segmentation id for the network.


Can be updated without replacement.
Optional property.

shared

Whether this network should be shared across all tenants.


Can be updated without replacement.
Optional property, defaults to "True".

Attributes
show

All attributes.

status

The status of the network.

subnets

Subnets of this network.

103

Heat Orchestration Template reference

December 11, 2014

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::ProviderNet
properties:
admin_state_up: Boolean
name: String
network_type: String
physical_network: String
segmentation_id: String
shared: Boolean

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::ProviderNet
Properties:
admin_state_up: Boolean
name: String
network_type: String
physical_network: String
segmentation_id: String
shared: Boolean

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::ProviderNet",
"Properties": {
"admin_state_up": Boolean,
"name": String,
"network_type": String,
"physical_network": String,
"segmentation_id": String,
"shared": Boolean
}
}
}
}

OS::Neutron::Router
Properties
admin_state_up

The administrative state of the router.


104

current

Heat Orchestration Template reference

December 11, 2014

current

Can be updated without replacement.


Optional property, defaults to "True".
external_gateway_info

External network gateway configuration for a router.


Can be updated without replacement.
Optional property.
Map properties:
enable_snat

Enables Source NAT on the router gateway. NOTE: The default policy setting in
Neutron restricts usage of this property to
administrative users only.
Can be updated without replacement.
Optional property.

network

ID or name of the external network for the


gateway.
Can be updated without replacement.
Required property.

l3_agent_id

ID of the L3 agent. NOTE: The default policy setting in Neutron restricts usage of this property to administrative users
only.
Can be updated without replacement.
Optional property.

name

The name of the router.


Can be updated without replacement.
Optional property.

value_specs

Extra parameters to include in the creation request.


Can be updated without replacement.
Optional property, defaults to "{}".

Attributes
admin_state_up

Administrative state of the router.

external_gateway_info

Gateway network for the router.


105

Heat Orchestration Template reference

December 11, 2014

name

Friendly name of the router.

show

All attributes.

status

The status of the router.

tenant_id

Tenant owning the router.

current

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::Router
properties:
admin_state_up: Boolean
external_gateway_info: {"enable_snat": Boolean, "network": String}
l3_agent_id: String
name: String
value_specs: {...}

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::Router
Properties:
admin_state_up: Boolean
external_gateway_info: {"enable_snat": Boolean, "network": String}
l3_agent_id: String
name: String
value_specs: {...}

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::Router",
"Properties": {
"admin_state_up": Boolean,
"external_gateway_info": {"enable_snat": Boolean, "network": String},
"l3_agent_id": String,
"name": String,
"value_specs": {...}
}
}
}
}

106

Heat Orchestration Template reference

December 11, 2014

current

OS::Neutron::RouterGateway
Note
DEPRECATED - RouterGateway resource is deprecated and should not be used.
Instead use the `external_gateway_info` property in the router resource to set
up the gateway.

Properties
network

external network for the gateway.


Updates cause replacement.
Optional property.

router_id

ID of the router.
Updates cause replacement.
Required property.

network_id

Note
DEPRECATED - Use property network.
Updates cause replacement.
Optional property.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::RouterGateway
properties:
network: String
router_id: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::RouterGateway
Properties:
network: String
router_id: String

107

Heat Orchestration Template reference

December 11, 2014

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::RouterGateway",
"Properties": {
"network": String,
"router_id": String
}
}
}
}

OS::Neutron::RouterInterface
Properties
port_id

The port id, either subnet or port_id should be specified.


Updates cause replacement.
Optional property.

router_id

The router id.


Updates cause replacement.
Required property.

subnet

The subnet, either subnet or port_id should be specified.


Updates cause replacement.
Optional property.

subnet_id

Note
DEPRECATED - Use property subnet.
Updates cause replacement.
Optional property.

108

current

Heat Orchestration Template reference

December 11, 2014

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::RouterInterface
properties:
port_id: String
router_id: String
subnet: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::RouterInterface
Properties:
port_id: String
router_id: String
subnet: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::RouterInterface",
"Properties": {
"port_id": String,
"router_id": String,
"subnet": String
}
}
}
}

OS::Neutron::SecurityGroup
Available since 2014.1 (Icehouse).

Properties
description

Description of the security group.


Can be updated without replacement.
Optional property.
109

current

Heat Orchestration Template reference


name

December 11, 2014

current

A string specifying a symbolic name for the security group, which is not required to be unique.
Can be updated without replacement.
Optional property.

rules

List of security group rules.


Can be updated without replacement.
Optional property, defaults to "[]".
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
direction

The direction in which the security group rule


is applied. For a compute instance, an ingress
security group rule matches traffic that is incoming (ingress) for that instance. An egress
rule is applied to traffic leaving the instance.
Updates cause replacement.
Optional property, defaults to "ingress".
Allowed values: ingress, egress

ethertype

Ethertype of the traffic.


Updates cause replacement.
Optional property, defaults to "IPv4".
Allowed values: IPv4, IPv6

port_range_max

The maximum port number in the range


that is matched by the security group rule.
The port_range_min attribute constrains the
port_range_max attribute. If the protocol is
ICMP, this value must be an ICMP type.
Updates cause replacement.
Optional property.

port_range_min

The minimum port number in the range


that is matched by the security group rule. If
the protocol is TCP or UDP, this value must
be less than or equal to the value of the

110

Heat Orchestration Template reference

December 11, 2014

current

port_range_max attribute. If the protocol is


ICMP, this value must be an ICMP type.
Updates cause replacement.
Optional property.
protocol

The protocol that is matched by the security


group rule. Valid values include tcp, udp, and
icmp.
Updates cause replacement.
Optional property.

remote_group_id

The remote group ID to be associated with


this security group rule. If no value is specified
then this rule will use this security group for
the remote_group_id.
Updates cause replacement.
Optional property.

remote_ip_prefix

The remote IP prefix (CIDR) to be associated


with this security group rule.
Updates cause replacement.
Optional property.

remote_mode

Whether to specify a remote group or a remote IP prefix.


Updates cause replacement.
Optional property, defaults to
"remote_ip_prefix".
Allowed values: remote_ip_prefix,
remote_group_id

111

Heat Orchestration Template reference

December 11, 2014

current

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::SecurityGroup
properties:
description: String
name: String
rules: [{"remote_group_id": String, "direction": String,
"remote_ip_prefix": String, "port_range_min": Integer, "remote_mode":
String, "ethertype": String, "port_range_max": Integer, "protocol": String},
{"remote_group_id": String, "direction": String, "remote_ip_prefix": String,
"port_range_min": Integer, "remote_mode": String, "ethertype": String,
"port_range_max": Integer, "protocol": String}, ...]

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::SecurityGroup
Properties:
description: String
name: String
rules: [{"remote_group_id": String, "direction": String,
"remote_ip_prefix": String, "port_range_min": Integer, "remote_mode":
String, "ethertype": String, "port_range_max": Integer, "protocol": String},
{"remote_group_id": String, "direction": String, "remote_ip_prefix": String,
"port_range_min": Integer, "remote_mode": String, "ethertype": String,
"port_range_max": Integer, "protocol": String}, ...]

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::SecurityGroup",
"Properties": {
"description": String,
"name": String,
"rules": [{"remote_group_id": String, "direction": String,
"remote_ip_prefix": String, "port_range_min": Integer, "remote_mode":
String, "ethertype": String, "port_range_max": Integer, "protocol": String},
{"remote_group_id": String, "direction": String, "remote_ip_prefix": String,
"port_range_min": Integer, "remote_mode": String, "ethertype": String,
"port_range_max": Integer, "protocol": String}, ...]
}
}
}
}

112

Heat Orchestration Template reference

December 11, 2014

OS::Neutron::Subnet
Properties
allocation_pools

The start and end addresses for the allocation pools.


Updates cause replacement.
Optional property.
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
end

Updates cause replacement.


Required property.

start

Updates cause replacement.


Required property.

cidr

The CIDR.
Updates cause replacement.
Required property.

dns_nameservers

A specified set of DNS name servers to be used.


Can be updated without replacement.
Optional property, defaults to "[]".

enable_dhcp

Set to true if DHCP is enabled and false if DHCP is disabled.


Can be updated without replacement.
Optional property, defaults to "True".

gateway_ip

The gateway IP address.


Can be updated without replacement.
Optional property.

host_routes

Updates cause replacement.


113
Optional property.

current

Heat Orchestration Template reference

December 11, 2014

current

List contents:
*

Updates cause replacement.


Optional property.
Map properties:
destination

Updates cause replacement.


Required property.

nexthop

Updates cause replacement.


Required property.

ip_version

The IP version, which is 4 or 6.


Updates cause replacement.
Optional property, defaults to "4".
Allowed values: 4, 6

name

The name of the subnet.


Can be updated without replacement.
Optional property.

network

The ID of the attached network.


Updates cause replacement.
Optional property.

tenant_id

The ID of the tenant who owns the network. Only administrative


users can specify a tenant ID other than their own.
Updates cause replacement.
Optional property.

value_specs

Extra parameters to include in the creation request.


Can be updated without replacement.
Optional property, defaults to "{}".

network_id

Note
DEPRECATED - Use property network.
Updates cause replacement.
114

Heat Orchestration Template reference

December 11, 2014

current

Optional property.

Attributes
allocation_pools

Ip allocation pools and their ranges.

cidr

CIDR block notation for this subnet.

dns_nameservers

List of dns nameservers.

enable_dhcp

'true' if DHCP is enabled for this subnet; 'false' otherwise.

gateway_ip

Ip of the subnet's gateway.

host_routes

Additional routes for this subnet.

ip_version

Ip version for the subnet.

name

Friendly name of the subnet.

network_id

Parent network of the subnet.

show

All attributes.

tenant_id

Tenant owning the subnet.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::Subnet
properties:
allocation_pools: [{"start": String, "end": String}, {"start": String,
"end": String}, ...]
cidr: String
dns_nameservers: [Value, Value, ...]
enable_dhcp: Boolean
gateway_ip: String
host_routes: [{"nexthop": String, "destination": String}, {"nexthop":
String, "destination": String}, ...]
ip_version: Integer
name: String
network: String
tenant_id: String
value_specs: {...}

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...

115

Heat Orchestration Template reference

December 11, 2014

current

Resources:
...
TheResource:
Type: OS::Neutron::Subnet
Properties:
allocation_pools: [{"start": String, "end": String}, {"start": String,
"end": String}, ...]
cidr: String
dns_nameservers: [Value, Value, ...]
enable_dhcp: Boolean
gateway_ip: String
host_routes: [{"nexthop": String, "destination": String}, {"nexthop":
String, "destination": String}, ...]
ip_version: Integer
name: String
network: String
tenant_id: String
value_specs: {...}

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::Subnet",
"Properties": {
"allocation_pools": [{"start": String, "end": String}, {"start":
String, "end": String}, ...],
"cidr": String,
"dns_nameservers": [Value, Value, ...],
"enable_dhcp": Boolean,
"gateway_ip": String,
"host_routes": [{"nexthop": String, "destination": String},
{"nexthop": String, "destination": String}, ...],
"ip_version": Integer,
"name": String,
"network": String,
"tenant_id": String,
"value_specs": {...}
}
}
}
}

OS::Neutron::VPNService
A resource for VPN service in Neutron.

Properties
admin_state_up

Administrative state for the vpn service.


Can be updated without replacement.
Optional property, defaults to "True".
116

Heat Orchestration Template reference


description

December 11, 2014

current

Description for the vpn service.


Can be updated without replacement.
Optional property.

name

Name for the vpn service.


Can be updated without replacement.
Optional property.

router_id

Unique identifier for the router to which the vpn service will be inserted.
Updates cause replacement.
Required property.

subnet

Subnet in which the vpn service will be created.


Updates cause replacement.
Optional property.

subnet_id

Note
DEPRECATED - Use property subnet.
Updates cause replacement.
Optional property.

Attributes
admin_state_up

The administrative state of the vpn service.

description

The description of the vpn service.

name

The name of the vpn service.

router_id

The unique identifier of the router to which the vpn service was inserted.

show

All attributes.

status

The status of the vpn service.

subnet_id

The unique identifier of the subnet in which the vpn service was created.

tenant_id

The unique identifier of the tenant owning the vpn service.


117

Heat Orchestration Template reference

December 11, 2014

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::VPNService
properties:
admin_state_up: Boolean
description: String
name: String
router_id: String
subnet: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::VPNService
Properties:
admin_state_up: Boolean
description: String
name: String
router_id: String
subnet: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Neutron::VPNService",
"Properties": {
"admin_state_up": Boolean,
"description": String,
"name": String,
"router_id": String,
"subnet": String
}
}
}
}

OS::Nova::FloatingIP
Available since 2014.1 (Icehouse).

Properties
pool

Allocate a floating IP from a given floating IP pool.


118

current

Heat Orchestration Template reference

December 11, 2014

Updates cause replacement.


Optional property.

Attributes
ip

Allocated floating IP address.

pool

Pool from which floating IP is allocated.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Nova::FloatingIP
properties:
pool: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Nova::FloatingIP
Properties:
pool: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Nova::FloatingIP",
"Properties": {
"pool": String
}
}
}
}

OS::Nova::FloatingIPAssociation
Available since 2014.1 (Icehouse).

Properties
floating_ip

ID of the floating IP to assign to the server.

119

current

Heat Orchestration Template reference

December 11, 2014

current

Can be updated without replacement.


Required property.
server_id

Server to assign floating IP to.


Can be updated without replacement.
Required property.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Nova::FloatingIPAssociation
properties:
floating_ip: String
server_id: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Nova::FloatingIPAssociation
Properties:
floating_ip: String
server_id: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Nova::FloatingIPAssociation",
"Properties": {
"floating_ip": String,
"server_id": String
}
}
}
}

OS::Nova::KeyPair
A resource for creating Nova key pairs.
that if a new key is generated setting save_private_key to True results in the system saving
the private key which can then be retrieved via the private_key attribute of this resource.

120

Heat Orchestration Template reference

December 11, 2014

current

Setting the public_key property means that the private_key attribute of this resource will always return an empty string regardless of the save_private_key setting since there will be
no private key data to save.
Available since 2014.1 (Icehouse).

Properties
name

The name of the key pair.


Updates cause replacement.
Required property.
The length must be in the range 1 to 255.

public_key

The optional public key. This allows users to supply the public key
from a pre-existing key pair. If not supplied, a new key pair will be
generated.
Updates cause replacement.
Optional property.

save_private_key

True if the system should remember a generated private key; False


otherwise.
Updates cause replacement.
Optional property, defaults to "False".

Attributes
private_key

The private key if it has been saved.

public_key

The public key.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Nova::KeyPair
properties:
name: String
public_key: String
save_private_key: Boolean

121

Heat Orchestration Template reference

December 11, 2014

current

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Nova::KeyPair
Properties:
name: String
public_key: String
save_private_key: Boolean

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Nova::KeyPair",
"Properties": {
"name": String,
"public_key": String,
"save_private_key": Boolean
}
}
}
}

OS::Nova::Server
Properties
admin_pass

The administrator password for the server.


Can be updated without replacement.
Optional property.

availability_zone

Name of the availability zone for server placement.


Updates cause replacement.
Optional property.

block_device_mapping

Block device mappings for this server.


Updates cause replacement.
Optional property.
List contents:
*

Updates cause replacement.


122

Heat Orchestration Template reference

December 11, 2014

current

Optional property.
Map properties:
delete_on_termination

Indicate whether the


volume should be
deleted when the
server is terminated.
Updates cause replacement.
Optional property.

device_name

A device name
where the volume
will be attached in
the system at /dev/
device_name. This
value is typically vda.
Updates cause replacement.
Required property.

snapshot_id

The ID of the snapshot to create a volume from.


Updates cause replacement.
Optional property.

volume_id

The ID of the volume


to boot from. Only
one of volume_id or
snapshot_id should
be provided.
Updates cause replacement.
Optional property.

volume_size

123

The size of the volume, in GB. It is safe


to leave this blank
and have the Compute service infer the
size.

Heat Orchestration Template reference

December 11, 2014

current
Updates cause replacement.
Optional property.

config_drive

If True, enable config drive on the server.


Updates cause replacement.
Optional property.

diskConfig

Control how the disk is partitioned when the server is


created.
Updates cause replacement.
Optional property.
Allowed values: AUTO, MANUAL

flavor

The ID or name of the flavor to boot onto.


Can be updated without replacement.
Required property.

flavor_update_policy

Policy on how to apply a flavor update; either by requesting a server resize or by replacing the entire server.
Can be updated without replacement.
Optional property, defaults to "RESIZE".
Allowed values: RESIZE, REPLACE

image

The ID or name of the image to boot with.


Can be updated without replacement.
Optional property.
Value must be of type glance.image

image_update_policy

Policy on how to apply an image-id update; either by requesting a server rebuild or by replacing the entire server
Can be updated without replacement.
Optional property, defaults to "REPLACE".
Allowed values: REBUILD, REPLACE,
REBUILD_PRESERVE_EPHEMERAL

key_name

Name of keypair to inject into the server.

124

Heat Orchestration Template reference

December 11, 2014

current

Updates cause replacement.


Optional property.
Value must be of type nova.keypair
metadata

Arbitrary key/value metadata to store for this server.


Both keys and values must be 255 characters or less.
Non-string values will be serialized to JSON (and the serialized string must be 255 characters or less).
Can be updated without replacement.
Optional property.

name

Server name.
Can be updated without replacement.
Optional property.

networks

An ordered list of nics to be added to this server, with


information about connected networks, fixed ips, port
etc.
Can be updated without replacement.
Optional property.
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
fixed_ip

Fixed IP address to specify for the port


created on the requested network.
Updates cause replacement.
Optional property.

network

Name or ID of network to create a


port on.
Updates cause replacement.
Optional property.

port
125

ID of an existing port to associate with


this server.

Heat Orchestration Template reference

December 11, 2014

current
Updates cause replacement.
Optional property.

Note

uuid

DEPRECATED - Use property network.


ID of network to create a port on.
Updates cause replacement.
Optional property.
personality

A map of files to create/overwrite on the server upon


boot. Keys are file names and values are the file contents.
Updates cause replacement.
Optional property, defaults to "{}".

reservation_id

A UUID for the set of servers being requested.


Updates cause replacement.
Optional property.

scheduler_hints

Arbitrary key-value pairs specified by the client to help


boot a server.
Updates cause replacement.
Optional property.

security_groups

List of security group names or IDs. Cannot be used if


neutron ports are associated with this server; assign security groups to the ports instead.
Updates cause replacement.
Optional property, defaults to "[]".

software_config_transport

How the server should receive the metadata required


for software configuration. POLL_SERVER_CFN will
allow calls to the cfn API action DescribeStackResource authenticated with the provided keypair.
POLL_SERVER_HEAT will allow calls to the Heat API resource-show using the provided keystone credentials.
POLL_TEMP_URL will create and populate a Swift TempURL with metadata for polling.
Updates cause replacement.

126

Heat Orchestration Template reference

December 11, 2014

current

Optional property, defaults to "POLL_SERVER_CFN".


Allowed values: POLL_SERVER_CFN,
POLL_SERVER_HEAT, POLL_TEMP_URL
user_data

User data script to be executed by cloud-init.


Updates cause replacement.
Optional property, defaults to "".

user_data_format

How the user_data should be formatted for the server.


For HEAT_CFNTOOLS, the user_data is bundled as part
of the heat-cfntools cloud-init boot configuration data.
For RAW the user_data is passed to Nova unmodified.
For SOFTWARE_CONFIG user_data is bundled as part of
the software config data, and metadata is derived from
any associated SoftwareDeployment resources.
Updates cause replacement.
Optional property, defaults to "HEAT_CFNTOOLS".
Allowed values: HEAT_CFNTOOLS, RAW,
SOFTWARE_CONFIG

Note

admin_user

DEPRECATED
Name of the administrative user to use on the server.
This property will be removed from Juno in favor of
the default cloud-init user set up for each image (e.g.
"ubuntu" for Ubuntu 12.04+, "fedora" for Fedora 19+
and "cloud-user" for CentOS/RHEL 6.5).
Updates cause replacement.
Optional property.

Attributes
accessIPv4

The manually assigned alternative public IPv4 address of the server.

accessIPv6

The manually assigned alternative public IPv6 address of the server.

addresses

A dict of all network addresses with corresponding port_id.

first_address

Note
DEPRECATED - Use the networks attribute instead of
first_address. For example: "{get_attr: [<server name>, networks, <network name>, 0]}"

127

Heat Orchestration Template reference

December 11, 2014

current

Convenience attribute to fetch the first assigned network address, or


an empty string if nothing has been assigned at this time. Result may
not be predictable if the server has addresses from more than one network.
instance_name

AWS compatible instance name.

name

Name of the server.

networks

A dict of assigned network addresses of the form: {"public": [ip1,


ip2...], "private": [ip3, ip4]}.

show

A dict of all server details as returned by the API.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Nova::Server
properties:
admin_pass: String
availability_zone: String
block_device_mapping: [{"volume_size": Integer, "volume_id": String,
"snapshot_id": String, "delete_on_termination": Boolean, "device_name":
String}, {"volume_size": Integer, "volume_id": String, "snapshot_id": String,
"delete_on_termination": Boolean, "device_name": String}, ...]
config_drive: Boolean
diskConfig: String
flavor: String
flavor_update_policy: String
image: String
image_update_policy: String
key_name: String
metadata: {...}
name: String
networks: [{"port": String, "fixed_ip": String, "uuid": String,
"network": String}, {"port": String, "fixed_ip": String, "uuid": String,
"network": String}, ...]
personality: {...}
reservation_id: String
scheduler_hints: {...}
security_groups: [Value, Value, ...]
software_config_transport: String
user_data: String
user_data_format: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Nova::Server
Properties:

128

Heat Orchestration Template reference

December 11, 2014

current

admin_pass: String
availability_zone: String
block_device_mapping: [{"volume_size": Integer, "volume_id": String,
"snapshot_id": String, "delete_on_termination": Boolean, "device_name":
String}, {"volume_size": Integer, "volume_id": String, "snapshot_id": String,
"delete_on_termination": Boolean, "device_name": String}, ...]
config_drive: Boolean
diskConfig: String
flavor: String
flavor_update_policy: String
image: String
image_update_policy: String
key_name: String
metadata: {...}
name: String
networks: [{"port": String, "fixed_ip": String, "uuid": String,
"network": String}, {"port": String, "fixed_ip": String, "uuid": String,
"network": String}, ...]
personality: {...}
reservation_id: String
scheduler_hints: {...}
security_groups: [Value, Value, ...]
software_config_transport: String
user_data: String
user_data_format: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Nova::Server",
"Properties": {
"admin_pass": String,
"availability_zone": String,
"block_device_mapping": [{"volume_size": Integer, "volume_id": String,
"snapshot_id": String, "delete_on_termination": Boolean, "device_name":
String}, {"volume_size": Integer, "volume_id": String, "snapshot_id": String,
"delete_on_termination": Boolean, "device_name": String}, ...],
"config_drive": Boolean,
"diskConfig": String,
"flavor": String,
"flavor_update_policy": String,
"image": String,
"image_update_policy": String,
"key_name": String,
"metadata": {...},
"name": String,
"networks": [{"port": String, "fixed_ip": String, "uuid": String,
"network": String}, {"port": String, "fixed_ip": String, "uuid": String,
"network": String}, ...],
"personality": {...},
"reservation_id": String,
"scheduler_hints": {...},
"security_groups": [Value, Value, ...],
"software_config_transport": String,
"user_data": String,
"user_data_format": String

129

Heat Orchestration Template reference

December 11, 2014

}
}
}
}

OS::Nova::ServerGroup
A resource for managing a Nova server group.
Available since 2014.2 (Juno).

Properties
name

Server Group name.


Updates cause replacement.
Optional property.

policies

A list of string policies to apply. Defaults to anti-affinity.


Updates cause replacement.
Optional property, defaults to "['anti-affinity']".
Allowed values: anti-affinity, affinity
List contents:
*

Updates cause replacement.


Optional property.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Nova::ServerGroup
properties:
name: String
policies: [String, String, ...]

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Nova::ServerGroup
Properties:
name: String
policies: [String, String, ...]

130

current

Heat Orchestration Template reference

December 11, 2014

current

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Nova::ServerGroup",
"Properties": {
"name": String,
"policies": [String, String, ...]
}
}
}
}

OS::Sahara::Cluster
Properties
cluster_template_id

ID of the Cluster Template used for Node Groups and


configurations.
Updates cause replacement.
Required property.

hadoop_version

Version of Hadoop running on instances.


Updates cause replacement.
Required property.

image

Name or UUID of the image used to boot Hadoop


nodes.
Updates cause replacement.
Optional property.
Value must be of type glance.image

key_name

Keypair added to instances to make them accessible for


user.
Updates cause replacement.
Optional property.
Value must be of type nova.keypair

name

Hadoop cluster name.


Updates cause replacement.
131

Heat Orchestration Template reference

December 11, 2014


Optional property.

neutron_management_network Name or UUID of Neutron network.


Updates cause replacement.
Optional property.
Value must be of type neutron.network
plugin_name

Plugin name.
Updates cause replacement.
Required property.

Attributes
info

Cluster information.

status

Cluster status.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Sahara::Cluster
properties:
cluster_template_id: String
hadoop_version: String
image: String
key_name: String
name: String
neutron_management_network: String
plugin_name: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Sahara::Cluster
Properties:
cluster_template_id: String
hadoop_version: String
image: String
key_name: String
name: String
neutron_management_network: String
plugin_name: String

132

current

Heat Orchestration Template reference

December 11, 2014

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Sahara::Cluster",
"Properties": {
"cluster_template_id": String,
"hadoop_version": String,
"image": String,
"key_name": String,
"name": String,
"neutron_management_network": String,
"plugin_name": String
}
}
}
}

OS::Sahara::ClusterTemplate
Available since 2014.2 (Juno).

Properties
anti_affinity

List of processes to enable anti-affinity for.


Updates cause replacement.
Optional property.
List contents:
*

Updates cause replacement.


Optional property.

cluster_configs

Cluster configs dictionary.


Updates cause replacement.
Optional property.

default_image_id

ID of the default image to use for the template.


Updates cause replacement.
Optional property.
Value must be of type glance.image

description

Description of the Sahara Group Template.


133

current

Heat Orchestration Template reference

December 11, 2014

current

Updates cause replacement.


Optional property, defaults to "".
hadoop_version

Version of Hadoop running on instances.


Updates cause replacement.
Required property.

name

Name for the Sahara Cluster Template.


Updates cause replacement.
Optional property.
The length must be in the range 1 to 50.
Value must match pattern: ^(([a-zA-Z]|[a-zA-Z][azA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Zaz0-9\-]*[A-Za-z0-9])$

neutron_management_network Name or UUID of Neutron network.


Updates cause replacement.
Optional property.
Value must be of type neutron.network
node_groups

Node groups.
Updates cause replacement.
Optional property.
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
count

Number of instances in the Node


group.
Updates cause replacement.
Required property.
The value must be
at least 1.

134

Heat Orchestration Template reference

December 11, 2014


name

current
Name of the Node
group.
Updates cause replacement.
Required property.

node_group_template_id

ID of the Node
Group Template.
Updates cause replacement.
Required property.

plugin_name

Plugin name.
Updates cause replacement.
Required property.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Sahara::ClusterTemplate
properties:
anti_affinity: [String, String, ...]
cluster_configs: {...}
default_image_id: String
description: String
hadoop_version: String
name: String
neutron_management_network: String
node_groups: [{"count": Integer, "name": String,
"node_group_template_id": String}, {"count": Integer, "name": String,
"node_group_template_id": String}, ...]
plugin_name: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Sahara::ClusterTemplate
Properties:
anti_affinity: [String, String, ...]
cluster_configs: {...}
default_image_id: String
description: String

135

Heat Orchestration Template reference

December 11, 2014

hadoop_version: String
name: String
neutron_management_network: String
node_groups: [{"count": Integer, "name": String,
"node_group_template_id": String}, {"count": Integer, "name": String,
"node_group_template_id": String}, ...]
plugin_name: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Sahara::ClusterTemplate",
"Properties": {
"anti_affinity": [String, String, ...],
"cluster_configs": {...},
"default_image_id": String,
"description": String,
"hadoop_version": String,
"name": String,
"neutron_management_network": String,
"node_groups": [{"count": Integer, "name": String,
"node_group_template_id": String}, {"count": Integer, "name": String,
"node_group_template_id": String}, ...],
"plugin_name": String
}
}
}
}

OS::Sahara::NodeGroupTemplate
Available since 2014.2 (Juno).

Properties
description

Description of the Node Group Template.


Updates cause replacement.
Optional property, defaults to "".

flavor

Name or ID Nova flavor for the nodes.


Updates cause replacement.
Required property.

floating_ip_pool

Name or UUID of the Neutron floating IP network to use.


Updates cause replacement.
Optional property.
136

current

Heat Orchestration Template reference

December 11, 2014

current

Value must be of type neutron.network


hadoop_version

Version of Hadoop running on instances.


Updates cause replacement.
Required property.

name

Name for the Sahara Node Group Template.


Updates cause replacement.
Optional property.
The length must be in the range 1 to 50.
Value must match pattern: ^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zAZ0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$

node_configs

Dictionary of node configurations.


Updates cause replacement.
Optional property.

node_processes

List of processes to run on every node.


Updates cause replacement.
Required property.
The length must be at least 1.
List contents:
*

Updates cause replacement.


Optional property.

plugin_name

Plugin name.
Updates cause replacement.
Required property.

volumes_per_node

Volumes per node.


Updates cause replacement.
Optional property.
The value must be at least 0.

volumes_size

Size of the volumes, in GB.


Updates cause replacement.

137

Heat Orchestration Template reference

December 11, 2014


Optional property.
The value must be at least 1.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Sahara::NodeGroupTemplate
properties:
description: String
flavor: String
floating_ip_pool: String
hadoop_version: String
name: String
node_configs: {...}
node_processes: [String, String, ...]
plugin_name: String
volumes_per_node: Integer
volumes_size: Integer

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Sahara::NodeGroupTemplate
Properties:
description: String
flavor: String
floating_ip_pool: String
hadoop_version: String
name: String
node_configs: {...}
node_processes: [String, String, ...]
plugin_name: String
volumes_per_node: Integer
volumes_size: Integer

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Sahara::NodeGroupTemplate",
"Properties": {
"description": String,
"flavor": String,
"floating_ip_pool": String,
"hadoop_version": String,

138

current

Heat Orchestration Template reference

December 11, 2014

current

"name": String,
"node_configs": {...},
"node_processes": [String, String, ...],
"plugin_name": String,
"volumes_per_node": Integer,
"volumes_size": Integer
}
}
}
}

OS::Swift::Container
Properties
X-Account-Meta

A map of user-defined meta data to associate with the account.


Each key in the map will set the header X-Account-Meta-{key}
with the corresponding value.
Updates cause replacement.
Optional property, defaults to "{}".

X-Container-Meta

A map of user-defined meta data to associate with the container.


Each key in the map will set the header X-Container-Meta-{key}
with the corresponding value.
Updates cause replacement.
Optional property, defaults to "{}".

X-Container-Read

Specify the ACL permissions on who can read objects in the container.
Updates cause replacement.
Optional property.

X-Container-Write

Specify the ACL permissions on who can write objects to the container.
Updates cause replacement.
Optional property.

name

Name for the container. If not specified, a unique name will be


generated.
Updates cause replacement.
Optional property.

Attributes
BytesUsed

The number of bytes stored in the container.

139

Heat Orchestration Template reference

December 11, 2014

DomainName

The host from the container URL.

HeadContainer

A map containing all headers for the container.

ObjectCount

The number of objects stored in the container.

RootURL

The parent URL of the container.

WebsiteURL

The URL of the container.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Swift::Container
properties:
X-Account-Meta: {...}
X-Container-Meta: {...}
X-Container-Read: String
X-Container-Write: String
name: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Swift::Container
Properties:
X-Account-Meta: {...}
X-Container-Meta: {...}
X-Container-Read: String
X-Container-Write: String
name: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Swift::Container",
"Properties": {
"X-Account-Meta": {...},
"X-Container-Meta": {...},
"X-Container-Read": String,
"X-Container-Write": String,
"name": String
}
}
}

140

current

Heat Orchestration Template reference

December 11, 2014

current

OS::Trove::Instance
OpenStack cloud database instance resource.
Available since 2014.1 (Icehouse).

Properties
availability_zone

Name of the availability zone for DB instance.


Updates cause replacement.
Optional property.

databases

List of databases to be created on DB instance creation.


Updates cause replacement.
Optional property, defaults to "[]".
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
character_set

Set of symbols and encodings.


Updates cause replacement.
Optional property, defaults to "utf8".

collate

Set of rules for comparing characters in a


character set.
Updates cause replacement.
Optional property, defaults to
"utf8_general_ci".

name

Specifies database names for creating


databases on instance creation.
Updates cause replacement.
Required property.
The length must be no greater than 64.
Value must match pattern: [a-zAZ0-9_]+[a-zA-Z0-9_@?#\s]*[a-zA-Z0-9_]+

141

Heat Orchestration Template reference


datastore_type

December 11, 2014

current

Name of registered datastore type.


Updates cause replacement.
Optional property.
The length must be no greater than 255.

datastore_version

Name of the registered datastore version. It must exist for provided datastore type. Defaults to using single active version. If several active versions exist for provided datastore type, explicit value
for this parameter must be specified.
Updates cause replacement.
Optional property.
The length must be no greater than 255.

flavor

Reference to a flavor for creating DB instance.


Updates cause replacement.
Required property.

name

Name of the DB instance to create.


Updates cause replacement.
Optional property.
The length must be no greater than 255.

networks

List of network interfaces to create on instance.


Updates cause replacement.
Optional property, defaults to "[]".
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
fixed_ip

Fixed IPv4 address for this NIC.


Updates cause replacement.
Optional property.

network

Name or UUID of the network to attach this NIC


142 to. Either port or network must be specified.

Heat Orchestration Template reference

December 11, 2014

current

Updates cause replacement.


Optional property.
port

Name or UUID of Neutron port to attach this


NIC to. Either port or network must be specified.
Updates cause replacement.
Optional property.

restore_point

DB instance restore point.


Updates cause replacement.
Optional property.

size

Database volume size in GB.


Updates cause replacement.
Required property.
The value must be in the range 1 to 150.

users

List of users to be created on DB instance creation.


Updates cause replacement.
Optional property, defaults to "[]".
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
databases

Names of databases that those users can access


on instance creation.
Updates cause replacement.
Required property.
The length must be at least 1.
List contents:
*

Updates cause replacement.


Optional property.

143

Heat Orchestration Template reference

December 11, 2014


host

current

The host from which a user is allowed to connect to the database.


Updates cause replacement.
Optional property, defaults to "%".

name

User name to create a user on instance creation.


Updates cause replacement.
Required property.
The length must be no greater than 16.
Value must match pattern: [a-zA-Z0-9_]+[a-zAZ0-9_@?#\s]*[a-zA-Z0-9_]+

password

Password for those users on instance creation.


Updates cause replacement.
Required property.
Value must match pattern: [a-zA-Z0-9_]+[a-zAZ0-9_@?#\s]*[a-zA-Z0-9_]+

Attributes
hostname

Hostname of the instance.

href

Api endpoint reference of the instance.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Trove::Instance
properties:
availability_zone: String
databases: [{"character_set": String, "name": String, "collate":
String}, {"character_set": String, "name": String, "collate": String}, ...]
datastore_type: String
datastore_version: String
flavor: String
name: String
networks: [{"fixed_ip": String, "network": String, "port": String},
{"fixed_ip": String, "network": String, "port": String}, ...]
restore_point: String
size: Integer

144

Heat Orchestration Template reference

December 11, 2014

current

users: [{"host": String, "password": String, "name": String,


"databases": [String, String, ...]}, {"host": String, "password": String,
"name": String, "databases": [String, String, ...]}, ...]

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Trove::Instance
Properties:
availability_zone: String
databases: [{"character_set": String, "name": String, "collate":
String}, {"character_set": String, "name": String, "collate": String}, ...]
datastore_type: String
datastore_version: String
flavor: String
name: String
networks: [{"fixed_ip": String, "network": String, "port": String},
{"fixed_ip": String, "network": String, "port": String}, ...]
restore_point: String
size: Integer
users: [{"host": String, "password": String, "name": String,
"databases": [String, String, ...]}, {"host": String, "password": String,
"name": String, "databases": [String, String, ...]}, ...]

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Trove::Instance",
"Properties": {
"availability_zone": String,
"databases": [{"character_set": String, "name": String, "collate":
String}, {"character_set": String, "name": String, "collate": String}, ...],
"datastore_type": String,
"datastore_version": String,
"flavor": String,
"name": String,
"networks": [{"fixed_ip": String, "network": String, "port": String},
{"fixed_ip": String, "network": String, "port": String}, ...],
"restore_point": String,
"size": Integer,
"users": [{"host": String, "password": String, "name": String,
"databases": [String, String, ...]}, {"host": String, "password": String,
"name": String, "databases": [String, String, ...]}, ...]
}
}
}
}

145

Heat Orchestration Template reference

December 11, 2014

current

2. CloudFormation Compatible Resource


Types
AWS::AutoScaling::AutoScalingGroup ..........................................................................
AWS::AutoScaling::LaunchConfiguration ......................................................................
AWS::AutoScaling::ScalingPolicy ...................................................................................
AWS::CloudFormation::Stack ........................................................................................
AWS::CloudFormation::WaitCondition .........................................................................
AWS::CloudFormation::WaitConditionHandle ...............................................................
AWS::CloudWatch::Alarm ............................................................................................
AWS::EC2::EIP ..............................................................................................................
AWS::EC2::EIPAssociation .............................................................................................
AWS::EC2::Instance ......................................................................................................
AWS::EC2::InternetGateway .........................................................................................
AWS::EC2::NetworkInterface .......................................................................................
AWS::EC2::RouteTable .................................................................................................
AWS::EC2::SecurityGroup .............................................................................................
AWS::EC2::Subnet ........................................................................................................
AWS::EC2::SubnetRouteTableAssociation .....................................................................
AWS::EC2::VPC ............................................................................................................
AWS::EC2::VPCGatewayAttachment .............................................................................
AWS::EC2::Volume .......................................................................................................
AWS::EC2::VolumeAttachment .....................................................................................
AWS::ElasticLoadBalancing::LoadBalancer ....................................................................
AWS::IAM::AccessKey ..................................................................................................
AWS::IAM::User ...........................................................................................................
AWS::RDS::DBInstance .................................................................................................
AWS::S3::Bucket ..........................................................................................................

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.

146

146
149
154
155
157
158
159
161
162
164
171
172
174
175
178
180
181
182
183
185
187
190
191
193
195

Heat Orchestration Template reference

December 11, 2014


Optional property.

Note

HealthCheckGracePeriod

Not implemented.

Note

HealthCheckType

Not implemented.
LaunchConfigurationName

The reference to a LaunchConfiguration resource.


Can be updated without replacement.
Required 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.

147

current

Heat Orchestration Template reference


VPCZoneIdentifier

December 11, 2014

current

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
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
LaunchConfigurationName: String
LoadBalancerNames: [Value, Value, ...]
MaxSize: Integer

148

Heat Orchestration Template reference

December 11, 2014

current

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,
"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.

149

Heat Orchestration Template reference

December 11, 2014

current

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".

Note

Iops

Not
implemented.
SnapshotId

The ID of the
snapshot to
create a volume from.
Updates
cause replacement.
Optional
property.

VolumeSize

150

The size of
the volume,
in GB. Must
be equal or
greater than
the size of
the snapshot. It is

Heat Orchestration Template reference

December 11, 2014

current
safe to leave
this blank
and have the
Compute service infer the
size.
Updates
cause replacement.
Optional
property.

VolumeType

Note
Not
implemented.

NoDevice

Note
Not implemented.

VirtualName

Note
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).


Updates cause replacement.
Required property.

KernelId

Note
Not implemented.

KeyName

Optional Nova keypair name.


Updates cause replacement.
Optional property.
151

Heat Orchestration Template reference

December 11, 2014


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

Note
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.

152

current

Heat Orchestration Template reference

December 11, 2014

current

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
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
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,
"InstanceType": String,
"KeyName": String,

153

Heat Orchestration Template reference

December 11, 2014

current

"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).

154

Heat Orchestration Template reference

December 11, 2014

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.

155

current

Heat Orchestration Template reference


TemplateURL

December 11, 2014

current

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
}
}
}
}

156

Heat Orchestration Template reference

December 11, 2014

current

AWS::CloudFormation::WaitCondition
Available since 2014.2 (Juno).

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

157

Heat Orchestration Template reference

December 11, 2014

current

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
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.
Available since 2014.2 (Juno).

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

158

Heat Orchestration Template reference

December 11, 2014

current

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.


Required 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.

159

Heat Orchestration Template reference


Period

December 11, 2014

current

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:
...

160

Heat Orchestration Template reference

December 11, 2014

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.


161

current

Heat Orchestration Template reference

December 11, 2014

current

Can be updated without replacement.


Optional property.

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.

162

Heat Orchestration Template reference

December 11, 2014

current

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.

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": {

163

Heat Orchestration Template reference

December 11, 2014

current

"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

164

Indicate
whether
the vol-

Heat Orchestration Template reference

December 11, 2014

current
ume
should be
deleted
when the
instance is
terminated.
Updates
cause replacement.
Optional
property,
defaults to
"True".

Note

Iops

Not
implemented.
SnapshotId

The ID of
the snapshot to
create a
volume
from.
Updates
cause replacement.
Optional
property.

VolumeSize

165

The size
of the volume, in
GB. Must
be equal
or greater
than the
size of the
snapshot.
It is safe
to leave

Heat Orchestration Template reference

December 11, 2014

current
this blank
and have
the Compute service infer
the size.
Updates
cause replacement.
Optional
property.
VolumeType

Note
Not
implemented.

NoDevice

Note
Not implemented.

VirtualName

Note
Not implemented.

Note

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.

Note

KernelId
166

Not implemented.

Heat Orchestration Template reference


KeyName

December 11, 2014


Optional Nova keypair name.
Updates cause replacement.
Optional property.
Value must be of type nova.keypair

Note

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.

Note

PlacementGroupName

Not implemented.

Note

PrivateIpAddress

Not implemented.

Note

RamDiskId

Not implemented.
SecurityGroupIds

Security group IDs to assign.


Updates cause replacement.

167

current

Heat Orchestration Template reference

December 11, 2014


Optional property.

SecurityGroups

Security group names to assign.


Updates cause replacement.
Optional property.

Note

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.

Note

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 "[]".

168

current

Heat Orchestration Template reference

December 11, 2014

current

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.

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}, ...]

169

Heat Orchestration Template reference

December 11, 2014

current

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, ...],

170

Heat Orchestration Template reference

December 11, 2014

current

"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:
*

Note
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}, ...]

171

Heat Orchestration Template reference

December 11, 2014

current

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.

Note

SourceDestCheck

Not implemented.
SubnetId

Subnet ID to associate with this interface.


Updates cause replacement.
Required property.

Tags

Updates cause replacement.


Optional property.
List contents:
*

Note
Not implemented.

172

Heat Orchestration Template reference

December 11, 2014

current

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}, ...]
}
}
}
}

173

Heat Orchestration Template reference

December 11, 2014

AWS::EC2::RouteTable
Available since 2014.1 (Icehouse).

Properties
Tags

Updates cause replacement.


Optional property.
List contents:
*

Note
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

174

current

Heat Orchestration Template reference

December 11, 2014

current

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

Updates cause 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.

175

Heat Orchestration Template reference

December 11, 2014


SourceSecurityGroupId

current
Updates cause replacement.
Optional property.

SourceSecurityGroupName

Updates cause replacement.


Optional property.

SourceSecurityGroupOwnerId

Note
Not implemented.

ToPort

Updates cause replacement.


Optional property.

SecurityGroupIngress

Updates cause 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

176

Updates cause replacement.


Optional property.

Heat Orchestration Template reference

December 11, 2014


SourceSecurityGroupName

current
Updates cause replacement.
Optional property.

Note

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

177

Heat Orchestration Template reference

December 11, 2014

current

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.

178

Heat Orchestration Template reference


CidrBlock

December 11, 2014

current

CIDR block to apply to subnet.


Updates cause replacement.
Required property.

Tags

Updates cause replacement.


Optional property.
List contents:
*

Note
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

179

Heat Orchestration Template reference

December 11, 2014

current

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.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: AWS::EC2::SubnetRouteTableAssociation
properties:
RouteTableId: String
SubnetId: String

180

Heat Orchestration Template reference

December 11, 2014

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.

Note

InstanceTenancy

Not implemented.
Tags

Updates cause replacement.


Optional property.
List contents:
*

Note
Not implemented.

181

current

Heat Orchestration Template reference

December 11, 2014

current

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.

182

Heat Orchestration Template reference

December 11, 2014

current

Required property.

Note

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.

183

Heat Orchestration Template reference

December 11, 2014

current

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}, ...]

184

Heat Orchestration Template reference

December 11, 2014

current

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.
185

Heat Orchestration Template reference


VolumeId

December 11, 2014

current

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.

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
}
}
}
}

186

Heat Orchestration Template reference

December 11, 2014

current

AWS::ElasticLoadBalancing::LoadBalancer
Properties
Note

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.

187

Heat Orchestration Template reference

December 11, 2014


UnhealthyThreshold

current
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.

Note

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

Note
Not implemented.

Protocol

188

The load balancer transport


protocol to use.

Heat Orchestration Template reference

December 11, 2014

current
Updates cause replacement.
Required property.
Allowed values: TCP, HTTP

SSLCertificateId

Note
Not implemented.

Note

SecurityGroups

Not implemented.

Note

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}, ...]

189

Heat Orchestration Template reference

December 11, 2014

current

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

Note
Not implemented.

Status

Note
Not implemented.

UserName

The name of the user that the new key will belong to.
Updates cause replacement.
Required property.
190

Heat Orchestration Template reference

December 11, 2014

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.

191

current

Heat Orchestration Template reference

December 11, 2014

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": {

192

current

Heat Orchestration Template reference

December 11, 2014

"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

???

193

current

Heat Orchestration Template reference

December 11, 2014

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
}
}
}

194

current

Heat Orchestration Template reference

December 11, 2014

current

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.

195

Heat Orchestration Template reference

December 11, 2014

current

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}

196

Heat Orchestration Template reference

December 11, 2014

current

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}
}
}
}
}

197

Heat Orchestration Template reference

December 11, 2014

current

3. CloudFormation Compatible Functions


Ref ..............................................................................................................................
Fn::Base64 ...................................................................................................................
Fn::FindInMap .............................................................................................................
Fn::GetAtt ...................................................................................................................
Fn::GetAZs ...................................................................................................................
Fn::Join ........................................................................................................................
Fn::Select .....................................................................................................................
Fn::Split .......................................................................................................................
Fn::Replace ..................................................................................................................
Fn::ResourceFacade .....................................................................................................
Fn::MemberListToMap .................................................................................................

198
198
199
199
199
200
200
200
201
201
202

There are a number of functions that you can use to help you write CloudFormation compatible templates. While most CloudFormation functions are supported in HOT version
'2013-05-23', Fn::Select is the only CloudFormation function supported in HOT templates
since version '2014-10-16' which is introduced in Juno.
All of these functions (except Ref) start with Fn::.

Ref
Returns the value of the named parameter or resource.

Parameters
name The name of the resource or parameter.

Usage
{Ref: my_server}

Returns the nova instance ID. For example, d8093de0-850f-4513b202-7979de6c0d55.

Fn::Base64
This returns the Base64 representation of the input string.

Parameters
value

The string to convert.

Usage
{Base64: "convert this string please."}

Returns the Base64 of the input string.


198

Heat Orchestration Template reference

December 11, 2014

current

Fn::FindInMap
Returns the value corresponding to keys into a two-level map declared in the Mappings section.

Parameters
map_name

The logical name of a mapping declared in the Mappings section


that contains the keys and values.

top_level_key

The top-level key name. It's value is a list of key-value pairs.

second_level_key

The second-level key name, which is set to one of the keys from the
list assigned to top_level_key.

Usage
Mapping:
MyContacts:
jone: {phone: 337, email: a@b.com}
jim: {phone: 908, email: g@b.com}
{"Fn::FindInMap": ["MyContacts", "jim", "phone" ] }

Returns 908.

Fn::GetAtt
Returns an attribute of a resource within the template.

Parameters
resource

The name of the resource.

attribute

The name of the attribute.

Usage
{Fn::GetAtt: [my_server, PublicIp]}

Returns an IP address such as 10.0.0.2.

Fn::GetAZs
Returns the Availability Zones within the given region.
Note: AZ's and regions are not fully implemented in Heat.

Parameters
region

The name of the region.


199

Heat Orchestration Template reference

December 11, 2014

Usage
{Fn::GetAZs: ""}

Returns the list provided by nova availability-zone-list.

Fn::Join
Like python join, it joins a list of strings with the given delimiter.

Parameters
delimiter

The string to join the list with.

list

The list to join.

Usage
{Fn::Join: [",", ["beer", "wine", "more beer"]]}

Returns beer, wine, more beer.

Fn::Select
Select an item from a list.
Heat extension: Select an item from a map

Parameters
selector

The number of item in the list or the name of the item in the map.

collection

The collection to select the item from.

Usage
For a list lookup:
{ "Fn::Select" : [ "2", [ "apples", "grapes", "mangoes" ] ] }

Returns mangoes.
For a map lookup:
{ "Fn::Select" : [ "red", {"red": "a", "flu": "b"} ] }

Returns a.

Fn::Split
This is the reverse of Join. Convert a string into a list based on the delimiter.
200

current

Heat Orchestration Template reference

December 11, 2014

current

Parameters
delimiter

Matching string to split on.

string

The string to split.

Usage
{ "Fn::Split" : [ ",", "str1,str2,str3,str4"]}

Returns {["str1", "str2", "str3", "str4"]}.

Fn::Replace
Find and replace one string with another.

Parameters
substitutions

A map of substitutions.

string: String

The string to do the substitutions in.

Usage
{"Fn::Replace": [
{'$var1': 'foo', '%var2%': 'bar'},
'$var1 is %var2%'
]}

Returns "foo is bar".

Fn::ResourceFacade
When writing a Template Resource:

user writes a template that will fill in for a resource


(the resource is the facade).
when they are writing their template they need to access the metadata from the facade.

Parameters
attribute_name

One of Metadata, DeletionPolicy or UpdatePolicy.

Usage
{'Fn::ResourceFacade': 'Metadata'}
{'Fn::ResourceFacade': 'DeletionPolicy'}
{'Fn::ResourceFacade': 'UpdatePolicy'}

Example
Here is a top level template top.yaml
201

Heat Orchestration Template reference

December 11, 2014

current

resources:
my_server:
type: OS::Nova::Server
metadata:
key: value
some: more stuff

Here is a resource template my_actual_server.yaml


resources:
_actual_server_:
type: OS::Nova::Server
metadata: {'Fn::ResourceFacade': Metadata}

The environment file env.yaml


resource_registry:
resources:
my_server:
"OS::Nova::Server": my_actual_server.yaml

To use it
$ heat stack-create -f top.yaml -e env.yaml

What happened is the metadata in top.yaml (key: value, some: more stuff) gets passed
into the resource template via the Fn::ResourceFacade function.

Fn::MemberListToMap
Convert an AWS style member list into a map.

Parameters
key name: string

The name of the key (normally "Name" or "Key").

value name: string

The name of the value (normally "Value").

list: A list of strings

The string to convert.

Usage
{'Fn::MemberListToMap': ['Name', 'Value', ['.member.0.Name=key',
'.member.0.Value=door',
'.member.1.Name=colour',
'.member.1.Value=green']]}

Returns {'key': 'door', 'colour': 'green'}.

202

Heat Orchestration Template reference

December 11, 2014

current

AppendixA.Community support
Table of Contents
Documentation ...........................................................................................................
ask.openstack.org ........................................................................................................
OpenStack mailing lists ................................................................................................
The OpenStack wiki .....................................................................................................
The Launchpad Bugs area ...........................................................................................
The OpenStack IRC channel .........................................................................................
Documentation feedback ............................................................................................
OpenStack distribution packages .................................................................................

203
204
204
205
205
206
206
206

The following resources are available to help you run and use OpenStack. The OpenStack
community constantly improves and adds to the main features of OpenStack, but if you
have any questions, do not hesitate to ask. Use the following resources to get OpenStack
support, and troubleshoot your installations.

Documentation
For the available OpenStack documentation, see docs.openstack.org.
To provide feedback on documentation, join and use the
<openstack-docs@lists.openstack.org> mailing list at OpenStack Documentation
Mailing List, or report a bug.
The following books explain how to install an OpenStack cloud and its associated components:
Installation Guide for Debian 7
Installation Guide for openSUSE 13.1 and SUSE Linux Enterprise Server 11 SP3
Installation Guide for Red Hat Enterprise Linux 7, CentOS 7, and Fedora 20
Installation Guide for Ubuntu 14.04
The following books explain how to configure and run an OpenStack cloud:
Architecture Design Guide
Cloud Administrator Guide
Configuration Reference
Operations Guide
High Availability Guide
Security Guide
203

Heat Orchestration Template reference

December 11, 2014

current

Virtual Machine Image Guide


The following books explain how to use the OpenStack dashboard and command-line
clients:
API Quick Start
End User Guide
Admin User Guide
Command-Line Interface Reference
The following documentation provides reference and guidance information for the OpenStack APIs:
OpenStack API Complete Reference (HTML)
API Complete Reference (PDF)
OpenStack Block Storage Service API v2 Reference
OpenStack Compute API v2 and Extensions Reference
OpenStack Identity Service API v2.0 Reference
OpenStack Image Service API v2 Reference
OpenStack Networking API v2.0 Reference
OpenStack Object Storage API v1 Reference
The Training Guides offer software training for cloud administration and management.

ask.openstack.org
During the set up or testing of OpenStack, you might have questions about how a specific task is completed or be in a situation where a feature does not work correctly. Use
the ask.openstack.org site to ask questions and get answers. When you visit the http://
ask.openstack.org site, scan the recently asked questions to see whether your question has
already been answered. If not, ask a new question. Be sure to give a clear, concise summary
in the title and provide as much detail as possible in the description. Paste in your command
output or stack traces, links to screen shots, and any other information which might be useful.

OpenStack mailing lists


A great way to get answers and insights is to post your question or problematic scenario
to the OpenStack mailing list. You can learn from and help others who might have similar issues. To subscribe or view the archives, go to http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack. You might be interested in the other mailing lists for specific
projects or development, which you can find on the wiki. A description of all mailing lists is
available at http://wiki.openstack.org/MailingLists.
204

Heat Orchestration Template reference

December 11, 2014

current

The OpenStack wiki


The OpenStack wiki contains a broad range of topics but some of the information can be
difficult to find or is a few pages deep. Fortunately, the wiki search feature enables you to
search by title or content. If you search for specific information, such as about networking
or nova, you can find a large amount of relevant material. More is being added all the time,
so be sure to check back often. You can find the search box in the upper-right corner of any
OpenStack wiki page.

The Launchpad Bugs area


The OpenStack community values your set up and testing efforts and wants your feedback.
To log a bug, you must sign up for a Launchpad account at https://launchpad.net/+login.
You can view existing bugs and report bugs in the Launchpad Bugs area. Use the search
feature to determine whether the bug has already been reported or already been fixed. If
it still seems like your bug is unreported, fill out a bug report.
Some tips:
Give a clear, concise summary.
Provide as much detail as possible in the description. Paste in your command output or
stack traces, links to screen shots, and any other information which might be useful.
Be sure to include the software and package versions that you are using, especially if
you are using a development branch, such as, "Juno release" vs git commit
bc79c3ecc55929bac585d04a03475b72e06a3208.
Any deployment-specific information is helpful, such as whether you are using Ubuntu
14.04 or are performing a multi-node installation.
The following Launchpad Bugs areas are available:
Bugs: OpenStack Block Storage (cinder)
Bugs: OpenStack Compute (nova)
Bugs: OpenStack Dashboard (horizon)
Bugs: OpenStack Identity (keystone)
Bugs: OpenStack Image Service (glance)
Bugs: OpenStack Networking (neutron)
Bugs: OpenStack Object Storage (swift)
Bugs: Bare Metal (ironic)
Bugs: Data Processing Service (sahara)
Bugs: Database Service (trove)
205

Heat Orchestration Template reference

December 11, 2014

current

Bugs: Orchestration (heat)


Bugs: Telemetry (ceilometer)
Bugs: Queue Service (marconi)
Bugs: OpenStack API Documentation (developer.openstack.org)
Bugs: OpenStack Documentation (docs.openstack.org)

The OpenStack IRC channel


The OpenStack community lives in the #openstack IRC channel on the Freenode network.
You can hang out, ask questions, or get immediate feedback for urgent and pressing issues.
To install an IRC client or use a browser-based client, go to http://webchat.freenode.net/.
You can also use Colloquy (Mac OS X, http://colloquy.info/), mIRC (Windows, http://
www.mirc.com/), or XChat (Linux). When you are in the IRC channel and want to share
code or command output, the generally accepted method is to use a Paste Bin. The OpenStack project has one at http://paste.openstack.org. Just paste your longer amounts of text
or logs in the web form and you get a URL that you can paste into the channel. The OpenStack IRC channel is #openstack on irc.freenode.net. You can find a list of all OpenStack IRC channels at https://wiki.openstack.org/wiki/IRC.

Documentation feedback
To provide feedback on documentation, join and use the
<openstack-docs@lists.openstack.org> mailing list at OpenStack Documentation
Mailing List, or report a bug.

OpenStack distribution packages


The following Linux distributions provide community-supported packages for OpenStack:
Debian: http://wiki.debian.org/OpenStack
CentOS, Fedora, and Red Hat Enterprise Linux: http://openstack.redhat.com/
openSUSE and SUSE Linux Enterprise Server: http://en.opensuse.org/Portal:OpenStack
Ubuntu: https://wiki.ubuntu.com/ServerTeam/CloudArchive

206

Das könnte Ihnen auch gefallen