amazon-pricing 0.1.104 → 0.1.105

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
- 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: