fog 0.9.0 → 0.10.0

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 (428) hide show
  1. data/Rakefile +7 -4
  2. data/bin/fog +4 -1
  3. data/changelog.txt +464 -0
  4. data/docs/index.markdown +2 -2
  5. data/fog.gemspec +11 -11
  6. data/lib/fog.rb +1 -1
  7. data/lib/fog/aws/auto_scaling.rb +221 -0
  8. data/lib/fog/aws/cloud_formation.rb +1 -1
  9. data/lib/fog/aws/cloud_watch.rb +110 -0
  10. data/lib/fog/aws/elb.rb +58 -26
  11. data/lib/fog/aws/iam.rb +65 -13
  12. data/lib/fog/aws/models/auto_scaling/activities.rb +30 -0
  13. data/lib/fog/aws/models/auto_scaling/activity.rb +29 -0
  14. data/lib/fog/aws/models/auto_scaling/configuration.rb +63 -0
  15. data/lib/fog/aws/models/auto_scaling/configurations.rb +35 -0
  16. data/lib/fog/aws/models/auto_scaling/group.rb +140 -0
  17. data/lib/fog/aws/models/auto_scaling/groups.rb +35 -0
  18. data/lib/fog/aws/models/auto_scaling/instance.rb +60 -0
  19. data/lib/fog/aws/models/auto_scaling/instances.rb +30 -0
  20. data/lib/fog/aws/models/cloud_watch/metric.rb +14 -0
  21. data/lib/fog/aws/models/cloud_watch/metric_statistic.rb +46 -0
  22. data/lib/fog/aws/models/cloud_watch/metric_statistics.rb +23 -0
  23. data/lib/fog/aws/models/cloud_watch/metrics.rb +32 -0
  24. data/lib/fog/aws/models/elb/listener.rb +6 -0
  25. data/lib/fog/aws/models/elb/listeners.rb +2 -2
  26. data/lib/fog/aws/models/elb/load_balancer.rb +8 -5
  27. data/lib/fog/aws/models/rds/server.rb +3 -1
  28. data/lib/fog/aws/parsers/auto_scaling/basic.rb +28 -0
  29. data/lib/fog/aws/parsers/auto_scaling/describe_adjustment_types.rb +39 -0
  30. data/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_groups.rb +126 -0
  31. data/lib/fog/aws/parsers/auto_scaling/describe_auto_scaling_instances.rb +43 -0
  32. data/lib/fog/aws/parsers/auto_scaling/describe_launch_configurations.rb +94 -0
  33. data/lib/fog/aws/parsers/auto_scaling/describe_metric_collection_types.rb +66 -0
  34. data/lib/fog/aws/parsers/auto_scaling/describe_policies.rb +66 -0
  35. data/lib/fog/aws/parsers/auto_scaling/describe_scaling_activities.rb +47 -0
  36. data/lib/fog/aws/parsers/auto_scaling/describe_scaling_process_types.rb +39 -0
  37. data/lib/fog/aws/parsers/auto_scaling/describe_scheduled_actions.rb +46 -0
  38. data/lib/fog/aws/parsers/auto_scaling/put_scaling_policy.rb +30 -0
  39. data/lib/fog/aws/parsers/auto_scaling/terminate_instance_in_auto_scaling_group.rb +35 -0
  40. data/lib/fog/aws/parsers/cloud_watch/get_metric_statistics.rb +42 -0
  41. data/lib/fog/aws/parsers/cloud_watch/list_metrics.rb +58 -0
  42. data/lib/fog/aws/parsers/cloud_watch/put_metric_data.rb +26 -0
  43. data/lib/fog/aws/parsers/elb/describe_load_balancers.rb +1 -1
  44. data/lib/fog/aws/parsers/iam/get_group_policy.rb +27 -0
  45. data/lib/fog/aws/parsers/iam/list_account_aliases.rb +28 -0
  46. data/lib/fog/aws/parsers/rds/db_engine_version_parser.rb +35 -0
  47. data/lib/fog/aws/parsers/rds/db_parser.rb +1 -1
  48. data/lib/fog/aws/parsers/rds/describe_db_engine_versions.rb +39 -0
  49. data/lib/fog/aws/parsers/rds/describe_db_reserved_instances.rb +43 -0
  50. data/lib/fog/aws/parsers/sns/add_permission.rb +24 -0
  51. data/lib/fog/aws/parsers/sns/confirm_subscription.rb +24 -0
  52. data/lib/fog/aws/parsers/sns/create_topic.rb +24 -0
  53. data/lib/fog/aws/parsers/sns/delete_topic.rb +24 -0
  54. data/lib/fog/aws/parsers/sns/get_topic_attributes.rb +32 -0
  55. data/lib/fog/aws/parsers/sns/list_subscriptions.rb +29 -0
  56. data/lib/fog/aws/parsers/sns/list_topics.rb +26 -0
  57. data/lib/fog/aws/parsers/sns/publish.rb +24 -0
  58. data/lib/fog/aws/parsers/sns/remove_permission.rb +24 -0
  59. data/lib/fog/aws/parsers/sns/set_topic_attributes.rb +24 -0
  60. data/lib/fog/aws/parsers/sns/subscribe.rb +24 -0
  61. data/lib/fog/aws/parsers/sns/unsubscribe.rb +24 -0
  62. data/lib/fog/aws/parsers/sqs/basic.rb +23 -0
  63. data/lib/fog/aws/parsers/sqs/create_queue.rb +26 -0
  64. data/lib/fog/aws/parsers/sqs/get_queue_attributes.rb +35 -0
  65. data/lib/fog/aws/parsers/sqs/list_queues.rb +25 -0
  66. data/lib/fog/aws/parsers/sqs/receive_message.rb +41 -0
  67. data/lib/fog/aws/parsers/sqs/send_message.rb +28 -0
  68. data/lib/fog/aws/rds.rb +3 -1
  69. data/lib/fog/aws/requests/auto_scaling/create_auto_scaling_group.rb +108 -0
  70. data/lib/fog/aws/requests/auto_scaling/create_launch_configuration.rb +105 -0
  71. data/lib/fog/aws/requests/auto_scaling/delete_auto_scaling_group.rb +45 -0
  72. data/lib/fog/aws/requests/auto_scaling/delete_launch_configuration.rb +48 -0
  73. data/lib/fog/aws/requests/auto_scaling/delete_policy.rb +47 -0
  74. data/lib/fog/aws/requests/auto_scaling/delete_scheduled_action.rb +48 -0
  75. data/lib/fog/aws/requests/auto_scaling/describe_adjustment_types.rb +52 -0
  76. data/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_groups.rb +128 -0
  77. data/lib/fog/aws/requests/auto_scaling/describe_auto_scaling_instances.rb +96 -0
  78. data/lib/fog/aws/requests/auto_scaling/describe_launch_configurations.rb +108 -0
  79. data/lib/fog/aws/requests/auto_scaling/describe_metric_collection_types.rb +60 -0
  80. data/lib/fog/aws/requests/auto_scaling/describe_policies.rb +85 -0
  81. data/lib/fog/aws/requests/auto_scaling/describe_scaling_activities.rb +88 -0
  82. data/lib/fog/aws/requests/auto_scaling/describe_scaling_process_types.rb +54 -0
  83. data/lib/fog/aws/requests/auto_scaling/describe_scheduled_actions.rb +83 -0
  84. data/lib/fog/aws/requests/auto_scaling/disable_metrics_collection.rb +56 -0
  85. data/lib/fog/aws/requests/auto_scaling/enable_metrics_collection.rb +66 -0
  86. data/lib/fog/aws/requests/auto_scaling/execute_policy.rb +50 -0
  87. data/lib/fog/aws/requests/auto_scaling/put_scaling_policy.rb +66 -0
  88. data/lib/fog/aws/requests/auto_scaling/put_scheduled_update_group_action.rb +57 -0
  89. data/lib/fog/aws/requests/auto_scaling/resume_processes.rb +50 -0
  90. data/lib/fog/aws/requests/auto_scaling/set_desired_capacity.rb +87 -0
  91. data/lib/fog/aws/requests/auto_scaling/set_instance_health.rb +55 -0
  92. data/lib/fog/aws/requests/auto_scaling/suspend_processes.rb +57 -0
  93. data/lib/fog/aws/requests/auto_scaling/terminate_instance_in_auto_scaling_group.rb +65 -0
  94. data/lib/fog/aws/requests/auto_scaling/update_auto_scaling_group.rb +79 -0
  95. data/lib/fog/aws/requests/cloud_watch/get_metric_statistics.rb +48 -0
  96. data/lib/fog/aws/requests/cloud_watch/list_metrics.rb +38 -0
  97. data/lib/fog/aws/requests/cloud_watch/put_metric_data.rb +73 -0
  98. data/lib/fog/aws/requests/elb/configure_health_check.rb +24 -0
  99. data/lib/fog/aws/requests/elb/create_app_cookie_stickiness_policy.rb +21 -0
  100. data/lib/fog/aws/requests/elb/create_lb_cookie_stickiness_policy.rb +21 -0
  101. data/lib/fog/aws/requests/elb/create_load_balancer.rb +55 -0
  102. data/lib/fog/aws/requests/elb/create_load_balancer_listeners.rb +28 -0
  103. data/lib/fog/aws/requests/elb/delete_load_balancer.rb +18 -0
  104. data/lib/fog/aws/requests/elb/delete_load_balancer_listeners.rb +20 -1
  105. data/lib/fog/aws/requests/elb/delete_load_balancer_policy.rb +23 -0
  106. data/lib/fog/aws/requests/elb/deregister_instances_from_load_balancer.rb +21 -5
  107. data/lib/fog/aws/requests/elb/describe_instance_health.rb +35 -0
  108. data/lib/fog/aws/requests/elb/describe_load_balancers.rb +29 -0
  109. data/lib/fog/aws/requests/elb/disable_availability_zones_for_load_balancer.rb +18 -5
  110. data/lib/fog/aws/requests/elb/enable_availability_zones_for_load_balancer.rb +18 -3
  111. data/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb +22 -5
  112. data/lib/fog/aws/requests/elb/set_load_balancer_listener_ssl_certificate.rb +40 -0
  113. data/lib/fog/aws/requests/elb/set_load_balancer_policies_of_listener.rb +37 -0
  114. data/lib/fog/aws/requests/iam/create_account_alias.rb +19 -0
  115. data/lib/fog/aws/requests/iam/delete_account_alias.rb +19 -0
  116. data/lib/fog/aws/requests/iam/delete_server_certificate.rb +14 -0
  117. data/lib/fog/aws/requests/iam/get_group_policy.rb +36 -0
  118. data/lib/fog/aws/requests/iam/get_server_certificate.rb +50 -0
  119. data/lib/fog/aws/requests/iam/list_account_aliases.rb +18 -0
  120. data/lib/fog/aws/requests/iam/list_server_certificates.rb +12 -0
  121. data/lib/fog/aws/requests/iam/put_group_policy.rb +1 -1
  122. data/lib/fog/aws/requests/iam/put_user_policy.rb +1 -1
  123. data/lib/fog/aws/requests/iam/upload_server_certificate.rb +53 -5
  124. data/lib/fog/aws/requests/rds/describe_db_engine_versions.rb +34 -0
  125. data/lib/fog/aws/requests/rds/describe_db_reserved_instances.rb +42 -0
  126. data/lib/fog/aws/requests/simpledb/get_attributes.rb +29 -17
  127. data/lib/fog/aws/requests/simpledb/select.rb +11 -3
  128. data/lib/fog/aws/requests/sns/add_permission.rb +26 -0
  129. data/lib/fog/aws/requests/sns/confirm_subscription.rb +33 -0
  130. data/lib/fog/aws/requests/sns/create_topic.rb +29 -0
  131. data/lib/fog/aws/requests/sns/delete_topic.rb +29 -0
  132. data/lib/fog/aws/requests/sns/get_topic_attributes.rb +29 -0
  133. data/lib/fog/aws/requests/sns/list_subscriptions.rb +29 -0
  134. data/lib/fog/aws/requests/sns/list_subscriptions_by_topic.rb +31 -0
  135. data/lib/fog/aws/requests/sns/list_topics.rb +29 -0
  136. data/lib/fog/aws/requests/sns/publish.rb +34 -0
  137. data/lib/fog/aws/requests/sns/remove_permission.rb +26 -0
  138. data/lib/fog/aws/requests/sns/set_topic_attributes.rb +33 -0
  139. data/lib/fog/aws/requests/sns/subscribe.rb +33 -0
  140. data/lib/fog/aws/requests/sns/unsubscribe.rb +29 -0
  141. data/lib/fog/aws/requests/sqs/change_message_visibility.rb +33 -0
  142. data/lib/fog/aws/requests/sqs/create_queue.rb +31 -0
  143. data/lib/fog/aws/requests/sqs/delete_message.rb +31 -0
  144. data/lib/fog/aws/requests/sqs/delete_queue.rb +29 -0
  145. data/lib/fog/aws/requests/sqs/get_queue_attributes.rb +31 -0
  146. data/lib/fog/aws/requests/sqs/list_queues.rb +28 -0
  147. data/lib/fog/aws/requests/sqs/receive_message.rb +34 -0
  148. data/lib/fog/aws/requests/sqs/send_message.rb +31 -0
  149. data/lib/fog/aws/requests/sqs/set_queue_attributes.rb +33 -0
  150. data/lib/fog/aws/sns.rb +112 -0
  151. data/lib/fog/aws/sqs.rb +115 -0
  152. data/lib/fog/bin.rb +1 -0
  153. data/lib/fog/bin/aws.rb +16 -0
  154. data/lib/fog/bin/brightbox.rb +1 -1
  155. data/lib/fog/bin/ninefold.rb +5 -0
  156. data/lib/fog/bin/vcloud.rb +30 -0
  157. data/lib/fog/bin/virtual_box.rb +5 -1
  158. data/lib/fog/cdn/rackspace.rb +16 -8
  159. data/lib/fog/compute.rb +4 -1
  160. data/lib/fog/compute/aws.rb +16 -4
  161. data/lib/fog/compute/bluebox.rb +2 -2
  162. data/lib/fog/compute/brightbox.rb +4 -4
  163. data/lib/fog/compute/go_grid.rb +2 -2
  164. data/lib/fog/compute/linode.rb +2 -2
  165. data/lib/fog/compute/models/aws/server.rb +17 -3
  166. data/lib/fog/compute/models/aws/spot_request.rb +93 -0
  167. data/lib/fog/compute/models/aws/spot_requests.rb +48 -0
  168. data/lib/fog/compute/models/aws/volume.rb +13 -13
  169. data/lib/fog/compute/models/bluebox/server.rb +4 -4
  170. data/lib/fog/compute/models/go_grid/server.rb +2 -2
  171. data/lib/fog/compute/models/ninefold/server.rb +18 -14
  172. data/lib/fog/compute/models/rackspace/flavor.rb +3 -2
  173. data/lib/fog/compute/models/rackspace/server.rb +2 -2
  174. data/lib/fog/compute/models/slicehost/server.rb +1 -1
  175. data/lib/fog/compute/models/vcloud/catalog.rb +22 -0
  176. data/lib/fog/compute/models/vcloud/catalog_item.rb +29 -0
  177. data/lib/fog/compute/models/vcloud/catalog_items.rb +32 -0
  178. data/lib/fog/compute/models/vcloud/catalogs.rb +39 -0
  179. data/lib/fog/compute/models/vcloud/ip.rb +42 -0
  180. data/lib/fog/compute/models/vcloud/ips.rb +33 -0
  181. data/lib/fog/compute/models/vcloud/network.rb +65 -0
  182. data/lib/fog/compute/models/vcloud/networks.rb +34 -0
  183. data/lib/fog/compute/models/vcloud/server.rb +291 -0
  184. data/lib/fog/compute/models/vcloud/servers.rb +58 -0
  185. data/lib/fog/compute/models/vcloud/task.rb +21 -0
  186. data/lib/fog/compute/models/vcloud/tasks.rb +32 -0
  187. data/lib/fog/compute/models/vcloud/vdc.rb +56 -0
  188. data/lib/fog/compute/models/vcloud/vdcs.rb +40 -0
  189. data/lib/fog/compute/models/virtual_box/server.rb +2 -2
  190. data/lib/fog/compute/ninefold.rb +3 -3
  191. data/lib/fog/compute/parsers/aws/cancel_spot_instance_requests.rb +30 -0
  192. data/lib/fog/compute/parsers/aws/describe_instances.rb +9 -4
  193. data/lib/fog/compute/parsers/aws/describe_placement_groups.rb +30 -0
  194. data/lib/fog/compute/parsers/aws/describe_reserved_instances.rb +1 -1
  195. data/lib/fog/compute/parsers/aws/describe_reserved_instances_offerings.rb +2 -2
  196. data/lib/fog/compute/parsers/aws/describe_spot_price_history.rb +34 -0
  197. data/lib/fog/compute/parsers/aws/purchase_reserved_instances_offering.rb +24 -0
  198. data/lib/fog/compute/parsers/aws/run_instances.rb +17 -16
  199. data/lib/fog/compute/parsers/aws/spot_datafeed_subscription.rb +29 -0
  200. data/lib/fog/compute/parsers/aws/spot_instance_requests.rb +67 -0
  201. data/lib/fog/compute/rackspace.rb +6 -5
  202. data/lib/fog/compute/requests/aws/cancel_spot_instance_requests.rb +34 -0
  203. data/lib/fog/compute/requests/aws/create_placement_group.rb +34 -0
  204. data/lib/fog/compute/requests/aws/create_spot_datafeed_subscription.rb +41 -0
  205. data/lib/fog/compute/requests/aws/delete_placement_group.rb +32 -0
  206. data/lib/fog/compute/requests/aws/delete_spot_datafeed_subscription.rb +28 -0
  207. data/lib/fog/compute/requests/aws/describe_placement_groups.rb +35 -0
  208. data/lib/fog/compute/requests/aws/describe_reserved_instances.rb +14 -0
  209. data/lib/fog/compute/requests/aws/describe_reserved_instances_offerings.rb +25 -0
  210. data/lib/fog/compute/requests/aws/describe_spot_datafeed_subscription.rb +35 -0
  211. data/lib/fog/compute/requests/aws/describe_spot_instance_requests.rb +47 -0
  212. data/lib/fog/compute/requests/aws/describe_spot_price_history.rb +37 -0
  213. data/lib/fog/compute/requests/aws/describe_volumes.rb +1 -1
  214. data/lib/fog/compute/requests/aws/purchase_reserved_instances_offering.rb +63 -0
  215. data/lib/fog/compute/requests/aws/request_spot_instances.rb +83 -0
  216. data/lib/fog/compute/requests/aws/run_instances.rb +2 -3
  217. data/lib/fog/compute/requests/brightbox/activate_console_server.rb +1 -1
  218. data/lib/fog/compute/requests/brightbox/add_listeners_load_balancer.rb +1 -1
  219. data/lib/fog/compute/requests/brightbox/add_nodes_load_balancer.rb +1 -1
  220. data/lib/fog/compute/requests/brightbox/create_api_client.rb +1 -1
  221. data/lib/fog/compute/requests/brightbox/create_cloud_ip.rb +1 -1
  222. data/lib/fog/compute/requests/brightbox/create_image.rb +1 -1
  223. data/lib/fog/compute/requests/brightbox/create_load_balancer.rb +1 -1
  224. data/lib/fog/compute/requests/brightbox/create_server.rb +1 -1
  225. data/lib/fog/compute/requests/brightbox/destroy_api_client.rb +1 -1
  226. data/lib/fog/compute/requests/brightbox/destroy_cloud_ip.rb +1 -1
  227. data/lib/fog/compute/requests/brightbox/destroy_image.rb +1 -1
  228. data/lib/fog/compute/requests/brightbox/destroy_load_balancer.rb +1 -1
  229. data/lib/fog/compute/requests/brightbox/destroy_server.rb +1 -1
  230. data/lib/fog/compute/requests/brightbox/get_account.rb +1 -1
  231. data/lib/fog/compute/requests/brightbox/get_api_client.rb +1 -1
  232. data/lib/fog/compute/requests/brightbox/get_cloud_ip.rb +1 -1
  233. data/lib/fog/compute/requests/brightbox/get_image.rb +1 -1
  234. data/lib/fog/compute/requests/brightbox/get_interface.rb +1 -1
  235. data/lib/fog/compute/requests/brightbox/get_load_balancer.rb +1 -1
  236. data/lib/fog/compute/requests/brightbox/get_server.rb +1 -1
  237. data/lib/fog/compute/requests/brightbox/get_server_type.rb +1 -1
  238. data/lib/fog/compute/requests/brightbox/get_user.rb +1 -1
  239. data/lib/fog/compute/requests/brightbox/get_zone.rb +1 -1
  240. data/lib/fog/compute/requests/brightbox/list_api_clients.rb +1 -1
  241. data/lib/fog/compute/requests/brightbox/list_cloud_ips.rb +1 -1
  242. data/lib/fog/compute/requests/brightbox/list_images.rb +1 -1
  243. data/lib/fog/compute/requests/brightbox/list_load_balancers.rb +1 -1
  244. data/lib/fog/compute/requests/brightbox/list_server_types.rb +1 -1
  245. data/lib/fog/compute/requests/brightbox/list_servers.rb +1 -1
  246. data/lib/fog/compute/requests/brightbox/list_users.rb +1 -1
  247. data/lib/fog/compute/requests/brightbox/list_zones.rb +1 -1
  248. data/lib/fog/compute/requests/brightbox/map_cloud_ip.rb +1 -1
  249. data/lib/fog/compute/requests/brightbox/remove_listeners_load_balancer.rb +1 -1
  250. data/lib/fog/compute/requests/brightbox/remove_nodes_load_balancer.rb +1 -1
  251. data/lib/fog/compute/requests/brightbox/reset_ftp_password_account.rb +1 -1
  252. data/lib/fog/compute/requests/brightbox/resize_server.rb +1 -1
  253. data/lib/fog/compute/requests/brightbox/shutdown_server.rb +1 -1
  254. data/lib/fog/compute/requests/brightbox/snapshot_server.rb +1 -1
  255. data/lib/fog/compute/requests/brightbox/start_server.rb +1 -1
  256. data/lib/fog/compute/requests/brightbox/stop_server.rb +1 -1
  257. data/lib/fog/compute/requests/brightbox/unmap_cloud_ip.rb +1 -1
  258. data/lib/fog/compute/requests/brightbox/update_account.rb +1 -1
  259. data/lib/fog/compute/requests/brightbox/update_api_client.rb +1 -1
  260. data/lib/fog/compute/requests/brightbox/update_image.rb +1 -1
  261. data/lib/fog/compute/requests/brightbox/update_load_balancer.rb +1 -1
  262. data/lib/fog/compute/requests/brightbox/update_server.rb +1 -1
  263. data/lib/fog/compute/requests/brightbox/update_user.rb +1 -1
  264. data/lib/fog/compute/requests/linode/linode_disk_createfromstackscript.rb +1 -1
  265. data/lib/fog/compute/requests/rackspace/create_image.rb +1 -1
  266. data/lib/fog/compute/requests/rackspace/create_server.rb +1 -1
  267. data/lib/fog/compute/requests/rackspace/server_action.rb +2 -2
  268. data/lib/fog/compute/requests/rackspace/update_server.rb +1 -1
  269. data/lib/fog/compute/requests/storm_on_demand/add_balancer_node.rb +1 -1
  270. data/lib/fog/compute/requests/storm_on_demand/clone_server.rb +1 -1
  271. data/lib/fog/compute/requests/storm_on_demand/create_server.rb +1 -1
  272. data/lib/fog/compute/requests/storm_on_demand/delete_server.rb +1 -1
  273. data/lib/fog/compute/requests/storm_on_demand/get_server.rb +1 -1
  274. data/lib/fog/compute/requests/storm_on_demand/get_stats.rb +1 -1
  275. data/lib/fog/compute/requests/storm_on_demand/list_balancers.rb +1 -1
  276. data/lib/fog/compute/requests/storm_on_demand/list_configs.rb +1 -1
  277. data/lib/fog/compute/requests/storm_on_demand/list_images.rb +1 -1
  278. data/lib/fog/compute/requests/storm_on_demand/list_private_ips.rb +1 -1
  279. data/lib/fog/compute/requests/storm_on_demand/list_servers.rb +1 -1
  280. data/lib/fog/compute/requests/storm_on_demand/list_templates.rb +1 -1
  281. data/lib/fog/compute/requests/storm_on_demand/reboot_server.rb +1 -1
  282. data/lib/fog/compute/requests/storm_on_demand/remove_balancer_node.rb +1 -1
  283. data/lib/fog/compute/requests/storm_on_demand/resize_server.rb +1 -1
  284. data/lib/fog/compute/requests/vcloud/clone_vapp.rb +40 -0
  285. data/lib/fog/compute/requests/vcloud/configure_network.rb +43 -0
  286. data/lib/fog/compute/requests/vcloud/configure_network_ip.rb +46 -0
  287. data/lib/fog/compute/requests/vcloud/configure_node.rb +38 -0
  288. data/lib/fog/compute/requests/vcloud/configure_vapp.rb +112 -0
  289. data/lib/fog/compute/requests/vcloud/configure_vm.rb +247 -0
  290. data/lib/fog/compute/requests/vcloud/configure_vm_disks.rb +100 -0
  291. data/lib/fog/compute/requests/vcloud/configure_vm_memory.rb +40 -0
  292. data/lib/fog/compute/requests/vcloud/configure_vm_name_description.rb +30 -0
  293. data/lib/fog/compute/requests/vcloud/delete_node.rb +10 -0
  294. data/lib/fog/compute/requests/vcloud/delete_vapp.rb +10 -0
  295. data/lib/fog/compute/requests/vcloud/get_catalog.rb +10 -0
  296. data/lib/fog/compute/requests/vcloud/get_catalog_item.rb +10 -0
  297. data/lib/fog/compute/requests/vcloud/get_customization_options.rb +10 -0
  298. data/lib/fog/compute/requests/vcloud/get_network.rb +10 -0
  299. data/lib/fog/compute/requests/vcloud/get_network_extensions.rb +11 -0
  300. data/lib/fog/compute/requests/vcloud/get_network_ip.rb +15 -0
  301. data/lib/fog/compute/requests/vcloud/get_network_ips.rb +15 -0
  302. data/lib/fog/compute/requests/vcloud/get_organization.rb +11 -0
  303. data/lib/fog/compute/requests/vcloud/get_task.rb +11 -0
  304. data/lib/fog/compute/requests/vcloud/get_task_list.rb +11 -0
  305. data/lib/fog/compute/requests/vcloud/get_vapp.rb +10 -0
  306. data/lib/fog/compute/requests/vcloud/get_vapp_template.rb +11 -0
  307. data/lib/fog/compute/requests/vcloud/get_vdc.rb +10 -0
  308. data/lib/fog/compute/requests/vcloud/get_vm_disks.rb +16 -0
  309. data/lib/fog/compute/requests/vcloud/get_vm_memory.rb +16 -0
  310. data/lib/fog/compute/requests/vcloud/instantiate_vapp_template.rb +83 -0
  311. data/lib/fog/compute/requests/vcloud/login.rb +23 -0
  312. data/lib/fog/compute/requests/vcloud/power_off.rb +10 -0
  313. data/lib/fog/compute/requests/vcloud/power_on.rb +11 -0
  314. data/lib/fog/compute/requests/vcloud/power_reset.rb +11 -0
  315. data/lib/fog/compute/requests/vcloud/power_shutdown.rb +11 -0
  316. data/lib/fog/compute/requests/vcloud/undeploy.rb +23 -0
  317. data/lib/fog/compute/storm_on_demand.rb +2 -2
  318. data/lib/fog/compute/vcloud.rb +310 -0
  319. data/lib/fog/core.rb +2 -1
  320. data/lib/fog/core/attributes.rb +23 -11
  321. data/lib/fog/core/collection.rb +7 -7
  322. data/lib/fog/core/credentials.rb +4 -2
  323. data/lib/fog/core/model.rb +4 -4
  324. data/lib/fog/core/time.rb +1 -2
  325. data/lib/fog/core/timeout.rb +11 -0
  326. data/lib/fog/core/wait_for.rb +2 -2
  327. data/lib/fog/dns/dnsimple.rb +2 -2
  328. data/lib/fog/dns/dnsmadeeasy.rb +2 -2
  329. data/lib/fog/dns/linode.rb +2 -2
  330. data/lib/fog/dns/requests/dnsimple/create_domain.rb +1 -1
  331. data/lib/fog/dns/requests/dnsimple/create_record.rb +1 -1
  332. data/lib/fog/dns/requests/dnsimple/update_record.rb +1 -1
  333. data/lib/fog/dns/requests/dnsmadeeasy/create_record.rb +1 -1
  334. data/lib/fog/dns/requests/dnsmadeeasy/create_secondary.rb +1 -1
  335. data/lib/fog/dns/requests/dnsmadeeasy/update_record.rb +1 -1
  336. data/lib/fog/dns/requests/dnsmadeeasy/update_secondary.rb +1 -1
  337. data/lib/fog/providers.rb +1 -0
  338. data/lib/fog/providers/aws.rb +15 -2
  339. data/lib/fog/providers/ninefold.rb +1 -0
  340. data/lib/fog/providers/rackspace.rb +4 -3
  341. data/lib/fog/providers/vcloud.rb +11 -0
  342. data/lib/fog/storage.rb +9 -6
  343. data/lib/fog/storage/aws.rb +18 -1
  344. data/lib/fog/storage/google.rb +19 -1
  345. data/lib/fog/storage/models/aws/file.rb +3 -3
  346. data/lib/fog/storage/models/aws/files.rb +9 -2
  347. data/lib/fog/storage/models/google/files.rb +9 -2
  348. data/lib/fog/storage/models/ninefold/directories.rb +48 -0
  349. data/lib/fog/storage/models/ninefold/directory.rb +53 -0
  350. data/lib/fog/storage/models/ninefold/file.rb +99 -0
  351. data/lib/fog/storage/models/ninefold/files.rb +72 -0
  352. data/lib/fog/storage/models/rackspace/directory.rb +7 -2
  353. data/lib/fog/storage/ninefold.rb +149 -0
  354. data/lib/fog/storage/rackspace.rb +8 -2
  355. data/lib/fog/storage/requests/aws/get_bucket_policy.rb +1 -1
  356. data/lib/fog/storage/requests/aws/get_object.rb +6 -2
  357. data/lib/fog/storage/requests/aws/get_object_http_url.rb +51 -0
  358. data/lib/fog/storage/requests/aws/get_object_https_url.rb +51 -0
  359. data/lib/fog/storage/requests/aws/get_object_url.rb +4 -24
  360. data/lib/fog/storage/requests/aws/post_object_hidden_fields.rb +1 -1
  361. data/lib/fog/storage/requests/aws/put_bucket_policy.rb +1 -1
  362. data/lib/fog/storage/requests/google/get_object_http_url.rb +51 -0
  363. data/lib/fog/storage/requests/google/get_object_https_url.rb +51 -0
  364. data/lib/fog/storage/requests/google/get_object_url.rb +8 -25
  365. data/lib/fog/storage/requests/ninefold/delete_namespace.rb +19 -0
  366. data/lib/fog/storage/requests/ninefold/get_namespace.rb +20 -0
  367. data/lib/fog/storage/requests/ninefold/post_namespace.rb +20 -0
  368. data/lib/fog/storage/requests/ninefold/put_namespace.rb +20 -0
  369. data/lib/fog/storage/requests/rackspace/put_object.rb +3 -0
  370. data/lib/fog/storage/requests/rackspace/put_object_manifest.rb +25 -0
  371. data/tests/aws/models/auto_scaling/activities_tests.rb +6 -0
  372. data/tests/aws/models/auto_scaling/configuration_test.rb +13 -0
  373. data/tests/aws/models/auto_scaling/configurations_tests.rb +11 -0
  374. data/tests/aws/models/auto_scaling/helper.rb +0 -0
  375. data/tests/aws/models/auto_scaling/instances_tests.rb +6 -0
  376. data/tests/aws/models/cloud_watch/metric_statistics_tests.rb +51 -0
  377. data/tests/aws/models/cloud_watch/metrics_tests.rb +17 -0
  378. data/tests/aws/{requests → models}/elb/model_tests.rb +82 -18
  379. data/tests/aws/models/rds/security_group_tests.rb +1 -1
  380. data/tests/aws/requests/auto_scaling/auto_scaling_tests.rb +80 -0
  381. data/tests/aws/requests/auto_scaling/helper.rb +185 -0
  382. data/tests/aws/requests/auto_scaling/model_tests.rb +235 -0
  383. data/tests/aws/requests/cloud_formation/stack_tests.rb +1 -1
  384. data/tests/aws/requests/cloud_watch/get_metric_statistics_tests.rb +28 -0
  385. data/tests/aws/requests/cloud_watch/list_metrics_test.rb +64 -0
  386. data/tests/aws/requests/cloud_watch/put_metric_data_tests.rb +36 -0
  387. data/tests/aws/requests/elb/listener_tests.rb +50 -0
  388. data/tests/aws/requests/elb/load_balancer_tests.rb +23 -44
  389. data/tests/aws/requests/elb/policy_tests.rb +41 -0
  390. data/tests/aws/requests/iam/helper.rb +29 -0
  391. data/tests/aws/requests/iam/login_profile_tests.rb +2 -2
  392. data/tests/aws/requests/iam/server_certificate_tests.rb +39 -6
  393. data/tests/aws/requests/rds/helper.rb +1 -0
  394. data/tests/aws/requests/simpledb/attributes_tests.rb +10 -15
  395. data/tests/aws/requests/sns/helper.rb +9 -0
  396. data/tests/aws/requests/sns/subscription_tests.rb +86 -0
  397. data/tests/aws/requests/sns/topic_tests.rb +50 -0
  398. data/tests/aws/requests/sqs/helper.rb +15 -0
  399. data/tests/aws/requests/sqs/message_tests.rb +57 -0
  400. data/tests/aws/requests/sqs/queue_tests.rb +55 -0
  401. data/tests/aws/signed_params_tests.rb +3 -1
  402. data/tests/compute/models/aws/volume_tests.rb +13 -0
  403. data/tests/compute/models/vcloud/helper.rb +25 -0
  404. data/tests/compute/models/vcloud/servers_tests.rb +95 -0
  405. data/tests/compute/requests/aws/address_tests.rb +1 -1
  406. data/tests/compute/requests/aws/instance_tests.rb +65 -4
  407. data/tests/compute/requests/aws/placement_group_tests.rb +48 -0
  408. data/tests/compute/requests/aws/spot_datafeed_subscription_tests.rb +47 -0
  409. data/tests/compute/requests/aws/spot_instance_tests.rb +53 -0
  410. data/tests/compute/requests/aws/spot_price_history_tests.rb +24 -0
  411. data/tests/compute/requests/aws/volume_tests.rb +4 -0
  412. data/tests/compute/requests/brightbox/helper.rb +2 -1
  413. data/tests/compute/requests/brightbox/interface_tests.rb +4 -4
  414. data/tests/compute/requests/ninefold/helper.rb +1 -1
  415. data/tests/compute/requests/vcloud/disk_configure_tests.rb +114 -0
  416. data/tests/compute/requests/voxel/server_tests.rb +2 -2
  417. data/tests/core/attribute_tests.rb +10 -1
  418. data/tests/core/credential_tests.rb +6 -0
  419. data/tests/core/timeout_tests.rb +10 -0
  420. data/tests/helpers/collection_helper.rb +4 -1
  421. data/tests/helpers/formats_helper.rb +1 -1
  422. data/tests/helpers/mock_helper.rb +5 -0
  423. data/tests/storage/helper.rb +4 -1
  424. data/tests/storage/models/ninefold/file_update_tests.rb +19 -0
  425. data/tests/storage/models/ninefold/nested_directories_tests.rb +23 -0
  426. data/tests/storage/requests/aws/multipart_upload_tests.rb +2 -5
  427. data/tests/storage/requests/rackspace/large_object_tests.rb +47 -0
  428. metadata +366 -105
