aws-sdk 1.30.1 → 1.31.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.
Files changed (126) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -3
  3. data/lib/aws/api_config/CloudFront-2013-11-11.yml +2886 -0
  4. data/lib/aws/api_config/CloudTrail-2013-11-01.yml +36 -0
  5. data/lib/aws/api_config/ElasticTranscoder-2012-09-25.yml +67 -446
  6. data/lib/aws/auto_scaling.rb +0 -1
  7. data/lib/aws/auto_scaling/client.rb +2 -0
  8. data/lib/aws/cloud_formation.rb +0 -1
  9. data/lib/aws/cloud_formation/client.rb +2 -0
  10. data/lib/aws/cloud_front.rb +0 -1
  11. data/lib/aws/cloud_front/client.rb +6 -6
  12. data/lib/aws/cloud_search.rb +0 -1
  13. data/lib/aws/cloud_search/client.rb +3 -0
  14. data/lib/aws/cloud_trail.rb +0 -1
  15. data/lib/aws/cloud_trail/client.rb +2 -0
  16. data/lib/aws/cloud_watch.rb +0 -1
  17. data/lib/aws/cloud_watch/client.rb +2 -0
  18. data/lib/aws/core.rb +8 -6
  19. data/lib/aws/core/client.rb +30 -4
  20. data/lib/aws/core/configuration.rb +1 -1
  21. data/lib/aws/core/http/request.rb +2 -1
  22. data/lib/aws/core/signers/base.rb +46 -0
  23. data/lib/aws/core/signers/cloud_front.rb +56 -0
  24. data/lib/aws/core/signers/s3.rb +159 -0
  25. data/lib/aws/core/signers/version_2.rb +72 -0
  26. data/lib/aws/core/signers/version_3.rb +86 -0
  27. data/lib/aws/core/signers/version_3_https.rb +61 -0
  28. data/lib/aws/core/signers/version_4.rb +228 -0
  29. data/lib/aws/core/signers/version_4/chunk_signed_stream.rb +191 -0
  30. data/lib/aws/data_pipeline.rb +0 -1
  31. data/lib/aws/data_pipeline/client.rb +3 -0
  32. data/lib/aws/direct_connect.rb +0 -1
  33. data/lib/aws/direct_connect/client.rb +3 -0
  34. data/lib/aws/dynamo_db.rb +0 -1
  35. data/lib/aws/dynamo_db/client.rb +2 -0
  36. data/lib/aws/ec2.rb +0 -1
  37. data/lib/aws/ec2/client.rb +21 -0
  38. data/lib/aws/elastic_beanstalk.rb +0 -1
  39. data/lib/aws/elastic_beanstalk/client.rb +3 -0
  40. data/lib/aws/elastic_transcoder.rb +0 -1
  41. data/lib/aws/elastic_transcoder/client.rb +2 -0
  42. data/lib/aws/elasticache.rb +0 -1
  43. data/lib/aws/elasticache/client.rb +2 -0
  44. data/lib/aws/elb.rb +0 -1
  45. data/lib/aws/elb/client.rb +2 -0
  46. data/lib/aws/emr.rb +0 -1
  47. data/lib/aws/emr/client.rb +2 -0
  48. data/lib/aws/glacier.rb +0 -1
  49. data/lib/aws/glacier/client.rb +2 -0
  50. data/lib/aws/iam.rb +0 -1
  51. data/lib/aws/iam/client.rb +2 -0
  52. data/lib/aws/import_export.rb +0 -1
  53. data/lib/aws/import_export/client.rb +2 -0
  54. data/lib/aws/kinesis.rb +0 -1
  55. data/lib/aws/kinesis/client.rb +2 -0
  56. data/lib/aws/ops_works.rb +0 -1
  57. data/lib/aws/ops_works/client.rb +2 -0
  58. data/lib/aws/rds.rb +0 -1
  59. data/lib/aws/rds/client.rb +2 -0
  60. data/lib/aws/redshift.rb +0 -1
  61. data/lib/aws/redshift/client.rb +2 -0
  62. data/lib/aws/route_53.rb +0 -1
  63. data/lib/aws/route_53/client.rb +2 -0
  64. data/lib/aws/s3.rb +1 -0
  65. data/lib/aws/s3/bucket_collection.rb +9 -7
  66. data/lib/aws/s3/client.rb +70 -9
  67. data/lib/aws/s3/config.rb +12 -0
  68. data/lib/aws/s3/object_collection.rb +4 -9
  69. data/lib/aws/s3/presign_v4.rb +127 -0
  70. data/lib/aws/s3/presigned_post.rb +1 -1
  71. data/lib/aws/s3/request.rb +0 -136
  72. data/lib/aws/s3/s3_object.rb +40 -19
  73. data/lib/aws/simple_db.rb +0 -1
  74. data/lib/aws/simple_db/client.rb +2 -0
  75. data/lib/aws/simple_email_service.rb +0 -1
  76. data/lib/aws/simple_email_service/client.rb +2 -0
  77. data/lib/aws/simple_workflow.rb +0 -1
  78. data/lib/aws/simple_workflow/client.rb +2 -0
  79. data/lib/aws/sns.rb +0 -1
  80. data/lib/aws/sns/client.rb +2 -0
  81. data/lib/aws/sqs.rb +0 -1
  82. data/lib/aws/sqs/client.rb +2 -0
  83. data/lib/aws/storage_gateway.rb +0 -1
  84. data/lib/aws/storage_gateway/client.rb +2 -0
  85. data/lib/aws/sts.rb +0 -1
  86. data/lib/aws/sts/client.rb +2 -0
  87. data/lib/aws/support.rb +0 -1
  88. data/lib/aws/support/client.rb +2 -0
  89. data/lib/aws/version.rb +1 -1
  90. metadata +12 -38
  91. data/lib/aws/auto_scaling/request.rb +0 -29
  92. data/lib/aws/cloud_formation/request.rb +0 -29
  93. data/lib/aws/cloud_front/request.rb +0 -30
  94. data/lib/aws/cloud_search/request.rb +0 -23
  95. data/lib/aws/cloud_trail/request.rb +0 -30
  96. data/lib/aws/cloud_watch/request.rb +0 -29
  97. data/lib/aws/core/signature/version_2.rb +0 -56
  98. data/lib/aws/core/signature/version_3.rb +0 -77
  99. data/lib/aws/core/signature/version_3_https.rb +0 -54
  100. data/lib/aws/core/signature/version_4.rb +0 -135
  101. data/lib/aws/core/signer.rb +0 -46
  102. data/lib/aws/data_pipeline/request.rb +0 -26
  103. data/lib/aws/direct_connect/request.rb +0 -27
  104. data/lib/aws/dynamo_db/request.rb +0 -26
  105. data/lib/aws/ec2/request.rb +0 -21
  106. data/lib/aws/elastic_beanstalk/request.rb +0 -29
  107. data/lib/aws/elastic_transcoder/request.rb +0 -30
  108. data/lib/aws/elasticache/request.rb +0 -23
  109. data/lib/aws/elb/request.rb +0 -29
  110. data/lib/aws/emr/request.rb +0 -28
  111. data/lib/aws/glacier/request.rb +0 -29
  112. data/lib/aws/iam/request.rb +0 -29
  113. data/lib/aws/import_export/request.rb +0 -23
  114. data/lib/aws/kinesis/request.rb +0 -26
  115. data/lib/aws/ops_works/request.rb +0 -27
  116. data/lib/aws/rds/request.rb +0 -29
  117. data/lib/aws/redshift/request.rb +0 -29
  118. data/lib/aws/route_53/request.rb +0 -23
  119. data/lib/aws/simple_db/request.rb +0 -23
  120. data/lib/aws/simple_email_service/request.rb +0 -27
  121. data/lib/aws/simple_workflow/request.rb +0 -28
  122. data/lib/aws/sns/request.rb +0 -29
  123. data/lib/aws/sqs/request.rb +0 -31
  124. data/lib/aws/storage_gateway/request.rb +0 -28
  125. data/lib/aws/sts/request.rb +0 -29
  126. data/lib/aws/support/request.rb +0 -27
