fog-aws 1.4.1 → 3.27.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 (761) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +17 -603
  3. data/CONTRIBUTING.md +6 -6
  4. data/CONTRIBUTORS.md +104 -1
  5. data/LICENSE.md +1 -1
  6. data/README.md +121 -7
  7. data/fog-aws.gemspec +16 -10
  8. data/lib/fog/aws/auto_scaling.rb +2 -1
  9. data/lib/fog/aws/beanstalk.rb +1 -1
  10. data/lib/fog/aws/cdn.rb +16 -3
  11. data/lib/fog/aws/cloud_formation.rb +1 -1
  12. data/lib/fog/aws/cloud_watch.rb +1 -1
  13. data/lib/fog/aws/compute.rb +119 -19
  14. data/lib/fog/aws/credential_fetcher.rb +93 -9
  15. data/lib/fog/aws/data_pipeline.rb +1 -1
  16. data/lib/fog/aws/dns.rb +155 -6
  17. data/lib/fog/aws/dynamodb.rb +1 -1
  18. data/lib/fog/aws/ecs.rb +1 -1
  19. data/lib/fog/aws/efs.rb +1 -1
  20. data/lib/fog/aws/elasticache.rb +6 -4
  21. data/lib/fog/aws/elb.rb +3 -2
  22. data/lib/fog/aws/elbv2.rb +72 -0
  23. data/lib/fog/aws/emr.rb +1 -1
  24. data/lib/fog/aws/glacier.rb +84 -22
  25. data/lib/fog/aws/iam.rb +1 -1
  26. data/lib/fog/aws/kinesis.rb +24 -16
  27. data/lib/fog/aws/kms.rb +1 -1
  28. data/lib/fog/aws/lambda.rb +1 -1
  29. data/lib/fog/aws/mock.rb +8 -0
  30. data/lib/fog/aws/models/auto_scaling/group.rb +10 -0
  31. data/lib/fog/aws/models/cdn/distribution.rb +4 -4
  32. data/lib/fog/aws/models/cdn/distribution_helper.rb +2 -2
  33. data/lib/fog/aws/models/cdn/distributions.rb +4 -4
  34. data/lib/fog/aws/models/cdn/distributions_helper.rb +2 -2
  35. data/lib/fog/aws/models/cdn/invalidation.rb +2 -2
  36. data/lib/fog/aws/models/cdn/invalidations.rb +3 -3
  37. data/lib/fog/aws/models/cdn/streaming_distribution.rb +3 -3
  38. data/lib/fog/aws/models/cdn/streaming_distributions.rb +4 -4
  39. data/lib/fog/aws/models/compute/address.rb +4 -2
  40. data/lib/fog/aws/models/compute/addresses.rb +3 -3
  41. data/lib/fog/aws/models/compute/dhcp_option.rb +3 -3
  42. data/lib/fog/aws/models/compute/dhcp_options.rb +7 -7
  43. data/lib/fog/aws/models/compute/flavor.rb +2 -2
  44. data/lib/fog/aws/models/compute/flavors.rb +4265 -363
  45. data/lib/fog/aws/models/compute/image.rb +2 -2
  46. data/lib/fog/aws/models/compute/images.rb +3 -3
  47. data/lib/fog/aws/models/compute/internet_gateway.rb +2 -2
  48. data/lib/fog/aws/models/compute/internet_gateways.rb +7 -7
  49. data/lib/fog/aws/models/compute/key_pair.rb +2 -2
  50. data/lib/fog/aws/models/compute/key_pairs.rb +3 -3
  51. data/lib/fog/aws/models/compute/network_acl.rb +4 -4
  52. data/lib/fog/aws/models/compute/network_acls.rb +6 -6
  53. data/lib/fog/aws/models/compute/network_interface.rb +2 -2
  54. data/lib/fog/aws/models/compute/network_interfaces.rb +5 -5
  55. data/lib/fog/aws/models/compute/route_table.rb +2 -2
  56. data/lib/fog/aws/models/compute/route_tables.rb +7 -7
  57. data/lib/fog/aws/models/compute/security_group.rb +15 -7
  58. data/lib/fog/aws/models/compute/security_groups.rb +3 -3
  59. data/lib/fog/aws/models/compute/server.rb +8 -4
  60. data/lib/fog/aws/models/compute/servers.rb +13 -8
  61. data/lib/fog/aws/models/compute/snapshot.rb +9 -8
  62. data/lib/fog/aws/models/compute/snapshots.rb +3 -3
  63. data/lib/fog/aws/models/compute/spot_request.rb +2 -2
  64. data/lib/fog/aws/models/compute/spot_requests.rb +3 -3
  65. data/lib/fog/aws/models/compute/subnet.rb +3 -2
  66. data/lib/fog/aws/models/compute/subnets.rb +3 -3
  67. data/lib/fog/aws/models/compute/tag.rb +2 -2
  68. data/lib/fog/aws/models/compute/tags.rb +3 -3
  69. data/lib/fog/aws/models/compute/volume.rb +21 -32
  70. data/lib/fog/aws/models/compute/volumes.rb +3 -3
  71. data/lib/fog/aws/models/compute/vpc.rb +21 -6
  72. data/lib/fog/aws/models/compute/vpcs.rb +3 -3
  73. data/lib/fog/aws/models/dns/record.rb +2 -2
  74. data/lib/fog/aws/models/dns/records.rb +4 -4
  75. data/lib/fog/aws/models/dns/zone.rb +3 -3
  76. data/lib/fog/aws/models/dns/zones.rb +4 -4
  77. data/lib/fog/aws/models/efs/file_system.rb +4 -0
  78. data/lib/fog/aws/models/elasticache/cluster.rb +1 -1
  79. data/lib/fog/aws/models/elb/backend_server_descriptions.rb +1 -1
  80. data/lib/fog/aws/models/elb/listeners.rb +3 -4
  81. data/lib/fog/aws/models/elb/load_balancer.rb +10 -2
  82. data/lib/fog/aws/models/elb/load_balancers.rb +5 -6
  83. data/lib/fog/aws/models/iam/access_keys.rb +0 -2
  84. data/lib/fog/aws/models/rds/cluster.rb +9 -1
  85. data/lib/fog/aws/models/rds/instance_option.rb +6 -0
  86. data/lib/fog/aws/models/rds/server.rb +66 -63
  87. data/lib/fog/aws/models/storage/directories.rb +4 -3
  88. data/lib/fog/aws/models/storage/directory.rb +40 -6
  89. data/lib/fog/aws/models/storage/file.rb +173 -28
  90. data/lib/fog/aws/models/storage/files.rb +37 -6
  91. data/lib/fog/aws/models/storage/version.rb +2 -2
  92. data/lib/fog/aws/models/storage/versions.rb +3 -3
  93. data/lib/fog/aws/parsers/cdn/distribution.rb +2 -2
  94. data/lib/fog/aws/parsers/cdn/get_distribution_list.rb +2 -2
  95. data/lib/fog/aws/parsers/cdn/get_invalidation.rb +2 -2
  96. data/lib/fog/aws/parsers/cdn/get_invalidation_list.rb +2 -2
  97. data/lib/fog/aws/parsers/cdn/get_streaming_distribution_list.rb +2 -2
  98. data/lib/fog/aws/parsers/cdn/post_invalidation.rb +2 -2
  99. data/lib/fog/aws/parsers/cdn/streaming_distribution.rb +1 -1
  100. data/lib/fog/aws/parsers/compute/allocate_address.rb +2 -2
  101. data/lib/fog/aws/parsers/compute/assign_private_ip_addresses.rb +2 -2
  102. data/lib/fog/aws/parsers/compute/associate_address.rb +2 -2
  103. data/lib/fog/aws/parsers/compute/associate_route_table.rb +2 -2
  104. data/lib/fog/aws/parsers/compute/attach_network_interface.rb +2 -2
  105. data/lib/fog/aws/parsers/compute/attach_volume.rb +2 -2
  106. data/lib/fog/aws/parsers/compute/basic.rb +2 -2
  107. data/lib/fog/aws/parsers/compute/cancel_spot_instance_requests.rb +2 -2
  108. data/lib/fog/aws/parsers/compute/copy_image.rb +2 -2
  109. data/lib/fog/aws/parsers/compute/copy_snapshot.rb +2 -2
  110. data/lib/fog/aws/parsers/compute/create_dhcp_options.rb +2 -2
  111. data/lib/fog/aws/parsers/compute/create_image.rb +2 -2
  112. data/lib/fog/aws/parsers/compute/create_internet_gateway.rb +2 -2
  113. data/lib/fog/aws/parsers/compute/create_key_pair.rb +2 -2
  114. data/lib/fog/aws/parsers/compute/create_network_acl.rb +2 -2
  115. data/lib/fog/aws/parsers/compute/create_network_interface.rb +2 -2
  116. data/lib/fog/aws/parsers/compute/create_route_table.rb +2 -2
  117. data/lib/fog/aws/parsers/compute/create_security_group.rb +2 -2
  118. data/lib/fog/aws/parsers/compute/create_snapshot.rb +3 -3
  119. data/lib/fog/aws/parsers/compute/create_subnet.rb +37 -8
  120. data/lib/fog/aws/parsers/compute/create_volume.rb +2 -2
  121. data/lib/fog/aws/parsers/compute/create_vpc.rb +2 -2
  122. data/lib/fog/aws/parsers/compute/deregister_image.rb +2 -2
  123. data/lib/fog/aws/parsers/compute/describe_account_attributes.rb +2 -2
  124. data/lib/fog/aws/parsers/compute/describe_addresses.rb +32 -11
  125. data/lib/fog/aws/parsers/compute/describe_availability_zones.rb +2 -2
  126. data/lib/fog/aws/parsers/compute/describe_classic_link_instances.rb +2 -2
  127. data/lib/fog/aws/parsers/compute/describe_dhcp_options.rb +2 -2
  128. data/lib/fog/aws/parsers/compute/describe_image_attribute.rb +122 -0
  129. data/lib/fog/aws/parsers/compute/describe_images.rb +2 -2
  130. data/lib/fog/aws/parsers/compute/describe_instance_attribute.rb +2 -2
  131. data/lib/fog/aws/parsers/compute/describe_instance_status.rb +2 -2
  132. data/lib/fog/aws/parsers/compute/describe_instances.rb +2 -2
  133. data/lib/fog/aws/parsers/compute/describe_internet_gateways.rb +2 -2
  134. data/lib/fog/aws/parsers/compute/describe_key_pairs.rb +2 -2
  135. data/lib/fog/aws/parsers/compute/describe_network_acls.rb +2 -2
  136. data/lib/fog/aws/parsers/compute/describe_network_interface_attribute.rb +2 -2
  137. data/lib/fog/aws/parsers/compute/describe_network_interfaces.rb +2 -2
  138. data/lib/fog/aws/parsers/compute/describe_placement_groups.rb +2 -2
  139. data/lib/fog/aws/parsers/compute/describe_regions.rb +2 -2
  140. data/lib/fog/aws/parsers/compute/describe_reserved_instances.rb +2 -2
  141. data/lib/fog/aws/parsers/compute/describe_reserved_instances_offerings.rb +2 -2
  142. data/lib/fog/aws/parsers/compute/describe_route_tables.rb +2 -2
  143. data/lib/fog/aws/parsers/compute/describe_security_groups.rb +21 -7
  144. data/lib/fog/aws/parsers/compute/describe_snapshots.rb +2 -2
  145. data/lib/fog/aws/parsers/compute/describe_spot_price_history.rb +2 -2
  146. data/lib/fog/aws/parsers/compute/describe_subnets.rb +36 -9
  147. data/lib/fog/aws/parsers/compute/describe_tags.rb +2 -2
  148. data/lib/fog/aws/parsers/compute/describe_volume_status.rb +2 -2
  149. data/lib/fog/aws/parsers/compute/describe_volumes.rb +2 -2
  150. data/lib/fog/aws/parsers/compute/describe_volumes_modifications.rb +2 -2
  151. data/lib/fog/aws/parsers/compute/describe_vpc_attribute.rb +2 -2
  152. data/lib/fog/aws/parsers/compute/describe_vpc_classic_link.rb +2 -2
  153. data/lib/fog/aws/parsers/compute/describe_vpc_classic_link_dns_support.rb +2 -2
  154. data/lib/fog/aws/parsers/compute/describe_vpcs.rb +73 -39
  155. data/lib/fog/aws/parsers/compute/detach_volume.rb +2 -2
  156. data/lib/fog/aws/parsers/compute/get_console_output.rb +2 -2
  157. data/lib/fog/aws/parsers/compute/get_password_data.rb +2 -2
  158. data/lib/fog/aws/parsers/compute/import_key_pair.rb +2 -2
  159. data/lib/fog/aws/parsers/compute/modify_subnet_attribute.rb +2 -2
  160. data/lib/fog/aws/parsers/compute/modify_volume.rb +2 -2
  161. data/lib/fog/aws/parsers/compute/monitor_unmonitor_instances.rb +2 -2
  162. data/lib/fog/aws/parsers/compute/move_address_to_vpc.rb +2 -2
  163. data/lib/fog/aws/parsers/compute/network_acl_parser.rb +2 -2
  164. data/lib/fog/aws/parsers/compute/network_interface_parser.rb +2 -2
  165. data/lib/fog/aws/parsers/compute/purchase_reserved_instances_offering.rb +2 -2
  166. data/lib/fog/aws/parsers/compute/register_image.rb +2 -2
  167. data/lib/fog/aws/parsers/compute/replace_network_acl_association.rb +2 -2
  168. data/lib/fog/aws/parsers/compute/restore_address_to_classic.rb +2 -2
  169. data/lib/fog/aws/parsers/compute/run_instances.rb +2 -2
  170. data/lib/fog/aws/parsers/compute/spot_datafeed_subscription.rb +2 -2
  171. data/lib/fog/aws/parsers/compute/spot_instance_requests.rb +2 -2
  172. data/lib/fog/aws/parsers/compute/start_stop_instances.rb +2 -2
  173. data/lib/fog/aws/parsers/compute/terminate_instances.rb +2 -2
  174. data/lib/fog/aws/parsers/dns/change_resource_record_sets.rb +2 -2
  175. data/lib/fog/aws/parsers/dns/create_hosted_zone.rb +3 -3
  176. data/lib/fog/aws/parsers/dns/delete_hosted_zone.rb +2 -2
  177. data/lib/fog/aws/parsers/dns/get_change.rb +2 -2
  178. data/lib/fog/aws/parsers/dns/get_hosted_zone.rb +5 -5
  179. data/lib/fog/aws/parsers/dns/health_check.rb +2 -2
  180. data/lib/fog/aws/parsers/dns/list_health_checks.rb +2 -2
  181. data/lib/fog/aws/parsers/dns/list_hosted_zones.rb +5 -3
  182. data/lib/fog/aws/parsers/dns/list_resource_record_sets.rb +2 -2
  183. data/lib/fog/aws/parsers/elb/describe_load_balancers.rb +3 -3
  184. data/lib/fog/aws/parsers/elbv2/create_load_balancer.rb +88 -0
  185. data/lib/fog/aws/parsers/elbv2/describe_listeners.rb +110 -0
  186. data/lib/fog/aws/parsers/elbv2/describe_load_balancers.rb +88 -0
  187. data/lib/fog/aws/parsers/elbv2/describe_tags.rb +53 -0
  188. data/lib/fog/aws/parsers/elbv2/empty.rb +10 -0
  189. data/lib/fog/aws/parsers/iam/get_group_policy.rb +1 -1
  190. data/lib/fog/aws/parsers/iam/get_role_policy.rb +1 -1
  191. data/lib/fog/aws/parsers/iam/get_user_policy.rb +1 -1
  192. data/lib/fog/aws/parsers/iam/list_access_keys.rb +1 -1
  193. data/lib/fog/aws/parsers/iam/list_server_certificates.rb +1 -1
  194. data/lib/fog/aws/parsers/iam/policy_version.rb +1 -1
  195. data/lib/fog/aws/parsers/rds/db_cluster_parser.rb +1 -1
  196. data/lib/fog/aws/parsers/rds/db_parser.rb +42 -3
  197. data/lib/fog/aws/parsers/rds/describe_orderable_db_instance_options.rb +4 -3
  198. data/lib/fog/aws/parsers/rds/modify_db_subnet_group.rb +1 -1
  199. data/lib/fog/aws/parsers/redshift/cluster_subnet_group_parser.rb +1 -1
  200. data/lib/fog/aws/parsers/storage/access_control_list.rb +2 -2
  201. data/lib/fog/aws/parsers/storage/complete_multipart_upload.rb +2 -2
  202. data/lib/fog/aws/parsers/storage/copy_object.rb +2 -2
  203. data/lib/fog/aws/parsers/storage/cors_configuration.rb +2 -2
  204. data/lib/fog/aws/parsers/storage/delete_multiple_objects.rb +2 -2
  205. data/lib/fog/aws/parsers/storage/get_bucket.rb +2 -2
  206. data/lib/fog/aws/parsers/storage/get_bucket_lifecycle.rb +2 -2
  207. data/lib/fog/aws/parsers/storage/get_bucket_location.rb +2 -2
  208. data/lib/fog/aws/parsers/storage/get_bucket_logging.rb +2 -2
  209. data/lib/fog/aws/parsers/storage/get_bucket_notification.rb +2 -2
  210. data/lib/fog/aws/parsers/storage/get_bucket_object_versions.rb +2 -2
  211. data/lib/fog/aws/parsers/storage/get_bucket_tagging.rb +2 -2
  212. data/lib/fog/aws/parsers/storage/get_bucket_versioning.rb +2 -2
  213. data/lib/fog/aws/parsers/storage/get_bucket_website.rb +2 -2
  214. data/lib/fog/aws/parsers/storage/get_object_tagging.rb +33 -0
  215. data/lib/fog/aws/parsers/storage/get_request_payment.rb +2 -2
  216. data/lib/fog/aws/parsers/storage/get_service.rb +2 -2
  217. data/lib/fog/aws/parsers/storage/initiate_multipart_upload.rb +2 -2
  218. data/lib/fog/aws/parsers/storage/list_multipart_uploads.rb +2 -2
  219. data/lib/fog/aws/parsers/storage/list_parts.rb +2 -2
  220. data/lib/fog/aws/parsers/storage/upload_part_copy_object.rb +18 -0
  221. data/lib/fog/aws/parsers/sts/assume_role_with_web_identity.rb +1 -1
  222. data/lib/fog/aws/rds.rb +1 -1
  223. data/lib/fog/aws/redshift.rb +1 -1
  224. data/lib/fog/aws/requests/auto_scaling/attach_load_balancer_target_groups.rb +1 -1
  225. data/lib/fog/aws/requests/auto_scaling/describe_scaling_activities.rb +1 -1
  226. data/lib/fog/aws/requests/auto_scaling/detach_instances.rb +3 -4
  227. data/lib/fog/aws/requests/auto_scaling/put_scheduled_update_group_action.rb +1 -1
  228. data/lib/fog/aws/requests/auto_scaling/set_instance_protection.rb +67 -0
  229. data/lib/fog/aws/requests/cdn/delete_distribution.rb +6 -6
  230. data/lib/fog/aws/requests/cdn/delete_streaming_distribution.rb +6 -6
  231. data/lib/fog/aws/requests/cdn/get_distribution.rb +5 -5
  232. data/lib/fog/aws/requests/cdn/get_distribution_list.rb +3 -3
  233. data/lib/fog/aws/requests/cdn/get_invalidation.rb +5 -5
  234. data/lib/fog/aws/requests/cdn/get_invalidation_list.rb +4 -4
  235. data/lib/fog/aws/requests/cdn/get_streaming_distribution.rb +5 -5
  236. data/lib/fog/aws/requests/cdn/get_streaming_distribution_list.rb +3 -3
  237. data/lib/fog/aws/requests/cdn/post_distribution.rb +6 -6
  238. data/lib/fog/aws/requests/cdn/post_invalidation.rb +5 -5
  239. data/lib/fog/aws/requests/cdn/post_streaming_distribution.rb +6 -6
  240. data/lib/fog/aws/requests/cdn/put_distribution_config.rb +7 -7
  241. data/lib/fog/aws/requests/cdn/put_streaming_distribution_config.rb +7 -7
  242. data/lib/fog/aws/requests/cloud_formation/create_change_set.rb +1 -1
  243. data/lib/fog/aws/requests/cloud_formation/create_stack.rb +1 -1
  244. data/lib/fog/aws/requests/cloud_formation/get_template_summary.rb +1 -1
  245. data/lib/fog/aws/requests/cloud_formation/update_stack.rb +1 -1
  246. data/lib/fog/aws/requests/cloud_watch/list_metrics.rb +1 -1
  247. data/lib/fog/aws/requests/cloud_watch/put_metric_alarm.rb +2 -2
  248. data/lib/fog/aws/requests/compute/allocate_address.rb +4 -4
  249. data/lib/fog/aws/requests/compute/assign_private_ip_addresses.rb +5 -5
  250. data/lib/fog/aws/requests/compute/associate_address.rb +7 -7
  251. data/lib/fog/aws/requests/compute/associate_dhcp_options.rb +4 -4
  252. data/lib/fog/aws/requests/compute/associate_route_table.rb +5 -5
  253. data/lib/fog/aws/requests/compute/attach_classic_link_vpc.rb +7 -7
  254. data/lib/fog/aws/requests/compute/attach_internet_gateway.rb +4 -4
  255. data/lib/fog/aws/requests/compute/attach_network_interface.rb +6 -6
  256. data/lib/fog/aws/requests/compute/attach_volume.rb +7 -7
  257. data/lib/fog/aws/requests/compute/authorize_security_group_egress.rb +14 -12
  258. data/lib/fog/aws/requests/compute/authorize_security_group_ingress.rb +50 -31
  259. data/lib/fog/aws/requests/compute/cancel_spot_instance_requests.rb +4 -4
  260. data/lib/fog/aws/requests/compute/copy_image.rb +3 -3
  261. data/lib/fog/aws/requests/compute/copy_snapshot.rb +24 -11
  262. data/lib/fog/aws/requests/compute/create_dhcp_options.rb +3 -3
  263. data/lib/fog/aws/requests/compute/create_image.rb +3 -3
  264. data/lib/fog/aws/requests/compute/create_internet_gateway.rb +3 -3
  265. data/lib/fog/aws/requests/compute/create_key_pair.rb +4 -4
  266. data/lib/fog/aws/requests/compute/create_network_acl.rb +4 -4
  267. data/lib/fog/aws/requests/compute/create_network_acl_entry.rb +5 -5
  268. data/lib/fog/aws/requests/compute/create_network_interface.rb +16 -13
  269. data/lib/fog/aws/requests/compute/create_placement_group.rb +3 -3
  270. data/lib/fog/aws/requests/compute/create_route.rb +10 -10
  271. data/lib/fog/aws/requests/compute/create_route_table.rb +5 -5
  272. data/lib/fog/aws/requests/compute/create_security_group.rb +27 -22
  273. data/lib/fog/aws/requests/compute/create_snapshot.rb +3 -3
  274. data/lib/fog/aws/requests/compute/create_spot_datafeed_subscription.rb +3 -3
  275. data/lib/fog/aws/requests/compute/create_subnet.rb +23 -19
  276. data/lib/fog/aws/requests/compute/create_tags.rb +3 -3
  277. data/lib/fog/aws/requests/compute/create_volume.rb +11 -11
  278. data/lib/fog/aws/requests/compute/create_vpc.rb +43 -15
  279. data/lib/fog/aws/requests/compute/delete_dhcp_options.rb +4 -4
  280. data/lib/fog/aws/requests/compute/delete_internet_gateway.rb +4 -4
  281. data/lib/fog/aws/requests/compute/delete_key_pair.rb +3 -3
  282. data/lib/fog/aws/requests/compute/delete_network_acl.rb +5 -5
  283. data/lib/fog/aws/requests/compute/delete_network_acl_entry.rb +5 -5
  284. data/lib/fog/aws/requests/compute/delete_network_interface.rb +5 -5
  285. data/lib/fog/aws/requests/compute/delete_placement_group.rb +3 -3
  286. data/lib/fog/aws/requests/compute/delete_route.rb +6 -6
  287. data/lib/fog/aws/requests/compute/delete_route_table.rb +5 -5
  288. data/lib/fog/aws/requests/compute/delete_security_group.rb +17 -17
  289. data/lib/fog/aws/requests/compute/delete_snapshot.rb +4 -4
  290. data/lib/fog/aws/requests/compute/delete_spot_datafeed_subscription.rb +3 -3
  291. data/lib/fog/aws/requests/compute/delete_subnet.rb +4 -4
  292. data/lib/fog/aws/requests/compute/delete_tags.rb +3 -3
  293. data/lib/fog/aws/requests/compute/delete_volume.rb +5 -5
  294. data/lib/fog/aws/requests/compute/delete_vpc.rb +4 -4
  295. data/lib/fog/aws/requests/compute/deregister_image.rb +4 -4
  296. data/lib/fog/aws/requests/compute/describe_account_attributes.rb +3 -3
  297. data/lib/fog/aws/requests/compute/describe_addresses.rb +3 -3
  298. data/lib/fog/aws/requests/compute/describe_availability_zones.rb +6 -3
  299. data/lib/fog/aws/requests/compute/describe_classic_link_instances.rb +3 -3
  300. data/lib/fog/aws/requests/compute/describe_dhcp_options.rb +3 -3
  301. data/lib/fog/aws/requests/compute/describe_image_attribute.rb +74 -0
  302. data/lib/fog/aws/requests/compute/describe_images.rb +3 -3
  303. data/lib/fog/aws/requests/compute/describe_instance_attribute.rb +4 -4
  304. data/lib/fog/aws/requests/compute/describe_instance_status.rb +3 -3
  305. data/lib/fog/aws/requests/compute/describe_instances.rb +4 -4
  306. data/lib/fog/aws/requests/compute/describe_internet_gateways.rb +3 -3
  307. data/lib/fog/aws/requests/compute/describe_key_pairs.rb +3 -3
  308. data/lib/fog/aws/requests/compute/describe_network_acls.rb +3 -3
  309. data/lib/fog/aws/requests/compute/describe_network_interface_attribute.rb +19 -17
  310. data/lib/fog/aws/requests/compute/describe_network_interfaces.rb +5 -5
  311. data/lib/fog/aws/requests/compute/describe_placement_groups.rb +3 -3
  312. data/lib/fog/aws/requests/compute/describe_regions.rb +3 -3
  313. data/lib/fog/aws/requests/compute/describe_reserved_instances.rb +3 -3
  314. data/lib/fog/aws/requests/compute/describe_reserved_instances_offerings.rb +3 -3
  315. data/lib/fog/aws/requests/compute/describe_route_tables.rb +3 -3
  316. data/lib/fog/aws/requests/compute/describe_security_groups.rb +47 -10
  317. data/lib/fog/aws/requests/compute/describe_snapshots.rb +3 -3
  318. data/lib/fog/aws/requests/compute/describe_spot_datafeed_subscription.rb +3 -3
  319. data/lib/fog/aws/requests/compute/describe_spot_instance_requests.rb +3 -3
  320. data/lib/fog/aws/requests/compute/describe_spot_price_history.rb +5 -5
  321. data/lib/fog/aws/requests/compute/describe_subnets.rb +15 -14
  322. data/lib/fog/aws/requests/compute/describe_tags.rb +3 -3
  323. data/lib/fog/aws/requests/compute/describe_volume_status.rb +3 -3
  324. data/lib/fog/aws/requests/compute/describe_volumes.rb +3 -3
  325. data/lib/fog/aws/requests/compute/describe_volumes_modifications.rb +3 -3
  326. data/lib/fog/aws/requests/compute/describe_vpc_attribute.rb +5 -5
  327. data/lib/fog/aws/requests/compute/describe_vpc_classic_link.rb +4 -4
  328. data/lib/fog/aws/requests/compute/describe_vpc_classic_link_dns_support.rb +3 -3
  329. data/lib/fog/aws/requests/compute/describe_vpcs.rb +3 -3
  330. data/lib/fog/aws/requests/compute/detach_classic_link_vpc.rb +5 -5
  331. data/lib/fog/aws/requests/compute/detach_internet_gateway.rb +4 -4
  332. data/lib/fog/aws/requests/compute/detach_network_interface.rb +4 -4
  333. data/lib/fog/aws/requests/compute/detach_volume.rb +5 -5
  334. data/lib/fog/aws/requests/compute/disable_vpc_classic_link.rb +4 -4
  335. data/lib/fog/aws/requests/compute/disable_vpc_classic_link_dns_support.rb +4 -4
  336. data/lib/fog/aws/requests/compute/disassociate_address.rb +5 -5
  337. data/lib/fog/aws/requests/compute/disassociate_route_table.rb +5 -5
  338. data/lib/fog/aws/requests/compute/enable_vpc_classic_link.rb +4 -4
  339. data/lib/fog/aws/requests/compute/enable_vpc_classic_link_dns_support.rb +4 -4
  340. data/lib/fog/aws/requests/compute/get_console_output.rb +4 -4
  341. data/lib/fog/aws/requests/compute/get_password_data.rb +4 -4
  342. data/lib/fog/aws/requests/compute/import_key_pair.rb +4 -4
  343. data/lib/fog/aws/requests/compute/modify_image_attribute.rb +4 -4
  344. data/lib/fog/aws/requests/compute/modify_instance_attribute.rb +3 -3
  345. data/lib/fog/aws/requests/compute/modify_instance_placement.rb +33 -0
  346. data/lib/fog/aws/requests/compute/modify_network_interface_attribute.rb +12 -12
  347. data/lib/fog/aws/requests/compute/modify_snapshot_attribute.rb +3 -3
  348. data/lib/fog/aws/requests/compute/modify_subnet_attribute.rb +3 -3
  349. data/lib/fog/aws/requests/compute/modify_volume.rb +6 -6
  350. data/lib/fog/aws/requests/compute/modify_volume_attribute.rb +4 -4
  351. data/lib/fog/aws/requests/compute/modify_vpc_attribute.rb +7 -7
  352. data/lib/fog/aws/requests/compute/monitor_instances.rb +4 -4
  353. data/lib/fog/aws/requests/compute/move_address_to_vpc.rb +4 -4
  354. data/lib/fog/aws/requests/compute/purchase_reserved_instances_offering.rb +3 -3
  355. data/lib/fog/aws/requests/compute/reboot_instances.rb +4 -4
  356. data/lib/fog/aws/requests/compute/register_image.rb +4 -4
  357. data/lib/fog/aws/requests/compute/release_address.rb +5 -5
  358. data/lib/fog/aws/requests/compute/replace_network_acl_association.rb +5 -5
  359. data/lib/fog/aws/requests/compute/replace_network_acl_entry.rb +5 -5
  360. data/lib/fog/aws/requests/compute/replace_route.rb +10 -10
  361. data/lib/fog/aws/requests/compute/request_spot_instances.rb +8 -8
  362. data/lib/fog/aws/requests/compute/reset_network_interface_attribute.rb +6 -6
  363. data/lib/fog/aws/requests/compute/restore_address_to_classic.rb +5 -5
  364. data/lib/fog/aws/requests/compute/revoke_security_group_egress.rb +23 -29
  365. data/lib/fog/aws/requests/compute/revoke_security_group_ingress.rb +22 -29
  366. data/lib/fog/aws/requests/compute/run_instances.rb +69 -5
  367. data/lib/fog/aws/requests/compute/start_instances.rb +4 -4
  368. data/lib/fog/aws/requests/compute/stop_instances.rb +15 -7
  369. data/lib/fog/aws/requests/compute/terminate_instances.rb +4 -4
  370. data/lib/fog/aws/requests/compute/unmonitor_instances.rb +4 -4
  371. data/lib/fog/aws/requests/data_pipeline/deactivate_pipeline.rb +1 -1
  372. data/lib/fog/aws/requests/dns/change_resource_record_sets.rb +6 -139
  373. data/lib/fog/aws/requests/dns/create_health_check.rb +3 -3
  374. data/lib/fog/aws/requests/dns/create_hosted_zone.rb +4 -4
  375. data/lib/fog/aws/requests/dns/delete_health_check.rb +2 -2
  376. data/lib/fog/aws/requests/dns/delete_hosted_zone.rb +4 -4
  377. data/lib/fog/aws/requests/dns/get_change.rb +4 -4
  378. data/lib/fog/aws/requests/dns/get_health_check.rb +3 -3
  379. data/lib/fog/aws/requests/dns/get_hosted_zone.rb +4 -4
  380. data/lib/fog/aws/requests/dns/list_health_checks.rb +3 -3
  381. data/lib/fog/aws/requests/dns/list_hosted_zones.rb +3 -3
  382. data/lib/fog/aws/requests/dns/list_resource_record_sets.rb +5 -5
  383. data/lib/fog/aws/requests/dynamodb/update_item.rb +6 -5
  384. data/lib/fog/aws/requests/ecs/list_task_definitions.rb +1 -1
  385. data/lib/fog/aws/requests/efs/create_file_system.rb +15 -3
  386. data/lib/fog/aws/requests/efs/create_mount_target.rb +8 -4
  387. data/lib/fog/aws/requests/elasticache/authorize_cache_security_group_ingress.rb +1 -1
  388. data/lib/fog/aws/requests/elasticache/create_cache_cluster.rb +2 -2
  389. data/lib/fog/aws/requests/elasticache/describe_engine_default_parameters.rb +1 -1
  390. data/lib/fog/aws/requests/elb/create_load_balancer.rb +11 -42
  391. data/lib/fog/aws/requests/elb/create_load_balancer_listeners.rb +24 -21
  392. data/lib/fog/aws/requests/elb/delete_load_balancer_listeners.rb +1 -1
  393. data/lib/fog/aws/requests/elb/deregister_instances_from_load_balancer.rb +1 -1
  394. data/lib/fog/aws/requests/elb/describe_instance_health.rb +1 -1
  395. data/lib/fog/aws/requests/elb/describe_tags.rb +1 -1
  396. data/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb +1 -1
  397. data/lib/fog/aws/requests/elbv2/add_tags.rb +45 -0
  398. data/lib/fog/aws/requests/elbv2/create_load_balancer.rb +160 -0
  399. data/lib/fog/aws/requests/elbv2/describe_listeners.rb +38 -0
  400. data/lib/fog/aws/requests/elbv2/describe_load_balancers.rb +100 -0
  401. data/lib/fog/aws/requests/elbv2/describe_tags.rb +50 -0
  402. data/lib/fog/aws/requests/elbv2/remove_tags.rb +45 -0
  403. data/lib/fog/aws/requests/glacier/initiate_job.rb +1 -1
  404. data/lib/fog/aws/requests/glacier/initiate_multipart_upload.rb +1 -1
  405. data/lib/fog/aws/requests/kinesis/list_streams.rb +1 -1
  406. data/lib/fog/aws/requests/kinesis/put_record.rb +1 -2
  407. data/lib/fog/aws/requests/kinesis/put_records.rb +1 -2
  408. data/lib/fog/aws/requests/lambda/invoke.rb +8 -8
  409. data/lib/fog/aws/requests/rds/add_tags_to_resource.rb +12 -10
  410. data/lib/fog/aws/requests/rds/authorize_db_security_group_ingress.rb +3 -3
  411. data/lib/fog/aws/requests/rds/create_db_cluster.rb +1 -1
  412. data/lib/fog/aws/requests/rds/create_db_instance.rb +1 -1
  413. data/lib/fog/aws/requests/rds/create_db_subnet_group.rb +2 -2
  414. data/lib/fog/aws/requests/rds/describe_db_snapshots.rb +1 -1
  415. data/lib/fog/aws/requests/rds/describe_orderable_db_instance_options.rb +12 -6
  416. data/lib/fog/aws/requests/rds/list_tags_for_resource.rb +10 -7
  417. data/lib/fog/aws/requests/rds/modify_db_instance.rb +2 -2
  418. data/lib/fog/aws/requests/rds/modify_db_parameter_group.rb +1 -1
  419. data/lib/fog/aws/requests/rds/remove_tags_from_resource.rb +9 -8
  420. data/lib/fog/aws/requests/rds/revoke_db_security_group_ingress.rb +1 -1
  421. data/lib/fog/aws/requests/ses/send_raw_email.rb +1 -1
  422. data/lib/fog/aws/requests/sqs/change_message_visibility.rb +1 -1
  423. data/lib/fog/aws/requests/sqs/delete_message.rb +1 -1
  424. data/lib/fog/aws/requests/storage/abort_multipart_upload.rb +3 -3
  425. data/lib/fog/aws/requests/storage/acl_utils.rb +3 -3
  426. data/lib/fog/aws/requests/storage/complete_multipart_upload.rb +4 -4
  427. data/lib/fog/aws/requests/storage/copy_object.rb +5 -4
  428. data/lib/fog/aws/requests/storage/cors_utils.rb +3 -3
  429. data/lib/fog/aws/requests/storage/delete_bucket.rb +2 -2
  430. data/lib/fog/aws/requests/storage/delete_bucket_cors.rb +2 -2
  431. data/lib/fog/aws/requests/storage/delete_bucket_lifecycle.rb +2 -2
  432. data/lib/fog/aws/requests/storage/delete_bucket_policy.rb +2 -2
  433. data/lib/fog/aws/requests/storage/delete_bucket_tagging.rb +2 -2
  434. data/lib/fog/aws/requests/storage/delete_bucket_website.rb +2 -2
  435. data/lib/fog/aws/requests/storage/delete_multiple_objects.rb +21 -11
  436. data/lib/fog/aws/requests/storage/delete_object.rb +2 -2
  437. data/lib/fog/aws/requests/storage/delete_object_url.rb +40 -0
  438. data/lib/fog/aws/requests/storage/get_bucket.rb +5 -5
  439. data/lib/fog/aws/requests/storage/get_bucket_acl.rb +4 -4
  440. data/lib/fog/aws/requests/storage/get_bucket_cors.rb +4 -4
  441. data/lib/fog/aws/requests/storage/get_bucket_lifecycle.rb +3 -3
  442. data/lib/fog/aws/requests/storage/get_bucket_location.rb +5 -6
  443. data/lib/fog/aws/requests/storage/get_bucket_logging.rb +3 -3
  444. data/lib/fog/aws/requests/storage/get_bucket_notification.rb +3 -3
  445. data/lib/fog/aws/requests/storage/get_bucket_object_versions.rb +5 -5
  446. data/lib/fog/aws/requests/storage/get_bucket_policy.rb +2 -2
  447. data/lib/fog/aws/requests/storage/get_bucket_tagging.rb +3 -3
  448. data/lib/fog/aws/requests/storage/get_bucket_versioning.rb +3 -3
  449. data/lib/fog/aws/requests/storage/get_bucket_website.rb +3 -3
  450. data/lib/fog/aws/requests/storage/get_object.rb +3 -3
  451. data/lib/fog/aws/requests/storage/get_object_acl.rb +4 -4
  452. data/lib/fog/aws/requests/storage/get_object_http_url.rb +2 -2
  453. data/lib/fog/aws/requests/storage/get_object_https_url.rb +2 -2
  454. data/lib/fog/aws/requests/storage/get_object_tagging.rb +41 -0
  455. data/lib/fog/aws/requests/storage/get_object_torrent.rb +2 -2
  456. data/lib/fog/aws/requests/storage/get_object_url.rb +2 -2
  457. data/lib/fog/aws/requests/storage/get_request_payment.rb +3 -3
  458. data/lib/fog/aws/requests/storage/get_service.rb +5 -5
  459. data/lib/fog/aws/requests/storage/head_bucket.rb +2 -2
  460. data/lib/fog/aws/requests/storage/head_object.rb +2 -2
  461. data/lib/fog/aws/requests/storage/head_object_url.rb +2 -2
  462. data/lib/fog/aws/requests/storage/initiate_multipart_upload.rb +4 -4
  463. data/lib/fog/aws/requests/storage/list_multipart_uploads.rb +3 -3
  464. data/lib/fog/aws/requests/storage/list_parts.rb +4 -4
  465. data/lib/fog/aws/requests/storage/post_object_hidden_fields.rb +2 -2
  466. data/lib/fog/aws/requests/storage/post_object_restore.rb +2 -2
  467. data/lib/fog/aws/requests/storage/put_bucket.rb +2 -6
  468. data/lib/fog/aws/requests/storage/put_bucket_acl.rb +4 -4
  469. data/lib/fog/aws/requests/storage/put_bucket_cors.rb +4 -4
  470. data/lib/fog/aws/requests/storage/put_bucket_lifecycle.rb +3 -3
  471. data/lib/fog/aws/requests/storage/put_bucket_logging.rb +2 -2
  472. data/lib/fog/aws/requests/storage/put_bucket_notification.rb +3 -3
  473. data/lib/fog/aws/requests/storage/put_bucket_policy.rb +2 -2
  474. data/lib/fog/aws/requests/storage/put_bucket_tagging.rb +2 -2
  475. data/lib/fog/aws/requests/storage/put_bucket_versioning.rb +2 -2
  476. data/lib/fog/aws/requests/storage/put_bucket_website.rb +2 -2
  477. data/lib/fog/aws/requests/storage/put_object.rb +10 -9
  478. data/lib/fog/aws/requests/storage/put_object_acl.rb +4 -4
  479. data/lib/fog/aws/requests/storage/put_object_tagging.rb +42 -0
  480. data/lib/fog/aws/requests/storage/put_object_url.rb +2 -2
  481. data/lib/fog/aws/requests/storage/put_request_payment.rb +2 -2
  482. data/lib/fog/aws/requests/storage/shared_mock_methods.rb +4 -3
  483. data/lib/fog/aws/requests/storage/sync_clock.rb +11 -3
  484. data/lib/fog/aws/requests/storage/upload_part.rb +3 -3
  485. data/lib/fog/aws/requests/storage/upload_part_copy.rb +119 -0
  486. data/lib/fog/aws/requests/sts/assume_role_with_web_identity.rb +7 -6
  487. data/lib/fog/aws/service_mapper.rb +129 -0
  488. data/lib/fog/aws/ses.rb +1 -1
  489. data/lib/fog/aws/signaturev4.rb +1 -1
  490. data/lib/fog/aws/simpledb.rb +1 -1
  491. data/lib/fog/aws/sns.rb +1 -1
  492. data/lib/fog/aws/sqs.rb +1 -1
  493. data/lib/fog/aws/storage.rb +107 -20
  494. data/lib/fog/aws/support.rb +1 -1
  495. data/lib/fog/aws/version.rb +1 -1
  496. data/lib/fog/aws.rb +31 -19
  497. metadata +70 -297
  498. data/.gitignore +0 -16
  499. data/.travis.yml +0 -54
  500. data/Gemfile +0 -14
  501. data/Rakefile +0 -8
  502. data/gemfiles/Gemfile-edge +0 -14
  503. data/gemfiles/Gemfile-ruby-1.8.7 +0 -6
  504. data/gemfiles/Gemfile-ruby-1.9 +0 -7
  505. data/gemfiles/Gemfile-ruby-2.0 +0 -7
  506. data/tests/credentials_tests.rb +0 -86
  507. data/tests/helper.rb +0 -29
  508. data/tests/helpers/collection_helper.rb +0 -97
  509. data/tests/helpers/compute/flavors_helper.rb +0 -32
  510. data/tests/helpers/compute/server_helper.rb +0 -25
  511. data/tests/helpers/compute/servers_helper.rb +0 -10
  512. data/tests/helpers/dns_helper.rb +0 -55
  513. data/tests/helpers/formats_helper.rb +0 -98
  514. data/tests/helpers/formats_helper_tests.rb +0 -110
  515. data/tests/helpers/mock_helper.rb +0 -109
  516. data/tests/helpers/model_helper.rb +0 -31
  517. data/tests/helpers/responds_to_helper.rb +0 -11
  518. data/tests/helpers/schema_validator_tests.rb +0 -107
  519. data/tests/helpers/succeeds_helper.rb +0 -9
  520. data/tests/lorem.txt +0 -1
  521. data/tests/models/auto_scaling/activities_tests.rb +0 -6
  522. data/tests/models/auto_scaling/configuration_test.rb +0 -13
  523. data/tests/models/auto_scaling/configurations_tests.rb +0 -11
  524. data/tests/models/auto_scaling/groups_test.rb +0 -27
  525. data/tests/models/auto_scaling/helper.rb +0 -0
  526. data/tests/models/auto_scaling/instance_tests.rb +0 -15
  527. data/tests/models/auto_scaling/instances_tests.rb +0 -6
  528. data/tests/models/beanstalk/application_tests.rb +0 -69
  529. data/tests/models/beanstalk/applications_tests.rb +0 -7
  530. data/tests/models/beanstalk/environment_tests.rb +0 -131
  531. data/tests/models/beanstalk/environments_tests.rb +0 -34
  532. data/tests/models/beanstalk/template_tests.rb +0 -47
  533. data/tests/models/beanstalk/templates_tests.rb +0 -62
  534. data/tests/models/beanstalk/version_tests.rb +0 -66
  535. data/tests/models/beanstalk/versions_tests.rb +0 -60
  536. data/tests/models/cdn/distribution_tests.rb +0 -15
  537. data/tests/models/cdn/distributions_tests.rb +0 -15
  538. data/tests/models/cdn/invalidation_tests.rb +0 -31
  539. data/tests/models/cdn/invalidations_tests.rb +0 -14
  540. data/tests/models/cdn/streaming_distribution_tests.rb +0 -15
  541. data/tests/models/cdn/streaming_distributions_tests.rb +0 -15
  542. data/tests/models/cloud_watch/alarm_data_tests.rb +0 -42
  543. data/tests/models/cloud_watch/alarm_history_tests.rb +0 -22
  544. data/tests/models/cloud_watch/metric_statistics_tests.rb +0 -51
  545. data/tests/models/cloud_watch/metrics_tests.rb +0 -32
  546. data/tests/models/compute/address_tests.rb +0 -43
  547. data/tests/models/compute/addresses_tests.rb +0 -5
  548. data/tests/models/compute/dhcp_option_tests.rb +0 -3
  549. data/tests/models/compute/dhcp_options_tests.rb +0 -3
  550. data/tests/models/compute/internet_gateway_tests.rb +0 -3
  551. data/tests/models/compute/internet_gateways_tests.rb +0 -3
  552. data/tests/models/compute/key_pair_tests.rb +0 -26
  553. data/tests/models/compute/key_pairs_tests.rb +0 -5
  554. data/tests/models/compute/network_acl_tests.rb +0 -109
  555. data/tests/models/compute/network_acls_tests.rb +0 -20
  556. data/tests/models/compute/network_interfaces_test.rb +0 -12
  557. data/tests/models/compute/security_group_tests.rb +0 -98
  558. data/tests/models/compute/security_groups_tests.rb +0 -5
  559. data/tests/models/compute/server_tests.rb +0 -94
  560. data/tests/models/compute/snapshot_tests.rb +0 -10
  561. data/tests/models/compute/snapshots_tests.rb +0 -10
  562. data/tests/models/compute/subnet_tests.rb +0 -13
  563. data/tests/models/compute/subnets_tests.rb +0 -5
  564. data/tests/models/compute/volume_tests.rb +0 -58
  565. data/tests/models/compute/volumes_tests.rb +0 -5
  566. data/tests/models/compute/vpc_tests.rb +0 -26
  567. data/tests/models/compute/vpcs_tests.rb +0 -19
  568. data/tests/models/data_pipeline/pipeline_tests.rb +0 -8
  569. data/tests/models/data_pipeline/pipelines_tests.rb +0 -8
  570. data/tests/models/dns/record_tests.rb +0 -33
  571. data/tests/models/dns/records_tests.rb +0 -41
  572. data/tests/models/dns/zone_tests.rb +0 -4
  573. data/tests/models/dns/zones_tests.rb +0 -4
  574. data/tests/models/efs/file_system_tests.rb +0 -12
  575. data/tests/models/efs/mount_target_tests.rb +0 -43
  576. data/tests/models/efs/mount_targets_tests.rb +0 -30
  577. data/tests/models/elasticache/cluster_tests.rb +0 -30
  578. data/tests/models/elasticache/parameter_groups_tests.rb +0 -15
  579. data/tests/models/elasticache/security_groups_tests.rb +0 -52
  580. data/tests/models/elasticache/subnet_groups_tests.rb +0 -44
  581. data/tests/models/elb/model_tests.rb +0 -360
  582. data/tests/models/elb/tagging_tests.rb +0 -15
  583. data/tests/models/glacier/model_tests.rb +0 -47
  584. data/tests/models/iam/access_keys_tests.rb +0 -53
  585. data/tests/models/iam/groups_tests.rb +0 -59
  586. data/tests/models/iam/instance_profile_tests.rb +0 -18
  587. data/tests/models/iam/managed_policies_tests.rb +0 -89
  588. data/tests/models/iam/policies_tests.rb +0 -57
  589. data/tests/models/iam/roles_tests.rb +0 -71
  590. data/tests/models/iam/users_tests.rb +0 -119
  591. data/tests/models/rds/cluster_tests.rb +0 -54
  592. data/tests/models/rds/clusters_tests.rb +0 -5
  593. data/tests/models/rds/event_subscription_tests.rb +0 -9
  594. data/tests/models/rds/event_subscriptions_tests.rb +0 -6
  595. data/tests/models/rds/helper.rb +0 -25
  596. data/tests/models/rds/instance_option_tests.rb +0 -14
  597. data/tests/models/rds/parameter_group_tests.rb +0 -24
  598. data/tests/models/rds/parameter_groups_tests.rb +0 -8
  599. data/tests/models/rds/security_group_tests.rb +0 -77
  600. data/tests/models/rds/security_groups_tests.rb +0 -5
  601. data/tests/models/rds/server_tests.rb +0 -131
  602. data/tests/models/rds/servers_tests.rb +0 -24
  603. data/tests/models/rds/snapshot_tests.rb +0 -12
  604. data/tests/models/rds/snapshots_tests.rb +0 -12
  605. data/tests/models/rds/tagging_tests.rb +0 -20
  606. data/tests/models/sns/topic_tests.rb +0 -15
  607. data/tests/models/sns/topics_tests.rb +0 -6
  608. data/tests/models/storage/directory_tests.rb +0 -91
  609. data/tests/models/storage/file_tests.rb +0 -133
  610. data/tests/models/storage/files_tests.rb +0 -58
  611. data/tests/models/storage/url_tests.rb +0 -44
  612. data/tests/models/storage/version_tests.rb +0 -52
  613. data/tests/models/storage/versions_tests.rb +0 -56
  614. data/tests/models/support/trusted_advisor_tests.rb +0 -25
  615. data/tests/parsers/compute/describe_images_tests.rb +0 -33
  616. data/tests/parsers/elb/describe_load_balancers.rb +0 -65
  617. data/tests/requests/auto_scaling/auto_scaling_tests.rb +0 -103
  618. data/tests/requests/auto_scaling/describe_types_tests.rb +0 -102
  619. data/tests/requests/auto_scaling/helper.rb +0 -229
  620. data/tests/requests/auto_scaling/model_tests.rb +0 -235
  621. data/tests/requests/auto_scaling/notification_configuration_tests.rb +0 -124
  622. data/tests/requests/auto_scaling/tag_tests.rb +0 -63
  623. data/tests/requests/beanstalk/application_tests.rb +0 -140
  624. data/tests/requests/beanstalk/solution_stack_tests.rb +0 -22
  625. data/tests/requests/cdn/cdn_tests.rb +0 -252
  626. data/tests/requests/cloud_formation/stack_tests.rb +0 -167
  627. data/tests/requests/cloud_watch/get_metric_statistics_tests.rb +0 -28
  628. data/tests/requests/cloud_watch/list_metrics_test.rb +0 -64
  629. data/tests/requests/cloud_watch/put_metric_data_tests.rb +0 -36
  630. data/tests/requests/compute/address_tests.rb +0 -144
  631. data/tests/requests/compute/assign_private_ip_tests.rb +0 -55
  632. data/tests/requests/compute/availability_zone_tests.rb +0 -25
  633. data/tests/requests/compute/client_tests.rb +0 -25
  634. data/tests/requests/compute/dhcp_options_tests.rb +0 -39
  635. data/tests/requests/compute/helper.rb +0 -27
  636. data/tests/requests/compute/image_tests.rb +0 -160
  637. data/tests/requests/compute/instance_attrib_tests.rb +0 -168
  638. data/tests/requests/compute/instance_tests.rb +0 -338
  639. data/tests/requests/compute/internet_gateway_tests.rb +0 -49
  640. data/tests/requests/compute/key_pair_tests.rb +0 -67
  641. data/tests/requests/compute/network_acl_tests.rb +0 -112
  642. data/tests/requests/compute/network_interface_tests.rb +0 -250
  643. data/tests/requests/compute/placement_group_tests.rb +0 -48
  644. data/tests/requests/compute/region_tests.rb +0 -52
  645. data/tests/requests/compute/route_tests.rb +0 -341
  646. data/tests/requests/compute/security_group_tests.rb +0 -446
  647. data/tests/requests/compute/snapshot_tests.rb +0 -77
  648. data/tests/requests/compute/spot_datafeed_subscription_tests.rb +0 -47
  649. data/tests/requests/compute/spot_instance_tests.rb +0 -55
  650. data/tests/requests/compute/spot_price_history_tests.rb +0 -23
  651. data/tests/requests/compute/subnet_tests.rb +0 -85
  652. data/tests/requests/compute/tag_tests.rb +0 -101
  653. data/tests/requests/compute/volume_tests.rb +0 -263
  654. data/tests/requests/compute/vpc_tests.rb +0 -214
  655. data/tests/requests/data_pipeline/helper.rb +0 -78
  656. data/tests/requests/data_pipeline/pipeline_tests.rb +0 -80
  657. data/tests/requests/dns/change_resource_record_sets_tests.rb +0 -34
  658. data/tests/requests/dns/dns_tests.rb +0 -244
  659. data/tests/requests/dns/health_check_tests.rb +0 -159
  660. data/tests/requests/dns/helper.rb +0 -21
  661. data/tests/requests/dynamodb/item_tests.rb +0 -137
  662. data/tests/requests/dynamodb/table_tests.rb +0 -99
  663. data/tests/requests/ecs/cluster_tests.rb +0 -112
  664. data/tests/requests/ecs/container_instance_tests.rb +0 -119
  665. data/tests/requests/ecs/helper.rb +0 -276
  666. data/tests/requests/ecs/sample_task_definition1.json +0 -56
  667. data/tests/requests/ecs/service_tests.rb +0 -132
  668. data/tests/requests/ecs/task_definitions_tests.rb +0 -97
  669. data/tests/requests/ecs/task_tests.rb +0 -145
  670. data/tests/requests/efs/file_system_tests.rb +0 -152
  671. data/tests/requests/efs/helper.rb +0 -42
  672. data/tests/requests/elasticache/cache_cluster_tests.rb +0 -137
  673. data/tests/requests/elasticache/describe_events.rb +0 -17
  674. data/tests/requests/elasticache/describe_reserved_cache_nodes.rb +0 -17
  675. data/tests/requests/elasticache/helper.rb +0 -103
  676. data/tests/requests/elasticache/parameter_group_tests.rb +0 -105
  677. data/tests/requests/elasticache/security_group_tests.rb +0 -108
  678. data/tests/requests/elasticache/subnet_group_tests.rb +0 -52
  679. data/tests/requests/elb/helper.rb +0 -91
  680. data/tests/requests/elb/listener_tests.rb +0 -68
  681. data/tests/requests/elb/load_balancer_tests.rb +0 -89
  682. data/tests/requests/elb/policy_tests.rb +0 -132
  683. data/tests/requests/emr/helper.rb +0 -167
  684. data/tests/requests/emr/instance_group_tests.rb +0 -106
  685. data/tests/requests/emr/job_flow_tests.rb +0 -88
  686. data/tests/requests/federation/get_signin_token_tests.rb +0 -11
  687. data/tests/requests/glacier/archive_tests.rb +0 -13
  688. data/tests/requests/glacier/multipart_upload_tests.rb +0 -29
  689. data/tests/requests/glacier/tree_hash_tests.rb +0 -62
  690. data/tests/requests/glacier/vault_tests.rb +0 -35
  691. data/tests/requests/iam/access_key_tests.rb +0 -53
  692. data/tests/requests/iam/account_policy_tests.rb +0 -20
  693. data/tests/requests/iam/account_tests.rb +0 -34
  694. data/tests/requests/iam/group_policy_tests.rb +0 -48
  695. data/tests/requests/iam/group_tests.rb +0 -44
  696. data/tests/requests/iam/helper.rb +0 -154
  697. data/tests/requests/iam/instance_profile_tests.rb +0 -44
  698. data/tests/requests/iam/login_profile_tests.rb +0 -62
  699. data/tests/requests/iam/managed_policy_tests.rb +0 -111
  700. data/tests/requests/iam/mfa_tests.rb +0 -23
  701. data/tests/requests/iam/role_tests.rb +0 -156
  702. data/tests/requests/iam/server_certificate_tests.rb +0 -130
  703. data/tests/requests/iam/user_policy_tests.rb +0 -45
  704. data/tests/requests/iam/user_tests.rb +0 -78
  705. data/tests/requests/iam/versioned_managed_policy_tests.rb +0 -114
  706. data/tests/requests/kinesis/helper.rb +0 -111
  707. data/tests/requests/kinesis/stream_tests.rb +0 -169
  708. data/tests/requests/kms/helper.rb +0 -27
  709. data/tests/requests/kms/key_tests.rb +0 -23
  710. data/tests/requests/lambda/function_sample_1.js +0 -9
  711. data/tests/requests/lambda/function_sample_2.js +0 -9
  712. data/tests/requests/lambda/function_tests.rb +0 -460
  713. data/tests/requests/lambda/helper.rb +0 -81
  714. data/tests/requests/rds/cluster_snapshot_tests.rb +0 -43
  715. data/tests/requests/rds/cluster_tests.rb +0 -37
  716. data/tests/requests/rds/db_engine_versions.rb +0 -7
  717. data/tests/requests/rds/db_snapshot_tests.rb +0 -62
  718. data/tests/requests/rds/describe_events.rb +0 -16
  719. data/tests/requests/rds/event_subscription_tests.rb +0 -30
  720. data/tests/requests/rds/helper.rb +0 -401
  721. data/tests/requests/rds/instance_option_tests.rb +0 -21
  722. data/tests/requests/rds/instance_tests.rb +0 -149
  723. data/tests/requests/rds/log_file_tests.rb +0 -19
  724. data/tests/requests/rds/parameter_group_tests.rb +0 -62
  725. data/tests/requests/rds/parameter_request_tests.rb +0 -32
  726. data/tests/requests/rds/security_group_tests.rb +0 -101
  727. data/tests/requests/rds/subnet_groups_tests.rb +0 -52
  728. data/tests/requests/rds/tagging_tests.rb +0 -78
  729. data/tests/requests/redshift/cluster_parameter_group_tests.rb +0 -76
  730. data/tests/requests/redshift/cluster_security_group_tests.rb +0 -42
  731. data/tests/requests/redshift/cluster_snapshot_tests.rb +0 -73
  732. data/tests/requests/redshift/cluster_tests.rb +0 -80
  733. data/tests/requests/ses/helper.rb +0 -9
  734. data/tests/requests/ses/verified_domain_identity_tests.rb +0 -16
  735. data/tests/requests/ses/verified_email_address_tests.rb +0 -27
  736. data/tests/requests/simpledb/attributes_tests.rb +0 -86
  737. data/tests/requests/simpledb/domain_tests.rb +0 -51
  738. data/tests/requests/simpledb/helper.rb +0 -10
  739. data/tests/requests/sns/helper.rb +0 -9
  740. data/tests/requests/sns/subscription_tests.rb +0 -86
  741. data/tests/requests/sns/topic_tests.rb +0 -53
  742. data/tests/requests/sqs/helper.rb +0 -9
  743. data/tests/requests/sqs/message_tests.rb +0 -51
  744. data/tests/requests/sqs/queue_tests.rb +0 -50
  745. data/tests/requests/storage/acl_utils_tests.rb +0 -209
  746. data/tests/requests/storage/bucket_tests.rb +0 -416
  747. data/tests/requests/storage/cors_utils_tests.rb +0 -108
  748. data/tests/requests/storage/delete_multiple_objects_tests.rb +0 -12
  749. data/tests/requests/storage/multipart_upload_tests.rb +0 -121
  750. data/tests/requests/storage/object_tests.rb +0 -271
  751. data/tests/requests/storage/versioning_tests.rb +0 -262
  752. data/tests/requests/sts/assume_role_tests.rb +0 -19
  753. data/tests/requests/sts/assume_role_with_saml_tests.rb +0 -18
  754. data/tests/requests/sts/assume_role_with_web_identity_tests.rb +0 -26
  755. data/tests/requests/sts/get_federation_token_tests.rb +0 -20
  756. data/tests/requests/sts/session_token_tests.rb +0 -16
  757. data/tests/requests/support/helper.rb +0 -43
  758. data/tests/requests/support/trusted_advisor_check_tests.rb +0 -16
  759. data/tests/signaturev4_tests.rb +0 -107
  760. data/tests/signed_params_tests.rb +0 -17
  761. data/tests/storage_tests.rb +0 -7
