amazon-pricing 0.1.104 → 0.1.105

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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZGZlZTI5YTAwMjk0ZTY0ZTZlOTQ1YjZkMmNmOGUwNmZlZDA0MzJmOA==
4
+ MWM3OTU3ZmM0NGY0ZjNlODk0NjZjMzZmMzI3ODhiNDdhZjk5ZGY3NQ==
5
5
  data.tar.gz: !binary |-
6
- NmZhZGVmZmEyOWJhNWE5MjEzZDMxMjBiOTA5NDk4MTZkOWFhNmRiMA==
6
+ MWE4YmNlOGMyNzcxYTc3YTBkNzBmYjQ5MDJlMzE2OTljOWNkYzRiMw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MDljOTVmNmE2OWQwOWM1YTc4YmQ2NTdjMzdmYzhlMWYzMTQ1ZjI0YmM2N2Iy
10
- ZGQyZDQ3NWRhZWJmZjgzZmZiZTE3ZDk1MDA2MzQ1MTczNzVjODk3N2E0NWYw
11
- NDdlOWI2ZmMxYzliZGQyZWRkMDJjMDZjNzE3MGEwZmM1YzZlYzk=
9
+ OTFkMGE1MjY1MzJkZTFjMzY5NTQ4ZWNjNDQ0MzFlOTdhMjE2ZjM2ODVjZDJm
10
+ OTQ4OTY0YWNjNzQ0YTEyMjkwZTBlMGQwM2U1MDMyNjAwOTZlYjJkNjY5YWQ1
11
+ YjE3MjIwMjViNzhkNThhMzdhMTUyNGQ4ZTkwMDUxOTA0NmNmYTk=
12
12
  data.tar.gz: !binary |-
13
- MjQ4OTY0MWVjNjY2MzRhZGM0ZDg5MGY4YWQ4OWVmOTkyZmM2YTI1ZjU3YmE4
14
- NzJlYzcwYzJhZDBiNzBjYTZkZjlkYTllMmNjNDg1NTQ3OTliOWY4NDA4ODAw
15
- OTZmNzE1MjdmYzI3NjM0ZTdlZjRkOTFhZmI5ZTM2ZjdiNGIyZGM=
13
+ ZjNjNDg1NzcxMThhNzRhYjJiNjJmZDA4MmZmMTkwNDFlYzIwOWVlM2E2MGVh
14
+ MjQwNTUzY2MwZDViZDE5YWRmMDdjODEzYjdhZGNlNjQxYzIzNmY1OWJkZWMx
15
+ NzEyOGQ3NDU1ZWQwYWEzYTg1Y2NjNTgxZmE4NTk5NjBmMDVhNmM=
@@ -15,6 +15,7 @@ module AwsPricing
15
15
  # json APIs.
16
16
  class PriceList
17
17
  attr_accessor :regions
18
+ RETRY_LIMIT = 3
18
19
 
19
20
  def initialize()
20
21
  @_regions = {}
@@ -56,8 +57,18 @@ module AwsPricing
56
57
  end
57
58
 
58
59
  def self.fetch_url(url)
59
- uri = URI.parse(url)
60
- page = Net::HTTP.get_response(uri)
60
+ # AWS appears to have started throttling URL accesses, so we now have to retry
61
+ begin
62
+ retry_count ||= 0
63
+ #$stdout.puts "[#{__method__}] url:#{url}"
64
+ uri = URI.parse(url)
65
+ page = Net::HTTP.get_response(uri)
66
+ rescue StandardError => e #Exception => e
67
+ $stderr.puts "Exception:#{e} retry-#{retry_count} Failed to fetch: #{url}"
68
+ sleep 5 # appears to get past (AWS) throttling
69
+ retry if (retry_count += 1) <= RETRY_LIMIT
70
+ end
71
+
61
72
  # Now that AWS switched from json to jsonp, remove first/last lines
62
73
  body = page.body.gsub("callback(", "").reverse.sub(")", "").reverse
63
74
  if body.split("\n").last == ";"
@@ -75,9 +86,9 @@ module AwsPricing
75
86
  # http://stackoverflow.com/questions/2060356/parsing-json-without-quoted-keys
76
87
  JSON.parse(body.gsub(/(\w+)\s*:/, '"\1":'))
77
88
  end
