aws-sdk 1.5.2 → 1.5.3
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/lib/aws/api_config/AutoScaling-2011-01-01.yml +6 -2
- data/lib/aws/api_config/{EC2-2012-04-01.yml → EC2-2012-06-01.yml} +12 -0
- data/lib/aws/api_config/STS-2011-06-15.yml +0 -4
- data/lib/aws/auto_scaling/client.rb +6 -2
- data/lib/aws/auto_scaling/launch_configuration.rb +8 -0
- data/lib/aws/auto_scaling/launch_configuration_collection.rb +14 -4
- data/lib/aws/auto_scaling/scaling_policy.rb +17 -0
- data/lib/aws/auto_scaling/scaling_policy_options.rb +2 -0
- data/lib/aws/core.rb +13 -11
- data/lib/aws/core/cacheable.rb +1 -1
- data/lib/aws/core/client.rb +40 -39
- data/lib/aws/core/configuration.rb +24 -15
- data/lib/aws/core/credential_providers.rb +395 -0
- data/lib/aws/core/http/net_http_handler.rb +1 -0
- data/lib/aws/core/http/request.rb +4 -4
- data/lib/aws/core/log_formatter.rb +2 -0
- data/lib/aws/core/signature/version_2.rb +18 -5
- data/lib/aws/core/signature/version_3.rb +10 -10
- data/lib/aws/core/signature/version_4.rb +13 -13
- data/lib/aws/core/signer.rb +46 -0
- data/lib/aws/dynamo_db/batch_write.rb +2 -1
- data/lib/aws/dynamo_db/client.rb +9 -24
- data/lib/aws/dynamo_db/table.rb +0 -23
- data/lib/aws/ec2/client.rb +19 -1
- data/lib/aws/ec2/image.rb +4 -4
- data/lib/aws/ec2/instance.rb +17 -5
- data/lib/aws/ec2/instance_collection.rb +16 -1
- data/lib/aws/errors.rb +40 -0
- data/lib/aws/s3/client.rb +2 -1
- data/lib/aws/s3/presigned_post.rb +10 -8
- data/lib/aws/s3/request.rb +7 -5
- data/lib/aws/s3/s3_object.rb +10 -9
- data/lib/aws/simple_email_service.rb +1 -1
- data/lib/aws/simple_email_service/identity_collection.rb +1 -1
- data/lib/aws/sts.rb +2 -6
- data/lib/aws/sts/client.rb +14 -17
- metadata +7 -9
- data/lib/aws/api_config/EC2-2011-12-15.yml +0 -3638
- data/lib/aws/core/default_signer.rb +0 -67
- data/lib/aws/core/session_signer.rb +0 -90
- data/lib/aws/core/signature/version_3_http.rb +0 -72
@@ -106,6 +106,10 @@
|
|
106
106
|
- :structure:
|
107
107
|
Enabled:
|
108
108
|
- :boolean
|
109
|
+
SpotPrice:
|
110
|
+
- :string
|
111
|
+
IamInstanceProfile:
|
112
|
+
- :string
|
109
113
|
:outputs:
|
110
114
|
:children:
|
111
115
|
CreateLaunchConfigurationResult:
|
@@ -455,7 +459,7 @@
|
|
455
459
|
member:
|
456
460
|
:rename: :alarms
|
457
461
|
:list: true
|
458
|
-
|
462
|
+
MinAdjustmentStep:
|
459
463
|
:type: :integer
|
460
464
|
- :name: DescribeScalingActivities
|
461
465
|
:method: :describe_scaling_activities
|
@@ -647,7 +651,7 @@
|
|
647
651
|
- :required
|
648
652
|
Cooldown:
|
649
653
|
- :integer
|
650
|
-
|
654
|
+
MinAdjustmentStep:
|
651
655
|
- :integer
|
652
656
|
:outputs:
|
653
657
|
:children:
|
@@ -3260,6 +3260,12 @@
|
|
3260
3260
|
DeleteOnTermination:
|
3261
3261
|
- :boolean
|
3262
3262
|
- :rename: networkInterfaces
|
3263
|
+
IamInstanceProfile:
|
3264
|
+
- :structure:
|
3265
|
+
Arn:
|
3266
|
+
- :string
|
3267
|
+
Name:
|
3268
|
+
- :string
|
3263
3269
|
:outputs:
|
3264
3270
|
:children:
|
3265
3271
|
spotInstanceRequestSet:
|
@@ -3565,6 +3571,12 @@
|
|
3565
3571
|
DeleteOnTermination:
|
3566
3572
|
- :boolean
|
3567
3573
|
- :rename: networkInterfaces
|
3574
|
+
IamInstanceProfile:
|
3575
|
+
- :structure:
|
3576
|
+
Arn:
|
3577
|
+
- :string
|
3578
|
+
Name:
|
3579
|
+
- :string
|
3568
3580
|
:outputs:
|
3569
3581
|
:children:
|
3570
3582
|
groupSet:
|
@@ -92,6 +92,8 @@ module AWS
|
|
92
92
|
# * +:volume_size+ - (Integer)
|
93
93
|
# * +:instance_monitoring+ - (Hash)
|
94
94
|
# * +:enabled+ - (Boolean)
|
95
|
+
# * +:spot_price+ - (String)
|
96
|
+
# * +:iam_instance_profile+ - (String)
|
95
97
|
#
|
96
98
|
# === Response Structure:
|
97
99
|
#
|
@@ -355,6 +357,8 @@ module AWS
|
|
355
357
|
# * +:volume_size+ - (Integer)
|
356
358
|
# * +:instance_monitoring+ - (Hash)
|
357
359
|
# * +:enabled+ - (Boolean)
|
360
|
+
# * +:spot_price+ - (String)
|
361
|
+
# * +:iam_instance_profile+ - (String)
|
358
362
|
# * +:created_time+ - (Time)
|
359
363
|
# * +:next_token+ - (String)
|
360
364
|
#
|
@@ -423,7 +427,7 @@ module AWS
|
|
423
427
|
# * +:alarms+ - (Array<Hash>)
|
424
428
|
# * +:alarm_name+ - (String)
|
425
429
|
# * +:alarm_arn+ - (String)
|
426
|
-
# * +:
|
430
|
+
# * +:min_adjustment_step+ - (Integer)
|
427
431
|
# * +:next_token+ - (String)
|
428
432
|
#
|
429
433
|
# @return [Core::Response]
|
@@ -608,7 +612,7 @@ module AWS
|
|
608
612
|
# * +:scaling_adjustment+ - *required* - (Integer)
|
609
613
|
# * +:adjustment_type+ - *required* - (String)
|
610
614
|
# * +:cooldown+ - (Integer)
|
611
|
-
# * +:
|
615
|
+
# * +:min_adjustment_step+ - (Integer)
|
612
616
|
#
|
613
617
|
# === Response Structure:
|
614
618
|
#
|
@@ -37,6 +37,10 @@ module AWS
|
|
37
37
|
# @attr_reader [String,nil] user_data
|
38
38
|
#
|
39
39
|
# @attr_reader [Array<Hash>] block_device_mappings
|
40
|
+
#
|
41
|
+
# @attr_reader [String] iam_instance_profile
|
42
|
+
#
|
43
|
+
# @attr_reader [String] spot_price
|
40
44
|
#
|
41
45
|
class LaunchConfiguration < Core::Resource
|
42
46
|
|
@@ -71,6 +75,10 @@ module AWS
|
|
71
75
|
|
72
76
|
attribute :ramdisk_id, :static => true
|
73
77
|
|
78
|
+
attribute :iam_instance_profile, :static => true
|
79
|
+
|
80
|
+
attribute :spot_price, :static => true
|
81
|
+
|
74
82
|
attribute :user_data, :static => true do
|
75
83
|
translates_output{|v| Base64.decode64(v) }
|
76
84
|
end
|
@@ -57,6 +57,10 @@ module AWS
|
|
57
57
|
#
|
58
58
|
# @option options [String] :user_data The user data available to
|
59
59
|
# the launched Amazon EC2 instances.
|
60
|
+
#
|
61
|
+
# @option options [String] :iam_instance_profile
|
62
|
+
#
|
63
|
+
# @option options [String] :spot_price
|
60
64
|
#
|
61
65
|
# @return [LaunchConfiguration]
|
62
66
|
#
|
@@ -66,17 +70,23 @@ module AWS
|
|
66
70
|
client_opts[:launch_configuration_name] = name
|
67
71
|
client_opts[:image_id] = image_id_opt(image)
|
68
72
|
client_opts[:instance_type] = instance_type
|
69
|
-
client_opts[:block_device_mappings] = options[:block_device_mappings] if
|
70
|
-
options.key?(:block_device_mappings)
|
71
73
|
client_opts[:instance_monitoring] = instance_monitoring_opt(options) if
|
72
74
|
options.key?(:detailed_instance_monitoring)
|
73
|
-
client_opts[:kernel_id] = options[:kernel_id] if options[:kernel_id]
|
74
75
|
client_opts[:key_name] = key_name_opt(options) if options[:key_pair]
|
75
|
-
client_opts[:ramdisk_id] = options[:ramdisk_id] if options[:ramdisk_id]
|
76
76
|
client_opts[:security_groups] = security_groups_opt(options) if
|
77
77
|
options.key?(:security_groups)
|
78
78
|
client_opts[:user_data] = user_data_opt(options) if options[:user_data]
|
79
79
|
|
80
|
+
[
|
81
|
+
:iam_instance_profile,
|
82
|
+
:spot_price,
|
83
|
+
:kernel_id,
|
84
|
+
:ramdisk_id,
|
85
|
+
:block_device_mappings,
|
86
|
+
].each do |opt|
|
87
|
+
client_opts[opt] = options[opt] if options.key?(opt)
|
88
|
+
end
|
89
|
+
|
80
90
|
client.create_launch_configuration(client_opts)
|
81
91
|
|
82
92
|
LaunchConfiguration.new(name,
|
@@ -13,6 +13,21 @@
|
|
13
13
|
|
14
14
|
module AWS
|
15
15
|
class AutoScaling
|
16
|
+
|
17
|
+
#
|
18
|
+
# @attr_reader [String] arn
|
19
|
+
#
|
20
|
+
# @attr_reader [String] adjustment_type
|
21
|
+
#
|
22
|
+
# @attr_reader [Integer] scaling_adjustment
|
23
|
+
#
|
24
|
+
# @attr_reader [Hash] alarms Returns a hash of alarms names (keys)
|
25
|
+
# to alarm ARNs (values).
|
26
|
+
#
|
27
|
+
# @attr_reader [Integer] cooldown
|
28
|
+
#
|
29
|
+
# @attr_reader [Integer] min_adjustment_magnitude
|
30
|
+
#
|
16
31
|
class ScalingPolicy < Core::Resource
|
17
32
|
|
18
33
|
include ScalingPolicyOptions
|
@@ -48,6 +63,8 @@ module AWS
|
|
48
63
|
|
49
64
|
attribute :cooldown
|
50
65
|
|
66
|
+
attribute :min_adjustment_magintude
|
67
|
+
|
51
68
|
populates_from(:describe_policies) do |resp|
|
52
69
|
resp.scaling_policies.find do |p|
|
53
70
|
p.policy_name == name and
|
@@ -40,6 +40,8 @@ module AWS
|
|
40
40
|
# after a scaling activity completes before any further
|
41
41
|
# trigger-related scaling activities can start.
|
42
42
|
#
|
43
|
+
# @option options [Integer] :min_adjustment_magnitude
|
44
|
+
#
|
43
45
|
# @return [Hash]
|
44
46
|
#
|
45
47
|
def scaling_policy_options auto_scaling_group, policy_name, options
|
data/lib/aws/core.rb
CHANGED
@@ -61,7 +61,7 @@ require 'aws/core/autoloader'
|
|
61
61
|
module AWS
|
62
62
|
|
63
63
|
# Current version of the AWS SDK for Ruby
|
64
|
-
VERSION = "1.5.
|
64
|
+
VERSION = "1.5.3"
|
65
65
|
|
66
66
|
register_autoloads(self) do
|
67
67
|
autoload :Errors, 'errors'
|
@@ -75,8 +75,8 @@ module AWS
|
|
75
75
|
autoload :Client, 'client'
|
76
76
|
autoload :Collection, 'collection'
|
77
77
|
autoload :Configuration, 'configuration'
|
78
|
+
autoload :CredentialProviders, 'credential_providers'
|
78
79
|
autoload :Data, 'data'
|
79
|
-
autoload :DefaultSigner, 'default_signer'
|
80
80
|
autoload :IndifferentHash, 'indifferent_hash'
|
81
81
|
autoload :Inflection, 'inflection'
|
82
82
|
autoload :LazyErrorClasses, 'lazy_error_classes'
|
@@ -92,7 +92,7 @@ module AWS
|
|
92
92
|
autoload :Response, 'response'
|
93
93
|
autoload :ResponseCache, 'response_cache'
|
94
94
|
autoload :ServiceInterface, 'service_interface'
|
95
|
-
autoload :
|
95
|
+
autoload :Signer, 'signer'
|
96
96
|
autoload :UriEscape, 'uri_escape'
|
97
97
|
end
|
98
98
|
|
@@ -175,13 +175,13 @@ module AWS
|
|
175
175
|
#
|
176
176
|
# @param [Hash] options
|
177
177
|
#
|
178
|
-
# @option options [String] :access_key_id
|
178
|
+
# @option options [String] :access_key_id AWS access key id
|
179
179
|
# credential.
|
180
180
|
#
|
181
|
-
# @option options [String] :secret_access_key
|
181
|
+
# @option options [String] :secret_access_key AWS secret access
|
182
182
|
# key credential.
|
183
183
|
#
|
184
|
-
# @option options [String,nil] :session_token
|
184
|
+
# @option options [String,nil] :session_token AWS secret token
|
185
185
|
# credential.
|
186
186
|
#
|
187
187
|
# @option options [String] :auto_scaling_endpoint ('autoscaling.us-east-1.amazonaws.com')
|
@@ -221,11 +221,11 @@ module AWS
|
|
221
221
|
#
|
222
222
|
# @option options [Object] :log_formatter The log formatter is responsible
|
223
223
|
# for building log messages from responses. You can quickly change
|
224
|
-
# log formats by providing a
|
224
|
+
# log formats by providing a pre-configured log formatter.
|
225
225
|
#
|
226
226
|
# AWS.config(:log_formatter => AWS::Core::LogFormatter.colored)
|
227
227
|
#
|
228
|
-
# Here is
|
228
|
+
# Here is a list of pre-configured log formatters:
|
229
229
|
#
|
230
230
|
# * +AWS::Core::LogFormatter.default+
|
231
231
|
# * +AWS::Core::LogFormatter.short+
|
@@ -298,8 +298,10 @@ module AWS
|
|
298
298
|
# @option options [String] :simple_workflow_service ('swf.us-east-1.amazonaws.com')
|
299
299
|
# The service endpoint for Amazon Simple Workflow Service.
|
300
300
|
#
|
301
|
-
# @option options [Object] :
|
302
|
-
#
|
301
|
+
# @option options [Object] :credential_provider (AWS::Core::CredentialProviders::DefaultProvider.new)
|
302
|
+
# Returns the credential provider. The default credential provider
|
303
|
+
# attempts to check for statically assigned credentials, ENV credentials
|
304
|
+
# and credentials in the metadata service of EC2.
|
303
305
|
#
|
304
306
|
# @option options [String] :ssl_ca_file The path to a CA cert bundle in
|
305
307
|
# PEM format.
|
@@ -320,7 +322,7 @@ module AWS
|
|
320
322
|
# man-in-the-middle attacks and can pose a serious security
|
321
323
|
# risk.
|
322
324
|
#
|
323
|
-
# @option options[Boolean] :stub_requests (false) When +true+ requests
|
325
|
+
# @option options [Boolean] :stub_requests (false) When +true+ requests
|
324
326
|
# are not sent to AWS, instead empty reponses are generated and
|
325
327
|
# returned to each service request.
|
326
328
|
#
|
data/lib/aws/core/cacheable.rb
CHANGED
@@ -35,7 +35,7 @@ module AWS
|
|
35
35
|
def cache_key
|
36
36
|
@cache_key ||= begin
|
37
37
|
endpoint_method = self.class.service_ruby_name + "_endpoint"
|
38
|
-
config.
|
38
|
+
config.credential_provider.access_key_id + ":" +
|
39
39
|
config.send(endpoint_method) + ":" +
|
40
40
|
self.class.name + ":" +
|
41
41
|
local_cache_key
|
data/lib/aws/core/client.rb
CHANGED
@@ -27,33 +27,12 @@ module AWS
|
|
27
27
|
# @private
|
28
28
|
CACHEABLE_REQUESTS = Set[]
|
29
29
|
|
30
|
-
# Creates a new low-level client.
|
31
|
-
#
|
32
|
-
#
|
33
|
-
#
|
34
|
-
#
|
35
|
-
#
|
36
|
-
#
|
37
|
-
# * +:signer+ -- An object that responds to +access_key_id+
|
38
|
-
# (to return the AWS Access Key ID) and to
|
39
|
-
# <code>sign(string_to_sign)</code> (to return a signature
|
40
|
-
# for a given string). An example implementation is
|
41
|
-
# AWS::Core::DefaultSigner. This option is useful if you want to
|
42
|
-
# more tightly control access to your secret access key (for
|
43
|
-
# example by moving the signature computation into a
|
44
|
-
# different process).
|
45
|
-
#
|
46
|
-
# * +:access_key_id+ and +:secret_access_key+ -- You can use
|
47
|
-
# these options to provide the AWS Access Key ID and AWS
|
48
|
-
# Secret Access Key directly to the client.
|
49
|
-
#
|
50
|
-
# == Optional
|
51
|
-
#
|
52
|
-
# * +:http_handler+ -- Any object that implements a
|
53
|
-
# <code>handle(request, response)</code> method; an example
|
54
|
-
# is BuiltinHttpHandler. This method is used to perform the
|
55
|
-
# HTTP requests that this client constructs.
|
56
|
-
#
|
30
|
+
# Creates a new low-level client.
|
31
|
+
# @param [Hash] options
|
32
|
+
# @option options [Core::Configuration] :config (AWS.config)
|
33
|
+
# The base configuration object to use. All other options
|
34
|
+
# are merged with this. Defaults to the AWS.config.
|
35
|
+
# @option (see AWS.config)
|
57
36
|
def initialize options = {}
|
58
37
|
|
59
38
|
options = options.dup # so we don't modify the options passed in
|
@@ -72,7 +51,7 @@ module AWS
|
|
72
51
|
@config ||= AWS.config
|
73
52
|
@config = @config.with(options)
|
74
53
|
|
75
|
-
@
|
54
|
+
@credential_provider = @config.credential_provider
|
76
55
|
@http_handler = @config.http_handler
|
77
56
|
@endpoint = config.send(:"#{service_ruby_name}_endpoint")
|
78
57
|
@port = config.send(:"#{service_ruby_name}_port")
|
@@ -82,11 +61,10 @@ module AWS
|
|
82
61
|
# @return [Configuration] This clients configuration.
|
83
62
|
attr_reader :config
|
84
63
|
|
85
|
-
# @return [
|
86
|
-
#
|
87
|
-
# an other object.
|
64
|
+
# @return [CredentialProviders::Provider] Returns the credentail
|
65
|
+
# provider for this client.
|
88
66
|
# @private
|
89
|
-
attr_reader :
|
67
|
+
attr_reader :credential_provider
|
90
68
|
|
91
69
|
# @return [String] The snake-cased ruby name for the service
|
92
70
|
# (e.g. 's3', 'iam', 'dynamo_db', etc).
|
@@ -113,7 +91,8 @@ module AWS
|
|
113
91
|
#
|
114
92
|
# s3_with_logging = s3.with_http_handler do |request, response|
|
115
93
|
# $stderr.puts request.inspect
|
116
|
-
# super
|
94
|
+
# super(request, response)
|
95
|
+
# $stderr.puts response.inspect
|
117
96
|
# end
|
118
97
|
#
|
119
98
|
# The block executes in the context of an HttpHandler
|
@@ -132,8 +111,14 @@ module AWS
|
|
132
111
|
with_options(:http_handler => handler)
|
133
112
|
end
|
134
113
|
|
114
|
+
# Returns a new client with the passed configuration options
|
115
|
+
# merged with the current configuration options.
|
116
|
+
#
|
117
|
+
# no_retry_client = client.with_options(:max_retries => 0)
|
118
|
+
#
|
135
119
|
# @param [Hash] options
|
136
|
-
# @see AWS.config
|
120
|
+
# @option (see AWS.config)
|
121
|
+
# @return [Client]
|
137
122
|
def with_options options
|
138
123
|
with_config(config.with(options))
|
139
124
|
end
|
@@ -141,6 +126,7 @@ module AWS
|
|
141
126
|
# @param [Configuration] config The configuration object to use.
|
142
127
|
# @return [Core::Client] Returns a new client object with the given
|
143
128
|
# configuration.
|
129
|
+
# @private
|
144
130
|
def with_config config
|
145
131
|
self.class.new(:config => config)
|
146
132
|
end
|
@@ -248,13 +234,18 @@ module AWS
|
|
248
234
|
end
|
249
235
|
|
250
236
|
def rebuild_http_request response
|
237
|
+
credential_provider.refresh if expired_credentials?(response)
|
251
238
|
response.rebuild_request
|
252
239
|
response.retry_count += 1
|
253
240
|
end
|
254
241
|
|
255
242
|
def sleep_durations response
|
256
|
-
|
257
|
-
|
243
|
+
if expired_credentials?(response)
|
244
|
+
[0]
|
245
|
+
else
|
246
|
+
factor = scaling_factor(response)
|
247
|
+
Array.new(config.max_retries) {|n| (2 ** n) * factor }
|
248
|
+
end
|
258
249
|
end
|
259
250
|
|
260
251
|
def scaling_factor response
|
@@ -262,9 +253,18 @@ module AWS
|
|
262
253
|
end
|
263
254
|
|
264
255
|
def should_retry? response
|
256
|
+
expired_credentials?(response) or
|
265
257
|
response.timeout? or
|
266
|
-
|
267
|
-
|
258
|
+
response.throttled? or
|
259
|
+
response.error.kind_of?(Errors::ServerError)
|
260
|
+
end
|
261
|
+
|
262
|
+
# @return [Boolean] Returns +true+ if the response contains an
|
263
|
+
# error message that indicates credentials have expired.
|
264
|
+
def expired_credentials? response
|
265
|
+
response.error and
|
266
|
+
response.error.respond_to?(:code) and
|
267
|
+
response.error.code == 'ExpiredTokenException'
|
268
268
|
end
|
269
269
|
|
270
270
|
def return_or_raise options, &block
|
@@ -428,6 +428,7 @@ module AWS
|
|
428
428
|
opts.delete(:async)
|
429
429
|
|
430
430
|
http_request = new_request
|
431
|
+
http_request.access_key_id = credential_provider.access_key_id
|
431
432
|
|
432
433
|
# configure the http request
|
433
434
|
http_request.service_ruby_name = service_ruby_name
|
@@ -443,7 +444,7 @@ module AWS
|
|
443
444
|
send("configure_#{name}_request", http_request, opts, &block)
|
444
445
|
|
445
446
|
http_request.headers["user-agent"] = user_agent_string
|
446
|
-
http_request.add_authorization!(
|
447
|
+
http_request.add_authorization!(credential_provider)
|
447
448
|
|
448
449
|
http_request
|
449
450
|
|
@@ -156,8 +156,8 @@ module AWS
|
|
156
156
|
# @attr_reader [String] simple_workflow_endpoint ('swf.us-east-1.amazonaws.com')
|
157
157
|
# The service endpoint for Amazon Simple Workflow Service.
|
158
158
|
#
|
159
|
-
# @attr_reader [
|
160
|
-
#
|
159
|
+
# @attr_reader [CredentialProvider::Provider] credential_provider
|
160
|
+
# Returns the object that is responsible for loading credentials.
|
161
161
|
#
|
162
162
|
# @attr_reader [String] ssl_ca_file The path to a CA cert bundle in
|
163
163
|
# PEM format.
|
@@ -206,7 +206,14 @@ module AWS
|
|
206
206
|
def initialize options = {}
|
207
207
|
|
208
208
|
@created = options.delete(:__created__) || {}
|
209
|
-
|
209
|
+
|
210
|
+
# :signer is now a deprecated option, this ensures it will still
|
211
|
+
# work, but its now prefered to set :credential_provider instead.
|
212
|
+
# Credentail providers don't have to provide a #sign method.
|
213
|
+
if signer = options.delete(:signer)
|
214
|
+
options[:credential_provider] = signer
|
215
|
+
end
|
216
|
+
|
210
217
|
options.each_pair do |opt_name, value|
|
211
218
|
opt_name = opt_name.to_sym
|
212
219
|
if self.class.accepted_options.include?(opt_name)
|
@@ -219,9 +226,11 @@ module AWS
|
|
219
226
|
# @return [Hash] Returns a hash with your configured credentials.
|
220
227
|
def credentials
|
221
228
|
credentials = {}
|
222
|
-
|
223
|
-
|
224
|
-
|
229
|
+
[:access_key_id, :secret_access_key, :session_token].each do |opt|
|
230
|
+
if value = credential_provider.send(opt)
|
231
|
+
credentials[opt] = value
|
232
|
+
end
|
233
|
+
end
|
225
234
|
credentials
|
226
235
|
end
|
227
236
|
|
@@ -371,7 +380,7 @@ module AWS
|
|
371
380
|
end
|
372
381
|
|
373
382
|
needs = [
|
374
|
-
:
|
383
|
+
:credential_provider,
|
375
384
|
:http_handler,
|
376
385
|
:"#{ruby_name}_endpoint",
|
377
386
|
:"#{ruby_name}_port",
|
@@ -397,10 +406,10 @@ module AWS
|
|
397
406
|
|
398
407
|
end
|
399
408
|
|
400
|
-
add_option :access_key_id,
|
409
|
+
add_option :access_key_id,
|
401
410
|
ENV['AWS_ACCESS_KEY_ID'] || ENV['AMAZON_ACCESS_KEY_ID']
|
402
411
|
|
403
|
-
add_option :secret_access_key,
|
412
|
+
add_option :secret_access_key,
|
404
413
|
ENV['AWS_SECRET_ACCESS_KEY'] || ENV['AMAZON_SECRET_ACCESS_KEY']
|
405
414
|
|
406
415
|
add_option :session_token
|
@@ -417,13 +426,13 @@ module AWS
|
|
417
426
|
|
418
427
|
add_option :proxy_uri do |config,uri| uri ? URI.parse(uri.to_s) : nil end
|
419
428
|
|
420
|
-
add_option_with_needs :
|
429
|
+
add_option_with_needs :credential_provider,
|
421
430
|
[:access_key_id, :secret_access_key, :session_token] do |config|
|
422
|
-
|
423
|
-
|
424
|
-
config.access_key_id,
|
425
|
-
config.secret_access_key,
|
426
|
-
config.session_token)
|
431
|
+
|
432
|
+
CredentialProviders::DefaultProvider.new(
|
433
|
+
:access_key_id => config.access_key_id,
|
434
|
+
:secret_access_key => config.secret_access_key,
|
435
|
+
:session_token => config.session_token)
|
427
436
|
|
428
437
|
end
|
429
438
|
|