amazon-pricing 0.1.111 → 0.1.112

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