amazon-pricing 0.1.111 → 0.1.112

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NzkwN2IyYWEyZWNiMWI5Yjc5OTQ1NWU1ZDdiOWFiODRjYWM4MzU2Ng==
4
+ NWMwMzgzNThlNDc4N2I3M2M2NDg0Y2M5MWNmZDFiNWNlYjA1ZmIwMw==
5
5
  data.tar.gz: !binary |-
6
- NmQ0YmQyY2RiMTkyYjcyY2IyMGFiOTFmNDJmNjk2MjQwYzQ1Yzk1OA==
6
+ YTFjYjM4NWFkMWFjZTkzMzViNThjMzdjMjE0NDkzM2Y0MjE2NmQ2Nw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MWYwZTUwMDNjOTFlNDQzYTcwMzFlZjE2ODM2MjVmNWQwN2IzMzJjMDlhMmUw
10
- NDg1YTM3ZDU3NmUzYjBiZGZmYTFiOGJkOGE3Yzk4NDk5YWU1MjI5ZjZmZjU3
11
- YzViODJkNGJmZjNhMmQwY2U0Y2I5NTcwNjI4ZWE4Nzk0MTBjZmU=
9
+ NWY5ZDE5ZGIzM2M3MjIyOTA5MzBmMDBiYmJjNDgxYzdlNzQwYmNkZWJmNWQ1
10
+ YzYxNWVjMzZhMDE0OGUyMzc0MWMzOWVkZGFkMWQwNGE1Zjc5MzA5OTE3MmY0
11
+ NzgyNDczZGYyYTk1ODRlOTZjZjEzNjlkYTRjNGZiZDA2NmQ4MDY=
12
12
  data.tar.gz: !binary |-
13
- ZmRmY2NmMmEyNmY4Mzk2YWY5YjEwMGYxZDljMWVhNDliMWZjZmE1OWJjNDgy
14
- ZjZjMTU4MGJjMTc5OTFhZTU5ZjBlMTRkZTkxYTI3YjcxMWI3ZjUzMzRkYWQ0
15
- ZTU1NGNiYjU3NmIwNTVjMThiNWFkYmQ3NDczYjQxNTEzM2U1ZGY=
13
+ NDg0ODcwNDFiODQ0MTNmNTcwMzk2N2U1YjQ1ZWU4YWRjOTZkM2NiNWY1NTEw
14
+ NGZjYzJhMzZkZDNhNTA5MmZlNTUzZWI0NjBhNGMzYTEzYzY3NzYzMjUzOTkz
15
+ MTc5YmFhNDg4YjNhYTk4M2Y0NDQwMmUzY2I0ZWMyYTRjOTcwYTA=
@@ -304,6 +304,7 @@ module AwsPricing
304
304
  'i3.4xlarge' => :ten_gigabit,
305
305
  'i3.8xlarge' => :ten_gigabit,
306
306
  'i3.large' => :ten_gigabit,
307
+ 'i3.metal' => :twentyfive_gigabit,
307
308
  'i3.xlarge' => :ten_gigabit,
308
309
  'm1.large' => :moderate,
309
310
  'm1.medium' => :moderate,
@@ -207,6 +207,7 @@ module AwsPricing
207
207
  'i3.xlarge' => 'Storage Optimized High I/O Extra Large', 'i3.2xlarge' => 'Storage Optimized High I/O Double Extra Large',
208
208
  'i3.4xlarge' => 'Storage Optimized High I/O Quadruple Extra Large', 'i3.8xlarge' => 'Storage Optimized High I/O Extra Large',
209
209
  'i3.16xlarge' => 'Storage Optimized High I/O Hextuple Extra Large',
210
+ 'i3.metal' => 'Storage Optimized High I/O Metal',
210
211
  'd2.xlarge' => 'Dense Storage Extra Large', 'd2.2xlarge' => 'Dense Storage Double Extra Large', 'd2.4xlarge' => 'Dense Storage Quadruple Extra Large', 'd2.8xlarge' => 'Dense Storage Eight Extra Large',
