fog-aws 3.12.0 → 3.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (286) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +70 -4
  3. data/README.md +57 -0
  4. data/fog-aws.gemspec +3 -4
  5. data/lib/fog/aws/credential_fetcher.rb +8 -1
  6. data/lib/fog/aws/iam/default_policies.json +1574 -0
  7. data/lib/fog/aws/iam/default_policy_versions.json +3373 -0
  8. data/lib/fog/aws/models/compute/flavors.rb +160 -0
  9. data/lib/fog/aws/models/storage/directories.rb +1 -0
  10. data/lib/fog/aws/models/storage/file.rb +8 -7
  11. data/lib/fog/aws/parsers/iam/get_group_policy.rb +1 -1
  12. data/lib/fog/aws/parsers/iam/get_role_policy.rb +1 -1
  13. data/lib/fog/aws/parsers/iam/get_user_policy.rb +1 -1
  14. data/lib/fog/aws/parsers/iam/policy_version.rb +1 -1
  15. data/lib/fog/aws/requests/compute/create_network_interface.rb +7 -4
  16. data/lib/fog/aws/requests/compute/create_subnet.rb +3 -3
  17. data/lib/fog/aws/requests/rds/add_tags_to_resource.rb +12 -10
  18. data/lib/fog/aws/requests/rds/list_tags_for_resource.rb +10 -7
  19. data/lib/fog/aws/requests/rds/remove_tags_from_resource.rb +9 -8
  20. data/lib/fog/aws/requests/storage/sync_clock.rb +1 -1
  21. data/lib/fog/aws/storage.rb +5 -1
  22. data/lib/fog/aws/version.rb +1 -1
  23. metadata +5 -280
  24. data/tests/credentials_tests.rb +0 -190
  25. data/tests/helper.rb +0 -29
  26. data/tests/helpers/collection_helper.rb +0 -90
  27. data/tests/helpers/compute/flavors_helper.rb +0 -28
  28. data/tests/helpers/compute/server_helper.rb +0 -23
  29. data/tests/helpers/compute/servers_helper.rb +0 -8
  30. data/tests/helpers/dns_helper.rb +0 -56
  31. data/tests/helpers/formats_helper.rb +0 -100
  32. data/tests/helpers/formats_helper_tests.rb +0 -107
  33. data/tests/helpers/mock_helper.rb +0 -109
  34. data/tests/helpers/model_helper.rb +0 -30
  35. data/tests/helpers/responds_to_helper.rb +0 -11
  36. data/tests/helpers/schema_validator_tests.rb +0 -104
  37. data/tests/helpers/succeeds_helper.rb +0 -9
  38. data/tests/lorem.txt +0 -1
  39. data/tests/models/auto_scaling/activities_tests.rb +0 -6
  40. data/tests/models/auto_scaling/configuration_test.rb +0 -13
  41. data/tests/models/auto_scaling/configurations_tests.rb +0 -11
  42. data/tests/models/auto_scaling/groups_test.rb +0 -27
  43. data/tests/models/auto_scaling/helper.rb +0 -0
  44. data/tests/models/auto_scaling/instance_tests.rb +0 -15
  45. data/tests/models/auto_scaling/instances_tests.rb +0 -6
  46. data/tests/models/beanstalk/application_tests.rb +0 -69
  47. data/tests/models/beanstalk/applications_tests.rb +0 -7
  48. data/tests/models/beanstalk/environment_tests.rb +0 -131
  49. data/tests/models/beanstalk/environments_tests.rb +0 -34
  50. data/tests/models/beanstalk/template_tests.rb +0 -47
  51. data/tests/models/beanstalk/templates_tests.rb +0 -62
  52. data/tests/models/beanstalk/version_tests.rb +0 -66
  53. data/tests/models/beanstalk/versions_tests.rb +0 -60
  54. data/tests/models/cdn/distribution_tests.rb +0 -15
  55. data/tests/models/cdn/distributions_tests.rb +0 -15
  56. data/tests/models/cdn/invalidation_tests.rb +0 -31
  57. data/tests/models/cdn/invalidations_tests.rb +0 -14
  58. data/tests/models/cdn/streaming_distribution_tests.rb +0 -15
  59. data/tests/models/cdn/streaming_distributions_tests.rb +0 -15
  60. data/tests/models/cloud_watch/alarm_data_tests.rb +0 -42
  61. data/tests/models/cloud_watch/alarm_history_tests.rb +0 -22
  62. data/tests/models/cloud_watch/metric_statistics_tests.rb +0 -51
  63. data/tests/models/cloud_watch/metrics_tests.rb +0 -32
  64. data/tests/models/compute/address_tests.rb +0 -43
  65. data/tests/models/compute/addresses_tests.rb +0 -5
  66. data/tests/models/compute/dhcp_option_tests.rb +0 -3
  67. data/tests/models/compute/dhcp_options_tests.rb +0 -3
  68. data/tests/models/compute/internet_gateway_tests.rb +0 -3
  69. data/tests/models/compute/internet_gateways_tests.rb +0 -3
  70. data/tests/models/compute/key_pair_tests.rb +0 -26
  71. data/tests/models/compute/key_pairs_tests.rb +0 -5
  72. data/tests/models/compute/network_acl_tests.rb +0 -109
  73. data/tests/models/compute/network_acls_tests.rb +0 -20
  74. data/tests/models/compute/network_interfaces_test.rb +0 -12
  75. data/tests/models/compute/security_group_tests.rb +0 -98
  76. data/tests/models/compute/security_groups_tests.rb +0 -5
  77. data/tests/models/compute/server_tests.rb +0 -94
  78. data/tests/models/compute/snapshot_tests.rb +0 -10
  79. data/tests/models/compute/snapshots_tests.rb +0 -10
  80. data/tests/models/compute/subnet_tests.rb +0 -13
  81. data/tests/models/compute/subnets_tests.rb +0 -5
  82. data/tests/models/compute/volume_tests.rb +0 -65
  83. data/tests/models/compute/volumes_tests.rb +0 -5
  84. data/tests/models/compute/vpc_tests.rb +0 -26
  85. data/tests/models/compute/vpcs_tests.rb +0 -19
  86. data/tests/models/data_pipeline/pipeline_tests.rb +0 -8
  87. data/tests/models/data_pipeline/pipelines_tests.rb +0 -8
  88. data/tests/models/dns/record_tests.rb +0 -33
  89. data/tests/models/dns/records_tests.rb +0 -41
  90. data/tests/models/dns/zone_tests.rb +0 -4
  91. data/tests/models/dns/zones_tests.rb +0 -4
  92. data/tests/models/efs/file_system_tests.rb +0 -12
  93. data/tests/models/efs/mount_target_tests.rb +0 -45
  94. data/tests/models/efs/mount_targets_tests.rb +0 -30
  95. data/tests/models/elasticache/cluster_tests.rb +0 -30
  96. data/tests/models/elasticache/parameter_groups_tests.rb +0 -15
  97. data/tests/models/elasticache/security_groups_tests.rb +0 -52
  98. data/tests/models/elasticache/subnet_groups_tests.rb +0 -43
  99. data/tests/models/elb/model_tests.rb +0 -360
  100. data/tests/models/elb/tagging_tests.rb +0 -15
  101. data/tests/models/glacier/model_tests.rb +0 -47
  102. data/tests/models/iam/access_keys_tests.rb +0 -53
  103. data/tests/models/iam/groups_tests.rb +0 -59
  104. data/tests/models/iam/instance_profile_tests.rb +0 -18
  105. data/tests/models/iam/managed_policies_tests.rb +0 -89
  106. data/tests/models/iam/policies_tests.rb +0 -57
  107. data/tests/models/iam/roles_tests.rb +0 -71
  108. data/tests/models/iam/users_tests.rb +0 -119
  109. data/tests/models/rds/cluster_tests.rb +0 -54
  110. data/tests/models/rds/clusters_tests.rb +0 -5
  111. data/tests/models/rds/event_subscription_tests.rb +0 -9
  112. data/tests/models/rds/event_subscriptions_tests.rb +0 -6
  113. data/tests/models/rds/helper.rb +0 -25
  114. data/tests/models/rds/instance_option_tests.rb +0 -14
  115. data/tests/models/rds/parameter_group_tests.rb +0 -24
  116. data/tests/models/rds/parameter_groups_tests.rb +0 -8
  117. data/tests/models/rds/security_group_tests.rb +0 -77
  118. data/tests/models/rds/security_groups_tests.rb +0 -5
  119. data/tests/models/rds/server_tests.rb +0 -131
  120. data/tests/models/rds/servers_tests.rb +0 -24
  121. data/tests/models/rds/snapshot_tests.rb +0 -12
  122. data/tests/models/rds/snapshots_tests.rb +0 -12
  123. data/tests/models/rds/tagging_tests.rb +0 -20
  124. data/tests/models/sns/topic_tests.rb +0 -15
  125. data/tests/models/sns/topics_tests.rb +0 -6
  126. data/tests/models/storage/directory_tests.rb +0 -202
  127. data/tests/models/storage/file_tests.rb +0 -129
  128. data/tests/models/storage/files_tests.rb +0 -90
  129. data/tests/models/storage/url_tests.rb +0 -25
  130. data/tests/models/storage/version_tests.rb +0 -52
  131. data/tests/models/storage/versions_tests.rb +0 -51
  132. data/tests/models/support/trusted_advisor_tests.rb +0 -25
  133. data/tests/parsers/compute/describe_images_tests.rb +0 -33
  134. data/tests/parsers/elb/describe_load_balancers.rb +0 -65
  135. data/tests/parsers/elbv2/create_load_balancer_tests.rb +0 -48
  136. data/tests/parsers/elbv2/describe_listeners_tests.rb +0 -76
  137. data/tests/parsers/elbv2/describe_load_balancers_tests.rb +0 -54
  138. data/tests/parsers/elbv2/describe_tags_tests.rb +0 -35
  139. data/tests/requests/auto_scaling/auto_scaling_tests.rb +0 -111
  140. data/tests/requests/auto_scaling/describe_types_tests.rb +0 -102
  141. data/tests/requests/auto_scaling/helper.rb +0 -229
  142. data/tests/requests/auto_scaling/model_tests.rb +0 -235
  143. data/tests/requests/auto_scaling/notification_configuration_tests.rb +0 -124
  144. data/tests/requests/auto_scaling/tag_tests.rb +0 -63
  145. data/tests/requests/beanstalk/application_tests.rb +0 -140
  146. data/tests/requests/beanstalk/solution_stack_tests.rb +0 -22
  147. data/tests/requests/cdn/cdn_tests.rb +0 -252
  148. data/tests/requests/cloud_formation/stack_tests.rb +0 -167
  149. data/tests/requests/cloud_watch/get_metric_statistics_tests.rb +0 -28
  150. data/tests/requests/cloud_watch/list_metrics_test.rb +0 -64
  151. data/tests/requests/cloud_watch/put_metric_data_tests.rb +0 -36
  152. data/tests/requests/compute/address_tests.rb +0 -144
  153. data/tests/requests/compute/assign_private_ip_tests.rb +0 -55
  154. data/tests/requests/compute/availability_zone_tests.rb +0 -25
  155. data/tests/requests/compute/client_tests.rb +0 -25
  156. data/tests/requests/compute/dhcp_options_tests.rb +0 -39
  157. data/tests/requests/compute/helper.rb +0 -27
  158. data/tests/requests/compute/image_tests.rb +0 -169
  159. data/tests/requests/compute/instance_attrib_tests.rb +0 -168
  160. data/tests/requests/compute/instance_tests.rb +0 -338
  161. data/tests/requests/compute/internet_gateway_tests.rb +0 -49
  162. data/tests/requests/compute/key_pair_tests.rb +0 -67
  163. data/tests/requests/compute/network_acl_tests.rb +0 -112
  164. data/tests/requests/compute/network_interface_tests.rb +0 -239
  165. data/tests/requests/compute/placement_group_tests.rb +0 -48
  166. data/tests/requests/compute/region_tests.rb +0 -52
  167. data/tests/requests/compute/route_tests.rb +0 -341
  168. data/tests/requests/compute/security_group_tests.rb +0 -457
  169. data/tests/requests/compute/snapshot_tests.rb +0 -77
  170. data/tests/requests/compute/spot_datafeed_subscription_tests.rb +0 -47
  171. data/tests/requests/compute/spot_instance_tests.rb +0 -55
  172. data/tests/requests/compute/spot_price_history_tests.rb +0 -23
  173. data/tests/requests/compute/subnet_tests.rb +0 -87
  174. data/tests/requests/compute/tag_tests.rb +0 -101
  175. data/tests/requests/compute/volume_tests.rb +0 -263
  176. data/tests/requests/compute/vpc_tests.rb +0 -222
  177. data/tests/requests/data_pipeline/helper.rb +0 -78
  178. data/tests/requests/data_pipeline/pipeline_tests.rb +0 -80
  179. data/tests/requests/dns/change_resource_record_sets_tests.rb +0 -34
  180. data/tests/requests/dns/dns_tests.rb +0 -240
  181. data/tests/requests/dns/health_check_tests.rb +0 -159
  182. data/tests/requests/dns/helper.rb +0 -21
  183. data/tests/requests/dynamodb/item_tests.rb +0 -137
  184. data/tests/requests/dynamodb/table_tests.rb +0 -99
  185. data/tests/requests/ecs/cluster_tests.rb +0 -112
  186. data/tests/requests/ecs/container_instance_tests.rb +0 -119
  187. data/tests/requests/ecs/helper.rb +0 -276
  188. data/tests/requests/ecs/sample_task_definition1.json +0 -56
  189. data/tests/requests/ecs/service_tests.rb +0 -132
  190. data/tests/requests/ecs/task_definitions_tests.rb +0 -97
  191. data/tests/requests/ecs/task_tests.rb +0 -145
  192. data/tests/requests/efs/file_system_tests.rb +0 -152
  193. data/tests/requests/efs/helper.rb +0 -44
  194. data/tests/requests/elasticache/cache_cluster_tests.rb +0 -137
  195. data/tests/requests/elasticache/describe_events.rb +0 -17
  196. data/tests/requests/elasticache/describe_reserved_cache_nodes.rb +0 -17
  197. data/tests/requests/elasticache/helper.rb +0 -103
  198. data/tests/requests/elasticache/parameter_group_tests.rb +0 -105
  199. data/tests/requests/elasticache/security_group_tests.rb +0 -108
  200. data/tests/requests/elasticache/subnet_group_tests.rb +0 -52
  201. data/tests/requests/elb/helper.rb +0 -91
  202. data/tests/requests/elb/listener_tests.rb +0 -68
  203. data/tests/requests/elb/load_balancer_tests.rb +0 -89
  204. data/tests/requests/elb/policy_tests.rb +0 -132
  205. data/tests/requests/elbv2/helper.rb +0 -66
  206. data/tests/requests/elbv2/load_balancer_tests.rb +0 -50
  207. data/tests/requests/emr/helper.rb +0 -167
  208. data/tests/requests/emr/instance_group_tests.rb +0 -106
  209. data/tests/requests/emr/job_flow_tests.rb +0 -88
  210. data/tests/requests/federation/get_signin_token_tests.rb +0 -11
  211. data/tests/requests/glacier/archive_tests.rb +0 -13
  212. data/tests/requests/glacier/multipart_upload_tests.rb +0 -29
  213. data/tests/requests/glacier/tree_hash_tests.rb +0 -91
  214. data/tests/requests/glacier/vault_tests.rb +0 -35
  215. data/tests/requests/iam/access_key_tests.rb +0 -53
  216. data/tests/requests/iam/account_policy_tests.rb +0 -20
  217. data/tests/requests/iam/account_tests.rb +0 -34
  218. data/tests/requests/iam/group_policy_tests.rb +0 -48
  219. data/tests/requests/iam/group_tests.rb +0 -44
  220. data/tests/requests/iam/helper.rb +0 -154
  221. data/tests/requests/iam/instance_profile_tests.rb +0 -44
  222. data/tests/requests/iam/login_profile_tests.rb +0 -62
  223. data/tests/requests/iam/managed_policy_tests.rb +0 -110
  224. data/tests/requests/iam/mfa_tests.rb +0 -23
  225. data/tests/requests/iam/role_tests.rb +0 -156
  226. data/tests/requests/iam/server_certificate_tests.rb +0 -130
  227. data/tests/requests/iam/user_policy_tests.rb +0 -45
  228. data/tests/requests/iam/user_tests.rb +0 -78
  229. data/tests/requests/iam/versioned_managed_policy_tests.rb +0 -105
  230. data/tests/requests/kinesis/helper.rb +0 -111
  231. data/tests/requests/kinesis/stream_tests.rb +0 -169
  232. data/tests/requests/kms/helper.rb +0 -27
  233. data/tests/requests/kms/key_tests.rb +0 -23
  234. data/tests/requests/lambda/function_sample_1.js +0 -9
  235. data/tests/requests/lambda/function_sample_2.js +0 -9
  236. data/tests/requests/lambda/function_tests.rb +0 -460
  237. data/tests/requests/lambda/helper.rb +0 -81
  238. data/tests/requests/rds/cluster_snapshot_tests.rb +0 -43
  239. data/tests/requests/rds/cluster_tests.rb +0 -37
  240. data/tests/requests/rds/db_engine_versions.rb +0 -7
  241. data/tests/requests/rds/db_snapshot_tests.rb +0 -62
  242. data/tests/requests/rds/describe_events.rb +0 -16
  243. data/tests/requests/rds/event_subscription_tests.rb +0 -30
  244. data/tests/requests/rds/helper.rb +0 -406
  245. data/tests/requests/rds/instance_option_tests.rb +0 -27
  246. data/tests/requests/rds/instance_tests.rb +0 -149
  247. data/tests/requests/rds/log_file_tests.rb +0 -19
  248. data/tests/requests/rds/parameter_group_tests.rb +0 -62
  249. data/tests/requests/rds/parameter_request_tests.rb +0 -32
  250. data/tests/requests/rds/security_group_tests.rb +0 -101
  251. data/tests/requests/rds/subnet_groups_tests.rb +0 -52
  252. data/tests/requests/rds/tagging_tests.rb +0 -78
  253. data/tests/requests/redshift/cluster_parameter_group_tests.rb +0 -76
  254. data/tests/requests/redshift/cluster_security_group_tests.rb +0 -42
  255. data/tests/requests/redshift/cluster_snapshot_tests.rb +0 -73
  256. data/tests/requests/redshift/cluster_tests.rb +0 -80
  257. data/tests/requests/ses/helper.rb +0 -9
  258. data/tests/requests/ses/verified_domain_identity_tests.rb +0 -16
  259. data/tests/requests/ses/verified_email_address_tests.rb +0 -27
  260. data/tests/requests/simpledb/attributes_tests.rb +0 -86
  261. data/tests/requests/simpledb/domain_tests.rb +0 -51
  262. data/tests/requests/simpledb/helper.rb +0 -10
  263. data/tests/requests/sns/helper.rb +0 -9
  264. data/tests/requests/sns/subscription_tests.rb +0 -86
  265. data/tests/requests/sns/topic_tests.rb +0 -53
  266. data/tests/requests/sqs/helper.rb +0 -9
  267. data/tests/requests/sqs/message_tests.rb +0 -51
  268. data/tests/requests/sqs/queue_tests.rb +0 -50
  269. data/tests/requests/storage/acl_utils_tests.rb +0 -209
  270. data/tests/requests/storage/bucket_tests.rb +0 -416
  271. data/tests/requests/storage/cors_utils_tests.rb +0 -108
  272. data/tests/requests/storage/delete_multiple_objects_tests.rb +0 -12
  273. data/tests/requests/storage/multipart_copy_tests.rb +0 -93
  274. data/tests/requests/storage/multipart_upload_tests.rb +0 -121
  275. data/tests/requests/storage/object_tests.rb +0 -269
  276. data/tests/requests/storage/versioning_tests.rb +0 -300
  277. data/tests/requests/sts/assume_role_tests.rb +0 -19
  278. data/tests/requests/sts/assume_role_with_saml_tests.rb +0 -18
  279. data/tests/requests/sts/assume_role_with_web_identity_tests.rb +0 -28
  280. data/tests/requests/sts/get_federation_token_tests.rb +0 -20
  281. data/tests/requests/sts/session_token_tests.rb +0 -16
  282. data/tests/requests/support/helper.rb +0 -43
  283. data/tests/requests/support/trusted_advisor_check_tests.rb +0 -16
  284. data/tests/signaturev4_tests.rb +0 -106
  285. data/tests/signed_params_tests.rb +0 -17
  286. data/tests/storage_tests.rb +0 -7
