You are on page 1of 261

docs.openstack.

org

Heat Orchestration Template reference

May 28, 2015

Heat Orchestration Template reference


current (2015-05-28)

Copyright 2014, 2015 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

May 28, 2015

current

Table of Contents
HOT reference overview ................................................................................................. vi
Conventions ............................................................................................................ vi
1. OpenStack Resource Types .......................................................................................... 1
OS::Barbican::Order ................................................................................................. 2
OS::Barbican::Secret ................................................................................................. 4
OS::Ceilometer::Alarm ............................................................................................. 6
OS::Ceilometer::CombinationAlarm ........................................................................ 10
OS::Ceilometer::GnocchiAggregationByMetricsAlarm ............................................. 12
OS::Ceilometer::GnocchiAggregationByResourcesAlarm ......................................... 15
OS::Ceilometer::GnocchiResourcesAlarm ................................................................ 18
OS::Cinder::Volume ................................................................................................ 22
OS::Cinder::VolumeAttachment ............................................................................. 25
OS::Cinder::VolumeType ........................................................................................ 26
OS::Glance::Image ................................................................................................. 28
OS::Heat::AccessPolicy ............................................................................................ 30
OS::Heat::AutoScalingGroup .................................................................................. 31
OS::Heat::CWLiteAlarm .......................................................................................... 34
OS::Heat::CloudConfig ........................................................................................... 37
OS::Heat::HARestarter ........................................................................................... 38
OS::Heat::InstanceGroup ........................................................................................ 39
OS::Heat::MultipartMime ....................................................................................... 41
OS::Heat::RandomString ........................................................................................ 43
OS::Heat::ResourceGroup ....................................................................................... 46
OS::Heat::ScalingPolicy ........................................................................................... 50
OS::Heat::SoftwareComponent .............................................................................. 51
OS::Heat::SoftwareConfig ...................................................................................... 56
OS::Heat::SoftwareDeployment ............................................................................. 59
OS::Heat::SoftwareDeployments ............................................................................ 62
OS::Heat::Stack ...................................................................................................... 64
OS::Heat::StructuredConfig .................................................................................... 66
OS::Heat::StructuredDeployment ........................................................................... 69
OS::Heat::StructuredDeployments .......................................................................... 72
OS::Heat::SwiftSignal ............................................................................................. 75
OS::Heat::SwiftSignalHandle .................................................................................. 76
OS::Heat::UpdateWaitConditionHandle .................................................................. 77
OS::Heat::WaitCondition ........................................................................................ 78
OS::Heat::WaitConditionHandle ............................................................................. 79
OS::Keystone::Group .............................................................................................. 80
OS::Keystone::Project ............................................................................................. 83
OS::Keystone::Role ................................................................................................ 85
OS::Keystone::User ................................................................................................ 86
OS::Neutron::ExtraRoute ....................................................................................... 91
OS::Neutron::Firewall ............................................................................................. 92
OS::Neutron::FirewallPolicy .................................................................................... 94
OS::Neutron::FirewallRule ...................................................................................... 96
OS::Neutron::FloatingIP ......................................................................................... 99
OS::Neutron::FloatingIPAssociation ...................................................................... 101
OS::Neutron::HealthMonitor ................................................................................ 102

iii

Heat Orchestration Template reference

May 28, 2015

current

OS::Neutron::IKEPolicy .........................................................................................
OS::Neutron::IPsecPolicy .......................................................................................
OS::Neutron::IPsecSiteConnection ........................................................................
OS::Neutron::LoadBalancer ..................................................................................
OS::Neutron::MeteringLabel ................................................................................
OS::Neutron::MeteringRule ..................................................................................
OS::Neutron::Net .................................................................................................
OS::Neutron::NetworkGateway ............................................................................
OS::Neutron::Pool ................................................................................................
OS::Neutron::PoolMember ...................................................................................
OS::Neutron::Port ................................................................................................
OS::Neutron::ProviderNet ....................................................................................
OS::Neutron::Router ............................................................................................
OS::Neutron::RouterGateway ...............................................................................
OS::Neutron::RouterInterface ...............................................................................
OS::Neutron::SecurityGroup .................................................................................
OS::Neutron::Subnet ............................................................................................
OS::Neutron::VPNService ......................................................................................
OS::Nova::Flavor ..................................................................................................
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::Cluster ................................................................................................
OS::Trove::Instance ..............................................................................................
OS::Zaqar::Queue ................................................................................................
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 ...............................................................................................

iv

105
107
110
114
116
117
119
121
124
128
130
135
137
141
142
144
147
152
154
156
157
158
160
171
172
175
178
182
184
186
191
193
193
196
201
203
204
205
206
209
210
211
219
220
222
223
226
228
229
230
231

Heat Orchestration Template reference

May 28, 2015

current

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

233
235
239
240
241
243
246
246
246
247
247
247
248
248
249
249
249
250
252
252
253
253
253
254
255
255
255

Heat Orchestration Template reference

May 28, 2015

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

May 28, 2015

current

1. OpenStack Resource Types


OS::Barbican::Order ......................................................................................................... 2
OS::Barbican::Secret ......................................................................................................... 4
OS::Ceilometer::Alarm ..................................................................................................... 6
OS::Ceilometer::CombinationAlarm ................................................................................ 10
OS::Ceilometer::GnocchiAggregationByMetricsAlarm ..................................................... 12
OS::Ceilometer::GnocchiAggregationByResourcesAlarm ................................................. 15
OS::Ceilometer::GnocchiResourcesAlarm ........................................................................ 18
OS::Cinder::Volume ........................................................................................................ 22
OS::Cinder::VolumeAttachment ..................................................................................... 25
OS::Cinder::VolumeType ................................................................................................ 26
OS::Glance::Image ......................................................................................................... 28
OS::Heat::AccessPolicy .................................................................................................... 30
OS::Heat::AutoScalingGroup .......................................................................................... 31
OS::Heat::CWLiteAlarm .................................................................................................. 34
OS::Heat::CloudConfig ................................................................................................... 37
OS::Heat::HARestarter ................................................................................................... 38
OS::Heat::InstanceGroup ................................................................................................ 39
OS::Heat::MultipartMime ............................................................................................... 41
OS::Heat::RandomString ................................................................................................ 43
OS::Heat::ResourceGroup ............................................................................................... 46
OS::Heat::ScalingPolicy ................................................................................................... 50
OS::Heat::SoftwareComponent ...................................................................................... 51
OS::Heat::SoftwareConfig .............................................................................................. 56
OS::Heat::SoftwareDeployment ..................................................................................... 59
OS::Heat::SoftwareDeployments .................................................................................... 62
OS::Heat::Stack .............................................................................................................. 64
OS::Heat::StructuredConfig ............................................................................................ 66
OS::Heat::StructuredDeployment ................................................................................... 69
OS::Heat::StructuredDeployments .................................................................................. 72
OS::Heat::SwiftSignal ..................................................................................................... 75
OS::Heat::SwiftSignalHandle .......................................................................................... 76
OS::Heat::UpdateWaitConditionHandle .......................................................................... 77
OS::Heat::WaitCondition ................................................................................................ 78
OS::Heat::WaitConditionHandle ..................................................................................... 79
OS::Keystone::Group ..................................................................................................... 80
OS::Keystone::Project ..................................................................................................... 83
OS::Keystone::Role ........................................................................................................ 85
OS::Keystone::User ........................................................................................................ 86
OS::Neutron::ExtraRoute ............................................................................................... 91
OS::Neutron::Firewall ..................................................................................................... 92
OS::Neutron::FirewallPolicy ............................................................................................ 94
OS::Neutron::FirewallRule .............................................................................................. 96
OS::Neutron::FloatingIP ................................................................................................. 99
OS::Neutron::FloatingIPAssociation .............................................................................. 101
OS::Neutron::HealthMonitor ........................................................................................ 102
OS::Neutron::IKEPolicy ................................................................................................. 105
OS::Neutron::IPsecPolicy ............................................................................................... 107
OS::Neutron::IPsecSiteConnection ................................................................................ 110
1

Heat Orchestration Template reference

May 28, 2015

current

OS::Neutron::LoadBalancer ..........................................................................................
OS::Neutron::MeteringLabel ........................................................................................
OS::Neutron::MeteringRule ..........................................................................................
OS::Neutron::Net .........................................................................................................
OS::Neutron::NetworkGateway ....................................................................................
OS::Neutron::Pool ........................................................................................................
OS::Neutron::PoolMember ...........................................................................................
OS::Neutron::Port ........................................................................................................
OS::Neutron::ProviderNet ............................................................................................
OS::Neutron::Router ....................................................................................................
OS::Neutron::RouterGateway .......................................................................................
OS::Neutron::RouterInterface .......................................................................................
OS::Neutron::SecurityGroup .........................................................................................
OS::Neutron::Subnet ....................................................................................................
OS::Neutron::VPNService ..............................................................................................
OS::Nova::Flavor ..........................................................................................................
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::Cluster ........................................................................................................
OS::Trove::Instance ......................................................................................................
OS::Zaqar::Queue ........................................................................................................

OS::Barbican::Order
Properties
algorithm

The algorithm type used to generate the secret.


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

bit_length

The bit-length of the secret.


Updates cause replacement.
Optional property.
Allowed values: 128, 196, 256

expiration

The expiration date for the secret in ISO-8601 format.


Updates cause replacement.

114
116
117
119
121
124
128
130
135
137
141
142
144
147
152
154
156
157
158
160
171
172
175
178
182
184
186
191

Heat Orchestration Template reference

May 28, 2015

current

Optional property.
Value must be of type iso_8601
mode

The type/mode of the algorithm associated with the secret information.


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

name

Human readable name for the secret.


Updates cause replacement.
Optional property.

payload_content_type

The type/format the secret data is provided in.


Updates cause replacement.
Optional property, defaults to "application/octet-stream".
Allowed values: application/octet-stream

Attributes
order_ref

The URI to the order.

secret_ref

The URI to the created secret.

status

The status of the order.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Barbican::Order
properties:
algorithm: String
bit_length: Number
expiration: String
mode: String
name: String
payload_content_type: String

Heat Orchestration Template reference

May 28, 2015

current

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Barbican::Order
Properties:
algorithm: String
bit_length: Number
expiration: String
mode: String
name: String
payload_content_type: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Barbican::Order",
"Properties": {
"algorithm": String,
"bit_length": Number,
"expiration": String,
"mode": String,
"name": String,
"payload_content_type": String
}
}
}
}

OS::Barbican::Secret
Properties
algorithm

The algorithm type used to generate the secret.


Updates cause replacement.
Optional property.

bit_length

The bit-length of the secret.


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

expiration

The expiration date for the secret in ISO-8601 format.


4

Heat Orchestration Template reference

May 28, 2015

current

Updates cause replacement.


Optional property.
Value must be of type iso_8601
mode

The type/mode of the algorithm associated with the secret information.


Updates cause replacement.
Optional property.

name

Human readable name for the secret.


Updates cause replacement.
Optional property.

payload

The unencrypted plain text of the secret.


Updates cause replacement.
Optional property.

payload_content_encoding

The encoding format used to provide the payload data.


Updates cause replacement.
Optional property.
Allowed values: base64

payload_content_type

The type/format the secret data is provided in.


Updates cause replacement.
Optional property.
Allowed values: text/plain, application/octet-stream

Attributes
decrypted_payload

The decrypted secret payload.

status

The status of the secret.

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

Heat Orchestration Template reference

May 28, 2015

current

type: OS::Barbican::Secret
properties:
algorithm: String
bit_length: Number
expiration: String
mode: String
name: String
payload: String
payload_content_encoding: String
payload_content_type: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Barbican::Secret
Properties:
algorithm: String
bit_length: Number
expiration: String
mode: String
name: String
payload: String
payload_content_encoding: String
payload_content_type: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Barbican::Secret",
"Properties": {
"algorithm": String,
"bit_length": Number,
"expiration": String,
"mode": String,
"name": String,
"payload": String,
"payload_content_encoding": String,
"payload_content_type": String
}
}
}
}

OS::Ceilometer::Alarm
Properties
alarm_actions

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


6

Heat Orchestration Template reference

May 28, 2015

current

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.


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.

Heat Orchestration Template reference

May 28, 2015

current

Optional property.
period

Period (seconds) to evaluate over.


Can be updated without replacement.
Optional property.

Note

query

Available since 2015.1 (Kilo)


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

Heat Orchestration Template reference


repeat_actions

May 28, 2015

current

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

Heat Orchestration Template reference

May 28, 2015

current

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

OS::Ceilometer::CombinationAlarm
Note
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.

10

Heat Orchestration Template reference


alarm_ids

May 28, 2015

current

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.


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

11

Heat Orchestration Template reference

May 28, 2015

current

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" : {
"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::Ceilometer::GnocchiAggregationByMetricsAlarm
Note
Available since 2015.1 (Kilo)
12

Heat Orchestration Template reference

May 28, 2015

current

Properties
aggregation_method

The aggregation method to compare to the threshold


Can be updated without replacement.
Optional property.
Allowed values: mean, sum, last, max, min, std, median,
first, count

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.

granularity

The time range in seconds.


Can be updated without replacement.
Optional property.

insufficient_data_actions

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


Can be updated without replacement.
13

Heat Orchestration Template reference

May 28, 2015

current

Optional property.
metrics

A list of metric ids.


Can be updated without replacement.
Required property.

ok_actions

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


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

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::GnocchiAggregationByMetricsAlarm
properties:
aggregation_method: String
alarm_actions: [Value, Value, ...]
comparison_operator: String
description: String
enabled: Boolean
evaluation_periods: Integer
granularity: Integer
insufficient_data_actions: [Value, Value, ...]
metrics: [Value, Value, ...]
ok_actions: [Value, Value, ...]
repeat_actions: Boolean
threshold: Number

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

14

Heat Orchestration Template reference

May 28, 2015

current

...
TheResource:
Type: OS::Ceilometer::GnocchiAggregationByMetricsAlarm
Properties:
aggregation_method: String
alarm_actions: [Value, Value, ...]
comparison_operator: String
description: String
enabled: Boolean
evaluation_periods: Integer
granularity: Integer
insufficient_data_actions: [Value, Value, ...]
metrics: [Value, Value, ...]
ok_actions: [Value, Value, ...]
repeat_actions: Boolean
threshold: Number

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Ceilometer::GnocchiAggregationByMetricsAlarm",
"Properties": {
"aggregation_method": String,
"alarm_actions": [Value, Value, ...],
"comparison_operator": String,
"description": String,
"enabled": Boolean,
"evaluation_periods": Integer,
"granularity": Integer,
"insufficient_data_actions": [Value, Value, ...],
"metrics": [Value, Value, ...],
"ok_actions": [Value, Value, ...],
"repeat_actions": Boolean,
"threshold": Number
}
}
}
}

OS::Ceilometer::GnocchiAggregationByResourcesAlarm
Note
Available since 2015.1 (Kilo)

Properties
aggregation_method

The aggregation method to compare to the threshold


Can be updated without replacement.
Optional property.
15

Heat Orchestration Template reference

May 28, 2015

current

Allowed values: mean, sum, last, max, min, std, median,


first, count
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.

granularity

The time range in seconds.


Can be updated without replacement.
Optional property.

insufficient_data_actions

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


Can be updated without replacement.
Optional property.

metric

Metric name watched by the alarm.


Can be updated without replacement.
Required property.

16

Heat Orchestration Template reference


ok_actions

May 28, 2015

current

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


Can be updated without replacement.
Optional property.

query

The query to filter the metrics


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

resource_type

Resource type
Can be updated without replacement.
Required property.

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::GnocchiAggregationByResourcesAlarm
properties:
aggregation_method: String
alarm_actions: [Value, Value, ...]
comparison_operator: String
description: String
enabled: Boolean
evaluation_periods: Integer
granularity: Integer
insufficient_data_actions: [Value, Value, ...]
metric: String
ok_actions: [Value, Value, ...]
query: String
repeat_actions: Boolean
resource_type: String
threshold: Number

17

Heat Orchestration Template reference

May 28, 2015

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Ceilometer::GnocchiAggregationByResourcesAlarm
Properties:
aggregation_method: String
alarm_actions: [Value, Value, ...]
comparison_operator: String
description: String
enabled: Boolean
evaluation_periods: Integer
granularity: Integer
insufficient_data_actions: [Value, Value, ...]
metric: String
ok_actions: [Value, Value, ...]
query: String
repeat_actions: Boolean
resource_type: String
threshold: Number

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Ceilometer::GnocchiAggregationByResourcesAlarm",
"Properties": {
"aggregation_method": String,
"alarm_actions": [Value, Value, ...],
"comparison_operator": String,
"description": String,
"enabled": Boolean,
"evaluation_periods": Integer,
"granularity": Integer,
"insufficient_data_actions": [Value, Value, ...],
"metric": String,
"ok_actions": [Value, Value, ...],
"query": String,
"repeat_actions": Boolean,
"resource_type": String,
"threshold": Number
}
}
}
}

OS::Ceilometer::GnocchiResourcesAlarm
Note
Available since 2015.1 (Kilo)
18

current

Heat Orchestration Template reference

May 28, 2015

current

Properties
aggregation_method

The aggregation method to compare to the threshold


Can be updated without replacement.
Optional property.
Allowed values: mean, sum, last, max, min, std, median,
first, count

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.

granularity

The time range in seconds.


Can be updated without replacement.
Optional property.

insufficient_data_actions

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


Can be updated without replacement.
19

Heat Orchestration Template reference

May 28, 2015

current

Optional property.
metric

Metric name watched by the alarm.


Can be updated without replacement.
Required property.

ok_actions

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


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

resource_id

Id of a resource
Can be updated without replacement.
Required property.

resource_type

Resource type
Can be updated without replacement.
Required property.

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::GnocchiResourcesAlarm
properties:
aggregation_method: String
alarm_actions: [Value, Value, ...]
comparison_operator: String
description: String

20

Heat Orchestration Template reference

May 28, 2015

enabled: Boolean
evaluation_periods: Integer
granularity: Integer
insufficient_data_actions: [Value, Value, ...]
metric: String
ok_actions: [Value, Value, ...]
repeat_actions: Boolean
resource_id: String
resource_type: String
threshold: Number

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Ceilometer::GnocchiResourcesAlarm
Properties:
aggregation_method: String
alarm_actions: [Value, Value, ...]
comparison_operator: String
description: String
enabled: Boolean
evaluation_periods: Integer
granularity: Integer
insufficient_data_actions: [Value, Value, ...]
metric: String
ok_actions: [Value, Value, ...]
repeat_actions: Boolean
resource_id: String
resource_type: String
threshold: Number

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Ceilometer::GnocchiResourcesAlarm",
"Properties": {
"aggregation_method": String,
"alarm_actions": [Value, Value, ...],
"comparison_operator": String,
"description": String,
"enabled": Boolean,
"evaluation_periods": Integer,
"granularity": Integer,
"insufficient_data_actions": [Value, Value, ...],
"metric": String,
"ok_actions": [Value, Value, ...],
"repeat_actions": Boolean,
"resource_id": String,
"resource_type": String,
"threshold": Number
}

21

current

Heat Orchestration Template reference

May 28, 2015

current

}
}
}

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.
Optional property.

scheduler_hints

Note
Available since 2015.1 (Kilo)
Arbitrary key-value pairs specified by the client to help the Cinder
scheduler creating a volume.
22

Heat Orchestration Template reference

May 28, 2015

current

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.
Value must be of type cinder.snapshot

source_volid

If specified, the volume to use as source.


Updates cause replacement.
Optional property.
Value must be of type cinder.volume

volume_type

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


Can be updated without replacement.
Optional property.
Value must be of type cinder.vtype

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.


23

Heat Orchestration Template reference

May 28, 2015

current

bootable

Boolean indicating if the volume can be booted or not.

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

24

Heat Orchestration Template reference

May 28, 2015

current

description: String
image: String
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.
25

Heat Orchestration Template reference

May 28, 2015

Required property.
Value must be of type cinder.volume

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::Cinder::VolumeType
Note
Available since 2015.1 (Kilo)
A resource for creating OpenStack virtual hardware templates.

26

current

Heat Orchestration Template reference

May 28, 2015

current

Note that default cinder security policy usage of this resource is limited to being used by administrators only.

Properties
metadata

The extra specs key and value pairs of the volume type.
Can be updated without replacement.
Optional property.

name

Name of the volume type.


Updates cause replacement.
Required property.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Cinder::VolumeType
properties:
metadata: {...}
name: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Cinder::VolumeType
Properties:
metadata: {...}
name: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Cinder::VolumeType",
"Properties": {
"metadata": {...},
"name": String
}
}
}
}

27

Heat Orchestration Template reference

May 28, 2015

current

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

Properties
container_format

Container format of image.


Updates cause replacement.
Required property.
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.
28

Heat Orchestration Template reference

May 28, 2015

current

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.

protected

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

29

Heat Orchestration Template reference

May 28, 2015

current

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

30

Heat Orchestration Template reference

May 28, 2015

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

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

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.

31

current

Heat Orchestration Template reference


min_size

May 28, 2015

current

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, defaults to "{'min_in_service': 0, 'pause_time': 0,
'max_batch_size': 1}".
Map properties:
max_batch_size

The maximum number of resources to replace at once.


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.

32

Heat Orchestration Template reference

May 28, 2015

current

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}

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

33

Heat Orchestration Template reference

May 28, 2015

current

}
}

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.


Can be updated without replacement.
Optional property.

ComparisonOperator

Operator used to compare the specified Statistic with


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

InsufficientDataActions

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


Can be updated without replacement.
34

Heat Orchestration Template reference

May 28, 2015

current

Optional property.
MetricName

Metric name watched by the alarm.


Updates cause replacement.
Required property.

Namespace

Namespace for the metric.


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


Can be updated without replacement.
Required property.

Statistic

Metric statistic to evaluate.


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

Threshold

Threshold to evaluate against.


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

Heat Orchestration Template reference

May 28, 2015

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

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,

36

current

Heat Orchestration Template reference

May 28, 2015

current

"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
Note
Available since 2014.1 (Icehouse)
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.
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.

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

37

Heat Orchestration Template reference

May 28, 2015

current

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

OS::Heat::HARestarter
Note
DEPRECATED - The HARestarter resource type is unsupported and will be removed in a future release of Heat, once it has support for auto-healing any
type of resource. Note that HARestarter does *not* actually restart servers it deletes and then recreates them. It also does the same to all dependent resources, and may therefore exhibit unexpected and undesirable behaviour.
Avoid.

Properties
InstanceId

Instance ID to be restarted.
Updates cause replacement.
Required property.
Value must be of type nova.server

Attributes
AlarmUrl

A signed url to handle the alarm (Heat extension).

38

Heat Orchestration Template reference

May 28, 2015

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

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.


39

current

Heat Orchestration Template reference

May 28, 2015


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

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

40

current

Heat Orchestration Template reference

May 28, 2015

current

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
Note
Available since 2014.1 (Icehouse)
A resource which assembles a collection of software configurations as a multi-part mime
message.
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.
41

Heat Orchestration Template reference

May 28, 2015

current

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

Attributes
config

The config value of the software config.

42

Heat Orchestration Template reference

May 28, 2015

current

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
Note
Available since 2014.1 (Icehouse)
A resource which generates a random string.
This is useful for configuring passwords and secrets on services.

43

Heat Orchestration Template reference

May 28, 2015

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.

44

Heat Orchestration Template reference

May 28, 2015

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.

45

Heat Orchestration Template reference

May 28, 2015

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
Note
Available since 2014.1 (Icehouse)
46

Heat Orchestration Template reference

May 28, 2015

current

A resource that creates one or more identically configured nested resources.


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.

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

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

Heat Orchestration Template reference

May 28, 2015

current

Note

removal_policies

Available since 2015.1 (Kilo)


Policies for removal of resources on update
Can be updated without replacement.
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.
Can be updated without replacement.
Required property.
Map properties:
properties

Property values for the resources in the group


Updates cause replacement.
Optional property.
48

Heat Orchestration Template reference

May 28, 2015


type

current

The type of the resources in the group


Updates cause replacement.
Required property.

Attributes
attributes

Note
Available since 2014.2 (Juno)
A map of resource names to the specified attribute of each individual resource. Requires heat_template_version: 2014-10-16.

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

49

Heat Orchestration Template reference

May 28, 2015

current

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

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.


50

Heat Orchestration Template reference

May 28, 2015

current

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

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

Heat Orchestration Template reference

May 28, 2015

current

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.

Properties
configs

The list of configurations for the different lifecycle actions of the represented
software component.
Updates cause replacement.
Required property.
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.
Optional property, defaults to "['CREATE', 'UPDATE']".
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
52 replacement.

Heat Orchestration Template reference

May 28, 2015

current

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

53

Heat Orchestration Template reference

May 28, 2015

current

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 cause replacement.
Optional property, defaults to "String".
Allowed values: String, Number, CommaDelimitedList,
Json

Attributes
config