211
212
  'h1.2xlarge' => 'Dense Storage H1 Double Extra Large', 'h1.4xlarge' => 'Dense Storage H1 Quadruple Extra Large', 'h1.8xlarge' => 'Dense Storage H1 Eight Extra Large', 'h1.16xlarge' => 'Dense Storage H1 Hextuple Extra Large',
212
213
  'r3.large' => 'Memory Optimized Large', 'r3.xlarge' => 'Memory Optimized Extra Large', 'r3.2xlarge' => 'Memory Optimized Double Extra Large', 'r3.4xlarge' => 'Memory Optimized Quadruple Extra Large', 'r3.8xlarge' => 'Memory Optimized Eight Extra Large',
@@ -250,7 +251,7 @@ module AwsPricing
250
251
  'db.t1.micro' => 160,
251
252
  'c3.large' => 32, 'c3.xlarge' => 80, 'c3.2xlarge' => 160, 'c3.4xlarge' => 320, 'c3.8xlarge' => 640,
252
253
  'i2.xlarge' => 800, 'i2.2xlarge' => 1600, 'i2.4xlarge' => 3200, 'i2.8xlarge' => 6400,
253
- 'i3.large' => 475, 'i3.xlarge' => 950, 'i3.2xlarge' => 1900, 'i3.4xlarge' => 3800, 'i3.8xlarge' => 7600, 'i3.16xlarge' => 15200,
254
+ 'i3.large' => 475, 'i3.xlarge' => 950, 'i3.2xlarge' => 1900, 'i3.4xlarge' => 3800, 'i3.8xlarge' => 7600, 'i3.16xlarge' => 15200, 'i3.metal' => 15200,
254
255
  'd2.xlarge' => 6000, 'd2.2xlarge' => 12000, 'd2.4xlarge' => 24000, 'd2.8xlarge' => 48000,
255
256
  'h1.2xlarge' => 2000, 'h1.4xlarge' => 4000, 'h1.8xlarge' => 8000, 'h1.16xlarge' => 16000,
256
257
  'r3.large' => 32, 'r3.xlarge' => 80, 'r3.2xlarge' => 160, 'r3.4xlarge' => 320, 'r3.8xlarge' => 640,
@@ -285,7 +286,7 @@ module AwsPricing
285
286
  'db.t1.micro' => 64,
286
287
  'c3.large' => 64, 'c3.xlarge' => 64, 'c3.2xlarge' => 64, 'c3.4xlarge' => 64, 'c3.8xlarge' => 64,
287
288
  'i2.large' => 64, 'i2.xlarge' => 64, 'i2.2xlarge' => 64, 'i2.4xlarge' => 64, 'i2.8xlarge' => 64,
288
- 'i3.large' => 64, 'i3.xlarge' => 64, 'i3.2xlarge' => 64, 'i3.4xlarge' => 64, 'i3.8xlarge' => 64, 'i3.16xlarge' => 64,
289
+ 'i3.large' => 64, 'i3.xlarge' => 64, 'i3.2xlarge' => 64, 'i3.4xlarge' => 64, 'i3.8xlarge' => 64, 'i3.16xlarge' => 64, 'i3.metal' => 64,
289
290
  'd2.xlarge' => 64, 'd2.2xlarge' => 64, 'd2.4xlarge' => 64, 'd2.8xlarge' => 64,
290
291
  'h1.2xlarge' => 64, 'h1.4xlarge' => 64, 'h1.8xlarge' => 64, 'h1.16xlarge' => 64,
291
292
  'r3.large' => 64, 'r3.xlarge' => 64, 'r3.2xlarge' => 64, 'r3.4xlarge' => 64, 'r3.8xlarge' => 64,
@@ -320,7 +321,7 @@ module AwsPricing
320
321
  'db.t1.micro' => :ebs,
321
322
  'c3.large' => :ssd, 'c3.xlarge' => :ssd, 'c3.2xlarge' => :ssd, 'c3.4xlarge' => :ssd, 'c3.8xlarge' => :ssd,
322
323
  'i2.large' => :ssd, 'i2.xlarge' => :ssd, 'i2.2xlarge' => :ssd, 'i2.4xlarge' => :ssd, 'i2.8xlarge' => :ssd,
