sparkle_formation 1.2.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,39 @@
1
+ require 'sparkle_formation'
2
+
3
+ class SparkleFormation
4
+
5
+ # Resources helper
6
+ class Resources
7
+
8
+ # Rackspace specific resources collection
9
+ class Rackspace < Resources
10
+
11
+ class << self
12
+
13
+ include Bogo::Memoization
14
+
15
+ # Load the builtin AWS resources
16
+ #
17
+ # @return [TrueClass]
18
+ def load!
19
+ memoize(:rackspace_resources, :global) do
20
+ load(
21
+ File.join(
22
+ File.dirname(__FILE__),
23
+ 'rackspace_resources.json'
24
+ )
25
+ )
26
+ true
27
+ end
28
+ end
29
+
30
+ # Auto load data when included
31
+ def included(_klass)
32
+ load!
33
+ end
34
+
35
+ end
36
+
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,2561 @@
1
+ {
2
+ "OS::Cinder::Volume": {
3
+ "properties": [
4
+ "availability_zone",
5
+ "backup_id",
6
+ "description",
7
+ "image",
8
+ "metadata",
9
+ "multiattach",
10
+ "name",
11
+ "read_only",
12
+ "scheduler_hints",
13
+ "size",
14
+ "snapshot_id",
15
+ "source_volid",
16
+ "volume_type"
17
+ ],
18
+ "full_properties": {
19
+ "availability_zone": {
20
+ "description": "The availability zone in which the volume will be created.",
21
+ "required": false,
22
+ "type": "string",
23
+ "update_causes": "replacement"
24
+ },
25
+ "backup_id": {
26
+ "description": "If specified, the backup to create the volume from.",
27
+ "required": false,
28
+ "type": "string",
29
+ "update_causes": "none"
30
+ },
31
+ "description": {
32
+ "description": "A description of the volume.",
33
+ "required": false,
34
+ "type": "string",
35
+ "update_causes": "none"
36
+ },
37
+ "image": {
38
+ "description": "If specified, the name or ID of the image to create the volume from.",
39
+ "required": false,
40
+ "type": "string",
41
+ "update_causes": "replacement"
42
+ },
43
+ "metadata": {
44
+ "description": "Key/value pairs to associate with the volume.",
45
+ "required": false,
46
+ "type": "map",
47
+ "update_causes": "none"
48
+ },
49
+ "multiattach": {
50
+ "description": "Whether allow the volume to be attached more than once. This property is only supported from Cinder API v2.",
51
+ "required": false,
52
+ "type": "boolean",
53
+ "update_causes": "replacement"
54
+ },
55
+ "name": {
56
+ "description": "A name used to distinguish the volume.",
57
+ "required": false,
58
+ "type": "string",
59
+ "update_causes": "none"
60
+ },
61
+ "read_only": {
62
+ "description": "Enables or disables read-only access mode of volume.",
63
+ "required": false,
64
+ "type": "boolean",
65
+ "update_causes": "none"
66
+ },
67
+ "scheduler_hints": {
68
+ "description": "Arbitrary key-value pairs specified by the client to help the Cinder scheduler creating a volume.",
69
+ "required": false,
70
+ "type": "map",
71
+ "update_causes": "replacement"
72
+ },
73
+ "size": {
74
+ "description": "The size of the volume in GB. On update only increase in size is supported.",
75
+ "required": false,
76
+ "type": "integer",
77
+ "update_causes": "none"
78
+ },
79
+ "snapshot_id": {
80
+ "description": "If specified, the snapshot to create the volume from.",
81
+ "required": false,
82
+ "type": "string",
83
+ "update_causes": "replacement"
84
+ },
85
+ "source_volid": {
86
+ "description": "If specified, the volume to use as source.",
87
+ "required": false,
88
+ "type": "string",
89
+ "update_causes": "replacement"
90
+ },
91
+ "volume_type": {
92
+ "description": "If specified, the type of volume to use, mapping to a specific backend.",
93
+ "required": false,
94
+ "type": "string",
95
+ "update_causes": "none"
96
+ }
97
+ }
98
+ },
99
+ "OS::Cinder::VolumeAttachment": {
100
+ "properties": [
101
+ "instance_uuid",
102
+ "mountpoint",
103
+ "volume_id"
104
+ ],
105
+ "full_properties": {
106
+ "instance_uuid": {
107
+ "description": "The ID of the server to which the volume attaches.",
108
+ "required": true,
109
+ "type": "string",
110
+ "update_causes": "none"
111
+ },
112
+ "volume_id": {
113
+ "description": "The ID of the volume to be attached.",
114
+ "required": true,
115
+ "type": "string",
116
+ "update_causes": "none"
117
+ },
118
+ "mountpoint": {
119
+ "description": "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/by-id/virtio-<VolumeId> be used instead.",
120
+ "required": false,
121
+ "type": "string",
122
+ "update_causes": "none"
123
+ }
124
+ }
125
+ },
126
+ "OS::Heat::CloudConfig": {
127
+ "properties": [
128
+ "cloud_config"
129
+ ],
130
+ "full_properties": {
131
+ "cloud_config": {
132
+ "description": "Map representing the cloud-config data structure which will be formatted as YAML.",
133
+ "required": false,
134
+ "type": "map",
135
+ "update_causes": "replacement"
136
+ }
137
+ }
138
+ },
139
+ "OS::Heat::MultipartMime": {
140
+ "properties": [
141
+ "parts"
142
+ ],
143
+ "full_properties": {
144
+ "parts": {
145
+ "description": "Parts belonging to this message.",
146
+ "required": false,
147
+ "type": "list",
148
+ "update_causes": "replacement"
149
+ }
150
+ }
151
+ },
152
+ "OS::Heat::None": {
153
+ "properties": [
154
+
155
+ ],
156
+ "full_properties": {
157
+ }
158
+ },
159
+ "OS::Heat::RandomString": {
160
+ "properties": [
161
+ "character_classes",
162
+ "character_sequences",
163
+ "length",
164
+ "salt"
165
+ ],
166
+ "full_properties": {
167
+ "character_classes": {
168
+ "description": "A list of character class and their constraints to generate the random string from.",
169
+ "required": false,
170
+ "type": "list",
171
+ "update_causes": "replacement"
172
+ },
173
+ "character_sequences": {
174
+ "description": "A list of character sequences and their constraints to generate the random string from.",
175
+ "required": false,
176
+ "type": "list",
177
+ "update_causes": "replacement"
178
+ },
179
+ "length": {
180
+ "description": "Length of the string to generate.",
181
+ "required": false,
182
+ "type": "integer",
183
+ "update_causes": "replacement"
184
+ },
185
+ "salt": {
186
+ "description": "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.",
187
+ "required": false,
188
+ "type": "string",
189
+ "update_causes": "replacement"
190
+ }
191
+ }
192
+ },
193
+ "OS::Heat::ResourceChain": {
194
+ "properties": [
195
+ "concurrent",
196
+ "resource_properties",
197
+ "resources"
198
+ ],
199
+ "full_properties": {
200
+ "resources": {
201
+ "description": "The list of resource types to create. This list may contain type names or aliases defined in the resource registry. Specific template names are not supported.",
202
+ "required": true,
203
+ "type": "list",
204
+ "update_causes": "none"
205
+ },
206
+ "concurrent": {
207
+ "description": "If true, the resources in the chain will be created concurrently. If false or omitted, each resource will be treated as having a dependency on the previous resource in the list.",
208
+ "required": false,
209
+ "type": "boolean",
210
+ "update_causes": "replacement"
211
+ },
212
+ "resource_properties": {
213
+ "description": "Properties to pass to each resource being created in the chain.",
214
+ "required": false,
215
+ "type": "map",
216
+ "update_causes": "replacement"
217
+ }
218
+ }
219
+ },
220
+ "OS::Heat::ResourceGroup": {
221
+ "properties": [
222
+ "count",
223
+ "index_var",
224
+ "removal_policies",
225
+ "resource_def"
226
+ ],
227
+ "full_properties": {
228
+ "resource_def": {
229
+ "description": "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.",
230
+ "required": true,
231
+ "type": "map",
232
+ "update_causes": "none"
233
+ },
234
+ "count": {
235
+ "description": "The number of resources to create.",
236
+ "required": false,
237
+ "type": "integer",
238
+ "update_causes": "none"
239
+ },
240
+ "index_var": {
241
+ "description": "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.",
242
+ "required": false,
243
+ "type": "string",
244
+ "update_causes": "replacement"
245
+ },
246
+ "removal_policies": {
247
+ "description": "Policies for removal of resources on update",
248
+ "required": false,
249
+ "type": "list",
250
+ "update_causes": "none"
251
+ }
252
+ }
253
+ },
254
+ "OS::Heat::SoftwareConfig": {
255
+ "properties": [
256
+ "config",
257
+ "group",
258
+ "inputs",
259
+ "options",
260
+ "outputs"
261
+ ],
262
+ "full_properties": {
263
+ "config": {
264
+ "description": "Configuration script or manifest which specifies what actual configuration is performed.",
265
+ "required": false,
266
+ "type": "string",
267
+ "update_causes": "replacement"
268
+ },
269
+ "group": {
270
+ "description": "Namespace to group this software config by when delivered to a server. This may imply what configuration tool is going to perform the configuration.",
271
+ "required": false,
272
+ "type": "string",
273
+ "update_causes": "replacement"
274
+ },
275
+ "inputs": {
276
+ "description": "Schema representing the inputs that this software config is expecting.",
277
+ "required": false,
278
+ "type": "list",
279
+ "update_causes": "replacement"
280
+ },
281
+ "options": {
282
+ "description": "Map containing options specific to the configuration management tool used by this resource.",
283
+ "required": false,
284
+ "type": "map",
285
+ "update_causes": "replacement"
286
+ },
287
+ "outputs": {
288
+ "description": "Schema representing the outputs that this software config will produce.",
289
+ "required": false,
290
+ "type": "list",
291
+ "update_causes": "replacement"
292
+ }
293
+ }
294
+ },
295
+ "OS::Heat::SoftwareDeployment": {
296
+ "properties": [
297
+ "actions",
298
+ "config",
299
+ "input_values",
300
+ "name",
301
+ "server",
302
+ "signal_transport"
303
+ ],
304
+ "full_properties": {
305
+ "server": {
306
+ "description": "ID of resource to apply configuration to. Normally this should be a Nova server ID.",
307
+ "required": true,
308
+ "type": "string",
309
+ "update_causes": "replacement"
310
+ },
311
+ "actions": {
312
+ "description": "Which lifecycle actions of the deployment resource will result in this deployment being triggered.",
313
+ "required": false,
314
+ "type": "list",
315
+ "update_causes": "none"
316
+ },
317
+ "config": {
318
+ "description": "ID of software configuration resource to execute when applying to the server.",
319
+ "required": false,
320
+ "type": "string",
321
+ "update_causes": "none"
322
+ },
323
+ "input_values": {
324
+ "description": "Input values to apply to the software configuration on this server.",
325
+ "required": false,
326
+ "type": "map",
327
+ "update_causes": "none"
328
+ },
329
+ "name": {
330
+ "description": "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.",
331
+ "required": false,
332
+ "type": "string",
333
+ "update_causes": "none"
334
+ },
335
+ "signal_transport": {
336
+ "description": "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. ZAQAR_SIGNAL will create a dedicated zaqar queue to be signaled using the provided keystone credentials. NO_SIGNAL will result in the resource going to the COMPLETE state without waiting for any signal.",
337
+ "required": false,
338
+ "type": "string",
339
+ "update_causes": "replacement"
340
+ }
341
+ }
342
+ },
343
+ "OS::Heat::SoftwareDeploymentGroup": {
344
+ "properties": [
345
+ "actions",
346
+ "config",
347
+ "input_values",
348
+ "name",
349
+ "servers",
350
+ "signal_transport"
351
+ ],
352
+ "full_properties": {
353
+ "actions": {
354
+ "description": "Which lifecycle actions of the deployment resource will result in this deployment being triggered.",
355
+ "required": false,
356
+ "type": "list",
357
+ "update_causes": "none"
358
+ },
359
+ "config": {
360
+ "description": "ID of software configuration resource to execute when applying to the server.",
361
+ "required": false,
362
+ "type": "string",
363
+ "update_causes": "none"
364
+ },
365
+ "input_values": {
366
+ "description": "Input values to apply to the software configuration on this server.",
367
+ "required": false,
368
+ "type": "map",
369
+ "update_causes": "none"
370
+ },
371
+ "name": {
372
+ "description": "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.",
373
+ "required": false,
374
+ "type": "string",
375
+ "update_causes": "none"
376
+ },
377
+ "servers": {
378
+ "description": "A map of Nova names and IDs to apply configuration to.",
379
+ "required": false,
380
+ "type": "map",
381
+ "update_causes": "none"
382
+ },
383
+ "signal_transport": {
384
+ "description": "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. ZAQAR_SIGNAL will create a dedicated zaqar queue to be signaled using the provided keystone credentials. NO_SIGNAL will result in the resource going to the COMPLETE state without waiting for any signal.",
385
+ "required": false,
386
+ "type": "string",
387
+ "update_causes": "replacement"
388
+ }
389
+ }
390
+ },
391
+ "OS::Heat::SoftwareDeployments": {
392
+ "properties": [
393
+ "actions",
394
+ "config",
395
+ "input_values",
396
+ "name",
397
+ "servers",
398
+ "signal_transport"
399
+ ],
400
+ "full_properties": {
401
+ "actions": {
402
+ "description": "Which lifecycle actions of the deployment resource will result in this deployment being triggered.",
403
+ "required": false,
404
+ "type": "list",
405
+ "update_causes": "none"
406
+ },
407
+ "config": {
408
+ "description": "ID of software configuration resource to execute when applying to the server.",
409
+ "required": false,
410
+ "type": "string",
411
+ "update_causes": "none"
412
+ },
413
+ "input_values": {
414
+ "description": "Input values to apply to the software configuration on this server.",
415
+ "required": false,
416
+ "type": "map",
417
+ "update_causes": "none"
418
+ },
419
+ "name": {
420
+ "description": "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.",
421
+ "required": false,
422
+ "type": "string",
423
+ "update_causes": "none"
424
+ },
425
+ "servers": {
426
+ "description": "A map of Nova names and IDs to apply configuration to.",
427
+ "required": false,
428
+ "type": "map",
429
+ "update_causes": "none"
430
+ },
431
+ "signal_transport": {
432
+ "description": "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. ZAQAR_SIGNAL will create a dedicated zaqar queue to be signaled using the provided keystone credentials. NO_SIGNAL will result in the resource going to the COMPLETE state without waiting for any signal.",
433
+ "required": false,
434
+ "type": "string",
435
+ "update_causes": "replacement"
436
+ }
437
+ }
438
+ },
439
+ "OS::Heat::Stack": {
440
+ "properties": [
441
+ "context",
442
+ "parameters",
443
+ "template",
444
+ "timeout"
445
+ ],
446
+ "full_properties": {
447
+ "template": {
448
+ "description": "Template that specifies the stack to be created as a resource.",
449
+ "required": true,
450
+ "type": "string",
451
+ "update_causes": "none"
452
+ },
453
+ "context": {
454
+ "description": "Context for this stack.",
455
+ "required": false,
456
+ "type": "map",
457
+ "update_causes": "replacement"
458
+ },
459
+ "parameters": {
460
+ "description": "Set of parameters passed to this stack.",
461
+ "required": false,
462
+ "type": "map",
463
+ "update_causes": "none"
464
+ },
465
+ "timeout": {
466
+ "description": "Number of minutes to wait for this stack creation.",
467
+ "required": false,
468
+ "type": "integer",
469
+ "update_causes": "none"
470
+ }
471
+ }
472
+ },
473
+ "OS::Heat::SwiftSignal": {
474
+ "properties": [
475
+ "count",
476
+ "handle",
477
+ "timeout"
478
+ ],
479
+ "full_properties": {
480
+ "handle": {
481
+ "description": "URL of TempURL where resource will signal completion and optionally upload data.",
482
+ "required": true,
483
+ "type": "string",
484
+ "update_causes": "replacement"
485
+ },
486
+ "timeout": {
487
+ "description": "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.",
488
+ "required": true,
489
+ "type": "number",
490
+ "update_causes": "replacement"
491
+ },
492
+ "count": {
493
+ "description": "The number of success signals that must be received before the stack creation process continues.",
494
+ "required": false,
495
+ "type": "integer",
496
+ "update_causes": "replacement"
497
+ }
498
+ }
499
+ },
500
+ "OS::Heat::SwiftSignalHandle": {
501
+ "properties": [
502
+
503
+ ],
504
+ "full_properties": {
505
+ }
506
+ },
507
+ "OS::Heat::TestResource": {
508
+ "properties": [
509
+ "action_wait_secs",
510
+ "client_name",
511
+ "entity_name",
512
+ "fail",
513
+ "update_replace",
514
+ "value",
515
+ "wait_secs"
516
+ ],
517
+ "full_properties": {
518
+ "action_wait_secs": {
519
+ "description": "Options for simulating waiting.",
520
+ "required": false,
521
+ "type": "map",
522
+ "update_causes": "none"
523
+ },
524
+ "client_name": {
525
+ "description": "Client to poll.",
526
+ "required": false,
527
+ "type": "string",
528
+ "update_causes": "none"
529
+ },
530
+ "entity_name": {
531
+ "description": "Client entity to poll.",
532
+ "required": false,
533
+ "type": "string",
534
+ "update_causes": "none"
535
+ },
536
+ "fail": {
537
+ "description": "Value which can be set to fail the resource operation to test failure scenarios.",
538
+ "required": false,
539
+ "type": "boolean",
540
+ "update_causes": "none"
541
+ },
542
+ "update_replace": {
543
+ "description": "Value which can be set to trigger update replace for the particular resource",
544
+ "required": false,
545
+ "type": "boolean",
546
+ "update_causes": "none"
547
+ },
548
+ "value": {
549
+ "description": "The input string to be stored.",
550
+ "required": false,
551
+ "type": "string",
552
+ "update_causes": "none"
553
+ },
554
+ "wait_secs": {
555
+ "description": "Seconds to wait after an action (-1 is infinite)",
556
+ "required": false,
557
+ "type": "number",
558
+ "update_causes": "none"
559
+ }
560
+ }
561
+ },
562
+ "OS::Neutron::Net": {
563
+ "properties": [
564
+ "admin_state_up",
565
+ "dhcp_agent_ids",
566
+ "name",
567
+ "port_security_enabled",
568
+ "qos_policy",
569
+ "shared",
570
+ "tenant_id",
571
+ "value_specs"
572
+ ],
573
+ "full_properties": {
574
+ "admin_state_up": {
575
+ "description": "A boolean value specifying the administrative status of the network.",
576
+ "required": false,
577
+ "type": "boolean",
578
+ "update_causes": "none"
579
+ },
580
+ "dhcp_agent_ids": {
581
+ "description": "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.",
582
+ "required": false,
583
+ "type": "list",
584
+ "update_causes": "none"
585
+ },
586
+ "name": {
587
+ "description": "A string specifying a symbolic name for the network, which is not required to be unique.",
588
+ "required": false,
589
+ "type": "string",
590
+ "update_causes": "none"
591
+ },
592
+ "port_security_enabled": {
593
+ "description": "Flag to enable/disable port security on the network. It provides the default value for the attribute of the ports created on this network",
594
+ "required": false,
595
+ "type": "boolean",
596
+ "update_causes": "none"
597
+ },
598
+ "qos_policy": {
599
+ "description": "The name or ID of QoS policy to attach to this network.",
600
+ "required": false,
601
+ "type": "string",
602
+ "update_causes": "none"
603
+ },
604
+ "shared": {
605
+ "description": "Whether this network should be shared across all tenants. Note that the default policy setting restricts usage of this attribute to administrative users only.",
606
+ "required": false,
607
+ "type": "boolean",
608
+ "update_causes": "none"
609
+ },
610
+ "tenant_id": {
611
+ "description": "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.",
612
+ "required": false,
613
+ "type": "string",
614
+ "update_causes": "replacement"
615
+ },
616
+ "value_specs": {
617
+ "description": "Extra parameters to include in the “network” object in the creation request. Parameters are often specific to installed hardware or extensions.",
618
+ "required": false,
619
+ "type": "map",
620
+ "update_causes": "none"
621
+ }
622
+ }
623
+ },
624
+ "OS::Neutron::Port": {
625
+ "properties": [
626
+ "device_id",
627
+ "device_owner",
628
+ "fixed_ips",
629
+ "name",
630
+ "network",
631
+ "replacement_policy",
632
+ "security_groups"
633
+ ],
634
+ "full_properties": {
635
+ "network": {
636
+ "description": "Network this port belongs to. If you plan to use current port to assign Floating IP, you should specify fixed_ips with subnet. Note if this changes to a different network update, the port will be replaced",
637
+ "required": true,
638
+ "type": "string",
639
+ "update_causes": "none"
640
+ },
641
+ "device_id": {
642
+ "description": "Device ID of this port.",
643
+ "required": false,
644
+ "type": "string",
645
+ "update_causes": "none"
646
+ },
647
+ "device_owner": {
648
+ "description": "Name of the network owning the port. The value is typically network:floatingip or network:router_interface or network:dhcp",
649
+ "required": false,
650
+ "type": "string",
651
+ "update_causes": "none"
652
+ },
653
+ "fixed_ips": {
654
+ "description": "Desired IPs for this port.",
655
+ "required": false,
656
+ "type": "list",
657
+ "update_causes": "none"
658
+ },
659
+ "name": {
660
+ "description": "A symbolic name for this port.",
661
+ "required": false,
662
+ "type": "string",
663
+ "update_causes": "none"
664
+ },
665
+ "replacement_policy": {
666
+ "description": "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.",
667
+ "required": false,
668
+ "type": "string",
669
+ "update_causes": "none"
670
+ },
671
+ "security_groups": {
672
+ "description": "Security group IDs to associate with this port.",
673
+ "required": false,
674
+ "type": "list",
675
+ "update_causes": "none"
676
+ }
677
+ }
678
+ },
679
+ "OS::Neutron::QoSBandwidthLimitRule": {
680
+ "properties": [
681
+ "max_burst_kbps",
682
+ "max_kbps",
683
+ "policy",
684
+ "tenant_id"
685
+ ],
686
+ "full_properties": {
687
+ "max_kbps": {
688
+ "description": "Max bandwidth in kbps.",
689
+ "required": true,
690
+ "type": "integer",
691
+ "update_causes": "none"
692
+ },
693
+ "policy": {
694
+ "description": "ID or name of the QoS policy.",
695
+ "required": true,
696
+ "type": "string",
697
+ "update_causes": "replacement"
698
+ },
699
+ "max_burst_kbps": {
700
+ "description": "Max burst bandwidth in kbps.",
701
+ "required": false,
702
+ "type": "integer",
703
+ "update_causes": "none"
704
+ },
705
+ "tenant_id": {
706
+ "description": "The owner tenant ID of this rule.",
707
+ "required": false,
708
+ "type": "string",
709
+ "update_causes": "replacement"
710
+ }
711
+ }
712
+ },
713
+ "OS::Neutron::QoSPolicy": {
714
+ "properties": [
715
+ "description",
716
+ "name",
717
+ "shared",
718
+ "tenant_id"
719
+ ],
720
+ "full_properties": {
721
+ "name": {
722
+ "description": "The name for the QoS policy.",
723
+ "required": true,
724
+ "type": "string",
725
+ "update_causes": "none"
726
+ },
727
+ "description": {
728
+ "description": "The description for the QoS policy.",
729
+ "required": false,
730
+ "type": "string",
731
+ "update_causes": "none"
732
+ },
733
+ "shared": {
734
+ "description": "Whether this QoS policy should be shared to other tenants.",
735
+ "required": false,
736
+ "type": "boolean",
737
+ "update_causes": "none"
738
+ },
739
+ "tenant_id": {
740
+ "description": "The owner tenant ID of this QoS policy.",
741
+ "required": false,
742
+ "type": "string",
743
+ "update_causes": "replacement"
744
+ }
745
+ }
746
+ },
747
+ "OS::Neutron::SecurityGroup": {
748
+ "properties": [
749
+ "description",
750
+ "name",
751
+ "rules"
752
+ ],
753
+ "full_properties": {
754
+ "description": {
755
+ "description": "Description of the security group.",
756
+ "required": false,
757
+ "type": "string",
758
+ "update_causes": "none"
759
+ },
760
+ "name": {
761
+ "description": "A string specifying a symbolic name for the security group, which is not required to be unique.",
762
+ "required": false,
763
+ "type": "string",
764
+ "update_causes": "none"
765
+ },
766
+ "rules": {
767
+ "description": "List of security group rules.",
768
+ "required": false,
769
+ "type": "list",
770
+ "update_causes": "none"
771
+ }
772
+ }
773
+ },
774
+ "OS::Neutron::Subnet": {
775
+ "properties": [
776
+ "allocation_pools",
777
+ "cidr",
778
+ "dns_nameservers",
779
+ "enable_dhcp",
780
+ "gateway_ip",
781
+ "host_routes",
782
+ "ip_version",
783
+ "ipv6_address_mode",
784
+ "ipv6_ra_mode",
785
+ "name",
786
+ "network",
787
+ "prefixlen",
788
+ "subnetpool",
789
+ "tenant_id",
790
+ "value_specs"
791
+ ],
792
+ "full_properties": {
793
+ "network": {
794
+ "description": "The ID of the attached network.",
795
+ "required": true,
796
+ "type": "string",
797
+ "update_causes": "replacement"
798
+ },
799
+ "allocation_pools": {
800
+ "description": "The start and end addresses for the allocation pools.",
801
+ "required": false,
802
+ "type": "list",
803
+ "update_causes": "none"
804
+ },
805
+ "cidr": {
806
+ "description": "The CIDR.",
807
+ "required": false,
808
+ "type": "string",
809
+ "update_causes": "replacement"
810
+ },
811
+ "dns_nameservers": {
812
+ "description": "A specified set of DNS name servers to be used.",
813
+ "required": false,
814
+ "type": "list",
815
+ "update_causes": "none"
816
+ },
817
+ "enable_dhcp": {
818
+ "description": "Set to true if DHCP is enabled and false if DHCP is disabled.",
819
+ "required": false,
820
+ "type": "boolean",
821
+ "update_causes": "none"
822
+ },
823
+ "gateway_ip": {
824
+ "description": "The gateway IP address. Set to any of [ null | ~ | “” ] to create/update a subnet without a gateway. If omitted when creation, neutron will assign the first free IP address within the subnet to the gateway automatically. If remove this from template when update, the old gateway IP address will be detached.",
825
+ "required": false,
826
+ "type": "string",
827
+ "update_causes": "none"
828
+ },
829
+ "host_routes": {
830
+ "description": "List value expected.",
831
+ "required": false,
832
+ "type": "can",
833
+ "update_causes": "unknown"
834
+ },
835
+ "ip_version": {
836
+ "description": "The IP version, which is 4 or 6.",
837
+ "required": false,
838
+ "type": "integer",
839
+ "update_causes": "replacement"
840
+ },
841
+ "ipv6_address_mode": {
842
+ "description": "IPv6 address mode. dhcpv6-stateful, dhcpv6-stateless, or slaac.",
843
+ "required": false,
844
+ "type": "string",
845
+ "update_causes": "replacement"
846
+ },
847
+ "ipv6_ra_mode": {
848
+ "description": "IPv6 RA (Router Advertisement) mode. dhcpv6-stateful, dhcpv6-stateless, or slaac.",
849
+ "required": false,
850
+ "type": "string",
851
+ "update_causes": "replacement"
852
+ },
853
+ "name": {
854
+ "description": "The name of the subnet.",
855
+ "required": false,
856
+ "type": "string",
857
+ "update_causes": "none"
858
+ },
859
+ "prefixlen": {
860
+ "description": "Prefix length for subnet allocation from subnet pool.",
861
+ "required": false,
862
+ "type": "integer",
863
+ "update_causes": "replacement"
864
+ },
865
+ "subnetpool": {
866
+ "description": "The name or ID of the subnet pool.",
867
+ "required": false,
868
+ "type": "string",
869
+ "update_causes": "replacement"
870
+ },
871
+ "tenant_id": {
872
+ "description": "The ID of the tenant who owns the network. Only administrative users can specify a tenant ID other than their own.",
873
+ "required": false,
874
+ "type": "string",
875
+ "update_causes": "replacement"
876
+ },
877
+ "value_specs": {
878
+ "description": "Extra parameters to include in the request.",
879
+ "required": false,
880
+ "type": "map",
881
+ "update_causes": "none"
882
+ }
883
+ }
884
+ },
885
+ "OS::Neutron::SubnetPool": {
886
+ "properties": [
887
+ "address_scope",
888
+ "default_prefixlen",
889
+ "default_quota",
890
+ "is_default",
891
+ "max_prefixlen",
892
+ "min_prefixlen",
893
+ "name",
894
+ "prefixes",
895
+ "shared",
896
+ "tenant_id"
897
+ ],
898
+ "full_properties": {
899
+ "prefixes": {
900
+ "description": "List of subnet prefixes to assign.",
901
+ "required": true,
902
+ "type": "list",
903
+ "update_causes": "none"
904
+ },
905
+ "address_scope": {
906
+ "description": "An address scope ID to assign to the subnet pool.",
907
+ "required": false,
908
+ "type": "string",
909
+ "update_causes": "none"
910
+ },
911
+ "default_prefixlen": {
912
+ "description": "The size of the prefix to allocate when the cidr or prefixlen attributes are not specified while creating a subnet.",
913
+ "required": false,
914
+ "type": "integer",
915
+ "update_causes": "none"
916
+ },
917
+ "default_quota": {
918
+ "description": "A per-tenant quota on the prefix space that can be allocated from the subnet pool for tenant subnets.",
919
+ "required": false,
920
+ "type": "integer",
921
+ "update_causes": "none"
922
+ },
923
+ "is_default": {
924
+ "description": "Whether this is default IPv4/IPv6 subnet pool.There can only be one default subnet pool for each IP family.Note that the default policy setting restricts administrative users to set this to True",
925
+ "required": false,
926
+ "type": "boolean",
927
+ "update_causes": "none"
928
+ },
929
+ "max_prefixlen": {
930
+ "description": "Maximum prefix size that can be allocated from the subnet pool.",
931
+ "required": false,
932
+ "type": "integer",
933
+ "update_causes": "none"
934
+ },
935
+ "min_prefixlen": {
936
+ "description": "Smallest prefix size that can be allocated from the subnet pool.",
937
+ "required": false,
938
+ "type": "integer",
939
+ "update_causes": "none"
940
+ },
941
+ "name": {
942
+ "description": "Name of the subnet pool.",
943
+ "required": false,
944
+ "type": "string",
945
+ "update_causes": "none"
946
+ },
947
+ "shared": {
948
+ "description": "Whether the subnet pool will be shared across all tenants.Note that the default policy setting restricts usage of this attribute to administrative users only.",
949
+ "required": false,
950
+ "type": "boolean",
951
+ "update_causes": "replacement"
952
+ },
953
+ "tenant_id": {
954
+ "description": "The ID of the tenant who owns the subnet pool. Only administrative users can specify a tenant ID other than their own.",
955
+ "required": false,
956
+ "type": "string",
957
+ "update_causes": "replacement"
958
+ }
959
+ }
960
+ },
961
+ "OS::Nova::HostAggregate": {
962
+ "properties": [
963
+ "availability_zone",
964
+ "hosts",
965
+ "metadata",
966
+ "name"
967
+ ],
968
+ "full_properties": {
969
+ "availability_zone": {
970
+ "description": "Name for the availability zone.",
971
+ "required": true,
972
+ "type": "string",
973
+ "update_causes": "none"
974
+ },
975
+ "name": {
976
+ "description": "Name for the aggregate.",
977
+ "required": true,
978
+ "type": "string",
979
+ "update_causes": "none"
980
+ },
981
+ "hosts": {
982
+ "description": "List of hosts to join aggregate.",
983
+ "required": false,
984
+ "type": "list",
985
+ "update_causes": "none"
986
+ },
987
+ "metadata": {
988
+ "description": "Arbitrary key/value metadata to store information for aggregate.",
989
+ "required": false,
990
+ "type": "map",
991
+ "update_causes": "none"
992
+ }
993
+ }
994
+ },
995
+ "OS::Nova::KeyPair": {
996
+ "properties": [
997
+ "name",
998
+ "public_key",
999
+ "save_private_key"
1000
+ ],
1001
+ "full_properties": {
1002
+ "name": {
1003
+ "description": "The name of the key pair.",
1004
+ "required": true,
1005
+ "type": "string",
1006
+ "update_causes": "replacement"
1007
+ },
1008
+ "public_key": {
1009
+ "description": "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.",
1010
+ "required": false,
1011
+ "type": "string",
1012
+ "update_causes": "replacement"
1013
+ },
1014
+ "save_private_key": {
1015
+ "description": "True if the system should remember a generated private key; False otherwise.",
1016
+ "required": false,
1017
+ "type": "boolean",
1018
+ "update_causes": "replacement"
1019
+ }
1020
+ }
1021
+ },
1022
+ "OS::Nova::Server": {
1023
+ "properties": [
1024
+ "admin_pass",
1025
+ "availability_zone",
1026
+ "block_device_mapping",
1027
+ "block_device_mapping_v2",
1028
+ "config_drive",
1029
+ "diskConfig",
1030
+ "flavor",
1031
+ "flavor_update_policy",
1032
+ "image",
1033
+ "image_update_policy",
1034
+ "key_name",
1035
+ "metadata",
1036
+ "name",
1037
+ "networks",
1038
+ "personality",
1039
+ "reservation_id",
1040
+ "scheduler_hints",
1041
+ "security_groups",
1042
+ "software_config_transport",
1043
+ "user_data",
1044
+ "user_data_format"
1045
+ ],
1046
+ "full_properties": {
1047
+ "flavor": {
1048
+ "description": "The ID or name of the flavor to boot onto.",
1049
+ "required": true,
1050
+ "type": "string",
1051
+ "update_causes": "none"
1052
+ },
1053
+ "admin_pass": {
1054
+ "description": "The administrator password for the server.",
1055
+ "required": false,
1056
+ "type": "string",
1057
+ "update_causes": "none"
1058
+ },
1059
+ "availability_zone": {
1060
+ "description": "Name of the availability zone for server placement.",
1061
+ "required": false,
1062
+ "type": "string",
1063
+ "update_causes": "replacement"
1064
+ },
1065
+ "block_device_mapping": {
1066
+ "description": "Block device mappings for this server.",
1067
+ "required": false,
1068
+ "type": "list",
1069
+ "update_causes": "replacement"
1070
+ },
1071
+ "block_device_mapping_v2": {
1072
+ "description": "Block device mappings v2 for this server.",
1073
+ "required": false,
1074
+ "type": "list",
1075
+ "update_causes": "replacement"
1076
+ },
1077
+ "config_drive": {
1078
+ "description": "If True, enable config drive on the server.",
1079
+ "required": false,
1080
+ "type": "boolean",
1081
+ "update_causes": "replacement"
1082
+ },
1083
+ "diskConfig": {
1084
+ "description": "Control how the disk is partitioned when the server is created.",
1085
+ "required": false,
1086
+ "type": "string",
1087
+ "update_causes": "replacement"
1088
+ },
1089
+ "flavor_update_policy": {
1090
+ "description": "Policy on how to apply a flavor update; either by requesting a server resize or by replacing the entire server.",
1091
+ "required": false,
1092
+ "type": "string",
1093
+ "update_causes": "none"
1094
+ },
1095
+ "image": {
1096
+ "description": "The ID or name of the image to boot with.",
1097
+ "required": false,
1098
+ "type": "string",
1099
+ "update_causes": "none"
1100
+ },
1101
+ "image_update_policy": {
1102
+ "description": "Policy on how to apply an image-id update; either by requesting a server rebuild or by replacing the entire server",
1103
+ "required": false,
1104
+ "type": "string",
1105
+ "update_causes": "none"
1106
+ },
1107
+ "key_name": {
1108
+ "description": "Name of keypair to inject into the server.",
1109
+ "required": false,
1110
+ "type": "string",
1111
+ "update_causes": "replacement"
1112
+ },
1113
+ "metadata": {
1114
+ "description": "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).",
1115
+ "required": false,
1116
+ "type": "map",
1117
+ "update_causes": "none"
1118
+ },
1119
+ "name": {
1120
+ "description": "Server name.",
1121
+ "required": false,
1122
+ "type": "string",
1123
+ "update_causes": "none"
1124
+ },
1125
+ "networks": {
1126
+ "description": "An ordered list of nics to be added to this server, with information about connected networks, fixed ips, port etc.",
1127
+ "required": false,
1128
+ "type": "list",
1129
+ "update_causes": "none"
1130
+ },
1131
+ "personality": {
1132
+ "description": "A map of files to create/overwrite on the server upon boot. Keys are file names and values are the file contents.",
1133
+ "required": false,
1134
+ "type": "map",
1135
+ "update_causes": "replacement"
1136
+ },
1137
+ "reservation_id": {
1138
+ "description": "A UUID for the set of servers being requested.",
1139
+ "required": false,
1140
+ "type": "string",
1141
+ "update_causes": "replacement"
1142
+ },
1143
+ "scheduler_hints": {
1144
+ "description": "Arbitrary key-value pairs specified by the client to help boot a server.",
1145
+ "required": false,
1146
+ "type": "map",
1147
+ "update_causes": "replacement"
1148
+ },
1149
+ "security_groups": {
1150
+ "description": "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.",
1151
+ "required": false,
1152
+ "type": "list",
1153
+ "update_causes": "replacement"
1154
+ },
1155
+ "software_config_transport": {
1156
+ "description": "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. ZAQAR_MESSAGE will create a dedicated zaqar queue and post the metadata for polling.",
1157
+ "required": false,
1158
+ "type": "string",
1159
+ "update_causes": "none"
1160
+ },
1161
+ "user_data": {
1162
+ "description": "User data script to be executed by cloud-init.",
1163
+ "required": false,
1164
+ "type": "string",
1165
+ "update_causes": "replacement"
1166
+ },
1167
+ "user_data_format": {
1168
+ "description": "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.",
1169
+ "required": false,
1170
+ "type": "string",
1171
+ "update_causes": "replacement"
1172
+ }
1173
+ }
1174
+ },
1175
+ "OS::Senlin::Cluster": {
1176
+ "properties": [
1177
+ "desired_capacity",
1178
+ "max_size",
1179
+ "metadata",
1180
+ "min_size",
1181
+ "name",
1182
+ "profile",
1183
+ "timeout"
1184
+ ],
1185
+ "full_properties": {
1186
+ "profile": {
1187
+ "description": "The name or id of the Senlin profile.",
1188
+ "required": true,
1189
+ "type": "string",
1190
+ "update_causes": "replacement"
1191
+ },
1192
+ "desired_capacity": {
1193
+ "description": "Desired initial number of resources in cluster.",
1194
+ "required": false,
1195
+ "type": "integer",
1196
+ "update_causes": "replacement"
1197
+ },
1198
+ "max_size": {
1199
+ "description": "Maximum number of resources in the cluster. -1 means unlimited.",
1200
+ "required": false,
1201
+ "type": "integer",
1202
+ "update_causes": "replacement"
1203
+ },
1204
+ "metadata": {
1205
+ "description": "Metadata key-values defined for cluster.",
1206
+ "required": false,
1207
+ "type": "map",
1208
+ "update_causes": "replacement"
1209
+ },
1210
+ "min_size": {
1211
+ "description": "Minimum number of resources in the cluster.",
1212
+ "required": false,
1213
+ "type": "integer",
1214
+ "update_causes": "replacement"
1215
+ },
1216
+ "name": {
1217
+ "description": "Name of the cluster. By default, physical resource name is used.",
1218
+ "required": false,
1219
+ "type": "string",
1220
+ "update_causes": "replacement"
1221
+ },
1222
+ "timeout": {
1223
+ "description": "The number of seconds to wait for the cluster actions.",
1224
+ "required": false,
1225
+ "type": "integer",
1226
+ "update_causes": "replacement"
1227
+ }
1228
+ }
1229
+ },
1230
+ "OS::Senlin::Profile": {
1231
+ "properties": [
1232
+ "metadata",
1233
+ "name",
1234
+ "spec"
1235
+ ],
1236
+ "full_properties": {
1237
+ "spec": {
1238
+ "description": "The spec template content for Senlin profile, should be either in YAML or JSON format.",
1239
+ "required": true,
1240
+ "type": "string",
1241
+ "update_causes": "replacement"
1242
+ },
1243
+ "metadata": {
1244
+ "description": "Metadata key-values defined for profile.",
1245
+ "required": false,
1246
+ "type": "map",
1247
+ "update_causes": "none"
1248
+ },
1249
+ "name": {
1250
+ "description": "Name of the senlin profile. By default, physical resource name is used.",
1251
+ "required": false,
1252
+ "type": "string",
1253
+ "update_causes": "none"
1254
+ }
1255
+ }
1256
+ },
1257
+ "OS::Swift::Container": {
1258
+ "properties": [
1259
+ "PurgeOnDelete",
1260
+ "name"
1261
+ ],
1262
+ "full_properties": {
1263
+ "PurgeOnDelete": {
1264
+ "description": "If True, delete any objects in the container when the container is deleted. Otherwise, deleting a non-empty container will result in an error.",
1265
+ "required": false,
1266
+ "type": "boolean",
1267
+ "update_causes": "replacement"
1268
+ },
1269
+ "name": {
1270
+ "description": "Name for the container. If not specified, a unique name will be generated.",
1271
+ "required": false,
1272
+ "type": "string",
1273
+ "update_causes": "replacement"
1274
+ }
1275
+ }
1276
+ },
1277
+ "OS::Trove::Instance": {
1278
+ "properties": [
1279
+ "availability_zone",
1280
+ "databases",
1281
+ "datastore_type",
1282
+ "datastore_version",
1283
+ "flavor",
1284
+ "name",
1285
+ "networks",
1286
+ "replica_count",
1287
+ "replica_of",
1288
+ "restore_point",
1289
+ "size",
1290
+ "users"
1291
+ ],
1292
+ "full_properties": {
1293
+ "flavor": {
1294
+ "description": "Reference to a flavor for creating DB instance.",
1295
+ "required": true,
1296
+ "type": "string",
1297
+ "update_causes": "replacement"
1298
+ },
1299
+ "size": {
1300
+ "description": "Database volume size in GB.",
1301
+ "required": true,
1302
+ "type": "integer",
1303
+ "update_causes": "replacement"
1304
+ },
1305
+ "availability_zone": {
1306
+ "description": "Name of the availability zone for DB instance.",
1307
+ "required": false,
1308
+ "type": "string",
1309
+ "update_causes": "replacement"
1310
+ },
1311
+ "databases": {
1312
+ "description": "List of databases to be created on DB instance creation.",
1313
+ "required": false,
1314
+ "type": "list",
1315
+ "update_causes": "replacement"
1316
+ },
1317
+ "datastore_type": {
1318
+ "description": "Name of registered datastore type.",
1319
+ "required": false,
1320
+ "type": "string",
1321
+ "update_causes": "replacement"
1322
+ },
1323
+ "datastore_version": {
1324
+ "description": "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.",
1325
+ "required": false,
1326
+ "type": "string",
1327
+ "update_causes": "replacement"
1328
+ },
1329
+ "name": {
1330
+ "description": "Name of the DB instance to create.",
1331
+ "required": false,
1332
+ "type": "string",
1333
+ "update_causes": "replacement"
1334
+ },
1335
+ "networks": {
1336
+ "description": "List of network interfaces to create on instance.",
1337
+ "required": false,
1338
+ "type": "list",
1339
+ "update_causes": "replacement"
1340
+ },
1341
+ "replica_count": {
1342
+ "description": "The number of replicas to be created.",
1343
+ "required": false,
1344
+ "type": "integer",
1345
+ "update_causes": "replacement"
1346
+ },
1347
+ "replica_of": {
1348
+ "description": "Identifier of the source instance to replicate.",
1349
+ "required": false,
1350
+ "type": "string",
1351
+ "update_causes": "replacement"
1352
+ },
1353
+ "restore_point": {
1354
+ "description": "DB instance restore point.",
1355
+ "required": false,
1356
+ "type": "string",
1357
+ "update_causes": "replacement"
1358
+ },
1359
+ "users": {
1360
+ "description": "List of users to be created on DB instance creation.",
1361
+ "required": false,
1362
+ "type": "list",
1363
+ "update_causes": "replacement"
1364
+ }
1365
+ }
1366
+ },
1367
+ "OS::Zaqar::Queue": {
1368
+ "properties": [
1369
+ "metadata",
1370
+ "name"
1371
+ ],
1372
+ "full_properties": {
1373
+ "name": {
1374
+ "description": "Name of the queue instance to create.",
1375
+ "required": true,
1376
+ "type": "string",
1377
+ "update_causes": "replacement"
1378
+ },
1379
+ "metadata": {
1380
+ "description": "Arbitrary key/value metadata to store contextual information about this queue.",
1381
+ "required": false,
1382
+ "type": "map",
1383
+ "update_causes": "none"
1384
+ }
1385
+ }
1386
+ },
1387
+ "Rackspace::AutoScale::Group": {
1388
+ "properties": [
1389
+ "groupConfiguration",
1390
+ "launchConfiguration"
1391
+ ],
1392
+ "full_properties": {
1393
+ "groupConfiguration": {
1394
+ "description": "Group configuration.",
1395
+ "required": true,
1396
+ "type": "map",
1397
+ "update_causes": "none"
1398
+ },
1399
+ "launchConfiguration": {
1400
+ "description": "Launch configuration.",
1401
+ "required": true,
1402
+ "type": "map",
1403
+ "update_causes": "none"
1404
+ }
1405
+ }
1406
+ },
1407
+ "Rackspace::AutoScale::ScalingPolicy": {
1408
+ "properties": [
1409
+ "args",
1410
+ "change",
1411
+ "changePercent",
1412
+ "cooldown",
1413
+ "desiredCapacity",
1414
+ "group",
1415
+ "name",
1416
+ "type"
1417
+ ],
1418
+ "full_properties": {
1419
+ "group": {
1420
+ "description": "Scaling group ID that this policy belongs to.",
1421
+ "required": true,
1422
+ "type": "string",
1423
+ "update_causes": "replacement"
1424
+ },
1425
+ "name": {
1426
+ "description": "Name of this scaling policy.",
1427
+ "required": true,
1428
+ "type": "string",
1429
+ "update_causes": "none"
1430
+ },
1431
+ "type": {
1432
+ "description": "Type of this scaling policy. Specifies how the policy is executed.",
1433
+ "required": true,
1434
+ "type": "string",
1435
+ "update_causes": "none"
1436
+ },
1437
+ "args": {
1438
+ "description": "Type-specific arguments for the policy.",
1439
+ "required": false,
1440
+ "type": "map",
1441
+ "update_causes": "none"
1442
+ },
1443
+ "change": {
1444
+ "description": "Amount to add to or remove from current number of instances. Incompatible with changePercent and desiredCapacity.",
1445
+ "required": false,
1446
+ "type": "integer",
1447
+ "update_causes": "none"
1448
+ },
1449
+ "changePercent": {
1450
+ "description": "Percentage-based change to add or remove from current number of instances. Incompatible with change and desiredCapacity.",
1451
+ "required": false,
1452
+ "type": "number",
1453
+ "update_causes": "none"
1454
+ },
1455
+ "cooldown": {
1456
+ "description": "Number of seconds after a policy execution during which further executions are disabled.",
1457
+ "required": false,
1458
+ "type": "number",
1459
+ "update_causes": "none"
1460
+ },
1461
+ "desiredCapacity": {
1462
+ "description": "Absolute number to set the number of instances to. Incompatible with change and changePercent.",
1463
+ "required": false,
1464
+ "type": "integer",
1465
+ "update_causes": "none"
1466
+ }
1467
+ }
1468
+ },
1469
+ "Rackspace::AutoScale::WebHook": {
1470
+ "properties": [
1471
+ "metadata",
1472
+ "name",
1473
+ "policy"
1474
+ ],
1475
+ "full_properties": {
1476
+ "name": {
1477
+ "description": "The name of this webhook.",
1478
+ "required": true,
1479
+ "type": "string",
1480
+ "update_causes": "none"
1481
+ },
1482
+ "policy": {
1483
+ "description": "The policy that this webhook should apply to, in {group_id}:{policy_id} format. Generally a Ref to a Policy resource.",
1484
+ "required": true,
1485
+ "type": "string",
1486
+ "update_causes": "replacement"
1487
+ },
1488
+ "metadata": {
1489
+ "description": "Arbitrary key/value metadata for this webhook.",
1490
+ "required": false,
1491
+ "type": "map",
1492
+ "update_causes": "none"
1493
+ }
1494
+ }
1495
+ },
1496
+ "Rackspace::Cloud::AssociateSharedIP": {
1497
+ "properties": [
1498
+ "servers",
1499
+ "shared_ip"
1500
+ ],
1501
+ "full_properties": {
1502
+ "servers": {
1503
+ "description": "List of servers to associate a shared IP.",
1504
+ "required": true,
1505
+ "type": "list",
1506
+ "update_causes": "replacement"
1507
+ },
1508
+ "shared_ip": {
1509
+ "description": "ID of the shared IP.",
1510
+ "required": false,
1511
+ "type": "string",
1512
+ "update_causes": "replacement"
1513
+ }
1514
+ }
1515
+ },
1516
+ "Rackspace::Cloud::BackupConfig": {
1517
+ "properties": [
1518
+ "BackupConfigurationName",
1519
+ "DayOfWeekId",
1520
+ "Enabled",
1521
+ "Exclusions",
1522
+ "Frequency",
1523
+ "HourInterval",
1524
+ "Inclusions",
1525
+ "IsActive",
1526
+ "NotifyFailure",
1527
+ "NotifyRecipients",
1528
+ "NotifySuccess",
1529
+ "StartTimeAmPm",
1530
+ "StartTimeHour",
1531
+ "StartTimeMinute",
1532
+ "TimeZoneId",
1533
+ "VersionRetention",
1534
+ "host_ip_address"
1535
+ ],
1536
+ "full_properties": {
1537
+ "BackupConfigurationName": {
1538
+ "description": "Cloud backup configuration name.",
1539
+ "required": true,
1540
+ "type": "string",
1541
+ "update_causes": "replacement"
1542
+ },
1543
+ "DayOfWeekId": {
1544
+ "description": "Indicates the day of the week. Valid values are 0 through 6, with 0 representing Sunday and 6 representing Saturday. null is also a valid value when the Frequency value is “Manually” ,”Hourly”, or “Daily”.",
1545
+ "required": true,
1546
+ "type": "string",
1547
+ "update_causes": "none"
1548
+ },
1549
+ "HourInterval": {
1550
+ "description": "Indicates the hour. Valid values are 1 through 23, as well as null when the Frequency value is “Manually” ,”Daily”, or “Weekly”.",
1551
+ "required": true,
1552
+ "type": "string",
1553
+ "update_causes": "none"
1554
+ },
1555
+ "Inclusions": {
1556
+ "description": "Indicates the list of files and folders to back up.",
1557
+ "required": true,
1558
+ "type": "list",
1559
+ "update_causes": "none"
1560
+ },
1561
+ "NotifyFailure": {
1562
+ "description": "Indicates if emails are sent after a failed backup. Valid values are true or false.",
1563
+ "required": true,
1564
+ "type": "boolean",
1565
+ "update_causes": "none"
1566
+ },
1567
+ "NotifyRecipients": {
1568
+ "description": "Indicates the email address to notify in case of backup success or failure.",
1569
+ "required": true,
1570
+ "type": "string",
1571
+ "update_causes": "none"
1572
+ },
1573
+ "StartTimeAmPm": {
1574
+ "description": "Indicates AM or PM. Valid values are “AM” or “PM”, as well as null when the Frequency value is “Manually” or “Hourly”.",
1575
+ "required": true,
1576
+ "type": "string",
1577
+ "update_causes": "none"
1578
+ },
1579
+ "StartTimeHour": {
1580
+ "description": "Indicates the hour when the backup runs. Valid values are 1 through 12, as well as null when the Frequency value is “Manually” or “Hourly”.",
1581
+ "required": true,
1582
+ "type": "string",
1583
+ "update_causes": "none"
1584
+ },
1585
+ "StartTimeMinute": {
1586
+ "description": "Indicates the minute when the backup runs. Valid values are 0 through 59, as well as null when the Frequency value is “Manually” or “Hourly”.",
1587
+ "required": true,
1588
+ "type": "string",
1589
+ "update_causes": "none"
1590
+ },
1591
+ "TimeZoneId": {
1592
+ "description": "Specifies the time zone where the backup runs, for example “Eastern Standard Time”.",
1593
+ "required": true,
1594
+ "type": "string",
1595
+ "update_causes": "none"
1596
+ },
1597
+ "host_ip_address": {
1598
+ "description": "Cloud server ip address.",
1599
+ "required": true,
1600
+ "type": "string",
1601
+ "update_causes": "replacement"
1602
+ },
1603
+ "Enabled": {
1604
+ "description": "Indicates backup configuration is enabled or not.",
1605
+ "required": false,
1606
+ "type": "boolean",
1607
+ "update_causes": "none"
1608
+ },
1609
+ "Exclusions": {
1610
+ "description": "Indicates the list of files and folders not to back up.",
1611
+ "required": false,
1612
+ "type": "list",
1613
+ "update_causes": "none"
1614
+ },
1615
+ "Frequency": {
1616
+ "description": "Frequency of backup schedule. Valid values are Manually, Hourly, Daily, and Weekly.",
1617
+ "required": false,
1618
+ "type": "string",
1619
+ "update_causes": "none"
1620
+ },
1621
+ "IsActive": {
1622
+ "description": "Indicates backup configuration is active.",
1623
+ "required": false,
1624
+ "type": "boolean",
1625
+ "update_causes": "none"
1626
+ },
1627
+ "NotifySuccess": {
1628
+ "description": "Indicates if emails are sent after a successful backup. Valid values are true or false.",
1629
+ "required": false,
1630
+ "type": "boolean",
1631
+ "update_causes": "none"
1632
+ },
1633
+ "VersionRetention": {
1634
+ "description": "Indicates how many days backup revisions are maintained. Valid values are 0, 30 , and 60. 0 means indefinite.",
1635
+ "required": false,
1636
+ "type": "integer",
1637
+ "update_causes": "none"
1638
+ }
1639
+ }
1640
+ },
1641
+ "Rackspace::Cloud::BigData": {
1642
+ "properties": [
1643
+ "clusterLogin",
1644
+ "clusterName",
1645
+ "flavor",
1646
+ "numSlaveNodes",
1647
+ "publicKey",
1648
+ "publicKeyName",
1649
+ "stackId"
1650
+ ],
1651
+ "full_properties": {
1652
+ "clusterLogin": {
1653
+ "description": "Cluster SSH login.",
1654
+ "required": true,
1655
+ "type": "string",
1656
+ "update_causes": "replacement"
1657
+ },
1658
+ "clusterName": {
1659
+ "description": "Rackspace Cloud Big Data Cluster Name.",
1660
+ "required": true,
1661
+ "type": "string",
1662
+ "update_causes": "replacement"
1663
+ },
1664
+ "flavor": {
1665
+ "description": "Rackspace Cloud Big Data Flavor ID to be used for cluster slavenodes.",
1666
+ "required": true,
1667
+ "type": "string",
1668
+ "update_causes": "replacement"
1669
+ },
1670
+ "publicKey": {
1671
+ "description": "Cluster public key used to SSH into cluster nodes.",
1672
+ "required": true,
1673
+ "type": "string",
1674
+ "update_causes": "replacement"
1675
+ },
1676
+ "publicKeyName": {
1677
+ "description": "Cluster public key name. This key name will be used along with the publicKey by the Cloud Big Data system to install SSH keys on to CBD clusters for user access. If the key name already exists, it will not be overwritten and the existing key will be used instead.",
1678
+ "required": true,
1679
+ "type": "string",
1680
+ "update_causes": "replacement"
1681
+ },
1682
+ "stackId": {
1683
+ "description": "Rackspace Cloud Big Data Stack ID.",
1684
+ "required": true,
1685
+ "type": "string",
1686
+ "update_causes": "replacement"
1687
+ },
1688
+ "numSlaveNodes": {
1689
+ "description": "How many slave nodes to create in the cluster.",
1690
+ "required": false,
1691
+ "type": "integer",
1692
+ "update_causes": "replacement"
1693
+ }
1694
+ }
1695
+ },
1696
+ "Rackspace::Cloud::CDN": {
1697
+ "properties": [
1698
+ "caching",
1699
+ "domains",
1700
+ "flavor_id",
1701
+ "log_delivery",
1702
+ "name",
1703
+ "origins",
1704
+ "restrictions"
1705
+ ],
1706
+ "full_properties": {
1707
+ "domains": {
1708
+ "description": "Specifies a list of domains used by users to access their website.",
1709
+ "required": true,
1710
+ "type": "list",
1711
+ "update_causes": "none"
1712
+ },
1713
+ "flavor_id": {
1714
+ "description": "Specifies the CDN provider flavor to use.",
1715
+ "required": true,
1716
+ "type": "string",
1717
+ "update_causes": "replacement"
1718
+ },
1719
+ "name": {
1720
+ "description": "Specifies the name of the service.",
1721
+ "required": true,
1722
+ "type": "string",
1723
+ "update_causes": "replacement"
1724
+ },
1725
+ "origins": {
1726
+ "description": "Specifies a list of origin domains or IP addresses where the original assets are stored.",
1727
+ "required": true,
1728
+ "type": "list",
1729
+ "update_causes": "none"
1730
+ },
1731
+ "caching": {
1732
+ "description": "Specifies the TTL rules for the assets under this service. Supports wildcards for fine-grained control.",
1733
+ "required": false,
1734
+ "type": "list",
1735
+ "update_causes": "replacement"
1736
+ },
1737
+ "log_delivery": {
1738
+ "description": "Specifies whether to enable log delivery to a Cloud Files container. You can use access log delivery to analyze the number of requests for each object, the client IP address, and time-based usage patterns (such as monthly or seasonal usage). Logs are stored in a Cloud Files container named CDN_ACCESS_LOGS. If this container does not exist, it is created.",
1739
+ "required": false,
1740
+ "type": "boolean",
1741
+ "update_causes": "none"
1742
+ },
1743
+ "restrictions": {
1744
+ "description": "Specifies the restrictions that define who can access assets (content from the CDN cache).",
1745
+ "required": false,
1746
+ "type": "list",
1747
+ "update_causes": "replacement"
1748
+ }
1749
+ }
1750
+ },
1751
+ "Rackspace::Cloud::ChefSolo": {
1752
+ "properties": [
1753
+ "Berksfile",
1754
+ "Berksfile.lock",
1755
+ "Cheffile",
1756
+ "chef_version",
1757
+ "clients",
1758
+ "data_bags",
1759
+ "environments",
1760
+ "host",
1761
+ "kitchen",
1762
+ "node",
1763
+ "private_key",
1764
+ "roles",
1765
+ "username",
1766
+ "users"
1767
+ ],
1768
+ "full_properties": {
1769
+ "host": {
1770
+ "description": "The host to run chef-solo on.",
1771
+ "required": true,
1772
+ "type": "string",
1773
+ "update_causes": "replacement"
1774
+ },
1775
+ "private_key": {
1776
+ "description": "The ssh key to connect to the host with.",
1777
+ "required": true,
1778
+ "type": "string",
1779
+ "update_causes": "replacement"
1780
+ },
1781
+ "username": {
1782
+ "description": "The username to connect to the host with.",
1783
+ "required": true,
1784
+ "type": "string",
1785
+ "update_causes": "replacement"
1786
+ },
1787
+ "Berksfile.lock": {
1788
+ "description": "The Berksfile.lock to use with berkshelf to specify cookbook versions for the chef run.",
1789
+ "required": false,
1790
+ "type": "string",
1791
+ "update_causes": "replacement"
1792
+ },
1793
+ "chef_version": {
1794
+ "description": "The version of chef to install on the host.",
1795
+ "required": false,
1796
+ "type": "string",
1797
+ "update_causes": "replacement"
1798
+ },
1799
+ "clients": {
1800
+ "description": "Clients to be written to the kitchen for the chef run.",
1801
+ "required": false,
1802
+ "type": "map",
1803
+ "update_causes": "replacement"
1804
+ },
1805
+ "data_bags": {
1806
+ "description": "Data_bags to write to the kitchen during the chef run.",
1807
+ "required": false,
1808
+ "type": "map",
1809
+ "update_causes": "replacement"
1810
+ },
1811
+ "environments": {
1812
+ "description": "Environments to be written to the kitchen for the chef run.",
1813
+ "required": false,
1814
+ "type": "map",
1815
+ "update_causes": "replacement"
1816
+ },
1817
+ "kitchen": {
1818
+ "description": "A git url to the kitchen to clone. This can be used in place of a Berks or Chef file to install cookbooks on the host.",
1819
+ "required": false,
1820
+ "type": "string",
1821
+ "update_causes": "replacement"
1822
+ },
1823
+ "node": {
1824
+ "description": "The node file for the chef run. May have a run_list, attributes, etc.",
1825
+ "required": false,
1826
+ "type": "map",
1827
+ "update_causes": "replacement"
1828
+ },
1829
+ "roles": {
1830
+ "description": "Roles to be written to the kitchen for the chef run.",
1831
+ "required": false,
1832
+ "type": "map",
1833
+ "update_causes": "replacement"
1834
+ },
1835
+ "users": {
1836
+ "description": "Users to be written to the kitchen for the chef run.",
1837
+ "required": false,
1838
+ "type": "map",
1839
+ "update_causes": "replacement"
1840
+ },
1841
+ "Berksfile": {
1842
+ "description": "The Berksfile to use with berkshelf to download cookbooks on the host for the chef run.",
1843
+ "required": false,
1844
+ "type": "string",
1845
+ "update_causes": "replacement"
1846
+ },
1847
+ "Cheffile": {
1848
+ "description": "The Cheffile to use with librarian-chef to download cookbooks on the host for the chef run.",
1849
+ "required": false,
1850
+ "type": "string",
1851
+ "update_causes": "replacement"
1852
+ }
1853
+ }
1854
+ },
1855
+ "Rackspace::Cloud::CloudFilesCDN": {
1856
+ "properties": [
1857
+ "container",
1858
+ "ttl"
1859
+ ],
1860
+ "full_properties": {
1861
+ "container": {
1862
+ "description": "Target container to enable CDN for.",
1863
+ "required": true,
1864
+ "type": "string",
1865
+ "update_causes": "replacement"
1866
+ },
1867
+ "ttl": {
1868
+ "description": "Specifies the Time To Live (TTL) in seconds for an object to be cached in the CDN.",
1869
+ "required": false,
1870
+ "type": "integer",
1871
+ "update_causes": "replacement"
1872
+ }
1873
+ }
1874
+ },
1875
+ "Rackspace::Cloud::DNS": {
1876
+ "properties": [
1877
+ "comment",
1878
+ "emailAddress",
1879
+ "name",
1880
+ "records",
1881
+ "ttl"
1882
+ ],
1883
+ "full_properties": {
1884
+ "emailAddress": {
1885
+ "description": "Email address to use for contacting the domain administrator.",
1886
+ "required": true,
1887
+ "type": "string",
1888
+ "update_causes": "none"
1889
+ },
1890
+ "name": {
1891
+ "description": "Specifies the name for the domain or subdomain. Must be a valid domain name.",
1892
+ "required": true,
1893
+ "type": "string",
1894
+ "update_causes": "replacement"
1895
+ },
1896
+ "comment": {
1897
+ "description": "Optional free form text comment",
1898
+ "required": false,
1899
+ "type": "string",
1900
+ "update_causes": "none"
1901
+ },
1902
+ "records": {
1903
+ "description": "Domain records",
1904
+ "required": false,
1905
+ "type": "list",
1906
+ "update_causes": "none"
1907
+ },
1908
+ "ttl": {
1909
+ "description": "How long other servers should cache recorddata.",
1910
+ "required": false,
1911
+ "type": "integer",
1912
+ "update_causes": "none"
1913
+ }
1914
+ }
1915
+ },
1916
+ "Rackspace::Cloud::LoadBalancer": {
1917
+ "properties": [
1918
+ "accessList",
1919
+ "algorithm",
1920
+ "connectionLogging",
1921
+ "connectionThrottle",
1922
+ "contentCaching",
1923
+ "errorPage",
1924
+ "halfClosed",
1925
+ "healthMonitor",
1926
+ "httpsRedirect",
1927
+ "metadata",
1928
+ "name",
1929
+ "nodes",
1930
+ "port",
1931
+ "protocol",
1932
+ "sessionPersistence",
1933
+ "sslTermination",
1934
+ "timeout",
1935
+ "virtualIps"
1936
+ ],
1937
+ "full_properties": {
1938
+ "nodes": {
1939
+ "description": "List value expected.",
1940
+ "required": true,
1941
+ "type": "can",
1942
+ "update_causes": "unknown"
1943
+ },
1944
+ "port": {
1945
+ "description": "Integer value expected.",
1946
+ "required": true,
1947
+ "type": "can",
1948
+ "update_causes": "unknown"
1949
+ },
1950
+ "protocol": {
1951
+ "description": "String value expected.",
1952
+ "required": true,
1953
+ "type": "can",
1954
+ "update_causes": "unknown"
1955
+ },
1956
+ "virtualIps": {
1957
+ "description": "List value expected.",
1958
+ "required": true,
1959
+ "type": "updates",
1960
+ "update_causes": "unknown"
1961
+ },
1962
+ "accessList": {
1963
+ "description": "List value expected.",
1964
+ "required": false,
1965
+ "type": "updates",
1966
+ "update_causes": "unknown"
1967
+ },
1968
+ "algorithm": {
1969
+ "description": "String value expected.",
1970
+ "required": false,
1971
+ "type": "can",
1972
+ "update_causes": "unknown"
1973
+ },
1974
+ "connectionLogging": {
1975
+ "description": "Boolean value expected.",
1976
+ "required": false,
1977
+ "type": "can",
1978
+ "update_causes": "unknown"
1979
+ },
1980
+ "connectionThrottle": {
1981
+ "description": "Map value expected.",
1982
+ "required": false,
1983
+ "type": "can",
1984
+ "update_causes": "unknown"
1985
+ },
1986
+ "contentCaching": {
1987
+ "description": "String value expected.",
1988
+ "required": false,
1989
+ "type": "can",
1990
+ "update_causes": "unknown"
1991
+ },
1992
+ "errorPage": {
1993
+ "description": "String value expected.",
1994
+ "required": false,
1995
+ "type": "can",
1996
+ "update_causes": "unknown"
1997
+ },
1998
+ "halfClosed": {
1999
+ "description": "Boolean value expected.",
2000
+ "required": false,
2001
+ "type": "can",
2002
+ "update_causes": "unknown"
2003
+ },
2004
+ "healthMonitor": {
2005
+ "description": "Map value expected.",
2006
+ "required": false,
2007
+ "type": "can",
2008
+ "update_causes": "unknown"
2009
+ },
2010
+ "httpsRedirect": {
2011
+ "description": "Enables or disables HTTP to HTTPS redirection for the load balancer. When enabled, any HTTP request returns status code 301 (Moved Permanently), and the requester is redirected to the requested URL via the HTTPS protocol on port 443. Only available for HTTPS protocol (port=443), or HTTP protocol with a properly configured SSL termination (secureTrafficOnly=true, securePort=443).",
2012
+ "required": false,
2013
+ "type": "boolean",
2014
+ "update_causes": "none"
2015
+ },
2016
+ "metadata": {
2017
+ "description": "Map value expected.",
2018
+ "required": false,
2019
+ "type": "can",
2020
+ "update_causes": "unknown"
2021
+ },
2022
+ "name": {
2023
+ "description": "String value expected.",
2024
+ "required": false,
2025
+ "type": "can",
2026
+ "update_causes": "unknown"
2027
+ },
2028
+ "sessionPersistence": {
2029
+ "description": "String value expected.",
2030
+ "required": false,
2031
+ "type": "can",
2032
+ "update_causes": "unknown"
2033
+ },
2034
+ "sslTermination": {
2035
+ "description": "Map value expected.",
2036
+ "required": false,
2037
+ "type": "can",
2038
+ "update_causes": "unknown"
2039
+ },
2040
+ "timeout": {
2041
+ "description": "Number value expected.",
2042
+ "required": false,
2043
+ "type": "can",
2044
+ "update_causes": "unknown"
2045
+ }
2046
+ }
2047
+ },
2048
+ "Rackspace::Cloud::SharedIP": {
2049
+ "properties": [
2050
+ "network_id",
2051
+ "ports"
2052
+ ],
2053
+ "full_properties": {
2054
+ "ports": {
2055
+ "description": "Provide list of ports that share an IP.",
2056
+ "required": true,
2057
+ "type": "list",
2058
+ "update_causes": "replacement"
2059
+ },
2060
+ "network_id": {
2061
+ "description": "ID of network to create shared_ip.",
2062
+ "required": false,
2063
+ "type": "string",
2064
+ "update_causes": "replacement"
2065
+ }
2066
+ }
2067
+ },
2068
+ "Rackspace::Cloud::WinServer": {
2069
+ "properties": [
2070
+ "admin_pass",
2071
+ "availability_zone",
2072
+ "block_device_mapping",
2073
+ "block_device_mapping_v2",
2074
+ "config_drive",
2075
+ "diskConfig",
2076
+ "flavor",
2077
+ "flavor_update_policy",
2078
+ "image",
2079
+ "image_update_policy",
2080
+ "key_name",
2081
+ "metadata",
2082
+ "name",
2083
+ "networks",
2084
+ "personality",
2085
+ "reservation_id",
2086
+ "save_admin_pass",
2087
+ "scheduler_hints",
2088
+ "security_groups",
2089
+ "software_config_transport",
2090
+ "user_data",
2091
+ "user_data_format"
2092
+ ],
2093
+ "full_properties": {
2094
+ "flavor": {
2095
+ "description": "The ID or name of the flavor to boot onto.",
2096
+ "required": true,
2097
+ "type": "string",
2098
+ "update_causes": "none"
2099
+ },
2100
+ "admin_pass": {
2101
+ "description": "The administrator password for the server.",
2102
+ "required": false,
2103
+ "type": "string",
2104
+ "update_causes": "none"
2105
+ },
2106
+ "availability_zone": {
2107
+ "description": "Name of the availability zone for server placement.",
2108
+ "required": false,
2109
+ "type": "string",
2110
+ "update_causes": "replacement"
2111
+ },
2112
+ "block_device_mapping": {
2113
+ "description": "Block device mappings for this server.",
2114
+ "required": false,
2115
+ "type": "list",
2116
+ "update_causes": "replacement"
2117
+ },
2118
+ "block_device_mapping_v2": {
2119
+ "description": "Block device mappings v2 for this server.",
2120
+ "required": false,
2121
+ "type": "list",
2122
+ "update_causes": "replacement"
2123
+ },
2124
+ "config_drive": {
2125
+ "description": "If True, enable config drive on the server.",
2126
+ "required": false,
2127
+ "type": "boolean",
2128
+ "update_causes": "replacement"
2129
+ },
2130
+ "diskConfig": {
2131
+ "description": "Control how the disk is partitioned when the server is created.",
2132
+ "required": false,
2133
+ "type": "string",
2134
+ "update_causes": "replacement"
2135
+ },
2136
+ "flavor_update_policy": {
2137
+ "description": "Policy on how to apply a flavor update; either by requesting a server resize or by replacing the entire server.",
2138
+ "required": false,
2139
+ "type": "string",
2140
+ "update_causes": "none"
2141
+ },
2142
+ "image": {
2143
+ "description": "The ID or name of the image to boot with.",
2144
+ "required": false,
2145
+ "type": "string",
2146
+ "update_causes": "none"
2147
+ },
2148
+ "image_update_policy": {
2149
+ "description": "Policy on how to apply an image-id update; either by requesting a server rebuild or by replacing the entire server",
2150
+ "required": false,
2151
+ "type": "string",
2152
+ "update_causes": "none"
2153
+ },
2154
+ "key_name": {
2155
+ "description": "Name of keypair to inject into the server.",
2156
+ "required": false,
2157
+ "type": "string",
2158
+ "update_causes": "replacement"
2159
+ },
2160
+ "metadata": {
2161
+ "description": "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).",
2162
+ "required": false,
2163
+ "type": "map",
2164
+ "update_causes": "none"
2165
+ },
2166
+ "name": {
2167
+ "description": "Server name.",
2168
+ "required": false,
2169
+ "type": "string",
2170
+ "update_causes": "none"
2171
+ },
2172
+ "networks": {
2173
+ "description": "An ordered list of nics to be added to this server, with information about connected networks, fixed ips, port etc.",
2174
+ "required": false,
2175
+ "type": "list",
2176
+ "update_causes": "none"
2177
+ },
2178
+ "personality": {
2179
+ "description": "A map of files to create/overwrite on the server upon boot. Keys are file names and values are the file contents.",
2180
+ "required": false,
2181
+ "type": "map",
2182
+ "update_causes": "replacement"
2183
+ },
2184
+ "reservation_id": {
2185
+ "description": "A UUID for the set of servers being requested.",
2186
+ "required": false,
2187
+ "type": "string",
2188
+ "update_causes": "replacement"
2189
+ },
2190
+ "save_admin_pass": {
2191
+ "description": "True if the system should remember the admin password; False otherwise.",
2192
+ "required": false,
2193
+ "type": "boolean",
2194
+ "update_causes": "replacement"
2195
+ },
2196
+ "scheduler_hints": {
2197
+ "description": "Arbitrary key-value pairs specified by the client to help boot a server.",
2198
+ "required": false,
2199
+ "type": "map",
2200
+ "update_causes": "replacement"
2201
+ },
2202
+ "security_groups": {
2203
+ "description": "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.",
2204
+ "required": false,
2205
+ "type": "list",
2206
+ "update_causes": "replacement"
2207
+ },
2208
+ "software_config_transport": {
2209
+ "description": "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. ZAQAR_MESSAGE will create a dedicated zaqar queue and post the metadata for polling.",
2210
+ "required": false,
2211
+ "type": "string",
2212
+ "update_causes": "none"
2213
+ },
2214
+ "user_data": {
2215
+ "description": "User data script to be executed by cloud-init.",
2216
+ "required": false,
2217
+ "type": "string",
2218
+ "update_causes": "replacement"
2219
+ },
2220
+ "user_data_format": {
2221
+ "description": "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.",
2222
+ "required": false,
2223
+ "type": "string",
2224
+ "update_causes": "replacement"
2225
+ }
2226
+ }
2227
+ },
2228
+ "Rackspace::CloudMonitoring::AgentToken": {
2229
+ "properties": [
2230
+ "label"
2231
+ ],
2232
+ "full_properties": {
2233
+ "label": {
2234
+ "description": "A friendly label for this resource",
2235
+ "required": false,
2236
+ "type": "string",
2237
+ "update_causes": "none"
2238
+ }
2239
+ }
2240
+ },
2241
+ "Rackspace::CloudMonitoring::Alarm": {
2242
+ "properties": [
2243
+ "check",
2244
+ "criteria",
2245
+ "disabled",
2246
+ "label",
2247
+ "metadata",
2248
+ "plan"
2249
+ ],
2250
+ "full_properties": {
2251
+ "check": {
2252
+ "description": "The check to alert on",
2253
+ "required": true,
2254
+ "type": "string",
2255
+ "update_causes": "replacement"
2256
+ },
2257
+ "plan": {
2258
+ "description": "The notification plan to execute when the state changes",
2259
+ "required": true,
2260
+ "type": "string",
2261
+ "update_causes": "replacement"
2262
+ },
2263
+ "criteria": {
2264
+ "description": "The alarm DSL for describing alerting conditions and their output states",
2265
+ "required": false,
2266
+ "type": "string",
2267
+ "update_causes": "none"
2268
+ },
2269
+ "disabled": {
2270
+ "description": "Disable processing and alerts on this alarm",
2271
+ "required": false,
2272
+ "type": "boolean",
2273
+ "update_causes": "none"
2274
+ },
2275
+ "label": {
2276
+ "description": "A friendly label for this resource",
2277
+ "required": false,
2278
+ "type": "string",
2279
+ "update_causes": "none"
2280
+ },
2281
+ "metadata": {
2282
+ "description": "Arbitrary key/value pairs that are passed during the alerting phase. 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).",
2283
+ "required": false,
2284
+ "type": "map",
2285
+ "update_causes": "none"
2286
+ }
2287
+ }
2288
+ },
2289
+ "Rackspace::CloudMonitoring::Check": {
2290
+ "properties": [
2291
+ "details",
2292
+ "disabled",
2293
+ "entity",
2294
+ "label",
2295
+ "metadata",
2296
+ "monitoring_zones_poll",
2297
+ "period",
2298
+ "target_alias",
2299
+ "target_hostname",
2300
+ "target_receiver",
2301
+ "timeout",
2302
+ "type"
2303
+ ],
2304
+ "full_properties": {
2305
+ "entity": {
2306
+ "description": "The id of the entity for which to create the check. This can either be the id of a configured monitoring entity, a cloud server or a cloud database instance.",
2307
+ "required": true,
2308
+ "type": "string",
2309
+ "update_causes": "replacement"
2310
+ },
2311
+ "type": {
2312
+ "description": "The specific type of resource",
2313
+ "required": true,
2314
+ "type": "string",
2315
+ "update_causes": "replacement"
2316
+ },
2317
+ "details": {
2318
+ "description": "A hash of type-specific details",
2319
+ "required": false,
2320
+ "type": "map",
2321
+ "update_causes": "replacement"
2322
+ },
2323
+ "disabled": {
2324
+ "description": "Disables the check",
2325
+ "required": false,
2326
+ "type": "boolean",
2327
+ "update_causes": "none"
2328
+ },
2329
+ "label": {
2330
+ "description": "A friendly label for this resource",
2331
+ "required": false,
2332
+ "type": "string",
2333
+ "update_causes": "none"
2334
+ },
2335
+ "metadata": {
2336
+ "description": "Arbitrary key/value pairs that are passed during the alerting phase. 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).",
2337
+ "required": false,
2338
+ "type": "map",
2339
+ "update_causes": "none"
2340
+ },
2341
+ "monitoring_zones_poll": {
2342
+ "description": "List of monitoring zones to poll from. Note: This argument is only required for remote (non-agent) checks",
2343
+ "required": false,
2344
+ "type": "list",
2345
+ "update_causes": "replacement"
2346
+ },
2347
+ "period": {
2348
+ "description": "The period in seconds for a check. The value must be greater than the minimum period set on your account.",
2349
+ "required": false,
2350
+ "type": "integer",
2351
+ "update_causes": "none"
2352
+ },
2353
+ "target_alias": {
2354
+ "description": "A key in the entity’s ‘ip_addresses’ hash used to resolve this check to an IP address. This parameter is mutually exclusive with target_hostname.",
2355
+ "required": false,
2356
+ "type": "string",
2357
+ "update_causes": "replacement"
2358
+ },
2359
+ "target_hostname": {
2360
+ "description": "The hostname this check should target. This parameter is mutually exclusive with target_alias. Value must be a Valid FQDN, IPv4 or IPv6 address",
2361
+ "required": false,
2362
+ "type": "string",
2363
+ "update_causes": "replacement"
2364
+ },
2365
+ "target_receiver": {
2366
+ "description": "Determines how to resolve the check target.",
2367
+ "required": false,
2368
+ "type": "string",
2369
+ "update_causes": "replacement"
2370
+ },
2371
+ "timeout": {
2372
+ "description": "The timeout in seconds for a check. This has to be less than the period.",
2373
+ "required": false,
2374
+ "type": "integer",
2375
+ "update_causes": "none"
2376
+ }
2377
+ }
2378
+ },
2379
+ "Rackspace::CloudMonitoring::Entity": {
2380
+ "properties": [
2381
+ "agent_id",
2382
+ "ip_addresses",
2383
+ "label",
2384
+ "metadata"
2385
+ ],
2386
+ "full_properties": {
2387
+ "agent_id": {
2388
+ "description": "Agent to which this entity is bound",
2389
+ "required": false,
2390
+ "type": "string",
2391
+ "update_causes": "none"
2392
+ },
2393
+ "ip_addresses": {
2394
+ "description": "IP addresses that can be referenced by checks on this entity. Keys must be between 1 and 64 characters long. Values must be valid IPv4 or IPv6 addresses.",
2395
+ "required": false,
2396
+ "type": "map",
2397
+ "update_causes": "replacement"
2398
+ },
2399
+ "label": {
2400
+ "description": "A friendly label for this resource",
2401
+ "required": false,
2402
+ "type": "string",
2403
+ "update_causes": "none"
2404
+ },
2405
+ "metadata": {
2406
+ "description": "Arbitrary key/value pairs that are passed during the alerting phase. 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).",
2407
+ "required": false,
2408
+ "type": "map",
2409
+ "update_causes": "none"
2410
+ }
2411
+ }
2412
+ },
2413
+ "Rackspace::CloudMonitoring::Notification": {
2414
+ "properties": [
2415
+ "details",
2416
+ "label",
2417
+ "type"
2418
+ ],
2419
+ "full_properties": {
2420
+ "type": {
2421
+ "description": "The specific type of resource",
2422
+ "required": true,
2423
+ "type": "string",
2424
+ "update_causes": "replacement"
2425
+ },
2426
+ "details": {
2427
+ "description": "A hash of type-specific details",
2428
+ "required": false,
2429
+ "type": "map",
2430
+ "update_causes": "replacement"
2431
+ },
2432
+ "label": {
2433
+ "description": "A friendly label for this resource",
2434
+ "required": false,
2435
+ "type": "string",
2436
+ "update_causes": "none"
2437
+ }
2438
+ }
2439
+ },
2440
+ "Rackspace::CloudMonitoring::NotificationPlan": {
2441
+ "properties": [
2442
+ "critical_state",
2443
+ "label",
2444
+ "ok_state",
2445
+ "warning_state"
2446
+ ],
2447
+ "full_properties": {
2448
+ "critical_state": {
2449
+ "description": "The notification list to send to when the state is CRITICAL.",
2450
+ "required": false,
2451
+ "type": "list",
2452
+ "update_causes": "none"
2453
+ },
2454
+ "label": {
2455
+ "description": "A friendly label for this resource",
2456
+ "required": false,
2457
+ "type": "string",
2458
+ "update_causes": "none"
2459
+ },
2460
+ "ok_state": {
2461
+ "description": "The notification list to send to when the state is OK.",
2462
+ "required": false,
2463
+ "type": "list",
2464
+ "update_causes": "none"
2465
+ },
2466
+ "warning_state": {
2467
+ "description": "The notification list to send to when the state is WARNING.",
2468
+ "required": false,
2469
+ "type": "list",
2470
+ "update_causes": "none"
2471
+ }
2472
+ }
2473
+ },
2474
+ "Rackspace::CloudMonitoring::PlanNotifications": {
2475
+ "properties": [
2476
+ "critical_state",
2477
+ "ok_state",
2478
+ "plan",
2479
+ "warning_state"
2480
+ ],
2481
+ "full_properties": {
2482
+ "plan": {
2483
+ "description": "The notification plan to add notifications to",
2484
+ "required": true,
2485
+ "type": "string",
2486
+ "update_causes": "replacement"
2487
+ },
2488
+ "critical_state": {
2489
+ "description": "The notification list to send to when the state is CRITICAL.",
2490
+ "required": false,
2491
+ "type": "list",
2492
+ "update_causes": "none"
2493
+ },
2494
+ "ok_state": {
2495
+ "description": "The notification list to send to when the state is OK.",
2496
+ "required": false,
2497
+ "type": "list",
2498
+ "update_causes": "none"
2499
+ },
2500
+ "warning_state": {
2501
+ "description": "The notification list to send to when the state is WARNING.",
2502
+ "required": false,
2503
+ "type": "list",
2504
+ "update_causes": "none"
2505
+ }
2506
+ }
2507
+ },
2508
+ "Rackspace::Neutron::SecurityGroupAttachment": {
2509
+ "properties": [
2510
+ "port",
2511
+ "security_group"
2512
+ ],
2513
+ "full_properties": {
2514
+ "port": {
2515
+ "description": "The ID of the port to attach a security group.",
2516
+ "required": true,
2517
+ "type": "string",
2518
+ "update_causes": "replacement"
2519
+ },
2520
+ "security_group": {
2521
+ "description": "The ID of the security group to be attached.",
2522
+ "required": true,
2523
+ "type": "string",
2524
+ "update_causes": "replacement"
2525
+ }
2526
+ }
2527
+ },
2528
+ "Rackspace::RackConnect::PoolNode": {
2529
+ "properties": [
2530
+ "pool",
2531
+ "server_id"
2532
+ ],
2533
+ "full_properties": {
2534
+ "pool": {
2535
+ "description": "The id of the pool.",
2536
+ "required": true,
2537
+ "type": "string",
2538
+ "update_causes": "replacement"
2539
+ },
2540
+ "server_id": {
2541
+ "description": "The id of the server to be added.",
2542
+ "required": true,
2543
+ "type": "string",
2544
+ "update_causes": "replacement"
2545
+ }
2546
+ }
2547
+ },
2548
+ "Rackspace::RackConnect::PublicIP": {
2549
+ "properties": [
2550
+ "server_id"
2551
+ ],
2552
+ "full_properties": {
2553
+ "server_id": {
2554
+ "description": "The id of the server to be added.",
2555
+ "required": true,
2556
+ "type": "string",
2557
+ "update_causes": "replacement"
2558
+ }
2559
+ }
2560
+ }
2561
+ }