The config value of the software config.

54

Heat Orchestration Template reference

May 28, 2015

current

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

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

55

Heat Orchestration Template reference

May 28, 2015

current

}
}
}
}

OS::Heat::SoftwareConfig
Note
Available since 2014.1 (Icehouse)
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.
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.

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.


56

Heat Orchestration Template reference

May 28, 2015

current

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

57

Heat Orchestration Template reference

May 28, 2015

current

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

58

Heat Orchestration Template reference

May 28, 2015

current

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",
"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
Note
Available since 2014.1 (Icehouse)
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
59

Heat Orchestration Template reference

May 28, 2015

current

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.

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.

server

ID of Nova server to apply configuration to.


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

signal_transport

How the server should signal to heat with the deployment output values. CFN_SIGNAL will allow an HTTP POST to a CFN key-

60

Heat Orchestration Template reference

May 28, 2015

current

pair signed URL. TEMP_URL_SIGNAL will create a Swift TempURL


to be signaled via HTTP PUT. 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, TEMP_URL_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::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
{

61

Heat Orchestration Template reference

May 28, 2015

current

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

62

Heat Orchestration Template reference

May 28, 2015

current

Can be updated without 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. TEMP_URL_SIGNAL will create a Swift TempURL
to be signaled via HTTP PUT. 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, TEMP_URL_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.

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

63

Heat Orchestration Template reference

May 28, 2015

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

OS::Heat::Stack
A Resource representing a stack which can be created using specified context.

Properties
context

Context for this stack.


Updates cause replacement.
Optional property.
Map properties:
region_name

Region name in which this stack will be created.


Updates cause replacement.
Required property.
64

current

Heat Orchestration Template reference


parameters

May 28, 2015

Set of parameters passed to this stack.


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

template

Template that specifies the stack to be created as a resource.


Can be updated without replacement.
Required property.

timeout

Number of minutes to wait for this stack creation.


Can be updated without replacement.
Optional property.

Attributes
outputs

A dict of key-value pairs output from the stack.

stack_name

Name of the stack.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Heat::Stack
properties:
context: {"region_name": String}
parameters: {...}
template: String
timeout: Number

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Heat::Stack
Properties:
context: {"region_name": String}
parameters: {...}
template: String
timeout: Number

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

65

current

Heat Orchestration Template reference

May 28, 2015

current

"Resources" : {
"TheResource": {
"Type": "OS::Heat::Stack",
"Properties": {
"context": {"region_name": String},
"parameters": {...},
"template": String,
"timeout": Number
}
}
}
}

OS::Heat::StructuredConfig
Note
Available since 2014.1 (Icehouse)
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.

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:

66

Heat Orchestration Template reference


default

May 28, 2015

current

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

Heat Orchestration Template reference


error_output

May 28, 2015

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

68

Heat Orchestration Template reference

May 28, 2015

current

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": {
"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
Note
Available since 2014.1 (Icehouse)
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.

69

Heat Orchestration Template reference

May 28, 2015

current

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.

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

input_values_validate

Perform a check on the input values passed to verify that


each required input has a corresponding value. When the
property is set to STRICT and no value is passed, an exception is raised.
Updates cause replacement.
Optional property, defaults to "LAX".
Allowed values: LAX, STRICT

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.

70

Heat Orchestration Template reference


server

May 28, 2015

current

ID of Nova server to apply configuration to.


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

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. TEMP_URL_SIGNAL will create a
Swift TempURL to be signaled via HTTP PUT. 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, TEMP_URL_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: {...}
input_values_validate: String
name: String
server: String
signal_transport: String

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

71

Heat Orchestration Template reference

May 28, 2015

current

...
TheResource:
Type: OS::Heat::StructuredDeployment
Properties:
actions: [Value, Value, ...]
config: String
input_key: String
input_values: {...}
input_values_validate: String
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": {...},
"input_values_validate": String,
"name": String,
"server": String,
"signal_transport": String
}
}
}
}

OS::Heat::StructuredDeployments
Note
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.


72

Heat Orchestration Template reference

May 28, 2015

current

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

input_values_validate

Perform a check on the input values passed to verify that


each required input has a corresponding value. When the
property is set to STRICT and no value is passed, an exception is raised.
Updates cause replacement.
Optional property, defaults to "LAX".
Allowed values: LAX, STRICT

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.


Can be updated without 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. TEMP_URL_SIGNAL will create a
Swift TempURL to be signaled via HTTP PUT. 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.
73

Heat Orchestration Template reference

May 28, 2015

current

Optional property, defaults to "CFN_SIGNAL".


Allowed values: CFN_SIGNAL, TEMP_URL_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.

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: {...}
input_values_validate: String
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: {...}
input_values_validate: String
name: String
servers: {...}
signal_transport: String

JSON Syntax
{

74

Heat Orchestration Template reference

May 28, 2015

current

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

OS::Heat::SwiftSignal
Note
Available since 2014.2 (Juno)

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.

75

Heat Orchestration Template reference

May 28, 2015

current

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

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

OS::Heat::SwiftSignalHandle
Note
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"}'
76

Heat Orchestration Template reference

May 28, 2015

current

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

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

OS::Heat::UpdateWaitConditionHandle
Note
Available since 2014.1 (Icehouse)
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.

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

77

Heat Orchestration Template reference

May 28, 2015

current

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

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

OS::Heat::WaitCondition
Note
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.
78

Heat Orchestration Template reference

May 28, 2015

current

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

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

Heat Orchestration Template reference

May 28, 2015

current

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

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::Keystone::Group
Note
Available since 2015.1 (Kilo) - Supported versions: keystone v3
Heat Template Resource for Keystone Group.
heat_template_version: 2013-05-23
description: Sample Keystone Group template
80

Heat Orchestration Template reference


parameters:

resources:

May 28, 2015

current

group_name:

type: string description: Keystone group


name

group_description:

type: string description: Keystone group description

group_domain:

type: string description: Keystone group domain name

group_role:

type: string description: role

group_role_domain:

type: string description: group role domain

group_role_project:

type: string description: group role project

admin_group:

type: OS::Keystone::Group properties:


name: {get_param: group_name} domain: {get_param: group_domain}
description: {get_param:
group_description} roles:
role: {get_param:
group_role} domain: {get_param:
group_role_domain}
role: {get_param:
group_role} project:
{get_param:
group_role_project}

Properties
description

Description of keystone group.


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

domain

Name or id of keystone domain.


Can be updated without replacement.
Optional property, defaults to "default".
Value must be of type keystone.domain

name

Name of keystone group.


Can be updated without replacement.
Optional property.

roles

List of role assignments.

81

Heat Orchestration Template reference

May 28, 2015

Can be updated without replacement.


Optional property.
List contents:
*

Map between role with either project or domain.


Updates cause replacement.
Optional property.
Map properties:
domain

Keystone domain
Updates cause replacement.
Optional property.
Value must be of type keystone.domain

project

Keystone project
Updates cause replacement.
Optional property.
Value must be of type keystone.project

role

Keystone role
Updates cause replacement.
Required property.
Value must be of type keystone.role

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Keystone::Group
properties:
description: String
domain: String
name: String
roles: [{"project": String, "domain": String, "role": String},
{"project": String, "domain": String, "role": String}, ...]

82

current

Heat Orchestration Template reference

May 28, 2015

current

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Keystone::Group
Properties:
description: String
domain: String
name: String
roles: [{"project": String, "domain": String, "role": String},
{"project": String, "domain": String, "role": String}, ...]

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Keystone::Group",
"Properties": {
"description": String,
"domain": String,
"name": String,
"roles": [{"project": String, "domain": String, "role": String},
{"project": String, "domain": String, "role": String}, ...]
}
}
}
}

OS::Keystone::Project
Note
Available since 2015.1 (Kilo) - Supported versions: keystone v3
Heat Template Resource for Keystone Project.
heat_template_version: 2013-05-23
description: Sample Keystone Project template
parameters:

project_name:

type: string description: Keystone project


name

project_description:

type: string description: Keystone project


description

project_enabled:

type: boolean description: Keystone project


is enabled or disabled
83

Heat Orchestration Template reference

May 28, 2015

project_domain:
resources:

admin_project:

type: string description: Keystone project


domain name or id
type: OS::Keystone::Project properties:
name: {get_param: project_name}
domain: {get_param:
project_domain} description:
{get_param: project_description}
enabled: {get_param:
project_enabled}

Properties
description

Description of keystone project.


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

domain

Name or id of keystone domain.


Can be updated without replacement.
Optional property, defaults to "default".
Value must be of type keystone.domain

enabled

This project is enabled or disabled.


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

name

current

Name of keystone project.


Can be updated without replacement.
Optional property.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Keystone::Project
properties:
description: String
domain: String
enabled: Boolean
name: String

84

Heat Orchestration Template reference

May 28, 2015

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Keystone::Project
Properties:
description: String
domain: String
enabled: Boolean
name: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Keystone::Project",
"Properties": {
"description": String,
"domain": String,
"enabled": Boolean,
"name": String
}
}
}
}

OS::Keystone::Role
Note
Available since 2015.1 (Kilo) - Supported versions: keystone v3
Heat Template Resource for Keystone Role.
heat_template_version: 2013-05-23
parameters:

role_name:

resources:

sample_role:

type: string description: Keystone role name


type: OS::Keystone::Role properties:
name: {get_param: role_name}

Properties
name Name of keystone role.
Can be updated without replacement.
85

current

Heat Orchestration Template reference

May 28, 2015

current

Optional property.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Keystone::Role
properties:
name: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Keystone::Role
Properties:
name: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Keystone::Role",
"Properties": {
"name": String
}
}
}
}

OS::Keystone::User
Note
Available since 2015.1 (Kilo) - Supported versions: keystone v3
Heat Template Resource for Keystone User.
heat_template_version: 2013-05-23
description: Sample Keystone User template
parameters:

user_name:

type: string description: Keystone user


name

86

Heat Orchestration Template reference

resources:

May 28, 2015

current

user_description:

type: string description: Keystone user description

user_enabled:

type: boolean description: Keystone user is


enabled or disabled

user_domain:

type: string description: Keystone user domain name

user_email:

type: string description: Keystone user


email address

user_password:

type: string description: Keystone user


password

user_default_project:

type: string description: Keystone user default project id

user_groups:

type: comma_delimited_list description:


Keystone groups, where this user is part of

group_role:

type: string description: role

group_role_domain:

type: string description: group role domain

group_role_project:

type: string description: group role project

admin_user:

type: OS::Keystone::User properties:


name: {get_param: user_name} domain: {get_param: user_domain} description: {get_param: user_description}
enabled: {get_param: user_enabled}
email: {get_param: user_email} password: {get_param: user_password}
default_project: {get_param:
user_default_project} groups:
{get_param: user_groups} roles:
role: {get_param:
group_role} domain: {get_param:
group_role_domain}
role: {get_param:
group_role} project:
{get_param:
group_role_project}

Properties
default_project

Default project of keystone user.


87

Heat Orchestration Template reference

May 28, 2015


Can be updated without replacement.
Optional property.
Value must be of type keystone.project

description

Description of keystone user.


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

domain

Name of keystone domain.


Can be updated without replacement.
Optional property, defaults to "default".
Value must be of type keystone.domain

email

Email address of keystone user.


Can be updated without replacement.
Optional property.

enabled

Keystone user is enabled or disabled


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

groups

keystone user groups.


Can be updated without replacement.
Optional property.
List contents:
*

keystone user group.


Updates cause replacement.
Optional property.
Value must be of type keystone.group

name

Name of keystone user.


Can be updated without replacement.
Optional property.

password

Password of keystone user.

88

current

Heat Orchestration Template reference

May 28, 2015


Can be updated without replacement.
Optional property.

roles

List of role assignments.


Can be updated without replacement.
Optional property.
List contents:
*

Map between role with either project or domain.


Updates cause replacement.
Optional property.
Map properties:
domain

Keystone domain
Updates cause replacement.
Optional property.
Value must be of type keystone.domain

project

Keystone project
Updates cause replacement.
Optional property.
Value must be of type keystone.project

role

Keystone role
Updates cause replacement.
Required property.
Value must be of type keystone.role

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Keystone::User
properties:
default_project: String
description: String

89

current

Heat Orchestration Template reference

May 28, 2015