78
- rescue
79
- $stderr.puts "Failed to parse: #{url}"
80
- raise
89
+ rescue Exception => e
90
+ $stderr.puts "Exception:#{e} Failed to parse: #{url} #{e.backtrace}"
91
+ raise e
81
92
  end
82
93
 
83
94
  protected
@@ -255,16 +255,25 @@ module AwsPricing
255
255
  'db.m4.4xlarge' => :high,
256
256
  'db.m4.large' => :moderate,
257
257
  'db.m4.xlarge' => :high,
258
+ 'db.m4.16xlarge' => :twentyfive_gigabit,
258
259
  'db.r3.2xlarge' => :high,
259
260
  'db.r3.4xlarge' => :high,
260
261
  'db.r3.8xlarge' => :ten_gigabit,
261
262
  'db.r3.large' => :moderate,
262
263
  'db.r3.xlarge' => :moderate,
264
+ 'db.r4.large' => :ten_gigabit,
265
+ 'db.r4.xlarge' => :ten_gigabit,
266
+ 'db.r4.2xlarge' => :ten_gigabit,
267
+ 'db.r4.4xlarge' => :ten_gigabit,
268
+ 'db.r4.8xlarge' => :ten_gigabit,
269
+ 'db.r4.16xlarge' => :twentyfive_gigabit,
263
270
  'db.t1.micro' => :very_low,
264
271
  'db.t2.large' => :low_to_moderate,
265
272
  'db.t2.medium' => :low_to_moderate,
266
273
  'db.t2.micro' => :low,
267
274
  'db.t2.small' => :low_to_moderate,
275
+ 'db.t2.xlarge' => :moderate,
276
+ 'db.t2.2xlarge' => :moderate,
268
277
  'db.x1.16xlarge' => :ten_gigabit,
269
278
  'db.x1.32xlarge' => :ten_gigabit,
270
279
  'f1.2xlarge' => :high,
@@ -274,6 +283,10 @@ module AwsPricing
274
283
  'g3.4xlarge' => :twenty_gigabit,
275
284
  'g3.8xlarge' => :twenty_gigabit,
276
285
  'g3.16xlarge' => :twenty_gigabit,
286
+ 'h1.2xlarge' => :ten_gigabit, # upto 10G
287
+ 'h1.4xlarge' => :ten_gigabit, # upto 10G
288
+ 'h1.8xlarge' => :ten_gigabit,
289
+ 'h1.16xlarge' => :twentyfive_gigabit,
277
290
  'hi1.4xlarge' => :ten_gigabit,
278
291
  'hs1.8xlarge' => :ten_gigabit,
279
292
  'i2.2xlarge' => :high,
@@ -297,12 +310,18 @@ module AwsPricing
297
310
  'm3.large' => :moderate,
298
311
  'm3.medium' => :moderate,
299
312
  'm3.xlarge' => :high,
300
- 'm4.16xlarge' => :twenty_gigabit,
313
+ 'm4.16xlarge' => :twentyfive_gigabit,
301
314
  'm4.10xlarge' => :ten_gigabit,
302
315
  'm4.2xlarge' => :high,
303
316
  'm4.4xlarge' => :high,
304
317
  'm4.large' => :moderate,
305
318
  'm4.xlarge' => :high,
319
+ 'm5.large' => :ten_gigabit, # upto 10G
320
+ 'm5.xlarge' => :ten_gigabit, # upto 10G
321
+ 'm5.2xlarge' => :ten_gigabit, # upto 10G
322
+ 'm5.4xlarge' => :ten_gigabit, # upto 10G
323
+ 'm5.12xlarge' => :ten_gigabit,
324
+ 'm5.24xlarge' => :ten_gigabit,
306
325
  'p2.xlarge' => :high,
307
326
  'p2.8xlarge' => :ten_gigabit,
308
327
  'p2.16xlarge' => :twenty_gigabit,
@@ -130,6 +130,10 @@ module AwsPricing
130
130
  end
131
131
  end
132
132
 
133
+ def self.get_descriptive_name(api_name)
134
+ @@Name_Lookup[api_name]
135
+ end
136
+
133
137
  protected
134
138
 
135
139
  def self.get_disk(api_name)
@@ -183,6 +187,9 @@ module AwsPricing
183
187
  'm4.large' => 'M4 Large Instance', 'm4.xlarge' => 'M4 Extra Large Instance', 'm4.2xlarge' => 'M4 Double Extra Large Instance',
