aws-sdk-core 2.1.0 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/apis/ecs/2014-11-13/api-2.json +20 -2
- data/apis/iam/2010-05-08/paginators-1.json +32 -0
- data/apis/iam/2010-05-08/resources-1.json +8 -0
- data/apis/iam/2010-05-08/waiters-2.json +22 -0
- data/bin/aws.rb +6 -0
- data/lib/aws-sdk-core.rb +15 -7
- data/lib/aws-sdk-core/api/docs/builder.rb +3 -3
- data/lib/aws-sdk-core/credential_provider.rb +5 -7
- data/lib/aws-sdk-core/dynamodb/attribute_value.rb +2 -2
- data/lib/aws-sdk-core/eager_loader.rb +5 -6
- data/lib/aws-sdk-core/iam.rb +1 -0
- data/lib/aws-sdk-core/instance_profile_credentials.rb +1 -1
- data/lib/aws-sdk-core/json/handler.rb +4 -4
- data/lib/aws-sdk-core/pageable_response.rb +44 -34
- data/lib/aws-sdk-core/pager.rb +2 -3
- data/lib/aws-sdk-core/plugins/ec2_copy_encrypted_snapshot.rb +2 -1
- data/lib/aws-sdk-core/plugins/response_paging.rb +1 -0
- data/lib/aws-sdk-core/shared_credentials.rb +2 -2
- data/lib/aws-sdk-core/signers/s3.rb +31 -3
- data/lib/aws-sdk-core/stubbing/protocols/ec2.rb +3 -5
- data/lib/aws-sdk-core/stubbing/protocols/rest_xml.rb +0 -1
- data/lib/aws-sdk-core/version.rb +1 -1
- data/lib/aws-sdk-core/xml/parser.rb +4 -1
- data/lib/aws-sdk-core/xml/parser/engines/oga.rb +39 -0
- data/lib/seahorse/client/http/request.rb +1 -1
- data/lib/seahorse/client/http/response.rb +5 -3
- metadata +5 -13
- data/apis/config/2014-10-17/api-2.json +0 -694
- data/apis/config/2014-10-17/paginators-1.json +0 -10
- data/apis/ec2/2014-10-01/api-2.json +0 -10267
- data/apis/ec2/2014-10-01/paginators-1.json +0 -125
- data/apis/ec2/2014-10-01/resources-1.json +0 -2289
- data/apis/ec2/2014-10-01/waiters-2.json +0 -453
- data/apis/ec2/2015-03-01/api-2.json +0 -11245
- data/apis/ec2/2015-03-01/paginators-1.json +0 -125
- data/apis/ec2/2015-03-01/resources-1.json +0 -2479
- data/apis/ec2/2015-03-01/waiters-2.json +0 -458
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e48a29b6d07bf2881c5ff4ed4192b67205f41c7b
|
4
|
+
data.tar.gz: e2cec76e3ec2e6409e4767a97b986b58096368bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 352e29c1deb5889f65b286e20a97106a0dc36d59390f7ec8c8666883868bf0399daf06de1a3fb53a42a6c2d0f773897b119df79e689527ca2e387668beae3d9c
|
7
|
+
data.tar.gz: b106dcab820a1d5f8c834784a732396941375167a24ba717b6f5704d7860ee24980e2fb2ec91e33f725d2c78b9fb48695d3aa79397e6fd42769cc7e5cbe883b0
|
@@ -854,7 +854,8 @@
|
|
854
854
|
"type":"structure",
|
855
855
|
"members":{
|
856
856
|
"name":{"shape":"String"},
|
857
|
-
"command":{"shape":"StringList"}
|
857
|
+
"command":{"shape":"StringList"},
|
858
|
+
"environment":{"shape":"EnvironmentVariables"}
|
858
859
|
}
|
859
860
|
},
|
860
861
|
"ContainerOverrides":{
|
@@ -1164,6 +1165,8 @@
|
|
1164
1165
|
"type":"structure",
|
1165
1166
|
"members":{
|
1166
1167
|
"familyPrefix":{"shape":"String"},
|
1168
|
+
"status":{"shape":"TaskDefinitionStatus"},
|
1169
|
+
"sort":{"shape":"SortOrder"},
|
1167
1170
|
"nextToken":{"shape":"String"},
|
1168
1171
|
"maxResults":{"shape":"BoxedInteger"}
|
1169
1172
|
}
|
@@ -1377,6 +1380,13 @@
|
|
1377
1380
|
"type":"list",
|
1378
1381
|
"member":{"shape":"Service"}
|
1379
1382
|
},
|
1383
|
+
"SortOrder":{
|
1384
|
+
"type":"string",
|
1385
|
+
"enum":[
|
1386
|
+
"ASC",
|
1387
|
+
"DESC"
|
1388
|
+
]
|
1389
|
+
},
|
1380
1390
|
"StartTaskRequest":{
|
1381
1391
|
"type":"structure",
|
1382
1392
|
"required":[
|
@@ -1471,9 +1481,17 @@
|
|
1471
1481
|
"containerDefinitions":{"shape":"ContainerDefinitions"},
|
1472
1482
|
"family":{"shape":"String"},
|
1473
1483
|
"revision":{"shape":"Integer"},
|
1474
|
-
"volumes":{"shape":"VolumeList"}
|
1484
|
+
"volumes":{"shape":"VolumeList"},
|
1485
|
+
"status":{"shape":"TaskDefinitionStatus"}
|
1475
1486
|
}
|
1476
1487
|
},
|
1488
|
+
"TaskDefinitionStatus":{
|
1489
|
+
"type":"string",
|
1490
|
+
"enum":[
|
1491
|
+
"ACTIVE",
|
1492
|
+
"INACTIVE"
|
1493
|
+
]
|
1494
|
+
},
|
1477
1495
|
"TaskOverride":{
|
1478
1496
|
"type":"structure",
|
1479
1497
|
"members":{
|
@@ -21,6 +21,38 @@
|
|
21
21
|
"limit_key": "MaxItems",
|
22
22
|
"result_key": "AccountAliases"
|
23
23
|
},
|
24
|
+
"ListAttachedGroupPolicies": {
|
25
|
+
"input_token": "Marker",
|
26
|
+
"output_token": "Marker",
|
27
|
+
"more_results": "IsTruncated",
|
28
|
+
"limit_key": "MaxItems",
|
29
|
+
"result_key": "AttachedPolicies"
|
30
|
+
},
|
31
|
+
"ListAttachedRolePolicies": {
|
32
|
+
"input_token": "Marker",
|
33
|
+
"output_token": "Marker",
|
34
|
+
"more_results": "IsTruncated",
|
35
|
+
"limit_key": "MaxItems",
|
36
|
+
"result_key": "AttachedPolicies"
|
37
|
+
},
|
38
|
+
"ListAttachedUserPolicies": {
|
39
|
+
"input_token": "Marker",
|
40
|
+
"output_token": "Marker",
|
41
|
+
"more_results": "IsTruncated",
|
42
|
+
"limit_key": "MaxItems",
|
43
|
+
"result_key": "AttachedPolicies"
|
44
|
+
},
|
45
|
+
"ListEntitiesForPolicy": {
|
46
|
+
"input_token": "Marker",
|
47
|
+
"output_token": "Marker",
|
48
|
+
"more_results": "IsTruncated",
|
49
|
+
"limit_key": "MaxItems",
|
50
|
+
"result_key": [
|
51
|
+
"PolicyGroups",
|
52
|
+
"PolicyUsers",
|
53
|
+
"PolicyRoles"
|
54
|
+
]
|
55
|
+
},
|
24
56
|
"ListGroupPolicies": {
|
25
57
|
"input_token": "Marker",
|
26
58
|
"output_token": "Marker",
|
@@ -1497,6 +1497,14 @@
|
|
1497
1497
|
}
|
1498
1498
|
}
|
1499
1499
|
},
|
1500
|
+
"waiters": {
|
1501
|
+
"Exists": {
|
1502
|
+
"waiterName": "UserExists",
|
1503
|
+
"params": [
|
1504
|
+
{ "target": "UserName", "source": "identifier", "name": "Name" }
|
1505
|
+
]
|
1506
|
+
}
|
1507
|
+
},
|
1500
1508
|
"has": {
|
1501
1509
|
"AccessKey": {
|
1502
1510
|
"resource": {
|
@@ -0,0 +1,22 @@
|
|
1
|
+
{
|
2
|
+
"version": 2,
|
3
|
+
"waiters": {
|
4
|
+
"UserExists": {
|
5
|
+
"delay": 1,
|
6
|
+
"operation": "GetUser",
|
7
|
+
"maxAttempts": 20,
|
8
|
+
"acceptors": [
|
9
|
+
{
|
10
|
+
"state": "success",
|
11
|
+
"matcher": "status",
|
12
|
+
"expected": 200
|
13
|
+
},
|
14
|
+
{
|
15
|
+
"state": "retry",
|
16
|
+
"matcher": "error",
|
17
|
+
"expected": "NoSuchEntity"
|
18
|
+
}
|
19
|
+
]
|
20
|
+
}
|
21
|
+
}
|
22
|
+
}
|
data/bin/aws.rb
CHANGED
data/lib/aws-sdk-core.rb
CHANGED
@@ -191,7 +191,6 @@ module Aws
|
|
191
191
|
# @api private
|
192
192
|
module Signers
|
193
193
|
autoload :Base, 'aws-sdk-core/signers/base'
|
194
|
-
autoload :Handler, 'aws-sdk-core/signers/handler'
|
195
194
|
autoload :S3, 'aws-sdk-core/signers/s3'
|
196
195
|
autoload :V2, 'aws-sdk-core/signers/v2'
|
197
196
|
autoload :V3, 'aws-sdk-core/signers/v3'
|
@@ -285,16 +284,25 @@ module Aws
|
|
285
284
|
eager_loader = EagerLoader.new
|
286
285
|
eager_loader.load(JMESPath)
|
287
286
|
eager_loader.load(Seahorse)
|
288
|
-
(options
|
289
|
-
|
290
|
-
eager_loader.load(Aws.const_get(svc_name))
|
291
|
-
rescue NameError
|
292
|
-
raise ArgumentError, "invalid service Aws::#{svc_name}"
|
293
|
-
end
|
287
|
+
sub_modules(options).each do |module_or_class|
|
288
|
+
eager_loader.load(module_or_class)
|
294
289
|
end
|
295
290
|
eager_loader
|
296
291
|
end
|
297
292
|
|
293
|
+
def sub_modules(options = {})
|
294
|
+
constants = Aws.constants.map(&:to_s)
|
295
|
+
if options[:services]
|
296
|
+
constants -= SERVICE_MODULE_NAMES
|
297
|
+
constants += options[:services] || SERVICE_MODULE_NAMES
|
298
|
+
end
|
299
|
+
constants.inject([]) do |modules, const_name|
|
300
|
+
constant = Aws.const_get(const_name)
|
301
|
+
modules << constant if Module === constant
|
302
|
+
modules
|
303
|
+
end
|
304
|
+
end
|
305
|
+
|
298
306
|
# Yields to the given block for each service that has already been
|
299
307
|
# defined via {add_service}. Also yields to the given block for
|
300
308
|
# each new service added after the callback is registered.
|
@@ -38,7 +38,7 @@ module Aws
|
|
38
38
|
|
39
39
|
def service_docstring
|
40
40
|
path = "doc-src/services/#{@svc_name}/service.md"
|
41
|
-
path = 'doc-src/services/default/service.md' unless File.
|
41
|
+
path = 'doc-src/services/default/service.md' unless File.exist?(path)
|
42
42
|
template = read(path)
|
43
43
|
svc_name = @svc_name
|
44
44
|
api = @api
|
@@ -62,7 +62,7 @@ module Aws
|
|
62
62
|
|
63
63
|
def errors_docstring
|
64
64
|
path = "doc-src/services/#{@svc_name}/errors.md"
|
65
|
-
path = 'doc-src/services/default/errors.md' unless File.
|
65
|
+
path = 'doc-src/services/default/errors.md' unless File.exist?(path)
|
66
66
|
template = read(path)
|
67
67
|
svc_name = @svc_name
|
68
68
|
api = @api
|
@@ -90,7 +90,7 @@ module Aws
|
|
90
90
|
|
91
91
|
def client_docstring
|
92
92
|
path = "doc-src/services/#{@svc_name}/client.md"
|
93
|
-
path = 'doc-src/services/default/client.md' unless File.
|
93
|
+
path = 'doc-src/services/default/client.md' unless File.exist?(path)
|
94
94
|
render(path)
|
95
95
|
end
|
96
96
|
|
@@ -4,13 +4,11 @@ module Aws
|
|
4
4
|
extend Deprecations
|
5
5
|
|
6
6
|
# @return [Credentials]
|
7
|
-
|
8
|
-
@credentials
|
9
|
-
end
|
7
|
+
attr_reader :credentials
|
10
8
|
|
11
9
|
# @return [Boolean]
|
12
10
|
def set?
|
13
|
-
|
11
|
+
!!credentials && credentials.set?
|
14
12
|
end
|
15
13
|
|
16
14
|
# @deprecated Deprecated in 2.1.0. This method is subject to errors
|
@@ -18,7 +16,7 @@ module Aws
|
|
18
16
|
# objects. Will be removed in 2.2.0.
|
19
17
|
# @see #credentials
|
20
18
|
def access_key_id
|
21
|
-
|
19
|
+
credentials ? credentials.access_key_id : nil
|
22
20
|
end
|
23
21
|
deprecated(:access_key_id, use: '#credentials')
|
24
22
|
|
@@ -27,7 +25,7 @@ module Aws
|
|
27
25
|
# objects. Will be removed in 2.2.0.
|
28
26
|
# @see #credentials
|
29
27
|
def secret_access_key
|
30
|
-
|
28
|
+
credentials ? credentials.secret_access_key : nil
|
31
29
|
end
|
32
30
|
deprecated(:secret_access_key, use: '#credentials')
|
33
31
|
|
@@ -36,7 +34,7 @@ module Aws
|
|
36
34
|
# objects. Will be removed in 2.2.0.
|
37
35
|
# @see #credentials
|
38
36
|
def session_token
|
39
|
-
|
37
|
+
credentials ? credentials.session_token : nil
|
40
38
|
end
|
41
39
|
deprecated(:session_token, use: '#credentials')
|
42
40
|
|
@@ -66,8 +66,8 @@ module Aws
|
|
66
66
|
type, value = extract_type_and_value(obj)
|
67
67
|
case type
|
68
68
|
when :m
|
69
|
-
value.each.with_object({}) do |(
|
70
|
-
map[
|
69
|
+
value.each.with_object({}) do |(k, v), map|
|
70
|
+
map[k] = format(v)
|
71
71
|
end
|
72
72
|
when :l then value.map { |v| format(v) }
|
73
73
|
when :s then value
|
@@ -17,12 +17,11 @@ module Aws
|
|
17
17
|
@loaded << klass_or_module
|
18
18
|
klass_or_module.constants.each do |const_name|
|
19
19
|
path = klass_or_module.autoload?(const_name)
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
end
|
20
|
+
begin
|
21
|
+
require(path) if path
|
22
|
+
const = klass_or_module.const_get(const_name)
|
23
|
+
self.load(const) if Module === const && !@loaded.include?(const)
|
24
|
+
rescue LoadError
|
26
25
|
end
|
27
26
|
end
|
28
27
|
self
|
data/lib/aws-sdk-core/iam.rb
CHANGED
@@ -8,10 +8,10 @@ module Aws
|
|
8
8
|
# @return [Seahorse::Client::Response]
|
9
9
|
def call(context)
|
10
10
|
build_request(context)
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
response = @handler.call(context)
|
12
|
+
response.on(200..299) { |resp| parse_response(resp) }
|
13
|
+
response.on(200..599) { |resp| apply_request_id(context) }
|
14
|
+
response
|
15
15
|
end
|
16
16
|
|
17
17
|
private
|
@@ -2,38 +2,39 @@ module Aws
|
|
2
2
|
|
3
3
|
# Decorates a {Seahorse::Client::Response} with paging methods:
|
4
4
|
#
|
5
|
-
#
|
6
|
-
#
|
5
|
+
# resp = s3.list_objects(params)
|
6
|
+
# resp.last_page?
|
7
7
|
# #=> false
|
8
8
|
#
|
9
9
|
# # sends a request to receive the next response page
|
10
|
-
#
|
11
|
-
#
|
10
|
+
# resp = resp.next_page
|
11
|
+
# resp.last_page?
|
12
12
|
# #=> true
|
13
13
|
#
|
14
|
-
#
|
14
|
+
# resp.next_page
|
15
15
|
# #=> raises PageableResponse::LastPageError
|
16
16
|
#
|
17
17
|
# You can enumerate all response pages with a block
|
18
18
|
#
|
19
|
-
#
|
20
|
-
# page.each do |page|
|
19
|
+
# ec2.describe_instances(params).each do |page|
|
21
20
|
# # yields once per page
|
21
|
+
# page.reservations.each do |r|
|
22
|
+
# # ...
|
23
|
+
# end
|
22
24
|
# end
|
23
25
|
#
|
24
26
|
# Or using {#next_page} and {#last_page?}:
|
25
27
|
#
|
26
|
-
#
|
27
|
-
#
|
28
|
-
#
|
29
|
-
# @note Normally you should not need to construct a {PageableResponse}
|
30
|
-
# directly. The {Plugins::ResponsePaging} plugin automatically
|
31
|
-
# decorates all responses with a {PageableResponse}.
|
28
|
+
# resp.last_page?
|
29
|
+
# resp = resp.next_page until resp.last_page?
|
32
30
|
#
|
33
31
|
module PageableResponse
|
34
32
|
|
35
|
-
def self.
|
36
|
-
base.send(:
|
33
|
+
def self.extended(base)
|
34
|
+
base.send(:extend, Enumerable)
|
35
|
+
base.send(:extend, UnsafeEnumerableMethods)
|
36
|
+
base.instance_variable_set("@last_page", nil)
|
37
|
+
base.instance_variable_set("@more_results", nil)
|
37
38
|
end
|
38
39
|
|
39
40
|
# @return [Paging::Pager]
|
@@ -79,24 +80,6 @@ module Aws
|
|
79
80
|
end
|
80
81
|
alias each_page each
|
81
82
|
|
82
|
-
# @api private
|
83
|
-
def count
|
84
|
-
if respond_to?(:count)
|
85
|
-
data.count
|
86
|
-
else
|
87
|
-
raise NotImplementedError
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
# @api private
|
92
|
-
def respond_to?(method_name, *args)
|
93
|
-
if method_name == :count
|
94
|
-
data.respond_to?(:count)
|
95
|
-
else
|
96
|
-
super
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
83
|
private
|
101
84
|
|
102
85
|
# @param [Hash] params A hash of additional request params to
|
@@ -114,7 +97,7 @@ module Aws
|
|
114
97
|
# @return [Hash] Returns the hash of request parameters for the
|
115
98
|
# next page, merging any given params.
|
116
99
|
def next_page_params(params)
|
117
|
-
context.
|
100
|
+
context[:original_params].merge(@pager.next_tokens(self).merge(params))
|
118
101
|
end
|
119
102
|
|
120
103
|
# Raised when calling {PageableResponse#next_page} on a pager that
|
@@ -133,5 +116,32 @@ module Aws
|
|
133
116
|
|
134
117
|
end
|
135
118
|
|
119
|
+
# A handful of Enumerable methods, such as #count are not safe
|
120
|
+
# to call on a pageable response, as this would trigger n api calls
|
121
|
+
# simply to count the number of response pages, when likely what is
|
122
|
+
# wanted is to access count on the data. Same for #to_h.
|
123
|
+
module UnsafeEnumerableMethods
|
124
|
+
|
125
|
+
def count
|
126
|
+
if data.respond_to?(:count)
|
127
|
+
data.count
|
128
|
+
else
|
129
|
+
raise NoMethodError, "undefined method `count'"
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
def respond_to?(method_name, *args)
|
134
|
+
if method_name == :count
|
135
|
+
data.respond_to?(:count)
|
136
|
+
else
|
137
|
+
false
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
def to_h
|
142
|
+
data.to_h
|
143
|
+
end
|
144
|
+
|
145
|
+
end
|
136
146
|
end
|
137
147
|
end
|