sparkle_formation 3.0.10 → 3.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,538 @@
1
1
  {
2
+ "OS::Aodh::Alarm": {
3
+ "properties": [
4
+ "alarm_actions",
5
+ "comparison_operator",
6
+ "description",
7
+ "enabled",
8
+ "evaluation_periods",
9
+ "insufficient_data_actions",
10
+ "matching_metadata",
11
+ "meter_name",
12
+ "ok_actions",
13
+ "period",
14
+ "query",
15
+ "repeat_actions",
16
+ "severity",
17
+ "statistic",
18
+ "threshold",
19
+ "time_constraints"
20
+ ],
21
+ "full_properties": {
22
+ "meter_name": {
23
+ "description": "Meter name watched by the alarm.",
24
+ "required": true,
25
+ "type": "string",
26
+ "update_causes": "replacement"
27
+ },
28
+ "threshold": {
29
+ "description": "Threshold to evaluate against.",
30
+ "required": true,
31
+ "type": "number",
32
+ "update_causes": "none"
33
+ },
34
+ "alarm_actions": {
35
+ "description": "A list of URLs (webhooks) to invoke when state transitions to alarm.",
36
+ "required": false,
37
+ "type": "list",
38
+ "update_causes": "none"
39
+ },
40
+ "comparison_operator": {
41
+ "description": "Operator used to compare specified statistic with threshold.",
42
+ "required": false,
43
+ "type": "string",
44
+ "update_causes": "none"
45
+ },
46
+ "description": {
47
+ "description": "Description for the alarm.",
48
+ "required": false,
49
+ "type": "string",
50
+ "update_causes": "none"
51
+ },
52
+ "enabled": {
53
+ "description": "True if alarm evaluation/actioning is enabled.",
54
+ "required": false,
55
+ "type": "boolean",
56
+ "update_causes": "none"
57
+ },
58
+ "evaluation_periods": {
59
+ "description": "Number of periods to evaluate over.",
60
+ "required": false,
61
+ "type": "integer",
62
+ "update_causes": "none"
63
+ },
64
+ "insufficient_data_actions": {
65
+ "description": "A list of URLs (webhooks) to invoke when state transitions to insufficient-data.",
66
+ "required": false,
67
+ "type": "list",
68
+ "update_causes": "none"
69
+ },
70
+ "matching_metadata": {
71
+ "description": "Meter should match this resource metadata (key=value) additionally to the meter_name.",
72
+ "required": false,
73
+ "type": "map",
74
+ "update_causes": "none"
75
+ },
76
+ "ok_actions": {
77
+ "description": "A list of URLs (webhooks) to invoke when state transitions to ok.",
78
+ "required": false,
79
+ "type": "list",
80
+ "update_causes": "none"
81
+ },
82
+ "period": {
83
+ "description": "Period (seconds) to evaluate over.",
84
+ "required": false,
85
+ "type": "integer",
86
+ "update_causes": "none"
87
+ },
88
+ "query": {
89
+ "description": "A list of query factors, each comparing a Sample attribute with a value. Implicitly combined with matching_metadata, if any.",
90
+ "required": false,
91
+ "type": "list",
92
+ "update_causes": "none"
93
+ },
94
+ "repeat_actions": {
95
+ "description": "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.",
96
+ "required": false,
97
+ "type": "boolean",
98
+ "update_causes": "none"
99
+ },
100
+ "severity": {
101
+ "description": "Severity of the alarm.",
102
+ "required": false,
103
+ "type": "string",
104
+ "update_causes": "none"
105
+ },
106
+ "statistic": {
107
+ "description": "Meter statistic to evaluate.",
108
+ "required": false,
109
+ "type": "string",
110
+ "update_causes": "none"
111
+ },
112
+ "time_constraints": {
113
+ "description": "Describe time constraints for the alarm. Only evaluate the alarm if the time at evaluation is within this time constraint. Start point(s) of the constraint are specified with a cron expression, whereas its duration is given in seconds.",
114
+ "required": false,
115
+ "type": "list",
116
+ "update_causes": "replacement"
117
+ }
118
+ }
119
+ },
120
+ "OS::Aodh::CombinationAlarm": {
121
+ "properties": [
122
+ "alarm_actions",
123
+ "alarm_ids",
124
+ "description",
125
+ "enabled",
126
+ "insufficient_data_actions",
127
+ "ok_actions",
128
+ "operator",
129
+ "repeat_actions",
130
+ "severity",
131
+ "time_constraints"
132
+ ],
133
+ "full_properties": {
134
+ "alarm_ids": {
135
+ "description": "List of alarm identifiers to combine.",
136
+ "required": true,
137
+ "type": "list",
138
+ "update_causes": "none"
139
+ },
140
+ "alarm_actions": {
141
+ "description": "A list of URLs (webhooks) to invoke when state transitions to alarm.",
142
+ "required": false,
143
+ "type": "list",
144
+ "update_causes": "none"
145
+ },
146
+ "description": {
147
+ "description": "Description for the alarm.",
148
+ "required": false,
149
+ "type": "string",
150
+ "update_causes": "none"
151
+ },
152
+ "enabled": {
153
+ "description": "True if alarm evaluation/actioning is enabled.",
154
+ "required": false,
155
+ "type": "boolean",
156
+ "update_causes": "none"
157
+ },
158
+ "insufficient_data_actions": {
159
+ "description": "A list of URLs (webhooks) to invoke when state transitions to insufficient-data.",
160
+ "required": false,
161
+ "type": "list",
162
+ "update_causes": "none"
163
+ },
164
+ "ok_actions": {
165
+ "description": "A list of URLs (webhooks) to invoke when state transitions to ok.",
166
+ "required": false,
167
+ "type": "list",
168
+ "update_causes": "none"
169
+ },
170
+ "operator": {
171
+ "description": "Operator used to combine the alarms.",
172
+ "required": false,
173
+ "type": "string",
174
+ "update_causes": "none"
175
+ },
176
+ "repeat_actions": {
177
+ "description": "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.",
178
+ "required": false,
179
+ "type": "boolean",
180
+ "update_causes": "none"
181
+ },
182
+ "severity": {
183
+ "description": "Severity of the alarm.",
184
+ "required": false,
185
+ "type": "string",
186
+ "update_causes": "none"
187
+ },
188
+ "time_constraints": {
189
+ "description": "Describe time constraints for the alarm. Only evaluate the alarm if the time at evaluation is within this time constraint. Start point(s) of the constraint are specified with a cron expression, whereas its duration is given in seconds.",
190
+ "required": false,
191
+ "type": "list",
192
+ "update_causes": "replacement"
193
+ }
194
+ }
195
+ },
196
+ "OS::Aodh::GnocchiAggregationByMetricsAlarm": {
197
+ "properties": [
198
+ "aggregation_method",
199
+ "alarm_actions",
200
+ "comparison_operator",
201
+ "description",
202
+ "enabled",
203
+ "evaluation_periods",
204
+ "granularity",
205
+ "insufficient_data_actions",
206
+ "metrics",
207
+ "ok_actions",
208
+ "repeat_actions",
209
+ "severity",
210
+ "threshold",
211
+ "time_constraints"
212
+ ],
213
+ "full_properties": {
214
+ "metrics": {
215
+ "description": "A list of metric ids.",
216
+ "required": true,
217
+ "type": "list",
218
+ "update_causes": "none"
219
+ },
220
+ "threshold": {
221
+ "description": "Threshold to evaluate against.",
222
+ "required": true,
223
+ "type": "number",
224
+ "update_causes": "none"
225
+ },
226
+ "aggregation_method": {
227
+ "description": "The aggregation method to compare to the threshold.",
228
+ "required": false,
229
+ "type": "string",
230
+ "update_causes": "none"
231
+ },
232
+ "alarm_actions": {
233
+ "description": "A list of URLs (webhooks) to invoke when state transitions to alarm.",
234
+ "required": false,
235
+ "type": "list",
236
+ "update_causes": "none"
237
+ },
238
+ "comparison_operator": {
239
+ "description": "Operator used to compare specified statistic with threshold.",
240
+ "required": false,
241
+ "type": "string",
242
+ "update_causes": "none"
243
+ },
244
+ "description": {
245
+ "description": "Description for the alarm.",
246
+ "required": false,
247
+ "type": "string",
248
+ "update_causes": "none"
249
+ },
250
+ "enabled": {
251
+ "description": "True if alarm evaluation/actioning is enabled.",
252
+ "required": false,
253
+ "type": "boolean",
254
+ "update_causes": "none"
255
+ },
256
+ "evaluation_periods": {
257
+ "description": "Number of periods to evaluate over.",
258
+ "required": false,
259
+ "type": "integer",
260
+ "update_causes": "none"
261
+ },
262
+ "granularity": {
263
+ "description": "The time range in seconds.",
264
+ "required": false,
265
+ "type": "integer",
266
+ "update_causes": "none"
267
+ },
268
+ "insufficient_data_actions": {
269
+ "description": "A list of URLs (webhooks) to invoke when state transitions to insufficient-data.",
270
+ "required": false,
271
+ "type": "list",
272
+ "update_causes": "none"
273
+ },
274
+ "ok_actions": {
275
+ "description": "A list of URLs (webhooks) to invoke when state transitions to ok.",
276
+ "required": false,
277
+ "type": "list",
278
+ "update_causes": "none"
279
+ },
280
+ "repeat_actions": {
281
+ "description": "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.",
282
+ "required": false,
283
+ "type": "boolean",
284
+ "update_causes": "none"
285
+ },
286
+ "severity": {
287
+ "description": "Severity of the alarm.",
288
+ "required": false,
289
+ "type": "string",
290
+ "update_causes": "none"
291
+ },
292
+ "time_constraints": {
293
+ "description": "Describe time constraints for the alarm. Only evaluate the alarm if the time at evaluation is within this time constraint. Start point(s) of the constraint are specified with a cron expression, whereas its duration is given in seconds.",
294
+ "required": false,
295
+ "type": "list",
296
+ "update_causes": "replacement"
297
+ }
298
+ }
299
+ },
300
+ "OS::Aodh::GnocchiAggregationByResourcesAlarm": {
301
+ "properties": [
302
+ "aggregation_method",
303
+ "alarm_actions",
304
+ "comparison_operator",
305
+ "description",
306
+ "enabled",
307
+ "evaluation_periods",
308
+ "granularity",
309
+ "insufficient_data_actions",
310
+ "metric",
311
+ "ok_actions",
312
+ "query",
313
+ "repeat_actions",
314
+ "resource_type",
315
+ "severity",
316
+ "threshold",
317
+ "time_constraints"
318
+ ],
319
+ "full_properties": {
320
+ "metric": {
321
+ "description": "Metric name watched by the alarm.",
322
+ "required": true,
323
+ "type": "string",
324
+ "update_causes": "none"
325
+ },
326
+ "query": {
327
+ "description": "The query to filter the metrics.",
328
+ "required": true,
329
+ "type": "string",
330
+ "update_causes": "none"
331
+ },
332
+ "resource_type": {
333
+ "description": "Resource type.",
334
+ "required": true,
335
+ "type": "string",
336
+ "update_causes": "none"
337
+ },
338
+ "threshold": {
339
+ "description": "Threshold to evaluate against.",
340
+ "required": true,
341
+ "type": "number",
342
+ "update_causes": "none"
343
+ },
344
+ "aggregation_method": {
345
+ "description": "The aggregation method to compare to the threshold.",
346
+ "required": false,
347
+ "type": "string",
348
+ "update_causes": "none"
349
+ },
350
+ "alarm_actions": {
351
+ "description": "A list of URLs (webhooks) to invoke when state transitions to alarm.",
352
+ "required": false,
353
+ "type": "list",
354
+ "update_causes": "none"
355
+ },
356
+ "comparison_operator": {
357
+ "description": "Operator used to compare specified statistic with threshold.",
358
+ "required": false,
359
+ "type": "string",
360
+ "update_causes": "none"
361
+ },
362
+ "description": {
363
+ "description": "Description for the alarm.",
364
+ "required": false,
365
+ "type": "string",
366
+ "update_causes": "none"
367
+ },
368
+ "enabled": {
369
+ "description": "True if alarm evaluation/actioning is enabled.",
370
+ "required": false,
371
+ "type": "boolean",
372
+ "update_causes": "none"
373
+ },
374
+ "evaluation_periods": {
375
+ "description": "Number of periods to evaluate over.",
376
+ "required": false,
377
+ "type": "integer",
378
+ "update_causes": "none"
379
+ },
380
+ "granularity": {
381
+ "description": "The time range in seconds.",
382
+ "required": false,
383
+ "type": "integer",
384
+ "update_causes": "none"
385
+ },
386
+ "insufficient_data_actions": {
387
+ "description": "A list of URLs (webhooks) to invoke when state transitions to insufficient-data.",
388
+ "required": false,
389
+ "type": "list",
390
+ "update_causes": "none"
391
+ },
392
+ "ok_actions": {
393
+ "description": "A list of URLs (webhooks) to invoke when state transitions to ok.",
394
+ "required": false,
395
+ "type": "list",
396
+ "update_causes": "none"
397
+ },
398
+ "repeat_actions": {
399
+ "description": "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.",
400
+ "required": false,
401
+ "type": "boolean",
402
+ "update_causes": "none"
403
+ },
404
+ "severity": {
405
+ "description": "Severity of the alarm.",
406
+ "required": false,
407
+ "type": "string",
408
+ "update_causes": "none"
409
+ },
410
+ "time_constraints": {
411
+ "description": "Describe time constraints for the alarm. Only evaluate the alarm if the time at evaluation is within this time constraint. Start point(s) of the constraint are specified with a cron expression, whereas its duration is given in seconds.",
412
+ "required": false,
413
+ "type": "list",
414
+ "update_causes": "replacement"
415
+ }
416
+ }
417
+ },
418
+ "OS::Aodh::GnocchiResourcesAlarm": {
419
+ "properties": [
420
+ "aggregation_method",
421
+ "alarm_actions",
422
+ "comparison_operator",
423
+ "description",
424
+ "enabled",
425
+ "evaluation_periods",
426
+ "granularity",
427
+ "insufficient_data_actions",
428
+ "metric",
429
+ "ok_actions",
430
+ "repeat_actions",
431
+ "resource_id",
432
+ "resource_type",
433
+ "severity",
434
+ "threshold",
435
+ "time_constraints"
436
+ ],
437
+ "full_properties": {
438
+ "metric": {
439
+ "description": "Metric name watched by the alarm.",
440
+ "required": true,
441
+ "type": "string",
442
+ "update_causes": "none"
443
+ },
444
+ "resource_id": {
445
+ "description": "Id of a resource.",
446
+ "required": true,
447
+ "type": "string",
448
+ "update_causes": "none"
449
+ },
450
+ "resource_type": {
451
+ "description": "Resource type.",
452
+ "required": true,
453
+ "type": "string",
454
+ "update_causes": "none"
455
+ },
456
+ "threshold": {
457
+ "description": "Threshold to evaluate against.",
458
+ "required": true,
459
+ "type": "number",
460
+ "update_causes": "none"
461
+ },
462
+ "aggregation_method": {
463
+ "description": "The aggregation method to compare to the threshold.",
464
+ "required": false,
465
+ "type": "string",
466
+ "update_causes": "none"
467
+ },
468
+ "alarm_actions": {
469
+ "description": "A list of URLs (webhooks) to invoke when state transitions to alarm.",
470
+ "required": false,
471
+ "type": "list",
472
+ "update_causes": "none"
473
+ },
474
+ "comparison_operator": {
475
+ "description": "Operator used to compare specified statistic with threshold.",
476
+ "required": false,
477
+ "type": "string",
478
+ "update_causes": "none"
479
+ },
480
+ "description": {
481
+ "description": "Description for the alarm.",
482
+ "required": false,
483
+ "type": "string",
484
+ "update_causes": "none"
485
+ },
486
+ "enabled": {
487
+ "description": "True if alarm evaluation/actioning is enabled.",
488
+ "required": false,
489
+ "type": "boolean",
490
+ "update_causes": "none"
491
+ },
492
+ "evaluation_periods": {
493
+ "description": "Number of periods to evaluate over.",
494
+ "required": false,
495
+ "type": "integer",
496
+ "update_causes": "none"
497
+ },
498
+ "granularity": {
499
+ "description": "The time range in seconds.",
500
+ "required": false,
501
+ "type": "integer",
502
+ "update_causes": "none"
503
+ },
504
+ "insufficient_data_actions": {
505
+ "description": "A list of URLs (webhooks) to invoke when state transitions to insufficient-data.",
506
+ "required": false,
507
+ "type": "list",
508
+ "update_causes": "none"
509
+ },
510
+ "ok_actions": {
511
+ "description": "A list of URLs (webhooks) to invoke when state transitions to ok.",
512
+ "required": false,
513
+ "type": "list",
514
+ "update_causes": "none"
515
+ },
516
+ "repeat_actions": {
517
+ "description": "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.",
518
+ "required": false,
519
+ "type": "boolean",
520
+ "update_causes": "none"
521
+ },
522
+ "severity": {
523
+ "description": "Severity of the alarm.",
524
+ "required": false,
525
+ "type": "string",
526
+ "update_causes": "none"
527
+ },
528
+ "time_constraints": {
529
+ "description": "Describe time constraints for the alarm. Only evaluate the alarm if the time at evaluation is within this time constraint. Start point(s) of the constraint are specified with a cron expression, whereas its duration is given in seconds.",
530
+ "required": false,
531
+ "type": "list",
532
+ "update_causes": "replacement"
533
+ }
534
+ }
535
+ },
2
536
  "OS::Cinder::Volume": {
3
537
  "properties": [
4
538
  "availability_zone",
@@ -71,7 +605,7 @@
71
605
  "update_causes": "replacement"
72
606
  },
73
607
  "size": {
74
- "description": "The size of the volume in GB. On update only increase in size is supported.",
608
+ "description": "The size of the volume in GB. On update only increase in size is supported. This property is required unless property backup_id or source_volid or snapshot_id is specified.",
75
609
  "required": false,
76
610
  "type": "integer",
77
611
  "update_causes": "none"
@@ -217,7 +751,7 @@
217
751
  "update_causes": "replacement"
218
752
  },
219
753
  "removal_policies": {
220
- "description": "Policies for removal of resources on update",
754
+ "description": "Policies for removal of resources on update.",
221
755
  "required": false,
222
756
  "type": "list",
223
757
  "update_causes": "none"
@@ -323,6 +857,12 @@
323
857
  "signal_transport"
324
858
  ],
325
859
  "full_properties": {
860
+ "servers": {
861
+ "description": "A map of names and server IDs to apply configuration to. The name is arbitrary and is used as the Heat resource name for the corresponding deployment.",
862
+ "required": true,
863
+ "type": "map",
864
+ "update_causes": "none"
865
+ },
326
866
  "actions": {
327
867
  "description": "Which lifecycle actions of the deployment resource will result in this deployment being triggered.",
328
868
  "required": false,
@@ -347,12 +887,6 @@
347
887
  "type": "string",
348
888
  "update_causes": "none"
349
889
  },
350
- "servers": {
351
- "description": "A map of Nova names and IDs to apply configuration to.",
352
- "required": false,
353
- "type": "map",
354
- "update_causes": "none"
355
- },
356
890
  "signal_transport": {
357
891
  "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.",
358
892
  "required": false,
@@ -371,6 +905,12 @@
371
905
  "signal_transport"
372
906
  ],
373
907
  "full_properties": {
908
+ "servers": {
909
+ "description": "A map of names and server IDs to apply configuration to. The name is arbitrary and is used as the Heat resource name for the corresponding deployment.",
910
+ "required": true,
911
+ "type": "map",
912
+ "update_causes": "none"
913
+ },
374
914
  "actions": {
375
915
  "description": "Which lifecycle actions of the deployment resource will result in this deployment being triggered.",
376
916
  "required": false,
@@ -395,12 +935,6 @@
395
935
  "type": "string",
396
936
  "update_causes": "none"
397
937
  },
398
- "servers": {
399
- "description": "A map of Nova names and IDs to apply configuration to.",
400
- "required": false,
401
- "type": "map",
402
- "update_causes": "none"
403
- },
404
938
  "signal_transport": {
405
939
  "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.",
406
940
  "required": false,
@@ -457,7 +991,7 @@
457
991
  "update_causes": "replacement"
458
992
  },
459
993
  "timeout": {
460
- "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.",
994
+ "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.",
461
995
  "required": true,
462
996
  "type": "number",
463
997
  "update_causes": "replacement"
@@ -486,6 +1020,7 @@
486
1020
  "entity_name",
487
1021
  "fail",
488
1022
  "update_replace",
1023
+ "update_replace_value",
489
1024
  "value",
490
1025
  "wait_secs"
491
1026
  ],
@@ -496,52 +1031,368 @@
496
1031
  "type": "map",
497
1032
  "update_causes": "none"
498
1033
  },
499
- "attr_wait_secs": {
500
- "description": "Number value for timeout during resolving output value.",
1034
+ "attr_wait_secs": {
1035
+ "description": "Number value for timeout during resolving output value.",
1036
+ "required": false,
1037
+ "type": "number",
1038
+ "update_causes": "none"
1039
+ },
1040
+ "client_name": {
1041
+ "description": "Client to poll.",
1042
+ "required": false,
1043
+ "type": "string",
1044
+ "update_causes": "none"
1045
+ },
1046
+ "constraint_prop_secs": {
1047
+ "description": "Number value for delay during resolve constraint.",
1048
+ "required": false,
1049
+ "type": "number",
1050
+ "update_causes": "none"
1051
+ },
1052
+ "entity_name": {
1053
+ "description": "Client entity to poll.",
1054
+ "required": false,
1055
+ "type": "string",
1056
+ "update_causes": "none"
1057
+ },
1058
+ "fail": {
1059
+ "description": "Value which can be set to fail the resource operation to test failure scenarios.",
1060
+ "required": false,
1061
+ "type": "boolean",
1062
+ "update_causes": "none"
1063
+ },
1064
+ "update_replace": {
1065
+ "description": "Value which can be set to trigger update replace for the particular resource.",
1066
+ "required": false,
1067
+ "type": "boolean",
1068
+ "update_causes": "none"
1069
+ },
1070
+ "update_replace_value": {
1071
+ "description": "Some value that can be stored but can not be updated.",
1072
+ "required": false,
1073
+ "type": "string",
1074
+ "update_causes": "replacement"
1075
+ },
1076
+ "value": {
1077
+ "description": "The input string to be stored.",
1078
+ "required": false,
1079
+ "type": "string",
1080
+ "update_causes": "none"
1081
+ },
1082
+ "wait_secs": {
1083
+ "description": "Seconds to wait after an action (-1 is infinite).",
1084
+ "required": false,
1085
+ "type": "number",
1086
+ "update_causes": "none"
1087
+ }
1088
+ }
1089
+ },
1090
+ "OS::Neutron::LBaaS::HealthMonitor": {
1091
+ "properties": [
1092
+ "admin_state_up",
1093
+ "delay",
1094
+ "expected_codes",
1095
+ "http_method",
1096
+ "max_retries",
1097
+ "pool",
1098
+ "tenant_id",
1099
+ "timeout",
1100
+ "type",
1101
+ "url_path"
1102
+ ],
1103
+ "full_properties": {
1104
+ "delay": {
1105
+ "description": "The minimum time in milliseconds between regular connections of the member.",
1106
+ "required": true,
1107
+ "type": "integer",
1108
+ "update_causes": "none"
1109
+ },
1110
+ "max_retries": {
1111
+ "description": "Number of permissible connection failures before changing the member status to INACTIVE.",
1112
+ "required": true,
1113
+ "type": "integer",
1114
+ "update_causes": "none"
1115
+ },
1116
+ "pool": {
1117
+ "description": "ID or name of the load balancing pool.",
1118
+ "required": true,
1119
+ "type": "string",
1120
+ "update_causes": "replacement"
1121
+ },
1122
+ "timeout": {
1123
+ "description": "Maximum number of milliseconds for a monitor to wait for a connection to be established before it times out.",
1124
+ "required": true,
1125
+ "type": "integer",
1126
+ "update_causes": "none"
1127
+ },
1128
+ "type": {
1129
+ "description": "One of predefined health monitor types.",
1130
+ "required": true,
1131
+ "type": "string",
1132
+ "update_causes": "replacement"
1133
+ },
1134
+ "admin_state_up": {
1135
+ "description": "The administrative state of the health monitor.",
1136
+ "required": false,
1137
+ "type": "boolean",
1138
+ "update_causes": "none"
1139
+ },
1140
+ "expected_codes": {
1141
+ "description": "The HTTP status codes expected in response from the member to declare it healthy. Specify one of the following values: a single value, such as 200. a list, such as 200, 202. a range, such as 200-204.",
1142
+ "required": false,
1143
+ "type": "string",
1144
+ "update_causes": "none"
1145
+ },
1146
+ "http_method": {
1147
+ "description": "The HTTP method used for requests by the monitor of type HTTP.",
1148
+ "required": false,
1149
+ "type": "string",
1150
+ "update_causes": "none"
1151
+ },
1152
+ "tenant_id": {
1153
+ "description": "ID of the tenant who owns the health monitor.",
1154
+ "required": false,
1155
+ "type": "string",
1156
+ "update_causes": "replacement"
1157
+ },
1158
+ "url_path": {
1159
+ "description": "The HTTP path used in the HTTP request used by the monitor to test a member health. A valid value is a string the begins with a forward slash (/).",
1160
+ "required": false,
1161
+ "type": "string",
1162
+ "update_causes": "none"
1163
+ }
1164
+ }
1165
+ },
1166
+ "OS::Neutron::LBaaS::Listener": {
1167
+ "properties": [
1168
+ "admin_state_up",
1169
+ "connection_limit",
1170
+ "default_tls_container_ref",
1171
+ "description",
1172
+ "loadbalancer",
1173
+ "name",
1174
+ "protocol",
1175
+ "protocol_port",
1176
+ "sni_container_refs",
1177
+ "tenant_id"
1178
+ ],
1179
+ "full_properties": {
1180
+ "loadbalancer": {
1181
+ "description": "ID or name of the load balancer with which listener is associated.",
1182
+ "required": true,
1183
+ "type": "string",
1184
+ "update_causes": "replacement"
1185
+ },
1186
+ "protocol": {
1187
+ "description": "Protocol on which to listen for the client traffic.",
1188
+ "required": true,
1189
+ "type": "string",
1190
+ "update_causes": "replacement"
1191
+ },
1192
+ "protocol_port": {
1193
+ "description": "TCP or UDP port on which to listen for client traffic.",
1194
+ "required": true,
1195
+ "type": "integer",
1196
+ "update_causes": "replacement"
1197
+ },
1198
+ "admin_state_up": {
1199
+ "description": "The administrative state of this listener.",
1200
+ "required": false,
1201
+ "type": "boolean",
1202
+ "update_causes": "none"
1203
+ },
1204
+ "connection_limit": {
1205
+ "description": "The maximum number of connections permitted for this load balancer. Defaults to -1, which is infinite.",
1206
+ "required": false,
1207
+ "type": "integer",
1208
+ "update_causes": "none"
1209
+ },
1210
+ "default_tls_container_ref": {
1211
+ "description": "Default TLS container reference to retrieve TLS information.",
1212
+ "required": false,
1213
+ "type": "string",
1214
+ "update_causes": "none"
1215
+ },
1216
+ "description": {
1217
+ "description": "Description of this listener.",
1218
+ "required": false,
1219
+ "type": "string",
1220
+ "update_causes": "none"
1221
+ },
1222
+ "name": {
1223
+ "description": "Name of this listener.",
1224
+ "required": false,
1225
+ "type": "string",
1226
+ "update_causes": "none"
1227
+ },
1228
+ "sni_container_refs": {
1229
+ "description": "List of TLS container references for SNI.",
1230
+ "required": false,
1231
+ "type": "list",
1232
+ "update_causes": "none"
1233
+ },
1234
+ "tenant_id": {
1235
+ "description": "The ID of the tenant who owns the listener.",
1236
+ "required": false,
1237
+ "type": "string",
1238
+ "update_causes": "replacement"
1239
+ }
1240
+ }
1241
+ },
1242
+ "OS::Neutron::LBaaS::LoadBalancer": {
1243
+ "properties": [
1244
+ "admin_state_up",
1245
+ "description",
1246
+ "name",
1247
+ "provider",
1248
+ "tenant_id",
1249
+ "vip_address",
1250
+ "vip_subnet"
1251
+ ],
1252
+ "full_properties": {
1253
+ "vip_subnet": {
1254
+ "description": "The name or ID of the subnet on which to allocate the VIP address.",
1255
+ "required": true,
1256
+ "type": "string",
1257
+ "update_causes": "replacement"
1258
+ },
1259
+ "admin_state_up": {
1260
+ "description": "The administrative state of this Load Balancer.",
1261
+ "required": false,
1262
+ "type": "boolean",
1263
+ "update_causes": "none"
1264
+ },
1265
+ "description": {
1266
+ "description": "Description of this Load Balancer.",
1267
+ "required": false,
1268
+ "type": "string",
1269
+ "update_causes": "none"
1270
+ },
1271
+ "name": {
1272
+ "description": "Name of this Load Balancer.",
1273
+ "required": false,
1274
+ "type": "string",
1275
+ "update_causes": "none"
1276
+ },
1277
+ "provider": {
1278
+ "description": "Provider for this Load Balancer.",
1279
+ "required": false,
1280
+ "type": "string",
1281
+ "update_causes": "replacement"
1282
+ },
1283
+ "tenant_id": {
1284
+ "description": "The ID of the tenant who owns the Load Balancer. Only administrative users can specify a tenant ID other than their own.",
1285
+ "required": false,
1286
+ "type": "string",
1287
+ "update_causes": "replacement"
1288
+ },
1289
+ "vip_address": {
1290
+ "description": "IP address for the VIP.",
1291
+ "required": false,
1292
+ "type": "string",
1293
+ "update_causes": "replacement"
1294
+ }
1295
+ }
1296
+ },
1297
+ "OS::Neutron::LBaaS::Pool": {
1298
+ "properties": [
1299
+ "admin_state_up",
1300
+ "description",
1301
+ "lb_algorithm",
1302
+ "listener",
1303
+ "name",
1304
+ "protocol",
1305
+ "session_persistence"
1306
+ ],
1307
+ "full_properties": {
1308
+ "lb_algorithm": {
1309
+ "description": "The algorithm used to distribute load between the members of the pool.",
1310
+ "required": true,
1311
+ "type": "string",
1312
+ "update_causes": "none"
1313
+ },
1314
+ "listener": {
1315
+ "description": "Listener name or ID to be associated with this pool.",
1316
+ "required": true,
1317
+ "type": "string",
1318
+ "update_causes": "replacement"
1319
+ },
1320
+ "protocol": {
1321
+ "description": "Protocol of the pool.",
1322
+ "required": true,
1323
+ "type": "string",
1324
+ "update_causes": "replacement"
1325
+ },
1326
+ "admin_state_up": {
1327
+ "description": "The administrative state of this pool.",
501
1328
  "required": false,
502
- "type": "number",
1329
+ "type": "boolean",
503
1330
  "update_causes": "none"
504
1331
  },
505
- "client_name": {
506
- "description": "Client to poll.",
1332
+ "description": {
1333
+ "description": "Description of this pool.",
507
1334
  "required": false,
508
1335
  "type": "string",
509
1336
  "update_causes": "none"
510
1337
  },
511
- "constraint_prop_secs": {
512
- "description": "Number value for delay during resolve constraint.",
1338
+ "name": {
1339
+ "description": "Name of this pool.",
513
1340
  "required": false,
514
- "type": "number",
1341
+ "type": "string",
515
1342
  "update_causes": "none"
516
1343
  },
517
- "entity_name": {
518
- "description": "Client entity to poll.",
1344
+ "session_persistence": {
1345
+ "description": "Configuration of session persistence.",
519
1346
  "required": false,
1347
+ "type": "map",
1348
+ "update_causes": "replacement"
1349
+ }
1350
+ }
1351
+ },
1352
+ "OS::Neutron::LBaaS::PoolMember": {
1353
+ "properties": [
1354
+ "address",
1355
+ "admin_state_up",
1356
+ "pool",
1357
+ "protocol_port",
1358
+ "subnet",
1359
+ "weight"
1360
+ ],
1361
+ "full_properties": {
1362
+ "address": {
1363
+ "description": "IP address of the pool member on the pool network.",
1364
+ "required": true,
520
1365
  "type": "string",
521
- "update_causes": "none"
1366
+ "update_causes": "replacement"
522
1367
  },
523
- "fail": {
524
- "description": "Value which can be set to fail the resource operation to test failure scenarios.",
525
- "required": false,
526
- "type": "boolean",
527
- "update_causes": "none"
1368
+ "pool": {
1369
+ "description": "Name or ID of the load balancing pool.",
1370
+ "required": true,
1371
+ "type": "string",
1372
+ "update_causes": "replacement"
528
1373
  },
529
- "update_replace": {
530
- "description": "Value which can be set to trigger update replace for the particular resource",
1374
+ "protocol_port": {
1375
+ "description": "Port on which the pool member listens for requests or connections.",
1376
+ "required": true,
1377
+ "type": "integer",
1378
+ "update_causes": "replacement"
1379
+ },
1380
+ "admin_state_up": {
1381
+ "description": "The administrative state of the pool member.",
531
1382
  "required": false,
532
1383
  "type": "boolean",
533
1384
  "update_causes": "none"
534
1385
  },
535
- "value": {
536
- "description": "The input string to be stored.",
1386
+ "subnet": {
1387
+ "description": "Subnet name or ID of this member.",
537
1388
  "required": false,
538
1389
  "type": "string",
539
- "update_causes": "none"
1390
+ "update_causes": "replacement"
540
1391
  },
541
- "wait_secs": {
542
- "description": "Seconds to wait after an action (-1 is infinite)",
1392
+ "weight": {
1393
+ "description": "Weight of pool member in the pool (default to 1).",
543
1394
  "required": false,
544
- "type": "number",
1395
+ "type": "integer",
545
1396
  "update_causes": "none"
546
1397
  }
547
1398
  }
@@ -577,7 +1428,7 @@
577
1428
  "update_causes": "none"
578
1429
  },
579
1430
  "port_security_enabled": {
580
- "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",
1431
+ "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.",
581
1432
  "required": false,
582
1433
  "type": "boolean",
583
1434
  "update_causes": "none"
@@ -610,21 +1461,46 @@
610
1461
  },
611
1462
  "OS::Neutron::Port": {
612
1463
  "properties": [
1464
+ "admin_state_up",
1465
+ "allowed_address_pairs",
1466
+ "binding:vnic_type",
613
1467
  "device_id",
614
1468
  "device_owner",
615
1469
  "fixed_ips",
1470
+ "mac_address",
616
1471
  "name",
617
1472
  "network",
1473
+ "port_security_enabled",
1474
+ "qos_policy",
618
1475
  "replacement_policy",
619
- "security_groups"
1476
+ "security_groups",
1477
+ "value_specs"
620
1478
  ],
621
1479
  "full_properties": {
622
1480
  "network": {
623
- "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",
1481
+ "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.",
624
1482
  "required": true,
625
1483
  "type": "string",
626
1484
  "update_causes": "replacement"
627
1485
  },
1486
+ "admin_state_up": {
1487
+ "description": "The administrative state of this port.",
1488
+ "required": false,
1489
+ "type": "boolean",
1490
+ "update_causes": "none"
1491
+ },
1492
+ "allowed_address_pairs": {
1493
+ "description": "Additional MAC/IP address pairs allowed to pass through the port.",
1494
+ "required": false,
1495
+ "type": "list",
1496
+ "update_causes": "replacement"
1497
+ },
1498
+ "binding:vnic_type": {
1499
+ "description": "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 tap-like software interface). Note that this only works for Neutron deployments that support the bindings extension.",
1500
+ "required": false,
1501
+ "type": "string",
1502
+ "update_causes": "none"
1503
+ },
628
1504
  "device_id": {
629
1505
  "description": "Device ID of this port.",
630
1506
  "required": false,
@@ -632,7 +1508,7 @@
632
1508
  "update_causes": "none"
633
1509
  },
634
1510
  "device_owner": {
635
- "description": "Name of the network owning the port. The value is typically network:floatingip or network:router_interface or network:dhcp",
1511
+ "description": "Name of the network owning the port. The value is typically network:floatingip or network:router_interface or network:dhcp.",
636
1512
  "required": false,
637
1513
  "type": "string",
638
1514
  "update_causes": "none"
@@ -643,14 +1519,26 @@
643
1519
  "type": "list",
644
1520
  "update_causes": "none"
645
1521
  },
1522
+ "mac_address": {
1523
+ "description": "MAC address to give to this port.",
1524
+ "required": false,
1525
+ "type": "string",
1526
+ "update_causes": "replacement"
1527
+ },
646
1528
  "name": {
647
1529
  "description": "A symbolic name for this port.",
648
1530
  "required": false,
649
1531
  "type": "string",
650
1532
  "update_causes": "none"
651
1533
  },
652
- "replacement_policy": {
653
- "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.",
1534
+ "port_security_enabled": {
1535
+ "description": "Flag to enable/disable port security on the port. When disable this feature(set it to False), there will be no packages filtering, like security-group and address-pairs.",
1536
+ "required": false,
1537
+ "type": "boolean",
1538
+ "update_causes": "none"
1539
+ },
1540
+ "qos_policy": {
1541
+ "description": "The name or ID of QoS policy to attach to this port.",
654
1542
  "required": false,
655
1543
  "type": "string",
656
1544
  "update_causes": "none"
@@ -660,6 +1548,86 @@
660
1548
  "required": false,
661
1549
  "type": "list",
662
1550
  "update_causes": "none"
1551
+ },
1552
+ "value_specs": {
1553
+ "description": "Extra parameters to include in the request.",
1554
+ "required": false,
1555
+ "type": "map",
1556
+ "update_causes": "none"
1557
+ },
1558
+ "replacement_policy": {
1559
+ "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.",
1560
+ "required": false,
1561
+ "type": "string",
1562
+ "update_causes": "none"
1563
+ }
1564
+ }
1565
+ },
1566
+ "OS::Neutron::PortPair": {
1567
+ "properties": [
1568
+ "description",
1569
+ "egress",
1570
+ "ingress",
1571
+ "name",
1572
+ "service_function_parameters"
1573
+ ],
1574
+ "full_properties": {
1575
+ "egress": {
1576
+ "description": "ID or name of the egress neutron port.",
1577
+ "required": true,
1578
+ "type": "string",
1579
+ "update_causes": "replacement"
1580
+ },
1581
+ "ingress": {
1582
+ "description": "ID or name of the ingress neutron port.",
1583
+ "required": true,
1584
+ "type": "string",
1585
+ "update_causes": "replacement"
1586
+ },
1587
+ "description": {
1588
+ "description": "Description for the Port Pair.",
1589
+ "required": false,
1590
+ "type": "string",
1591
+ "update_causes": "none"
1592
+ },
1593
+ "name": {
1594
+ "description": "Name for the Port Pair.",
1595
+ "required": false,
1596
+ "type": "string",
1597
+ "update_causes": "none"
1598
+ },
1599
+ "service_function_parameters": {
1600
+ "description": "Dictionary of service function parameter. Currently only correlation=None is supported.",
1601
+ "required": false,
1602
+ "type": "map",
1603
+ "update_causes": "replacement"
1604
+ }
1605
+ }
1606
+ },
1607
+ "OS::Neutron::QoSDscpMarkingRule": {
1608
+ "properties": [
1609
+ "dscp_mark",
1610
+ "policy",
1611
+ "tenant_id"
1612
+ ],
1613
+ "full_properties": {
1614
+ "dscp_mark": {
1615
+ "description": "DSCP mark between 0 and 56, except 2-6, 42, 44, and 50-54.",
1616
+ "required": true,
1617
+ "type": "integer",
1618
+ "update_causes": "none"
1619
+ },
1620
+ "policy": {
1621
+ "description": "ID or name of the QoS policy.",
1622
+ "required": true,
1623
+ "type": "string",
1624
+ "update_causes": "replacement"
1625
+ },
1626
+ "tenant_id": {
1627
+ "description": "The owner tenant ID of this rule.",
1628
+ "required": false,
1629
+ "type": "string",
1630
+ "update_causes": "replacement"
663
1631
  }
664
1632
  }
665
1633
  },
@@ -731,6 +1699,75 @@
731
1699
  }
732
1700
  }
733
1701
  },
1702
+ "OS::Neutron::SecurityGroupRule": {
1703
+ "properties": [
1704
+ "description",
1705
+ "direction",
1706
+ "ethertype",
1707
+ "port_range_max",
1708
+ "port_range_min",
1709
+ "protocol",
1710
+ "remote_group",
1711
+ "remote_ip_prefix",
1712
+ "security_group"
1713
+ ],
1714
+ "full_properties": {
1715
+ "security_group": {
1716
+ "description": "Security group name or ID to add rule.",
1717
+ "required": true,
1718
+ "type": "string",
1719
+ "update_causes": "replacement"
1720
+ },
1721
+ "description": {
1722
+ "description": "Description of the security group rule.",
1723
+ "required": false,
1724
+ "type": "string",
1725
+ "update_causes": "replacement"
1726
+ },
1727
+ "direction": {
1728
+ "description": "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.",
1729
+ "required": false,
1730
+ "type": "string",
1731
+ "update_causes": "replacement"
1732
+ },
1733
+ "ethertype": {
1734
+ "description": "Ethertype of the traffic.",
1735
+ "required": false,
1736
+ "type": "string",
1737
+ "update_causes": "replacement"
1738
+ },
1739
+ "port_range_max": {
1740
+ "description": "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 code.",
1741
+ "required": false,
1742
+ "type": "integer",
1743
+ "update_causes": "replacement"
1744
+ },
1745
+ "port_range_min": {
1746
+ "description": "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.",
1747
+ "required": false,
1748
+ "type": "integer",
1749
+ "update_causes": "replacement"
1750
+ },
1751
+ "protocol": {
1752
+ "description": "The protocol that is matched by the security group rule. Allowed values are ah, dccp, egp, esp, gre, icmp, icmpv6, igmp, ipv6-encap, ipv6-frag, ipv6-icmp, ipv6-nonxt, ipv6-opts, ipv6-route, ospf, pgm, rsvp, sctp, tcp, udp, udplite, vrrp and integer representations [0-255].",
1753
+ "required": false,
1754
+ "type": "string",
1755
+ "update_causes": "replacement"
1756
+ },
1757
+ "remote_group": {
1758
+ "description": "The remote group name or ID to be associated with this security group rule.",
1759
+ "required": false,
1760
+ "type": "string",
1761
+ "update_causes": "replacement"
1762
+ },
1763
+ "remote_ip_prefix": {
1764
+ "description": "The remote IP prefix (CIDR) to be associated with this security group rule.",
1765
+ "required": false,
1766
+ "type": "string",
1767
+ "update_causes": "replacement"
1768
+ }
1769
+ }
1770
+ },
734
1771
  "OS::Neutron::Subnet": {
735
1772
  "properties": [
736
1773
  "allocation_pools",
@@ -787,10 +1824,10 @@
787
1824
  "update_causes": "none"
788
1825
  },
789
1826
  "host_routes": {
790
- "description": "List value expected.",
1827
+ "description": "A list of host route dictionaries for the subnet.",
791
1828
  "required": false,
792
- "type": "can",
793
- "update_causes": "unknown"
1829
+ "type": "list",
1830
+ "update_causes": "none"
794
1831
  },
795
1832
  "ip_version": {
796
1833
  "description": "The IP version, which is 4 or 6.",
@@ -799,13 +1836,13 @@
799
1836
  "update_causes": "replacement"
800
1837
  },
801
1838
  "ipv6_address_mode": {
802
- "description": "IPv6 address mode. dhcpv6-stateful, dhcpv6-stateless, or slaac.",
1839
+ "description": "IPv6 address mode.",
803
1840
  "required": false,
804
1841
  "type": "string",
805
1842
  "update_causes": "replacement"
806
1843
  },
807
1844
  "ipv6_ra_mode": {
808
- "description": "IPv6 RA (Router Advertisement) mode. dhcpv6-stateful, dhcpv6-stateless, or slaac.",
1845
+ "description": "IPv6 RA (Router Advertisement) mode.",
809
1846
  "required": false,
810
1847
  "type": "string",
811
1848
  "update_causes": "replacement"
@@ -891,7 +1928,8 @@
891
1928
  "security_groups",
892
1929
  "software_config_transport",
893
1930
  "user_data",
894
- "user_data_format"
1931
+ "user_data_format",
1932
+ "user_data_update_policy"
895
1933
  ],
896
1934
  "full_properties": {
897
1935
  "flavor": {
@@ -949,7 +1987,7 @@
949
1987
  "update_causes": "none"
950
1988
  },
951
1989
  "image_update_policy": {
952
- "description": "Policy on how to apply an image-id update; either by requesting a server rebuild or by replacing the entire server",
1990
+ "description": "Policy on how to apply an image-id update; either by requesting a server rebuild or by replacing the entire server.",
953
1991
  "required": false,
954
1992
  "type": "string",
955
1993
  "update_causes": "none"
@@ -961,7 +1999,7 @@
961
1999
  "update_causes": "replacement"
962
2000
  },
963
2001
  "metadata": {
964
- "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).",
2002
+ "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).",
965
2003
  "required": false,
966
2004
  "type": "map",
967
2005
  "update_causes": "none"
@@ -1003,7 +2041,7 @@
1003
2041
  "update_causes": "replacement"
1004
2042
  },
1005
2043
  "software_config_transport": {
1006
- "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.",
2044
+ "description": "How the server should receive the metadata required for software configuration. POLL_TEMP_URL is the only supported transport on Rackspace Cloud. This property is retained for compatibility.",
1007
2045
  "required": false,
1008
2046
  "type": "string",
1009
2047
  "update_causes": "none"
@@ -1012,13 +2050,19 @@
1012
2050
  "description": "User data script to be executed by cloud-init.",
1013
2051
  "required": false,
1014
2052
  "type": "string",
1015
- "update_causes": "replacement"
2053
+ "update_causes": "none"
1016
2054
  },
1017
2055
  "user_data_format": {
1018
- "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.",
2056
+ "description": "How the user_data should be formatted for the server. 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.",
1019
2057
  "required": false,
1020
2058
  "type": "string",
1021
2059
  "update_causes": "replacement"
2060
+ },
2061
+ "user_data_update_policy": {
2062
+ "description": "Policy on how to apply a user_data update; either by ignoring it or by replacing the entire server.",
2063
+ "required": false,
2064
+ "type": "string",
2065
+ "update_causes": "none"
1022
2066
  }
1023
2067
  }
1024
2068
  },
@@ -1918,7 +2962,8 @@
1918
2962
  "security_groups",
1919
2963
  "software_config_transport",
1920
2964
  "user_data",
1921
- "user_data_format"
2965
+ "user_data_format",
2966
+ "user_data_update_policy"
1922
2967
  ],
1923
2968
  "full_properties": {
1924
2969
  "flavor": {
@@ -1976,7 +3021,7 @@
1976
3021
  "update_causes": "none"
1977
3022
  },
1978
3023
  "image_update_policy": {
1979
- "description": "Policy on how to apply an image-id update; either by requesting a server rebuild or by replacing the entire server",
3024
+ "description": "Policy on how to apply an image-id update; either by requesting a server rebuild or by replacing the entire server.",
1980
3025
  "required": false,
1981
3026
  "type": "string",
1982
3027
  "update_causes": "none"
@@ -1988,7 +3033,7 @@
1988
3033
  "update_causes": "replacement"
1989
3034
  },
1990
3035
  "metadata": {
1991
- "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).",
3036
+ "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).",
1992
3037
  "required": false,
1993
3038
  "type": "map",
1994
3039
  "update_causes": "none"
@@ -2045,13 +3090,67 @@
2045
3090
  "description": "User data script to be executed by cloud-init.",
2046
3091
  "required": false,
2047
3092
  "type": "string",
2048
- "update_causes": "replacement"
3093
+ "update_causes": "none"
2049
3094
  },
2050
3095
  "user_data_format": {
2051
3096
  "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.",
2052
3097
  "required": false,
2053
3098
  "type": "string",
2054
3099
  "update_causes": "replacement"
3100
+ },
3101
+ "user_data_update_policy": {
3102
+ "description": "Policy on how to apply a user_data update; either by ignoring it or by replacing the entire server.",
3103
+ "required": false,
3104
+ "type": "string",
3105
+ "update_causes": "none"
3106
+ }
3107
+ }
3108
+ },
3109
+ "Rackspace::CloudDatabase::HAInstance": {
3110
+ "properties": [
3111
+ "acls",
3112
+ "datastore",
3113
+ "name",
3114
+ "networks",
3115
+ "replica_source",
3116
+ "replicas"
3117
+ ],
3118
+ "full_properties": {
3119
+ "datastore": {
3120
+ "description": "The type of datastore to use",
3121
+ "required": true,
3122
+ "type": "string",
3123
+ "update_causes": "replacement"
3124
+ },
3125
+ "name": {
3126
+ "description": "Specifies the name of the HA instance",
3127
+ "required": true,
3128
+ "type": "string",
3129
+ "update_causes": "replacement"
3130
+ },
3131
+ "replica_source": {
3132
+ "description": "The name, flavorRef, and volume of the replica source (primary) instance.",
3133
+ "required": true,
3134
+ "type": "map",
3135
+ "update_causes": "none"
3136
+ },
3137
+ "replicas": {
3138
+ "description": "The name, flavorRef, and volume of the replicas.",
3139
+ "required": true,
3140
+ "type": "list",
3141
+ "update_causes": "none"
3142
+ },
3143
+ "acls": {
3144
+ "description": "List of IP based ACLs in the CIDR format. This is required to allow the HA group access to the specified IP. By default, the HA group access is blocked.",
3145
+ "required": false,
3146
+ "type": "list",
3147
+ "update_causes": "none"
3148
+ },
3149
+ "networks": {
3150
+ "description": "List of networks to be associated with the HA group. By default (if not specified), it will be [‘servicenet’]. If a public network would be required in addition to the servicenet, it would have to be specified.",
3151
+ "required": false,
3152
+ "type": "list",
3153
+ "update_causes": "replacement"
2055
3154
  }
2056
3155
  }
2057
3156
  },