@@ -1,6 +1,6 @@
1
1
  module Fog
2
- module Compute
3
- class AWS
2
+ module AWS
3
+ class Compute
4
4
  class Real
5
5
  require 'fog/aws/parsers/compute/run_instances'
6
6
 
@@ -30,6 +30,8 @@ module Fog
30
30
  # * 'Ebs.Encrypted'<~Boolean> - specifies whether or not the volume is to be encrypted unless snapshot is specified
31
31
  # * 'Ebs.VolumeType'<~String> - Type of EBS volue. Valid options in ['standard', 'io1'] default is 'standard'.
32
32
  # * 'Ebs.Iops'<~String> - The number of I/O operations per second (IOPS) that the volume supports. Required when VolumeType is 'io1'
33
+ # * 'HibernationOptions'<~Array>: array of hashes
34
+ # * 'Configured'<~Boolean> - specifies whether or not the instance is configured for hibernation. This parameter is valid only if the instance meets the hibernation prerequisites.
33
35
  # * 'NetworkInterfaces'<~Array>: array of hashes
34
36
  # * 'NetworkInterfaceId'<~String> - An existing interface to attach to a single instance
35
37
  # * 'DeviceIndex'<~String> - The device index. Applies both to attaching an existing network interface and creating a network interface
@@ -42,13 +44,18 @@ module Fog
42
44
  # * 'PrivateIpAddresses.Primary'<~Bool> - Indicates whether the private IP address is the primary private IP address.
43
45
  # * 'SecondaryPrivateIpAddressCount'<~Bool> - The number of private IP addresses to assign to the network interface.
44
46
  # * 'AssociatePublicIpAddress'<~String> - Indicates whether to assign a public IP address to an instance in a VPC. The public IP address is assigned to a specific network interface
47
+ # * 'TagSpecifications'<~Array>: array of hashes
48
+ # * 'ResourceType'<~String> - Type of resource to apply tags on, e.g: instance or volume
49
+ # * 'Tags'<~Array> - List of hashes reprensenting tag to be set
50
+ # * 'Key'<~String> - Tag name
51
+ # * 'Value'<~String> - Tag value
45
52
  # * 'ClientToken'<~String> - unique case-sensitive token for ensuring idempotency
46
53
  # * 'DisableApiTermination'<~Boolean> - specifies whether or not to allow termination of the instance from the api
47
54
  # * 'SecurityGroup'<~Array> or <~String> - Name of security group(s) for instances (not supported for VPC)
48
55
  # * 'SecurityGroupId'<~Array> or <~String> - id's of security group(s) for instances, use this or SecurityGroup
49
56
  # * 'InstanceInitiatedShutdownBehaviour'<~String> - specifies whether volumes are stopped or terminated when instance is shutdown, in [stop, terminate]
50
57
  # * 'InstanceType'<~String> - Type of instance to boot. Valid options
51
- # in ['t1.micro', 't2.micro', 't2.small', 't2.medium', 'm1.small', 'm1.medium', 'm1.large', 'm1.xlarge', 'c1.medium', 'c1.xlarge', 'c3.large', 'c3.xlarge', 'c3.2xlarge', 'c3.4xlarge', 'c3.8xlarge', 'g2.2xlarge', 'hs1.8xlarge', 'm2.xlarge', 'm2.2xlarge', 'm2.4xlarge', 'cr1.8xlarge', 'm3.xlarge', 'm3.2xlarge', 'hi1.4xlarge', 'cc1.4xlarge', 'cc2.8xlarge', 'cg1.4xlarge', 'i2.xlarge', 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge']
58
+ # in ['t1.micro', 't2.nano', 't2.micro', 't2.small', 't2.medium', 'm1.small', 'm1.medium', 'm1.large', 'm1.xlarge', 'c1.medium', 'c1.xlarge', 'c3.large', 'c3.xlarge', 'c3.2xlarge', 'c3.4xlarge', 'c3.8xlarge', 'g2.2xlarge', 'hs1.8xlarge', 'm2.xlarge', 'm2.2xlarge', 'm2.4xlarge', 'cr1.8xlarge', 'm3.xlarge', 'm3.2xlarge', 'hi1.4xlarge', 'cc1.4xlarge', 'cc2.8xlarge', 'cg1.4xlarge', 'i2.xlarge', 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge']
52
59
  # default is 'm1.small'