184
188
  'm4.4xlarge' => 'M4 Quadruple Extra Large Instance', 'm4.10xlarge' => 'M4 Decuple Extra Large Instance',
185
189
  'm4.16xlarge' => 'M4 Hextuple Extra Large Instance',
190
+ 'm5.large' => 'M5 Large Instance', 'm5.xlarge' => 'M5 Extra Large Instance', 'm5.2xlarge' => 'M5 Double Extra Large Instance',
191
+ 'm5.4xlarge' => 'M5 Quadruple Extra Large Instance', 'm5.12xlarge' => 'M5 12XL Instance',
192
+ 'm5.24xlarge' => 'M5 24XL Instance',
186
193
  'c1.medium' => 'High-CPU Medium', 'c1.xlarge' => 'High-CPU Extra Large',
187
194
  'hi1.4xlarge' => 'High I/O Quadruple Extra Large',
188
195
  'cg1.4xlarge' => 'Cluster GPU Quadruple Extra Large',
@@ -201,6 +208,7 @@ module AwsPricing
201
208
  'i3.4xlarge' => 'Storage Optimized High I/O Quadruple Extra Large', 'i3.8xlarge' => 'Storage Optimized High I/O Extra Large',
202
209
  'i3.16xlarge' => 'Storage Optimized High I/O Hextuple Extra Large',
203
210
  '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
+ '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',
204
212
  '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',
205
213
  'r4.large' => 'Memory Optimized Large Enterprise', 'r4.xlarge' => 'Memory Optimized Extra Large Enterprise', 'r4.2xlarge' => 'Memory Optimized Double Extra Large Enterprise', 'r4.4xlarge' => 'Memory Optimized Quadruple Extra Large Enterprise',
206
214
  'r4.8xlarge' => 'Memory Optimized Eight Extra Large Enterprise', 'r4.16xlarge' => 'Memory Optimized Hextuple Extra Large Enterprise',
@@ -225,6 +233,7 @@ module AwsPricing
225
233
  'm2.xlarge' => 420, 'm2.2xlarge' => 850, 'm2.4xlarge' => 1690,
226
234
  'm3.medium' => 4, 'm3.large' => 32, 'm3.xlarge' => 80, 'm3.2xlarge' => 160,
227
235
  'm4.large' => 0, 'm4.xlarge' => 0, 'm4.2xlarge' => 0, 'm4.4xlarge' => 0, 'm4.10xlarge' => 0, 'm4.16xlarge' => 0,
236
+ 'm5.large' => 0, 'm5.xlarge' => 0, 'm5.2xlarge' => 0, 'm5.4xlarge' => 0, 'm5.12xlarge' => 0, 'm5.24xlarge' => 0,
228
237
  'c1.medium' => 350, 'c1.xlarge' => 1690,
229
238
  'hi1.4xlarge' => 2048,
230
239
  'cg1.4xlarge' => 1690,
@@ -241,6 +250,7 @@ module AwsPricing
241
250
  'i2.xlarge' => 800, 'i2.2xlarge' => 1600, 'i2.4xlarge' => 3200, 'i2.8xlarge' => 6400,
242
251
  'i3.large' => 475, 'i3.xlarge' => 950, 'i3.2xlarge' => 1900, 'i3.4xlarge' => 3800, 'i3.8xlarge' => 7600, 'i3.16xlarge' => 15200,
243
252
  'd2.xlarge' => 6000, 'd2.2xlarge' => 12000, 'd2.4xlarge' => 24000, 'd2.8xlarge' => 48000,
253
+ 'h1.2xlarge' => 2000, 'h1.4xlarge' => 4000, 'h1.8xlarge' => 8000, 'h1.16xlarge' => 16000,
244
254
  'r3.large' => 32, 'r3.xlarge' => 80, 'r3.2xlarge' => 160, 'r3.4xlarge' => 320, 'r3.8xlarge' => 640,
245
255
  'r4.large' => 0, 'r4.xlarge' => 0, 'r4.2xlarge' => 0, 'r4.4xlarge' => 0, 'r4.8xlarge' => 0, 'r4.16xlarge' => 0,
246
256
  't2.nano' => 0, 't2.micro' => 0, 't2.small' => 0, 't2.medium' => 0, 't2.large' => 0, 't2.xlarge' => 0, 't2.2xlarge' => 0,