323
- 'i3.large' => :ssd, 'i3.xlarge' => :ssd, 'i3.2xlarge' => :ssd, 'i3.4xlarge' => :ssd, 'i3.8xlarge' => :ssd, 'i3.16xlarge' => :ssd,
324
+ 'i3.large' => :ssd, 'i3.xlarge' => :ssd, 'i3.2xlarge' => :ssd, 'i3.4xlarge' => :ssd, 'i3.8xlarge' => :ssd, 'i3.16xlarge' => :ssd, 'i3.metal' => :ssd,
324
325
  'd2.xlarge' => :ephemeral, 'd2.2xlarge' => :ephemeral, 'd2.4xlarge' => :ephemeral, 'd2.8xlarge' => :ephemeral,
325
326
  'h1.2xlarge' => :ephemeral, 'h1.4xlarge' => :ephemeral, 'h1.8xlarge' => :ephemeral, 'h1.16xlarge' => :ephemeral,
326
327
  'r3.large' => :ssd, 'r3.xlarge' => :ssd, 'r3.2xlarge' => :ssd, 'r3.4xlarge' => :ssd, 'r3.8xlarge' => :ssd,
@@ -471,6 +472,7 @@ module AwsPricing
471
472
  'i3.4xlarge' => [ 437, 16000], # EBSOptimized
472
473
  'i3.8xlarge' => [ 875, 32500], # EBSOptimized
473
474
  'i3.16xlarge' => [1750, 65000], # EBSOptimized
475
+ 'i3.metal' => [1250, 64000], # EBSOptimized
474
476
  'm1.large' => [ 62, 4000], # EBSOptimized
475
477
  'm1.xlarge' => [125, 8000], # EBSOptimized
476
478
  'm2.2xlarge' => [ 62, 4000], # EBSOptimized
@@ -14,7 +14,10 @@ module AwsPricing
14
14
 
15
15
  protected
16
16
 
17
- @@OS_TYPES = [ 'linux', 'rhel', 'sles', 'mswin', 'mswinSQL', 'mswinSQLWeb', 'mswinSQLEnterprise' ]
17
+ @@OS_TYPES = [ 'linux', 'rhel', 'sles', 'mswin',
18
+ 'mswinSQL', 'mswinSQLWeb', 'mswinSQLEnterprise',
19
+ 'linuxSQL', 'linuxSQLWeb', 'linuxSQLEnterprise',
20
+ ]
18
21
 
