aws-sdk 1.6.9 → 1.7.0
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.
- 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
|