domain: String
email: String
enabled: Boolean
groups: [String, String, ...]
name: String
password: String
roles: [{"project": String, "domain": String, "role": String},
{"project": String, "domain": String, "role": String}, ...]

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Keystone::User
Properties:
default_project: String
description: String
domain: String
email: String
enabled: Boolean
groups: [String, String, ...]
name: String
password: String
roles: [{"project": String, "domain": String, "role": String},
{"project": String, "domain": String, "role": String}, ...]

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Keystone::User",
"Properties": {
"default_project": String,
"description": String,
"domain": String,
"email": String,
"enabled": Boolean,
"groups": [String, String, ...],
"name": String,
"password": String,
"roles": [{"project": String, "domain": String, "role": String},
{"project": String, "domain": String, "role": String}, ...]
}
}
}
}

90

current

Heat Orchestration Template reference

May 28, 2015

OS::Neutron::ExtraRoute
Properties
destination

Network in CIDR notation.


Updates cause replacement.
Required property.

nexthop

Nexthop IP address.
Updates cause replacement.
Required property.

router_id

The router id.


Updates cause replacement.
Required property.
Value must be of type neutron.router

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Neutron::ExtraRoute
properties:
destination: String
nexthop: String
router_id: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::ExtraRoute
Properties:
destination: String
nexthop: String
router_id: String

91

current

Heat Orchestration Template reference

May 28, 2015

current

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

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.

shared

Note
Available since 2015.1 (Kilo)
92

Heat Orchestration Template reference

May 28, 2015

current

Whether this firewall should be shared across all tenants. NOTE:


The default policy setting in Neutron restricts usage of this property to administrative users only.
Can be updated without replacement.
Optional property, defaults to "False".

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.

shared

Shared status of this 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
shared: Boolean

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
shared: Boolean

93

Heat Orchestration Template reference

May 28, 2015

current

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

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.

94

Heat Orchestration Template reference

May 28, 2015

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.

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

95

current

Heat Orchestration Template reference

May 28, 2015

current

"audited": Boolean,
"description": String,
"firewall_rules": [Value, Value, ...],
"name": String,
"shared": Boolean
}
}
}
}

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

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
96

Heat Orchestration Template reference


name

May 28, 2015

current

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, defaults to "any".
Allowed values: tcp, udp, icmp, any

shared

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.


97

Heat Orchestration Template reference

May 28, 2015

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

98

current

Heat Orchestration Template reference

May 28, 2015

current

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

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

Note
Available since 2014.2 (Juno)
Network to allocate floating IP from.
Updates cause replacement.
Optional property.
Value must be of type neutron.network

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 must be of type neutron.port

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

99

Heat Orchestration Template reference

May 28, 2015

current

Note

floating_network_id

DEPRECATED - Use property floating_network.


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

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.

tenant_id

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

100

Heat Orchestration Template reference

May 28, 2015

current

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.
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.
Value must be of type neutron.port

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

101

Heat Orchestration Template reference

May 28, 2015

current

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

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

Heat Orchestration Template reference


http_method

May 28, 2015

current

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

url_path

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.

103

Heat Orchestration Template reference

May 28, 2015

current

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

104

Heat Orchestration Template reference

May 28, 2015

current

}
}
}
}

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.

encryption_algorithm

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

105

Heat Orchestration Template reference

May 28, 2015

current

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

Negotiation mode for the ike policy.


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

106

Heat Orchestration Template reference

May 28, 2015

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

current

Heat Orchestration Template reference

May 28, 2015

current

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


108

Heat Orchestration Template reference

May 28, 2015

current

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

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

109

Heat Orchestration Template reference

May 28, 2015

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


110

current

Heat Orchestration Template reference

May 28, 2015

current

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

111

Heat Orchestration Template reference


mtu

May 28, 2015

current

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

Heat Orchestration Template reference

May 28, 2015

current

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.

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'

113

Heat Orchestration Template reference

May 28, 2015

current

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

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

Heat Orchestration Template reference

May 28, 2015

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.

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

115

current

Heat Orchestration Template reference

May 28, 2015

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

Properties
description

Description of the metering label.


Updates cause replacement.
Optional property.

name

Name of the metering label.


Updates cause replacement.
Optional property.

shared

Note
Available since 2015.1 (Kilo)
Whether the metering label should be shared across all tenants.
Updates cause replacement.
Optional property, defaults to "False".

Attributes
description

Description of the metering label.

name

Name of the metering label.

shared

Shared status of the metering label.

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

116

current

Heat Orchestration Template reference

May 28, 2015

current

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

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

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

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

Heat Orchestration Template reference

May 28, 2015

current

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

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
{

118

Heat Orchestration Template reference

May 28, 2015

current

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

119

Heat Orchestration Template reference


value_specs

May 28, 2015

current

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

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
{

120

Heat Orchestration Template reference

May 28, 2015

current

"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
Note
Available since 2014.1 (Icehouse)
A resource for the Network Gateway resource in Neutron Network Gateway.

Properties
connections

Connection info for this network gateway.


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

Updates cause replacement.


Optional property.
Map properties:

Note

network

Available since 2014.2 (Juno)


The internal network to connect on the network gateway.
Updates cause replacement.
Optional property.
Value must be of type neutron.network
121

Heat Orchestration Template reference

May 28, 2015

segmentation_id

current

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.
Value must be of type neutron.network
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

The device id for the network gateway.


Updates cause replacement.
Required property.

interface_name

122

The interface name for the network gateway.

Heat Orchestration Template reference

May 28, 2015

current

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

123

Heat Orchestration Template reference

May 28, 2015

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.


124

Heat Orchestration Template reference

May 28, 2015

current

Updates cause replacement.


Optional property.
protocol

Protocol for balancing.


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

Note

subnet

Available since 2014.2 (Juno)


The subnet for the port on which the members of the pool will be
connected.
Updates cause replacement.
Optional property.
Value must be of type neutron.subnet
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.

125

Heat Orchestration Template reference

May 28, 2015

current
Optional property.

name

Name of the vip.


Updates cause replacement.
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.
Value must be of type neutron.subnet
126

Heat Orchestration Template reference


subnet_id

May 28, 2015

current

Note
DEPRECATED - Use property subnet.
Updates cause replacement.
Optional property.
Value must be of type neutron.subnet

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'

127

Heat Orchestration Template reference

May 28, 2015

current

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

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
Note
Available since 2014.1 (Icehouse)
A resource to handle load balancer members.

Properties
address

IP address of the pool member on the pool network.


Updates cause replacement.
128

Heat Orchestration Template reference

May 28, 2015

current

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

129

Heat Orchestration Template reference

May 28, 2015

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

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

current

Heat Orchestration Template reference

May 28, 2015

current

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

Note

binding:vnic_type

Available since 2015.1 (Kilo)


The vnic type to be bound on the neutron port. To support
SR-IOV PCI passthrough networking, you can request that
the neutron port to be realized as normal (virtual nic), direct
(pci passthrough), or macvtap (virtual interface with a taplike software interface). Note that this only works for Neutron deployments that support the bindings extension.
Can be updated without replacement.
Optional property.
Allowed values: normal, direct, macvtap
device_id

Device ID of this port.


Can be updated without replacement.
Optional property.
131

Heat Orchestration Template reference


device_owner

May 28, 2015

current

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

Note
Available since 2014.2 (Juno)
Subnet in which to allocate the IP address for this port.
Updates cause replacement.
Optional property.
Value must be of type neutron.subnet

subnet_id

Note
DEPRECATED - Use property
subnet.
Updates cause replacement.
Optional property.
Value must be of type neutron.subnet

mac_address

132 to give to this port.


MAC address

Heat Orchestration Template reference

May 28, 2015

current

Updates cause replacement.


Optional property.
name

A symbolic name for this port.


Can be updated without replacement.
Optional property.

Note

network

Available since 2014.2 (Juno)


Network this port belongs to. If you plan to use current port
to assign Floating IP, you should specify fixed_ips with subnet
Updates cause replacement.
Optional property.
Value must be of type neutron.network
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 "AUTO".
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 "{}".

Note

network_id

DEPRECATED - Use property network.


Updates cause replacement.
133

Heat Orchestration Template reference

May 28, 2015

current

Optional property.
Value must be of type neutron.network

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}, ...]
binding:vnic_type: 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: {...}

134

Heat Orchestration Template reference

May 28, 2015

current

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}, ...]
binding:vnic_type: 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}, ...],
"binding:vnic_type": 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
Note
Available since 2014.1 (Icehouse)
135

Heat Orchestration Template reference

May 28, 2015

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.

136

Heat Orchestration Template reference

May 28, 2015

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.


137

current

Heat Orchestration Template reference

May 28, 2015

current

Can be updated without replacement.


Optional property, defaults to "True".

Note

distributed

Available since 2015.1 (Kilo)


Indicates whether or not to create a distributed router.
NOTE: The default policy setting in Neutron restricts usage
of this property to administrative users only. This property
can not be used in conjunction with the L3 agent ID.
Updates cause replacement.
Optional property.
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.

Note

ha

Available since 2015.1 (Kilo)


Indicates whether or not to create a highly available router.
NOTE: The default policy setting in Neutron restricts usage
of this property to administrative users only. And now neutron do not support distributed and ha at the same time.
Updates cause replacement.
Optional property.
138

Heat Orchestration Template reference

May 28, 2015

current

Note

l3_agent_ids

Available since 2015.1 (Kilo)


ID list of the L3 agent. User can specify multi-agents for
highly available router. NOTE: The default policy setting in
Neutron restricts usage of this property to administrative
users only.
Can be updated without replacement.
Optional property.
List contents:
*

Updates cause 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 "{}".

Note

l3_agent_id

DEPRECATED - Deprecated in Kilo. Use property


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

Attributes
admin_state_up

Administrative state of the router.

external_gateway_info

Gateway network for the router.

name

Friendly name of the router.

show

All attributes.

status

The status of the router.

139

Heat Orchestration Template reference


tenant_id

May 28, 2015

current

Tenant owning the router.

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

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

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

140

Heat Orchestration Template reference

May 28, 2015

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.
Value must be of type neutron.network

router_id

ID of the router.
Updates cause replacement.
Required property.
Value must be of type neutron.router

network_id

Note
DEPRECATED - Use property network.
Updates cause replacement.
Optional property.
Value must be of type neutron.network

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

141

Heat Orchestration Template reference

May 28, 2015

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

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

OS::Neutron::RouterInterface
Properties
Note

port

Available since 2015.1 (Kilo)


The port, either subnet or port should be specified.
Updates cause replacement.
Optional property.
Value must be of type neutron.port
router

The router.
Updates cause replacement.
Optional property.
Value must be of type neutron.router

subnet

The subnet, either subnet or port should be specified.


Updates cause replacement.

142

current

Heat Orchestration Template reference

May 28, 2015

Optional property.
Value must be of type neutron.subnet
port_id

Note
DEPRECATED - Deprecated in Kilo. Use property port.
The port id, either subnet or port_id should be specified.
Updates cause replacement.
Optional property.
Value must be of type neutron.port

router_id

Note
DEPRECATED - Use property router.
ID of the router.
Updates cause replacement.
Optional property.
Value must be of type neutron.router

subnet_id

Note
DEPRECATED - Use property subnet.
Updates cause replacement.
Optional property.
Value must be of type neutron.subnet

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

143

current

Heat Orchestration Template reference

May 28, 2015

current

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

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

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

Properties
description

Description of the security group.


Can be updated without replacement.
Optional property.

name

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

144

Heat Orchestration Template reference

May 28, 2015

current

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

Heat Orchestration Template reference

May 28, 2015

current

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. The remote mode parameter must be set to "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

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

146

Heat Orchestration Template reference

May 28, 2015

current

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

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

Heat Orchestration Template reference

May 28, 2015

current

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. Set to any of [ null | ~ | "" ] to create the


subnet without a gateway. If omitted, the first IP address within
the subnet is assigned to the gateway.
Can be updated without replacement.
Optional property.

host_routes

Can be updated without replacement.


Optional property.
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
destination

Updates cause replacement.


Required property.

nexthop

Updates cause replacement.


Required property.

148

Heat Orchestration Template reference


ip_version

May 28, 2015

current

The IP version, which is 4 or 6.


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

ipv6_address_mode

Note
Available since 2015.1 (Kilo)
IPv6 address mode. dhcpv6-stateful, dhcpv6-stateless, or slaac.
Updates cause replacement.
Optional property.
Allowed values: dhcpv6-stateful, dhcpv6-stateless, slaac

ipv6_ra_mode

Note
Available since 2015.1 (Kilo)
IPv6 RA (Router Advertisement) mode. dhcpv6-stateful, dhcpv6stateless, or slaac.
Updates cause replacement.
Optional property.
Allowed values: dhcpv6-stateful, dhcpv6-stateless, slaac

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.
Value must be of type neutron.network

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.


149

Heat Orchestration Template reference