@@ -286,6 +286,76 @@ module Fog
286
286
  :ebs_optimized_available => true,
287
287
  :instance_store_volumes => 0
288
288
  },
289
+ {
290
+ :id => 't4g.nano',
291
+ :name => 'T4G Nano Instace',
292
+ :bits => 64,
293
+ :cores => 2,
294
+ :disk => 0,
295
+ :ram => 537,
296
+ :ebs_optimized_available => true,
297
+ :instance_store_volumes => 0
298
+ },
299
+ {
300
+ :id => 't4g.micro',
301
+ :name => 'T4G Micro Instance',
302
+ :bits => 64,
303
+ :cores => 2,
304
+ :disk => 0,
305
+ :ram => 1073,
306
+ :ebs_optimized_available => true,
307
+ :instance_store_volumes => 0
308
+ },
309
+ {
310
+ :id => 't4g.small',
311
+ :name => 'T4G Small Instance',
312
+ :bits => 64,
313
+ :cores => 2,
314
+ :disk => 0,
315
+ :ram => 2147,
316
+ :ebs_optimized_available => true,
317
+ :instance_store_volumes => 0
318
+ },
319
+ {
320
+ :id => 't4g.medium',
321
+ :name => 'T4G Medium Instace',
322
+ :bits => 64,
323
+ :cores => 2,
324
+ :disk => 0,
325
+ :ram => 4295,
326
+ :ebs_optimized_available => true,
327
+ :instance_store_volumes => 0
328
+ },
329
+ {
330
+ :id => 't4g.large',
331
+ :name => 'T4G Large Instance',
332
+ :bits => 64,
333
+ :cores => 2,
334
+ :disk => 0,
335
+ :ram => 8590,
336
+ :ebs_optimized_available => true,
337
+ :instance_store_volumes => 0
338
+ },
339
+ {
340
+ :id => 't4g.xlarge',
341
+ :name => 'T4G Extra Large Instance',
342
+ :bits => 64,
343
+ :cores => 4,
344
+ :disk => 0,
345
+ :ram => 17180,
346
+ :ebs_optimized_available => true,
347
+ :instance_store_volumes => 0
348
+ },
349
+ {
350
+ :id => 't4g.2xlarge',
351
+ :name => 'T4G Double Extra Large Instance',
352
+ :bits => 64,
353
+ :cores => 8,
354
+ :disk => 0,
355
+ :ram => 34360,
356
+ :ebs_optimized_available => true,
357
+ :instance_store_volumes => 0
358
+ },
289
359
  {
290
360
  :id => 'm6g.medium',
291
361
  :name => 'M6G Medium',
@@ -2236,6 +2306,96 @@ module Fog
2236
2306
  :ebs_optimized_available => true,
2237
2307
  :instance_store_volumes => 2
2238
2308
  },
