aws-sdk 1.6.9 → 1.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +1 -1
- data/lib/aws.rb +8 -0
- data/lib/aws/api_config/CloudSearch-2011-02-01.yml +681 -0
- data/lib/aws/api_config/DynamoDB-2011-12-05.yml +4 -0
- data/lib/aws/api_config/EMR-2009-03-31.yml +18 -0
- data/lib/aws/api_config/ElastiCache-2012-03-09.yml +777 -0
- data/lib/aws/api_config/ElasticBeanstalk-2010-12-01.yml +823 -0
- data/lib/aws/api_config/RDS-2012-07-31.yml +1621 -0
- data/lib/aws/cloud_search.rb +31 -0
- data/lib/aws/cloud_search/client.rb +558 -0
- data/lib/aws/cloud_search/config.rb +18 -0
- data/lib/aws/cloud_search/errors.rb +22 -0
- data/lib/aws/cloud_search/request.rb +23 -0
- data/lib/aws/cloud_watch/alarm.rb +1 -1
- data/lib/aws/cloud_watch/metric.rb +3 -3
- data/lib/aws/core.rb +18 -3
- data/lib/aws/core/configuration.rb +11 -0
- data/lib/aws/core/inflection.rb +1 -0
- data/lib/aws/core/service_interface.rb +1 -1
- data/lib/aws/dynamo_db/batch_get.rb +19 -12
- data/lib/aws/dynamo_db/client.rb +27 -1
- data/lib/aws/dynamo_db/config.rb +2 -0
- data/lib/aws/dynamo_db/item_collection.rb +2 -2
- data/lib/aws/dynamo_db/table.rb +8 -2
- data/lib/aws/ec2/reserved_instances.rb +3 -0
- data/lib/aws/ec2/reserved_instances_offering.rb +3 -1
- data/lib/aws/elastic_beanstalk.rb +48 -0
- data/lib/aws/elastic_beanstalk/client.rb +867 -0
- data/lib/aws/elastic_beanstalk/config.rb +18 -0
- data/lib/aws/elastic_beanstalk/errors.rb +22 -0
- data/lib/aws/elastic_beanstalk/request.rb +23 -0
- data/lib/aws/elasticache.rb +48 -0
- data/lib/aws/elasticache/client.rb +758 -0
- data/lib/aws/elasticache/config.rb +18 -0
- data/lib/aws/elasticache/errors.rb +22 -0
- data/lib/aws/elasticache/request.rb +23 -0
- data/lib/aws/emr/client.rb +30 -6
- data/lib/aws/emr/job_flow.rb +10 -0
- data/lib/aws/rds.rb +69 -0
- data/lib/aws/rds/client.rb +1592 -0
- data/lib/aws/rds/config.rb +18 -0
- data/lib/aws/rds/db_instance.rb +201 -0
- data/lib/aws/rds/db_instance_collection.rb +75 -0
- data/lib/aws/rds/db_snapshot.rb +163 -0
- data/lib/aws/rds/db_snapshot_collection.rb +89 -0
- data/lib/aws/rds/errors.rb +22 -0
- data/lib/aws/rds/request.rb +23 -0
- data/lib/aws/s3/bucket_tag_collection.rb +1 -1
- data/lib/aws/s3/client.rb +4 -2
- data/lib/aws/s3/errors.rb +0 -1
- data/lib/aws/s3/object_collection.rb +40 -22
- data/lib/aws/s3/object_version.rb +7 -2
- data/lib/aws/s3/request.rb +1 -1
- data/lib/aws/s3/s3_object.rb +35 -11
- data/lib/aws/version.rb +1 -1
- metadata +33 -2
@@ -0,0 +1,18 @@
|
|
1
|
+
# Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
5
|
+
# the License is located at
|
6
|
+
#
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
8
|
+
#
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
12
|
+
# language governing permissions and limitations under the License.
|
13
|
+
|
14
|
+
AWS::Core::Configuration.module_eval do
|
15
|
+
|
16
|
+
add_service 'CloudSearch', 'cloud_search', 'cloudsearch.us-east-1.amazonaws.com'
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
5
|
+
# the License is located at
|
6
|
+
#
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
8
|
+
#
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
12
|
+
# language governing permissions and limitations under the License.
|
13
|
+
|
14
|
+
module AWS
|
15
|
+
class CloudSearch
|
16
|
+
module Errors
|
17
|
+
|
18
|
+
extend Core::LazyErrorClasses
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
5
|
+
# the License is located at
|
6
|
+
#
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
8
|
+
#
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
12
|
+
# language governing permissions and limitations under the License.
|
13
|
+
|
14
|
+
module AWS
|
15
|
+
class CloudSearch
|
16
|
+
|
17
|
+
# @private
|
18
|
+
class Request < Core::Http::Request
|
19
|
+
include Core::Signature::Version2
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
@@ -23,7 +23,7 @@ module AWS
|
|
23
23
|
# @attr_reader [Boolean] enabled Indicates whether actions
|
24
24
|
# should be executed during any changes to the alarm's state.
|
25
25
|
#
|
26
|
-
# @attr_reader [Array<String>]
|
26
|
+
# @attr_reader [Array<String>] alarm_actions The list of actions to execute
|
27
27
|
# when this alarm transitions into an ALARM state from any other
|
28
28
|
# state.
|
29
29
|
#
|
@@ -106,7 +106,7 @@ module AWS
|
|
106
106
|
options[:period] ||= 60
|
107
107
|
|
108
108
|
resp = client.get_metric_statistics(options)
|
109
|
-
|
109
|
+
|
110
110
|
MetricStatistics.new(self, resp[:label], resp[:datapoints])
|
111
111
|
|
112
112
|
end
|
@@ -120,8 +120,8 @@ module AWS
|
|
120
120
|
|
121
121
|
def resource_identifiers
|
122
122
|
[
|
123
|
-
[:namespace, namespace],
|
124
|
-
[:
|
123
|
+
[:namespace, namespace],
|
124
|
+
[:metric_name, metric_name],
|
125
125
|
[:dimensions, dimensions],
|
126
126
|
]
|
127
127
|
end
|
data/lib/aws/core.rb
CHANGED
@@ -23,12 +23,16 @@ require 'aws/core/autoloader'
|
|
23
23
|
#
|
24
24
|
# * {AWS::AutoScaling}
|
25
25
|
# * {AWS::CloudFormation}
|
26
|
+
# * {AWS::CloudSearch}
|
26
27
|
# * {AWS::CloudWatch}
|
27
28
|
# * {AWS::DynamoDB}
|
28
29
|
# * {AWS::EC2}
|
30
|
+
# * {AWS::ElastiCache}
|
31
|
+
# * {AWS::ElasticBeanstalk}
|
29
32
|
# * {AWS::ELB}
|
30
33
|
# * {AWS::EMR}
|
31
34
|
# * {AWS::IAM}
|
35
|
+
# * {AWS::RDS}
|
32
36
|
# * {AWS::Route53}
|
33
37
|
# * {AWS::S3}
|
34
38
|
# * {AWS::SNS}
|
@@ -221,6 +225,9 @@ module AWS
|
|
221
225
|
# @option options [String] :cloud_formation_endpoint ('cloudformation.us-east-1.amazonaws.com')
|
222
226
|
# The service endpoint for AWS CloudFormation.
|
223
227
|
#
|
228
|
+
# @option options [String] :cloud_search ('cloudsearch.us-east-1.amazonaws.com')
|
229
|
+
# The service endpoint for Amazon CloudSearch.
|
230
|
+
#
|
224
231
|
# @option options [String] :cloud_watch_endpoint ('monitoring.us-east-1.amazonaws.com')
|
225
232
|
# The service endpoint for Amazon CloudWatch.
|
226
233
|
#
|
@@ -228,7 +235,7 @@ module AWS
|
|
228
235
|
# {DynamoDB} will convert number values returned by {DynamoDB::Client}
|
229
236
|
# from strings to BigDecimal objects. If you set this to +false+,
|
230
237
|
# they will be convereted from strings into floats (with a potential
|
231
|
-
#
|
238
|
+
# loss of precision).
|
232
239
|
#
|
233
240
|
# @option options [String] :dynamo_db_endpoint ('dynamodb.amazonaws.com')
|
234
241
|
# The service endpoint for Amazon DynamoDB.
|
@@ -240,6 +247,11 @@ module AWS
|
|
240
247
|
# @option options [String] :ec2_endpoint ('ec2.amazonaws.com') The
|
241
248
|
# service endpoint for Amazon EC2.
|
242
249
|
#
|
250
|
+
# @option options [String] :elasticache_endpoint ('elasticache.us-east-1.amazonaws.com')
|
251
|
+
#
|
252
|
+
# @option options [String] :elastic_beanstalk_endpoint ('elasticbeanstalk.us-east-1.amazonaws.com')
|
253
|
+
# The service endpoint for AWS Elastic Beanstalk.
|
254
|
+
#
|
243
255
|
# @option options [String] :elb_endpoint ('elasticloadbalancing.us-east-1.amazonaws.com')
|
244
256
|
# The service endpoint for Elastic Load Balancing.
|
245
257
|
#
|
@@ -310,12 +322,15 @@ module AWS
|
|
310
322
|
#
|
311
323
|
# AWS.config(:proxy_uri => 'https://user:password@my.proxy:443/path?query')
|
312
324
|
#
|
313
|
-
# @option options [String] :
|
314
|
-
# service endpoint for Amazon
|
325
|
+
# @option options [String] :rds_endpoint ('rds.us-east-1.amazonaws.com')
|
326
|
+
# The service endpoint for Amazon Relational Database Service (RDS).
|
315
327
|
#
|
316
328
|
# @option options [String] :route_53_endpoint ('route53.amazonaws.com')
|
317
329
|
# The service endpoint for Amazon Route 53.
|
318
330
|
#
|
331
|
+
# @option options [String] :s3_endpoint ('s3.amazonaws.com') The
|
332
|
+
# service endpoint for Amazon S3.
|
333
|
+
#
|
319
334
|
# @option options [Boolean] :s3_force_path_style (false) When
|
320
335
|
# +true+, requests will always use path style. This can be useful
|
321
336
|
# for testing environments.
|
@@ -69,6 +69,9 @@ module AWS
|
|
69
69
|
# @attr_reader [String] cloud_formation_endpoint ('cloudformation.us-east-1.amazonaws.com')
|
70
70
|
# The service endpoint for AWS CloudFormation.
|
71
71
|
#
|
72
|
+
# @attr_reader [String] cloud_search ('cloudsearch.us-east-1.amazonaws.com')
|
73
|
+
# The service endpoint for Amazon CloudSearch.
|
74
|
+
#
|
72
75
|
# @attr_reader [String] cloud_watch_endpoint ('monitoring.us-east-1.amazonaws.com')
|
73
76
|
# The service endpoint for Amazon CloudWatch.
|
74
77
|
#
|
@@ -88,6 +91,11 @@ module AWS
|
|
88
91
|
# @attr_reader [String] ec2_endpoint ('ec2.amazonaws.com')
|
89
92
|
# The service endpoint for Amazon EC2.
|
90
93
|
#
|
94
|
+
# @attr_reader [String] elasticache_endpoint ('elasticache.us-east-1.amazonaws.com')
|
95
|
+
#
|
96
|
+
# @attr_reader [String] elastic_beanstalk_endpoint ('elasticbeanstalk.us-east-1.amazonaws.com')
|
97
|
+
# The service endpoint for AWS Elastic Beanstalk.
|
98
|
+
#
|
91
99
|
# @attr_reader [String] elb_endpoint ('elasticloadbalancing.us-east-1.amazonaws.com')
|
92
100
|
# The service endpoint for Elastic Load Balancing.
|
93
101
|
#
|
@@ -130,6 +138,9 @@ module AWS
|
|
130
138
|
# @attr_reader [URI,nil] route_53_endpoint ('route53.amazonaws.com')
|
131
139
|
# The service endpoint for Amazon Route 53.
|
132
140
|
#
|
141
|
+
# @attr_reader [URI,nil] rds_endpoint ('rds.us-east-1.amazonaws.com')
|
142
|
+
# The service endpoint for Amazon Relational Database Service (RDS).
|
143
|
+
#
|
133
144
|
# @attr_reader [String] s3_endpoint ('s3.amazonaws.com')
|
134
145
|
# The service endpoint for Amazon S3.
|
135
146
|
#
|
data/lib/aws/core/inflection.rb
CHANGED
@@ -48,7 +48,7 @@ module AWS
|
|
48
48
|
options = options.dup
|
49
49
|
@config = (options.delete(:config) || AWS.config)
|
50
50
|
@config = @config.with(options)
|
51
|
-
@client = @config.send(Inflection.ruby_name(self.class.
|
51
|
+
@client = @config.send(Inflection.ruby_name(self.class.name.split('::').last) + '_client')
|
52
52
|
end
|
53
53
|
|
54
54
|
# @return [String]
|
@@ -13,7 +13,7 @@
|
|
13
13
|
|
14
14
|
module AWS
|
15
15
|
class DynamoDB
|
16
|
-
|
16
|
+
|
17
17
|
# A utility class for configuring a list of tables, attributes and
|
18
18
|
# items to request information for.
|
19
19
|
#
|
@@ -31,7 +31,7 @@ module AWS
|
|
31
31
|
@request_items = {}
|
32
32
|
end
|
33
33
|
|
34
|
-
# Add a list of items to fetch in this batch.
|
34
|
+
# Add a list of items to fetch in this batch.
|
35
35
|
#
|
36
36
|
# @param [Table,String] table The name of the table to fetch attributes
|
37
37
|
# from.
|
@@ -61,9 +61,15 @@ module AWS
|
|
61
61
|
#
|
62
62
|
# batch_get.table('mytable', :all, [%w(hk1 rk1), %w(hk1 rk2), ...])
|
63
63
|
#
|
64
|
+
# @param [Hash] options
|
65
|
+
#
|
66
|
+
# @option options [Boolean] :consistent_read (false) When +true+, items
|
67
|
+
# are read from this table with consistent reads. When +false+, reads
|
68
|
+
# are eventually consistent.
|
69
|
+
#
|
64
70
|
# @return [nil]
|
65
71
|
#
|
66
|
-
def table table, attributes, items
|
72
|
+
def table table, attributes, items, options = {}
|
67
73
|
|
68
74
|
table = table.is_a?(Table) ? table.name : table.to_s
|
69
75
|
|
@@ -72,7 +78,7 @@ module AWS
|
|
72
78
|
keys = items.collect do |item|
|
73
79
|
case item
|
74
80
|
when Item then item_key_hash(item)
|
75
|
-
when Array
|
81
|
+
when Array
|
76
82
|
{
|
77
83
|
:hash_key_element => format_attribute_value(item[0]),
|
78
84
|
:range_key_element => format_attribute_value(item[1]),
|
@@ -85,8 +91,8 @@ module AWS
|
|
85
91
|
## ensure we don't receive 2 different lists of attributes for
|
86
92
|
## the same table
|
87
93
|
|
88
|
-
if
|
89
|
-
@request_items.has_key?(table) and
|
94
|
+
if
|
95
|
+
@request_items.has_key?(table) and
|
90
96
|
@request_items[table][:attributes_to_get] != attributes
|
91
97
|
then
|
92
98
|
msg = "When batch getting attributes, you may only provide " +
|
@@ -97,9 +103,10 @@ module AWS
|
|
97
103
|
|
98
104
|
## merge attributes and items with the request items
|
99
105
|
|
100
|
-
@request_items[table] ||= { :keys => [] }
|
106
|
+
@request_items[table] ||= { :keys => [] }
|
101
107
|
@request_items[table][:attributes_to_get] = attributes if attributes
|
102
108
|
@request_items[table][:keys] += keys
|
109
|
+
@request_items[table].merge!(options)
|
103
110
|
|
104
111
|
nil
|
105
112
|
|
@@ -123,7 +130,7 @@ module AWS
|
|
123
130
|
# batch_get.table('mytable', ['name', 'size'], items)
|
124
131
|
#
|
125
132
|
# @param [Item] items One or more {Item} objects to fetch attributes
|
126
|
-
# for. These items may come from any number of different tables.
|
133
|
+
# for. These items may come from any number of different tables.
|
127
134
|
#
|
128
135
|
def items attributes, *items
|
129
136
|
[items].flatten.each do |item|
|
@@ -156,7 +163,7 @@ module AWS
|
|
156
163
|
end
|
157
164
|
|
158
165
|
# Yields only attribute hashes. This removes the outer hash that
|
159
|
-
# normally provides the :table_name and :attributes keys. This is
|
166
|
+
# normally provides the :table_name and :attributes keys. This is
|
160
167
|
# useful when your batch get requested items from a single table.
|
161
168
|
def each_attributes
|
162
169
|
each do |table_name, attributes|
|
@@ -166,16 +173,16 @@ module AWS
|
|
166
173
|
|
167
174
|
protected
|
168
175
|
def convert_unprocessed_keys response
|
169
|
-
|
176
|
+
|
170
177
|
return nil if response.data['UnprocessedKeys'].empty?
|
171
|
-
|
178
|
+
|
172
179
|
# convert the json response keys into symbolized keys
|
173
180
|
str2sym = lambda do |key_desc|
|
174
181
|
type, value = key_desc.to_a.flatten
|
175
182
|
case type
|
176
183
|
when "S" then { :s => value }
|
177
184
|
when "N" then { :n => value }
|
178
|
-
else
|
185
|
+
else
|
179
186
|
raise "unhandled key type: #{type}"
|
180
187
|
end
|
181
188
|
end
|
data/lib/aws/dynamo_db/client.rb
CHANGED
@@ -11,6 +11,8 @@
|
|
11
11
|
# ANY KIND, either express or implied. See the License for the specific
|
12
12
|
# language governing permissions and limitations under the License.
|
13
13
|
|
14
|
+
require 'zlib'
|
15
|
+
|
14
16
|
module AWS
|
15
17
|
class DynamoDB
|
16
18
|
|
@@ -66,6 +68,7 @@ module AWS
|
|
66
68
|
# * +:ns+ - (Array<String>) A set of numbers.
|
67
69
|
# * +:bs+ - (Array<String>) A set of binary attributes.
|
68
70
|
# * +:attributes_to_get+ - (Array<String>)
|
71
|
+
# * +:consistent_read+ - (Boolean)
|
69
72
|
# @return [Core::Response]
|
70
73
|
# The #data method of the response object returns
|
71
74
|
# a hash with the following structure:
|
@@ -95,6 +98,7 @@ module AWS
|
|
95
98
|
# * +NS+ - (Array<String>)
|
96
99
|
# * +BS+ - (Array<Blob>)
|
97
100
|
# * +AttributesToGet+ - (Array<String>)
|
101
|
+
# * +ConsistentRead+ - (Boolean)
|
98
102
|
|
99
103
|
# @!method batch_write_item(options = {})
|
100
104
|
# Calls the BatchWriteItem API operation.
|
@@ -839,14 +843,19 @@ module AWS
|
|
839
843
|
def extract_error_details response
|
840
844
|
if response.http_response.status == 413
|
841
845
|
['RequestEntityTooLarge', 'Request entity too large']
|
846
|
+
elsif crc32_is_valid?(response) == false
|
847
|
+
['CRC32CheckFailed', 'CRC32 integrity check failed']
|
842
848
|
else
|
843
849
|
super
|
844
850
|
end
|
845
851
|
end
|
846
852
|
|
847
853
|
def retryable_error? response
|
848
|
-
|
854
|
+
case response.error
|
855
|
+
when Errors::ProvisionedThroughputExceededException
|
849
856
|
config.dynamo_db_retry_throughput_errors?
|
857
|
+
when Errors::CRC32CheckFailed
|
858
|
+
true
|
850
859
|
else
|
851
860
|
super
|
852
861
|
end
|
@@ -873,6 +882,23 @@ module AWS
|
|
873
882
|
|
874
883
|
end
|
875
884
|
|
885
|
+
private
|
886
|
+
|
887
|
+
# @return [Boolean] whether the CRC32 response header matches the body.
|
888
|
+
# @return [nil] if no CRC32 header is present or we are not verifying CRC32
|
889
|
+
def crc32_is_valid? response
|
890
|
+
return nil unless config.dynamo_db_crc32
|
891
|
+
if crcs = response.http_response.headers['x-amz-crc32']
|
892
|
+
crcs[0].to_i == calculate_crc32(response)
|
893
|
+
else
|
894
|
+
nil
|
895
|
+
end
|
896
|
+
end
|
897
|
+
|
898
|
+
def calculate_crc32 response
|
899
|
+
Zlib.crc32(response.http_response.body)
|
900
|
+
end
|
901
|
+
|
876
902
|
end
|
877
903
|
end
|
878
904
|
end
|
data/lib/aws/dynamo_db/config.rb
CHANGED
@@ -75,10 +75,10 @@ module AWS
|
|
75
75
|
# end
|
76
76
|
#
|
77
77
|
# If you want item data objects with all attributes just call select
|
78
|
-
# without
|
78
|
+
# without a list of attributes (#select still accepts options).
|
79
79
|
#
|
80
80
|
# # request a maximum of 10 items from Amazon DynamoDB
|
81
|
-
# table.items.select
|
81
|
+
# table.items.select(:limit => 10).each do |item_data|
|
82
82
|
# item_data.attributes #=> { 'id' => 'abc', 'category' => 'foo', ... }
|
83
83
|
# end
|
84
84
|
#
|
data/lib/aws/dynamo_db/table.rb
CHANGED
@@ -390,14 +390,20 @@ module AWS
|
|
390
390
|
# * an array of hash and range key value pairs (nested arrays)
|
391
391
|
# * an array of {Item} objects
|
392
392
|
#
|
393
|
+
# @param [Hash] options
|
394
|
+
#
|
395
|
+
# @option options [Boolean] :consistent_read (false) When +true+, items
|
396
|
+
# are read from this table with consistent reads. When +false+, reads
|
397
|
+
# are eventually consistent.
|
398
|
+
#
|
393
399
|
# @yield [Hash] Yields a hash of attributes for each item.
|
394
400
|
#
|
395
401
|
# @return [Enumerable] Returns an enumerable object that yields
|
396
402
|
# hashes of attributes.
|
397
403
|
#
|
398
|
-
def batch_get attributes, items, &block
|
404
|
+
def batch_get attributes, items, options = {}, &block
|
399
405
|
batch = BatchGet.new(:config => config)
|
400
|
-
batch.table(name, attributes, items)
|
406
|
+
batch.table(name, attributes, items, options)
|
401
407
|
enum = batch.to_enum(:each_attributes)
|
402
408
|
block_given? ? enum.each(&block) : enum
|
403
409
|
end
|
@@ -24,6 +24,8 @@ module AWS
|
|
24
24
|
:product_description,
|
25
25
|
:instance_tenancy,
|
26
26
|
:currency_code,
|
27
|
+
:recurring_charges,
|
28
|
+
:offering_type,
|
27
29
|
]
|
28
30
|
|
29
31
|
include TaggedItem
|
@@ -48,7 +50,7 @@ module AWS
|
|
48
50
|
|
49
51
|
def purchase options = {}
|
50
52
|
options[:instance_count] = 1 unless options[:instance_count]
|
51
|
-
options[:reserved_instances_offering_id] = id
|
53
|
+
options[:reserved_instances_offering_id] = id
|
52
54
|
response = client.purchase_reserved_instances_offering(options)
|
53
55
|
ReservedInstances.new(response.reserved_instances_id, :config => config)
|
54
56
|
end
|