aws-sdk-core 2.0.0.rc1 → 2.0.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/README.md +6 -3
- data/Rakefile +2 -0
- data/apis/AutoScaling-2011-01-01.json +1 -0
- data/apis/CloudFormation-2010-05-15.json +75 -0
- data/apis/CloudFront-2012-05-05.json +1 -0
- data/apis/CloudFront-2013-05-12.json +1 -0
- data/apis/CloudFront-2013-08-26.json +1 -0
- data/apis/CloudSearch-2011-02-01.json +1 -0
- data/apis/CloudWatch-2010-08-01.json +1 -0
- data/apis/DataPipeline-2012-10-29.json +1 -0
- data/apis/DirectConnect-2012-10-25.json +1 -0
- data/apis/DynamoDB-2011-12-05.json +1 -0
- data/apis/DynamoDB-2012-08-10.json +1 -0
- data/apis/EC2-2013-06-15.json +1 -0
- data/apis/EC2-2013-10-01.json +1 -0
- data/apis/EMR-2009-03-31.json +1 -0
- data/apis/ElastiCache-2012-11-15.json +1 -0
- data/apis/ElastiCache-2013-06-15.json +1 -0
- data/apis/ElasticBeanstalk-2010-12-01.json +1 -0
- data/apis/ElasticLoadBalancing-2012-06-01.json +73 -0
- data/apis/ElasticTranscoder-2012-09-25.json +231 -0
- data/apis/Glacier-2012-06-01.json +2 -0
- data/apis/IAM-2010-05-08.json +1 -0
- data/apis/ImportExport-2010-06-01.json +1 -0
- data/apis/OpsWorks-2013-02-18.json +1 -0
- data/apis/RDS-2013-01-10.json +1 -0
- data/apis/RDS-2013-02-12.json +1 -0
- data/apis/RDS-2013-05-15.json +1 -0
- data/apis/Redshift-2012-12-01.json +1 -0
- data/apis/Route53-2012-12-12.json +1 -0
- data/apis/S3-2006-03-01.json +5 -0
- data/apis/SDB-2009-04-15.json +1 -0
- data/apis/SES-2010-12-01.json +1 -0
- data/apis/SNS-2010-03-31.json +1 -0
- data/apis/SQS-2012-11-05.json +1 -0
- data/apis/STS-2011-06-15.json +1 -0
- data/apis/SWF-2012-01-25.json +1 -0
- data/apis/StorageGateway-2012-06-30.json +1 -0
- data/apis/StorageGateway-2013-06-30.json +2018 -0
- data/apis/Support-2013-04-15.json +1 -0
- data/apis/source/cloudformation-2010-05-15.json +118 -12
- data/apis/source/elasticloadbalancing-2012-06-01.json +347 -220
- data/apis/source/elastictranscoder-2012-09-25.json +315 -5
- data/apis/source/s3-2006-03-01.json +3 -0
- data/apis/source/storagegateway-2013-06-30.json +12560 -0
- data/apis/source/storagegateway-2013-06-30.paginators.json +28 -0
- data/doc-src/plugins/apis.rb +44 -1
- data/doc-src/templates/default/fulldoc/html/setup.rb +1 -1
- data/features/common/step_definitions.rb +3 -5
- data/features/env.rb +2 -0
- data/features/glacier/client.feature +8 -0
- data/features/glacier/step_definitions.rb +7 -7
- data/features/s3/step_definitions.rb +2 -3
- data/lib/aws.rb +75 -69
- data/lib/aws/api/service_translators/glacier.rb +1 -0
- data/lib/aws/api/translator.rb +13 -8
- data/lib/aws/credentials.rb +5 -5
- data/lib/aws/instance_profile_credentials.rb +113 -0
- data/lib/aws/plugins/credentials.rb +2 -1
- data/lib/aws/plugins/glacier_account_id.rb +11 -0
- data/lib/aws/plugins/glacier_checksums.rb +7 -3
- data/lib/aws/plugins/instance_profile_credentials.rb +14 -0
- data/lib/aws/plugins/s3_bucket_dns.rb +17 -14
- data/lib/aws/plugins/s3_md5s.rb +3 -3
- data/lib/aws/service.rb +10 -9
- data/lib/aws/signers/s3.rb +2 -2
- data/lib/aws/signers/v2.rb +1 -1
- data/lib/aws/signers/v4.rb +2 -2
- data/lib/aws/version.rb +1 -1
- data/lib/aws/xml/serializer.rb +1 -1
- data/spec/aws/instance_profile_credentials_spec.rb +94 -0
- data/spec/aws/operations_spec.rb +1 -1
- data/spec/aws/plugins/credentials_spec.rb +2 -2
- data/spec/fixtures/operations/glacier/account_id_param.yml +13 -0
- data/spec/fixtures/operations/glacier/custom_account_id.yml +11 -0
- data/spec/fixtures/operations/glacier/default_account_id.yml +10 -0
- data/spec/fixtures/operations/s3/content_type_header.yml +12 -0
- data/spec/fixtures/operations/s3/md5_checksum_disabled.yml +1 -1
- data/tasks/apis.rake +2 -2
- data/tasks/docs.rake +2 -1
- data/tasks/handlers.rake +30 -0
- data/vendor/seahorse/lib/seahorse/client.rb +1 -0
- data/vendor/seahorse/lib/seahorse/client/base.rb +0 -18
- data/vendor/seahorse/lib/seahorse/client/block_io.rb +0 -7
- data/vendor/seahorse/lib/seahorse/client/configuration.rb +57 -37
- data/vendor/seahorse/lib/seahorse/client/handler_list.rb +115 -78
- data/vendor/seahorse/lib/seahorse/client/http/endpoint.rb +19 -15
- data/vendor/seahorse/lib/seahorse/client/http/request.rb +0 -15
- data/vendor/seahorse/lib/seahorse/client/logging/formatter.rb +0 -7
- data/vendor/seahorse/lib/seahorse/client/managed_file.rb +14 -0
- data/vendor/seahorse/lib/seahorse/client/net_http/handler.rb +1 -3
- data/vendor/seahorse/lib/seahorse/client/plugins/content_length.rb +1 -1
- data/vendor/seahorse/lib/seahorse/client/plugins/endpoint.rb +81 -10
- data/vendor/seahorse/lib/seahorse/client/plugins/restful_bindings.rb +1 -71
- data/vendor/seahorse/lib/seahorse/client/request.rb +26 -3
- data/vendor/seahorse/spec/seahorse/client/base_spec.rb +1 -5
- data/vendor/seahorse/spec/seahorse/client/configuration_spec.rb +1 -10
- data/vendor/seahorse/spec/seahorse/client/handler_list_spec.rb +10 -10
- data/vendor/seahorse/spec/seahorse/client/http/endpoint_spec.rb +46 -14
- data/vendor/seahorse/spec/seahorse/client/http/request_spec.rb +1 -42
- data/vendor/seahorse/spec/seahorse/client/logging/formatter_spec.rb +1 -6
- data/vendor/seahorse/spec/seahorse/client/logging/handler_spec.rb +1 -1
- data/vendor/seahorse/spec/seahorse/client/net_http/handler_spec.rb +5 -4
- data/vendor/seahorse/spec/seahorse/client/param_converter_spec.rb +1 -0
- data/vendor/seahorse/spec/seahorse/client/plugins/{restful_bindings/uri_path_builder_spec.rb → endpoint/request_uri_builder_spec.rb} +3 -3
- data/vendor/seahorse/spec/seahorse/client/plugins/endpoint_spec.rb +1 -11
- data/vendor/seahorse/spec/seahorse/client/request_spec.rb +63 -13
- metadata +21 -3
@@ -31,10 +31,11 @@ module Aws
|
|
31
31
|
}
|
32
32
|
|
33
33
|
option(:credentials) do |config|
|
34
|
-
Aws::Credentials.new(
|
34
|
+
credentials = Aws::Credentials.new(
|
35
35
|
config.access_key_id,
|
36
36
|
config.secret_access_key,
|
37
37
|
config.session_token)
|
38
|
+
credentials.set? ? credentials : nil
|
38
39
|
end
|
39
40
|
|
40
41
|
def after_initialize(client)
|
@@ -59,14 +59,18 @@ module Aws
|
|
59
59
|
tree_digest = OpenSSL::Digest::Digest.new('sha256')
|
60
60
|
tree_parts = []
|
61
61
|
|
62
|
-
|
62
|
+
# if the body is empty/EOF, then we should compute the
|
63
|
+
# digests of the empty string
|
64
|
+
if body.size == 0
|
65
|
+
tree_parts << tree_digest.update('').digest
|
66
|
+
digest.update('')
|
67
|
+
end
|
63
68
|
|
69
|
+
until body.eof?
|
64
70
|
chunk = body.read(1024 * 1024) # read 1MB
|
65
71
|
tree_parts << tree_digest.update(chunk).digest
|
66
72
|
tree_digest.reset
|
67
|
-
|
68
73
|
digest.update(chunk)
|
69
|
-
|
70
74
|
end
|
71
75
|
|
72
76
|
body.rewind
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Aws
|
2
|
+
module Plugins
|
3
|
+
# Adds support for loading access credentials from the EC2 instance
|
4
|
+
# metada service.
|
5
|
+
class InstanceProfileCredentials < Seahorse::Client::Plugin
|
6
|
+
|
7
|
+
option(:credentials) do
|
8
|
+
credentials = Aws::InstanceProfileCredentials.new
|
9
|
+
credentials.set? ? credentials : nil
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -19,37 +19,40 @@ module Aws
|
|
19
19
|
# the classic region.
|
20
20
|
option(:force_path_style, false)
|
21
21
|
|
22
|
+
def add_handlers(handlers, config)
|
23
|
+
handlers.add(Handler) unless config.force_path_style
|
24
|
+
end
|
25
|
+
|
22
26
|
# @api private
|
23
27
|
class Handler < Seahorse::Client::Handler
|
24
28
|
|
25
29
|
def call(context)
|
26
|
-
|
27
|
-
move_dns_compat_bucket_to_subdomain(context)
|
28
|
-
end
|
30
|
+
move_dns_compat_bucket_to_subdomain(context)
|
29
31
|
@handler.call(context)
|
30
32
|
end
|
31
33
|
|
32
34
|
private
|
33
35
|
|
34
36
|
def move_dns_compat_bucket_to_subdomain(context)
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
37
|
+
bucket_name = context.params[:bucket]
|
38
|
+
endpoint = context.http_request.endpoint
|
39
|
+
if
|
40
|
+
bucket_name &&
|
41
|
+
S3BucketDns.dns_compatible?(bucket_name, endpoint.https?)
|
42
|
+
then
|
43
|
+
move_bucket_to_subdomain(bucket_name, endpoint)
|
40
44
|
end
|
41
45
|
end
|
42
46
|
|
43
|
-
def move_bucket_to_subdomain(bucket_name,
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
+
def move_bucket_to_subdomain(bucket_name, endpoint)
|
48
|
+
endpoint.host = "#{bucket_name}.#{endpoint.host}"
|
49
|
+
request_uri = endpoint.request_uri.sub("/#{bucket_name}", '')
|
50
|
+
request_uri = "/#{request_uri}" unless request_uri.match(/^\//)
|
51
|
+
endpoint.request_uri = request_uri
|
47
52
|
end
|
48
53
|
|
49
54
|
end
|
50
55
|
|
51
|
-
handler(Handler)
|
52
|
-
|
53
56
|
class << self
|
54
57
|
|
55
58
|
# @param [String] bucket_name
|
data/lib/aws/plugins/s3_md5s.rb
CHANGED
@@ -4,7 +4,7 @@ require 'base64'
|
|
4
4
|
module Aws
|
5
5
|
module Plugins
|
6
6
|
|
7
|
-
# @seahorse.client.option [Boolean] :
|
7
|
+
# @seahorse.client.option [Boolean] :compute_checksums (true)
|
8
8
|
# When `true` a MD5 checksum will be computed for all requests that
|
9
9
|
# accept the optional `Content-MD5` header. Checksum errors returned
|
10
10
|
# by Amazon S3 are automatically retried up to `:retry_limit` times.
|
@@ -41,7 +41,7 @@ module Aws
|
|
41
41
|
|
42
42
|
end
|
43
43
|
|
44
|
-
option(:
|
44
|
+
option(:compute_checksums, true)
|
45
45
|
|
46
46
|
def add_handlers(handlers, config)
|
47
47
|
options = {
|
@@ -49,7 +49,7 @@ module Aws
|
|
49
49
|
step: :build, # the request is built but before it is signed
|
50
50
|
}
|
51
51
|
|
52
|
-
if !config.
|
52
|
+
if !config.compute_checksums
|
53
53
|
options[:operations] = REQUIRED_OPERATIONS
|
54
54
|
end
|
55
55
|
|
data/lib/aws/service.rb
CHANGED
@@ -176,6 +176,16 @@ module Aws
|
|
176
176
|
klass
|
177
177
|
end
|
178
178
|
|
179
|
+
# @api private
|
180
|
+
def const_missing(constant)
|
181
|
+
if constant =~ /^V\d{8}$/
|
182
|
+
api = api(api_version(constant))
|
183
|
+
const_set(constant, Seahorse::Client.define(api: api))
|
184
|
+
else
|
185
|
+
super
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
179
189
|
private
|
180
190
|
|
181
191
|
def svc_locked_version
|
@@ -196,15 +206,6 @@ module Aws
|
|
196
206
|
@apis ||= {}
|
197
207
|
end
|
198
208
|
|
199
|
-
def const_missing(constant)
|
200
|
-
if constant =~ /^V\d{8}$/
|
201
|
-
api = api(api_version(constant))
|
202
|
-
const_set(constant, Seahorse::Client.define(api: api))
|
203
|
-
else
|
204
|
-
super
|
205
|
-
end
|
206
|
-
end
|
207
|
-
|
208
209
|
def api(api_version)
|
209
210
|
api = apis[api_version]
|
210
211
|
case api
|
data/lib/aws/signers/s3.rb
CHANGED
@@ -137,7 +137,7 @@ module Aws
|
|
137
137
|
end
|
138
138
|
|
139
139
|
# append the path name (no querystring)
|
140
|
-
parts << request.path
|
140
|
+
parts << request.endpoint.path
|
141
141
|
|
142
142
|
# lastly any sub resource querystring params need to be appened
|
143
143
|
# in lexigraphical ordered joined by '&' and prefixed by '?'
|
@@ -152,7 +152,7 @@ module Aws
|
|
152
152
|
end
|
153
153
|
|
154
154
|
def signed_querystring_params(request)
|
155
|
-
request.querystring.to_s.split('&').select do |p|
|
155
|
+
request.endpoint.querystring.to_s.split('&').select do |p|
|
156
156
|
SIGNED_QUERYSTRING_PARAMS.include?(p.split('=')[0])
|
157
157
|
end.map { |p| URI.decode(p) }
|
158
158
|
end
|
data/lib/aws/signers/v2.rb
CHANGED
data/lib/aws/signers/v4.rb
CHANGED
@@ -77,8 +77,8 @@ module Aws
|
|
77
77
|
def canonical_request(request)
|
78
78
|
[
|
79
79
|
request.http_method,
|
80
|
-
request.
|
81
|
-
request.querystring,
|
80
|
+
request.endpoint.path,
|
81
|
+
request.endpoint.querystring,
|
82
82
|
canonical_headers(request) + "\n",
|
83
83
|
signed_headers(request),
|
84
84
|
request.headers['X-Amz-Content-Sha256']
|
data/lib/aws/version.rb
CHANGED
data/lib/aws/xml/serializer.rb
CHANGED
@@ -0,0 +1,94 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Aws
|
4
|
+
describe InstanceProfileCredentials do
|
5
|
+
|
6
|
+
let(:path) { '/latest/meta-data/iam/security-credentials/' }
|
7
|
+
|
8
|
+
describe 'without instance metadata service present' do
|
9
|
+
|
10
|
+
[
|
11
|
+
Errno::EHOSTUNREACH,
|
12
|
+
Errno::ECONNREFUSED,
|
13
|
+
SocketError,
|
14
|
+
Timeout::Error,
|
15
|
+
].each do |error_class|
|
16
|
+
it "returns no credentials for #{error_class}" do
|
17
|
+
stub_request(:get, "http://169.254.169.254#{path}").to_raise(error_class)
|
18
|
+
expect(InstanceProfileCredentials.new.set?).to be(false)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
describe 'with instance metadata service present' do
|
25
|
+
|
26
|
+
let(:expiration) { Time.now.utc + 3600 }
|
27
|
+
let(:expiration2) { expiration + 3600 }
|
28
|
+
|
29
|
+
let(:resp) { <<-JSON.strip }
|
30
|
+
{
|
31
|
+
"Code" : "Success",
|
32
|
+
"LastUpdated" : "2013-11-22T20:03:48Z",
|
33
|
+
"Type" : "AWS-HMAC",
|
34
|
+
"AccessKeyId" : "akid",
|
35
|
+
"SecretAccessKey" : "secret",
|
36
|
+
"Token" : "session-token",
|
37
|
+
"Expiration" : "#{expiration.strftime('%Y-%m-%dT%H:%M:%SZ')}"
|
38
|
+
}
|
39
|
+
JSON
|
40
|
+
|
41
|
+
let(:resp2) { <<-JSON.strip }
|
42
|
+
{
|
43
|
+
"Code" : "Success",
|
44
|
+
"LastUpdated" : "2013-11-22T20:03:48Z",
|
45
|
+
"Type" : "AWS-HMAC",
|
46
|
+
"AccessKeyId" : "akid-2",
|
47
|
+
"SecretAccessKey" : "secret-2",
|
48
|
+
"Token" : "session-token-2",
|
49
|
+
"Expiration" : "#{(expiration2).strftime('%Y-%m-%dT%H:%M:%SZ')}"
|
50
|
+
}
|
51
|
+
JSON
|
52
|
+
|
53
|
+
before(:each) do
|
54
|
+
stub_request(:get, "http://169.254.169.254#{path}").
|
55
|
+
to_return(:status => 200, :body => "profile-name\n")
|
56
|
+
stub_request(:get, "http://169.254.169.254#{path}profile-name").
|
57
|
+
to_return(:status => 200, :body => resp).
|
58
|
+
to_return(:status => 200, :body => resp2)
|
59
|
+
end
|
60
|
+
|
61
|
+
it 'populates credentials from the instance profile' do
|
62
|
+
c = InstanceProfileCredentials.new
|
63
|
+
expect(c.access_key_id).to eq('akid')
|
64
|
+
expect(c.secret_access_key).to eq('secret')
|
65
|
+
expect(c.session_token).to eq('session-token')
|
66
|
+
expect(c.expiration.to_s).to eq(expiration.to_s)
|
67
|
+
end
|
68
|
+
|
69
|
+
it 're-queries the metadata service when #refresh! is called' do
|
70
|
+
c = InstanceProfileCredentials.new
|
71
|
+
c.refresh!
|
72
|
+
expect(c.access_key_id).to eq('akid-2')
|
73
|
+
expect(c.secret_access_key).to eq('secret-2')
|
74
|
+
expect(c.session_token).to eq('session-token-2')
|
75
|
+
expect(c.expiration.to_s).to eq(expiration2.to_s)
|
76
|
+
end
|
77
|
+
|
78
|
+
describe 'auto refreshing' do
|
79
|
+
|
80
|
+
# expire in 4 minutes
|
81
|
+
let(:expiration) { Time.now.utc + 299 }
|
82
|
+
|
83
|
+
it 'auto-refreshes within 5 minutes from expiration' do
|
84
|
+
c = InstanceProfileCredentials.new
|
85
|
+
expect(c.access_key_id).to eq('akid-2')
|
86
|
+
expect(c.secret_access_key).to eq('secret-2')
|
87
|
+
expect(c.session_token).to eq('session-token-2')
|
88
|
+
expect(c.expiration.to_s).to eq(expiration2.to_s)
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
data/spec/aws/operations_spec.rb
CHANGED
@@ -84,7 +84,7 @@ module Aws
|
|
84
84
|
if f.request
|
85
85
|
expect(http_req.endpoint.host).to eq(f.request.host) if f.request.host
|
86
86
|
expect(http_req.http_method).to eq(f.request.method) if f.request.method
|
87
|
-
expect(http_req.
|
87
|
+
expect(http_req.endpoint.request_uri).to eq(f.request.path) if f.request.path
|
88
88
|
if f.request.headers
|
89
89
|
f.request.headers.each_pair do |header, value|
|
90
90
|
expected_value = value.nil? ? nil : value.to_s
|
@@ -21,9 +21,9 @@ module Aws
|
|
21
21
|
expect(config.build!).to respond_to(:credentials)
|
22
22
|
end
|
23
23
|
|
24
|
-
it 'defaults to
|
24
|
+
it 'defaults to nil when credentials not set' do
|
25
25
|
plugin.add_options(config)
|
26
|
-
expect(config.build!.credentials).to
|
26
|
+
expect(config.build!.credentials).to be(nil)
|
27
27
|
end
|
28
28
|
|
29
29
|
it 'hydrates credentials from the env (AWS_)' do
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# This test ensures the `:account_id` param can be specified and that
|
2
|
+
# it will override the default configured account id.
|
3
|
+
config:
|
4
|
+
account_id: 'CONFIG-ACCOUNT-ID'
|
5
|
+
operation: list_vaults
|
6
|
+
params:
|
7
|
+
:account_id: 'PARAM-ACCOUNT-ID'
|
8
|
+
request:
|
9
|
+
path: /PARAM-ACCOUNT-ID/vaults
|
10
|
+
response:
|
11
|
+
status_code: 200
|
12
|
+
body: |
|
13
|
+
{"Marker":null,"VaultList":[]}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# This test ensures the default `:account_id` of '-' can be replaced via config
|
2
|
+
config:
|
3
|
+
account_id: 'ACCOUNT-ID'
|
4
|
+
operation: list_vaults
|
5
|
+
params: {}
|
6
|
+
request:
|
7
|
+
path: /ACCOUNT-ID/vaults
|
8
|
+
response:
|
9
|
+
status_code: 200
|
10
|
+
body: |
|
11
|
+
{"Marker":null,"VaultList":[]}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# This test ensures the `:account_id` need not be supplied and that it defaults
|
2
|
+
# to the '-' string, which means current account
|
3
|
+
operation: list_vaults
|
4
|
+
params: {}
|
5
|
+
request:
|
6
|
+
path: /-/vaults
|
7
|
+
response:
|
8
|
+
status_code: 200
|
9
|
+
body: |
|
10
|
+
{"Marker":null,"VaultList":[]}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# This test ensures that the content type param makes it to the Content-Type
|
2
|
+
# header. There was a bug that caused S3 to always set the content
|
3
|
+
# type to application/xml.
|
4
|
+
operation: put_object
|
5
|
+
params:
|
6
|
+
:bucket: 'bucket-name'
|
7
|
+
:key: 'key'
|
8
|
+
:body: 'abc'
|
9
|
+
:content_type: 'text/plain'
|
10
|
+
request:
|
11
|
+
headers:
|
12
|
+
Content-Type: 'text/plain'
|
data/tasks/apis.rake
CHANGED
@@ -8,7 +8,6 @@ namespace :api do
|
|
8
8
|
|
9
9
|
desc "Lists the supported services and their API versions"
|
10
10
|
task :versions do
|
11
|
-
require 'aws-sdk-core'
|
12
11
|
supported = []
|
13
12
|
Aws.service_classes.each do |key, svc|
|
14
13
|
name = svc.default_client_class.api.metadata['service_full_name']
|
@@ -26,6 +25,8 @@ namespace :api do
|
|
26
25
|
svc_task = "translate:#{svc}"
|
27
26
|
version_task = "translate:#{svc}:#{version}"
|
28
27
|
task(version_task) { translate_api(path) }
|
28
|
+
|
29
|
+
desc "Translate source APIs for #{svc}" if ENV['ALL']
|
29
30
|
task(svc_task => version_task)
|
30
31
|
|
31
32
|
desc "Translate source APIs into Seahorse APIs"
|
@@ -36,7 +37,6 @@ namespace :api do
|
|
36
37
|
end
|
37
38
|
|
38
39
|
def translate_api(path)
|
39
|
-
require 'aws-sdk-core'
|
40
40
|
api = Aws::Api::Translator.translate(
|
41
41
|
JSON.parse(File.read(path), max_nesting: false), documentation: false,
|
42
42
|
errors: false)
|
data/tasks/docs.rake
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
namespace :doc do
|
2
2
|
|
3
|
+
desc "Delete the locally generated docs" if ENV['ALL']
|
3
4
|
task :clobber do
|
4
5
|
rm_rf ".yardoc"
|
5
6
|
rm_rf "doc"
|
6
7
|
end
|
7
8
|
|
8
9
|
# Updates the list of supported services and versions in the README
|
10
|
+
desc "Updated the list of supported services in the README" if ENV['ALL']
|
9
11
|
task :readme do
|
10
12
|
lines = []
|
11
13
|
skip = false
|
@@ -35,7 +37,6 @@ def supported_services_table
|
|
35
37
|
line = "| %-35s | %-25s | %-30s |\n"
|
36
38
|
|
37
39
|
lines = []
|
38
|
-
require 'aws-sdk-core'
|
39
40
|
Aws.service_classes.keys.sort_by(&:downcase).each do |svc|
|
40
41
|
svc = Aws.service_classes[svc]
|
41
42
|
client = svc.default_client_class
|