2309
+ {
2310
+ :id => 'x2gd.medium',
2311
+ :name => 'X2gd Medium Instance',
2312
+ :bits => 64,
2313
+ :cores => 1,
2314
+ :disk => 59,
2315
+ :ram => 17180,
2316
+ :ebs_optimized_available => true,
2317
+ :instance_store_volumes => 0
2318
+ },
2319
+ {
2320
+ :id => 'x2gd.large',
2321
+ :name => 'X2gd Large Instance',
2322
+ :bits => 64,
2323
+ :cores => 2,
2324
+ :disk => 118,
2325
+ :ram => 34360,
2326
+ :ebs_optimized_available => true,
2327
+ :instance_store_volumes => 0
2328
+ },
2329
+ {
2330
+ :id => 'x2gd.xlarge',
2331
+ :name => 'X2gd Extra Large Instance',
2332
+ :bits => 64,
2333
+ :cores => 4,
2334
+ :disk => 237,
2335
+ :ram => 68719,
2336
+ :ebs_optimized_available => true,
2337
+ :instance_store_volumes => 0
2338
+ },
2339
+ {
2340
+ :id => 'x2gd.2xlarge',
2341
+ :name => 'X2gd Double Extra Large Instance',
2342
+ :bits => 64,
2343
+ :cores => 8,
2344
+ :disk => 475,
2345
+ :ram => 137439,
2346
+ :ebs_optimized_available => true,
2347
+ :instance_store_volumes => 0
2348
+ },
2349
+ {
2350
+ :id => 'x2gd.4xlarge',
2351
+ :name => 'X2gd Quadruple Extra Large Instance',
2352
+ :bits => 64,
2353
+ :cores => 16,
2354
+ :disk => 950,
2355
+ :ram => 274878,
2356
+ :ebs_optimized_available => true,
2357
+ :instance_store_volumes => 0
2358
+ },
2359
+ {
2360
+ :id => 'x2gd.8xlarge',
2361
+ :name => 'X2gd Octuple Extra Large Instance',
2362
+ :bits => 64,
2363
+ :cores => 32,
2364
+ :disk => 1900,
2365
+ :ram => 549756,
2366
+ :ebs_optimized_available => true,
2367
+ :instance_store_volumes => 0
2368
+ },
2369
+ {
2370
+ :id => 'x2gd.12xlarge',
2371
+ :name => 'X2gd Twelve Extra Large Instance',
2372
+ :bits => 64,
2373
+ :cores => 48,
2374
+ :disk => 2850,
2375
+ :ram => 824634,
2376
+ :ebs_optimized_available => true,
2377
+ :instance_store_volumes => 0
2378
+ },
2379
+ {
2380
+ :id => 'x2gd.16xlarge',
2381
+ :name => 'X2gd Sixteen Extra Large Instance',
2382
+ :bits => 64,
2383
+ :cores => 64,
2384
+ :disk => 3800,
2385
+ :ram => 1099512,
2386
+ :ebs_optimized_available => true,
2387
+ :instance_store_volumes => 0
2388
+ },
2389
+ {
2390
+ :id => 'x2gd.metal',
2391
+ :name => 'X2gd Metal',
2392
+ :bits => 64,
2393
+ :cores => 64,
2394
+ :disk => 3800,
2395
+ :ram => 1099512,
2396
+ :ebs_optimized_available => true,
2397
+ :instance_store_volumes => 0
2398
+ },
2239
2399
  {
2240
2400
  :id => "u-6tb1.metal",
2241
2401
  :name => "U 6TB Metal",
@@ -11,6 +11,7 @@ module Fog
11
11
  load(data)
12
12
  end
13
13
 
14
+ # Warning! This retrieves and caches meta data for the first 10,000 objects in the bucket, which can be very expensive. When possible use directories.new
14
15
  def get(key, options = {})
15
16
  remap_attributes(options, {
16
17
  :delimiter => 'delimiter',
@@ -108,15 +108,16 @@ module Fog
108
108
  # @return [File]
109
109
  #
110
110
  def body
111
- return attributes[:body] if attributes[:body]
112
- return '' unless last_modified
111
+ return attributes[:body] if attributes.key?(:body)
113
112
 
114
113
  file = collection.get(identity)
115
- if file
116
- attributes[:body] = file.body
117
- else
118
- attributes[:body] = ''
119
- end
114
+
115
+ attributes[:body] =
116
+ if file
117
+ file.body
118
+ else
119
+ ''
120
+ end
120
121
  end
121
122
 
122
123
  # Set body attribute.
@@ -14,7 +14,7 @@ module Fog
14
14
  when 'GroupName', 'PolicyName'
15
15
  @response[name] = value
16
16
  when 'PolicyDocument'
17
- @response['Policy'][name] = if decoded_string = URI.decode(value)
17
+ @response['Policy'][name] = if decoded_string = URI.decode_www_form_component(value)
18
18
  Fog::JSON.decode(decoded_string) rescue value
19
19
  else
20
20
  value
@@ -12,7 +12,7 @@ module Fog
12
12
  when 'RoleName', 'PolicyName'
13
13
  @response['Policy'][name] = value
14
14
  when 'PolicyDocument'
15
- @response['Policy'][name] = if decoded_string = URI.decode(value)
15
+ @response['Policy'][name] = if decoded_string = URI.decode_www_form_component(value)
16
16
  Fog::JSON.decode(decoded_string) rescue value
17
17
  else
18
18
  value
@@ -14,7 +14,7 @@ module Fog
14
14
  when 'UserName', 'PolicyName'
15
15
  @response['Policy'][name] = value
16
16
  when 'PolicyDocument'
17
- @response['Policy'][name] = if decoded_string = URI.decode(value)
17
+ @response['Policy'][name] = if decoded_string = URI.decode_www_form_component(value)
18
18
  Fog::JSON.decode(decoded_string) rescue value
19
19
  else
20
20
  value
@@ -18,7 +18,7 @@ module Fog
18
18
  when 'IsDefaultVersion'
19
19
  @version[name] = (value == 'true')
20
20
  when 'Document'
21
- @version[name] = if decoded_string = URI.decode(value)
21
+ @version[name] = if decoded_string = URI.decode_www_form_component(value)
22
22
  Fog::JSON.decode(decoded_string) rescue value
23
23
  else
24
24
  value
@@ -2,6 +2,7 @@ module Fog
2
2
  module AWS
3
3
  class Compute
4
4
  class Real
5
+ require 'ipaddr'
5
6
  require 'fog/aws/parsers/compute/create_network_interface'
6
7
 
7
8
  # Creates a network interface
@@ -68,7 +69,7 @@ module Fog
68
69
  raise Fog::AWS::Compute::Error.new("Unknown subnet '#{subnetId}' specified")
69
70
  else
70
71
  id = Fog::AWS::Mock.network_interface_id
71
- cidr_block = IPAddress.parse(subnet['cidrBlock'])
72
+ cidr_block = IPAddr.new(subnet['cidrBlock'])
72
73
 
73
74
  groups = {}
74
75
  if options['GroupSet']
@@ -82,12 +83,14 @@ module Fog
82
83
  end
83
84
 
84
85
  if options['PrivateIpAddress'].nil?
86
+ range = cidr_block.to_range
85
87
  # Here we try to act like a DHCP server and pick the first
86
88
  # available IP (not including the first in the cidr block,
87
89
  # which is typically reserved for the gateway).
88
- cidr_block.each_host do |p_ip|
89
- unless self.data[:network_interfaces].map{ |ni, ni_conf| ni_conf['privateIpAddress'] }.include?p_ip.to_s ||
90
- cidr_block.first == p_ip
90
+ range = range.drop(2)[0..-2] if cidr_block.ipv4?
91
+
92
+ range.each do |p_ip|
93
+ unless self.data[:network_interfaces].map{ |ni, ni_conf| ni_conf['privateIpAddress'] }.include?p_ip.to_s
91
94
  options['PrivateIpAddress'] = p_ip.to_s
92
95
  break
93
96
  end
@@ -2,7 +2,7 @@ module Fog
2
2
  module AWS
3
3
  class Compute
4
4
  class Real
5
- require 'ipaddress'
5
+ require 'ipaddr'
6
6
  require 'fog/aws/parsers/compute/create_subnet'
7
7
 
8
8
  # Creates a Subnet with the CIDR block you specify.
@@ -50,11 +50,11 @@ module Fog
50
50
  if vpc.nil?
51
51
  raise Fog::AWS::Compute::NotFound.new("The vpc ID '#{vpcId}' does not exist")
52
52
  end
53
- if ! ::IPAddress.parse(vpc['cidrBlock']).include?(::IPAddress.parse(cidrBlock))
53
+ if ! ::IPAddr.new(vpc['cidrBlock']).include?(::IPAddr.new(cidrBlock))
54
54
  raise Fog::AWS::Compute::Error.new("Range => The CIDR '#{cidrBlock}' is invalid.")
55
55
  end
56
56
  self.data[:subnets].select{ |s| s['vpcId'] == vpcId }.each do |subnet|
57
- if ::IPAddress.parse(subnet['cidrBlock']).include?(::IPAddress.parse(cidrBlock))
57
+ if ::IPAddr.new(subnet['cidrBlock']).include?(::IPAddr.new(cidrBlock))
58
58
  raise Fog::AWS::Compute::Error.new("Conflict => The CIDR '#{cidrBlock}' conflicts with another subnet")
59
59
  end
60
60
  end
@@ -12,28 +12,30 @@ module Fog
12
12
  # * body<~Hash>:
13
13
  def add_tags_to_resource(rds_id, tags)
14
14
  keys = tags.keys.sort
15
- values = keys.map {|key| tags[key]}
15
+ values = keys.map { |key| tags[key] }
16
+ resource_name = "arn:aws:rds:#{@region}:#{owner_id}:db:#{rds_id}"
17
+ %w[us-gov-west-1 us-gov-east-1].include?(@region) ? resource_name.insert(7, '-us-gov') : resource_name
16
18
  request({
17
- 'Action' => 'AddTagsToResource',
18
- 'ResourceName' => "arn:aws:rds:#{@region}:#{owner_id}:db:#{rds_id}",
19
- :parser => Fog::Parsers::AWS::RDS::Base.new,
20
- }.merge(Fog::AWS.indexed_param('Tags.member.%d.Key', keys)).
21
- merge(Fog::AWS.indexed_param('Tags.member.%d.Value', values)))
19
+ 'Action' => 'AddTagsToResource',
20
+ 'ResourceName' => resource_name,
21
+ :parser => Fog::Parsers::AWS::RDS::Base.new
22
+ }.merge(Fog::AWS.indexed_param('Tags.member.%d.Key', keys))
23
+ .merge(Fog::AWS.indexed_param('Tags.member.%d.Value', values)))
22
24
  end
23
25
  end
24
26
 
25
27
  class Mock
26
28
  def add_tags_to_resource(rds_id, tags)
27
29
  response = Excon::Response.new
28
- if server = self.data[:servers][rds_id]
29
- self.data[:tags][rds_id].merge! tags
30
+ if server = data[:servers][rds_id]
31
+ data[:tags][rds_id].merge! tags
30
32
  response.status = 200
31
33
  response.body = {
32
- "ResponseMetadata"=>{ "RequestId"=> Fog::AWS::Mock.request_id }
34
+ 'ResponseMetadata' => { 'RequestId' => Fog::AWS::Mock.request_id }
33
35
  }
34
36
  response
35
37
  else
36
- raise Fog::AWS::RDS::NotFound.new("DBInstance #{rds_id} not found")
38
+ raise Fog::AWS::RDS::NotFound, "DBInstance #{rds_id} not found"
37
39
  end
38
40
  end
39
41
  end
@@ -11,11 +11,14 @@ module Fog
11
11
  # ==== Returns
12
12
  # * response<~Excon::Response>:
13
13
  # * body<~Hash>:
14
+
14
15
  def list_tags_for_resource(rds_id)
16
+ resource_name = "arn:aws:rds:#{@region}:#{owner_id}:db:#{rds_id}"
17
+ %w[us-gov-west-1 us-gov-east-1].include?(@region) ? resource_name.insert(7, '-us-gov') : resource_name
15
18
  request(
16
- 'Action' => 'ListTagsForResource',
17
- 'ResourceName' => "arn:aws:rds:#{@region}:#{owner_id}:db:#{rds_id}",
18
- :parser => Fog::Parsers::AWS::RDS::TagListParser.new
19
+ 'Action' => 'ListTagsForResource',
20
+ 'ResourceName' => resource_name,
21
+ :parser => Fog::Parsers::AWS::RDS::TagListParser.new
19
22
  )
20
23
  end
21
24
  end
@@ -23,15 +26,15 @@ module Fog
23
26
  class Mock
24
27
  def list_tags_for_resource(rds_id)
25
28
  response = Excon::Response.new
26
- if server = self.data[:servers][rds_id]
29
+ if server = data[:servers][rds_id]
27
30
  response.status = 200
28
31
  response.body = {
29
- "ListTagsForResourceResult" =>
30
- {"TagList" => self.data[:tags][rds_id]}
32
+ 'ListTagsForResourceResult' =>
33
+ { 'TagList' => data[:tags][rds_id] }
31
34
  }
32
35
  response
33
36
  else
34
- raise Fog::AWS::RDS::NotFound.new("DBInstance #{rds_id} not found")
37
+ raise Fog::AWS::RDS::NotFound, "DBInstance #{rds_id} not found"
35
38
  end
36
39
  end
37
40
  end
@@ -11,11 +11,12 @@ module Fog
11
11
  # * response<~Excon::Response>:
12
12
  # * body<~Hash>:
13
13
  def remove_tags_from_resource(rds_id, keys)
14
+ resource_name = "arn:aws:rds:#{@region}:#{owner_id}:db:#{rds_id}"
15
+ %w[us-gov-west-1 us-gov-east-1].include?(@region) ? resource_name.insert(7, '-us-gov') : resource_name
14
16
  request(
15
- { 'Action' => 'RemoveTagsFromResource',
16
- 'ResourceName' => "arn:aws:rds:#{@region}:#{owner_id}:db:#{rds_id}",
17
- :parser => Fog::Parsers::AWS::RDS::Base.new,
18
- }.merge(Fog::AWS.indexed_param('TagKeys.member.%d', keys))
17
+ { 'Action' => 'RemoveTagsFromResource',
18
+ 'ResourceName' => resource_name,
19
+ :parser => Fog::Parsers::AWS::RDS::Base.new }.merge(Fog::AWS.indexed_param('TagKeys.member.%d', keys))
19
20
  )
20
21
  end
21
22
  end
@@ -23,15 +24,15 @@ module Fog
23
24
  class Mock
24
25
  def remove_tags_from_resource(rds_id, keys)
25
26
  response = Excon::Response.new
26
- if server = self.data[:servers][rds_id]
27
- keys.each {|key| self.data[:tags][rds_id].delete key}
27
+ if server = data[:servers][rds_id]
28
+ keys.each { |key| data[:tags][rds_id].delete key }
28
29
  response.status = 200
29
30
  response.body = {
30
- "ResponseMetadata"=>{ "RequestId"=> Fog::AWS::Mock.request_id }
31
+ 'ResponseMetadata' => { 'RequestId' => Fog::AWS::Mock.request_id }
31
32
  }
32
33
  response
33
34
  else
34
- raise Fog::AWS::RDS::NotFound.new("DBInstance #{rds_id} not found")
35
+ raise Fog::AWS::RDS::NotFound, "DBInstance #{rds_id} not found"
35
36
  end
36
37
  end
37
38
  end
@@ -6,7 +6,7 @@ module Fog
6
6
  #
7
7
  def sync_clock
8
8
  response = begin
9
- get_service
9
+ Excon.get("#{@scheme}://#{@host}")
10
10
  rescue Excon::Errors::HTTPStatusError => error
11
11
  error.response
12
12
  end
@@ -46,7 +46,7 @@ module Fog
46
46
  ]