May 28, 2015

current

Can be updated without replacement.


Optional property, defaults to "{}".
network_id

Note
DEPRECATED - Use property network.
Updates cause replacement.
Optional property.
Value must be of type neutron.network

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

150

Heat Orchestration Template reference

May 28, 2015

current

gateway_ip: String
host_routes: [{"nexthop": String, "destination": String}, {"nexthop":
String, "destination": String}, ...]
ip_version: Integer
ipv6_address_mode: String
ipv6_ra_mode: String
name: String
network: String
tenant_id: String
value_specs: {...}

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
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
ipv6_address_mode: String
ipv6_ra_mode: String
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,
"ipv6_address_mode": String,
"ipv6_ra_mode": String,
"name": String,
"network": String,
"tenant_id": String,

151

Heat Orchestration Template reference

May 28, 2015

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

description

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

The router to which the vpn service will be inserted.


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

subnet

Note
Available since 2014.2 (Juno)
Subnet in which the vpn service will be created.
Updates cause replacement.
Optional property.
Value must be of type neutron.subnet

router_id

Note
DEPRECATED - Use property router
152

current

Heat Orchestration Template reference

May 28, 2015

current

Unique identifier for the router to which the vpn service will be inserted.
Updates cause replacement.
Optional property.
Value must be of type neutron.router
subnet_id

Note
DEPRECATED - Use property subnet.
Updates cause replacement.
Optional property.
Value must be of type neutron.subnet

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.

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: String
subnet: String

153

Heat Orchestration Template reference

May 28, 2015

current

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Neutron::VPNService
Properties:
admin_state_up: Boolean
description: String
name: String
router: 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": String,
"subnet": String
}
}
}
}

OS::Nova::Flavor
A resource for creating OpenStack virtual hardware templates.
Due to default nova security policy usage of this resource is limited to being used by administrators only. The rights may also be delegated to other users by redefining the access controls on the nova-api server.
Note that the current implementation of the Nova Flavor resource does not allow specifying the name and flavorid properties for the resource. This is done to avoid potential naming collision upon flavor creation as all flavor have a global scope.

Properties
disk

Size of local disk in GB. Set the value to 0 to remove limit on disk size.
Updates cause replacement.
Required property.

ephemeral

Size of a secondary ephemeral data disk in GB.


154

Heat Orchestration Template reference

May 28, 2015

Updates cause replacement.


Optional property, defaults to "0".
extra_specs

Key/Value pairs to extend the capabilities of the flavor.


Can be updated without replacement.
Optional property.

ram

Memory in MB for the flavor.


Updates cause replacement.
Required property.

rxtx_factor

RX/TX factor.
Updates cause replacement.
Optional property, defaults to "1.0".

swap

Swap space in MB.


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

vcpus

Number of VCPUs for the flavor.


Updates cause replacement.
Required property.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Nova::Flavor
properties:
disk: Integer
ephemeral: Integer
extra_specs: {...}
ram: Integer
rxtx_factor: Number
swap: Integer
vcpus: Integer

155

current

Heat Orchestration Template reference

May 28, 2015

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Nova::Flavor
Properties:
disk: Integer
ephemeral: Integer
extra_specs: {...}
ram: Integer
rxtx_factor: Number
swap: Integer
vcpus: Integer

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Nova::Flavor",
"Properties": {
"disk": Integer,
"ephemeral": Integer,
"extra_specs": {...},
"ram": Integer,
"rxtx_factor": Number,
"swap": Integer,
"vcpus": Integer
}
}
}
}

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

Properties
pool

Allocate a floating IP from a given floating IP pool.


Updates cause replacement.
Optional property.

Attributes
ip

Allocated floating IP address.


156

current

Heat Orchestration Template reference


pool

May 28, 2015

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
Note
Available since 2014.1 (Icehouse)

Properties
floating_ip

ID of the floating IP to assign to the server.


Can be updated without replacement.
Required property.

server_id

Server to assign floating IP to.


Can be updated without replacement.

157

current

Heat Orchestration Template reference

May 28, 2015

current

Required property.
Value must be of type nova.server

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
Note
Available since 2014.1 (Icehouse)
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.

158

Heat Orchestration Template reference

May 28, 2015

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.

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

159

Heat Orchestration Template reference

May 28, 2015

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
Resource for Rackspace Cloud Servers.

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

Heat Orchestration Template reference

May 28, 2015


*

current

Updates cause replacement.


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.
Value must be of
type cinder.snapshot

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.
Value must be of
type cinder.volume

161

Heat Orchestration Template reference

May 28, 2015


volume_size

current
The size of the volume, in GB. It is safe
to leave this blank
and have the Compute service infer the
size.
Updates cause replacement.
Optional property.

block_device_mapping_v2

Block device mappings v2 for this server.


Updates cause replacement.
Optional property.
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
boot_index

Integer used for


ordering the boot
disks.
Updates cause replacement.
Optional property.

delete_on_termination

Indicate whether the


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

device_name

162

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

Heat Orchestration Template reference

May 28, 2015

current
Updates cause replacement.
Optional property.

device_type

Device type: at the


moment we can
make distinction only between disk and
cdrom.
Updates cause replacement.
Optional property.
Allowed values:
cdrom, disk

disk_bus

Bus of the device: hypervisor driver chooses a suitable default


if omitted.
Updates cause replacement.
Optional property.
Allowed values: ide,
lame_bus, scsi, usb,
virtio

image_id

The ID of the image


to create a volume
from.
Updates cause replacement.
Optional property.
Value must be of
type glance.image

snapshot_id

The ID of the snapshot to create a volume from.


Updates cause replacement.
Optional property.

163

Heat Orchestration Template reference

May 28, 2015

current
Value must be of
type cinder.snapshot

swap_size

The size of the swap,


in MB.
Updates cause replacement.
Optional property.

volume_id

The volume_id can


be boot or non-boot
device to the server.
Updates cause replacement.
Optional property.
Value must be of
type cinder.volume

volume_size

Size of the block


device in GB. If it is
omitted, hypervisor
driver calculates size.
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.
164

Heat Orchestration Template reference

May 28, 2015

current

Value must be of type nova.flavor


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 "REBUILD".
Allowed values: REBUILD, REPLACE,
REBUILD_PRESERVE_EPHEMERAL

key_name

Name of keypair to inject into the server.


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

Heat Orchestration Template reference


networks

May 28, 2015

current

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.
Value must be of type
neutron.network

port

ID of an existing port to associate with


this server.
Updates cause replacement.
Optional property.
Value must be of type neutron.port

uuid

Note
DEPRECATED - Use property network.
ID of network to create a port on.
Updates cause replacement.
Optional property.

166

Heat Orchestration Template reference

May 28, 2015

current
Value must be of type
neutron.network

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

Heat Orchestration Template reference


user_data_format

May 28, 2015

current

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. The port ID


may be obtained through the following expression: "{get_attr: [<server>, addresses, <network name>, 0, port]}".

console_urls

Note
Available since 2015.1 (Kilo)
URLs of server's consoles. To get a specific console type, the requested type can be specified as parameter to the get_attr function, e.g.
get_attr: [ <server>, console_urls, novnc ]. Currently supported types
are novnc, xvpvnc, spice-html5, rdp-html5, serial.

first_address

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

168

Heat Orchestration Template reference

May 28, 2015

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}, ...]
block_device_mapping_v2: [{"disk_bus": String, "image_id": String,
"boot_index": Integer, "device_type": String, "swap_size": Integer,
"volume_id": String, "delete_on_termination": Boolean, "snapshot_id":
String, "volume_size": Integer, "device_name": String}, {"disk_bus":
String, "image_id": String, "boot_index": Integer, "device_type": String,
"swap_size": Integer, "volume_id": String, "delete_on_termination": Boolean,
"snapshot_id": String, "volume_size": Integer, "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

169

Heat Orchestration Template reference

May 28, 2015

current

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
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}, ...]
block_device_mapping_v2: [{"disk_bus": String, "image_id": String,
"boot_index": Integer, "device_type": String, "swap_size": Integer,
"volume_id": String, "delete_on_termination": Boolean, "snapshot_id":
String, "volume_size": Integer, "device_name": String}, {"disk_bus":
String, "image_id": String, "boot_index": Integer, "device_type": String,
"swap_size": Integer, "volume_id": String, "delete_on_termination": Boolean,
"snapshot_id": String, "volume_size": Integer, "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}, ...],
"block_device_mapping_v2": [{"disk_bus": String, "image_id":
String, "boot_index": Integer, "device_type": String, "swap_size": Integer,

170

Heat Orchestration Template reference

May 28, 2015

current

"volume_id": String, "delete_on_termination": Boolean, "snapshot_id":


String, "volume_size": Integer, "device_name": String}, {"disk_bus":
String, "image_id": String, "boot_index": Integer, "device_type": String,
"swap_size": Integer, "volume_id": String, "delete_on_termination": Boolean,
"snapshot_id": String, "volume_size": Integer, "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
}
}
}
}

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

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.


171

Heat Orchestration Template reference

May 28, 2015

current

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

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.

default_image_id

Default name or UUID of the image used to boot


Hadoop nodes.

172

Heat Orchestration Template reference

May 28, 2015

current

Updates cause replacement.


Optional property.
Value must be of type sahara.image
hadoop_version

Version of Hadoop running on instances.


Updates cause replacement.
Required property.

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.
Optional property.

neutron_management_network Name or UUID of network.


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

Plugin name.
Updates cause replacement.
Required property.

Note

image

DEPRECATED - Property was deprecated in


Kilo release. Use property default_image_id.
Name or UUID of the image used to boot Hadoop
nodes.
Updates cause replacement.
Optional property.
Value must be of type glance.image
173

Heat Orchestration Template reference

May 28, 2015

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
default_image_id: String
hadoop_version: 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
default_image_id: String
hadoop_version: String
key_name: String
name: String
neutron_management_network: String
plugin_name: String

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

174

current

Heat Orchestration Template reference

May 28, 2015

}
}
}

OS::Sahara::ClusterTemplate
Note
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 sahara.image

description

Description of the Sahara Group Template.


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.

175

current

Heat Orchestration Template reference

May 28, 2015

current

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

name

Name of the Node


group.
Updates cause replacement.
Required property.

node_group_template_id

ID of the Node
Group Template.
Updates cause replacement.

176

Heat Orchestration Template reference

May 28, 2015

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

177

Heat Orchestration Template reference

May 28, 2015

current

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

Properties
auto_security_group

Defines whether auto-assign security group to this Node


Group template.
Updates cause replacement.
Optional property.

availability_zone

Availability zone to create servers in.


Updates cause replacement.
Optional property.

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.
Value must be of type nova.flavor

floating_ip_pool

Name or UUID of the Neutron floating IP network or


name of the Nova floating ip pool to use. Should not be
178

Heat Orchestration Template reference

May 28, 2015

current

provided when used with Nova-network that auto-assign floating IPs.


Updates cause replacement.
Optional property.
hadoop_version

Version of Hadoop running on instances.


Updates cause replacement.
Required property.

image_id

ID of the image to use for the template.


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

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][azA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Zaz0-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.

179

Heat Orchestration Template reference

May 28, 2015

current

Required property.
security_groups

List of security group names or IDs to assign to this


Node Group template.
Updates cause replacement.
Optional property.
List contents:
*

Updates cause replacement.


Optional property.

volume_type

Type of the volume to create on Cinder backend.


Updates cause replacement.
Optional property.
Value must be of type cinder.vtype

volumes_availability_zone

Availability zone to create volumes in.


Updates cause replacement.
Optional 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.
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:
auto_security_group: Boolean

180

Heat Orchestration Template reference

May 28, 2015

availability_zone: String
description: String
flavor: String
floating_ip_pool: String
hadoop_version: String
image_id: String
name: String
node_configs: {...}
node_processes: [String, String, ...]
plugin_name: String
security_groups: [String, String, ...]
volume_type: String
volumes_availability_zone: String
volumes_per_node: Integer
volumes_size: Integer

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

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

181

current

Heat Orchestration Template reference

May 28, 2015

current

"node_configs": {...},
"node_processes": [String, String, ...],
"plugin_name": String,
"security_groups": [String, String, ...],
"volume_type": String,
"volumes_availability_zone": String,
"volumes_per_node": Integer,
"volumes_size": Integer
}
}
}
}

OS::Swift::Container
Properties
PurgeOnDelete

Note
Available since 2015.1 (Kilo)
If True, delete any objects in the container when the container is
deleted. Otherwise, deleting a non-empty container will result in
an error.
Updates cause replacement.
Optional property, defaults to "False".

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

Heat Orchestration Template reference

