aws-sdk 1.38.0 → 1.39.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.
- 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|
|