53
60
  # * 'KernelId'<~String> - Id of kernel with which to launch
54
61
  # * 'KeyName'<~String> - Name of a keypair to add to booting instances
@@ -75,6 +82,8 @@ module Fog
75
82
  # * 'deviceName'<~String> - specifies how volume is exposed to instance
76
83
  # * 'status'<~String> - status of attached volume
77
84
  # * 'volumeId'<~String> - Id of attached volume
85
+ # * 'hibernationOptions'<~Array>
86
+ # * 'configured'<~Boolean> - whether or not the instance is enabled for hibernation
78
87
  # * 'dnsName'<~String> - public dns name, blank until instance is running
79
88
  # * 'imageId'<~String> - image id of ami used to launch instance
80
89
  # * 'instanceId'<~String> - id of the instance
@@ -111,6 +120,13 @@ module Fog
111
120
  end
112
121
  end
113
122
  end
123
+ if hibernation_options = options.delete('HibernationOptions')
124
+ hibernation_options.each_with_index do |mapping, index|
125
+ for key, value in mapping
126
+ options.merge!({ format("HibernationOptions.%d.#{key}", index) => value })
127
+ end
128
+ end
129
+ end
114
130
  if security_groups = options.delete('SecurityGroup')
115
131
  options.merge!(Fog::AWS.indexed_param('SecurityGroup', [*security_groups]))