May 28, 2015

current

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.

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:
PurgeOnDelete: Boolean
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:
PurgeOnDelete: Boolean
X-Account-Meta: {...}
X-Container-Meta: {...}
X-Container-Read: String
X-Container-Write: String
name: String

183

Heat Orchestration Template reference

May 28, 2015

current

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

OS::Trove::Cluster
Note
Available since 2015.1 (Kilo)

Properties
datastore_type

Name of registered datastore type.


Updates cause replacement.
Required 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.
Required property.
The length must be no greater than 255.

instances

List of database instances.


Updates cause replacement.
Required property.
List contents:
184

Heat Orchestration Template reference

May 28, 2015


*

current

Updates cause replacement.


Optional property.
Map properties:
flavor

Flavor of the instance.


Updates cause replacement.
Required property.
Value must be of type trove.flavor

volume_size

Size of the instance disk volume in GB.


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

name

Name of the cluster to create.


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

Attributes
instances

A list of instances ids.

ip

IP of the cluster.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Trove::Cluster
properties:
datastore_type: String
datastore_version: String
instances: [{"volume_size": Integer, "flavor": String}, {"volume_size":
Integer, "flavor": String}, ...]
name: String

185

Heat Orchestration Template reference

May 28, 2015

current

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Trove::Cluster
Properties:
datastore_type: String
datastore_version: String
instances: [{"volume_size": Integer, "flavor": String}, {"volume_size":
Integer, "flavor": String}, ...]
name: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Trove::Cluster",
"Properties": {
"datastore_type": String,
"datastore_version": String,
"instances": [{"volume_size": Integer, "flavor": String},
{"volume_size": Integer, "flavor": String}, ...],
"name": String
}
}
}
}

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

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

Heat Orchestration Template reference

May 28, 2015

current

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_]+

datastore_type

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.


187

Heat Orchestration Template reference

May 28, 2015

current

Updates cause replacement.


Required property.
Value must be of type trove.flavor
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


to. Either port or network must be specified.
Updates cause replacement.
Optional property.
Value must be of type neutron.network

port

Name or UUID of Neutron port to attach this


NIC to. Either port or network must be specified.
Updates cause replacement.
Optional property.
Value must be of type neutron.port

restore_point

DB instance restore point.


Updates cause replacement.

188

Heat Orchestration Template reference

May 28, 2015

current

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.

host

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.
189 The length must be no greater than 16.

Heat Orchestration Template reference

May 28, 2015

current

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

190

Heat Orchestration Template reference

May 28, 2015

current

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

OS::Zaqar::Queue
Properties
metadata

Arbitrary key/value metadata to store contextual information about this


queue.
Can be updated without replacement.
Optional property.

name

Name of the queue instance to create.


Updates cause replacement.
Required property.
191

Heat Orchestration Template reference

May 28, 2015

current

Attributes
href
queue_id

The resource href of the queue.

Note
DEPRECATED - Deprecated in kilo. Use get_resource|Ref command instead. For example: { get_resource : <resource_name> }
ID of the queue.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: OS::Zaqar::Queue
properties:
metadata: {...}
name: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: OS::Zaqar::Queue
Properties:
metadata: {...}
name: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "OS::Zaqar::Queue",
"Properties": {
"metadata": {...},
"name": String
}
}
}
}

192

Heat Orchestration Template reference

May 28, 2015

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

193
196
201
203
204
205
206
209
210
211
219
220
222
223
226
228
229
230
231
233
235
239
240
241
243

Heat Orchestration Template reference


DesiredCapacity

May 28, 2015

current

Desired initial number of instances.


Can be updated without replacement.
Optional property.

Note

HealthCheckGracePeriod

Not implemented.

Note

HealthCheckType

Not implemented.
InstanceId

The ID of an existing instance to use to create the Auto Scaling group. If specify this property, will create the
group use an existing instance instead of a launch configuration.
Updates cause replacement.
Optional property.
Value must be of type nova.server

LaunchConfigurationName

The reference to a LaunchConfiguration resource.


Can be updated without replacement.
Optional property.

LoadBalancerNames

List of LoadBalancer resources.


Updates cause replacement.
Optional property.

MaxSize

Maximum number of instances in the group.


Can be updated without replacement.
Required property.

MinSize

Minimum number of instances in the group.


Can be updated without replacement.
Required property.

Tags

Tags to attach to this group.


Updates cause replacement.
Optional property.
List contents:

194

Heat Orchestration Template reference

May 28, 2015


*

current

Updates cause replacement.


Optional property.
Map properties:
Key

Updates cause replacement.


Required property.

Value

Updates cause replacement.


Required property.

VPCZoneIdentifier

Use only with Neutron, to list the internal subnet to


which the instance will be attached; needed only if multiple exist; list length must be exactly 1.
Updates cause replacement.
Optional property.
List contents:
*

UUID of the internal subnet to which the instance will


be attached.
Updates cause replacement.
Optional property.

Attributes
InstanceList

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

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: AWS::AutoScaling::AutoScalingGroup
properties:
AvailabilityZones: [Value, Value, ...]
Cooldown: Number
DesiredCapacity: Integer
InstanceId: String
LaunchConfigurationName: String
LoadBalancerNames: [Value, Value, ...]
MaxSize: Integer
MinSize: Integer
Tags: [{"Value": String, "Key": String}, {"Value": String, "Key":
String}, ...]
VPCZoneIdentifier: [String, String, ...]

195

Heat Orchestration Template reference

May 28, 2015

current

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: AWS::AutoScaling::AutoScalingGroup
Properties:
AvailabilityZones: [Value, Value, ...]
Cooldown: Number
DesiredCapacity: Integer
InstanceId: String
LaunchConfigurationName: String
LoadBalancerNames: [Value, Value, ...]
MaxSize: Integer
MinSize: Integer
Tags: [{"Value": String, "Key": String}, {"Value": String, "Key":
String}, ...]
VPCZoneIdentifier: [String, String, ...]

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "AWS::AutoScaling::AutoScalingGroup",
"Properties": {
"AvailabilityZones": [Value, Value, ...],
"Cooldown": Number,
"DesiredCapacity": Integer,
"InstanceId": String,
"LaunchConfigurationName": String,
"LoadBalancerNames": [Value, Value, ...],
"MaxSize": Integer,
"MinSize": Integer,
"Tags": [{"Value": String, "Key": String}, {"Value": String, "Key":
String}, ...],
"VPCZoneIdentifier": [String, String, ...]
}
}
}
}

AWS::AutoScaling::LaunchConfiguration
Properties
BlockDeviceMappings

Block device mappings to attach to instance.


Updates cause replacement.
Optional property.
List contents:

196

Heat Orchestration Template reference

May 28, 2015


*

current

Updates cause replacement.


Optional property.
Map properties:
DeviceName

A device name where the volume will


be attached in the system at /dev/
device_name.e.g. vdb
Updates cause replacement.
Required property.

Ebs

The ebs volume to attach to the instance.


Updates cause replacement.
Optional property.
Map properties:
DeleteOnTermination

Indicate
whether
the volume
should be
deleted
when the instance is terminated.
Updates
cause replacement.
Optional
property,
defaults to
"True".

Iops

Note
Not
implemented.

SnapshotId

197

The ID of the
snapshot to
create a volume from.

Heat Orchestration Template reference

May 28, 2015

current
Updates
cause replacement.
Optional
property.
Value must
be of type
cinder.snapshot
VolumeSize

The size of
the volume,
in GB. Must
be equal or
greater than
the size of
the snapshot. It is
safe to leave
this blank
and have the
Compute service infer the
size.
Updates
cause replacement.
Optional
property.

VolumeType

Note
Not
implemented.

NoDevice

Note
Not implemented.

VirtualName

Note
Not implemented.

ImageId

Glance image ID or name.

198

Heat Orchestration Template reference

May 28, 2015

current

Updates cause replacement.


Optional property.
Value must be of type glance.image
InstanceId

The ID of an existing instance you want to use to create the


launch configuration. All properties are derived from the instance with the exception of BlockDeviceMapping.
Updates cause replacement.
Optional property.
Value must be of type nova.server

InstanceType

Nova instance type (flavor).


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

Note

KernelId

Not implemented.
KeyName

Optional Nova keypair name.


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

NovaSchedulerHints

Scheduler hints to pass to Nova (Heat extension).


Updates cause replacement.
Optional property.
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
Key

Updates cause replacement.


Required property.

Value

Updates cause replacement.

199

Heat Orchestration Template reference

May 28, 2015

current

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.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: AWS::AutoScaling::LaunchConfiguration
properties:
BlockDeviceMappings: [{"DeviceName": String, "Ebs":
{"DeleteOnTermination": Boolean, "VolumeSize": String, "SnapshotId":
String}}, {"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean,
"VolumeSize": String, "SnapshotId": String}}, ...]
ImageId: String
InstanceId: String
InstanceType: String
KeyName: String
NovaSchedulerHints: [{"Value": String, "Key": String}, {"Value": String,
"Key": String}, ...]
SecurityGroups: [Value, Value, ...]
UserData: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: AWS::AutoScaling::LaunchConfiguration
Properties:
BlockDeviceMappings: [{"DeviceName": String, "Ebs":
{"DeleteOnTermination": Boolean, "VolumeSize": String, "SnapshotId":
String}}, {"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean,
"VolumeSize": String, "SnapshotId": String}}, ...]
ImageId: String
InstanceId: String

200

Heat Orchestration Template reference

May 28, 2015

current

InstanceType: String
KeyName: String
NovaSchedulerHints: [{"Value": String, "Key": String}, {"Value": String,
"Key": String}, ...]
SecurityGroups: [Value, Value, ...]
UserData: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "AWS::AutoScaling::LaunchConfiguration",
"Properties": {
"BlockDeviceMappings": [{"DeviceName": String, "Ebs":
{"DeleteOnTermination": Boolean, "VolumeSize": String, "SnapshotId":
String}}, {"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean,
"VolumeSize": String, "SnapshotId": String}}, ...],
"ImageId": String,
"InstanceId": String,
"InstanceType": String,
"KeyName": String,
"NovaSchedulerHints": [{"Value": String, "Key": String}, {"Value":
String, "Key": String}, ...],
"SecurityGroups": [Value, Value, ...],
"UserData": String
}
}
}
}

AWS::AutoScaling::ScalingPolicy
Properties
AdjustmentType

Type of adjustment (absolute or percentage).


Can be updated without replacement.
Required property.
Allowed values: ChangeInCapacity, ExactCapacity, PercentChangeInCapacity

AutoScalingGroupName

AutoScaling group name to apply policy to.


Updates cause replacement.
Required property.

Cooldown

Cooldown period, in seconds.


Can be updated without replacement.
201

Heat Orchestration Template reference

May 28, 2015


Optional property.

ScalingAdjustment

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

Attributes
AlarmUrl

A signed url to handle the alarm. (Heat extension).

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: AWS::AutoScaling::ScalingPolicy
properties:
AdjustmentType: String
AutoScalingGroupName: String
Cooldown: Number
ScalingAdjustment: Number

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: AWS::AutoScaling::ScalingPolicy
Properties:
AdjustmentType: String
AutoScalingGroupName: String
Cooldown: Number
ScalingAdjustment: Number

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "AWS::AutoScaling::ScalingPolicy",
"Properties": {
"AdjustmentType": String,
"AutoScalingGroupName": String,
"Cooldown": Number,
"ScalingAdjustment": Number
}
}

202

current

Heat Orchestration Template reference

May 28, 2015

current

}
}

AWS::CloudFormation::Stack
A Resource representing a child stack to allow composition of templates.

Properties
Parameters

The set of parameters passed to this nested stack.


Can be updated without replacement.
Optional property.

TemplateURL

The URL of a template that specifies the stack to be created as a resource.


Can be updated without replacement.
Required property.

TimeoutInMinutes

The length of time, in minutes, to wait for the nested stack creation.
Can be updated without replacement.
Optional property.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: AWS::CloudFormation::Stack
properties:
Parameters: {...}
TemplateURL: String
TimeoutInMinutes: Number

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: AWS::CloudFormation::Stack
Properties:
Parameters: {...}
TemplateURL: String
TimeoutInMinutes: Number

203

Heat Orchestration Template reference

May 28, 2015

current

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "AWS::CloudFormation::Stack",
"Properties": {
"Parameters": {...},
"TemplateURL": String,
"TimeoutInMinutes": Number
}
}
}
}

AWS::CloudFormation::WaitCondition
Note
Available since 2014.1 (Icehouse)

Properties
Count

