fog-maestrodev 1.15.0.20130829165835 → 1.15.0.20130927082724

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.
Files changed (350) hide show
  1. data/.gitignore +1 -0
  2. data/README.md +1 -0
  3. data/fog.gemspec +5 -2
  4. data/lib/fog.rb +1 -0
  5. data/lib/fog/atmos/models/storage/file.rb +2 -1
  6. data/lib/fog/aws.rb +4 -1
  7. data/lib/fog/aws/data_pipeline.rb +3 -0
  8. data/lib/fog/aws/elasticache.rb +2 -0
  9. data/lib/fog/aws/models/auto_scaling/group.rb +12 -12
  10. data/lib/fog/aws/models/compute/subnet.rb +3 -1
  11. data/lib/fog/aws/models/elasticache/cluster.rb +3 -1
  12. data/lib/fog/aws/parsers/redshift/cluster.rb +29 -0
  13. data/lib/fog/aws/parsers/redshift/cluster_parser.rb +144 -0
  14. data/lib/fog/aws/parsers/redshift/cluster_security_group_parser.rb +50 -0
  15. data/lib/fog/aws/parsers/redshift/cluster_snapshot.rb +32 -0
  16. data/lib/fog/aws/parsers/redshift/cluster_snapshot_parser.rb +66 -0
  17. data/lib/fog/aws/parsers/redshift/cluster_subnet_group_parser.rb +51 -0
  18. data/lib/fog/aws/parsers/redshift/create_cluster_parameter_group.rb +30 -0
  19. data/lib/fog/aws/parsers/redshift/create_cluster_security_group.rb +31 -0
  20. data/lib/fog/aws/parsers/redshift/describe_cluster_parameter_groups.rb +41 -0
  21. data/lib/fog/aws/parsers/redshift/describe_cluster_parameters.rb +48 -0
  22. data/lib/fog/aws/parsers/redshift/describe_cluster_security_groups.rb +38 -0
  23. data/lib/fog/aws/parsers/redshift/describe_cluster_snapshots.rb +38 -0
  24. data/lib/fog/aws/parsers/redshift/describe_cluster_subnet_groups.rb +58 -0
  25. data/lib/fog/aws/parsers/redshift/describe_cluster_versions.rb +53 -0
  26. data/lib/fog/aws/parsers/redshift/describe_clusters.rb +30 -0
  27. data/lib/fog/aws/parsers/redshift/describe_default_cluster_parameters.rb +49 -0
  28. data/lib/fog/aws/parsers/redshift/describe_events.rb +44 -0
  29. data/lib/fog/aws/parsers/redshift/describe_orderable_cluster_options.rb +54 -0
  30. data/lib/fog/aws/parsers/redshift/describe_reserved_node_offerings.rb +64 -0
  31. data/lib/fog/aws/parsers/redshift/describe_reserved_nodes.rb +71 -0
  32. data/lib/fog/aws/parsers/redshift/describe_resize.rb +60 -0
  33. data/lib/fog/aws/parsers/redshift/purchase_reserved_node_offering.rb +58 -0
  34. data/lib/fog/aws/parsers/redshift/revoke_cluster_security_group_ingress.rb +31 -0
  35. data/lib/fog/aws/parsers/redshift/update_cluster_parameter_group_parser.rb +29 -0
  36. data/lib/fog/aws/parsers/sts/get_session_token.rb +1 -3
  37. data/lib/fog/aws/redshift.rb +126 -0
  38. data/lib/fog/aws/requests/compute/run_instances.rb +2 -0
  39. data/lib/fog/aws/requests/data_pipeline/delete_pipeline.rb +2 -3
  40. data/lib/fog/aws/requests/data_pipeline/describe_objects.rb +41 -0
  41. data/lib/fog/aws/requests/data_pipeline/get_pipeline_definition.rb +37 -0
  42. data/lib/fog/aws/requests/data_pipeline/query_objects.rb +41 -0
  43. data/lib/fog/aws/requests/elasticache/authorize_cache_security_group_ingress.rb +27 -2
  44. data/lib/fog/aws/requests/elasticache/create_cache_security_group.rb +23 -2
  45. data/lib/fog/aws/requests/elasticache/delete_cache_security_group.rb +10 -1
  46. data/lib/fog/aws/requests/elasticache/describe_cache_security_groups.rb +36 -2
  47. data/lib/fog/aws/requests/redshift/authorize_cluster_security_group_ingress.rb +56 -0
  48. data/lib/fog/aws/requests/redshift/authorize_snapshot_access.rb +43 -0
  49. data/lib/fog/aws/requests/redshift/copy_cluster_snapshot.rb +48 -0
  50. data/lib/fog/aws/requests/redshift/create_cluster.rb +151 -0
  51. data/lib/fog/aws/requests/redshift/create_cluster_parameter_group.rb +54 -0
  52. data/lib/fog/aws/requests/redshift/create_cluster_security_group.rb +42 -0
  53. data/lib/fog/aws/requests/redshift/create_cluster_snapshot.rb +44 -0
  54. data/lib/fog/aws/requests/redshift/create_cluster_subnet_group.rb +50 -0
  55. data/lib/fog/aws/requests/redshift/delete_cluster.rb +51 -0
  56. data/lib/fog/aws/requests/redshift/delete_cluster_parameter_group.rb +34 -0
  57. data/lib/fog/aws/requests/redshift/delete_cluster_security_group.rb +33 -0
  58. data/lib/fog/aws/requests/redshift/delete_cluster_snapshot.rb +44 -0
  59. data/lib/fog/aws/requests/redshift/delete_cluster_subnet_group.rb +38 -0
  60. data/lib/fog/aws/requests/redshift/describe_cluster_parameter_groups.rb +48 -0
  61. data/lib/fog/aws/requests/redshift/describe_cluster_parameters.rb +55 -0
  62. data/lib/fog/aws/requests/redshift/describe_cluster_security_groups.rb +50 -0
  63. data/lib/fog/aws/requests/redshift/describe_cluster_snapshots.rb +73 -0
  64. data/lib/fog/aws/requests/redshift/describe_cluster_subnet_groups.rb +47 -0
  65. data/lib/fog/aws/requests/redshift/describe_cluster_versions.rb +54 -0
  66. data/lib/fog/aws/requests/redshift/describe_clusters.rb +49 -0
  67. data/lib/fog/aws/requests/redshift/describe_default_cluster_parameters.rb +49 -0
  68. data/lib/fog/aws/requests/redshift/describe_events.rb +80 -0
  69. data/lib/fog/aws/requests/redshift/describe_orderable_cluster_options.rb +55 -0
  70. data/lib/fog/aws/requests/redshift/describe_reserved_node_offerings.rb +48 -0
  71. data/lib/fog/aws/requests/redshift/describe_reserved_nodes.rb +48 -0
  72. data/lib/fog/aws/requests/redshift/describe_resize.rb +39 -0
  73. data/lib/fog/aws/requests/redshift/modify_cluster.rb +111 -0
  74. data/lib/fog/aws/requests/redshift/modify_cluster_parameter_group.rb +44 -0
  75. data/lib/fog/aws/requests/redshift/modify_cluster_subnet_group.rb +50 -0
  76. data/lib/fog/aws/requests/redshift/purchase_reserved_node_offering.rb +41 -0
  77. data/lib/fog/aws/requests/redshift/reboot_cluster.rb +37 -0
  78. data/lib/fog/aws/requests/redshift/reset_cluster_parameter_group.rb +57 -0
  79. data/lib/fog/aws/requests/redshift/restore_from_cluster_snapshot.rb +77 -0
  80. data/lib/fog/aws/requests/redshift/revoke_cluster_security_group_ingress.rb +56 -0
  81. data/lib/fog/aws/requests/redshift/revoke_snapshot_access.rb +44 -0
  82. data/lib/fog/aws/requests/sts/get_federation_token.rb +42 -0
  83. data/lib/fog/bin.rb +1 -0
  84. data/lib/fog/bin/aws.rb +4 -0
  85. data/lib/fog/bin/openstack.rb +5 -0
  86. data/lib/fog/bin/rackspace.rb +4 -0
  87. data/lib/fog/bin/vcloud_director.rb +30 -0
  88. data/lib/fog/brightbox/requests/compute/update_server.rb +1 -0
  89. data/lib/fog/cloudsigma/compute.rb +5 -0
  90. data/lib/fog/cloudsigma/models/fwpolicies.rb +21 -0
  91. data/lib/fog/cloudsigma/models/fwpolicy.rb +21 -0
  92. data/lib/fog/cloudsigma/models/rule.rb +21 -0
  93. data/lib/fog/cloudsigma/requests/list_fwpolicies.rb +18 -0
  94. data/lib/fog/compute.rb +7 -4
  95. data/lib/fog/core.rb +1 -0
  96. data/lib/fog/core/errors.rb +3 -0
  97. data/lib/fog/dynect/dns.rb +3 -1
  98. data/lib/fog/dynect/models/dns/records.rb +32 -20
  99. data/lib/fog/dynect/requests/dns/get_all_records.rb +56 -0
  100. data/lib/fog/dynect/requests/dns/get_node_list.rb +1 -1
  101. data/lib/fog/dynect/requests/dns/put_record.rb +76 -0
  102. data/lib/fog/google/models/compute/flavors.rb +2 -2
  103. data/lib/fog/google/requests/compute/get_machine_type.rb +7 -2
  104. data/lib/fog/joyent/compute.rb +1 -1
  105. data/lib/fog/linode/models/compute/server.rb +1 -1
  106. data/lib/fog/local/models/storage/directories.rb +1 -1
  107. data/lib/fog/openstack.rb +1 -0
  108. data/lib/fog/openstack/models/compute/images.rb +10 -2
  109. data/lib/fog/openstack/models/compute/server.rb +2 -0
  110. data/lib/fog/openstack/models/orchestration/stack.rb +52 -0
  111. data/lib/fog/openstack/models/orchestration/stacks.rb +21 -0
  112. data/lib/fog/openstack/orchestration.rb +227 -0
  113. data/lib/fog/openstack/requests/compute/create_server.rb +36 -25
  114. data/lib/fog/openstack/requests/compute/list_images_detail.rb +4 -3
  115. data/lib/fog/openstack/requests/orchestration/create_stack.rb +55 -0
  116. data/lib/fog/openstack/requests/orchestration/delete_stack.rb +36 -0
  117. data/lib/fog/openstack/requests/orchestration/list_stacks.rb +48 -0
  118. data/lib/fog/openstack/requests/orchestration/update_stack.rb +41 -0
  119. data/lib/fog/openstack/requests/storage/get_object.rb +7 -7
  120. data/lib/fog/openstack/storage.rb +2 -2
  121. data/lib/fog/orchestration.rb +25 -0
  122. data/lib/fog/rackspace.rb +1 -0
  123. data/lib/fog/rackspace/auto_scale.rb +132 -0
  124. data/lib/fog/rackspace/block_storage.rb +2 -2
  125. data/lib/fog/rackspace/cdn.rb +23 -23
  126. data/lib/fog/rackspace/compute.rb +2 -2
  127. data/lib/fog/rackspace/compute_v2.rb +2 -2
  128. data/lib/fog/rackspace/databases.rb +2 -2
  129. data/lib/fog/rackspace/dns.rb +14 -16
  130. data/lib/fog/rackspace/examples/compute_v2/create_network.rb +81 -0
  131. data/lib/fog/rackspace/examples/compute_v2/delete_network.rb +78 -0
  132. data/lib/fog/rackspace/load_balancers.rb +2 -2
  133. data/lib/fog/rackspace/mock_data.rb +69 -4
  134. data/lib/fog/rackspace/models/auto_scale/group.rb +207 -0
  135. data/lib/fog/rackspace/models/auto_scale/group_config.rb +60 -0
  136. data/lib/fog/rackspace/models/auto_scale/groups.rb +46 -0
  137. data/lib/fog/rackspace/models/auto_scale/launch_config.rb +44 -0
  138. data/lib/fog/rackspace/models/auto_scale/policies.rb +65 -0
  139. data/lib/fog/rackspace/models/auto_scale/policy.rb +206 -0
  140. data/lib/fog/rackspace/models/auto_scale/webhook.rb +105 -0
  141. data/lib/fog/rackspace/models/auto_scale/webhooks.rb +64 -0
  142. data/lib/fog/rackspace/models/block_storage/volume.rb +2 -1
  143. data/lib/fog/rackspace/models/monitoring/notification.rb +42 -0
  144. data/lib/fog/rackspace/models/monitoring/notifications.rb +30 -0
  145. data/lib/fog/rackspace/monitoring.rb +21 -14
  146. data/lib/fog/rackspace/requests/auto_scale/create_group.rb +61 -0
  147. data/lib/fog/rackspace/requests/auto_scale/create_policy.rb +45 -0
  148. data/lib/fog/rackspace/requests/auto_scale/create_webhook.rb +57 -0
  149. data/lib/fog/rackspace/requests/auto_scale/delete_group.rb +23 -0
  150. data/lib/fog/rackspace/requests/auto_scale/delete_policy.rb +31 -0
  151. data/lib/fog/rackspace/requests/auto_scale/delete_webhook.rb +34 -0
  152. data/lib/fog/rackspace/requests/auto_scale/execute_anonymous_webhook.rb +22 -0
  153. data/lib/fog/rackspace/requests/auto_scale/execute_policy.rb +22 -0
  154. data/lib/fog/rackspace/requests/auto_scale/get_group.rb +29 -0
  155. data/lib/fog/rackspace/requests/auto_scale/get_group_config.rb +30 -0
  156. data/lib/fog/rackspace/requests/auto_scale/get_group_state.rb +62 -0
  157. data/lib/fog/rackspace/requests/auto_scale/get_launch_config.rb +30 -0
  158. data/lib/fog/rackspace/requests/auto_scale/get_policy.rb +35 -0
  159. data/lib/fog/rackspace/requests/auto_scale/get_webhook.rb +39 -0
  160. data/lib/fog/rackspace/requests/auto_scale/list_groups.rb +35 -0
  161. data/lib/fog/rackspace/requests/auto_scale/list_policies.rb +23 -0
  162. data/lib/fog/rackspace/requests/auto_scale/list_webhooks.rb +33 -0
  163. data/lib/fog/rackspace/requests/auto_scale/pause_group_state.rb +23 -0
  164. data/lib/fog/rackspace/requests/auto_scale/resume_group_state.rb +23 -0
  165. data/lib/fog/rackspace/requests/auto_scale/update_group_config.rb +39 -0
  166. data/lib/fog/rackspace/requests/auto_scale/update_launch_config.rb +36 -0
  167. data/lib/fog/rackspace/requests/auto_scale/update_policy.rb +33 -0
  168. data/lib/fog/rackspace/requests/auto_scale/update_webhook.rb +44 -0
  169. data/lib/fog/rackspace/requests/compute_v2/delete_server.rb +2 -2
  170. data/lib/fog/rackspace/requests/load_balancers/create_load_balancer.rb +5 -6
  171. data/lib/fog/rackspace/requests/load_balancers/delete_load_balancer.rb +10 -0
  172. data/lib/fog/rackspace/requests/load_balancers/get_load_balancer.rb +30 -0
  173. data/lib/fog/rackspace/requests/monitoring/create_agent_token.rb +31 -0
  174. data/lib/fog/rackspace/requests/monitoring/create_alarm.rb +32 -0
  175. data/lib/fog/rackspace/requests/monitoring/create_check.rb +31 -0
  176. data/lib/fog/rackspace/requests/monitoring/create_entity.rb +32 -0
  177. data/lib/fog/rackspace/requests/monitoring/create_notification.rb +18 -0
  178. data/lib/fog/rackspace/requests/monitoring/delete_agent_token.rb +32 -0
  179. data/lib/fog/rackspace/requests/monitoring/delete_alarm.rb +27 -0
  180. data/lib/fog/rackspace/requests/monitoring/delete_check.rb +26 -0
  181. data/lib/fog/rackspace/requests/monitoring/delete_entity.rb +27 -0
  182. data/lib/fog/rackspace/requests/monitoring/delete_notification.rb +16 -0
  183. data/lib/fog/rackspace/requests/monitoring/get_agent_token.rb +33 -0
  184. data/lib/fog/rackspace/requests/monitoring/get_alarm.rb +38 -0
  185. data/lib/fog/rackspace/requests/monitoring/get_check.rb +41 -0
  186. data/lib/fog/rackspace/requests/monitoring/get_entity.rb +30 -21
  187. data/lib/fog/rackspace/requests/monitoring/get_notification.rb +50 -0
  188. data/lib/fog/rackspace/requests/monitoring/list_agent_tokens.rb +39 -0
  189. data/lib/fog/rackspace/requests/monitoring/list_alarms.rb +50 -0
  190. data/lib/fog/rackspace/requests/monitoring/list_check_types.rb +72 -0
  191. data/lib/fog/rackspace/requests/monitoring/list_checks.rb +54 -0
  192. data/lib/fog/rackspace/requests/monitoring/list_data_points.rb +37 -0
  193. data/lib/fog/rackspace/requests/monitoring/list_entities.rb +53 -0
  194. data/lib/fog/rackspace/requests/monitoring/list_metrics.rb +65 -0
  195. data/lib/fog/rackspace/requests/monitoring/list_notification_plans.rb +55 -0
  196. data/lib/fog/rackspace/requests/monitoring/list_notifications.rb +67 -0
  197. data/lib/fog/rackspace/requests/monitoring/list_overview.rb +97 -1
  198. data/lib/fog/rackspace/requests/monitoring/update_alarm.rb +33 -2
  199. data/lib/fog/rackspace/requests/monitoring/update_check.rb +32 -2
  200. data/lib/fog/rackspace/requests/monitoring/update_entity.rb +33 -2
  201. data/lib/fog/rackspace/requests/monitoring/update_notification.rb +17 -0
  202. data/lib/fog/rackspace/requests/storage/get_object.rb +7 -9
  203. data/lib/fog/rackspace/service.rb +16 -8
  204. data/lib/fog/rackspace/storage.rb +2 -2
  205. data/lib/fog/vcloud_director.rb +11 -0
  206. data/lib/fog/vcloud_director/README.md +967 -0
  207. data/lib/fog/vcloud_director/compute.rb +398 -0
  208. data/lib/fog/vcloud_director/generators/compute/customization.rb +100 -0
  209. data/lib/fog/vcloud_director/generators/compute/disks.rb +175 -0
  210. data/lib/fog/vcloud_director/generators/compute/metadata.rb +105 -0
  211. data/lib/fog/vcloud_director/generators/compute/vm_network.rb +122 -0
  212. data/lib/fog/vcloud_director/models/compute/catalog.rb +25 -0
  213. data/lib/fog/vcloud_director/models/compute/catalog_item.rb +25 -0
  214. data/lib/fog/vcloud_director/models/compute/catalog_items.rb +32 -0
  215. data/lib/fog/vcloud_director/models/compute/catalogs.rb +32 -0
  216. data/lib/fog/vcloud_director/models/compute/disk.rb +51 -0
  217. data/lib/fog/vcloud_director/models/compute/disks.rb +40 -0
  218. data/lib/fog/vcloud_director/models/compute/network.rb +26 -0
  219. data/lib/fog/vcloud_director/models/compute/networks.rb +31 -0
  220. data/lib/fog/vcloud_director/models/compute/organization.rb +41 -0
  221. data/lib/fog/vcloud_director/models/compute/organizations.rb +30 -0
  222. data/lib/fog/vcloud_director/models/compute/tag.rb +36 -0
  223. data/lib/fog/vcloud_director/models/compute/tags.rb +51 -0
  224. data/lib/fog/vcloud_director/models/compute/task.rb +58 -0
  225. data/lib/fog/vcloud_director/models/compute/tasks.rb +31 -0
  226. data/lib/fog/vcloud_director/models/compute/vapp.rb +56 -0
  227. data/lib/fog/vcloud_director/models/compute/vapps.rb +34 -0
  228. data/lib/fog/vcloud_director/models/compute/vdc.rb +33 -0
  229. data/lib/fog/vcloud_director/models/compute/vdcs.rb +32 -0
  230. data/lib/fog/vcloud_director/models/compute/vm.rb +99 -0
  231. data/lib/fog/vcloud_director/models/compute/vm_customization.rb +40 -0
  232. data/lib/fog/vcloud_director/models/compute/vm_customizations.rb +16 -0
  233. data/lib/fog/vcloud_director/models/compute/vm_network.rb +30 -0
  234. data/lib/fog/vcloud_director/models/compute/vm_networks.rb +21 -0
  235. data/lib/fog/vcloud_director/models/compute/vms.rb +41 -0
  236. data/lib/fog/vcloud_director/parsers/compute/disks.rb +57 -0
  237. data/lib/fog/vcloud_director/parsers/compute/metadata.rb +66 -0
  238. data/lib/fog/vcloud_director/parsers/compute/network.rb +108 -0
  239. data/lib/fog/vcloud_director/parsers/compute/vm.rb +82 -0
  240. data/lib/fog/vcloud_director/parsers/compute/vm_customization.rb +56 -0
  241. data/lib/fog/vcloud_director/parsers/compute/vm_network.rb +111 -0
  242. data/lib/fog/vcloud_director/parsers/compute/vms.rb +96 -0
  243. data/lib/fog/vcloud_director/parsers/compute/vms_by_metadata.rb +41 -0
  244. data/lib/fog/vcloud_director/requests/compute/delete_metadata.rb +20 -0
  245. data/lib/fog/vcloud_director/requests/compute/delete_vapp.rb +20 -0
  246. data/lib/fog/vcloud_director/requests/compute/get_catalog.rb +18 -0
  247. data/lib/fog/vcloud_director/requests/compute/get_catalog_item.rb +18 -0
  248. data/lib/fog/vcloud_director/requests/compute/get_current_session.rb +75 -0
  249. data/lib/fog/vcloud_director/requests/compute/get_href.rb +19 -0
  250. data/lib/fog/vcloud_director/requests/compute/get_metadata.rb +20 -0
  251. data/lib/fog/vcloud_director/requests/compute/get_network.rb +21 -0
  252. data/lib/fog/vcloud_director/requests/compute/get_organization.rb +72 -0
  253. data/lib/fog/vcloud_director/requests/compute/get_organizations.rb +37 -0
  254. data/lib/fog/vcloud_director/requests/compute/get_request.rb +17 -0
  255. data/lib/fog/vcloud_director/requests/compute/get_supported_versions.rb +1160 -0
  256. data/lib/fog/vcloud_director/requests/compute/get_task.rb +18 -0
  257. data/lib/fog/vcloud_director/requests/compute/get_tasks_list.rb +18 -0
  258. data/lib/fog/vcloud_director/requests/compute/get_vapp.rb +18 -0
  259. data/lib/fog/vcloud_director/requests/compute/get_vapp_template.rb +18 -0
  260. data/lib/fog/vcloud_director/requests/compute/get_vdc.rb +154 -0
  261. data/lib/fog/vcloud_director/requests/compute/get_vm.rb +20 -0
  262. data/lib/fog/vcloud_director/requests/compute/get_vm_cpu.rb +18 -0
  263. data/lib/fog/vcloud_director/requests/compute/get_vm_customization.rb +20 -0
  264. data/lib/fog/vcloud_director/requests/compute/get_vm_disks.rb +20 -0
  265. data/lib/fog/vcloud_director/requests/compute/get_vm_memory.rb +18 -0
  266. data/lib/fog/vcloud_director/requests/compute/get_vm_network.rb +20 -0
  267. data/lib/fog/vcloud_director/requests/compute/get_vms.rb +20 -0
  268. data/lib/fog/vcloud_director/requests/compute/get_vms_by_metadata.rb +20 -0
  269. data/lib/fog/vcloud_director/requests/compute/helper.rb +93 -0
  270. data/lib/fog/vcloud_director/requests/compute/instantiate_vapp_template.rb +124 -0
  271. data/lib/fog/vcloud_director/requests/compute/post_task_cancel.rb +25 -0
  272. data/lib/fog/vcloud_director/requests/compute/post_vapp_undeploy.rb +26 -0
  273. data/lib/fog/vcloud_director/requests/compute/post_vm_metadata.rb +29 -0
  274. data/lib/fog/vcloud_director/requests/compute/post_vm_poweroff.rb +18 -0
  275. data/lib/fog/vcloud_director/requests/compute/post_vm_poweron.rb +18 -0
  276. data/lib/fog/vcloud_director/requests/compute/put_metadata_value.rb +25 -0
  277. data/lib/fog/vcloud_director/requests/compute/put_vm_cpu.rb +34 -0
  278. data/lib/fog/vcloud_director/requests/compute/put_vm_customization.rb +24 -0
  279. data/lib/fog/vcloud_director/requests/compute/put_vm_disks.rb +25 -0
  280. data/lib/fog/vcloud_director/requests/compute/put_vm_memory.rb +34 -0
  281. data/lib/fog/vcloud_director/requests/compute/put_vm_network.rb +24 -0
  282. data/tests/aws/models/auto_scaling/groups_test.rb +5 -0
  283. data/tests/aws/models/compute/subnet_tests.rb +1 -1
  284. data/tests/aws/models/compute/subnets_tests.rb +1 -1
  285. data/tests/aws/requests/data_pipeline/helper.rb +38 -8
  286. data/tests/aws/requests/data_pipeline/pipeline_tests.rb +25 -1
  287. data/tests/aws/requests/elasticache/security_group_tests.rb +3 -2
  288. data/tests/aws/requests/redshift/cluster_parameter_group_tests.rb +77 -0
  289. data/tests/aws/requests/redshift/cluster_security_group_tests.rb +44 -0
  290. data/tests/aws/requests/redshift/cluster_snapshot_tests.rb +75 -0
  291. data/tests/aws/requests/redshift/cluster_tests.rb +82 -0
  292. data/tests/aws/requests/sts/get_federation_token_tests.rb +0 -1
  293. data/tests/aws/signed_params_tests.rb +12 -0
  294. data/tests/brightbox/compute/helper.rb +1 -0
  295. data/tests/brightbox/compute/schema.rb +696 -0
  296. data/tests/brightbox/requests/compute/account_tests.rb +7 -7
  297. data/tests/brightbox/requests/compute/api_client_tests.rb +6 -6
  298. data/tests/brightbox/requests/compute/application_test.rb +6 -6
  299. data/tests/brightbox/requests/compute/cloud_ip_tests.rb +7 -7
  300. data/tests/brightbox/requests/compute/firewall_policy_tests.rb +5 -5
  301. data/tests/brightbox/requests/compute/firewall_rule_tests.rb +4 -4
  302. data/tests/brightbox/requests/compute/helper.rb +0 -688
  303. data/tests/brightbox/requests/compute/image_tests.rb +2 -2
  304. data/tests/brightbox/requests/compute/interface_tests.rb +1 -1
  305. data/tests/brightbox/requests/compute/load_balancer_tests.rb +9 -9
  306. data/tests/brightbox/requests/compute/server_group_tests.rb +8 -8
  307. data/tests/brightbox/requests/compute/server_tests.rb +13 -10
  308. data/tests/brightbox/requests/compute/server_type_tests.rb +2 -2
  309. data/tests/brightbox/requests/compute/user_tests.rb +3 -3
  310. data/tests/brightbox/requests/compute/zone_tests.rb +2 -2
  311. data/tests/compute/helper.rb +3 -2
  312. data/tests/dynect/requests/dns/dns_tests.rb +29 -0
  313. data/tests/helpers/mock_helper.rb +3 -0
  314. data/tests/openstack/requests/compute/server_tests.rb +30 -0
  315. data/tests/openstack/requests/orchestration/stack_tests.rb +30 -0
  316. data/tests/rackspace/auto_scale_tests.rb +84 -0
  317. data/tests/rackspace/models/auto_scale/group.rb +19 -0
  318. data/tests/rackspace/models/auto_scale/groups.rb +13 -0
  319. data/tests/rackspace/models/auto_scale/policies.rb +23 -0
  320. data/tests/rackspace/models/auto_scale/policy.rb +29 -0
  321. data/tests/rackspace/models/auto_scale/webhook.rb +35 -0
  322. data/tests/rackspace/models/auto_scale/webhooks.rb +28 -0
  323. data/tests/rackspace/models/monitoring/notification_tests.rb +19 -0
  324. data/tests/rackspace/models/monitoring/notifications_tests.rb +10 -0
  325. data/tests/rackspace/requests/auto_scale/config_tests.rb +51 -0
  326. data/tests/rackspace/requests/auto_scale/group_tests.rb +38 -0
  327. data/tests/rackspace/requests/auto_scale/helper.rb +181 -0
  328. data/tests/rackspace/requests/auto_scale/policy_tests.rb +61 -0
  329. data/tests/rackspace/requests/auto_scale/webhook_tests.rb +49 -0
  330. data/tests/rackspace/requests/compute_v2/address_tests.rb +1 -1
  331. data/tests/rackspace/requests/monitoring/agent_tests.rb +0 -1
  332. data/tests/rackspace/requests/monitoring/alarm_tests.rb +3 -3
  333. data/tests/rackspace/requests/monitoring/check_tests.rb +0 -1
  334. data/tests/rackspace/requests/monitoring/entity_tests.rb +3 -12
  335. data/tests/rackspace/requests/monitoring/list_tests.rb +18 -6
  336. data/tests/rackspace/requests/monitoring/notification_tests.rb +46 -0
  337. data/tests/vcloud_director/models/compute/catalog_items_tests.rb +42 -0
  338. data/tests/vcloud_director/models/compute/catalogs_tests.rb +42 -0
  339. data/tests/vcloud_director/models/compute/helper.rb +67 -0
  340. data/tests/vcloud_director/models/compute/organizations_tests.rb +22 -0
  341. data/tests/vcloud_director/models/compute/vapp_life_cycle_tests.rb +98 -0
  342. data/tests/vcloud_director/models/compute/vapp_tests.rb +42 -0
  343. data/tests/vcloud_director/models/compute/vdcs_tests.rb +45 -0
  344. data/tests/vcloud_director/models/compute/vms_tests.rb +89 -0
  345. data/tests/vcloud_director/models/tools/reduced_vcr_requests.rb +27 -0
  346. data/tests/vcloud_director/requests/compute/organization_tests.rb +48 -0
  347. data/tests/vcloud_director/requests/compute/session_tests.rb +29 -0
  348. data/tests/vcloud_director/requests/compute/vdc_tests.rb +90 -0
  349. data/tests/vcloud_director/requests/compute/versions_tests.rb +28 -0
  350. metadata +342 -43
@@ -0,0 +1,60 @@
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module Rackspace
5
+ class AutoScale
6
+ class GroupConfig < Fog::Model
7
+
8
+ # @!attribute [r] group
9
+ # @return [Fog::Rackspace::AutoScale::Group] The parent group
10
+ attribute :group
11
+
12
+ # @!attribute [r] name
13
+ # @return [String] The name of the group
14
+ attribute :name
15
+
16
+ # @!attribute [r] cooldown
17
+ # @return [String] The group's cooldown
18
+ attribute :cooldown
19
+
20
+ # @!attribute [r] min_entities
21
+ # @return [Fixnum] The minimum amount of units which should exist in the group
22
+ attribute :min_entities, :aliases => 'minEntities'
23
+
24
+ # @!attribute [r] max_entities
25
+ # @return [Fixnum] The maximum amount of units which should exist in the group
26
+ attribute :max_entities, :aliases => 'maxEntities'
27
+
28
+ # @!attribute [r] metadata
29
+ # @return [Hash] The group's metadata
30
+ attribute :metadata
31
+
32
+ # Update this group's configuration
33
+ #
34
+ # @return [Boolean] returns true if group config has been updated
35
+ #
36
+ # @raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404
37
+ # @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400
38
+ # @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500
39
+ # @raise [Fog::Rackspace::AutoScale:::ServiceError]
40
+ #
41
+ # @see http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/PUT_putGroupConfig_v1.0__tenantId__groups__groupId__config_Configurations.html
42
+ def update
43
+
44
+ options = {}
45
+
46
+ options['name'] = name unless name.nil?
47
+ options['cooldown'] = cooldown unless cooldown.nil?
48
+ options['minEntities'] = min_entities
49
+ options['maxEntities'] = max_entities
50
+ options['metadata'] = metadata unless metadata.nil?
51
+
52
+ data = service.update_group_config(group.id, options)
53
+ merge_attributes(data.body)
54
+ true
55
+ end
56
+
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,46 @@
1
+ require 'fog/core/collection'
2
+ require 'fog/rackspace/models/auto_scale/group'
3
+
4
+ module Fog
5
+ module Rackspace
6
+ class AutoScale
7
+ class Groups < Fog::Collection
8
+
9
+ model Fog::Rackspace::AutoScale::Group
10
+
11
+ # Returns list of autoscale grouos
12
+ #
13
+ # @return [Fog::Rackspace::AutoScale::Groups] Retrieves a list images.
14
+ #
15
+ # @raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404
16
+ # @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400
17
+ # @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500
18
+ # @raise [Fog::Rackspace::AutoScale:::ServiceError]
19
+ #
20
+ # @see http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/GET_getGroups_v1.0__tenantId__groups_Groups.html
21
+ def all
22
+ data = service.list_groups.body['groups']
23
+ load(data)
24
+ end
25
+
26
+ # Returns an individual autoscale group
27
+ #
28
+ # @return [Fog::Rackspace::AutoScale::Group] Retrieves a list images.
29
+ # @return nil if not found
30
+ #
31
+ # @raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404
32
+ # @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400
33
+ # @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500
34
+ # @raise [Fog::Rackspace::AutoScale:::ServiceError]
35
+ #
36
+ # @see http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/GET_getGroupManifest_v1.0__tenantId__groups__groupId__Groups.html
37
+ def get(group_id)
38
+ data = service.get_group(group_id).body['group']
39
+ new(data)
40
+ rescue Fog::Rackspace::AutoScale::NotFound
41
+ nil
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,44 @@
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module Rackspace
5
+ class AutoScale
6
+ class LaunchConfig < Fog::Model
7
+
8
+ # @!attribute [r] group
9
+ # @return [Fog::Rackspace::AutoScale::Group] The parent group
10
+ attribute :group
11
+
12
+ # @!attribute [r] type
13
+ # @return [Fog::Rackspace::AutoScale::Group] The type of operation (usually "launch_server")
14
+ attribute :type
15
+
16
+ # @!attribute [r] args
17
+ # @return [Fog::Rackspace::AutoScale::Group] The arguments for the operation
18
+ attribute :args
19
+
20
+ # Update this group's launch configuration
21
+ #
22
+ # @return [Boolean] returns true if launch config has been updated
23
+ #
24
+ # @raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404
25
+ # @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400
26
+ # @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500
27
+ # @raise [Fog::Rackspace::AutoScale:::ServiceError]
28
+ #
29
+ # @see http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/PUT_putLaunchConfig_v1.0__tenantId__groups__groupId__launch_Configurations.html
30
+ def update
31
+
32
+ options = {}
33
+ options['type'] = type unless type.nil?
34
+ options['args'] = args unless args.nil?
35
+
36
+ data = service.update_launch_config(group.id, options)
37
+ merge_attributes(data.body['launchConfiguration'])
38
+ true
39
+ end
40
+
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,65 @@
1
+ require 'fog/core/collection'
2
+ require 'fog/rackspace/models/auto_scale/policy'
3
+
4
+ module Fog
5
+ module Rackspace
6
+ class AutoScale
7
+ class Policies < Fog::Collection
8
+
9
+ model Fog::Rackspace::AutoScale::Policy
10
+
11
+ attr_accessor :group
12
+
13
+ # Returns list of autoscale policies
14
+ #
15
+ # @return [Fog::Rackspace::AutoScale::Policies] Retrieves policies
16
+ #
17
+ # @raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404
18
+ # @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400
19
+ # @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500
20
+ # @raise [Fog::Rackspace::AutoScale:::ServiceError]
21
+ #
22
+ # @see http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/GET_getPolicies_v1.0__tenantId__groups__groupId__policies_Policies.html
23
+ def all
24
+ data = service.list_policies(group.id).body['policies']
25
+ load(data)
26
+ end
27
+
28
+ # Returns an individual autoscale policy
29
+ #
30
+ # @return [Fog::Rackspace::AutoScale::Group] Retrieves a policy
31
+ # @return nil if not found
32
+ #
33
+ # @raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404
34
+ # @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400
35
+ # @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500
36
+ # @raise [Fog::Rackspace::AutoScale:::ServiceError]
37
+ #
38
+ # @see http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/GET_getPolicy_v1.0__tenantId__groups__groupId__policies__policyId__Policies.html
39
+ def get(policy_id)
40
+ data = service.get_policy(group.id, policy_id).body['policy']
41
+ data['group_id'] = group.id
42
+ new(data)
43
+ rescue Fog::Rackspace::AutoScale::NotFound
44
+ nil
45
+ end
46
+
47
+ # Create an autoscale policy
48
+ #
49
+ # @return [Fog::Rackspace::AutoScale::Policy] Returns the new policy
50
+ #
51
+ # @raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404
52
+ # @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400
53
+ # @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500
54
+ # @raise [Fog::Rackspace::AutoScale:::ServiceError]
55
+ #
56
+ # @see http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/POST_createPolicies_v1.0__tenantId__groups__groupId__policies_Policies.html
57
+ def create(attributes = {})
58
+ attributes['group_id'] = group.id
59
+ super(attributes)
60
+ end
61
+
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,206 @@
1
+ require 'fog/core/model'
2
+ require 'fog/rackspace/models/auto_scale/webhooks'
3
+
4
+ module Fog
5
+ module Rackspace
6
+ class AutoScale
7
+ class Policy < Fog::Model
8
+
9
+ # @!attribute [r] id
10
+ # @return [String] The policy id
11
+ identity :id
12
+
13
+ # @!attribute [r] group_id
14
+ # @return [String] The autoscale group's id
15
+ attribute :group_id
16
+
17
+ # @!attribute [r] links
18
+ # @return [Array] Policy links
19
+ attribute :links
20
+
21
+ # @!attribute [r] name
22
+ # @return [String] The policy's name
23
+ attribute :name
24
+
25
+ # @!attribute [r] change
26
+ # @return [Fixnum] The fixed change to the autoscale group's number of units
27
+ attribute :change
28
+
29
+ # @!attribute [r] changePercent
30
+ # @return [Fixnum] The percentage change to the autoscale group's number of units
31
+ attribute :change_percent, :aliases => 'changePercent'
32
+
33
+ # @!attribute [r] cooldown
34
+ # @return [Fixnum] The policy's cooldown
35
+ attribute :cooldown
36
+
37
+ # @!attribute [r] type
38
+ # @note Can only be "webhook", "schedule" or "cloud_monitoring"
39
+ # @return [String] The policy's type
40
+ attribute :type
41
+
42
+ # @!attribute [r] args
43
+ # @example See below:
44
+ # - "cron": "23 * * * *"
45
+ # - "at": "2013-06-05T03:12Z"
46
+ # - "check": {
47
+ # "label": "Website check 1",
48
+ # "type": "remote.http",
49
+ # "details": {
50
+ # "url": "http://www.example.com",
51
+ # "method": "GET"
52
+ # },
53
+ # "monitoring_zones_poll": [
54
+ # "mzA"
55
+ # ],
56
+ # "timeout": 30,
57
+ # "period": 100,
58
+ # "target_alias": "default"
59
+ # },
60
+ # "alarm_criteria": {
61
+ # "criteria": "if (metric[\"duration\"] >= 2) { return new AlarmStatus(OK); } return new AlarmStatus(CRITICAL);"
62
+ # }
63
+ #
64
+ # @return [String] Arguments used for the policy
65
+ attribute :args
66
+
67
+ # @!attribute [r] desiredCapacity
68
+ # @return [Fixnum] The desired capacity of the group
69
+ attribute :desired_capacity, :aliases => 'desiredCapacity'
70
+
71
+ # Basic sanity check to make sure attributes are valid
72
+ #
73
+ # @raise ArgumentError If no type is set
74
+ # @raise ArgumentError If args attribute is missing required keys (if type == 'schedule')
75
+
76
+ # @return [Boolean] Returns true if the check passes
77
+ def check_attributes
78
+ raise ArgumentError, "This #{self.name} resource requires the #{type} argument" if type.nil?
79
+
80
+ if type == 'schedule'
81
+ raise ArgumentError, "This #{self.name} resource requires the args[cron] OR args[at] argument" if args['cron'].nil? && args['at'].nil?
82
+ end
83
+
84
+ true
85
+ end
86
+
87
+ # Creates policy
88
+ # * requires attributes: :name, :type, :cooldown
89
+ #
90
+ # @return [Boolean] returns true if policy is being created
91
+ #
92
+ # @raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404
93
+ # @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400
94
+ # @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500
95
+ # @raise [Fog::Rackspace::AutoScale:::ServiceError]
96
+ #
97
+ # @see Policies#create
98
+ # @see http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/POST_createPolicies_v1.0__tenantId__groups__groupId__policies_Policies.html
99
+ def save
100
+ requires :name, :type, :cooldown
101
+
102
+ check_attributes
103
+
104
+ options = {}
105
+ options['name'] = name unless name.nil?
106
+ options['change'] = change unless change.nil?
107
+ options['changePercent'] = change_percent unless change_percent.nil?
108
+ options['cooldown'] = cooldown unless cooldown.nil?
109
+ options['type'] = type unless type.nil?
110
+ options['desiredCapacity'] = desired_capacity unless desired_capacity.nil?
111
+
112
+ if type == 'schedule'
113
+ options['args'] = args
114
+ end
115
+
116
+ data = service.create_policy(group_id, options)
117
+ merge_attributes(data.body['policies'][0])
118
+ true
119
+ end
120
+
121
+ # Updates the policy
122
+ #
123
+ # @return [Boolean] returns true if policy has started updating
124
+ #
125
+ # @raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404
126
+ # @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400
127
+ # @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500
128
+ # @raise [Fog::Rackspace::AutoScale:::ServiceError]
129
+ #
130
+ # @see http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/PUT_putPolicy_v1.0__tenantId__groups__groupId__policies__policyId__Policies.html
131
+ def update
132
+ requires :identity
133
+
134
+ check_attributes
135
+
136
+ options = {}
137
+ options['name'] = name unless name.nil?
138
+ options['change'] = change unless change.nil?
139
+ options['changePercent'] = change_percent unless change_percent.nil?
140
+ options['cooldown'] = cooldown unless cooldown.nil?
141
+ options['type'] = type unless type.nil?
142
+ options['desiredCapacity'] = desired_capacity unless desired_capacity.nil?
143
+
144
+ if type == 'schedule'
145
+ options['args'] = args
146
+ end
147
+
148
+ data = service.update_policy(group_id, identity, options)
149
+ merge_attributes(data.body)
150
+ true
151
+ end
152
+
153
+ # Destroy the policy
154
+ #
155
+ # @return [Boolean] returns true if policy has started deleting
156
+ #
157
+ # @raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404
158
+ # @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400
159
+ # @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500
160
+ # @raise [Fog::Rackspace::AutoScale:::ServiceError]
161
+ #
162
+ # @see http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/DELETE_deletePolicy_v1.0__tenantId__groups__groupId__policies__policyId__Policies.html
163
+ def destroy
164
+ requires :identity
165
+ service.delete_policy(group_id, identity)
166
+ true
167
+ end
168
+
169
+ # Executes the scaling policy
170
+ #
171
+ # @return [Boolean] returns true if policy has been executed
172
+ #
173
+ # @raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404
174
+ # @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400
175
+ # @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500
176
+ # @raise [Fog::Rackspace::AutoScale:::ServiceError]
177
+ #
178
+ # @see http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/POST_executePolicy_v1.0__tenantId__groups__groupId__policies__policyId__execute_Policies.html
179
+ def execute
180
+ requires :identity
181
+ service.execute_policy(group_id, identity)
182
+ true
183
+ end
184
+
185
+ # Gets the associated webhooks for this policy
186
+ #
187
+ # @return [Fog::Rackspace::AutoScale::Webhooks] returns Webhooks
188
+ #
189
+ # @raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404
190
+ # @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400
191
+ # @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500
192
+ # @raise [Fog::Rackspace::AutoScale:::ServiceError]
193
+ def webhooks
194
+ data = service.list_webhooks(group_id, self.id)
195
+
196
+ Fog::Rackspace::AutoScale::Webhooks.new({
197
+ :service => service,
198
+ :policy_id => self.id,
199
+ :group_id => group_id
200
+ }).merge_attributes(data.body)
201
+ end
202
+
203
+ end
204
+ end
205
+ end
206
+ end
@@ -0,0 +1,105 @@
1
+ require 'fog/core/model'
2
+
3
+ module Fog
4
+ module Rackspace
5
+ class AutoScale
6
+ class Webhook < Fog::Model
7
+
8
+ # @!attribute [r] id
9
+ # @return [String] The webhook id
10
+ identity :id
11
+
12
+ # @!attribute [r] id
13
+ # @return [String] The group id (i.e. grand-parent)
14
+ attribute :group_id
15
+
16
+ # @!attribute [r] id
17
+ # @return [String] The policy id (i.e. parent)
18
+ attribute :policy_id
19
+
20
+ # @!attribute [r] name
21
+ # @return [String] The webhook name
22
+ attribute :name
23
+
24
+ # @!attribute [r] metadata
25
+ # @return [Hash] The metadata
26
+ attribute :metadata
27
+
28
+ # @!attribute [r] links
29
+ # @return [Array] The webhook links
30
+ attribute :links
31
+
32
+ # Creates webhook
33
+ # * requires attribute: :name
34
+ #
35
+ # @return [Boolean] returns true if webhook is being created
36
+ #
37
+ # @raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404
38
+ # @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400
39
+ # @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500
40
+ # @raise [Fog::Rackspace::AutoScale:::ServiceError]
41
+ #
42
+ # @see Webhooks#create
43
+ # @see
44
+ def save
45
+ requires :name
46
+
47
+ options = {}
48
+ options['name'] = name if name
49
+ options['metadata'] = metadata if metadata
50
+
51
+ data = service.create_webhook(group_id, policy_id, options)
52
+ merge_attributes(data.body['webhooks'][0])
53
+ true
54
+ end
55
+
56
+ # Updates the webhook
57
+ #
58
+ # @return [Boolean] returns true if webhook has started updating
59
+ #
60
+ # @raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404
61
+ # @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400
62
+ # @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500
63
+ # @raise [Fog::Rackspace::AutoScale:::ServiceError]
64
+ #
65
+ # @see http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/PUT_putWebhook_v1.0__tenantId__groups__groupId__policies__policyId__webhooks__webhookId__Webhooks.html
66
+ def update
67
+ requires :identity
68
+
69
+ options = {
70
+ 'name' => name,
71
+ 'metadata' => metadata
72
+ }
73
+
74
+ data = service.update_webhook(group_id, policy_id, identity, options)
75
+ merge_attributes(data.body)
76
+ end
77
+
78
+ # Destroy the webhook
79
+ #
80
+ # @return [Boolean] returns true if webhook has started deleting
81
+ #
82
+ # @raise [Fog::Rackspace::AutoScale:::NotFound] - HTTP 404
83
+ # @raise [Fog::Rackspace::AutoScale:::BadRequest] - HTTP 400
84
+ # @raise [Fog::Rackspace::AutoScale:::InternalServerError] - HTTP 500
85
+ # @raise [Fog::Rackspace::AutoScale:::ServiceError]
86
+ #
87
+ # @see http://docs.rackspace.com/cas/api/v1.0/autoscale-devguide/content/DELETE_deleteWebhook_v1.0__tenantId__groups__groupId__policies__policyId__webhooks__webhookId__Webhooks.html
88
+ def destroy
89
+ requires :identity
90
+ service.delete_webhook(group_id, policy_id, identity)
91
+ true
92
+ end
93
+
94
+ # Retrieves the URL for anonymously executing the policy webhook
95
+ # @return [String] the URL
96
+ def execution_url
97
+ requires :links
98
+ link = links.find { |l| l['rel'] == 'capability' }
99
+ link['href'] rescue nil
100
+ end
101
+
102
+ end
103
+ end
104
+ end
105
+ end