@@ -257,6 +267,7 @@ module AwsPricing
257
267
  'm2.xlarge' => 64, 'm2.2xlarge' => 64, 'm2.4xlarge' => 64,
258
268
  'm3.medium' => 64, 'm3.large' => 64, 'm3.xlarge' => 64, 'm3.2xlarge' => 64,
259
269
  'm4.large' => 64, 'm4.xlarge' => 64, 'm4.2xlarge' => 64, 'm4.4xlarge' => 64, 'm4.10xlarge' => 64, 'm4.16xlarge' => 64,
270
+ 'm5.large' => 64, 'm5.xlarge' => 64, 'm5.2xlarge' => 64, 'm5.4xlarge' => 64, 'm5.12xlarge' => 64, 'm4.24xlarge' => 64,
260
271
  'c1.medium' => 32, 'c1.xlarge' => 64,
261
272
  'hi1.4xlarge' => 64,
262
273
  'cg1.4xlarge' => 64,
@@ -273,6 +284,7 @@ module AwsPricing
273
284
  'i2.large' => 64, 'i2.xlarge' => 64, 'i2.2xlarge' => 64, 'i2.4xlarge' => 64, 'i2.8xlarge' => 64,
274
285
  'i3.large' => 64, 'i3.xlarge' => 64, 'i3.2xlarge' => 64, 'i3.4xlarge' => 64, 'i3.8xlarge' => 64, 'i3.16xlarge' => 64,
275
286
  'd2.xlarge' => 64, 'd2.2xlarge' => 64, 'd2.4xlarge' => 64, 'd2.8xlarge' => 64,
287
+ 'h1.2xlarge' => 64, 'h1.4xlarge' => 64, 'h1.8xlarge' => 64, 'h1.16xlarge' => 64,
276
288
  'r3.large' => 64, 'r3.xlarge' => 64, 'r3.2xlarge' => 64, 'r3.4xlarge' => 64, 'r3.8xlarge' => 64,
277
289
  'r4.large' => 64, 'r4.xlarge' => 64, 'r4.2xlarge' => 64, 'r4.4xlarge' => 64, 'r4.8xlarge' => 64, 'r4.16xlarge' => 64,
278
290
  't2.nano' => 64, 't2.micro' => 64, 't2.small' => 64, 't2.medium' => 64, 't2.large' => 64, 't2.xlarge' => 64, 't2.2xlarge' => 64,
@@ -288,6 +300,7 @@ module AwsPricing
288
300
  'm2.xlarge' => :ephemeral, 'm2.2xlarge' => :ephemeral, 'm2.4xlarge' => :ephemeral,
289
301
  'm3.medium' => :ssd, 'm3.large' => :ssd, 'm3.xlarge' => :ssd, 'm3.2xlarge' => :ssd,
290
302
  'm4.large' => :ebs, 'm4.xlarge' => :ebs, 'm4.2xlarge' => :ebs, 'm4.4xlarge' => :ebs, 'm4.10xlarge' => :ebs, 'm4.16xlarge' => :ebs,
303
+ 'm5.large' => :ebs, 'm5.xlarge' => :ebs, 'm5.2xlarge' => :ebs, 'm5.4xlarge' => :ebs, 'm5.12xlarge' => :ebs, 'm5.24xlarge' => :ebs,
291
304
  'c1.medium' => :ephemeral, 'c1.xlarge' => :ephemeral,
292
305
  'hi1.4xlarge' => :ssd,
293
306
  'cg1.4xlarge' => :ephemeral,
@@ -305,6 +318,7 @@ module AwsPricing
305
318
  'i2.large' => :ssd, 'i2.xlarge' => :ssd, 'i2.2xlarge' => :ssd, 'i2.4xlarge' => :ssd, 'i2.8xlarge' => :ssd,
306
319
  'i3.large' => :ssd, 'i3.xlarge' => :ssd, 'i3.2xlarge' => :ssd, 'i3.4xlarge' => :ssd, 'i3.8xlarge' => :ssd, 'i3.16xlarge' => :ssd,
307
320
  'd2.xlarge' => :ephemeral, 'd2.2xlarge' => :ephemeral, 'd2.4xlarge' => :ephemeral, 'd2.8xlarge' => :ephemeral,