The number of success signals that must be received before the stack creation
process continues.
Can be updated without replacement.
Optional property, defaults to "1".
The value must be at least 1.

Handle

A reference to the wait condition handle used to signal this wait condition.
Updates cause replacement.
Required property.

Timeout

The number of seconds to wait for the correct number of signals to arrive.
Updates cause replacement.
Required property.
The value must be in the range 1 to 43200.

Attributes
Data

JSON serialized dict containing data associated with wait condition signals sent to
the handle.
204

Heat Orchestration Template reference

May 28, 2015

current

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: AWS::CloudFormation::WaitCondition
properties:
Count: Number
Handle: String
Timeout: Number

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: AWS::CloudFormation::WaitCondition
Properties:
Count: Number
Handle: String
Timeout: Number

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "AWS::CloudFormation::WaitCondition",
"Properties": {
"Count": Number,
"Handle": String,
"Timeout": Number
}
}
}
}

AWS::CloudFormation::WaitConditionHandle
Note
Available since 2014.1 (Icehouse)
the main point of this class is to : have no dependencies (so the instance can reference it)
generate a unique url (to be returned in the reference) then the cfn-signal will use this url
to post to and WaitCondition will poll it to see if has been written to.

205

Heat Orchestration Template reference

May 28, 2015

current

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: AWS::CloudFormation::WaitConditionHandle

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: AWS::CloudFormation::WaitConditionHandle

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

AWS::CloudWatch::Alarm
Properties
AlarmActions

Can be updated without replacement.


Optional property.

AlarmDescription

Can be updated without replacement.


Optional property.

ComparisonOperator

Can be updated without replacement.


Required property.
Allowed values: GreaterThanOrEqualToThreshold,
GreaterThanThreshold, LessThanThreshold, LessThanOrEqualToThreshold

Dimensions

Can be updated without replacement.


Optional property.
206

Heat Orchestration Template reference


EvaluationPeriods

May 28, 2015

current

Can be updated without replacement.


Required property.

InsufficientDataActions

Can be updated without replacement.


Optional property.

MetricName

Can be updated without replacement.


Required property.

Namespace

Can be updated without replacement.


Optional property.

OKActions

Can be updated without replacement.


Optional property.

Period

Can be updated without replacement.


Required property.

Statistic

Can be updated without replacement.


Required property.
Allowed values: SampleCount, Average, Sum, Minimum,
Maximum

Threshold

Can be updated without replacement.


Required property.

Units

Can be updated without replacement.


Optional property.
Allowed values: Seconds, Microseconds, Milliseconds,
Bytes, Kilobytes, Megabytes, Gigabytes, Terabytes, Bits,
Kilobits, Megabits, Gigabits, Terabits, Percent, Count,
Bytes/Second, Kilobytes/Second, Megabytes/Second, Gigabytes/Second, Terabytes/Second, Bits/Second, Kilobits/Second, Megabits/Second, Gigabits/Second, Terabits/Second, Count/Second, None

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: AWS::CloudWatch::Alarm

207

Heat Orchestration Template reference

May 28, 2015

properties:
AlarmActions: [Value, Value, ...]
AlarmDescription: String
ComparisonOperator: String
Dimensions: [Value, Value, ...]
EvaluationPeriods: String
InsufficientDataActions: [Value, Value, ...]
MetricName: String
Namespace: String
OKActions: [Value, Value, ...]
Period: String
Statistic: String
Threshold: String
Units: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmActions: [Value, Value, ...]
AlarmDescription: String
ComparisonOperator: String
Dimensions: [Value, Value, ...]
EvaluationPeriods: String
InsufficientDataActions: [Value, Value, ...]
MetricName: String
Namespace: String
OKActions: [Value, Value, ...]
Period: String
Statistic: String
Threshold: String
Units: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "AWS::CloudWatch::Alarm",
"Properties": {
"AlarmActions": [Value, Value, ...],
"AlarmDescription": String,
"ComparisonOperator": String,
"Dimensions": [Value, Value, ...],
"EvaluationPeriods": String,
"InsufficientDataActions": [Value, Value, ...],
"MetricName": String,
"Namespace": String,
"OKActions": [Value, Value, ...],
"Period": String,
"Statistic": String,
"Threshold": String,

208

current

Heat Orchestration Template reference

May 28, 2015

current

"Units": String
}
}
}
}

AWS::EC2::EIP
Properties
Domain

Set to "vpc" to have IP address allocation associated to your VPC.


Updates cause replacement.
Optional property.
Allowed values: vpc

InstanceId

Instance ID to associate with EIP.


Can be updated without replacement.
Optional property.
Value must be of type nova.server

Attributes
AllocationId

ID that AWS assigns to represent the allocation of the address for use
with Amazon VPC. Returned only for VPC elastic IP addresses.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: AWS::EC2::EIP
properties:
Domain: String
InstanceId: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: AWS::EC2::EIP
Properties:
Domain: String
InstanceId: String

209

Heat Orchestration Template reference

May 28, 2015

current

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "AWS::EC2::EIP",
"Properties": {
"Domain": String,
"InstanceId": String
}
}
}
}

AWS::EC2::EIPAssociation
Properties
AllocationId

Allocation ID for VPC EIP address.


Can be updated without replacement.
Optional property.

EIP

EIP address to associate with instance.


Can be updated without replacement.
Optional property.

InstanceId

Instance ID to associate with EIP specified by EIP property.


Can be updated without replacement.
Optional property.
Value must be of type nova.server

NetworkInterfaceId

Network interface ID to associate with EIP.


Can be updated without replacement.
Optional property.

210

Heat Orchestration Template reference

May 28, 2015

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: AWS::EC2::EIPAssociation
properties:
AllocationId: String
EIP: String
InstanceId: String
NetworkInterfaceId: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: AWS::EC2::EIPAssociation
Properties:
AllocationId: String
EIP: String
InstanceId: String
NetworkInterfaceId: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "AWS::EC2::EIPAssociation",
"Properties": {
"AllocationId": String,
"EIP": String,
"InstanceId": String,
"NetworkInterfaceId": String
}
}
}
}

AWS::EC2::Instance
Properties
AvailabilityZone

Availability zone to launch the instance in.


Updates cause replacement.
Optional property.

BlockDeviceMappings

Block device mappings to attach to instance.

211

current

Heat Orchestration Template reference

May 28, 2015

current

Updates cause replacement.


Optional property.
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
DeviceName

A device name where the volume will


be attached in the system at /dev/
device_name.e.g. vdb
Updates cause replacement.
Required property.

Ebs

The ebs volume to attach to the instance.


Updates cause replacement.
Optional property.
Map properties:
DeleteOnTermination

Indicate
whether
the volume
should be
deleted
when the
instance is
terminated.
Updates
cause replacement.
Optional
property,
defaults to
"True".

212

Heat Orchestration Template reference

May 28, 2015

current

Note

Iops

Not
implemented.
SnapshotId

The ID of
the snapshot to
create a
volume
from.
Updates
cause replacement.
Optional
property.
Value
must be
of type
cinder.snapshot

VolumeSize

The size
of the volume, in
GB. Must
be equal
or greater
than the
size of the
snapshot.
It is safe
to leave
this blank
and have
the Compute service infer
the size.
Updates
cause replacement.

213

Heat Orchestration Template reference

May 28, 2015

current
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.
Value must be of type nova.flavor

Note

KernelId

Not implemented.
KeyName

Optional Nova keypair name.


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

Heat Orchestration Template reference

May 28, 2015

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.
Optional property.

SecurityGroups

Security group names to assign.


Updates cause replacement.
Optional property.

215

current

Heat Orchestration Template reference

May 28, 2015

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 "[]".
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
216

current

Heat Orchestration Template reference

May 28, 2015


Device

current
The device where the volume is exposed on
the instance. This assignment may not be
honored and it is advised that the path /
dev/disk/by-id/virtio-<VolumeId> be used
instead.
Updates cause replacement.
Required property.

VolumeId

The ID of the volume to be attached.


Updates cause replacement.
Required property.
Value must be of type cinder.volume

Attributes
AvailabilityZone

The Availability Zone where the specified instance is launched.

PrivateDnsName

Private DNS name of the specified instance.

PrivateIp

Private IP address of the specified instance.

PublicDnsName

Public DNS name of the specified instance.

PublicIp

Public IP address of the specified instance.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: AWS::EC2::Instance
properties:
AvailabilityZone: String
BlockDeviceMappings: [{"DeviceName": String, "Ebs":
{"DeleteOnTermination": Boolean, "VolumeSize": String, "SnapshotId":
String}}, {"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean,
"VolumeSize": String, "SnapshotId": String}}, ...]
ImageId: String
InstanceType: String
KeyName: String
NetworkInterfaces: [Value, Value, ...]
NovaSchedulerHints: [{"Value": String, "Key": String}, {"Value": String,
"Key": String}, ...]
SecurityGroupIds: [Value, Value, ...]
SecurityGroups: [Value, Value, ...]
SubnetId: String
Tags: [{"Value": String, "Key": String}, {"Value": String, "Key":
String}, ...]

217

Heat Orchestration Template reference

May 28, 2015

current

UserData: String
Volumes: [{"Device": String, "VolumeId": String}, {"Device": String,
"VolumeId": String}, ...]

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: AWS::EC2::Instance
Properties:
AvailabilityZone: String
BlockDeviceMappings: [{"DeviceName": String, "Ebs":
{"DeleteOnTermination": Boolean, "VolumeSize": String, "SnapshotId":
String}}, {"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean,
"VolumeSize": String, "SnapshotId": String}}, ...]
ImageId: String
InstanceType: String
KeyName: String
NetworkInterfaces: [Value, Value, ...]
NovaSchedulerHints: [{"Value": String, "Key": String}, {"Value": String,
"Key": String}, ...]
SecurityGroupIds: [Value, Value, ...]
SecurityGroups: [Value, Value, ...]
SubnetId: String
Tags: [{"Value": String, "Key": String}, {"Value": String, "Key":
String}, ...]
UserData: String
Volumes: [{"Device": String, "VolumeId": String}, {"Device": String,
"VolumeId": String}, ...]

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "AWS::EC2::Instance",
"Properties": {
"AvailabilityZone": String,
"BlockDeviceMappings": [{"DeviceName": String, "Ebs":
{"DeleteOnTermination": Boolean, "VolumeSize": String, "SnapshotId":
String}}, {"DeviceName": String, "Ebs": {"DeleteOnTermination": Boolean,
"VolumeSize": String, "SnapshotId": String}}, ...],
"ImageId": String,
"InstanceType": String,
"KeyName": String,
"NetworkInterfaces": [Value, Value, ...],
"NovaSchedulerHints": [{"Value": String, "Key": String}, {"Value":
String, "Key": String}, ...],
"SecurityGroupIds": [Value, Value, ...],
"SecurityGroups": [Value, Value, ...],
"SubnetId": String,
"Tags": [{"Value": String, "Key": String}, {"Value": String, "Key":
String}, ...],
"UserData": String,

218

Heat Orchestration Template reference

May 28, 2015

current

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

219

Heat Orchestration Template reference

May 28, 2015

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.

SourceDestCheck

Note
Not implemented.

SubnetId

Subnet ID to associate with this interface.


Updates cause replacement.
Required property.
Value must be of type neutron.subnet

Tags

Updates cause replacement.


Optional property.
List contents:
220

Heat Orchestration Template reference

May 28, 2015


*

current

Note
Not implemented.

Attributes
PrivateIpAddress

Private IP address of the network interface.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: AWS::EC2::NetworkInterface
properties:
Description: String
GroupSet: [Value, Value, ...]
PrivateIpAddress: String
SubnetId: String
Tags: [{"Value": String, "Key": String}, {"Value": String, "Key":
String}, ...]

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: AWS::EC2::NetworkInterface
Properties:
Description: String
GroupSet: [Value, Value, ...]
PrivateIpAddress: String
SubnetId: String
Tags: [{"Value": String, "Key": String}, {"Value": String, "Key":
String}, ...]

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "AWS::EC2::NetworkInterface",
"Properties": {
"Description": String,
"GroupSet": [Value, Value, ...],
"PrivateIpAddress": String,
"SubnetId": String,
"Tags": [{"Value": String, "Key": String}, {"Value": String, "Key":
String}, ...]

221

Heat Orchestration Template reference

May 28, 2015

}
}
}
}

AWS::EC2::RouteTable
Note
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

222

current

Heat Orchestration Template reference

May 28, 2015

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

Can be updated without replacement.


Optional property.
List contents:
*

List of security group egress rules.


Updates cause replacement.
Optional property.
Map properties:
CidrIp

Updates cause replacement.


