aws-sdk 1.38.0 → 1.39.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +23 -8
- data/bin/aws-rb +0 -1
- data/lib/aws/api_config/AutoScaling-2011-01-01.yml +2 -0
- data/lib/aws/api_config/DynamoDB-2012-08-10.yml +101 -1
- data/lib/aws/api_config/ElastiCache-2014-03-24.yml +1375 -0
- data/lib/aws/api_config/OpsWorks-2013-02-18.yml +28 -0
- data/lib/aws/auto_scaling/group.rb +1 -1
- data/lib/aws/core.rb +14 -0
- data/lib/aws/core/client.rb +2 -1
- data/lib/aws/core/configuration.rb +1 -1
- data/lib/aws/core/credential_providers.rb +23 -10
- data/lib/aws/core/http/connection_pool.rb +12 -2
- data/lib/aws/core/http/request.rb +3 -0
- data/lib/aws/core/log_formatter.rb +1 -1
- data/lib/aws/core/policy.rb +2 -3
- data/lib/aws/dynamo_db/table.rb +4 -8
- data/lib/aws/ec2/instance.rb +1 -1
- data/lib/aws/ec2/instance_collection.rb +12 -3
- data/lib/aws/elasticache/client.rb +5 -2
- data/lib/aws/glacier/vault.rb +1 -1
- data/lib/aws/iam/server_certificate.rb +24 -17
- data/lib/aws/rails.rb +1 -1
- data/lib/aws/record/abstract_base.rb +0 -1
- data/lib/aws/record/hash_model.rb +1 -1
- data/lib/aws/record/model.rb +1 -1
- data/lib/aws/route_53/hosted_zone_collection.rb +2 -1
- data/lib/aws/s3/bucket_lifecycle_configuration.rb +1 -2
- data/lib/aws/s3/client.rb +48 -2
- data/lib/aws/s3/presign_v4.rb +1 -0
- data/lib/aws/s3/s3_object.rb +1 -0
- data/lib/aws/simple_workflow/decision_task.rb +2 -2
- data/lib/aws/simple_workflow/decision_task_collection.rb +0 -2
- data/lib/aws/simple_workflow/option_formatters.rb +1 -1
- data/lib/aws/simple_workflow/workflow_type.rb +0 -2
- data/lib/aws/sqs/queue.rb +1 -1
- data/lib/aws/version.rb +1 -1
- metadata +3 -16
@@ -83,6 +83,12 @@
|
|
83
83
|
- :string
|
84
84
|
Version:
|
85
85
|
- :string
|
86
|
+
ChefConfiguration:
|
87
|
+
- :structure:
|
88
|
+
ManageBerkshelf:
|
89
|
+
- :boolean
|
90
|
+
BerkshelfVersion:
|
91
|
+
- :string
|
86
92
|
UseCustomCookbooks:
|
87
93
|
- :boolean
|
88
94
|
UseOpsworksSecurityGroups:
|
@@ -357,6 +363,12 @@
|
|
357
363
|
- :string
|
358
364
|
Version:
|
359
365
|
- :string
|
366
|
+
ChefConfiguration:
|
367
|
+
- :structure:
|
368
|
+
ManageBerkshelf:
|
369
|
+
- :boolean
|
370
|
+
BerkshelfVersion:
|
371
|
+
- :string
|
360
372
|
UseCustomCookbooks:
|
361
373
|
- :boolean
|
362
374
|
UseOpsworksSecurityGroups:
|
@@ -1261,6 +1273,16 @@
|
|
1261
1273
|
Version:
|
1262
1274
|
:sym: :version
|
1263
1275
|
:type: :string
|
1276
|
+
ChefConfiguration:
|
1277
|
+
:sym: :chef_configuration
|
1278
|
+
:type: :hash
|
1279
|
+
:members:
|
1280
|
+
ManageBerkshelf:
|
1281
|
+
:sym: :manage_berkshelf
|
1282
|
+
:type: :boolean
|
1283
|
+
BerkshelfVersion:
|
1284
|
+
:sym: :berkshelf_version
|
1285
|
+
:type: :string
|
1264
1286
|
UseCustomCookbooks:
|
1265
1287
|
:sym: :use_custom_cookbooks
|
1266
1288
|
:type: :boolean
|
@@ -1835,6 +1857,12 @@
|
|
1835
1857
|
- :string
|
1836
1858
|
Version:
|
1837
1859
|
- :string
|
1860
|
+
ChefConfiguration:
|
1861
|
+
- :structure:
|
1862
|
+
ManageBerkshelf:
|
1863
|
+
- :boolean
|
1864
|
+
BerkshelfVersion:
|
1865
|
+
- :string
|
1838
1866
|
UseCustomCookbooks:
|
1839
1867
|
- :boolean
|
1840
1868
|
CustomCookbooksSource:
|
@@ -175,7 +175,7 @@ module AWS
|
|
175
175
|
#
|
176
176
|
def ec2_instances
|
177
177
|
instances = EC2::InstanceCollection.new(:config => config)
|
178
|
-
instances.
|
178
|
+
instances.filter('tag:aws:autoscaling:groupName', name)
|
179
179
|
end
|
180
180
|
|
181
181
|
# @return [Array<EC2::Subnet>]
|
data/lib/aws/core.rb
CHANGED
@@ -12,6 +12,7 @@
|
|
12
12
|
# language governing permissions and limitations under the License.
|
13
13
|
|
14
14
|
require 'set'
|
15
|
+
require 'securerandom'
|
15
16
|
|
16
17
|
# AWS is the root module for all of the Amazon Web Services. It is also
|
17
18
|
# where you can configure you access to AWS.
|
@@ -657,6 +658,7 @@ module AWS
|
|
657
658
|
end
|
658
659
|
end
|
659
660
|
end
|
661
|
+
visited
|
660
662
|
end
|
661
663
|
|
662
664
|
# Patches Net::HTTP, fixing a bug in how it handles non 100-continue
|
@@ -699,3 +701,15 @@ module AWS
|
|
699
701
|
end
|
700
702
|
|
701
703
|
end
|
704
|
+
|
705
|
+
# Backport SecureRandom.uuid for Ruby 1.8
|
706
|
+
unless SecureRandom.respond_to?(:uuid)
|
707
|
+
module SecureRandom
|
708
|
+
def self.uuid
|
709
|
+
ary = random_bytes(16).unpack("NnnnnN")
|
710
|
+
ary[2] = (ary[2] & 0x0fff) | 0x4000
|
711
|
+
ary[3] = (ary[3] & 0x3fff) | 0x8000
|
712
|
+
"%08x-%04x-%04x-%04x-%04x%08x" % ary
|
713
|
+
end
|
714
|
+
end
|
715
|
+
end
|
data/lib/aws/core/client.rb
CHANGED
@@ -546,6 +546,7 @@ module AWS
|
|
546
546
|
|
547
547
|
http_request = new_request
|
548
548
|
http_request.access_key_id = credential_provider.access_key_id
|
549
|
+
http_request.service = self.class.name.split('::')[1]
|
549
550
|
|
550
551
|
# configure the http request
|
551
552
|
http_request.service_ruby_name = service_ruby_name
|
@@ -698,7 +699,7 @@ module AWS
|
|
698
699
|
@signer ||= begin
|
699
700
|
signer_class = AWS::Core::Signers.const_get(version)
|
700
701
|
signer_args = (version == :Version4) ?
|
701
|
-
[credential_provider, service_signing_name,
|
702
|
+
[credential_provider, service_signing_name, req.region] :
|
702
703
|
[credential_provider]
|
703
704
|
signer_class.new(*signer_args)
|
704
705
|
end
|
@@ -483,7 +483,7 @@ module AWS
|
|
483
483
|
add_option :session_token
|
484
484
|
|
485
485
|
add_option :region do |cfg,region|
|
486
|
-
region || ENV['AWS_REGION'] || ENV['AMAZON_REGION'] || 'us-east-1'
|
486
|
+
region || ENV['AWS_REGION'] || ENV['AMAZON_REGION'] || ENV['AWS_DEFAULT_REGION'] || 'us-east-1'
|
487
487
|
end
|
488
488
|
|
489
489
|
add_option_with_needs :credential_provider,
|
@@ -37,14 +37,22 @@ module AWS
|
|
37
37
|
# `:access_key_id` or the `:secret_access_key` can not be found.
|
38
38
|
#
|
39
39
|
def credentials
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
40
|
+
raise Errors::MissingCredentialsError unless set?
|
41
|
+
@cached_credentials.dup
|
42
|
+
end
|
43
|
+
|
44
|
+
# @return [Boolean] Returns true if has credentials and it contains
|
45
|
+
# at least the `:access_key_id` and `:secret_access_key`.
|
46
|
+
#
|
47
|
+
def set?
|
48
|
+
@cache_mutex ||= Mutex.new
|
49
|
+
unless @cached_credentials
|
50
|
+
@cache_mutex.synchronize do
|
51
|
+
@cached_credentials ||= get_credentials
|
44
52
|
end
|
45
|
-
creds
|
46
53
|
end
|
47
|
-
@cached_credentials
|
54
|
+
@cached_credentials[:access_key_id] &&
|
55
|
+
@cached_credentials[:secret_access_key]
|
48
56
|
end
|
49
57
|
|
50
58
|
# @return [String] Returns the AWS access key id.
|
@@ -108,6 +116,7 @@ module AWS
|
|
108
116
|
@providers = []
|
109
117
|
@providers << StaticProvider.new(static_credentials)
|
110
118
|
@providers << ENVProvider.new('AWS')
|
119
|
+
@providers << ENVProvider.new('AWS', :access_key_id => 'ACCESS_KEY', :secret_access_key => 'SECRET_KEY', :session_token => 'SESSION_TOKEN')
|
111
120
|
@providers << ENVProvider.new('AMAZON')
|
112
121
|
@providers << EC2Provider.new
|
113
122
|
end
|
@@ -117,14 +126,17 @@ module AWS
|
|
117
126
|
|
118
127
|
def credentials
|
119
128
|
providers.each do |provider|
|
120
|
-
|
129
|
+
if provider.set?
|
121
130
|
return provider.credentials
|
122
|
-
rescue Errors::MissingCredentialsError
|
123
131
|
end
|
124
132
|
end
|
125
133
|
raise Errors::MissingCredentialsError
|
126
134
|
end
|
127
135
|
|
136
|
+
def set?
|
137
|
+
providers.any?(&:set?)
|
138
|
+
end
|
139
|
+
|
128
140
|
def refresh
|
129
141
|
providers.each do |provider|
|
130
142
|
provider.refresh
|
@@ -181,8 +193,9 @@ module AWS
|
|
181
193
|
include Provider
|
182
194
|
|
183
195
|
# @param [String] prefix The prefix to apply to the ENV variable.
|
184
|
-
def initialize
|
196
|
+
def initialize(prefix, suffixes=Hash[KEYS.map{|key| [key, key.to_s.upcase]}])
|
185
197
|
@prefix = prefix
|
198
|
+
@suffixes = suffixes
|
186
199
|
end
|
187
200
|
|
188
201
|
# @return [String]
|
@@ -192,7 +205,7 @@ module AWS
|
|
192
205
|
def get_credentials
|
193
206
|
credentials = {}
|
194
207
|
KEYS.each do |key|
|
195
|
-
if value = ENV["#{@prefix}_#{key
|
208
|
+
if value = ENV["#{@prefix}_#{@suffixes[key]}"]
|
196
209
|
credentials[key] = value
|
197
210
|
end
|
198
211
|
end
|
@@ -287,8 +287,18 @@ module AWS
|
|
287
287
|
args << endpoint.port
|
288
288
|
args << proxy_uri.host
|
289
289
|
args << proxy_uri.port
|
290
|
-
|
291
|
-
|
290
|
+
|
291
|
+
if proxy_uri.user
|
292
|
+
args << URI::decode(proxy_uri.user)
|
293
|
+
else
|
294
|
+
args << nil
|
295
|
+
end
|
296
|
+
|
297
|
+
if proxy_uri.password
|
298
|
+
args << URI::decode(proxy_uri.password)
|
299
|
+
else
|
300
|
+
args << nil
|
301
|
+
end
|
292
302
|
|
293
303
|
http = Net::HTTP.new(*args.compact)
|
294
304
|
http.extend(SessionExtensions)
|
data/lib/aws/core/policy.rb
CHANGED
@@ -11,7 +11,6 @@
|
|
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 'uuidtools'
|
15
14
|
require 'date'
|
16
15
|
require 'json'
|
17
16
|
|
@@ -84,7 +83,7 @@ module AWS
|
|
84
83
|
if opts.has_key?(:id) or opts.has_key?("Id")
|
85
84
|
@id = opts[:id] || opts["Id"]
|
86
85
|
else
|
87
|
-
@id =
|
86
|
+
@id = SecureRandom.uuid.tr('-','')
|
88
87
|
end
|
89
88
|
if opts.has_key?(:version) or opts.has_key?("Version")
|
90
89
|
@version = opts[:version] || opts["Version"]
|
@@ -748,7 +747,7 @@ module AWS
|
|
748
747
|
# Policy#deny to add conditions to a statement.
|
749
748
|
# @see S3::Client
|
750
749
|
def initialize(opts = {})
|
751
|
-
self.sid =
|
750
|
+
self.sid = SecureRandom.uuid.tr('-','')
|
752
751
|
self.conditions = ConditionBlock.new
|
753
752
|
|
754
753
|
parse_options(opts)
|
data/lib/aws/dynamo_db/table.rb
CHANGED
@@ -154,15 +154,11 @@ module AWS
|
|
154
154
|
end
|
155
155
|
end
|
156
156
|
|
157
|
+
# Updates the provisioned throughput for this table.
|
157
158
|
# @param [Hash] options
|
158
|
-
#
|
159
|
-
# @option options [Integer] :
|
160
|
-
#
|
161
|
-
# @option options [Integer] :write_capacity_units
|
162
|
-
#
|
163
|
-
# @return [Hash] Returns a hash with the current throughput
|
164
|
-
# provisioning (`:read_capacity_units` and `:write_capacity_units`).
|
165
|
-
#
|
159
|
+
# @option options [Integer] :read_capacity_units The desired read capacity units.
|
160
|
+
# @option options [Integer] :write_capacity_units The desired write capacity units.
|
161
|
+
# @return [Hash] Returns the given `options` hash.
|
166
162
|
def provision_throughput options = {}
|
167
163
|
|
168
164
|
options[:read_capacity_units] ||= read_capacity_units
|
data/lib/aws/ec2/instance.rb
CHANGED
@@ -12,7 +12,6 @@
|
|
12
12
|
# language governing permissions and limitations under the License.
|
13
13
|
|
14
14
|
require 'base64'
|
15
|
-
require 'uuidtools'
|
16
15
|
|
17
16
|
module AWS
|
18
17
|
class EC2
|
@@ -118,6 +117,9 @@ module AWS
|
|
118
117
|
# availability zone where the instance should run. Without
|
119
118
|
# this option, EC2 will choose an availability zone for you.
|
120
119
|
#
|
120
|
+
# @option options [String] :placement_group Specifies the
|
121
|
+
# cluster placement group where the instance should run.
|
122
|
+
#
|
121
123
|
# @option options [String] :image_id ID of the AMI you want to
|
122
124
|
# launch.
|
123
125
|
#
|
@@ -257,6 +259,11 @@ module AWS
|
|
257
259
|
options.delete(:availability_zone)
|
258
260
|
end
|
259
261
|
|
262
|
+
if options[:placement_group]
|
263
|
+
placement[:group_name] = options[:placement_group].to_s
|
264
|
+
options.delete(:placement_group)
|
265
|
+
end
|
266
|
+
|
260
267
|
if options[:dedicated_tenancy]
|
261
268
|
placement[:tenancy] = 'dedicated'
|
262
269
|
options.delete(:dedicated_tenancy)
|
@@ -291,7 +298,7 @@ module AWS
|
|
291
298
|
|
292
299
|
security_group_opts(options)
|
293
300
|
|
294
|
-
options[:client_token] =
|
301
|
+
options[:client_token] = SecureRandom.uuid
|
295
302
|
|
296
303
|
resp = client.run_instances(options)
|
297
304
|
|
@@ -310,7 +317,9 @@ module AWS
|
|
310
317
|
response = filtered_request(:describe_instances)
|
311
318
|
response.reservation_set.each do |reservation|
|
312
319
|
reservation.instances_set.each do |i|
|
313
|
-
|
320
|
+
instance = Instance.new_from(:describe_instances, i,
|
321
|
+
i.instance_id, :config => config)
|
322
|
+
yield(instance)
|
314
323
|
end
|
315
324
|
end
|
316
325
|
end
|
@@ -17,7 +17,7 @@ module AWS
|
|
17
17
|
# Client class for Amazon ElastiCache.
|
18
18
|
class Client < Core::QueryClient
|
19
19
|
|
20
|
-
API_VERSION = '
|
20
|
+
API_VERSION = '2014-03-24'
|
21
21
|
|
22
22
|
signature_version :Version4, 'elasticache'
|
23
23
|
|
@@ -27,9 +27,12 @@ module AWS
|
|
27
27
|
end
|
28
28
|
|
29
29
|
class Client::V20130615 < Client
|
30
|
-
|
31
30
|
define_client_methods('2013-06-15')
|
31
|
+
end
|
32
32
|
|
33
|
+
class Client::V20140324 < Client
|
34
|
+
define_client_methods('2014-03-24')
|
33
35
|
end
|
36
|
+
|
34
37
|
end
|
35
38
|
end
|
data/lib/aws/glacier/vault.rb
CHANGED
@@ -20,6 +20,30 @@ module AWS
|
|
20
20
|
#
|
21
21
|
# You can use this class to get information about a certificate
|
22
22
|
# and to delete it.
|
23
|
+
#
|
24
|
+
# @attr [String] The name that identifies the server certificate.
|
25
|
+
#
|
26
|
+
# @attr_reader [String] The stable and unique string identifying
|
27
|
+
# the server certificate.
|
28
|
+
#
|
29
|
+
# @attr_reader [Time] The date when the server certificate was
|
30
|
+
# uploaded.
|
31
|
+
#
|
32
|
+
# @attr_reader [String] The Amazon Resource Name (ARN)
|
33
|
+
# specifying the server certificate. For more information
|
34
|
+
# about ARNs and how to use them in policies, see
|
35
|
+
# {http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html
|
36
|
+
# Identifiers for IAM Entities} in <i>Using AWS Identity and
|
37
|
+
# Access Management</i>.
|
38
|
+
#
|
39
|
+
# @attr [String] Path to the server certificate.
|
40
|
+
#
|
41
|
+
# @attr_reader [String] The contents of the public key
|
42
|
+
# certificate.
|
43
|
+
#
|
44
|
+
# @attr_reader [String] The contents of the public key
|
45
|
+
# certificate chain.
|
46
|
+
#
|
23
47
|
class ServerCertificate < Resource
|
24
48
|
|
25
49
|
prefix_update_attributes
|
@@ -30,27 +54,14 @@ module AWS
|
|
30
54
|
super(opts)
|
31
55
|
end
|
32
56
|
|
33
|
-
# @attr [String] The name that identifies the server
|
34
|
-
# certificate.
|
35
57
|
mutable_attribute :name, :static => true, :from => :server_certificate_name
|
36
58
|
|
37
|
-
# @attr_reader [String] The stable and unique string identifying
|
38
|
-
# the server certificate.
|
39
59
|
attribute :id, :static => true, :from => :server_certificate_id
|
40
60
|
|
41
|
-
# @attr_reader [Time] The date when the server certificate was
|
42
|
-
# uploaded.
|
43
61
|
attribute :upload_date, :static => true
|
44
62
|
|
45
|
-
# @attr_reader [String] The Amazon Resource Name (ARN)
|
46
|
-
# specifying the server certificate. For more information
|
47
|
-
# about ARNs and how to use them in policies, see
|
48
|
-
# {http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html
|
49
|
-
# Identifiers for IAM Entities} in <i>Using AWS Identity and
|
50
|
-
# Access Management</i>.
|
51
63
|
attribute :arn
|
52
64
|
|
53
|
-
# @attr [String] Path to the server certificate.
|
54
65
|
mutable_attribute :path do
|
55
66
|
translates_input do |path|
|
56
67
|
path = "/#{path}" unless path[0] == ?/
|
@@ -59,12 +70,8 @@ module AWS
|
|
59
70
|
end
|
60
71
|
end
|
61
72
|
|
62
|
-
# @attr_reader [String] The contents of the public key
|
63
|
-
# certificate.
|
64
73
|
attribute :certificate_body
|
65
74
|
|
66
|
-
# @attr_reader [String] The contents of the public key
|
67
|
-
# certificate chain.
|
68
75
|
attribute :certificate_chain
|
69
76
|
|
70
77
|
provider(:get_server_certificate) do |provider|
|