321
+ 'h1.2xlarge' => :ephemeral, 'h1.4xlarge' => :ephemeral, 'h1.8xlarge' => :ephemeral, 'h1.16xlarge' => :ephemeral,
308
322
  'r3.large' => :ssd, 'r3.xlarge' => :ssd, 'r3.2xlarge' => :ssd, 'r3.4xlarge' => :ssd, 'r3.8xlarge' => :ssd,
309
323
  'r4.large' => :ebs, 'r4.xlarge' => :ebs, 'r4.2xlarge' => :ebs, 'r4.4xlarge' => :ebs, 'r4.8xlarge' => :ebs, 'r4.16xlarge' => :ebs,
310
324
  't2.nano' => :ebs, 't2.micro' => :ebs, 't2.small' => :ebs, 't2.medium' => :ebs, 't2.large' => :ebs, 't2.xlarge' => :ebs, 't2.2xlarge' => :ebs,
@@ -430,6 +444,10 @@ module AwsPricing
430
444
  'g3.4xlarge' => [ 437, 20000], # EBSOptimized
431
445
  'g3,8xlarge' => [ 875, 40000], # EBSOptimized
432
446
  'g3.16xlarge'=> [1750, 80000], # EBSOptimized
447
+ 'h1.2xlarge' => [ 218, 12000], # EBSOptimized
448
+ 'h1.4xlarge' => [ 437, 20000], # EBSOptimized
449
+ 'h1.8xlarge' => [ 875, 40000], # EBSOptimized
450
+ 'h1.16xlarge' => [1750, 80000], # EBSOptimized
433
451
  'hi1.4xlarge' => [1824, 50488],
434
452
  'hs1.8xlarge' => [2257, 126081],
435
453
  'i2.xlarge' => [ 62, 4000], # EBSOptimized
@@ -454,6 +472,12 @@ module AwsPricing
454
472
  'm4.4xlarge' => [ 250, 16000], # EBSOptimized
455
473
  'm4.10xlarge'=> [ 500, 32000], # EBSOptimized
456
474
  'm4.16xlarge'=> [1250, 65000], # EBSOptimized
475
+ 'm5.large' => [ 265, 16000], # EBSOptimized peak.30min/24hrs, else [ 60, 3600]
476
+ 'm5.xlarge' => [ 265, 16000], # EBSOptimized peak.30min/24hrs, else [100, 6000]
477
+ 'm5.2xlarge' => [ 265, 16000], # EBSOptimized peak.30min/24hrs, else [146, 8333]
478
+ 'm5.4xlarge' => [ 265, 16000], # EBSOptimized
479
+ 'm5.12xlarge'=> [ 625, 32500], # EBSOptimized
480
+ 'm5.24xlarge'=> [1250, 65000], # EBSOptimized
457
481
  'p2.xlarge' => [ 94, 6000], # EBSOptimized
458
482
  'p2.8xlarge' => [ 625, 32500], # EBSOptimized
459
483
  'p2.16xlarge'=> [1250, 65000], # EBSOptimized
@@ -19,15 +19,18 @@ module AwsPricing
19
19
  @@CAPACITY_HASH = {
20
20
  'c3' => { "large"=>16, "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1 },
21
21
  'c4' => { "large"=>16, "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1 },
22
+ 'c5' => { "large"=>36, "xlarge"=>18, "2xlarge"=>9, "4xlarge"=>4,"9xlarge"=>2, "18xlarge"=>1 },
22
23
  'p2' => { "xlarge"=>16, "8xlarge"=>2, "16xlarge"=>1 },
23
24
  'p3' => { "2xlarge"=>8, "8xlarge"=>2, "16xlarge"=>1 },
24
25
  'g2' => { "2xlarge"=>4, "8xlarge"=>1 },
25
26
  'g3' => { "4xlarge"=>4, "8xlarge"=>2, "16xlarge"=>1 },
26
27
  'm3' => { "medium"=>32, "large"=>16, "xlarge"=>8, "2xlarge"=>4 },
27
28
  'd2' => { "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1 },
29
+ 'h1' => { "2xlarge"=>8, "4xlarge"=>4, "8xlarge"=>2, "16xlarge"=>1 },
28
30
  'r4' => { "large"=>32, "xlarge"=>16, "2xlarge"=>8, "4xlarge"=>4, "8xlarge"=>2, "16xlarge"=>1 },
29
31
  'r3' => { "large"=>16, "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1 },
30
32
  'm4' => { "large"=>22, "xlarge"=>11, "2xlarge"=>5, "4xlarge"=>4, "10xlarge"=>1, "16xlarge"=>1 },
33
+ 'm5' => { "large"=>48, "xlarge"=>24, "2xlarge"=>12, "4xlarge"=>6, "12xlarge"=>2, "24xlarge"=>1 },
31
34
  'i2' => { "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1, "16xlarge"=>1 },
32
35
  'i3' => { "large"=>32, "xlarge"=>16, "2xlarge"=>8, "4xlarge"=>4, "8xlarge"=>2, "16xlarge"=>1 },
33
36
  'x1' => { "16xlarge"=>2, "32xlarge"=>1 },
@@ -6,7 +6,8 @@ module AwsPricing
6
6
  'GeneralPurpose' => {
7
7
  'CurrentGen' => {
8
8
  'M3' => ['m3.medium', 'm3.large', 'm3.xlarge', 'm3.2xlarge'],
9
- 'M4' => ['m4.large', 'm4.xlarge', 'm4.2xlarge', 'm4.4xlarge', 'm4.10xlarge', 'm4.16xlarge']
9
+ 'M4' => ['m4.large', 'm4.xlarge', 'm4.2xlarge', 'm4.4xlarge', 'm4.10xlarge', 'm4.16xlarge'],
10
+ 'M5' => ['m5.large', 'm5.xlarge', 'm5.2xlarge', 'm5.4xlarge', 'm5.12xlarge', 'm5.24xlarge']
10
11
  },
11
12
  'PreviousGen' => {
12
13
  'M1' => ['m1.small', 'm1.medium', 'm1.large', 'm1.xlarge']
@@ -45,7 +46,8 @@ module AwsPricing
45
46
  'HS1' => ['hs1.8xlarge'],
46
47
  'I2' => ['i2.xlarge', 'i2.2xlarge', 'i2.4xlarge', 'i2.8xlarge'],
47
48
  'I3' => ['i3.large', 'i3.xlarge', 'i3.2xlarge', 'i3.4xlarge', 'i3.8xlarge', 'i3.16xlarge'],
48
- 'D2' => ['d2.xlarge', 'd2.2xlarge', 'd2.4xlarge', 'd2.8xlarge']
49
+ 'D2' => ['d2.xlarge', 'd2.2xlarge', 'd2.4xlarge', 'd2.8xlarge'],
50
+ 'H1' => ['h1.2xlarge', 'h1.4xlarge', 'h1.8xlarge', 'h1.16xlarge'],
49
51
  },
50
52
  'PreviousGen' => {
51
53
  'HI1' => ['hi1.4xlarge']
@@ -169,7 +171,7 @@ module AwsPricing
169
171
  end
170
172
  size_keys = sorted_size_to_nf.keys
171
173
  idx = size_keys.index(type)
172
- idx = idx -1 if (idx > 0) # don't go smaller, than smallest
174
+ idx = idx - 1 if (idx > 0) # don't go smaller, than smallest
173
175
  nf = sorted_size_to_nf[new_type = size_keys.at(idx)]
174
176
 
175
177
  ["#{fam}.#{new_type}" , nf]
@@ -195,8 +197,10 @@ module AwsPricing
195
197
  "8xlarge" => 64,
196
198
  "9xlarge" => 72,
197
199
  "10xlarge" => 80,
200
+ "12xlarge" => 96,
198
201
  "16xlarge" => 128,
199
202
  "18xlarge" => 144,
203
+ "24xlarge" => 192,
200
204
  "32xlarge" => 256,
201
205
  }
202
206
  NF_TO_SIZE_TABLE = SIZE_TO_NF_TABLE.invert
@@ -8,5 +8,5 @@
8
8
  # Home:: http://github.com/CloudHealth/amazon-pricing
9
9
  #++
10
10
  module AwsPricing
11
- VERSION = '0.1.104' # [major,minor.fix]: adding cache.r4
11
+ VERSION = '0.1.105' # [major,minor.fix]: adding m5 and h1
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.104
4
+ version: 0.1.105
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Kinsella
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-30 00:00:00.000000000 Z
11
+ date: 2017-12-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A Ruby library for retrieving pricing for Amazon Web Services
14
14
  email: