aws-sdk 1.5.7 → 1.5.8
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/aws.rb +2 -0
- data/lib/aws/api_config/EMR-2009-03-31.yml +349 -0
- data/lib/aws/auto_scaling.rb +8 -8
- data/lib/aws/auto_scaling/group.rb +2 -2
- data/lib/aws/auto_scaling/instance.rb +1 -1
- data/lib/aws/auto_scaling/launch_configuration.rb +4 -4
- data/lib/aws/auto_scaling/launch_configuration_collection.rb +11 -11
- data/lib/aws/auto_scaling/scaling_policy.rb +1 -1
- data/lib/aws/auto_scaling/scheduled_action.rb +1 -1
- data/lib/aws/auto_scaling/tag.rb +3 -3
- data/lib/aws/cloud_formation/stack.rb +7 -7
- data/lib/aws/cloud_formation/stack_collection.rb +13 -13
- data/lib/aws/cloud_formation/stack_event_collection.rb +2 -2
- data/lib/aws/cloud_formation/stack_resource.rb +1 -1
- data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +10 -18
- data/lib/aws/cloud_formation/stack_summary_collection.rb +12 -16
- data/lib/aws/core.rb +7 -1
- data/lib/aws/core/collection.rb +12 -12
- data/lib/aws/core/configuration.rb +4 -0
- data/lib/aws/core/credential_providers.rb +23 -23
- data/lib/aws/core/inflection.rb +2 -0
- data/lib/aws/core/model.rb +6 -6
- data/lib/aws/core/policy.rb +102 -102
- data/lib/aws/core/resource.rb +81 -80
- data/lib/aws/core/response.rb +23 -23
- data/lib/aws/core/xml/frame.rb +4 -2
- data/lib/aws/dynamo_db/resource.rb +2 -2
- data/lib/aws/dynamo_db/table.rb +5 -5
- data/lib/aws/ec2/availability_zone.rb +2 -3
- data/lib/aws/ec2/export_task.rb +7 -7
- data/lib/aws/ec2/image.rb +5 -5
- data/lib/aws/ec2/instance.rb +40 -40
- data/lib/aws/ec2/instance_collection.rb +5 -2
- data/lib/aws/ec2/key_pair.rb +1 -1
- data/lib/aws/ec2/network_acl.rb +1 -1
- data/lib/aws/ec2/network_interface.rb +2 -2
- data/lib/aws/ec2/region.rb +1 -1
- data/lib/aws/ec2/resource.rb +1 -1
- data/lib/aws/ec2/route_table.rb +1 -1
- data/lib/aws/ec2/security_group.rb +4 -4
- data/lib/aws/ec2/subnet.rb +1 -1
- data/lib/aws/ec2/volume.rb +1 -1
- data/lib/aws/ec2/vpn_connection.rb +1 -1
- data/lib/aws/ec2/vpn_gateway.rb +2 -2
- data/lib/aws/elb/listener_opts.rb +1 -1
- data/lib/aws/elb/load_balancer.rb +5 -5
- data/lib/aws/elb/load_balancer_collection.rb +17 -9
- data/lib/aws/elb/load_balancer_policy.rb +2 -2
- data/lib/aws/emr.rb +84 -0
- data/lib/aws/emr/client.rb +309 -0
- data/lib/aws/emr/config.rb +18 -0
- data/lib/aws/emr/errors.rb +22 -0
- data/lib/aws/emr/instance_group.rb +138 -0
- data/lib/aws/emr/instance_group_collection.rb +82 -0
- data/lib/aws/emr/job_flow.rb +296 -0
- data/lib/aws/emr/job_flow_collection.rb +185 -0
- data/lib/aws/emr/request.rb +23 -0
- data/lib/aws/iam/access_key.rb +1 -1
- data/lib/aws/iam/account_alias_collection.rb +2 -2
- data/lib/aws/iam/client.rb +1 -1
- data/lib/aws/iam/group.rb +2 -2
- data/lib/aws/iam/policy_collection.rb +1 -1
- data/lib/aws/iam/server_certificate.rb +2 -2
- data/lib/aws/iam/signing_certificate.rb +1 -1
- data/lib/aws/iam/user.rb +2 -2
- data/lib/aws/iam/virtual_mfa_device.rb +1 -1
- data/lib/aws/s3/client.rb +57 -55
- data/lib/aws/s3/config.rb +2 -0
- data/lib/aws/s3/request.rb +14 -6
- data/lib/aws/simple_email_service/identity.rb +9 -7
- data/lib/aws/simple_workflow/domain.rb +1 -1
- data/lib/aws/simple_workflow/resource.rb +2 -2
- data/lib/aws/simple_workflow/workflow_execution.rb +5 -5
- data/lib/aws/sns/subscription_collection.rb +33 -35
- data/lib/aws/sns/topic_collection.rb +13 -18
- data/lib/aws/sns/topic_subscription_collection.rb +8 -9
- data/lib/aws/sqs/queue.rb +4 -4
- data/lib/aws/sqs/queue_collection.rb +17 -13
- metadata +13 -4
- data/lib/aws/cloud_formation/stack_summary.rb +0 -71
data/lib/aws/core/resource.rb
CHANGED
@@ -17,69 +17,69 @@ module AWS
|
|
17
17
|
|
18
18
|
# @private
|
19
19
|
class Resource
|
20
|
-
|
20
|
+
|
21
21
|
include Model
|
22
22
|
include Cacheable
|
23
|
-
|
23
|
+
|
24
24
|
# @private
|
25
25
|
class NotFound < StandardError; end
|
26
|
-
|
26
|
+
|
27
27
|
# @private
|
28
28
|
def initialize *args
|
29
|
-
|
29
|
+
|
30
30
|
super
|
31
|
-
|
31
|
+
|
32
32
|
# cache static attributes passed into options
|
33
|
-
|
33
|
+
|
34
34
|
options = args.last.is_a?(Hash) ? args.last : {}
|
35
35
|
options.each_pair do |opt_name,opt_value|
|
36
|
-
if
|
36
|
+
if
|
37
37
|
self.class.attributes.has_key?(opt_name) and
|
38
38
|
self.class.attributes[opt_name].static?
|
39
39
|
then
|
40
40
|
static_attributes[opt_name] = opt_value
|
41
41
|
end
|
42
42
|
end
|
43
|
-
|
43
|
+
|
44
44
|
end
|
45
|
-
|
45
|
+
|
46
46
|
# @return [String] Returns a simple string representation of this resource.
|
47
47
|
def inspect
|
48
|
-
|
48
|
+
|
49
49
|
identifiers = []
|
50
50
|
resource_identifiers.each do |key, value|
|
51
|
-
if attr = self.class.attributes.values.find{|a| a.
|
51
|
+
if attr = self.class.attributes.values.find{|a| a.from == key }
|
52
52
|
identifiers << "#{attr.name}:#{value}"
|
53
53
|
else
|
54
54
|
identifiers << "#{key}:#{value}"
|
55
55
|
end
|
56
56
|
end
|
57
|
-
|
57
|
+
|
58
58
|
"<#{self::class} #{identifiers.join(' ')}>"
|
59
|
-
|
59
|
+
|
60
60
|
end
|
61
|
-
|
61
|
+
|
62
62
|
# @return [Boolean] Returns true if the objects references the same
|
63
63
|
# AWS resource.
|
64
64
|
def eql? other
|
65
|
-
other.kind_of?(self.class) and
|
65
|
+
other.kind_of?(self.class) and
|
66
66
|
other.resource_identifiers == resource_identifiers
|
67
67
|
end
|
68
68
|
alias_method :==, :eql?
|
69
|
-
|
69
|
+
|
70
70
|
# @private
|
71
71
|
protected
|
72
72
|
def get_resource attr_name
|
73
73
|
raise NotImplementedError
|
74
74
|
end
|
75
|
-
|
75
|
+
|
76
76
|
# @private
|
77
77
|
protected
|
78
78
|
def update_resource attr, value
|
79
79
|
raise NotImplementedError
|
80
80
|
end
|
81
|
-
|
82
|
-
# Overide this method is subclasses of Resource. This method should
|
81
|
+
|
82
|
+
# Overide this method is subclasses of Resource. This method should
|
83
83
|
# return an array of identifying key/value pairs.
|
84
84
|
#
|
85
85
|
# # @private
|
@@ -87,37 +87,37 @@ module AWS
|
|
87
87
|
# def resource_identifiers
|
88
88
|
# [[:user_name, name]]
|
89
89
|
# end
|
90
|
-
#
|
90
|
+
#
|
91
91
|
# @private
|
92
92
|
protected
|
93
93
|
def resource_identifiers
|
94
94
|
raise NotImplementedError
|
95
95
|
end
|
96
|
-
|
96
|
+
|
97
97
|
# @protected
|
98
98
|
protected
|
99
99
|
def resource_options(additional = {})
|
100
100
|
Hash[resource_identifiers].merge(additional)
|
101
101
|
end
|
102
|
-
|
102
|
+
|
103
103
|
# @private
|
104
104
|
protected
|
105
105
|
def local_cache_key
|
106
106
|
resource_identifiers.collect{|name,value| value.to_s }.join(":")
|
107
107
|
end
|
108
|
-
|
108
|
+
|
109
109
|
# @private
|
110
110
|
protected
|
111
111
|
def static_attributes
|
112
112
|
@static_attributes ||= {}
|
113
113
|
end
|
114
|
-
|
114
|
+
|
115
115
|
# @private
|
116
116
|
protected
|
117
117
|
def ruby_name
|
118
118
|
@ruby_name ||= Inflection.ruby_name(self.class.name)
|
119
119
|
end
|
120
|
-
|
120
|
+
|
121
121
|
# @private
|
122
122
|
public
|
123
123
|
def attributes_from_response resp
|
@@ -137,7 +137,7 @@ module AWS
|
|
137
137
|
|
138
138
|
# merge the attributes together into a single hash
|
139
139
|
attributes = attributes.inject({}) {|hash,attribs| hash.merge(attribs) }
|
140
|
-
|
140
|
+
|
141
141
|
# cache static attributes
|
142
142
|
attributes.each_pair do |attr_name,value|
|
143
143
|
if self.class.attributes[attr_name].static?
|
@@ -146,9 +146,9 @@ module AWS
|
|
146
146
|
end
|
147
147
|
|
148
148
|
attributes
|
149
|
-
|
149
|
+
|
150
150
|
end
|
151
|
-
|
151
|
+
|
152
152
|
# @private
|
153
153
|
protected
|
154
154
|
def cache_static_attributes request_type, resp_obj
|
@@ -161,7 +161,7 @@ module AWS
|
|
161
161
|
end
|
162
162
|
end
|
163
163
|
end
|
164
|
-
|
164
|
+
|
165
165
|
class << self
|
166
166
|
|
167
167
|
# @private
|
@@ -169,7 +169,7 @@ module AWS
|
|
169
169
|
class_eval <<-METHODS
|
170
170
|
|
171
171
|
def self.#{type_name}_attributes
|
172
|
-
@#{type_name}_attributes ||= {}
|
172
|
+
@#{type_name}_attributes ||= {}
|
173
173
|
end
|
174
174
|
|
175
175
|
def self.#{type_name}_attribute name, options = {}, &block
|
@@ -179,33 +179,33 @@ module AWS
|
|
179
179
|
|
180
180
|
METHODS
|
181
181
|
end
|
182
|
-
|
182
|
+
|
183
183
|
# @private
|
184
184
|
def new_from request_type, resp_obj, *args
|
185
|
-
resource = new(*args)
|
185
|
+
resource = new(*args)
|
186
186
|
resource.send(:cache_static_attributes, request_type, resp_obj)
|
187
187
|
resource
|
188
188
|
end
|
189
|
-
|
189
|
+
|
190
190
|
# @private
|
191
191
|
def attributes
|
192
192
|
@attributes ||= Hash.new do |hash,attr_name|
|
193
193
|
raise "uknown attribute #{attr_name}"
|
194
194
|
end
|
195
195
|
end
|
196
|
-
|
196
|
+
|
197
197
|
# @private
|
198
198
|
def attribute_providers
|
199
199
|
@attribute_providers ||= []
|
200
200
|
end
|
201
|
-
|
201
|
+
|
202
202
|
# @private
|
203
203
|
def attribute_providers_for request_type
|
204
204
|
attribute_providers.select do |provider|
|
205
205
|
provider.request_types.include?(request_type)
|
206
206
|
end
|
207
207
|
end
|
208
|
-
|
208
|
+
|
209
209
|
# @private
|
210
210
|
protected
|
211
211
|
def attribute name, options = {}, &block
|
@@ -213,33 +213,34 @@ module AWS
|
|
213
213
|
attr.instance_eval(&block) if block_given?
|
214
214
|
define_attribute_getter(attr)
|
215
215
|
define_attribute_setter(attr) if attr.mutable?
|
216
|
+
alias_method(options[:alias], name) if options[:alias]
|
216
217
|
attributes[attr.name] = attr
|
217
218
|
end
|
218
|
-
|
219
|
+
|
219
220
|
# @private
|
220
221
|
protected
|
221
222
|
def mutable_attribute name, options = {}, &block
|
222
223
|
attribute(name, options.merge(:mutable => true), &block)
|
223
224
|
end
|
224
|
-
|
225
|
+
|
225
226
|
# @private
|
226
227
|
protected
|
227
228
|
def define_attribute_getter attribute
|
228
229
|
define_method(attribute.name) do
|
229
|
-
|
230
|
-
return static_attributes[attribute.name] if
|
230
|
+
|
231
|
+
return static_attributes[attribute.name] if
|
231
232
|
static_attributes.has_key?(attribute.name)
|
232
|
-
|
233
|
+
|
233
234
|
begin
|
234
235
|
retrieve_attribute(attribute) { get_resource(attribute) }
|
235
236
|
rescue Cacheable::NoData => e
|
236
237
|
name = ruby_name.tr("_", " ")
|
237
238
|
raise NotFound, "unable to find the #{name}"
|
238
239
|
end
|
239
|
-
|
240
|
+
|
240
241
|
end
|
241
242
|
end
|
242
|
-
|
243
|
+
|
243
244
|
# @private
|
244
245
|
protected
|
245
246
|
def define_attribute_setter attribute
|
@@ -253,7 +254,7 @@ module AWS
|
|
253
254
|
value
|
254
255
|
end
|
255
256
|
end
|
256
|
-
|
257
|
+
|
257
258
|
# @private
|
258
259
|
protected
|
259
260
|
def populates_from *request_types, &block
|
@@ -262,7 +263,7 @@ module AWS
|
|
262
263
|
provider.provides(*attributes.keys)
|
263
264
|
provider
|
264
265
|
end
|
265
|
-
|
266
|
+
|
266
267
|
# @private
|
267
268
|
protected
|
268
269
|
def provider *request_types, &block
|
@@ -270,100 +271,100 @@ module AWS
|
|
270
271
|
if block_given?
|
271
272
|
yield(provider)
|
272
273
|
end
|
273
|
-
attribute_providers << provider
|
274
|
+
attribute_providers << provider
|
274
275
|
provider
|
275
276
|
end
|
276
|
-
|
277
|
+
|
277
278
|
end
|
278
|
-
|
279
|
+
|
279
280
|
# @private
|
280
281
|
class Attribute
|
281
|
-
|
282
|
+
|
282
283
|
def initialize name, options = {}
|
283
284
|
@name = name
|
284
285
|
@options = options
|
285
286
|
@request_types = []
|
286
287
|
end
|
287
|
-
|
288
|
+
|
288
289
|
attr_reader :name
|
289
|
-
|
290
|
+
|
290
291
|
attr_reader :request_types
|
291
|
-
|
292
|
-
def
|
293
|
-
@
|
292
|
+
|
293
|
+
def from
|
294
|
+
@from ||= (@options[:from] || name)
|
294
295
|
end
|
295
|
-
|
296
|
+
|
296
297
|
def set_as
|
297
|
-
@set_as ||= (@options[:set_as] || @options[:
|
298
|
+
@set_as ||= (@options[:set_as] || @options[:from] || name)
|
298
299
|
end
|
299
|
-
|
300
|
+
|
300
301
|
def mutable?
|
301
302
|
@options[:mutable] == true
|
302
303
|
end
|
303
|
-
|
304
|
+
|
304
305
|
def static?
|
305
306
|
@options[:static] == true
|
306
307
|
end
|
307
|
-
|
308
|
+
|
308
309
|
def translates_input &block
|
309
310
|
@input_translator = block
|
310
311
|
end
|
311
|
-
|
312
|
+
|
312
313
|
def translates_output options = {}, &block
|
313
314
|
@translates_nil = options[:nil]
|
314
315
|
@output_translator = block
|
315
316
|
end
|
316
|
-
|
317
|
+
|
317
318
|
def translate_input_value value
|
318
319
|
@input_translator ? @input_translator.call(value) : value
|
319
320
|
end
|
320
|
-
|
321
|
+
|
321
322
|
def translate_output_value value
|
322
|
-
|
323
|
+
|
323
324
|
# by default nil values are not translated
|
324
325
|
return nil if value.nil? and @translates_nil != true
|
325
|
-
|
326
|
+
|
326
327
|
case
|
327
328
|
when @options[:to_sym] then value.tr('-','_').downcase.to_sym
|
328
329
|
when @options[:timestamp] then Time.at(value.to_i)
|
329
330
|
when @output_translator then @output_translator.call(value)
|
330
331
|
else value
|
331
332
|
end
|
332
|
-
|
333
|
+
|
333
334
|
end
|
334
|
-
|
335
|
+
|
335
336
|
end
|
336
|
-
|
337
|
+
|
337
338
|
# @private
|
338
339
|
class AttributeProvider
|
339
|
-
|
340
|
+
|
340
341
|
def initialize klass, request_types
|
341
342
|
@klass = klass
|
342
343
|
@id = klass.attribute_providers.length
|
343
344
|
@request_types = request_types
|
344
345
|
@provides = {}
|
345
346
|
end
|
346
|
-
|
347
|
+
|
347
348
|
attr_reader :request_types
|
348
|
-
|
349
|
+
|
349
350
|
def find &block
|
350
351
|
@klass.send(:define_method, finder_method, &block)
|
351
352
|
end
|
352
|
-
|
353
|
+
|
353
354
|
def finder_method
|
354
355
|
"_find_in_#{request_types.join('_or_')}_response_#{@id}"
|
355
356
|
end
|
356
|
-
|
357
|
+
|
357
358
|
# Indicates that all of the the named attributes can be retrieved
|
358
359
|
# from an appropriate response object.
|
359
|
-
#
|
360
|
+
#
|
360
361
|
# @overload provides(*attr_names, options = {})
|
361
362
|
# @param [Symbol] attr_names A list of attributes provided
|
362
363
|
# @param [Hash] options
|
363
364
|
# @option options [Boolean] :value_wrapped (false) If true, then
|
364
365
|
# the value returned by the response object will also receive
|
365
366
|
# the message :value before it is translated and returned.
|
366
|
-
# @option options [Symbol] :
|
367
|
+
# @option options [Symbol] :from Defaults to the method named
|
367
368
|
# by the attribute. This is useful when you have two providers
|
368
369
|
# for the same attribute but their response object name
|
369
370
|
# them differently.
|
@@ -375,7 +376,7 @@ module AWS
|
|
375
376
|
@provides[attr_name] = options
|
376
377
|
end
|
377
378
|
end
|
378
|
-
|
379
|
+
|
379
380
|
def attributes_from_response resource, response
|
380
381
|
if response_object = resource.send(finder_method, response)
|
381
382
|
attributes_from_response_object(response_object)
|
@@ -383,14 +384,14 @@ module AWS
|
|
383
384
|
nil
|
384
385
|
end
|
385
386
|
end
|
386
|
-
|
387
|
+
|
387
388
|
def attributes_from_response_object resp_obj
|
388
|
-
|
389
|
+
|
389
390
|
@provides.inject({}) do |attributes,(attr_name,options)|
|
390
391
|
|
391
392
|
attr = @klass.attributes[attr_name]
|
392
393
|
|
393
|
-
methods = [options[:
|
394
|
+
methods = [options[:from] || attr.from].flatten
|
394
395
|
|
395
396
|
v = resp_obj
|
396
397
|
methods.each do |method|
|
@@ -403,9 +404,9 @@ module AWS
|
|
403
404
|
attributes.merge(attr_name => v)
|
404
405
|
|
405
406
|
end
|
406
|
-
|
407
|
+
|
407
408
|
end
|
408
|
-
|
409
|
+
|
409
410
|
end
|
410
411
|
end
|
411
412
|
end
|
data/lib/aws/core/response.rb
CHANGED
@@ -34,7 +34,7 @@ module AWS
|
|
34
34
|
# instance = response.data[:reservation_set].first[:instance_set].first
|
35
35
|
#
|
36
36
|
# instance[:status] #=> 'running'
|
37
|
-
#
|
37
|
+
#
|
38
38
|
# == Response Metadata
|
39
39
|
#
|
40
40
|
# In addition to the response data, there is additional information
|
@@ -53,34 +53,34 @@ module AWS
|
|
53
53
|
# response.http_response #=> #<AWS::Core::Http::Response>
|
54
54
|
#
|
55
55
|
class Response
|
56
|
-
|
56
|
+
|
57
57
|
include AsyncHandle
|
58
58
|
|
59
59
|
# @return [Hash] Returns the response data as a hash.
|
60
60
|
attr_accessor :data
|
61
|
-
|
62
|
-
# @return [Symbol] The name of the client request method that
|
61
|
+
|
62
|
+
# @return [Symbol] The name of the client request method that
|
63
63
|
# returned this response.
|
64
64
|
attr_accessor :request_type
|
65
|
-
|
65
|
+
|
66
66
|
# @return [Hash] Returns the hash of options passed to the client
|
67
67
|
# request method that generated this response.
|
68
68
|
attr_accessor :request_options
|
69
|
-
|
69
|
+
|
70
70
|
# @return [Core::Http::Request]
|
71
71
|
attr_accessor :http_request
|
72
|
-
|
72
|
+
|
73
73
|
# @return [Core::Http::Response]
|
74
74
|
attr_accessor :http_response
|
75
|
-
|
75
|
+
|
76
76
|
# @return [Boolean] true if the response was generated from a
|
77
77
|
# another cached response.
|
78
78
|
attr_accessor :cached
|
79
79
|
|
80
80
|
alias_method :cached?, :cached
|
81
|
-
|
81
|
+
|
82
82
|
# @return [AWS::Error,nil] Returns nil unless the request failed.
|
83
|
-
# Normally this will be nil unless you are using the Asynchronous
|
83
|
+
# Normally this will be nil unless you are using the Asynchronous
|
84
84
|
# interface.
|
85
85
|
attr_accessor :error
|
86
86
|
|
@@ -91,7 +91,7 @@ module AWS
|
|
91
91
|
# @return [Float] The total number of seconds taken to make the
|
92
92
|
# request and return the response.
|
93
93
|
attr_accessor :duration
|
94
|
-
|
94
|
+
|
95
95
|
# @param [Http::Request] http_request
|
96
96
|
# @param [Http::Response] http_response
|
97
97
|
def initialize http_request = nil, http_response = nil, &block
|
@@ -112,12 +112,12 @@ module AWS
|
|
112
112
|
def [] key
|
113
113
|
data[key]
|
114
114
|
end
|
115
|
-
|
115
|
+
|
116
116
|
# @return [Boolean] Returns true if there is no response error.
|
117
117
|
def successful?
|
118
118
|
error.nil?
|
119
119
|
end
|
120
|
-
|
120
|
+
|
121
121
|
# @return [Boolean] Returns true if the http request was throttled
|
122
122
|
# by AWS.
|
123
123
|
def throttled?
|
@@ -129,18 +129,18 @@ module AWS
|
|
129
129
|
false
|
130
130
|
end
|
131
131
|
end
|
132
|
-
|
132
|
+
|
133
133
|
# @return [Boolean] Returns true if the http request timed out.
|
134
134
|
def timeout?
|
135
135
|
http_response.timeout?
|
136
136
|
end
|
137
|
-
|
137
|
+
|
138
138
|
# @return [String]
|
139
139
|
# @private
|
140
140
|
def inspect
|
141
141
|
data.inspect
|
142
142
|
end
|
143
|
-
|
143
|
+
|
144
144
|
# @return [String]
|
145
145
|
# @private
|
146
146
|
def cache_key
|
@@ -151,7 +151,7 @@ module AWS
|
|
151
151
|
serialized_options
|
152
152
|
].join(":")
|
153
153
|
end
|
154
|
-
|
154
|
+
|
155
155
|
# Rebuilds the HTTP request using the block passed to the initializer.
|
156
156
|
# This is primarily used by the client when a request must be retried
|
157
157
|
# (throttling, server errors, socket errors, etc).
|
@@ -163,7 +163,7 @@ module AWS
|
|
163
163
|
protected
|
164
164
|
|
165
165
|
# @note The prefered method to get as response data is to use {#[]}.
|
166
|
-
#
|
166
|
+
#
|
167
167
|
# This provides a backwards-compat layer to the old response objects
|
168
168
|
# where each response value had a method extended onto this object.
|
169
169
|
# Now all response data is accessible as a hash.
|
@@ -174,17 +174,17 @@ module AWS
|
|
174
174
|
def method_missing *args, &block
|
175
175
|
Core::Data.new(data).send(*args, &block)
|
176
176
|
end
|
177
|
-
|
177
|
+
|
178
178
|
def serialized_options
|
179
179
|
serialize_options_hash(request_options)
|
180
180
|
end
|
181
|
-
|
181
|
+
|
182
182
|
def serialize_options_hash(hash)
|
183
183
|
"(" + hash.keys.sort_by(&:to_s).map do |key|
|
184
184
|
"#{key}=#{serialize_options_value(hash[key])}"
|
185
185
|
end.join(" ") + ")"
|
186
186
|
end
|
187
|
-
|
187
|
+
|
188
188
|
def serialize_options_value(value)
|
189
189
|
case value
|
190
190
|
when Hash then serialize_options_hash(value)
|
@@ -192,11 +192,11 @@ module AWS
|
|
192
192
|
else value.inspect
|
193
193
|
end
|
194
194
|
end
|
195
|
-
|
195
|
+
|
196
196
|
def serialize_options_array array
|
197
197
|
"[" + array.map{|v| serialize_options_value(v) }.join(" ") + "]"
|
198
198
|
end
|
199
|
-
|
199
|
+
|
200
200
|
end
|
201
201
|
end
|
202
202
|
end
|