47
47
 
48
48
  requires :aws_access_key_id, :aws_secret_access_key
49
- recognizes :endpoint, :region, :host, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :path_style, :acceleration, :instrumentor, :instrumentor_name, :aws_signature_version, :enable_signature_v4_streaming, :virtual_host, :cname, :max_put_chunk_size, :max_copy_chunk_size
49
+ recognizes :endpoint, :region, :host, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :path_style, :acceleration, :instrumentor, :instrumentor_name, :aws_signature_version, :enable_signature_v4_streaming, :virtual_host, :cname, :max_put_chunk_size, :max_copy_chunk_size, :aws_credentials_refresh_threshold_seconds
50
50
 
51
51
  secrets :aws_secret_access_key, :hmac
52
52
 
@@ -500,6 +500,8 @@ module Fog
500
500
  end
501
501
 
502
502
  def setup_credentials(options)
503
+ @aws_credentials_refresh_threshold_seconds = options[:aws_credentials_refresh_threshold_seconds]
504
+
503
505
  @aws_access_key_id = options[:aws_access_key_id]
504
506
  @aws_secret_access_key = options[:aws_secret_access_key]
505
507
  @aws_session_token = options[:aws_session_token]
@@ -577,6 +579,8 @@ module Fog
577
579
 
578
580
 
579
581
  def setup_credentials(options)
582
+ @aws_credentials_refresh_threshold_seconds = options[:aws_credentials_refresh_threshold_seconds]
583
+
580
584
  @aws_access_key_id = options[:aws_access_key_id]
581
585
  @aws_secret_access_key = options[:aws_secret_access_key]
582
586
  @aws_session_token = options[:aws_session_token]
@@ -1,5 +1,5 @@
1
1
  module Fog
2
2
  module AWS
3
- VERSION = "3.12.0"
3
+ VERSION = "3.15.0"
4
4
  end
5
5
  end