@@ -1,29 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- module AWS
15
- class AutoScaling
16
-
17
- # @api private
18
- class Request < Core::Http::Request
19
-
20
- include Core::Signature::Version4
21
-
22
- def service
23
- 'autoscaling'
24
- end
25
-
26
- end
27
-
28
- end
29
- end
@@ -1,29 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- module AWS
15
- class CloudFormation
16
-
17
- # @api private
18
- class Request < Core::Http::Request
19
-
20
- include Core::Signature::Version4
21
-
22
- def service
23
- 'cloudformation'
24
- end
25
-
26
- end
27
-
28
- end
29
- end
@@ -1,30 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- require 'time'
15
-
16
- module AWS
17
- class CloudFront
18
-
19
- # @api private
20
- class Request < Core::Http::Request
21
-
22
- include Core::Signature::Version4
23
-
24
- def service
25
- 'cloudfront'
26
- end
27
-
28
- end
29
- end
30
- end
@@ -1,23 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- module AWS
15
- class CloudSearch
16
-
17
- # @api private
18
- class Request < Core::Http::Request
19
- include Core::Signature::Version2
20
- end
21
-
22
- end
23
- end
@@ -1,30 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- require 'time'
15
-
16
- module AWS
17
- class CloudTrail
18
-
19
- # @api private
20
- class Request < Core::Http::Request
21
-
22
- include Core::Signature::Version4
23
-
24
- def service
25
- 'cloudtrail'
26
- end
27
-
28
- end
29
- end
30
- end
@@ -1,29 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- module AWS
15
- class CloudWatch
16
-
17
- # @api private
18
- class Request < Core::Http::Request
19
-
20
- include Core::Signature::Version4
21
-
22
- def service
23
- 'monitoring'
24
- end
25
-
26
- end
27
-
28
- end
29
- end
@@ -1,56 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- module AWS
15
- module Core
16
- module Signature
17
- module Version2
18
-
19
- def add_authorization! credentials
20
- add_param('AWSAccessKeyId', credentials.access_key_id)
21
- if token = credentials.session_token
22
- add_param("SecurityToken", token)
23
- end
24
- add_param('SignatureVersion', '2')
25
- add_param('SignatureMethod', 'HmacSHA256')
26
- add_param('Signature', signature(credentials))
27
- self.body = url_encoded_params
28
- end
29
-
30
- protected
31
-
32
- def signature credentials
33
- Signer.sign(credentials.secret_access_key, string_to_sign)
34
- end
35
-
36
- def string_to_sign
37
-
38
- host =
39
- case port
40
- when 80, 443 then self.host
41
- else "#{self.host}:#{port}"
42
- end
43
-
44
- [
45
- http_method,
46
- host.to_s.downcase,
47
- path,
48
- params.sort.collect { |p| p.encoded }.join('&'),
49
- ].join("\n")
50
-
51
- end
52
-
53
- end
54
- end
55
- end
56
- end
@@ -1,77 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- require 'openssl'
15
- require 'time'
16
-
17
- module AWS
18
- module Core
19
- module Signature
20
- module Version3
21
-
22
- def self.included base
23
- base.send(:include, Signer)
24
- end
25
-
26
- def add_authorization! credentials
27
-
28
- headers["x-amz-date"] ||= (headers["date"] ||= Time.now.httpdate)
29
- headers["host"] ||= host
30
-
31
- headers["x-amz-security-token"] = credentials.session_token if
32
- credentials.session_token
33
-
34
- # compute the authorization
35
- headers["x-amzn-authorization"] =
36
- "AWS3 "+
37
- "AWSAccessKeyId=#{credentials.access_key_id},"+
38
- "Algorithm=HmacSHA256,"+
39
- "SignedHeaders=#{headers_to_sign.join(';')},"+
40
- "Signature=#{signature(credentials)}"
41
- end
42
-
43
- protected
44
-
45
- def signature credentials
46
- Signer.sign(credentials.secret_access_key, string_to_sign)
47
- end
48
-
49
- def string_to_sign
50
- OpenSSL::Digest::SHA256.digest([
51
- http_method,
52
- "/",
53
- "",
54
- canonical_headers,
55
- body
56
- ].join("\n"))
57
- end
58
-
59
- def canonical_headers
60
- headers_to_sign.map do |name|
61
- value = headers[name]
62
- "#{name.downcase.strip}:#{value.strip}\n"
63
- end.sort.join
64
- end
65
-
66
- def headers_to_sign
67
- headers.keys.select do |header|
68
- header == "host" ||
69
- header == "content-encoding" ||
70
- header =~ /^x-amz/
71
- end
72
- end
73
-
74
- end
75
- end
76
- end
77
- end
@@ -1,54 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- require 'time'
15
-
16
- module AWS
17
- module Core
18
- module Signature
19
- module Version3HTTPS
20
-
21
- def self.included base
22
- base.send(:include, Signer)
23
- end
24
-
25
- def add_authorization! credentials
26
-
27
- self.access_key_id = credentials.access_key_id
28
-
29
- parts = []
30
- parts << "AWS3-HTTPS AWSAccessKeyId=#{access_key_id}"
31
- parts << "Algorithm=HmacSHA256"
32
- parts << "Signature=#{signature(credentials)}"
33
- headers['x-amzn-authorization'] = parts.join(',')
34
-
35
- headers['x-amz-security-token'] = credentials.session_token if
36
- credentials.session_token
37
-
38
- end
39
-
40
- protected
41
-
42
- def signature credentials
43
- Signer.sign(credentials.secret_access_key, string_to_sign)
44
- end
45
-
46
- def string_to_sign
47
- headers['date'] ||= Time.now.httpdate
48
- end
49
-
50
- end
51
- end
52
- end
53
- end
54
-
@@ -1,135 +0,0 @@
1
- # Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #
3
- # Licensed under the Apache License, Version 2.0 (the "License"). You
4
- # may not use this file except in compliance with the License. A copy of
5
- # the License is located at
6
- #
7
- # http://aws.amazon.com/apache2.0/
8
- #
9
- # or in the "license" file accompanying this file. This file is
10
- # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
- # ANY KIND, either express or implied. See the License for the specific
12
- # language governing permissions and limitations under the License.
13
-
14
- require 'time'
15
- require 'openssl'
16
- require 'digest'
17
-
18
- module AWS
19
- module Core
20
- module Signature
21
- module Version4
22
-
23
- def self.included base
24
- base.send(:include, Signer)
25
- end
26
-
27
- def add_authorization! credentials
28
- datetime = Time.now.utc.strftime("%Y%m%dT%H%M%SZ")
29
- headers['content-type'] ||= 'application/x-www-form-urlencoded'
30
- headers['host'] = host
31
- headers['x-amz-date'] = datetime
32
- headers['x-amz-security-token'] = credentials.session_token if
33
- credentials.session_token
34
- headers['x-amz-content-sha256'] ||= hexdigest(body || '')
35
- headers['authorization'] = authorization(credentials, datetime)
36
- end
37
-
38
- protected
39
-
40
- def authorization credentials, datetime
41
- parts = []
42
- parts << "AWS4-HMAC-SHA256 Credential=#{credentials.access_key_id}/#{credential_string(datetime)}"
43
- parts << "SignedHeaders=#{signed_headers}"
44
- parts << "Signature=#{signature(credentials, datetime)}"
45
- parts.join(', ')
46
- end
47
-
48
- def signature credentials, datetime
49
- k_secret = credentials.secret_access_key
50
- k_date = hmac("AWS4" + k_secret, datetime[0,8])
51
- k_region = hmac(k_date, region)
52
- k_service = hmac(k_region, service)
53
- k_credentials = hmac(k_service, 'aws4_request')
54
- hexhmac(k_credentials, string_to_sign(datetime))
55
- end
56
-
57
- def string_to_sign datetime
58
- parts = []
59
- parts << 'AWS4-HMAC-SHA256'
60
- parts << datetime
61
- parts << credential_string(datetime)
62
- parts << hexdigest(canonical_request)
63
- parts.join("\n")
64
- end
65
-
66
- def credential_string datetime
67
- parts = []
68
- parts << datetime[0,8]
69
- parts << region
70
- parts << service
71
- parts << 'aws4_request'
72
- parts.join("/")
73
- end
74
-
75
- def canonical_request
76
- parts = []
77
- parts << http_method
78
- parts << path
79
- parts << querystring
80
- parts << canonical_headers + "\n"
81
- parts << signed_headers
82
- parts << headers['x-amz-content-sha256']
83
- parts.join("\n")
84
- end
85
-
86
- def service
87
- # this method is implemented in the request class for each service
88
- raise NotImplementedError
89
- end
90
-
91
- def signed_headers
92
- to_sign = headers.keys.map{|k| k.to_s.downcase }
93
- to_sign.delete('authorization')
94
- to_sign.sort.join(";")
95
- end
96
-
97
- def canonical_headers
98
- headers = []
99
- self.headers.each_pair do |k,v|
100
- headers << [k,v] unless k == 'authorization'
101
- end
102
- headers = headers.sort_by(&:first)
103
- headers.map{|k,v| "#{k}:#{canonical_header_values(v)}" }.join("\n")
104
- end
105
-
106
- def canonical_header_values values
107
- values = [values] unless values.is_a?(Array)
108
- values.map(&:to_s).join(',').gsub(/\s+/, ' ').strip
109
- end
110
-
111
- def hexdigest value
112
- digest = Digest::SHA256.new
113
- if value.respond_to?(:read)
114
- chunk = nil
115
- chunk_size = 1024 * 1024 # 1 megabyte
116
- digest.update(chunk) while chunk = value.read(chunk_size)
117
- value.rewind
118
- else
119
- digest.update(value)
120
- end
121
- digest.hexdigest
122
- end
123
-
124
- def hmac key, value
125
- OpenSSL::HMAC.digest(OpenSSL::Digest::Digest.new('sha256'), key, value)
126
- end
127
-
128
- def hexhmac key, value
129
- OpenSSL::HMAC.hexdigest(OpenSSL::Digest::Digest.new('sha256'), key, value)
130
- end
131
-
132
- end
133
- end
134
- end
135
- end