aws-sdk-core 2.0.3 → 2.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/apis/CognitoIdentity.api.json +16 -4
- data/apis/EC2.paginators.json +3 -0
- data/apis/ElastiCache.api.json +164 -15
- data/apis/IAM.api.json +326 -1
- data/apis/IAM.resources.json +2 -29
- data/apis/Route53Domains.api.json +56 -0
- data/apis/S3.api.json +1 -1
- data/endpoints.json +62 -76
- data/lib/aws-sdk-core.rb +4 -14
- data/lib/aws-sdk-core/api/documenter.rb +1 -1
- data/lib/aws-sdk-core/api/service_customizations.rb +1 -0
- data/lib/aws-sdk-core/assume_role_credentials.rb +46 -0
- data/lib/aws-sdk-core/autoscaling.rb +3 -3
- data/lib/aws-sdk-core/cloudformation.rb +3 -3
- data/lib/aws-sdk-core/cloudfront.rb +4 -4
- data/lib/aws-sdk-core/cloudsearch.rb +3 -3
- data/lib/aws-sdk-core/cloudsearchdomain.rb +2 -2
- data/lib/aws-sdk-core/cloudtrail.rb +3 -3
- data/lib/aws-sdk-core/cloudwatch.rb +3 -3
- data/lib/aws-sdk-core/cloudwatchlogs.rb +3 -3
- data/lib/aws-sdk-core/cognitoidentity.rb +2 -2
- data/lib/aws-sdk-core/cognitosync.rb +2 -2
- data/lib/aws-sdk-core/datapipeline.rb +3 -3
- data/lib/aws-sdk-core/directconnect.rb +3 -3
- data/lib/aws-sdk-core/dynamodb.rb +4 -4
- data/lib/aws-sdk-core/ec2.rb +5 -5
- data/lib/aws-sdk-core/elasticache.rb +3 -3
- data/lib/aws-sdk-core/elasticbeanstalk.rb +3 -3
- data/lib/aws-sdk-core/elasticloadbalancing.rb +3 -3
- data/lib/aws-sdk-core/elastictranscoder.rb +4 -4
- data/lib/aws-sdk-core/emr.rb +3 -3
- data/lib/aws-sdk-core/endpoint_provider.rb +16 -78
- data/lib/aws-sdk-core/glacier.rb +5 -5
- data/lib/aws-sdk-core/iam.rb +4 -4
- data/lib/aws-sdk-core/importexport.rb +3 -3
- data/lib/aws-sdk-core/instance_profile_credentials.rb +13 -45
- data/lib/aws-sdk-core/kinesis.rb +3 -3
- data/lib/aws-sdk-core/opsworks.rb +4 -4
- data/lib/aws-sdk-core/pageable_response.rb +18 -0
- data/lib/aws-sdk-core/plugins/regional_endpoint.rb +1 -5
- data/lib/aws-sdk-core/plugins/request_signer.rb +3 -9
- data/lib/aws-sdk-core/plugins/s3_region_detection.rb +157 -0
- data/lib/aws-sdk-core/plugins/stub_responses.rb +13 -1
- data/lib/aws-sdk-core/rds.rb +4 -4
- data/lib/aws-sdk-core/redshift.rb +4 -4
- data/lib/aws-sdk-core/refreshing_credentials.rb +73 -0
- data/lib/aws-sdk-core/route53.rb +3 -3
- data/lib/aws-sdk-core/route53domains.rb +2 -2
- data/lib/aws-sdk-core/s3.rb +24 -5
- data/lib/aws-sdk-core/s3/bucket_region_cache.rb +75 -0
- data/lib/aws-sdk-core/ses.rb +4 -4
- data/lib/aws-sdk-core/signers/v4.rb +1 -1
- data/lib/aws-sdk-core/simpledb.rb +3 -3
- data/lib/aws-sdk-core/sns.rb +4 -4
- data/lib/aws-sdk-core/sqs.rb +4 -4
- data/lib/aws-sdk-core/storagegateway.rb +3 -3
- data/lib/aws-sdk-core/sts.rb +2 -2
- data/lib/aws-sdk-core/support.rb +3 -3
- data/lib/aws-sdk-core/swf.rb +3 -3
- data/lib/aws-sdk-core/version.rb +1 -1
- metadata +6 -2
data/apis/IAM.resources.json
CHANGED
@@ -199,7 +199,7 @@
|
|
199
199
|
{ "name": "UserName" },
|
200
200
|
{ "name": "Id" }
|
201
201
|
],
|
202
|
-
"shape": "
|
202
|
+
"shape": "AccessKey",
|
203
203
|
"actions": {
|
204
204
|
"Activate": {
|
205
205
|
"request": {
|
@@ -233,33 +233,6 @@
|
|
233
233
|
}
|
234
234
|
}
|
235
235
|
},
|
236
|
-
"AccessKeyPair": {
|
237
|
-
"identifiers": [
|
238
|
-
{ "name": "UserName" },
|
239
|
-
{ "name": "Id" }
|
240
|
-
],
|
241
|
-
"shape": "AccessKey",
|
242
|
-
"hasOne": {
|
243
|
-
"AccessKey": {
|
244
|
-
"resource": {
|
245
|
-
"type": "AccessKey",
|
246
|
-
"identifiers": [
|
247
|
-
{ "target":"UserName", "sourceType":"identifier", "source":"UserName" },
|
248
|
-
{ "target":"Id", "sourceType":"identifier", "source":"Id" }
|
249
|
-
]
|
250
|
-
}
|
251
|
-
},
|
252
|
-
"User": {
|
253
|
-
"resource": {
|
254
|
-
"type": "AccessKey",
|
255
|
-
"identifiers": [
|
256
|
-
{ "target":"UserName", "sourceType":"identifier", "source":"UserName" },
|
257
|
-
{ "target":"Id", "sourceType":"identifier", "source":"Id" }
|
258
|
-
]
|
259
|
-
}
|
260
|
-
}
|
261
|
-
}
|
262
|
-
},
|
263
236
|
"AccountAlias": {
|
264
237
|
"identifiers": [
|
265
238
|
{ "name": "Name" }
|
@@ -830,7 +803,7 @@
|
|
830
803
|
]
|
831
804
|
},
|
832
805
|
"resource": {
|
833
|
-
"type": "
|
806
|
+
"type": "AccessKey",
|
834
807
|
"identifiers": [
|
835
808
|
{ "target":"UserName", "sourceType":"identifier", "source":"Name" },
|
836
809
|
{ "target":"Id", "sourceType":"responsePath", "source":"AccessKey.AccessKeyId" }
|
@@ -30,6 +30,22 @@
|
|
30
30
|
}
|
31
31
|
]
|
32
32
|
},
|
33
|
+
"DisableDomainAutoRenew":{
|
34
|
+
"name":"DisableDomainAutoRenew",
|
35
|
+
"http":{
|
36
|
+
"method":"POST",
|
37
|
+
"requestUri":"/"
|
38
|
+
},
|
39
|
+
"input":{"shape":"DisableDomainAutoRenewRequest"},
|
40
|
+
"output":{"shape":"DisableDomainAutoRenewResponse"},
|
41
|
+
"errors":[
|
42
|
+
{
|
43
|
+
"shape":"InvalidInput",
|
44
|
+
"error":{"httpStatusCode":400},
|
45
|
+
"exception":true
|
46
|
+
}
|
47
|
+
]
|
48
|
+
},
|
33
49
|
"DisableDomainTransferLock":{
|
34
50
|
"name":"DisableDomainTransferLock",
|
35
51
|
"http":{
|
@@ -61,6 +77,22 @@
|
|
61
77
|
}
|
62
78
|
]
|
63
79
|
},
|
80
|
+
"EnableDomainAutoRenew":{
|
81
|
+
"name":"EnableDomainAutoRenew",
|
82
|
+
"http":{
|
83
|
+
"method":"POST",
|
84
|
+
"requestUri":"/"
|
85
|
+
},
|
86
|
+
"input":{"shape":"EnableDomainAutoRenewRequest"},
|
87
|
+
"output":{"shape":"EnableDomainAutoRenewResponse"},
|
88
|
+
"errors":[
|
89
|
+
{
|
90
|
+
"shape":"InvalidInput",
|
91
|
+
"error":{"httpStatusCode":400},
|
92
|
+
"exception":true
|
93
|
+
}
|
94
|
+
]
|
95
|
+
},
|
64
96
|
"EnableDomainTransferLock":{
|
65
97
|
"name":"EnableDomainTransferLock",
|
66
98
|
"http":{
|
@@ -646,6 +678,18 @@
|
|
646
678
|
]
|
647
679
|
},
|
648
680
|
"DNSSec":{"type":"string"},
|
681
|
+
"DisableDomainAutoRenewRequest":{
|
682
|
+
"type":"structure",
|
683
|
+
"required":["DomainName"],
|
684
|
+
"members":{
|
685
|
+
"DomainName":{"shape":"DomainName"}
|
686
|
+
}
|
687
|
+
},
|
688
|
+
"DisableDomainAutoRenewResponse":{
|
689
|
+
"type":"structure",
|
690
|
+
"members":{
|
691
|
+
}
|
692
|
+
},
|
649
693
|
"DisableDomainTransferLockRequest":{
|
650
694
|
"type":"structure",
|
651
695
|
"required":["DomainName"],
|
@@ -726,6 +770,18 @@
|
|
726
770
|
"type":"string",
|
727
771
|
"max":254
|
728
772
|
},
|
773
|
+
"EnableDomainAutoRenewRequest":{
|
774
|
+
"type":"structure",
|
775
|
+
"required":["DomainName"],
|
776
|
+
"members":{
|
777
|
+
"DomainName":{"shape":"DomainName"}
|
778
|
+
}
|
779
|
+
},
|
780
|
+
"EnableDomainAutoRenewResponse":{
|
781
|
+
"type":"structure",
|
782
|
+
"members":{
|
783
|
+
}
|
784
|
+
},
|
729
785
|
"EnableDomainTransferLockRequest":{
|
730
786
|
"type":"structure",
|
731
787
|
"required":["DomainName"],
|
data/apis/S3.api.json
CHANGED
data/endpoints.json
CHANGED
@@ -1,77 +1,63 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
"
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
"
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
"
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
}
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
"
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
}
|
63
|
-
},
|
64
|
-
{
|
65
|
-
"services": ["cloudfront", "iam", "importexport", "route53", "sts"],
|
66
|
-
"config": {
|
67
|
-
"endpoint": "{scheme}://{service}.amazonaws.com"
|
68
|
-
}
|
69
|
-
},
|
70
|
-
{
|
71
|
-
"config": {
|
72
|
-
"endpoint": "{scheme}://{service}.{region}.amazonaws.com"
|
73
|
-
}
|
74
|
-
}
|
75
|
-
]
|
1
|
+
{
|
2
|
+
"version": 2,
|
3
|
+
"endpoints": {
|
4
|
+
"*/*": {
|
5
|
+
"endpoint": "{service}.{region}.amazonaws.com"
|
6
|
+
},
|
7
|
+
"cn-north-1/*": {
|
8
|
+
"endpoint": "{service}.{region}.amazonaws.com.cn",
|
9
|
+
"signatureVersion": "v4"
|
10
|
+
},
|
11
|
+
"us-gov-west-1/iam": {
|
12
|
+
"endpoint": "iam.us-gov.amazonaws.com"
|
13
|
+
},
|
14
|
+
"us-gov-west-1/sts": {
|
15
|
+
"endpoint": "sts.us-gov.amazonaws.com"
|
16
|
+
},
|
17
|
+
"us-gov-west-1/s3": {
|
18
|
+
"endpoint": "s3-{region}.amazonaws.com"
|
19
|
+
},
|
20
|
+
"*/cloudfront": {
|
21
|
+
"endpoint": "cloudfront.amazonaws.com"
|
22
|
+
},
|
23
|
+
"*/iam": {
|
24
|
+
"endpoint": "iam.amazonaws.com"
|
25
|
+
},
|
26
|
+
"*/importexport": {
|
27
|
+
"endpoint": "importexport.amazonaws.com"
|
28
|
+
},
|
29
|
+
"*/route53": {
|
30
|
+
"endpoint": "route53.amazonaws.com"
|
31
|
+
},
|
32
|
+
"*/sts": {
|
33
|
+
"endpoint": "sts.amazonaws.com"
|
34
|
+
},
|
35
|
+
"us-east-1/sdb": {
|
36
|
+
"endpoint": "sdb.amazonaws.com"
|
37
|
+
},
|
38
|
+
"us-east-1/s3": {
|
39
|
+
"endpoint": "s3.amazonaws.com"
|
40
|
+
},
|
41
|
+
"us-west-1/s3": {
|
42
|
+
"endpoint": "s3-{region}.amazonaws.com"
|
43
|
+
},
|
44
|
+
"us-west-2/s3": {
|
45
|
+
"endpoint": "s3-{region}.amazonaws.com"
|
46
|
+
},
|
47
|
+
"eu-west-1/s3": {
|
48
|
+
"endpoint": "s3-{region}.amazonaws.com"
|
49
|
+
},
|
50
|
+
"ap-southeast-1/s3": {
|
51
|
+
"endpoint": "s3-{region}.amazonaws.com"
|
52
|
+
},
|
53
|
+
"ap-southeast-2/s3": {
|
54
|
+
"endpoint": "s3-{region}.amazonaws.com"
|
55
|
+
},
|
56
|
+
"ap-northeast-1/s3": {
|
57
|
+
"endpoint": "s3-{region}.amazonaws.com"
|
58
|
+
},
|
59
|
+
"sa-east-1/s3": {
|
60
|
+
"endpoint": "s3-{region}.amazonaws.com"
|
61
|
+
}
|
76
62
|
}
|
77
|
-
|
63
|
+
}
|
data/lib/aws-sdk-core.rb
CHANGED
@@ -12,10 +12,7 @@ Seahorse::Util.irregular_inflections({
|
|
12
12
|
module Aws
|
13
13
|
|
14
14
|
# @api private
|
15
|
-
|
16
|
-
|
17
|
-
# @api private
|
18
|
-
APIS_DIR = File.join(GEM_ROOT, 'apis')
|
15
|
+
API_DIR = File.join(File.dirname(File.dirname(__FILE__)), 'apis')
|
19
16
|
|
20
17
|
# @api private
|
21
18
|
# services
|
@@ -67,6 +64,7 @@ module Aws
|
|
67
64
|
autoload const_name, "aws-sdk-core/#{const_name.downcase}"
|
68
65
|
end
|
69
66
|
|
67
|
+
autoload :AssumeRoleCredentials, 'aws-sdk-core/assume_role_credentials'
|
70
68
|
autoload :Client, 'aws-sdk-core/client'
|
71
69
|
autoload :ClientPaging, 'aws-sdk-core/client_paging'
|
72
70
|
autoload :ClientStubs, 'aws-sdk-core/client_stubs'
|
@@ -79,6 +77,7 @@ module Aws
|
|
79
77
|
autoload :InstanceProfileCredentials, 'aws-sdk-core/instance_profile_credentials'
|
80
78
|
autoload :PageableResponse, 'aws-sdk-core/pageable_response'
|
81
79
|
autoload :RestBodyHandler, 'aws-sdk-core/rest_body_handler'
|
80
|
+
autoload :RefreshingCredentials, 'aws-sdk-core/refreshing_credentials'
|
82
81
|
autoload :Service, 'aws-sdk-core/service'
|
83
82
|
autoload :SharedCredentials, 'aws-sdk-core/shared_credentials'
|
84
83
|
autoload :Structure, 'aws-sdk-core/structure'
|
@@ -137,6 +136,7 @@ module Aws
|
|
137
136
|
autoload :S3LocationConstraint, 'aws-sdk-core/plugins/s3_location_constraint'
|
138
137
|
autoload :S3Md5s, 'aws-sdk-core/plugins/s3_md5s'
|
139
138
|
autoload :S3Redirects, 'aws-sdk-core/plugins/s3_redirects'
|
139
|
+
autoload :S3RegionDetection, 'aws-sdk-core/plugins/s3_region_detection'
|
140
140
|
autoload :S3SseCpk, 'aws-sdk-core/plugins/s3_sse_cpk'
|
141
141
|
autoload :S3UrlEncodedKeys, 'aws-sdk-core/plugins/s3_url_encoded_keys'
|
142
142
|
autoload :SQSQueueUrls, 'aws-sdk-core/plugins/sqs_queue_urls'
|
@@ -261,18 +261,8 @@ module Aws
|
|
261
261
|
|
262
262
|
# build service client classes
|
263
263
|
service_added do |name, svc_module, options|
|
264
|
-
|
265
264
|
svc_module.const_set(:Client, Client.define(name, options))
|
266
265
|
svc_module.const_set(:Errors, Module.new { extend Errors::DynamicErrors })
|
267
|
-
|
268
|
-
# temporary workaround for issue with S3 waiter definition
|
269
|
-
if name == 'S3'
|
270
|
-
defs = svc_module::Client.waiters.instance_variable_get("@definitions")
|
271
|
-
defs[:bucket_exists]['ignore_errors'] = ['NotFound']
|
272
|
-
defs[:object_exists]['ignore_errors'] = ['NotFound']
|
273
|
-
defs[:bucket_not_exists]['success_value'] = 'NotFound'
|
274
|
-
defs[:object_not_exists]['success_value'] = 'NotFound'
|
275
|
-
end
|
276
266
|
end
|
277
267
|
|
278
268
|
end
|
@@ -173,7 +173,7 @@ Constructs an API client.
|
|
173
173
|
m.scope = :instance
|
174
174
|
m.parameters << ['waiter_name', nil]
|
175
175
|
m.parameters << ['params', '{}']
|
176
|
-
m.docstring = YARD::Registry['Aws::
|
176
|
+
m.docstring = YARD::Registry['Aws::ClientWaiters#wait_until'].docstring
|
177
177
|
|
178
178
|
waiters = @client_class.waiters.waiter_names.sort.inject('') do |w,name|
|
179
179
|
operation = @client_class.waiters.waiter(name).send(:operation_name)
|
@@ -102,6 +102,7 @@ module Aws
|
|
102
102
|
add_plugin 'Aws::Plugins::S3Redirects'
|
103
103
|
add_plugin 'Aws::Plugins::S3SseCpk'
|
104
104
|
add_plugin 'Aws::Plugins::S3UrlEncodedKeys'
|
105
|
+
add_plugin 'Aws::Plugins::S3RegionDetection'
|
105
106
|
defs = client_class.waiters.instance_variable_get("@definitions")
|
106
107
|
defs[:bucket_exists]['ignore_errors'] = ['NotFound']
|
107
108
|
defs[:object_exists]['ignore_errors'] = ['NotFound']
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module Aws
|
2
|
+
|
3
|
+
# An auto-refreshing credential provider that works by assuming
|
4
|
+
# a role via {Aws::STS::Client#assume_role}.
|
5
|
+
#
|
6
|
+
# role_credentials = Aws::AssumeRoleCredentials.new(
|
7
|
+
# client: Aws::STS::Client.new(...),
|
8
|
+
# role_arn: "linked::account::arn",
|
9
|
+
# role_session_name: "session-name"
|
10
|
+
# )
|
11
|
+
#
|
12
|
+
# ec2 = Aws::EC2::Client.new(credentials: role_credentials)
|
13
|
+
#
|
14
|
+
# If you omit `:client` option, a new {STS::Client} object will be
|
15
|
+
# constructed.
|
16
|
+
class AssumeRoleCredentials < Credentials
|
17
|
+
|
18
|
+
include RefreshingCredentials
|
19
|
+
|
20
|
+
# @option options [required, String] :role_arn
|
21
|
+
# @option options [required, String] :role_session_name
|
22
|
+
# @option options [String] :policy
|
23
|
+
# @option options [Integer] :duration_seconds
|
24
|
+
# @option options [String] :external_id
|
25
|
+
# @option opitons [STS::Client] :client
|
26
|
+
def initialize(options = {})
|
27
|
+
@options = options.dup
|
28
|
+
@client = @options.delete(:client) || STS::Client.new
|
29
|
+
super
|
30
|
+
end
|
31
|
+
|
32
|
+
# @return [STS::Client]
|
33
|
+
attr_reader :client
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def refresh
|
38
|
+
creds = @client.assume_role(@options).credentials
|
39
|
+
@access_key_id = creds.access_key_id
|
40
|
+
@secret_access_key = creds.secret_access_key
|
41
|
+
@session_token = creds.session_token
|
42
|
+
@expiration = creds.expiration
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
46
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
Aws.add_service(:AutoScaling, {
|
2
|
-
api: File.join(Aws::
|
3
|
-
docs: File.join(Aws::
|
4
|
-
paginators: File.join(Aws::
|
2
|
+
api: File.join(Aws::API_DIR, 'AutoScaling.api.json'),
|
3
|
+
docs: File.join(Aws::API_DIR, 'AutoScaling.docs.json'),
|
4
|
+
paginators: File.join(Aws::API_DIR, 'AutoScaling.paginators.json'),
|
5
5
|
})
|
@@ -1,5 +1,5 @@
|
|
1
1
|
Aws.add_service(:CloudFormation, {
|
2
|
-
api: File.join(Aws::
|
3
|
-
docs: File.join(Aws::
|
4
|
-
paginators: File.join(Aws::
|
2
|
+
api: File.join(Aws::API_DIR, 'CloudFormation.api.json'),
|
3
|
+
docs: File.join(Aws::API_DIR, 'CloudFormation.docs.json'),
|
4
|
+
paginators: File.join(Aws::API_DIR, 'CloudFormation.paginators.json'),
|
5
5
|
})
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Aws.add_service(:CloudFront, {
|
2
|
-
api: File.join(Aws::
|
3
|
-
docs: File.join(Aws::
|
4
|
-
paginators: File.join(Aws::
|
5
|
-
waiters: File.join(Aws::
|
2
|
+
api: File.join(Aws::API_DIR, 'CloudFront.api.json'),
|
3
|
+
docs: File.join(Aws::API_DIR, 'CloudFront.docs.json'),
|
4
|
+
paginators: File.join(Aws::API_DIR, 'CloudFront.paginators.json'),
|
5
|
+
waiters: File.join(Aws::API_DIR, 'CloudFront.waiters.json'),
|
6
6
|
})
|
@@ -1,5 +1,5 @@
|
|
1
1
|
Aws.add_service(:CloudSearch, {
|
2
|
-
api: File.join(Aws::
|
3
|
-
docs: File.join(Aws::
|
4
|
-
paginators: File.join(Aws::
|
2
|
+
api: File.join(Aws::API_DIR, 'CloudSearch.api.json'),
|
3
|
+
docs: File.join(Aws::API_DIR, 'CloudSearch.docs.json'),
|
4
|
+
paginators: File.join(Aws::API_DIR, 'CloudSearch.paginators.json'),
|
5
5
|
})
|
@@ -1,4 +1,4 @@
|
|
1
1
|
Aws.add_service(:CloudSearchDomain, {
|
2
|
-
api: File.join(Aws::
|
3
|
-
docs: File.join(Aws::
|
2
|
+
api: File.join(Aws::API_DIR, 'CloudSearchDomain.api.json'),
|
3
|
+
docs: File.join(Aws::API_DIR, 'CloudSearchDomain.docs.json'),
|
4
4
|
})
|