Optional property.

FromPort

Updates cause replacement.


Optional property.

IpProtocol

Updates cause replacement.


Optional property.

223

Heat Orchestration Template reference

May 28, 2015


SourceSecurityGroupId

current
Updates cause replacement.
Optional property.

SourceSecurityGroupName

Updates cause replacement.


Optional property.

SourceSecurityGroupOwnerId

Note
Not implemented.

ToPort

Updates cause replacement.


Optional property.

SecurityGroupIngress

Can be updated without replacement.


Optional property.
List contents:
*

List of security group ingress rules.


Updates cause replacement.
Optional property.
Map properties:
CidrIp

Updates cause replacement.


Optional property.

FromPort

Updates cause replacement.


Optional property.

IpProtocol

Updates cause replacement.


Optional property.

SourceSecurityGroupId

224

Updates cause replacement.


Optional property.

Heat Orchestration Template reference

May 28, 2015


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

225

Heat Orchestration Template reference

May 28, 2015

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.

226

Heat Orchestration Template reference


CidrBlock

May 28, 2015

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

227

Heat Orchestration Template reference

May 28, 2015

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.
Value must be of type neutron.subnet

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

228

Heat Orchestration Template reference

May 28, 2015

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.

229

current

Heat Orchestration Template reference

May 28, 2015

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.

230

Heat Orchestration Template reference

May 28, 2015

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.

231

Heat Orchestration Template reference

May 28, 2015

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

232

Heat Orchestration Template reference

May 28, 2015

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

Heat Orchestration Template reference

May 28, 2015

current

Value must be of type nova.server


VolumeId

The ID of the volume to be attached.


Updates are not supported. Resource update will fail on any attempt to update this property.
Required property.
Value must be of type cinder.volume

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: AWS::EC2::VolumeAttachment
properties:
Device: String
InstanceId: String
VolumeId: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: AWS::EC2::VolumeAttachment
Properties:
Device: String
InstanceId: String
VolumeId: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "AWS::EC2::VolumeAttachment",
"Properties": {
"Device": String,
"InstanceId": String,
"VolumeId": String
}
}
}
}

234

Heat Orchestration Template reference

May 28, 2015

current

AWS::ElasticLoadBalancing::LoadBalancer
Implements a HAProxy-bearing instance as a nested stack.
The template for the nested stack can be redefined with loadbalancer_template option in heat.conf.
Generally the image used for the instance must have the following packages installed or
available for installation at runtime:
-

heat-cfntools and its dependencies like python-psutil


cronie
socat
haproxy

Current default builtin template uses Fedora 21 x86_64 base cloud image (https://
getfedora.org/cloud/download/) and apart from installing packages goes through some
hoops around SELinux due to pecularities of heat-cfntools.

Properties
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

235

The approximate interval,


in seconds, between health
checks of an individual instance.

Heat Orchestration Template reference

May 28, 2015

current
Updates cause replacement.
Required property.

Target

The port being checked.


Updates cause replacement.
Required property.

Timeout

Health probe timeout, in seconds.


Updates cause replacement.
Required property.

UnhealthyThreshold

The number of consecutive health probe failures required before moving the instance to the unhealthy state
Updates cause replacement.
Required property.

Instances

The list of instance IDs load balanced.


Can be updated without replacement.
Optional property.

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.

236

Heat Orchestration Template reference

May 28, 2015

current
Required property.

LoadBalancerPort

The external load balancer


port number.
Updates cause replacement.
Required property.

Note

PolicyNames

Not implemented.
Protocol

The load balancer transport


protocol to use.
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.
237

Heat Orchestration Template reference

May 28, 2015

current

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: AWS::ElasticLoadBalancing::LoadBalancer
properties:
AvailabilityZones: [Value, Value, ...]
HealthCheck: {"HealthyThreshold": Number, "Interval": Number, "Target":
String, "Timeout": Number, "UnhealthyThreshold": Number}
Instances: [Value, Value, ...]
Listeners: [{"InstancePort": Number, "LoadBalancerPort": Number,
"Protocol": String}, {"InstancePort": Number, "LoadBalancerPort": Number,
"Protocol": String}, ...]

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: AWS::ElasticLoadBalancing::LoadBalancer
Properties:
AvailabilityZones: [Value, Value, ...]
HealthCheck: {"HealthyThreshold": Number, "Interval": Number, "Target":
String, "Timeout": Number, "UnhealthyThreshold": Number}
Instances: [Value, Value, ...]
Listeners: [{"InstancePort": Number, "LoadBalancerPort": Number,
"Protocol": String}, {"InstancePort": Number, "LoadBalancerPort": Number,
"Protocol": String}, ...]

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "AWS::ElasticLoadBalancing::LoadBalancer",
"Properties": {
"AvailabilityZones": [Value, Value, ...],
"HealthCheck": {"HealthyThreshold": Number, "Interval": Number,
"Target": String, "Timeout": Number, "UnhealthyThreshold": Number},
"Instances": [Value, Value, ...],
"Listeners": [{"InstancePort": Number, "LoadBalancerPort": Number,
"Protocol": String}, {"InstancePort": Number, "LoadBalancerPort": Number,
"Protocol": String}, ...]
}
}
}
}

238

Heat Orchestration Template reference

May 28, 2015

AWS::IAM::AccessKey
Properties
Note

Serial

Not implemented.

Note

Status

Not implemented.
UserName

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

Attributes
SecretAccessKey

Keypair secret key.

UserName

Username associated with the AccessKey.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: AWS::IAM::AccessKey
properties:
UserName: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: AWS::IAM::AccessKey
Properties:
UserName: String

239

current

Heat Orchestration Template reference

May 28, 2015

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "AWS::IAM::AccessKey",
"Properties": {
"UserName": String
}
}
}
}

AWS::IAM::User
Properties
Groups

Not Implemented.
Updates cause replacement.
Optional property.

LoginProfile

A login profile for the user.


Updates cause replacement.
Optional property.
Map properties:
Password

Updates cause replacement.


Optional property.

Path

Not Implemented.
Updates cause replacement.
Optional property.

Policies

Access policies to apply to the user.


Updates cause replacement.
Optional property.

240

current

Heat Orchestration Template reference

May 28, 2015

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: AWS::IAM::User
properties:
Groups: [Value, Value, ...]
LoginProfile: {"Password": String}
Path: String
Policies: [Value, Value, ...]

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: AWS::IAM::User
Properties:
Groups: [Value, Value, ...]
LoginProfile: {"Password": String}
Path: String
Policies: [Value, Value, ...]

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "AWS::IAM::User",
"Properties": {
"Groups": [Value, Value, ...],
"LoginProfile": {"Password": String},
"Path": String,
"Policies": [Value, Value, ...]
}
}
}
}

AWS::RDS::DBInstance
Properties
AllocatedStorage

Can be updated without replacement.


Required property.

DBInstanceClass

Can be updated without replacement.


241

current

Heat Orchestration Template reference

May 28, 2015


Required property.

DBName

Can be updated without replacement.


Required property.

DBSecurityGroups

Can be updated without replacement.


Optional property.

Engine

Can be updated without replacement.


Required property.
Allowed values: MySQL

KeyName

Can be updated without replacement.


Optional property.

MasterUserPassword

Can be updated without replacement.


Required property.

MasterUsername

Can be updated without replacement.


Required property.

Port

Can be updated without replacement.


Optional property.

Attributes
Endpoint.Address

???

Endpoint.Port

???

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: AWS::RDS::DBInstance
properties:
AllocatedStorage: String
DBInstanceClass: String
DBName: String
DBSecurityGroups: [Value, Value, ...]
Engine: String
KeyName: String

242

current

Heat Orchestration Template reference

May 28, 2015

current

MasterUserPassword: String
MasterUsername: String
Port: String

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: AWS::RDS::DBInstance
Properties:
AllocatedStorage: String
DBInstanceClass: String
DBName: String
DBSecurityGroups: [Value, Value, ...]
Engine: String
KeyName: String
MasterUserPassword: String
MasterUsername: String
Port: String

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "AWS::RDS::DBInstance",
"Properties": {
"AllocatedStorage": String,
"DBInstanceClass": String,
"DBName": String,
"DBSecurityGroups": [Value, Value, ...],
"Engine": String,
"KeyName": String,
"MasterUserPassword": String,
"MasterUsername": String,
"Port": String
}
}
}
}

AWS::S3::Bucket
Properties
AccessControl

A predefined access control list (ACL) that grants permissions


on the bucket.
Updates cause replacement.
Optional property.
243

Heat Orchestration Template reference

May 28, 2015

current

Allowed values: Private, PublicRead, PublicReadWrite, AuthenticatedRead, BucketOwnerRead, BucketOwnerFullControl


Tags

Tags to attach to the bucket.


Updates cause replacement.
Optional property.
List contents:
*

Updates cause replacement.


Optional property.
Map properties:
Key

The tag key name.


Updates cause replacement.
Required property.

Value

The tag value.


Updates cause replacement.
Required property.

WebsiteConfiguration

Information used to configure the bucket as a static website.


Updates cause replacement.
Optional property.
Map properties:
ErrorDocument

The name of the error document.


Updates cause replacement.
Optional property.

IndexDocument

The name of the index document.


Updates cause replacement.
Optional property.

Attributes
DomainName

The DNS name of the specified bucket.

244

Heat Orchestration Template reference


WebsiteURL

May 28, 2015

current

The website endpoint for the specified bucket.

HOT Syntax
heat_template_version: 2013-05-23
...
resources:
...
the_resource:
type: AWS::S3::Bucket
properties:
AccessControl: String
Tags: [{"Value": String, "Key": String}, {"Value": String, "Key":
String}, ...]
WebsiteConfiguration: {"IndexDocument": String, "ErrorDocument": String}

YAML Syntax
HeatTemplateFormatVersion: '2012-12-12'
...
Resources:
...
TheResource:
Type: AWS::S3::Bucket
Properties:
AccessControl: String
Tags: [{"Value": String, "Key": String}, {"Value": String, "Key":
String}, ...]
WebsiteConfiguration: {"IndexDocument": String, "ErrorDocument": String}

JSON Syntax
{
"AWSTemplateFormatVersion" : "2010-09-09",
...
"Resources" : {
"TheResource": {
"Type": "AWS::S3::Bucket",
"Properties": {
"AccessControl": String,
"Tags": [{"Value": String, "Key": String}, {"Value": String, "Key":
String}, ...],
"WebsiteConfiguration": {"IndexDocument": String, "ErrorDocument":
String}
}
}
}
}

245

Heat Orchestration Template reference

May 28, 2015

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

246
246
247
247
247
248
248
249
249
249
250

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 is a placeholder for a function to convert an input string to Base64. This function in
Heat actually performs no conversion. It is included for the benefit of CFN templates that
convert UserData to Base64. Heat only accepts UserData in plain text.

Parameters
value

The string to convert.

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

246

Heat Orchestration Template reference

May 28, 2015

current

Returns the original input string.

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

Heat Orchestration Template reference

May 28, 2015

Parameters
region

The name of the region.

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

248

current

Heat Orchestration Template reference

May 28, 2015

current

Returns a.

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

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.


249

Heat Orchestration Template reference

May 28, 2015

current

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

Example
Here is a top level template top.yaml
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']]}

250

Heat Orchestration Template reference

May 28, 2015

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

251

current

Heat Orchestration Template reference

May 28, 2015

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

252
253
253
253
254
255
255
255

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 openSUSE 13.2 and SUSE Linux Enterprise Server 12
Installation Guide for Red Hat Enterprise Linux 7, CentOS 7, and Fedora 21
Installation Guide for Ubuntu 14.04 (LTS)
The following books explain how to configure and run an OpenStack cloud:
Architecture Design Guide
Cloud Administrator Guide
Configuration Reference
Operations Guide
Networking Guide
High Availability Guide
Security Guide
252

Heat Orchestration Template reference

May 28, 2015

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

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

Heat Orchestration Template reference

May 28, 2015

current

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 service (ironic)
Bugs: Data processing service (sahara)
Bugs: Database service (trove)
Bugs: Orchestration (heat)
Bugs: Telemetry (ceilometer)
Bugs: Message Service (zaqar)
Bugs: OpenStack API Documentation (developer.openstack.org)
Bugs: OpenStack Documentation (docs.openstack.org)
254

Heat Orchestration Template reference

May 28, 2015

current

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 https://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: https://www.rdoproject.org/
openSUSE and SUSE Linux Enterprise Server: http://en.opensuse.org/Portal:OpenStack
Ubuntu: https://wiki.ubuntu.com/ServerTeam/CloudArchive

255