116
132
  end
@@ -133,6 +149,45 @@ module Fog
133
149
  end
134
150
  end
135
151
  end
152
+ if tag_specifications = options.delete('TagSpecifications')
153
+ # From https://docs.aws.amazon.com/sdk-for-ruby/v2/api/Aws/EC2/Client.html#run_instances-instance_method
154
+ # And https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html
155
+ # Discussed at https://github.com/fog/fog-aws/issues/603
156
+ #
157
+ # Example
158
+ #
159
+ # TagSpecifications: [
160
+ # {
161
+ # ResourceType: "instance",
162
+ # Tags: [
163
+ # {
164
+ # Key: "Project",
165
+ # Value: "MyProject",
166
+ # },
167
+ # ],
168
+ # },
169
+ # {
170
+ # ResourceType: "volume",
171
+ # Tags: [
172
+ # {
173
+ # Key: "Project",
174
+ # Value: "MyProject",
175
+ # },
176
+ # ],
177
+ # },
178
+ # ]
179
+ tag_specifications.each_with_index do |val, idx|
180
+ resource_type = val["ResourceType"]
181
+ tags = val["Tags"]
182
+ options["TagSpecification.#{idx}.ResourceType"] = resource_type
183
+ tags.each_with_index do |tag, tag_idx|
184
+ aws_tag_key = "TagSpecification.#{idx}.Tag.#{tag_idx}.Key"
185
+ aws_tag_value = "TagSpecification.#{idx}.Tag.#{tag_idx}.Value"
186
+ options[aws_tag_key] = tag["Key"]
187
+ options[aws_tag_value] = tag["Value"]
188
+ end
189
+ end
190
+ end
136
191
 
137
192
  idempotent = !(options['ClientToken'].nil? || options['ClientToken'].empty?)
138
193
 
@@ -142,7 +197,7 @@ module Fog
142
197
  'MinCount' => min_count,
143
198
  'MaxCount' => max_count,
144
199
  :idempotent => idempotent,
145
- :parser => Fog::Parsers::Compute::AWS::RunInstances.new
200
+ :parser => Fog::Parsers::AWS::Compute::RunInstances.new
146
201
  }.merge!(options))
147
202
  end
148
203
  end
@@ -157,7 +212,7 @@ module Fog
157
212
  reservation_id = Fog::AWS::Mock.reservation_id
158
213
 
159
214
  if options['KeyName'] && describe_key_pairs('key-name' => options['KeyName']).body['keySet'].empty?
160
- raise Fog::Compute::AWS::NotFound.new("The key pair '#{options['KeyName']}' does not exist")
215
+ raise Fog::AWS::Compute::NotFound.new("The key pair '#{options['KeyName']}' does not exist")
161
216
  end
162
217
 
163
218
  min_count.times do |i|
@@ -182,6 +237,14 @@ module Fog
182
237
  }
183
238
  end
184
239
 
240
+ hibernation_options = (options['HibernationOptions'] || []).reduce([]) do |mapping, device|
241
+ configure = device.fetch("Configure", true)
242
+
243
+ mapping << {
244
+ "Configure" => configure,
245
+ }
246
+ end
247
+
185
248
  if options['SubnetId']
186
249
  if options['PrivateIpAddress']
187
250
  ni_options = {'PrivateIpAddress' => options['PrivateIpAddress']}
@@ -221,6 +284,7 @@ module Fog
221
284
  'associatePublicIP' => options['associatePublicIP'] || false,
222
285
  'architecture' => 'i386',
223
286
  'blockDeviceMapping' => block_device_mapping,
287
+ 'hibernationOptions' => hibernation_options,
224
288
  'networkInterfaces' => network_interfaces,
225
289
  'clientToken' => options['clientToken'],
