amazon-pricing 0.1.94 → 0.1.95
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 +8 -8
- data/Rakefile +50 -0
- data/lib/amazon-pricing.rb +2 -0
- data/lib/amazon-pricing/aws-price-list.rb +1 -0
- data/lib/amazon-pricing/common/ec2_common.rb +2 -0
- data/lib/amazon-pricing/definitions/ec2-dh-type.rb +36 -0
- data/lib/amazon-pricing/definitions/ec2-instance-type.rb +16 -0
- data/lib/amazon-pricing/definitions/instance-type.rb +1 -1
- data/lib/amazon-pricing/definitions/region.rb +19 -1
- data/lib/amazon-pricing/ec2-dh-price-list.rb +52 -0
- data/lib/amazon-pricing/ec2-dhi-price-list.rb +74 -0
- data/lib/amazon-pricing/version.rb +1 -1
- data/spec/lib/amazon-pricing/ec2_dh_pricing_spec.rb +26 -0
- data/spec/lib/amazon-pricing/ec2_dhi_pricing_spec.rb +37 -0
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NDk2N2NkZjYwYzAxOTAyYzk2ZWM4ZmNhNzFhZWRlMmQ0YTQzMmM3Zg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
OTBkNWNkYzNlOWRkOTAyZmUwZjZmYjFhYjkzMWFlOGFmZmMyMGQ1Yw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZjExYTkzMjQ4ZWFkZmMzODMxZTIzYjUzNWM5YjlkNTI5ZjllOTlmYjEyYjg2
|
10
|
+
MmFiMDU0N2Q4MTljZDVmMTM2Y2RjN2Q2OGNmZDE3YTY0ZjllYzdhNWNkZWM3
|
11
|
+
ODMxYmYxYzBjMTNhYzVhZDhhOGJiOThlYjc5YjlhZDI1ZGRlOTg=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NDZjOTRjMmZmMTc3MjEyOTQyNjJjN2RmYTlhNDE3NTllMTI1M2FjMzIxZWQ2
|
14
|
+
OTlhNTUzNTM3NWFkMjE0MTE2NjI3YWY2OWNiNDQ3MjExNDE3MGJiYjNkMGVh
|
15
|
+
YzVjYmY5NjI1Y2MyMTJjMGRkZTUxMDVlYzY5ODFmMjY0YWMzMDY=
|
data/Rakefile
CHANGED
@@ -34,6 +34,27 @@ task :print_ec2_price_list do
|
|
34
34
|
print_ec2_table(pricing)
|
35
35
|
end
|
36
36
|
|
37
|
+
desc "Prints current EC2 DI pricing in CSV format"
|
38
|
+
task :print_ec2_di_price_list do
|
39
|
+
require 'amazon-pricing'
|
40
|
+
pricing = AwsPricing::Ec2DiPriceList.new
|
41
|
+
print_ec2_table(pricing)
|
42
|
+
end
|
43
|
+
|
44
|
+
desc "Prints current EC2 Dedicated Host Instance pricing in CSV format"
|
45
|
+
task :print_ec2_dhi_price_list do
|
46
|
+
require 'amazon-pricing'
|
47
|
+
pricing = AwsPricing::Ec2DedicatedHostInstancePriceList.new
|
48
|
+
print_ec2_table(pricing)
|
49
|
+
end
|
50
|
+
|
51
|
+
desc "Prints current EC2 Dedicated Host pricing in CSV format"
|
52
|
+
task :print_ec2_dh_price_list do
|
53
|
+
require 'amazon-pricing'
|
54
|
+
pricing = AwsPricing::Ec2DedicatedHostPriceList.new
|
55
|
+
print_ec2_dh_table(pricing)
|
56
|
+
end
|
57
|
+
|
37
58
|
desc "Prints current RDS pricing in CSV format"
|
38
59
|
task :print_rds_price_list do
|
39
60
|
require 'amazon-pricing'
|
@@ -95,6 +116,35 @@ def print_ec2_table(pricing, target_region = nil)
|
|
95
116
|
end
|
96
117
|
end
|
97
118
|
|
119
|
+
def print_ec2_dh_table(pricing, target_region = nil)
|
120
|
+
line = "Region,Instance Type,API Name,Memory (MB),Disk (GB),Compute Units,Virtual Cores,Disk Type,OD Linux PPH,OD Windows PPH,OD RHEL PPH,OD SLES PPH,OD MsWinSQL PPH,OD MsWinSQLWeb PPH,"
|
121
|
+
[:year1, :year3].each do |term|
|
122
|
+
[:light, :medium, :heavy, :allupfront, :partialupfront, :noupfront].each do |res_type|
|
123
|
+
[:linux, :mswin, :rhel, :sles, :mswinSQL, :mswinSQLWeb].each do |os|
|
124
|
+
line += "#{term} #{res_type} #{os} Prepay,#{term} #{res_type} #{os} PPH,"
|
125
|
+
end
|
126
|
+
end
|
127
|
+
end
|
128
|
+
puts line.chop
|
129
|
+
pricing.regions.each do |region|
|
130
|
+
next if region.name != target_region if target_region
|
131
|
+
region.ec2_dh_types.each do |t|
|
132
|
+
line = "#{region.name},#{t.name},#{t.api_name},#{t.memory_in_mb},#{t.disk_in_gb},#{t.compute_units},#{t.virtual_cores},#{t.disk_type},"
|
133
|
+
[:linux, :mswin, :rhel, :sles, :mswinSQL, :mswinSQLWeb].each do |os|
|
134
|
+
line += "#{t.price_per_hour(os, :ondemand)},"
|
135
|
+
end
|
136
|
+
[:year1, :year3].each do |term|
|
137
|
+
[:light, :medium, :heavy, :allupfront, :partialupfront, :noupfront].each do |res_type|
|
138
|
+
[:linux, :mswin, :rhel, :sles, :mswinSQL, :mswinSQLWeb].each do |os|
|
139
|
+
line += "#{t.prepay(os, res_type, term)},#{t.price_per_hour(os, res_type, term)},"
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
puts line.chop
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
98
148
|
def print_elasticache_table(pricing, target_region = nil)
|
99
149
|
line = "Region,Node Type,API Name,Memmory (MB),Virtual Cores,Disk Type,OD PPH,"
|
100
150
|
[:year1, :year3].each do |term|
|
data/lib/amazon-pricing.rb
CHANGED
@@ -8,6 +8,8 @@ require 'amazon-pricing/common/ec2_common'
|
|
8
8
|
require 'amazon-pricing/aws-price-list'
|
9
9
|
require 'amazon-pricing/ec2-price-list'
|
10
10
|
require 'amazon-pricing/ec2-di-price-list'
|
11
|
+
require 'amazon-pricing/ec2-dhi-price-list'
|
12
|
+
require 'amazon-pricing/ec2-dh-price-list'
|
11
13
|
require 'amazon-pricing/rds-price-list'
|
12
14
|
require 'amazon-pricing/dynamo-db-price-list'
|
13
15
|
require 'amazon-pricing/elasticache-price-list'
|
@@ -104,6 +104,7 @@ module AwsPricing
|
|
104
104
|
ELASTICACHE_BASE_URL = "http://a0.awsstatic.com/pricing/1/elasticache/"
|
105
105
|
|
106
106
|
DI_OD_BASE_URL = "http://a0.awsstatic.com/pricing/1/dedicated-instances/"
|
107
|
+
DH_OD_BASE_URL = "http://a0.awsstatic.com/pricing/1/dedicated-hosts/"
|
107
108
|
RESERVED_DI_BASE_URL = "http://a0.awsstatic.com/pricing/1/ec2/ri-v2/"
|
108
109
|
RESERVED_DI_PREV_GEN_BASE_URL = "http://a0.awsstatic.com/pricing/1/ec2/previous-generation/ri-v2/"
|
109
110
|
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'amazon-pricing/definitions/instance-type'
|
2
|
+
|
3
|
+
module AwsPricing
|
4
|
+
class Ec2DedicatedHostType < InstanceType
|
5
|
+
|
6
|
+
def initialize(region, family_name)
|
7
|
+
@category_types = {}
|
8
|
+
@region = region
|
9
|
+
@name = ''
|
10
|
+
@api_name = family_name
|
11
|
+
end
|
12
|
+
|
13
|
+
def category_types
|
14
|
+
@category_types
|
15
|
+
end
|
16
|
+
|
17
|
+
def region
|
18
|
+
@region
|
19
|
+
end
|
20
|
+
|
21
|
+
def update_dh_pricing(operating_system, dhprice)
|
22
|
+
os = get_category_type(operating_system)
|
23
|
+
if os.nil?
|
24
|
+
os = OperatingSystem.new(self, operating_system)
|
25
|
+
@category_types[operating_system] = os
|
26
|
+
end
|
27
|
+
|
28
|
+
category = operating_system.to_s
|
29
|
+
values = { category => dhprice }
|
30
|
+
price = coerce_price(values[category])
|
31
|
+
os.set_price_per_hour(:ondemand, nil, price)
|
32
|
+
end
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -88,6 +88,22 @@ module AwsPricing
|
|
88
88
|
end
|
89
89
|
end
|
90
90
|
|
91
|
+
# operating_system = :linux, :mswin, :rhel, :sles, :mswinSQL, :mswinSQLWeb
|
92
|
+
# dhprice is a string representing the price per hour for the Dedicated Host
|
93
|
+
# capacity is the number of this type of instancess supported on this Dedicated Host
|
94
|
+
def update_dhi_pricing(operating_system, dhprice, capacity)
|
95
|
+
os = get_category_type(operating_system)
|
96
|
+
if os.nil?
|
97
|
+
os = OperatingSystem.new(self, operating_system)
|
98
|
+
@category_types[operating_system] = os
|
99
|
+
end
|
100
|
+
|
101
|
+
category = operating_system.to_s
|
102
|
+
values = { category => dhprice }
|
103
|
+
price = coerce_price(values[category])
|
104
|
+
os.set_price_per_hour(:ondemand, nil, price/capacity)
|
105
|
+
end
|
106
|
+
|
91
107
|
def update_pricing2(operating_system, res_type, ondemand_pph = nil, year1_prepay = nil, year3_prepay = nil, year1_pph = nil, year3_pph = nil)
|
92
108
|
|
93
109
|
os = get_category_type(operating_system)
|
@@ -15,13 +15,14 @@ module AwsPricing
|
|
15
15
|
# e.g. us-east, us-west
|
16
16
|
#
|
17
17
|
class Region
|
18
|
-
attr_accessor :name, :ebs_price, :ec2_instance_types, :rds_instance_types, :elasticache_node_types
|
18
|
+
attr_accessor :name, :ebs_price, :ec2_instance_types, :rds_instance_types, :elasticache_node_types, :ec2_dh_types
|
19
19
|
|
20
20
|
def initialize(name)
|
21
21
|
@name = name
|
22
22
|
@ec2_instance_types = {}
|
23
23
|
@rds_instance_types = {}
|
24
24
|
@elasticache_node_types = {}
|
25
|
+
@ec2_dh_types = {}
|
25
26
|
end
|
26
27
|
|
27
28
|
# Maintained for backward compatibility reasons (retrieves EC2 instance type)
|
@@ -41,6 +42,10 @@ module AwsPricing
|
|
41
42
|
@elasticache_node_types.values
|
42
43
|
end
|
43
44
|
|
45
|
+
def ec2_dh_types
|
46
|
+
@ec2_dh_types.values
|
47
|
+
end
|
48
|
+
|
44
49
|
# Returns whether an instance_type is available.
|
45
50
|
# operating_system = :linux, :mswin, :rhel, :sles, :mswinSQL, :mswinSQLWeb
|
46
51
|
# type_of_instance = :ondemand, :light, :medium, :heavy
|
@@ -78,6 +83,15 @@ module AwsPricing
|
|
78
83
|
current
|
79
84
|
end
|
80
85
|
|
86
|
+
def add_or_update_ec2_dh_type(family)
|
87
|
+
current = get_ec2_dh_type(family)
|
88
|
+
if current.nil?
|
89
|
+
current = Ec2DedicatedHostType.new(self, family)
|
90
|
+
@ec2_dh_types[family] = current
|
91
|
+
end
|
92
|
+
current
|
93
|
+
end
|
94
|
+
|
81
95
|
# Maintained for backward compatibility reasons (retrieves EC2 instance type)
|
82
96
|
def get_instance_type(api_name)
|
83
97
|
get_ec2_instance_type(api_name)
|
@@ -95,6 +109,10 @@ module AwsPricing
|
|
95
109
|
@elasticache_node_types[api_name]
|
96
110
|
end
|
97
111
|
|
112
|
+
def get_ec2_dh_type(family)
|
113
|
+
@ec2_dh_types[family]
|
114
|
+
end
|
115
|
+
|
98
116
|
end
|
99
117
|
|
100
118
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module AwsPricing
|
2
|
+
class Ec2DedicatedHostPriceList < PriceList
|
3
|
+
include AwsPricing::Ec2Common
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
super
|
7
|
+
InstanceType.populate_lookups
|
8
|
+
get_ec2_dh_od_pricing
|
9
|
+
end
|
10
|
+
|
11
|
+
def os_types
|
12
|
+
@@OS_TYPES
|
13
|
+
end
|
14
|
+
|
15
|
+
protected
|
16
|
+
|
17
|
+
@@OS_TYPES = [ 'linux', 'rhel', 'sles', 'mswin', 'mswinSQL', 'mswinSQLWeb', 'mswinSQLEnterprise' ]
|
18
|
+
|
19
|
+
def get_ec2_dh_od_pricing
|
20
|
+
@@OS_TYPES.each do |os|
|
21
|
+
fetch_ec2_dedicated_host_pricing(DH_OD_BASE_URL + "dh-od.min.js", os.to_sym)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def fetch_ec2_dedicated_host_pricing(url, operating_system)
|
26
|
+
res = PriceList.fetch_url(url)
|
27
|
+
begin
|
28
|
+
res['config']['regions'].each do |reg|
|
29
|
+
region_name = reg['region']
|
30
|
+
region = get_region(region_name)
|
31
|
+
if region.nil?
|
32
|
+
$stderr.puts "[fetch_ec2_dedicated_host_pricing] WARNING: unable to find region #{region_name}"
|
33
|
+
next
|
34
|
+
end
|
35
|
+
reg['types'].each do |type|
|
36
|
+
type_name = type['name']
|
37
|
+
tiers = type['tiers']
|
38
|
+
tiers.each do |tier|
|
39
|
+
family = tier['name']
|
40
|
+
api_name = family
|
41
|
+
dhprice = tier['prices']['USD']
|
42
|
+
dh_type = region.add_or_update_ec2_dh_type(family)
|
43
|
+
dh_type.update_dh_pricing(operating_system, dhprice)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
rescue UnknownTypeError
|
48
|
+
$stderr.puts "[fetch_ec2_dedicated_host_pricing] WARNING: encountered #{$!.message}"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,74 @@
|
|
1
|
+
module AwsPricing
|
2
|
+
class Ec2DedicatedHostInstancePriceList < PriceList
|
3
|
+
include AwsPricing::Ec2Common
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
super
|
7
|
+
InstanceType.populate_lookups
|
8
|
+
get_ec2_dhi_od_pricing
|
9
|
+
end
|
10
|
+
|
11
|
+
def os_types
|
12
|
+
@@OS_TYPES
|
13
|
+
end
|
14
|
+
|
15
|
+
protected
|
16
|
+
|
17
|
+
@@OS_TYPES = [ 'linux', 'rhel', 'sles', 'mswin', 'mswinSQL', 'mswinSQLWeb', 'mswinSQLEnterprise' ]
|
18
|
+
|
19
|
+
@@CAPACITY_HASH = {
|
20
|
+
'c3' => { "large"=>16, "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1 },
|
21
|
+
'c4' => { "large"=>16, "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1 },
|
22
|
+
'p2' => { "xlarge"=>16, "8xlarge"=>2, "16xlarge"=>1 },
|
23
|
+
'g2' => { "2xlarge"=>4, "8xlarge"=>1 },
|
24
|
+
'm3' => { "medium"=>32, "large"=>16, "xlarge"=>8, "2xlarge"=>4 },
|
25
|
+
'd2' => { "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1 },
|
26
|
+
'r4' => { "large"=>32, "xlarge"=>16, "2xlarge"=>8, "4xlarge"=>4, "8xlarge"=>2, "16xlarge"=>1 },
|
27
|
+
'r3' => { "large"=>16, "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1 },
|
28
|
+
'm4' => { "large"=>22, "xlarge"=>11, "2xlarge"=>5, "4xlarge"=>4, "10xlarge"=>1, "16xlarge"=>1 },
|
29
|
+
'i2' => { "xlarge"=>8, "2xlarge"=>4, "4xlarge"=>2, "8xlarge"=>1, "16xlarge"=>1 },
|
30
|
+
'i3' => { "large"=>32, "xlarge"=>16, "2xlarge"=>8, "4xlarge"=>4, "8xlarge"=>2, "16xlarge"=>1 },
|
31
|
+
'x1' => { "16xlarge"=>2, "32xlarge"=>1 }
|
32
|
+
}
|
33
|
+
|
34
|
+
def get_ec2_dhi_od_pricing
|
35
|
+
@@OS_TYPES.each do |os|
|
36
|
+
fetch_ec2_dedicated_host_instance_pricing(DH_OD_BASE_URL + "dh-od.min.js", os.to_sym)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def fetch_ec2_dedicated_host_instance_pricing(url, operating_system)
|
41
|
+
res = PriceList.fetch_url(url)
|
42
|
+
res['config']['regions'].each do |reg|
|
43
|
+
begin
|
44
|
+
region_name = reg['region']
|
45
|
+
region = get_region(region_name)
|
46
|
+
if region.nil?
|
47
|
+
$stderr.puts "[fetch_ec2_dedicated_host_instance_pricing] WARNING: unable to find region #{region_name}"
|
48
|
+
next
|
49
|
+
end
|
50
|
+
reg['types'].each do |type|
|
51
|
+
type_name = type['name']
|
52
|
+
tiers = type['tiers']
|
53
|
+
tiers.each do |tier|
|
54
|
+
family = tier['name']
|
55
|
+
|
56
|
+
# hack for now until I can get capacity for fpga instances
|
57
|
+
next if family == 'f1'
|
58
|
+
|
59
|
+
dhprice = tier['prices']['USD']
|
60
|
+
@@CAPACITY_HASH[family].each do |inst_size,capacity|
|
61
|
+
api_name, name = Ec2InstanceType.get_name(family, "#{family}.#{inst_size}", false)
|
62
|
+
instance_type = region.add_or_update_ec2_instance_type(api_name, name)
|
63
|
+
instance_type.update_dhi_pricing(operating_system, dhprice, capacity)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
rescue UnknownTypeError
|
69
|
+
$stderr.puts "[fetch_ec2_dedicated_host_instance_pricing] WARNING: encountered #{$!.message}"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe AwsPricing::Ec2DedicatedHostPriceList do
|
4
|
+
|
5
|
+
before(:all) do
|
6
|
+
@pricing = AwsPricing::Ec2DedicatedHostPriceList.new
|
7
|
+
end
|
8
|
+
|
9
|
+
def validate_price_in_region region
|
10
|
+
# Result have valid node name
|
11
|
+
region.ec2_dh_types.each do |dh_type|
|
12
|
+
expect(dh_type.api_name).to have(2).characters
|
13
|
+
expect(dh_type.region.ec2_dh_types[0].category_types[:linux].name).to eq(:linux)
|
14
|
+
expect(dh_type.region.ec2_dh_types[0].category_types[:linux].ondemand_price_per_hour.class).to eq(Float)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe 'new' do
|
19
|
+
it 'Ec2DedicatedHostPriceList.new should return valid response' do
|
20
|
+
@pricing.regions.each do |region|
|
21
|
+
validate_price_in_region region
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe AwsPricing::Ec2DedicatedHostInstancePriceList do
|
4
|
+
|
5
|
+
before(:all) do
|
6
|
+
@pricing = AwsPricing::Ec2DedicatedHostInstancePriceList.new
|
7
|
+
@dh_pricing = AwsPricing::Ec2DedicatedHostPriceList.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def validate_price_in_region region
|
11
|
+
# Result have valid node name
|
12
|
+
region.ec2_instance_types.each do |inst_type|
|
13
|
+
expect(inst_type.api_name).to match(/[[:alpha:]][[:alpha:]]./)
|
14
|
+
expect(inst_type.category_types).to have_exactly(@pricing.os_types.length).items
|
15
|
+
expect(inst_type.category_types[0].price_per_hour.class).to eq(Float)
|
16
|
+
|
17
|
+
family_name = inst_type.api_name.split('.').first
|
18
|
+
dh_region_arr = @dh_pricing.regions.select { |reg| reg.name == region.name }
|
19
|
+
expect(dh_region_arr).to have_exactly(1).items
|
20
|
+
dh_region = dh_region_arr[0]
|
21
|
+
dh_price_per_hour = dh_region.ec2_dh_types[0].price_per_hour(:linux, :ondemand)
|
22
|
+
dh_dh_type_arr = dh_region.ec2_dh_types.select { |type| type.api_name == family_name }
|
23
|
+
expect(dh_dh_type_arr).to have_exactly(1).items
|
24
|
+
dh_dh_type = dh_dh_type_arr[0]
|
25
|
+
expect(inst_type.category_types[0].price_per_hour).to be <= dh_dh_type.category_types[:linux].ondemand_price_per_hour
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe 'new' do
|
30
|
+
it 'Ec2DedicatedHostInstancePriceList.new should return valid response' do
|
31
|
+
@pricing.regions.each do |region|
|
32
|
+
validate_price_in_region region
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
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.
|
4
|
+
version: 0.1.95
|
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-05-
|
11
|
+
date: 2017-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A Ruby library for retrieving pricing for Amazon Web Services
|
14
14
|
email:
|
@@ -38,6 +38,7 @@ files:
|
|
38
38
|
- lib/amazon-pricing/definitions/category-type.rb
|
39
39
|
- lib/amazon-pricing/definitions/database-type.rb
|
40
40
|
- lib/amazon-pricing/definitions/ebs-price.rb
|
41
|
+
- lib/amazon-pricing/definitions/ec2-dh-type.rb
|
41
42
|
- lib/amazon-pricing/definitions/ec2-instance-type.rb
|
42
43
|
- lib/amazon-pricing/definitions/elasticache_node_type.rb
|
43
44
|
- lib/amazon-pricing/definitions/instance-type.rb
|
@@ -45,6 +46,8 @@ files:
|
|
45
46
|
- lib/amazon-pricing/definitions/rds-instance-type.rb
|
46
47
|
- lib/amazon-pricing/definitions/region.rb
|
47
48
|
- lib/amazon-pricing/dynamo-db-price-list.rb
|
49
|
+
- lib/amazon-pricing/ec2-dh-price-list.rb
|
50
|
+
- lib/amazon-pricing/ec2-dhi-price-list.rb
|
48
51
|
- lib/amazon-pricing/ec2-di-price-list.rb
|
49
52
|
- lib/amazon-pricing/ec2-price-list.rb
|
50
53
|
- lib/amazon-pricing/elasticache-price-list.rb
|
@@ -52,6 +55,8 @@ files:
|
|
52
55
|
- lib/amazon-pricing/rds-price-list.rb
|
53
56
|
- lib/amazon-pricing/version.rb
|
54
57
|
- spec/lib/amazon-pricing/definitions/database-type_spec.rb
|
58
|
+
- spec/lib/amazon-pricing/ec2_dh_pricing_spec.rb
|
59
|
+
- spec/lib/amazon-pricing/ec2_dhi_pricing_spec.rb
|
55
60
|
- spec/lib/amazon-pricing/elasticache_pricing_spec.rb
|
56
61
|
- spec/lib/amazon-pricing/helpers/instance-type-spec.rb
|
57
62
|
- spec/lib/amazon-pricing/rds_pricing_spec.rb
|
@@ -90,6 +95,8 @@ specification_version: 4
|
|
90
95
|
summary: Amazon Web Services Pricing Ruby gem
|
91
96
|
test_files:
|
92
97
|
- spec/lib/amazon-pricing/definitions/database-type_spec.rb
|
98
|
+
- spec/lib/amazon-pricing/ec2_dh_pricing_spec.rb
|
99
|
+
- spec/lib/amazon-pricing/ec2_dhi_pricing_spec.rb
|
93
100
|
- spec/lib/amazon-pricing/elasticache_pricing_spec.rb
|
94
101
|
- spec/lib/amazon-pricing/helpers/instance-type-spec.rb
|
95
102
|
- spec/lib/amazon-pricing/rds_pricing_spec.rb
|