@@ -0,0 +1,83 @@
1
+ module Fog
2
+ module AWS
3
+ class AutoScaling
4
+
5
+ class Real
6
+
7
+ require 'fog/aws/parsers/auto_scaling/describe_scheduled_actions'
8
+
9
+ # List all the actions scheduled for your Auto Scaling group that
10
+ # haven't been executed. To see a list of action already executed, see
11
+ # the activity record returned in describe_scaling_activities.
12
+ #
13
+ # ==== Parameters
14
+ # * options<~Hash>:
15
+ # * 'AutoScalingGroupName'<~String> - The name of the Auto Scaling
16
+ # group.
17
+ # * 'EndTime'<~Time> - The latest scheduled start time to return. If
18
+ # scheduled action names are provided, this field will be ignored.
19
+ # * 'MaxRecords'<~Integer> - The maximum number of scheduled actions
20
+ # to return.
21
+ # * 'NextToken'<~String> - The token returned by a previous call to
22
+ # indicate that there is more data available.
23
+ # * 'ScheduledActionNames'<~Array> - A list of scheduled actions to
24
+ # be described. If this list is omitted, all scheduled actions are
25
+ # described. The list of requested scheduled actions cannot contain
26
+ # more than 50 items. If an auto scaling group name is provided,
27
+ # the results are limited to that group. If unknown scheduled
28
+ # actions are requested, they are ignored with no error.
29
+ # * 'StartTime'<~Time> - The earliest scheduled start time to return.
30
+ # If scheduled action names are provided, this field will be
31
+ # ignored.
32
+ #
33
+ # ==== Returns
34
+ # * response<~Excon::Response>:
35
+ # * body<~Hash>:
36
+ # * 'ResponseMetadata'<~Hash>:
37
+ # * 'RequestId'<~String> - Id of request
38
+ # * 'DescribeScheduledActionsResponse'<~Hash>:
39
+ # * 'ScheduledUpdateGroupActions'<~Array>:
40
+ # * scheduledupdatesroupAction<~Hash>:
41
+ # * 'AutoScalingGroupName'<~String> - The name of the Auto
42
+ # Scaling group to be updated.
43
+ # * 'DesiredCapacity'<~Integer> -The number of instances you
44
+ # prefer to maintain in your Auto Scaling group.
45
+ # * 'MaxSize'<~Integer> - The maximum size of the Auto Scaling
46
+ # group.
47
+ # * 'MinSize'<~Integer> - The minimum size of the Auto Scaling
48
+ # group.
49
+ # * 'ScheduledActionARN'<~String> - The Amazon Resource Name
50
+ # (ARN) of this scheduled action.
51
+ # * 'Time'<~Time> - The time that the action is scheduled to
52
+ # occur. This value can be up to one month in the future.
53
+ # * 'NextToken'<~String> - Acts as a paging mechanism for large
54
+ # result sets. Set to a non-empty string if there are
55
+ # additional results waiting to be returned. Pass this in to
56
+ # subsequent calls to return additional results.
57
+ #
58
+ # ==== See Also
59
+ # http://docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DescribeScheduledActions.html
60
+ #
61
+ def describe_scheduled_actions(options = {})
62
+ if scheduled_action_names = options.delete('ScheduledActionNames')
63
+ options.merge!(AWS.indexed_param('ScheduledActionNames.member.%d', [*scheduled_action_names]))
64
+ end
65
+ request({
66
+ 'Action' => 'DescribeScheduledActions',
67
+ :parser => Fog::Parsers::AWS::AutoScaling::DescribeScheduledActions.new
68
+ }.merge!(options))
69
+ end
70
+
71
+ end
72
+
73
+ class Mock
74
+
75
+ def describe_scheduled_actions(options = {})
76
+ Fog::Mock.not_implemented
77
+ end
78
+
79
+ end
80
+
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,56 @@
1
+ module Fog
2
+ module AWS
3
+ class AutoScaling
4
+
5
+ class Real
6
+
7
+ require 'fog/aws/parsers/auto_scaling/basic'
8
+
9
+ # Disables monitoring of group metrics for the Auto Scaling group
10
+ # specified in AutoScalingGroupName. You can specify the list of
11
+ # affected metrics with the Metrics parameter.
12
+ #
13
+ # ==== Parameters
14
+ # * 'AutoScalingGroupName'<~String> - The name or ARN of the Auto
15
+ # Scaling group.
16
+ # * options<~Hash>:
17
+ # * Metrics<~Array> - The list of metrics to disable. If no metrics
18
+ # are specified, all metrics are disabled.
19
+ #
20
+ # ==== Returns
21
+ # * response<~Excon::Response>:
22
+ # * body<~Hash>:
23
+ # * 'ResponseMetadata'<~Hash>:
24
+ # * 'RequestId'<~String> - Id of request
25
+ #
26
+ # ==== See Also
27
+ # http://docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_DisableMetricsCollection.html
28
+ #
29
+ def disable_metrics_collection(auto_scaling_group_name, options = {})
30
+ if metrics = options.delete('Metrics')
31
+ options.merge!(AWS.indexed_param('Metrics.member.%d', [*metrics]))
32
+ end
33
+ request({
34
+ 'Action' => 'DisableMetricsCollection',
35
+ 'AutoScalingGroupName' => auto_scaling_group_name,
36
+ :parser => Fog::Parsers::AWS::AutoScaling::Basic.new
37
+ }.merge!(options))
38
+ end
39
+
40
+ end
41
+
42
+ class Mock
43
+
44
+ def disable_metrics_collection(auto_scaling_group_name, options = {})
45
+ unless data[:auto_scaling_groups].has_key?(auto_scaling_group_name)
46
+ Fog::AWS::AutoScaling::ValidationError.new("Group #{auto_scaling_group_name} not found")
47
+ end
48
+
49
+ Fog::Mock.not_implemented
50
+ end
51
+
52
+ end
53
+
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,66 @@
1
+ module Fog
2
+ module AWS
3
+ class AutoScaling
4
+
5
+ class Real
6
+
7
+ require 'fog/aws/parsers/auto_scaling/basic'
8
+
9
+ # Enables monitoring of group metrics for the Auto Scaling group
10
+ # specified in auto_scaling_group_name. You can specify the list of
11
+ # enabled metrics with the metrics parameter.
12
+ #
13
+ # Auto scaling metrics collection can be turned on only if the
14
+ # instance_monitoring.enabled flag, in the Auto Scaling group's launch
15
+ # configuration, is set to true.
16
+ #
17
+ # ==== Parameters
18
+ # * 'AutoScalingGroupName'<~String>: The name or ARN of the Auto
19
+ # Scaling group
20
+ # * options<~Hash>:
21
+ # * Granularity<~String>: The granularity to associate with the
22
+ # metrics to collect.
23
+ # * Metrics<~Array>: The list of metrics to collect. If no metrics
24
+ # are specified, all metrics are enabled.
25
+ #
26
+ # ==== Returns
27
+ # * response<~Excon::Response>:
28
+ # * body<~Hash>:
29
+ # * 'ResponseMetadata'<~Hash>:
30
+ # * 'RequestId'<~String> - Id of request
31
+ #
32
+ # ==== See Also
33
+ # http://docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_EnableMetricsCollection.html
34
+ #
35
+ def enable_metrics_collection(auto_scaling_group_name, granularity, options = {})
36
+ if metrics = options.delete('Metrics')
37
+ options.merge!(AWS.indexed_param('Metrics.member.%d', [*metrics]))
38
+ end
39
+ request({
40
+ 'Action' => 'EnableMetricsCollection',
41
+ 'AutoScalingGroupName' => auto_scaling_group_name,
42
+ 'Granularity' => granularity,
43
+ :parser => Fog::Parsers::AWS::AutoScaling::Basic.new
44
+ }.merge!(options))
45
+ end
46
+
47
+ end
48
+
49
+ class Mock
50
+
51
+ def enable_metrics_collection(auto_scaling_group_name, granularity, options = {})
52
+ unless data[:auto_scaling_groups].has_key?(auto_scaling_group_name)
53
+ Fog::AWS::AutoScaling::ValidationError.new("Group #{auto_scaling_group_name} not found")
54
+ end
55
+ unless data[:metric_collection_types][:granularities].include?(granularity)
56
+ Fog::AWS::AutoScaling::ValidationError.new('Valid metrics granularity type is: [1Minute].')
57
+ end
58
+
59
+ Fog::Mock.not_implemented
60
+ end
61
+
62
+ end
63
+
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,50 @@
1
+ module Fog
2
+ module AWS
3
+ class AutoScaling
4
+
5
+ class Real
6
+
7
+ require 'fog/aws/parsers/auto_scaling/basic'
8
+
9
+ # Runs the policy you create for your Auto Scaling group in
10
+ # put_scaling_policy.
11
+ #
12
+ # ==== Parameters
13
+ # * 'PolicyName'<~String> - The name or PolicyARN of the policy you
14
+ # want to run.
15
+ # * options<~Hash>:
16
+ # * 'AutoScalingGroupName'<~String> - The name or ARN of the Auto
17
+ # Scaling group.
18
+ # * 'HonorCooldown'<~Boolean> - Set to true if you want Auto Scaling
19
+ # to reject this request if the Auto Scaling group is in cooldown.
20
+ #
21
+ # ==== Returns
22
+ # * response<~Excon::Response>:
23
+ # * body<~Hash>:
24
+ # * 'ResponseMetadata'<~Hash>:
25
+ # * 'RequestId'<~String> - Id of request
26
+ #
27
+ # ==== See Also
28
+ # http://docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_ExecutePolicy.html
29
+ #
30
+ def execute_policy(policy_name, options = {})
31
+ request({
32
+ 'Action' => 'ExecutePolicy',
33
+ 'PolicyName' => policy_name,
34
+ :parser => Fog::Parsers::AWS::AutoScaling::Basic.new
35
+ }.merge!(options))
36
+ end
37
+
38
+ end
39
+
40
+ class Mock
41
+
42
+ def execute_policy(policy_name, options = {})
43
+ Fog::Mock.not_implemented
44
+ end
45
+
46
+ end
47
+
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,66 @@
1
+ module Fog
2
+ module AWS
3
+ class AutoScaling
4
+
5
+ class Real
6
+
7
+ require 'fog/aws/parsers/auto_scaling/put_scaling_policy'
8
+
9
+ # Creates or updates a policy for an Auto Scaling group. To update an
10
+ # existing policy, use the existing policy name and set the
11
+ # parameter(s) you want to change. Any existing parameter not changed
12
+ # in an update to an existing policy is not changed in this update
13
+ # request.
14
+ #
15
+ # ==== Parameters
16
+ # * adjustment_type<~String> - Specifies whether the scaling_adjustment
17
+ # is an absolute number or a percentage of the current capacity.
18
+ # * auto_scaling_group_name<~String> - The name or ARN of the Auto
19
+ # Scaling group.
20
+ # * policy_name<~String> - The name of the policy you want to create or
21
+ # update.
22
+ # * scaling_adjustment<~Integer> - The number of instances by which to
23
+ # scale. AdjustmentType determines the interpretation of this number
24
+ # (e.g., as an absolute number or as a percentage of the existing
25
+ # Auto Scaling group size). A positive increment adds to the current
26
+ # capacity and a negative value removes from the current capacity.
27
+ # * options<~Hash>:
28
+ # * 'CoolDown'<~Integer> - The amount of time, in seconds, after a
29
+ # scaling activity completes before any further trigger-related
30
+ # scaling activities can start
31
+ #
32
+ # ==== Returns
33
+ # * response<~Excon::Response>:
34
+ # * body<~Hash>:
35
+ # * 'ResponseMetadata'<~Hash>:
36
+ # * 'RequestId'<~String> - Id of request
37
+ # * 'PutScalingPolicyResponse'<~Hash>:
38
+ # * 'PolicyARN'<~String> - A policy's Amazon Resource Name (ARN).
39
+ #
40
+ # ==== See Also
41
+ # http://docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_PutScalingPolicy.html
42
+ #
43
+ def put_scaling_policy(adjustment_type, auto_scaling_group_name, policy_name, scaling_adjustment, options = {})
44
+ request({
45
+ 'Action' => 'PutScalingPolicy',
46
+ 'AdjustmentType' => adjustment_type,
47
+ 'AutoScalingGroupName' => auto_scaling_group_name,
48
+ 'PolicyName' => policy_name,
49
+ 'ScalingAdjustment' => scaling_adjustment,
50
+ :parser => Fog::Parsers::AWS::AutoScaling::PutScalingPolicy.new
51
+ }.merge!(options))
52
+ end
53
+
54
+ end
55
+
56
+ class Mock
57
+
58
+ def put_scaling_policy(adjustment_type, auto_scaling_group_name, policy_name, scaling_adjustment, options = {})
59
+ Fog::Mock.not_implemented
60
+ end
61
+
62
+ end
63
+
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,57 @@
1
+ module Fog
2
+ module AWS
3
+ class AutoScaling
4
+
5
+ class Real
6
+
7
+ require 'fog/aws/parsers/auto_scaling/basic'
8
+
9
+ # Creates a scheduled scaling action for a Auto Scaling group. If you
10
+ # leave a parameter unspecified, the corresponding value remains
11
+ # unchanged in the affected Auto Scaling group.
12
+ #
13
+ # ==== Parameters
14
+ # * auto_scaling_group_name<~String> - The name or ARN of the Auto
15
+ # Scaling Group.
16
+ # * scheduled_action_name<~String> - Name of this scaling action.
17
+ # * time<~Datetime> - The time for this action to start
18
+ # * options<~Hash>:
19
+ # * 'DesiredCapacity'<~Integer> - The number of EC2 instances that
20
+ # should be running in this group.
21
+ # * 'MaxSize'<~Integer> - The maximum size for the Auto Scaling
22
+ # group.
23
+ # * 'MinSize'<~Integer> - The minimum size for the Auto Scaling
24
+ # group.
25
+ #
26
+ # ==== Returns
27
+ # * response<~Excon::Response>:
28
+ # * body<~Hash>:
29
+ # * 'ResponseMetadata'<~Hash>:
30
+ # * 'RequestId'<~String> - Id of request
31
+ #
32
+ # ==== See Also
33
+ # http://docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_PutScheduledUpdateGroupAction.html
34
+ #
35
+ def put_scheduled_update_group_action(auto_scaling_group_name, scheduled_action_name, time, options = {})
36
+ request({
37
+ 'Action' => 'PutScheduledUpdateGroupAction',
38
+ 'AutoScalingGroupName' => auto_scaling_group_name,
39
+ 'ScheduledActionName' => scheduled_action_name,
40
+ 'Time' => time.utc.strftime('%FT%T.%3NZ'),
41
+ :parser => Fog::Parsers::AWS::AutoScaling::Basic.new
42
+ }.merge!(options))
43
+ end
44
+
45
+ end
46
+
47
+ class Mock
48
+
49
+ def put_scheduled_update_group_action(auto_scaling_group_name, scheduled_policy_name, time, options = {})
50
+ Fog::Mock.not_implemented
51
+ end
52
+
53
+ end
54
+
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,50 @@
1
+ module Fog
2
+ module AWS
3
+ class AutoScaling
4
+
5
+ class Real
6
+
7
+ require 'fog/aws/parsers/auto_scaling/basic'
8
+
9
+ # Resumes Auto Scaling processes for an Auto Scaling group.
10
+ #
11
+ # ==== Parameters
12
+ # * auto_scaling_group_name'<~String> - The name or Amazon Resource
13
+ # Name (ARN) of the Auto Scaling group.
14
+ # * options<~Hash>:
15
+ # * 'ScalingProcesses'<~Array> - The processes that you want to
16
+ # resume. To resume all process types, omit this parameter.
17
+ #
18
+ # ==== Returns
19
+ # * response<~Excon::Response>:
20
+ # * body<~Hash>:
21
+ # * 'ResponseMetadata'<~Hash>:
22
+ # * 'RequestId'<~String> - Id of request
23
+ #
24
+ # ==== See Also
25
+ # http://docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_ResumeProcesses.html
26
+ #
27
+ def resume_processes(auto_scaling_group_name, options = {})
28
+ if scaling_processes = options.delete('ScalingProcesses')
29
+ options.merge!(AWS.indexed_param('ScalingProcesses.member.%d', [*scaling_processes]))
30
+ end
31
+ request({
32
+ 'Action' => 'ResumeProcesses',
33
+ 'AutoScalingGroupName' => auto_scaling_group_name,
34
+ :parser => Fog::Parsers::AWS::AutoScaling::Basic.new
35
+ }.merge!(options))
36
+ end
37
+
38
+ end
39
+
40
+ class Mock
41
+
42
+ def resume_processes(auto_scaling_group_name, options = {})
43
+ Fog::Mock.not_implemented
44
+ end
45
+
46
+ end
47
+
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,87 @@
1
+ module Fog
2
+ module AWS
3
+ class AutoScaling
4
+
5
+ class Real
6
+
7
+ require 'fog/aws/parsers/auto_scaling/basic'
8
+
9
+ # Adjusts the desired size of the AutoScalingGroup by initiating
10
+ # scaling activities. When reducing the size of the group, it is not
11
+ # possible to define which EC2 instances will be terminated. This
12
+ # applies to any auto-scaling decisions that might result in
13
+ # terminating instances.
14
+ #
15
+ # There are two common use cases for set_desired_capacity: one for
16
+ # users of the Auto Scaling triggering system, and another for
17
+ # developers who write their own triggering systems. Both use cases
18
+ # relate to the concept of cooldown.
19
+ #
20
+ # In the first case, if you use the Auto Scaling triggering system,
21
+ # set_desired_capacity changes the size of your Auto Scaling group
22
+ # without regard to the cooldown period. This could be useful, for
23
+ # example, if Auto Scaling did something unexpected for some reason. If
24
+ # your cooldown period is 10 minutes, Auto Scaling would normally
25
+ # reject requests to change the size of the group for that entire 10
26
+ # minute period. The set_desired_capacity command allows you to
27
+ # circumvent this restriction and change the size of the group before
28
+ # the end of the cooldown period.
29
+ #
30
+ # In the second case, if you write your own triggering system, you can
31
+ # use set_desired_capacity to control the size of your Auto Scaling
32
+ # group. If you want the same cooldown functionality that Auto Scaling
33
+ # offers, you can configure set_desired_capacity to honor cooldown by
34
+ # setting the HonorCooldown parameter to true.
35
+ #
36
+ # ==== Parameters
37
+ # * auto_scaling_group_name<~String> - The name of the Auto Scaling
38
+ # group.
39
+ # * desired_capacity<~Integer> - The new capacity setting for the Auto
40
+ # Scaling group.
41
+ # * options<~Hash>:
42
+ # * 'HonorCooldown'<~Boolean> - By default, set_desired_capacity
43
+ # overrides any cooldown period. Set to true if you want Auto
44
+ # Scaling to reject this request if the Auto Scaling group is in
45
+ # cooldown.
46
+ #
47
+ # ==== Returns
48
+ # * response<~Excon::Response>:
49
+ # * body<~Hash>:
50
+ # * 'ResponseMetadata'<~Hash>:
51
+ # * 'RequestId'<~String> - Id of request
52
+ #
53
+ # ==== See Also
54
+ # http://docs.amazonwebservices.com/AutoScaling/latest/APIReference/API_SetDesiredCapacity.html
55
+ #
56
+ def set_desired_capacity(auto_scaling_group_name, desired_capacity, options = {})
57
+ request({
58
+ 'Action' => 'SetDesiredCapacity',
59
+ 'AutoScalingGroupName' => auto_scaling_group_name,
60
+ 'DesiredCapacity' => desired_capacity,
61
+ :parser => Fog::Parsers::AWS::AutoScaling::Basic.new
62
+ }.merge!(options))
63
+ end
64
+
65
+ end
66
+
67
+ class Mock
68
+
69
+ def set_desired_capacity(auto_scaling_group_name, desired_capacity, options = {})
70
+ unless data[:auto_scaling_groups].has_key?(auto_scaling_group_name)
71
+ Fog::AWS::AutoScaling::ValidationError.new('AutoScalingGroup name not found - null')
72
+ end
73
+ data[:auto_scaling_groups][auto_scaling_group_name]['DesiredCapacity'] = desired_capacity
74
+
75
+ response = Excon::Response.new
76
+ response.status = 200
77
+ response.body = {
78
+ 'ResponseMetadata' => { 'RequestId' => Fog::AWS::Mock.request_id }
79
+ }
80
+ response
81
+ end
82
+
83
+ end
84
+
85
+ end
86
+ end
87
+ end