fog-aws 3.6.4 → 3.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f289bf7f4001b92e347106bdfda3d867b870bec5669ac28b5cb9cec528807ab7
4
- data.tar.gz: 5fd55a3abe362e701f30eac3b6b0c590f070635442a74ee00309d954369e4e81
3
+ metadata.gz: b7361a3fa82cc86bf32908aa54819a2efb8485e6639cbe9cd62a0e3bedb8e422
4
+ data.tar.gz: d0b4dea28aecb3a18b887ce40437baa868f38ebd83fa69e13ecf912d0aba3df8
5
5
  SHA512:
6
- metadata.gz: 9e2b3950738fdeeacdeb9ec7ebe7edb561a4906b8b0d909a80ee743a4d9604a77e1d00732e44c0786b180b82352accfc907e15aba7ac9b001d68c5e782667dba
7
- data.tar.gz: 7cb59578e078f5210866b6db6b2a81f2148df51bb5e42533adbefff6050f7edcfa414ea05b448c677e5638044184fe4c01ff43cb7079be6ed72fe47727f0ca29
6
+ metadata.gz: 9d7602d22a1abab86581a0b4500c00b545af1264e46fac5648d70d0a2fc9dd157ffa37bf289b87aaa08836aa12d7f2cd67ea4437e2732796c7e089811ca2b029
7
+ data.tar.gz: 9e90b2ae4aeeb8170630825f49fa2500f56b45bcaa38dade2b72b7019a1db5d93d9634645301aa0706f1df25e118d03fe5b9e6a11e2a9f47e78e82dd9790cb7d
@@ -19,8 +19,51 @@ matrix:
19
19
  gemfile: Gemfile
20
20
  - rvm: 2.5.0
21
21
  gemfile: gemfiles/Gemfile-edge
22
+ - rvm: 2.6.6
23
+ gemfile: Gemfile
24
+ - rvm: 2.6.6
25
+ gemfile: gemfiles/Gemfile-edge
26
+ - rvm: 2.7.2
27
+ gemfile: Gemfile
28
+ - rvm: 2.7.2
29
+ gemfile: gemfiles/Gemfile-edge
30
+ - rvm: jruby-head
31
+ gemfile: Gemfile
32
+ # ppc64le specific changes
33
+ - rvm: 2.3.0
34
+ gemfile: Gemfile
35
+ arch: ppc64le
36
+ - rvm: 2.3.0
37
+ arch: ppc64le
38
+ gemfile: gemfiles/Gemfile-edge
39
+ - rvm: 2.4.0
40
+ arch: ppc64le
41
+ gemfile: Gemfile
42
+ - rvm: 2.4.0
43
+ arch: ppc64le
44
+ gemfile: gemfiles/Gemfile-edge
45
+ - rvm: 2.5.0
46
+ arch: ppc64le
47
+ gemfile: Gemfile
48
+ - rvm: 2.5.0
49
+ arch: ppc64le
50
+ gemfile: gemfiles/Gemfile-edge
51
+ - rvm: 2.6.6
52
+ arch: ppc64le
53
+ gemfile: Gemfile
54
+ - rvm: 2.6.6
55
+ arch: ppc64le
56
+ gemfile: gemfiles/Gemfile-edge
57
+ - rvm: 2.7.2
58
+ arch: ppc64le
59
+ gemfile: Gemfile
60
+ - rvm: 2.7.2
61
+ arch: ppc64le
62
+ gemfile: gemfiles/Gemfile-edge
22
63
  - rvm: jruby-head
64
+ arch: ppc64le
23
65
  gemfile: Gemfile
66
+
24
67
  allow_failures:
25
68
  - rvm: jruby-head
26
69
  gemfile: Gemfile
@@ -32,6 +75,32 @@ matrix:
32
75
  gemfile: gemfiles/Gemfile-edge
33
76
  - rvm: 2.5.0
34
77
  gemfile: gemfiles/Gemfile-edge
78
+ - rvm: 2.6.6
79
+ gemfile: gemfiles/Gemfile-edge
80
+ - rvm: 2.7.2
81
+ gemfile: gemfiles/Gemfile-edge
82
+ # ppc64le specific changes
83
+ - rvm: jruby-head
84
+ arch: ppc64le
85
+ gemfile: Gemfile
86
+ - rvm: 2.2.0
87
+ arch: ppc64le
88
+ gemfile: gemfiles/Gemfile-edge
89
+ - rvm: 2.3.0
90
+ arch: ppc64le
91
+ gemfile: gemfiles/Gemfile-edge
92
+ - rvm: 2.4.0
93
+ arch: ppc64le
94
+ gemfile: gemfiles/Gemfile-edge
95
+ - rvm: 2.5.0
96
+ arch: ppc64le
97
+ gemfile: gemfiles/Gemfile-edge
98
+ - rvm: 2.6.6
99
+ arch: ppc64le
100
+ gemfile: gemfiles/Gemfile-edge
101
+ - rvm: 2.7.2
102
+ arch: ppc64le
103
+ gemfile: gemfiles/Gemfile-edge
35
104
  notifications:
36
105
  email: false
37
106
  irc:
@@ -1,5 +1,82 @@
1
1
  # Change Log
2
2
 