226
290
  'dnsName' => nil,
@@ -1,6 +1,6 @@
1
1
  module Fog
2
- module Compute
3
- class AWS
2
+ module AWS
3
+ class Compute
4
4
  class Real
5
5
  require 'fog/aws/parsers/compute/start_stop_instances'
6
6
 
@@ -21,7 +21,7 @@ module Fog
21
21
  request({
22
22
  'Action' => 'StartInstances',
23
23
  :idempotent => true,
24
- :parser => Fog::Parsers::Compute::AWS::StartStopInstances.new
24
+ :parser => Fog::Parsers::AWS::Compute::StartStopInstances.new
25
25
  }.merge!(params))
26
26
  end
27
27
  end
@@ -35,7 +35,7 @@ module Fog
35
35
  instance_set = instance_set.select {|x| instance_ids.include?(x["instanceId"]) }
36
36
 
37
37
  if instance_set.empty?
38
- raise Fog::Compute::AWS::NotFound.new("The instance ID '#{instance_ids.first}' does not exist")
38
+ raise Fog::AWS::Compute::NotFound.new("The instance ID '#{instance_ids.first}' does not exist")
39
39
  else
40
40
  response = Excon::Response.new
41
41
  response.status = 200
@@ -1,6 +1,6 @@
1
1
  module Fog
2
- module Compute
3
- class AWS
2
+ module AWS
3
+ class Compute
4
4
  class Real
5
5
  require 'fog/aws/parsers/compute/start_stop_instances'
6
6
 
@@ -16,19 +16,27 @@ module Fog
16
16
  # * TODO: fill in the blanks
17
17
  #
18
18
  # {Amazon API Reference}[http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-StopInstances.html]
19
- def stop_instances(instance_id, force = false)
19
+ def stop_instances(instance_id, options = {})
20
20
  params = Fog::AWS.indexed_param('InstanceId', instance_id)
21
- params.merge!('Force' => 'true') if force
21
+ unless options.is_a?(Hash)
22
+ Fog::Logger.warning("stop_instances with #{options.class} param is deprecated, use stop_instances('force' => boolean) instead [light_black](#{caller.first})[/]")
23
+ options = {'force' => options}
24
+ end
25
+ params.merge!('Force' => 'true') if options['force']
26
+ if options['hibernate']
27
+ params.merge!('Hibernate' => 'true')
28
+ params.merge!('Force' => 'false')
29
+ end
22
30
  request({
23
31
  'Action' => 'StopInstances',
24
32
  :idempotent => true,
25
- :parser => Fog::Parsers::Compute::AWS::StartStopInstances.new
33
+ :parser => Fog::Parsers::AWS::Compute::StartStopInstances.new
26
34
  }.merge!(params))
27
35
  end
28
36
  end
29
37
 
30
38
  class Mock
31
- def stop_instances(instance_id, force = false)
39
+ def stop_instances(instance_id, options = {})
32
40
  instance_ids = Array(instance_id)
33
41
 
34
42
  instance_set = self.data[:instances].values
@@ -36,7 +44,7 @@ module Fog
36
44
  instance_set = instance_set.select {|x| instance_ids.include?(x["instanceId"]) }
37
45
 
38
46
  if instance_set.empty?
39
- raise Fog::Compute::AWS::NotFound.new("The instance ID '#{instance_ids.first}' does not exist")
47
+ raise Fog::AWS::Compute::NotFound.new("The instance ID '#{instance_ids.first}' does not exist")
40
48
  else
41
49
  response = Excon::Response.new
42
50
  response.status = 200
@@ -1,6 +1,6 @@
1
1
  module Fog
2
- module Compute
3
- class AWS
2
+ module AWS
3
+ class Compute
4
4
  class Real
5
5
  require 'fog/aws/parsers/compute/terminate_instances'
6
6
 
@@ -28,7 +28,7 @@ module Fog
28
28
  request({
29
29
  'Action' => 'TerminateInstances',
30
30
  :idempotent => true,
31
- :parser => Fog::Parsers::Compute::AWS::TerminateInstances.new
31
+ :parser => Fog::Parsers::AWS::Compute::TerminateInstances.new
32
32
  }.merge!(params))
33
33
  end
34
34
  end
@@ -85,7 +85,7 @@ module Fog
85
85
 
86
86
  response
87
87
  else
88
- raise Fog::Compute::AWS::NotFound.new("The instance ID '#{instance_id}' does not exist")
88
+ raise Fog::AWS::Compute::NotFound.new("The instance ID '#{instance_id}' does not exist")
89
89
  end
90
90
  end
91
91
  end
@@ -1,6 +1,6 @@
1
1
  module Fog
2
- module Compute
3
- class AWS
2
+ module AWS
3
+ class Compute
4
4
  class Real
5
5
  require 'fog/aws/parsers/compute/monitor_unmonitor_instances'
6
6
 
@@ -22,7 +22,7 @@ module Fog
22
22
  request({
23
23
  'Action' => 'UnmonitorInstances',
24
24
  :idempotent => true,
25
- :parser => Fog::Parsers::Compute::AWS::MonitorUnmonitorInstances.new
25
+ :parser => Fog::Parsers::AWS::Compute::MonitorUnmonitorInstances.new
26
26
  }.merge!(params))
27
27
  end
28
28
  end
@@ -35,7 +35,7 @@ module Fog
35
35
  if instance = self.data[:instances][instance_id]
36
36
  instance['monitoring']['state'] = 'enabled'
37
37
  else
38
- raise Fog::Compute::AWS::NotFound.new("The instance ID '#{instance_ids}' does not exist")
38
+ raise Fog::AWS::Compute::NotFound.new("The instance ID '#{instance_ids}' does not exist")
39
39
  end
40
40
  end
41
41
  instances_set = [*instance_ids].reduce([]) { |memo, id| memo << {'instanceId' => id, 'monitoring' => 'disabled'} }
@@ -15,7 +15,7 @@ module Fog
15
15
 
16
16
  response = request({
17
17
  :body => Fog::JSON.encode(params),
18
- :headers => { 'X-Amz-Target' => 'DataPipeline.DectivatePipeline' }
18
+ :headers => { 'X-Amz-Target' => 'DataPipeline.DeactivatePipeline' }
19
19
  })
20
20
  end
21
21
  end
@@ -1,139 +1,6 @@
1
1
  module Fog