19
22
  @@CAPACITY_HASH = {
20
23
  'c3' => { "large"=>16, "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1 },
@@ -33,7 +36,7 @@ module AwsPricing
33
36
  'm4' => { "large"=>22, "xlarge"=>11, "2xlarge"=>5, "4xlarge"=>4, "10xlarge"=>1, "16xlarge"=>1 },
34
37
  'm5' => { "large"=>48, "xlarge"=>24, "2xlarge"=>12, "4xlarge"=>6, "12xlarge"=>2, "24xlarge"=>1 },
35
38
  'i2' => { "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1, "16xlarge"=>1 },
36
- 'i3' => { "large"=>32, "xlarge"=>16, "2xlarge"=>8, "4xlarge"=>4, "8xlarge"=>2, "16xlarge"=>1 },
39
+ 'i3' => { "large"=>32, "xlarge"=>16, "2xlarge"=>8, "4xlarge"=>4, "8xlarge"=>2, "16xlarge"=>1, "metal"=>1 },
37
40
  'x1' => { "16xlarge"=>2, "32xlarge"=>1 },
38
41
  'x1e' =>{ "xlarge"=>32, "2xlarge"=>16, "4xlarge"=>8, "8xlarge"=>4, "16xlarge"=>2, "32xlarge"=>1 },
39
42
  }
@@ -20,7 +20,10 @@ module AwsPricing
20
20
  ['mswin', 'windows'],
21
21
  ['mswinSQL', 'windows-with-sql-server-standard'],
22
22
  ['mswinSQLWeb', 'windows-with-sql-server-web'],
23
- ['mswinSQLEnterprise', 'windows-with-sql-server-enterprise']
23
+ ['mswinSQLEnterprise', 'windows-with-sql-server-enterprise'],
24
+ ['linuxSQL', 'linux-with-sql-server-standard'],
25
+ ['linuxSQLWeb', 'linux-with-sql-server-web'],
26
+ ['linuxSQLEnterprise', 'linux-with-sql-server-enterprise']
24
27
  ]
25
28
 
26
29
  OS_INDEX = 0
@@ -2,6 +2,8 @@ module AwsPricing
2
2
  module Helper
3
3
  module InstanceType
4
4
 
5
+ METAL = 'metal'.freeze
6
+ # the following family sizes should be kept in size order, see #api_name_to_nf below
5
7
  @@INSTANCE_TYPES_BY_CLASSIFICATION = {
6
8
  'GeneralPurpose' => {
7
9
  'CurrentGen' => {
@@ -46,7 +48,7 @@ module AwsPricing
46
48
  'CurrentGen' => {
47
49
  'HS1' => ['hs1.8xlarge'],
48
50
  'I2' => ['i2.xlarge', 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge'],
49
- 'I3' => ['i3.large', 'i3.xlarge', 'i3.2xlarge', 'i3.4xlarge', 'i3.8xlarge', 'i3.16xlarge'],
51
+ 'I3' => ['i3.large', 'i3.xlarge', 'i3.2xlarge', 'i3.4xlarge', 'i3.8xlarge', 'i3.16xlarge', 'i3.metal'],
50
52
  'D2' => ['d2.xlarge', 'd2.2xlarge', 'd2.4xlarge', 'd2.8xlarge'],
51
53
  'H1' => ['h1.2xlarge', 'h1.4xlarge', 'h1.8xlarge', 'h1.16xlarge'],
52
54
  },
@@ -155,7 +157,17 @@ module AwsPricing
155
157
 
156
158
 
157
159
  def api_name_to_nf(name)
158
- size_to_nf[name.split('.').last]
160
+ type = name.split('.').last
161
+ if (type == METAL)
162
+ # try to get largest size supported for family: presumes METAL is *not* in size_to_nf hash
163
+ # assumes family_members are sorted by size
164
+ sizes = family_members(name)
165
+ type = sizes[-1].split('.').last # 'metal' defaults to largest size
166
+ if sizes[-1].split('.').last == METAL
167
+ type = sizes[-2].split('.').last # 'metal' already largest, so 2nd largest
168
+ end
169
+ end
170
+ size_to_nf[type]
159
171
  end
160
172
 
161
173
  # note: the next smaller type may _not_ be supported for a given family
@@ -186,6 +198,7 @@ module AwsPricing
186
198
  NF_TO_SIZE_TABLE
187
199
  end
188
200
 
201
+ # NB: 'metal' is not in this table (since it's family specific), see #api_name_to_nf
189
202
  SIZE_TO_NF_TABLE = {
190
203
  "nano" => 0.25,
191
204
  "micro" => 0.5,
@@ -200,6 +213,7 @@ module AwsPricing
200
213
  "10xlarge" => 80,
201
214
  "12xlarge" => 96,
202
215
  "16xlarge" => 128,
216
+ "metal" => 128, # temporary (for _direct_ users of this hash), as only applies to i3.metal
203
217
  "18xlarge" => 144,
204
218
  "24xlarge" => 192,
205
219
  "32xlarge" => 256,
@@ -8,5 +8,5 @@
8
8
  # Home:: http://github.com/CloudHealth/amazon-pricing
9
9
  #++
10
10
  module AwsPricing
11
- VERSION = '0.1.111' # [major,minor.fix]: adding c5d
11
+ VERSION = '0.1.112' # [major,minor.fix]: adding i3.metal, and linuxsql dedicated variants
12
12
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amazon-pricing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.111
4
+ version: 0.1.112
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Kinsella
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-22 00:00:00.000000000 Z
11
+ date: 2018-06-06 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A Ruby library for retrieving pricing for Amazon Web Services
14
14
  email: