amazon-pricing 0.1.134 → 0.1.135
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -13
- data/lib/amazon-pricing/helpers/instance-type.rb +19 -25
- data/lib/amazon-pricing/version.rb +2 -1
- metadata +9 -10
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
NDhjODczMGIyN2E1ZGViZWE3YjZiYTc0ODRkOTUyNDJlMmY0M2Q1Yg==
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 10b7c63f50fa80a65001aa63c92463a23ee353ea9ef818720e90ee197a9aa6c0
|
4
|
+
data.tar.gz: c2b8582a55deb863cd43633fed151c49b81ff2df7c49af84821cedf0789dbd65
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
ODY3YTg5Y2MxZWRjM2Q2ZTA2Y2Y2MjJhNzNjOTU1OWZjMTFiMzFlMGZmM2U2
|
11
|
-
ZjJhNmQzOGM5MzY0OWY4ZDQyNjQ4MDRmYzZhNzQzYmEyMDM2NDU=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
MmU2MDM3YzE0MmZlNTczMzRlMjVkMjg0MGJiNzMzNDY2OTdlN2RiM2I2MjY3
|
14
|
-
MzdjM2MwYmZkYzEzNThmNzQ5ODI3NDFjNmI0OTIyZDcwNzBlZmNlYzA1ZGUw
|
15
|
-
M2Y0YzM2M2EwNjdhYThlMWNhMmFmNzc5NjEwNDdkYTZlOGUzM2E=
|
6
|
+
metadata.gz: 89c637ec8690664d6e31f587608366e4bbe4886530e0c2e54e835f9f82ab319c665aef5c57767dcb76b43bb304c65c1542633e39895d5c02cb313c3e1948c03c
|
7
|
+
data.tar.gz: aeeb9414b090745a2dbb567cf1efe11c3e4a060b2d89499d45f1743933da1423edae3fb8969f0623dac68180dfca17eb02804eb75dc80f42c4d56e8484cf6920
|
@@ -11,14 +11,14 @@ module AwsPricing
|
|
11
11
|
'GeneralPurpose' => {
|
12
12
|
'CurrentGen' => {
|
13
13
|
'A1' => ['a1.medium', 'a1.large', 'a1.xlarge', 'a1.2xlarge', 'a1.4xlarge'],
|
14
|
-
'M3' => ['m3.medium', 'm3.large', 'm3.xlarge', 'm3.2xlarge'],
|
15
14
|
'M4' => ['m4.large', 'm4.xlarge', 'm4.2xlarge', 'm4.4xlarge', 'm4.10xlarge', 'm4.16xlarge'],
|
16
15
|
'M5' => ['m5.large', 'm5.xlarge', 'm5.2xlarge', 'm5.4xlarge', 'm5.12xlarge', 'm5.24xlarge', 'm5.metal'],
|
17
16
|
'M5D' => ['m5d.large', 'm5d.xlarge', 'm5d.2xlarge', 'm5d.4xlarge', 'm5d.12xlarge', 'm5d.24xlarge', 'm5d.metal'],
|
18
17
|
'M5A' => ['m5a.large', 'm5a.xlarge', 'm5a.2xlarge', 'm5a.4xlarge', 'm5a.12xlarge', 'm5a.24xlarge'],
|
19
18
|
},
|
20
19
|
'PreviousGen' => {
|
21
|
-
'M1' => ['m1.small', 'm1.medium', 'm1.large', 'm1.xlarge']
|
20
|
+
'M1' => ['m1.small', 'm1.medium', 'm1.large', 'm1.xlarge'],
|
21
|
+
'M3' => ['m3.medium', 'm3.large', 'm3.xlarge', 'm3.2xlarge'],
|
22
22
|
}
|
23
23
|
},
|
24
24
|
'BurstableInstances' => {
|
@@ -95,39 +95,39 @@ module AwsPricing
|
|
95
95
|
|
96
96
|
# Important: Members of a family must be kept in 'size' order (small, medium, large, etc.)
|
97
97
|
# AWS Docs: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html
|
98
|
-
def instance_types
|
98
|
+
def self.instance_types
|
99
99
|
@@INSTANCE_TYPES_BY_CLASSIFICATION
|
100
100
|
end
|
101
101
|
|
102
|
-
def general_purpose_instances
|
102
|
+
def self.general_purpose_instances
|
103
103
|
instance_types['GeneralPurpose']
|
104
104
|
end
|
105
105
|
|
106
|
-
def burstable_instances
|
106
|
+
def self.burstable_instances
|
107
107
|
instance_types['BurstableInstances']
|
108
108
|
end
|
109
109
|
|
110
|
-
def compute_optimized_instances
|
110
|
+
def self.compute_optimized_instances
|
111
111
|
instance_types['ComputeOptimized']
|
112
112
|
end
|
113
113
|
|
114
|
-
def memory_optimized_instances
|
114
|
+
def self.memory_optimized_instances
|
115
115
|
instance_types['MemoryOptimized']
|
116
116
|
end
|
117
117
|
|
118
|
-
def storage_optimized_instances
|
118
|
+
def self.storage_optimized_instances
|
119
119
|
instance_types['StorageOptimized']
|
120
120
|
end
|
121
121
|
|
122
|
-
def gpu_instances
|
122
|
+
def self.gpu_instances
|
123
123
|
instance_types['GPUInstances']
|
124
124
|
end
|
125
125
|
|
126
|
-
def micro_instances
|
126
|
+
def self.micro_instances
|
127
127
|
instance_types['MicroInstances']
|
128
128
|
end
|
129
129
|
|
130
|
-
def previous_generation_instances
|
130
|
+
def self.previous_generation_instances
|
131
131
|
[
|
132
132
|
general_purpose_instances['PreviousGen'],
|
133
133
|
compute_optimized_instances['PreviousGen'],
|
@@ -142,7 +142,7 @@ module AwsPricing
|
|
142
142
|
end
|
143
143
|
end
|
144
144
|
|
145
|
-
def current_generation_instances
|
145
|
+
def self.current_generation_instances
|
146
146
|
[
|
147
147
|
general_purpose_instances['CurrentGen'],
|
148
148
|
burstable_instances['CurrentGen'],
|
@@ -157,7 +157,7 @@ module AwsPricing
|
|
157
157
|
end
|
158
158
|
end
|
159
159
|
|
160
|
-
def all_instances
|
160
|
+
def self.all_instances
|
161
161
|
@all_instances ||= begin
|
162
162
|
[previous_generation_instances, current_generation_instances].inject({}) do |instances, family|
|
163
163
|
instances.merge(family)
|
@@ -165,15 +165,15 @@ module AwsPricing
|
|
165
165
|
end
|
166
166
|
end
|
167
167
|
|
168
|
-
def family(api_name)
|
168
|
+
def self.family(api_name)
|
169
169
|
all_instances.select { |family, instances| instances.include?(api_name) }.keys.first
|
170
170
|
end
|
171
171
|
|
172
|
-
def family_members(api_name)
|
172
|
+
def self.family_members(api_name)
|
173
173
|
all_instances.select { |family, instances| instances.include?(api_name) }.values.first
|
174
174
|
end
|
175
175
|
|
176
|
-
def api_name_to_nf(name)
|
176
|
+
def self.api_name_to_nf(name)
|
177
177
|
type = name.split('.').last
|
178
178
|
if (type == METAL)
|
179
179
|
# See if our metal instance has a hard-coded nf value
|
@@ -190,7 +190,7 @@ module AwsPricing
|
|
190
190
|
type = sizes[-1].split('.').last # 'metal' defaults to largest size
|
191
191
|
if sizes[-1].split('.').last == METAL
|
192
192
|
if sizes.size == 1 # We have an instance family with only metals but no NF associated; raise an error
|
193
|
-
|
193
|
+
return nil
|
194
194
|
end
|
195
195
|
type = sizes[-2].split('.').last # 'metal' already largest, so 2nd largest
|
196
196
|
end
|
@@ -218,20 +218,14 @@ module AwsPricing
|
|
218
218
|
["#{fam}.#{new_type}" , nf]
|
219
219
|
end
|
220
220
|
|
221
|
-
def size_to_nf
|
221
|
+
def self.size_to_nf
|
222
222
|
SIZE_TO_NF_TABLE
|
223
223
|
end
|
224
224
|
|
225
|
-
def
|
226
|
-
NF_TO_SIZE_TABLE
|
227
|
-
end
|
228
|
-
|
229
|
-
def metal_to_nf
|
225
|
+
def self.metal_to_nf
|
230
226
|
METAL_TO_NF_TABLE
|
231
227
|
end
|
232
228
|
|
233
|
-
|
234
|
-
# Remove metal from this array? force adoption of this
|
235
229
|
# NB: 'metal' is not in this table (since it's family specific), see #api_name_to_nf
|
236
230
|
SIZE_TO_NF_TABLE = {
|
237
231
|
"nano" => 0.25,
|
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.
|
4
|
+
version: 0.1.135
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joe Kinsella
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-02-
|
11
|
+
date: 2019-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A Ruby library for retrieving pricing for Amazon Web Services
|
14
14
|
email:
|
@@ -19,7 +19,7 @@ extra_rdoc_files:
|
|
19
19
|
- LICENSE
|
20
20
|
- README.md
|
21
21
|
files:
|
22
|
-
- .gitignore
|
22
|
+
- ".gitignore"
|
23
23
|
- CHANGELOG.md
|
24
24
|
- Gemfile
|
25
25
|
- Gemfile.lock
|
@@ -73,26 +73,25 @@ licenses:
|
|
73
73
|
metadata: {}
|
74
74
|
post_install_message:
|
75
75
|
rdoc_options:
|
76
|
-
- --title
|
76
|
+
- "--title"
|
77
77
|
- amazon-pricing documentation
|
78
|
-
- --line-numbers
|
79
|
-
- --main
|
78
|
+
- "--line-numbers"
|
79
|
+
- "--main"
|
80
80
|
- README.md
|
81
81
|
require_paths:
|
82
82
|
- lib
|
83
83
|
required_ruby_version: !ruby/object:Gem::Requirement
|
84
84
|
requirements:
|
85
|
-
- -
|
85
|
+
- - ">="
|
86
86
|
- !ruby/object:Gem::Version
|
87
87
|
version: '0'
|
88
88
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
89
|
requirements:
|
90
|
-
- -
|
90
|
+
- - ">="
|
91
91
|
- !ruby/object:Gem::Version
|
92
92
|
version: '0'
|
93
93
|
requirements: []
|
94
|
-
|
95
|
-
rubygems_version: 2.6.14
|
94
|
+
rubygems_version: 3.0.2
|
96
95
|
signing_key:
|
97
96
|
specification_version: 4
|
98
97
|
summary: Amazon Web Services Pricing Ruby gem
|