2
- module DNS
3
- class AWS
4
-
5
- def self.hosted_zone_for_alias_target(dns_name)
6
- hosted_zones = if dns_name.match(/^dualstack\./)
7
- elb_dualstack_hosted_zone_mapping
8
- else
9
- elb_hosted_zone_mapping
10
- end
11
-
12
- Hash[hosted_zones.select { |k, _|
13
- dns_name =~ /\A.+\.#{k}\.elb\.amazonaws\.com\.?\z/
14
- }].values.last
15
- end
16
-
17
- def self.elb_hosted_zone_mapping
18
- @elb_hosted_zone_mapping ||= {
19
- "ap-northeast-1" => "Z2YN17T5R711GT",
20
- "ap-southeast-1" => "Z1WI8VXHPB1R38",
21
- "ap-southeast-2" => "Z2999QAZ9SRTIC",
22
- "eu-west-1" => "Z3NF1Z3NOM5OY2",
23
- "eu-central-1" => "Z215JYRZR1TBD5",
24
- "sa-east-1" => "Z2ES78Y61JGQKS",
25
- "us-east-1" => "Z3DZXE0Q79N41H",
26
- "us-west-1" => "Z1M58G0W56PQJA",
27
- "us-west-2" => "Z33MTJ483KN6FU",
28
- }
29
- end
30
-
31
- # See https://forums.aws.amazon.com/message.jspa?messageID=612414
32
- # Note: Oddly, to update this list, I have had to revert to going to
33
- # dev console at https://console.aws.amazon.com/route53/home, then using
34
- # search all sources for Z14GRHDCWA56QT to find this in a HashMap
35
- def self.elb_dualstack_hosted_zone_mapping
36
- @elb_dualstack_hosted_zone_mapping ||= {
37
- "ap-northeast-1" => "Z14GRHDCWA56QT",
38
- "ap-northeast-2" => "ZWKZPGTI48KDX",
39
- "ap-south-1" => "ZP97RAFLXTNZK",
40
- "ap-southeast-1" => "Z1LMS91P8CMLE5",
41
- "ap-southeast-2" => "Z1GM3OXH4ZPM65",
42
- "ca-central-1" => "ZQSVJUPU6J1EY",
43
- "eu-central-1" => "Z215JYRZR1TBD5",
44
- "eu-west-1" => "Z32O12XQLNTSW2",
45
- "eu-west-2" => "ZHURV8PSTC4K8",
46
- "us-east-1" => "Z35SXDOTRQ7X7K",
47
- "us-east-2" => "Z3AADJGX6KTTL2",
48
- "us-west-1" => "Z368ELLRRE2KJ0",
49
- "us-west-2" => "Z1H1FL5HABSF5",
50
- "sa-east-1" => "Z2P70J7HTTTPLU",
51
- }
52
- end
53
-
54
- # Returns the xml request for a given changeset
55
- def self.change_resource_record_sets_data(zone_id, change_batch, version, options = {})
56
- # AWS methods return zone_ids that looks like '/hostedzone/id'. Let the caller either use
57
- # that form or just the actual id (which is what this request needs)
58
- zone_id = zone_id.sub('/hostedzone/', '')
59
-
60
- optional_tags = ''
61
- options.each do |option, value|
62
- case option
63
- when :comment
64
- optional_tags += "<Comment>#{value}</Comment>"
65
- end
66
- end
67
-
68
- #build XML
69
- if change_batch.count > 0
70
-
71
- changes = "<ChangeBatch>#{optional_tags}<Changes>"
72
-
73
- change_batch.each do |change_item|
74
- action_tag = %Q{<Action>#{change_item[:action]}</Action>}
75
- name_tag = %Q{<Name>#{change_item[:name]}</Name>}
76
- type_tag = %Q{<Type>#{change_item[:type]}</Type>}
77
-
78
- # TTL must be omitted if using an alias record
79
- ttl_tag = ''
80
- ttl_tag += %Q{<TTL>#{change_item[:ttl]}</TTL>} unless change_item[:alias_target]
81
-
82
- weight_tag = ''
83
- set_identifier_tag = ''
84
- region_tag = ''
85
- if change_item[:set_identifier]
86
- set_identifier_tag += %Q{<SetIdentifier>#{change_item[:set_identifier]}</SetIdentifier>}
87
- if change_item[:weight] # Weighted Record
88
- weight_tag += %Q{<Weight>#{change_item[:weight]}</Weight>}
89
- elsif change_item[:region] # Latency record
90
- region_tag += %Q{<Region>#{change_item[:region]}</Region>}
91
- end
92
- end
93
-
94
- failover_tag = if change_item[:failover]
95
- %Q{<Failover>#{change_item[:failover]}</Failover>}
96
- end
97
-
98
- geolocation_tag = if change_item[:geo_location]
99
- xml_geo = change_item[:geo_location].map { |k,v| "<#{k}>#{v}</#{k}>" }.join
100
- %Q{<GeoLocation>#{xml_geo}</GeoLocation>}
101
- end
102
-
103
- resource_records = change_item[:resource_records] || []
104
- resource_record_tags = ''
105
- resource_records.each do |record|
106
- resource_record_tags += %Q{<ResourceRecord><Value>#{record}</Value></ResourceRecord>}
107
- end
108
-
109
- # ResourceRecords must be omitted if using an alias record
110
- resource_tag = ''
111
- resource_tag += %Q{<ResourceRecords>#{resource_record_tags}</ResourceRecords>} if resource_records.any?
112
-
113
- alias_target_tag = ''
114
- if change_item[:alias_target]
115
- # Accept either underscore or camel case for hash keys.
116
- dns_name = change_item[:alias_target][:dns_name] || change_item[:alias_target][:DNSName]
117
- hosted_zone_id = change_item[:alias_target][:hosted_zone_id] || change_item[:alias_target][:HostedZoneId] || AWS.hosted_zone_for_alias_target(dns_name)
118
- evaluate_target_health = change_item[:alias_target][:evaluate_target_health] || change_item[:alias_target][:EvaluateTargetHealth] || false
119
- evaluate_target_health_xml = !evaluate_target_health.nil? ? %Q{<EvaluateTargetHealth>#{evaluate_target_health}</EvaluateTargetHealth>} : ''
120
- alias_target_tag += %Q{<AliasTarget><HostedZoneId>#{hosted_zone_id}</HostedZoneId><DNSName>#{dns_name}</DNSName>#{evaluate_target_health_xml}</AliasTarget>}
121
- end
122
-
123
- health_check_id_tag = if change_item[:health_check_id]
124
- %Q{<HealthCheckId>#{change_item[:health_check_id]}</HealthCheckId>}
125
- end
126
-
127
- change_tags = %Q{<Change>#{action_tag}<ResourceRecordSet>#{name_tag}#{type_tag}#{set_identifier_tag}#{weight_tag}#{region_tag}#{failover_tag}#{geolocation_tag}#{ttl_tag}#{resource_tag}#{alias_target_tag}#{health_check_id_tag}</ResourceRecordSet></Change>}
128
- changes += change_tags
129
- end
130
-
131
- changes += '</Changes></ChangeBatch>'
132
- end
133
-
134
- %Q{<?xml version="1.0" encoding="UTF-8"?><ChangeResourceRecordSetsRequest xmlns="https://route53.amazonaws.com/doc/#{version}/">#{changes}</ChangeResourceRecordSetsRequest>}
135
- end
136
-
2
+ module AWS
3
+ class DNS
137
4
  class Real
138
5
  require 'fog/aws/parsers/dns/change_resource_record_sets'
139
6
 
@@ -194,11 +61,11 @@ module Fog
194
61
  # change_resource_record_sets("ABCDEFGHIJKLMN", change_batch_options)
195
62
  #
196
63
  def change_resource_record_sets(zone_id, change_batch, options = {})
197
- body = AWS.change_resource_record_sets_data(zone_id, change_batch, @version, options)
64
+ body = Fog::AWS::DNS.change_resource_record_sets_data(zone_id, change_batch, @version, options)
198
65
  request({
199
66
  :body => body,
200
67
  :idempotent => true,
201
- :parser => Fog::Parsers::DNS::AWS::ChangeResourceRecordSets.new,
68
+ :parser => Fog::Parsers::AWS::DNS::ChangeResourceRecordSets.new,
202
69
  :expects => 200,
203
70
  :method => 'POST',
204
71
  :path => "hostedzone/#{zone_id}/rrset"
@@ -302,10 +169,10 @@ module Fog
302
169
  }
303
170
  response
304
171
  else
305
- raise Fog::DNS::AWS::Error.new("InvalidChangeBatch => #{errors.join(", ")}")
172
+ raise Fog::AWS::DNS::Error.new("InvalidChangeBatch => #{errors.join(", ")}")
306
173
  end
307
174
  else
308
- raise Fog::DNS::AWS::NotFound.new("NoSuchHostedZone => A hosted zone with the specified hosted zone ID does not exist.")
175
+ raise Fog::AWS::DNS::NotFound.new("NoSuchHostedZone => A hosted zone with the specified hosted zone ID does not exist.")
309
176
  end
310
177
  end
311
178
  end
@@ -1,6 +1,6 @@
1
1
  module Fog
2
- module DNS
3
- class AWS
2
+ module AWS
3
+ class DNS
4
4
  class Real
5
5
  require 'fog/aws/parsers/dns/health_check'
6
6
 
@@ -55,7 +55,7 @@ module Fog
55
55
  :expects => 201,
56
56
  :method => 'POST',
57
57
  :path => 'healthcheck',
58
- :parser => Fog::Parsers::DNS::AWS::HealthCheck.new
58
+ :parser => Fog::Parsers::AWS::DNS::HealthCheck.new
59
59
  })
60
60
  end
61
61
  end
@@ -1,6 +1,6 @@
1
1
  module Fog
2
- module DNS
3
- class AWS
2
+ module AWS
3
+ class DNS
4
4
  class Real
5
5
  require 'fog/aws/parsers/dns/create_hosted_zone'
6
6
 
@@ -48,7 +48,7 @@ module Fog
48
48
 
49
49
  request({
50
50
  :body => %Q{<?xml version="1.0" encoding="UTF-8"?><CreateHostedZoneRequest xmlns="https://route53.amazonaws.com/doc/#{@version}/"><Name>#{name}</Name>#{optional_tags}</CreateHostedZoneRequest>},
51
- :parser => Fog::Parsers::DNS::AWS::CreateHostedZone.new,
51
+ :parser => Fog::Parsers::AWS::DNS::CreateHostedZone.new,
52
52
  :expects => 201,
53
53
  :method => 'POST',
54
54
  :path => "hostedzone"
@@ -102,7 +102,7 @@ module Fog
102
102
  }
103
103
  response
104
104
  else
105
- raise Fog::DNS::AWS::Error.new("DelegationSetNotAvailable => Amazon Route 53 allows some duplication, but Amazon Route 53 has a maximum threshold of duplicated domains. This error is generated when you reach that threshold. In this case, the error indicates that too many hosted zones with the given domain name exist. If you want to create a hosted zone and Amazon Route 53 generates this error, contact Customer Support.")
105
+ raise Fog::AWS::DNS::Error.new("DelegationSetNotAvailable => Amazon Route 53 allows some duplication, but Amazon Route 53 has a maximum threshold of duplicated domains. This error is generated when you reach that threshold. In this case, the error indicates that too many hosted zones with the given domain name exist. If you want to create a hosted zone and Amazon Route 53 generates this error, contact Customer Support.")
106
106
  end
107
107
  end
108
108
  end
@@ -1,6 +1,6 @@
1
1
  module Fog
2
- module DNS
3
- class AWS
2
+ module AWS
3
+ class DNS
4
4
  class Real
5
5
  # This action deletes a health check.
6
6
  # http://docs.aws.amazon.com/Route53/latest/APIReference/API_DeleteHealthCheck.html
@@ -1,6 +1,6 @@
1
1
  module Fog
2
- module DNS
3
- class AWS
2
+ module AWS
3
+ class DNS
4
4
  class Real
5
5
  require 'fog/aws/parsers/dns/delete_hosted_zone'
6
6
 
@@ -24,7 +24,7 @@ module Fog
24
24
 
25
25
  request({
26
26
  :expects => 200,
27
- :parser => Fog::Parsers::DNS::AWS::DeleteHostedZone.new,
27
+ :parser => Fog::Parsers::AWS::DNS::DeleteHostedZone.new,
28
28
  :method => 'DELETE',
29
29
  :path => "hostedzone/#{zone_id}"
30
30
  })
@@ -37,7 +37,7 @@ module Fog
37
37
  def delete_hosted_zone(zone_id)
38
38
  response = Excon::Response.new
39
39
  key = [zone_id, "/hostedzone/#{zone_id}"].find { |k| !self.data[:zones][k].nil? } ||
40
- raise(Fog::DNS::AWS::NotFound.new("NoSuchHostedZone => A hosted zone with the specified hosted zone does not exist."))
40
+ raise(Fog::AWS::DNS::NotFound.new("NoSuchHostedZone => A hosted zone with the specified hosted zone does not exist."))
41
41
 
42
42
  change = {
43
43
  :id => Fog::AWS::Mock.change_id,
@@ -1,6 +1,6 @@
1
1
  module Fog
2
- module DNS
3
- class AWS
2
+ module AWS
3
+ class DNS
4
4
  class Real
5
5
  require 'fog/aws/parsers/dns/get_change'
6
6
 
@@ -23,7 +23,7 @@ module Fog
23
23
 
24
24
  request({
25
25
  :expects => 200,
26
- :parser => Fog::Parsers::DNS::AWS::GetChange.new,
26
+ :parser => Fog::Parsers::AWS::DNS::GetChange.new,
27
27
  :method => 'GET',
28
28
  :path => "change/#{change_id}"
29
29
  })
@@ -36,7 +36,7 @@ module Fog
36
36
  # find the record with matching change_id
37
37
  # records = data[:zones].values.map{|z| z[:records].values.map{|r| r.values}}.flatten
38
38
  change = self.data[:changes][change_id] ||
39
- raise(Fog::DNS::AWS::NotFound.new("NoSuchChange => Could not find resource with ID: #{change_id}"))
39
+ raise(Fog::AWS::DNS::NotFound.new("NoSuchChange => Could not find resource with ID: #{change_id}"))
40
40
 
41
41
  response.status = 200
42
42
  submitted_at = Time.parse(change[:submitted_at])
@@ -1,6 +1,6 @@
1
1
  module Fog
2
- module DNS
3
- class AWS
2
+ module AWS
3
+ class DNS
4
4
  class Real
5
5
  require 'fog/aws/parsers/dns/health_check'
6
6
 
@@ -30,7 +30,7 @@ module Fog
30
30
  def get_health_check(id)
31
31
  request({
32
32
  :expects => 200,
33
- :parser => Fog::Parsers::DNS::AWS::HealthCheck.new,
33
+ :parser => Fog::Parsers::AWS::DNS::HealthCheck.new,
34
34
  :method => 'GET',
35
35
  :path => "healthcheck/#{id}"
36
36
  })
@@ -1,6 +1,6 @@
1
1
  module Fog
2
- module DNS
3
- class AWS
2
+ module AWS
3
+ class DNS
4
4
  class Real
5
5
  require 'fog/aws/parsers/dns/get_hosted_zone'
6
6
 
@@ -29,7 +29,7 @@ module Fog
29
29
  :expects => 200,
30
30
  :idempotent => true,
31
31
  :method => 'GET',
32
- :parser => Fog::Parsers::DNS::AWS::GetHostedZone.new,
32
+ :parser => Fog::Parsers::AWS::DNS::GetHostedZone.new,
33
33
  :path => "hostedzone/#{zone_id}"
34
34
  })
35
35
  end
@@ -51,7 +51,7 @@ module Fog
51
51
  }
52
52
  response
53
53
  else
54
- raise Fog::DNS::AWS::NotFound.new("NoSuchHostedZone => A hosted zone with the specified hosted zone ID does not exist.")
54
+ raise Fog::AWS::DNS::NotFound.new("NoSuchHostedZone => A hosted zone with the specified hosted zone ID does not exist.")
55
55
  end
56
56
  end
57
57
  end
@@ -1,6 +1,6 @@
1
1
  module Fog
2
- module DNS
3
- class AWS
2
+ module AWS
3
+ class DNS
4
4
  class Real
5
5
  require 'fog/aws/parsers/dns/list_health_checks'
6
6
 
@@ -26,7 +26,7 @@ module Fog
26
26
  :expects => 200,
27
27
  :method => 'GET',
28
28
  :path => "healthcheck",
29
- :parser => Fog::Parsers::DNS::AWS::ListHealthChecks.new
29
+ :parser => Fog::Parsers::AWS::DNS::ListHealthChecks.new
30
30
  })
31
31
  end
32
32
  end
@@ -1,6 +1,6 @@
1
1
  module Fog
2
- module DNS
3
- class AWS
2
+ module AWS
3
+ class DNS
4
4
  class Real
5
5
  require 'fog/aws/parsers/dns/list_hosted_zones'
6
6
 
@@ -38,7 +38,7 @@ module Fog
38
38
 
39
39
  request({
40
40
  :query => parameters,
41
- :parser => Fog::Parsers::DNS::AWS::ListHostedZones.new,
41
+ :parser => Fog::Parsers::AWS::DNS::ListHostedZones.new,
42
42
  :expects => 200,
43
43
  :method => 'GET',
44
44
  :path => "hostedzone"