3
+ ## [v3.8.0](https://github.com/fog/fog-aws/tree/v3.8.0)
4
+
5
+ [Full Changelog](https://github.com/fog/fog-aws/compare/v3.7.0...v3.8.0)
6
+
7
+ **Closed issues:**
8
+
9
+ - Getting Auth failure Exception for non enabled AWS regions in AWS account. [\#585](https://github.com/fog/fog-aws/issues/585)
10
+
11
+ **Merged pull requests:**
12
+
13
+ - Filter unknown UploadPartCopy paramaters [\#589](https://github.com/fog/fog-aws/pull/589) ([stanhu](https://github.com/stanhu))
14
+ - Fix NameError in multipart copy [\#588](https://github.com/fog/fog-aws/pull/588) ([stanhu](https://github.com/stanhu))
15
+ - Rewind pointer if file is eof on put\_object mock [\#587](https://github.com/fog/fog-aws/pull/587) ([ekulz](https://github.com/ekulz))
16
+ - Update .travis.yml [\#584](https://github.com/fog/fog-aws/pull/584) ([nageshlop](https://github.com/nageshlop))
17
+
18
+ ## [v3.7.0](https://github.com/fog/fog-aws/tree/v3.7.0) (2020-12-01)
19
+ [Full Changelog](https://github.com/fog/fog-aws/compare/v3.6.7...v3.7.0)
20
+
21
+ **Closed issues:**
22
+
23
+ - File\#copy does not support files above 5 GB [\#577](https://github.com/fog/fog-aws/issues/577)
24
+ - fog-aws: AWS extended length resource ID issues \(8-\>18\) [\#517](https://github.com/fog/fog-aws/issues/517)
25
+
26
+ **Merged pull requests:**
27
+
28
+ - Add all m6gd, r6g, r6gd, c6g, and c6gd instance classes [\#582](https://github.com/fog/fog-aws/pull/582) ([calebwoofenden](https://github.com/calebwoofenden))
29
+ - Test Ruby v2.6.6 and v2.7.2 in CI [\#581](https://github.com/fog/fog-aws/pull/581) ([stanhu](https://github.com/stanhu))
30
+ - Add multi-threaded support for File\#copy [\#579](https://github.com/fog/fog-aws/pull/579) ([stanhu](https://github.com/stanhu))
31
+ - Add support for multipart Fog::AWS::Storage::File\#copy [\#578](https://github.com/fog/fog-aws/pull/578) ([stanhu](https://github.com/stanhu))
32
+ - Add AssumeRoleWithWebIdentity to fetch\_credentials [\#576](https://github.com/fog/fog-aws/pull/576) ([jpac-run](https://github.com/jpac-run))
33
+
34
+ ## [v3.6.7](https://github.com/fog/fog-aws/tree/v3.6.7) (2020-08-26)
35
+ [Full Changelog](https://github.com/fog/fog-aws/compare/v3.6.6...v3.6.7)
36
+
37
+ **Merged pull requests:**
38
+
39
+ - S3 dot Region endpoint structure applied [\#574](https://github.com/fog/fog-aws/pull/574) ([gharutyunyan-vineti](https://github.com/gharutyunyan-vineti))
40
+
41
+ ## [v3.6.6](https://github.com/fog/fog-aws/tree/v3.6.6) (2020-06-23)
42
+ [Full Changelog](https://github.com/fog/fog-aws/compare/v3.6.5...v3.6.6)
43
+
44
+ **Closed issues:**
45
+
46
+ - max\_keys param in storage.directories.get.... what am I missing? [\#568](https://github.com/fog/fog-aws/issues/568)
47
+ - Fog Logs? [\#561](https://github.com/fog/fog-aws/issues/561)
48
+
49
+ **Merged pull requests:**
50
+
51
+ - added missing region EU South \(Milan\) [\#570](https://github.com/fog/fog-aws/pull/570) ([saldan](https://github.com/saldan))
52
+ - Fix VPC model is\_default requires [\#567](https://github.com/fog/fog-aws/pull/567) ([biinari](https://github.com/biinari))
53
+
54
+ ## [v3.6.5](https://github.com/fog/fog-aws/tree/v3.6.5) (2020-05-22)
55
+ [Full Changelog](https://github.com/fog/fog-aws/compare/v3.6.4...v3.6.5)
56
+
57
+ **Closed issues:**
58
+
59
+ - Fog::Compute::AWS is deprecated, please use Fog::AWS::Compute warning [\#565](https://github.com/fog/fog-aws/issues/565)
60
+ - Duplicate compute flavours [\#563](https://github.com/fog/fog-aws/issues/563)
61
+ - 3.6.4 does not fetch iam credentials using IMDSv2 when running from inside containers with IMDSv2 Defaults [\#560](https://github.com/fog/fog-aws/issues/560)
62
+
63
+ **Merged pull requests:**
64
+
65
+ - Fix naming of various AWS compute flavors [\#564](https://github.com/fog/fog-aws/pull/564) ([abrom](https://github.com/abrom))
66
+ - Gracefully handle failure of IMDSv2 and allow fallback to IMDSv1 [\#562](https://github.com/fog/fog-aws/pull/562) ([atyndall](https://github.com/atyndall))
67
+
68
+ ## [v3.6.4](https://github.com/fog/fog-aws/tree/v3.6.4) (2020-05-14)
69
+ [Full Changelog](https://github.com/fog/fog-aws/compare/v3.6.3...v3.6.4)
70
+
71
+ **Closed issues:**
72
+
73
+ - Is fog-aws compatible with AWS Trust Services? [\#558](https://github.com/fog/fog-aws/issues/558)
74
+
75
+ **Merged pull requests:**
76
+
77
+ - Add support for IMDSv2 in CredentialFetcher [\#559](https://github.com/fog/fog-aws/pull/559) ([atyndall](https://github.com/atyndall))
78
+ - Don’t install development scripts [\#557](https://github.com/fog/fog-aws/pull/557) ([amarshall](https://github.com/amarshall))
79
+
3
80
  ## [v3.6.3](https://github.com/fog/fog-aws/tree/v3.6.3) (2020-04-22)
4
81
  [Full Changelog](https://github.com/fog/fog-aws/compare/v3.6.2...v3.6.3)
5
82
 
@@ -20,6 +97,7 @@
20
97
 
21
98
  **Merged pull requests:**
22
99
 
100
+ - hibernation option to compute [\#569](https://github.com/fog/fog-aws/pull/569) ([taniahagan](https://github.com/taniahagan))
23
101
  - Adding two missing regions to Fog::AWS.regions [\#552](https://github.com/fog/fog-aws/pull/552) ([lvangool](https://github.com/lvangool))
24
102
  - Adds missing param WebIdentityToken for the request to the AWS api [\#550](https://github.com/fog/fog-aws/pull/550) ([dgoradia](https://github.com/dgoradia))
25
103
  - Fixes type in class name for STS assume\_role\_with\_web\_identity parser [\#549](https://github.com/fog/fog-aws/pull/549) ([dgoradia](https://github.com/dgoradia))
@@ -300,6 +378,7 @@
300
378
  - Fog mock accuracy, fixes \#341 [\#344](https://github.com/fog/fog-aws/pull/344) ([easkay](https://github.com/easkay))
301
379
  - Subnet [\#343](https://github.com/fog/fog-aws/pull/343) ([ehowe](https://github.com/ehowe))
302
380
  - Fix multipart upload [\#340](https://github.com/fog/fog-aws/pull/340) ([nobmurakita](https://github.com/nobmurakita))
381
+ - credential\_fetcher: Mark AWS metadata calls as idempotent [\#329](https://github.com/fog/fog-aws/pull/329) ([mtekel](https://github.com/mtekel))
303
382
 
304
383
  ## [v1.2.0](https://github.com/fog/fog-aws/tree/v1.2.0) (2017-01-20)
305
384
  [Full Changelog](https://github.com/fog/fog-aws/compare/v1.1.0...v1.2.0)
@@ -327,14 +406,13 @@
327
406
  - Canada and London regions [\#333](https://github.com/fog/fog-aws/pull/333) ([mattheworiordan](https://github.com/mattheworiordan))
328
407
  - Updated ELB Dual Stack hosted zone DNS records [\#332](https://github.com/fog/fog-aws/pull/332) ([mattheworiordan](https://github.com/mattheworiordan))
329
408
  - Added support for attaching auto scaling groups to target groups [\#330](https://github.com/fog/fog-aws/pull/330) ([maf23](https://github.com/maf23))
330
- - credential\_fetcher: Mark AWS metadata calls as idempotent [\#329](https://github.com/fog/fog-aws/pull/329) ([mtekel](https://github.com/mtekel))
409
+ - fix host header with another port on s3 [\#327](https://github.com/fog/fog-aws/pull/327) ([rodrigoapereira](https://github.com/rodrigoapereira))
331
410
 
332
411
  ## [v1.0.0](https://github.com/fog/fog-aws/tree/v1.0.0) (2016-12-12)
333
412
  [Full Changelog](https://github.com/fog/fog-aws/compare/v0.13.0...v1.0.0)
334
413
 
335
414
  **Merged pull requests:**
336
415
 
337
- - fix host header with another port on s3 [\#327](https://github.com/fog/fog-aws/pull/327) ([rodrigoapereira](https://github.com/rodrigoapereira))
338
416
  - Add new t2.xlarge, t2.2xlarge and r4 class instances. [\#326](https://github.com/fog/fog-aws/pull/326) ([rogersd](https://github.com/rogersd))
339
417
  - Fix the bug that can't create fifo queue in SQS. [\#323](https://github.com/fog/fog-aws/pull/323) ([ebihara99999](https://github.com/ebihara99999))
340
418
  - data pipeline mocks [\#318](https://github.com/fog/fog-aws/pull/318) ([ehowe](https://github.com/ehowe))
@@ -533,7 +611,7 @@
533
611
  - make net/ssh require optional [\#197](https://github.com/fog/fog-aws/pull/197) ([geemus](https://github.com/geemus))
534
612
  - Cache cluster security group parser [\#190](https://github.com/fog/fog-aws/pull/190) ([eherot](https://github.com/eherot))
535
613
  - Allow region to be set for STS [\#189](https://github.com/fog/fog-aws/pull/189) ([fcheung](https://github.com/fcheung))
536
- - add cn support for s3 [\#187](https://github.com/fog/fog-aws/pull/187) ([ming-relax](https://github.com/ming-relax))
614
+ - add cn support for s3 [\#187](https://github.com/fog/fog-aws/pull/187) ([ming535](https://github.com/ming535))
537
615
  - mock instance stop and start properly [\#184](https://github.com/fog/fog-aws/pull/184) ([ehowe](https://github.com/ehowe))
538
616
  - Disable idempotent option when block is passed to get\_object [\#183](https://github.com/fog/fog-aws/pull/183) ([ghost](https://github.com/ghost))
539
617
  - Yield arguments to Mock\#get\_object block more similar to Excon [\#182](https://github.com/fog/fog-aws/pull/182) ([tdg5](https://github.com/tdg5))
@@ -857,4 +935,4 @@
857
935
  ## [fog-brightbox_v0.0.1](https://github.com/fog/fog-aws/tree/fog-brightbox_v0.0.1) (2014-02-19)
858
936
 
859
937
 
860
- \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
938
+ \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
data/Gemfile CHANGED
@@ -11,4 +11,4 @@ end
11
11
  group :test do
12
12
  gem "simplecov"
13
13
  gem "codeclimate-test-reporter", "~> 1.0.0"
14
- end
14
+ end
data/README.md CHANGED
@@ -105,6 +105,26 @@ directory.files
105
105
  directory.files.new(key: 'user/1/Gemfile').url(Time.now + 60)
106
106
  ```
107
107
 
108
+ #### Copying a file
109
+
110
+ ```ruby
111
+ directory = s3.directories.new(key: 'gaudi-portal-dev')
112
+ file = directory.files.get('user/1/Gemfile')
113
+ file.copy("target-bucket", "user/2/Gemfile.copy")
114
+ ```
115
+
116
+ To speed transfers of large files, the `concurrency` option can be used
117
+ to spawn multiple threads. Note that the file must be at least 5 MB for
118
+ multipart uploads to work. For example:
119
+
120
+ ```ruby
121
+ directory = s3.directories.new(key: 'gaudi-portal-dev')
122
+ file = directory.files.get('user/1/Gemfile')
123
+ file.multipart_chunk_size = 10 * 1024 * 1024
124
+ file.concurrency = 10
125
+ file.copy("target-bucket", "user/2/Gemfile.copy")
126
+ ```
127
+
108
128
  ## Documentation
109
129
 
110
130
  See the [online documentation](http://www.rubydoc.info/github/fog/fog-aws) for a complete API reference.
@@ -230,7 +230,7 @@ module Fog
230
230
  'cn-northwest-1',
231
231
  'eu-central-1',
232
232
  'eu-north-1',
233
- 'eu-west-1', 'eu-west-2', 'eu-west-3',
233
+ 'eu-west-1', 'eu-west-2', 'eu-west-3', 'eu-south-1',
234
234
  'me-south-1',
235
235
  'us-east-1', 'us-east-2',
236
236
  'us-west-1', 'us-west-2',
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Fog
2
4
  module AWS
3
5
  module CredentialFetcher
@@ -9,6 +11,8 @@ module Fog
9
11
 
10
12
  CONTAINER_CREDENTIALS_HOST = "http://169.254.170.2"
11
13
 
14
+ STS_GLOBAL_ENDPOINT = "https://sts.amazonaws.com"
15
+
12
16
  module ServiceMethods
13
17
  def fetch_credentials(options)
14
18
  if options[:use_iam_profile] && Fog.mocking?
@@ -23,29 +27,52 @@ module Fog
23
27
  connection = options[:connection] || Excon.new(CONTAINER_CREDENTIALS_HOST)
24
28
  credential_path = options[:credential_path] || ENV["AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"]
25
29
  role_data = connection.get(:path => credential_path, :idempotent => true, :expects => 200).body
30
+ session = Fog::JSON.decode(role_data)
31
+
32
+ if region.nil?
33
+ connection = options[:metadata_connection] || Excon.new(INSTANCE_METADATA_HOST)
34
+ token_header = fetch_credentials_token_header(connection, options[:disable_imds_v2])
35
+ region = connection.get(:path => INSTANCE_METADATA_AZ, :idempotent => true, :expects => 200, :headers => token_header).body[0..-2]
36
+ end
37
+ elsif ENV["AWS_WEB_IDENTITY_TOKEN_FILE"]
38
+ params = {
39
+ :Action => "AssumeRoleWithWebIdentity",
40
+ :RoleArn => options[:role_arn] || ENV.fetch("AWS_ROLE_ARN"),
41
+ :RoleSessionName => options[:role_session_name] || ENV.fetch("AWS_ROLE_SESSION_NAME"),
42
+ :WebIdentityToken => File.read(options[:aws_web_identity_token_file] || ENV.fetch("AWS_WEB_IDENTITY_TOKEN_FILE")),
43
+ :Version => "2011-06-15",
44
+ }
45
+ connection = options[:connection] || Excon.new(STS_GLOBAL_ENDPOINT, :query => params)
46
+ document = Nokogiri::XML(connection.get(:idempotent => true, :expects => 200).body)
47
+
48
+ session = {
49
+ "AccessKeyId" => document.css("AccessKeyId").children.text,
50
+ "SecretAccessKey" => document.css("SecretAccessKey").children.text,
51
+ "Token" => document.css("SessionToken").children.text,
52
+ "Expiration" => document.css("Expiration").children.text,
53
+ }
26
54
 
27
55
  if region.nil?
28
56
  connection = options[:metadata_connection] || Excon.new(INSTANCE_METADATA_HOST)
29
- token = connection.put(:path => INSTANCE_METADATA_TOKEN, :idempotent => true, :expects => 200, :headers => { "X-aws-ec2-metadata-token-ttl-seconds" => "300" }).body
30
- token_header = { "X-aws-ec2-metadata-token" => token }
57
+ token_header = fetch_credentials_token_header(connection, options[:disable_imds_v2])
31
58
  region = connection.get(:path => INSTANCE_METADATA_AZ, :idempotent => true, :expects => 200, :headers => token_header).body[0..-2]
32
59
  end
33
60
  else
34
61
  connection = options[:connection] || Excon.new(INSTANCE_METADATA_HOST)
35
- token = connection.put(:path => INSTANCE_METADATA_TOKEN, :idempotent => true, :expects => 200, :headers => { "X-aws-ec2-metadata-token-ttl-seconds" => "300" }).body
36
- token_header = { "X-aws-ec2-metadata-token" => token }
62
+ token_header = fetch_credentials_token_header(connection, options[:disable_imds_v2])
37
63
  role_name = connection.get(:path => INSTANCE_METADATA_PATH, :idempotent => true, :expects => 200, :headers => token_header).body
38
64
  role_data = connection.get(:path => INSTANCE_METADATA_PATH+role_name, :idempotent => true, :expects => 200, :headers => token_header).body
65
+ session = Fog::JSON.decode(role_data)
66
+
39
67
  region ||= connection.get(:path => INSTANCE_METADATA_AZ, :idempotent => true, :expects => 200, :headers => token_header).body[0..-2]
40
68
  end
41
-
42
- session = Fog::JSON.decode(role_data)
69
+
43
70
  credentials = {}
44
71
  credentials[:aws_access_key_id] = session['AccessKeyId']
45
72
  credentials[:aws_secret_access_key] = session['SecretAccessKey']
46
73
  credentials[:aws_session_token] = session['Token']
47
74
  credentials[:aws_credentials_expire_at] = Time.xmlschema session['Expiration']
48
-
75
+
49
76
  # set region by default to the one the instance is in.
50
77
  credentials[:region] = region
51
78
  #these indicate the metadata service is unavailable or has no profile setup
@@ -58,6 +85,26 @@ module Fog
58
85
  super
59
86
  end
60
87
  end
88
+
89
+ def fetch_credentials_token_header(connection, disable_imds_v2)
90
+ return nil if disable_imds_v2
91
+
92
+ token = connection.put(
93
+ :path => INSTANCE_METADATA_TOKEN,
94
+ :idempotent => true,
95
+ :expects => 200,
96
+ :retry_interval => 1,
97
+ :retry_limit => 3,
98
+ :read_timeout => 1,
99
+ :write_timeout => 1,
100
+ :connect_timeout => 1,
101
+ :headers => { "X-aws-ec2-metadata-token-ttl-seconds" => "300" }
102
+ ).body
103
+
104
+ { "X-aws-ec2-metadata-token" => token }
105
+ rescue Excon::Error
106
+ nil
107
+ end
61
108
  end
62
109
 
63
110
  module ConnectionMethods
@@ -68,7 +68,7 @@ module Fog
68
68
  },
69
69
  {
70
70
  :id => 't1.micro',
71
- :name => 'Micro Instance',
71
+ :name => 'T1 Micro Instance',
72
72
  :bits => 32,
73
73
  :cores => 1,
74
74
  :disk => 0,
@@ -88,7 +88,7 @@ module Fog
88
88
  },
89
89
  {
90
90
  :id => 't2.micro',
91
- :name => 'Micro Instance',
91
+ :name => 'T2 Micro Instance',
92
92
  :bits => 64,
93
93
  :cores => 1,
94
94
  :disk => 0,
@@ -98,7 +98,7 @@ module Fog
98
98
  },
99
99
  {
100
100
  :id => 't2.small',
101
- :name => 'Small Instance',
101
+ :name => 'T2 Small Instance',
102
102
  :bits => 64,
103
103
  :cores => 1,
104
104
  :disk => 0,
@@ -108,7 +108,7 @@ module Fog
108
108
  },
109
109
  {
110
110
  :id => 't2.medium',
111
- :name => 'Medium Instance',
111
+ :name => 'T2 Medium Instance',
112
112
  :bits => 64,
113
113
  :cores => 2,
114
114
  :disk => 0,
@@ -118,7 +118,7 @@ module Fog
118
118
  },
119
119
  {
120
120
  :id => 't2.large',
121
- :name => 'Large Instance',
121
+ :name => 'T2 Large Instance',
122
122
  :bits => 64,
123
123
  :cores => 2,
124
124
  :disk => 0,
@@ -128,7 +128,7 @@ module Fog
128
128
  },
129
129
  {
130
130
  :id => 't2.xlarge',
131
- :name => 'Extra Large Instance',
131
+ :name => 'T2 Extra Large Instance',
132
132
  :bits => 64,
133
133
  :cores => 4,
134
134
  :disk => 0,
@@ -138,7 +138,7 @@ module Fog
138
138
  },
139
139
  {
140
140
  :id => 't2.2xlarge',
141
- :name => 'Double Extra Large Instance',
141
+ :name => 'T2 Double Extra Large Instance',
142
142
  :bits => 64,
143
143
  :cores => 8,
144
144
  :disk => 0,
@@ -366,9 +366,109 @@ module Fog
366
366
  :ebs_optimized_available => true,
367
367
  :instance_store_volumes => 0
368
368
  },
369
+ {
370
+ :id => 'm6g.metal',
371
+ :name => 'M6G Metal',
372
+ :bits => 64,
373
+ :cores => 64,
374
+ :disk => 0,
375
+ :ram => 274878,
376
+ :ebs_optimized_available => true,
377
+ :instance_store_volumes => 0
378
+ },
379
+ {
380
+ :id => 'm6gd.medium',
381
+ :name => 'M6GD Medium',
382
+ :bits => 64,
383
+ :cores => 1,
384
+ :disk => 59,
385
+ :ram => 4295,
386
+ :ebs_optimized_available => true,
387
+ :instance_store_volumes => 1
388
+ },
389
+ {
390
+ :id => 'm6gd.large',
391
+ :name => 'M6GD Large',
392
+ :bits => 64,
393
+ :cores => 2,
394
+ :disk => 118,
395
+ :ram => 8590,
396
+ :ebs_optimized_available => true,
397
+ :instance_store_volumes => 1
398
+ },
399
+ {
400
+ :id => 'm6gd.xlarge',
401
+ :name => 'M6GD Extra Large',
402
+ :bits => 64,
403
+ :cores => 4,
404
+ :disk => 237,
405
+ :ram => 17180,
406
+ :ebs_optimized_available => true,
407
+ :instance_store_volumes => 1
408
+ },
409
+ {
410
+ :id => 'm6gd.2xlarge',
411
+ :name => 'M6GD Double Extra Large',
412
+ :bits => 64,
413
+ :cores => 8,
414
+ :disk => 474,
415
+ :ram => 34360,
416
+ :ebs_optimized_available => true,
417
+ :instance_store_volumes => 1
418
+ },
419
+ {
420
+ :id => 'm6gd.4xlarge',
421
+ :name => 'M6GD Quadruple Extra Large',
422
+ :bits => 64,
423
+ :cores => 16,
424
+ :disk => 950,
425
+ :ram => 68719,
426
+ :ebs_optimized_available => true,
427
+ :instance_store_volumes => 1
428
+ },
429
+ {
430
+ :id => 'm6gd.8xlarge',
431
+ :name => 'M6GD Octuple Extra Large',
432
+ :bits => 64,
433
+ :cores => 32,
434
+ :disk => 1900,
435
+ :ram => 137439,
436
+ :ebs_optimized_available => true,
437
+ :instance_store_volumes => 1
438
+ },
439
+ {
440
+ :id => 'm6gd.12xlarge',
441
+ :name => 'M6GD Twelve Extra Large',
442
+ :bits => 64,
443
+ :cores => 48,
444
+ :disk => 2850,
445
+ :ram => 206158,
446
+ :ebs_optimized_available => true,
447
+ :instance_store_volumes => 2
448
+ },
449
+ {
450
+ :id => 'm6gd.16xlarge',
451
+ :name => 'M6GD Sixteen Extra Large',
452
+ :bits => 64,
453
+ :cores => 64,
454
+ :disk => 3800,
455
+ :ram => 274878,
456
+ :ebs_optimized_available => true,
457
+ :instance_store_volumes => 2
458
+ },
459
+ {
460
+ :id => 'm6gd.metal',
461
+ :name => 'M6GD Metal',
462
+ :bits => 64,
463
+ :cores => 64,
464
+ :disk => 3800,
465
+ :ram => 274878,
466
+ :ebs_optimized_available => true,
467
+ :instance_store_volumes => 2
468
+ },
369
469
  {
370
470
  :id => 'm1.small',
371
- :name => 'Small Instance',
471
+ :name => 'M1 Small Instance',
372
472
  :bits => 32,
373
473
  :cores => 1,
374
474
  :disk => 160,
@@ -378,7 +478,7 @@ module Fog
378
478
  },
379
479
  {
380
480
  :id => 'm1.medium',
381
- :name => 'Medium Instance',
481
+ :name => 'M1 Medium Instance',
382
482
  :bits => 32,
383
483
  :cores => 1,
384
484
  :disk => 400,
@@ -388,7 +488,7 @@ module Fog
388
488
  },
389
489
  {
390
490
  :id => 'm1.large',
391
- :name => 'Large Instance',
491
+ :name => 'M1 Large Instance',
392
492
  :bits => 64,
393
493
  :cores => 2,
394
494
  :disk => 850,
@@ -398,7 +498,7 @@ module Fog
398
498
  },
399
499
  {
400
500
  :id => 'm1.xlarge',
401
- :name => 'Extra Large Instance',
501
+ :name => 'M1 Extra Large Instance',
402
502
  :bits => 64,
403
503
  :cores => 4,
404
504
  :disk => 1690,
@@ -776,6 +876,186 @@ module Fog
776
876
  :ebs_optimized_available => true,
777
877
  :instance_store_volumes => 0
778
878
  },
879
+ {
880
+ :id => 'c6g.medium',
881
+ :name => 'C6G Medium',
882
+ :bits => 64,
883
+ :cores => 1,
884
+ :disk => 0,
885
+ :ram => 2147,
886
+ :ebs_optimized_available => true,
887
+ :instance_store_volumes => 0
888
+ },
889
+ {
890
+ :id => 'c6g.large',
891
+ :name => 'C6G Large',
892
+ :bits => 64,
893
+ :cores => 2,
894
+ :disk => 0,
895
+ :ram => 4295,
896
+ :ebs_optimized_available => true,
897
+ :instance_store_volumes => 0
898
+ },
899
+ {
900
+ :id => 'c6g.xlarge',
901
+ :name => 'C6G Extra Large',
902
+ :bits => 64,
903
+ :cores => 4,
904
+ :disk => 0,
905
+ :ram => 8590,
906
+ :ebs_optimized_available => true,
907
+ :instance_store_volumes => 0
908
+ },
909
+ {
910
+ :id => 'c6g.2xlarge',
911
+ :name => 'C6G Double Extra Large',
912
+ :bits => 64,
913
+ :cores => 8,
914
+ :disk => 0,
915
+ :ram => 17180,
916
+ :ebs_optimized_available => true,
917
+ :instance_store_volumes => 0
918
+ },
919
+ {
920
+ :id => 'c6g.4xlarge',
921
+ :name => 'C6G Quadruple Extra Large',
922
+ :bits => 64,
923
+ :cores => 16,
924
+ :disk => 0,
925
+ :ram => 34360,
926
+ :ebs_optimized_available => true,
927
+ :instance_store_volumes => 0
928
+ },
929
+ {
930
+ :id => 'c6g.8xlarge',
931
+ :name => 'C6G Octuple Extra Large',
932
+ :bits => 64,
933
+ :cores => 32,
934
+ :disk => 0,
935
+ :ram => 68719,
936
+ :ebs_optimized_available => true,
937
+ :instance_store_volumes => 0
938
+ },
939
+ {
940
+ :id => 'c6g.12xlarge',
941
+ :name => 'C6G Twelve Extra Large',
942
+ :bits => 64,
943
+ :cores => 48,
944
+ :disk => 0,
945
+ :ram => 103079,
946
+ :ebs_optimized_available => true,
947
+ :instance_store_volumes => 0
948
+ },
949
+ {
950
+ :id => 'c6g.16xlarge',
951
+ :name => 'C6G Sixteen Extra Large',
952
+ :bits => 64,
953
+ :cores => 64,
954
+ :disk => 0,
955
+ :ram => 137439,
956
+ :ebs_optimized_available => true,
957
+ :instance_store_volumes => 0
958
+ },
959
+ {
960
+ :id => 'c6g.metal',
961
+ :name => 'C6G Metal',
962
+ :bits => 64,
963
+ :cores => 64,
964
+ :disk => 0,
965
+ :ram => 137439,
966
+ :ebs_optimized_available => true,
967
+ :instance_store_volumes => 0
968
+ },
969
+ {
970
+ :id => 'c6gd.medium',
971
+ :name => 'C6GD Medium',
972
+ :bits => 64,
973
+ :cores => 1,
974
+ :disk => 59,
975
+ :ram => 2147,
976
+ :ebs_optimized_available => true,
977
+ :instance_store_volumes => 1
978
+ },
979
+ {
980
+ :id => 'c6gd.large',
981
+ :name => 'C6GD Large',
982
+ :bits => 64,
983
+ :cores => 2,
984
+ :disk => 118,
985
+ :ram => 4295,
986
+ :ebs_optimized_available => true,
987
+ :instance_store_volumes => 1
988
+ },
989
+ {
990
+ :id => 'c6gd.xlarge',
991
+ :name => 'C6GD Extra Large',
992
+ :bits => 64,
993
+ :cores => 4,
994
+ :disk => 237,
995
+ :ram => 8590,
996
+ :ebs_optimized_available => true,
997
+ :instance_store_volumes => 1
998
+ },
999
+ {
1000
+ :id => 'c6gd.2xlarge',
1001
+ :name => 'C6GD Double Extra Large',
1002
+ :bits => 64,
1003
+ :cores => 8,
1004
+ :disk => 474,
1005
+ :ram => 17180,
1006
+ :ebs_optimized_available => true,
1007
+ :instance_store_volumes => 1
1008
+ },
1009
+ {
1010
+ :id => 'c6gd.4xlarge',
1011
+ :name => 'C6GD Quadruple Extra Large',
1012
+ :bits => 64,
1013
+ :cores => 16,
1014
+ :disk => 950,
1015
+ :ram => 34360,
1016
+ :ebs_optimized_available => true,
1017
+ :instance_store_volumes => 1
1018
+ },
1019
+ {
1020
+ :id => 'c6gd.8xlarge',
1021
+ :name => 'C6GD Octuple Extra Large',
1022
+ :bits => 64,
1023
+ :cores => 32,
1024
+ :disk => 1900,
1025
+ :ram => 68719,
1026
+ :ebs_optimized_available => true,
1027
+ :instance_store_volumes => 1
1028
+ },
1029
+ {
1030
+ :id => 'c6gd.12xlarge',
1031
+ :name => 'C6GD Twelve Extra Large',
1032
+ :bits => 64,
1033
+ :cores => 48,
1034
+ :disk => 2850,
1035
+ :ram => 103079,
1036
+ :ebs_optimized_available => true,
1037
+ :instance_store_volumes => 2
1038
+ },
1039
+ {
1040
+ :id => 'c6gd.16xlarge',
1041
+ :name => 'C6GD Sixteen Extra Large',
1042
+ :bits => 64,
1043
+ :cores => 64,
1044
+ :disk => 3800,
1045
+ :ram => 137439,
1046
+ :ebs_optimized_available => true,
1047
+ :instance_store_volumes => 2
1048
+ },
1049
+ {
1050
+ :id => 'c6gd.metal',
1051
+ :name => 'C6GD Metal',
1052
+ :bits => 64,
1053
+ :cores => 64,
1054
+ :disk => 3800,
1055
+ :ram => 137439,
1056
+ :ebs_optimized_available => true,
1057
+ :instance_store_volumes => 2
1058
+ },
779
1059
  {
780
1060
  :id => 'g2.2xlarge',
781
1061
  :name => 'GPU Double Extra Large',
@@ -1276,16 +1556,6 @@ module Fog
1276
1556
  :ebs_optimized_available => true,
1277
1557
  :instance_store_volumes => 0
1278
1558
  },
1279
- {
1280
- :id => 'r5.8xlarge',
1281
- :name => 'R5 Eight Extra Large',
1282
- :bits => 64,
1283
- :cores => 32,
1284
- :disk => 0,
1285
- :ram => 274878,
1286
- :ebs_optimized_available => true,
1287
- :instance_store_volumes => 0
1288
- },
1289
1559
  {
1290
1560
  :id => "r5.8xlarge",
1291
1561
  :name => "R5 Octuple Extra Large",
@@ -1306,16 +1576,6 @@ module Fog
1306
1576
  :ebs_optimized_available => true,
1307
1577
  :instance_store_volumes => 0
1308
1578
  },
1309
- {
1310
- :id => "r5.12xlarge",
1311
- :name => "R5 Sixteen Extra Large",
1312
- :bits => 64,
1313
- :cores => 64,
1314
- :ram => 549756,
1315
- :disk => 0,
1316
- :ebs_optimized_available => true,
1317
- :instance_store_volumes => 0
1318
- },
1319
1579
  {
1320
1580
  :id => "r5.16xlarge",
1321
1581
  :name => "R5 Sixteen Extra Large",
@@ -1716,6 +1976,186 @@ module Fog
1716
1976
  :ebs_optimized_available => true,
1717
1977
  :instance_store_volumes => 4
1718
1978
  },
1979
+ {
1980
+ :id => 'r6g.medium',
1981
+ :name => 'R6G Medium',
1982
+ :bits => 64,
1983
+ :cores => 1,
1984
+ :disk => 0,
1985
+ :ram => 8590,
1986
+ :ebs_optimized_available => true,
1987
+ :instance_store_volumes => 0
1988
+ },
1989
+ {
1990
+ :id => 'r6g.large',
1991
+ :name => 'R6G Large',
1992
+ :bits => 64,
1993
+ :cores => 2,
1994
+ :disk => 0,
1995
+ :ram => 17180,
1996
+ :ebs_optimized_available => true,
1997
+ :instance_store_volumes => 0
1998
+ },
1999
+ {
2000
+ :id => 'r6g.xlarge',
2001
+ :name => 'R6G Extra Large',
2002
+ :bits => 64,
2003
+ :cores => 4,
2004
+ :disk => 0,
2005
+ :ram => 34360,
2006
+ :ebs_optimized_available => true,
2007
+ :instance_store_volumes => 0
2008
+ },
2009
+ {
2010
+ :id => 'r6g.2xlarge',
2011
+ :name => 'R6G Double Extra Large',
2012
+ :bits => 64,
2013
+ :cores => 8,
2014
+ :disk => 0,
2015
+ :ram => 68719,
2016
+ :ebs_optimized_available => true,
2017
+ :instance_store_volumes => 0
2018
+ },
2019
+ {
2020
+ :id => 'r6g.4xlarge',
2021
+ :name => 'R6G Quadruple Extra Large',
2022
+ :bits => 64,
2023
+ :cores => 16,
2024
+ :disk => 0,
2025
+ :ram => 137439,
2026
+ :ebs_optimized_available => true,
2027
+ :instance_store_volumes => 0
2028
+ },
2029
+ {
2030
+ :id => 'r6g.8xlarge',
2031
+ :name => 'R6G Octuple Extra Large',
2032
+ :bits => 64,
2033
+ :cores => 32,
2034
+ :disk => 0,
2035
+ :ram => 274878,
2036
+ :ebs_optimized_available => true,
2037
+ :instance_store_volumes => 0
2038
+ },
2039
+ {
2040
+ :id => 'r6g.12xlarge',
2041
+ :name => 'R6G Twelve Extra Large',
2042
+ :bits => 64,
2043
+ :cores => 48,
2044
+ :disk => 0,
2045
+ :ram => 412317,
2046
+ :ebs_optimized_available => true,
2047
+ :instance_store_volumes => 0
2048
+ },
2049
+ {
2050
+ :id => 'r6g.16xlarge',
2051
+ :name => 'R6G Sixteen Extra Large',
2052
+ :bits => 64,
2053
+ :cores => 64,
2054
+ :disk => 0,
2055
+ :ram => 549756,
2056
+ :ebs_optimized_available => true,
2057
+ :instance_store_volumes => 0
2058
+ },
2059
+ {
2060
+ :id => 'r6g.metal',
2061
+ :name => 'R6G Metal',
2062
+ :bits => 64,
2063
+ :cores => 64,
2064
+ :disk => 0,
2065
+ :ram => 549756,
2066
+ :ebs_optimized_available => true,
2067
+ :instance_store_volumes => 0
2068
+ },
2069
+ {
2070
+ :id => 'r6gd.medium',
2071
+ :name => 'R6GD Medium',
2072
+ :bits => 64,
2073
+ :cores => 1,
2074
+ :disk => 59,
2075
+ :ram => 8590,
2076
+ :ebs_optimized_available => true,
2077
+ :instance_store_volumes => 1
2078
+ },
2079
+ {
2080
+ :id => 'r6gd.large',
2081
+ :name => 'R6GD Large',
2082
+ :bits => 64,
2083
+ :cores => 2,
2084
+ :disk => 118,
2085
+ :ram => 17180,
2086
+ :ebs_optimized_available => true,
2087
+ :instance_store_volumes => 1
2088
+ },
2089
+ {
2090
+ :id => 'r6gd.xlarge',
2091
+ :name => 'R6GD Extra Large',
2092
+ :bits => 64,
2093
+ :cores => 4,
2094
+ :disk => 237,
2095
+ :ram => 34360,
2096
+ :ebs_optimized_available => true,
2097
+ :instance_store_volumes => 1
2098
+ },
2099
+ {
2100
+ :id => 'r6gd.2xlarge',
2101
+ :name => 'R6GD Double Extra Large',
2102
+ :bits => 64,
2103
+ :cores => 8,
2104
+ :disk => 474,
2105
+ :ram => 68719,
2106
+ :ebs_optimized_available => true,
2107
+ :instance_store_volumes => 1
2108
+ },
2109
+ {
2110
+ :id => 'r6gd.4xlarge',
2111
+ :name => 'R6GD Quadruple Extra Large',
2112
+ :bits => 64,
2113
+ :cores => 16,
2114
+ :disk => 950,
2115
+ :ram => 137439,
2116
+ :ebs_optimized_available => true,
2117
+ :instance_store_volumes => 1
2118
+ },
2119
+ {
2120
+ :id => 'r6gd.8xlarge',
2121
+ :name => 'R6GD Octuple Extra Large',
2122
+ :bits => 64,
2123
+ :cores => 32,
2124
+ :disk => 1900,
2125
+ :ram => 274878,
2126
+ :ebs_optimized_available => true,
2127
+ :instance_store_volumes => 1
2128
+ },
2129
+ {
2130
+ :id => 'r6gd.12xlarge',
2131
+ :name => 'R6GD Twelve Extra Large',
2132
+ :bits => 64,
2133
+ :cores => 48,
2134
+ :disk => 2850,
2135
+ :ram => 412317,
2136
+ :ebs_optimized_available => true,
2137
+ :instance_store_volumes => 2
2138
+ },
2139
+ {
2140
+ :id => 'r6gd.16xlarge',
2141
+ :name => 'R6GD Sixteen Extra Large',
2142
+ :bits => 64,
2143
+ :cores => 64,
2144
+ :disk => 3800,
2145
+ :ram => 549756,
2146
+ :ebs_optimized_available => true,
2147
+ :instance_store_volumes => 2
2148
+ },
2149
+ {
2150
+ :id => 'r6gd.metal',
2151
+ :name => 'R6GD Metal',
2152
+ :bits => 64,
2153
+ :cores => 64,
2154
+ :disk => 3800,
2155
+ :ram => 549756,
2156
+ :ebs_optimized_available => true,
2157
+ :instance_store_volumes => 2
2158
+ },
1719
2159
  {
1720
2160
  :id => "x1.16xlarge",
1721
2161
  :name => "X1 Sixteen Extra Large",
@@ -1798,7 +2238,7 @@ module Fog
1798
2238
  },
1799
2239
  {
1800
2240
  :id => "u-6tb1.metal",
1801
- :name => "X1e Sixteen Extra Large",
2241
+ :name => "U 6TB Metal",
1802
2242
  :bits => 64,
1803
2243
  :cores => 448,
1804
2244
  :ram => 6597071,