aws-sdk-s3 1.96.2 → 1.132.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +256 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +226 -76
  5. data/lib/aws-sdk-s3/bucket_acl.rb +30 -7
  6. data/lib/aws-sdk-s3/bucket_cors.rb +35 -10
  7. data/lib/aws-sdk-s3/bucket_lifecycle.rb +39 -12
  8. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +40 -10
  9. data/lib/aws-sdk-s3/bucket_logging.rb +30 -7
  10. data/lib/aws-sdk-s3/bucket_notification.rb +28 -10
  11. data/lib/aws-sdk-s3/bucket_policy.rb +35 -10
  12. data/lib/aws-sdk-s3/bucket_request_payment.rb +30 -7
  13. data/lib/aws-sdk-s3/bucket_tagging.rb +35 -10
  14. data/lib/aws-sdk-s3/bucket_versioning.rb +78 -17
  15. data/lib/aws-sdk-s3/bucket_website.rb +35 -10
  16. data/lib/aws-sdk-s3/client.rb +3854 -2120
  17. data/lib/aws-sdk-s3/client_api.rb +601 -208
  18. data/lib/aws-sdk-s3/customizations/bucket.rb +23 -47
  19. data/lib/aws-sdk-s3/customizations/errors.rb +27 -0
  20. data/lib/aws-sdk-s3/customizations/object.rb +130 -24
  21. data/lib/aws-sdk-s3/customizations/types/permanent_redirect.rb +26 -0
  22. data/lib/aws-sdk-s3/customizations.rb +2 -0
  23. data/lib/aws-sdk-s3/encryption/client.rb +7 -3
  24. data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +0 -4
  25. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +13 -9
  26. data/lib/aws-sdk-s3/encryptionV2/client.rb +7 -3
  27. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +1 -4
  28. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +0 -4
  29. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +10 -6
  30. data/lib/aws-sdk-s3/endpoint_parameters.rb +146 -0
  31. data/lib/aws-sdk-s3/endpoint_provider.rb +509 -0
  32. data/lib/aws-sdk-s3/endpoints.rb +2150 -0
  33. data/lib/aws-sdk-s3/file_downloader.rb +57 -27
  34. data/lib/aws-sdk-s3/file_uploader.rb +12 -5
  35. data/lib/aws-sdk-s3/multipart_file_uploader.rb +26 -7
  36. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +41 -13
  37. data/lib/aws-sdk-s3/multipart_upload.rb +138 -16
  38. data/lib/aws-sdk-s3/multipart_upload_part.rb +144 -18
  39. data/lib/aws-sdk-s3/object.rb +364 -160
  40. data/lib/aws-sdk-s3/object_acl.rb +32 -9
  41. data/lib/aws-sdk-s3/object_copier.rb +7 -5
  42. data/lib/aws-sdk-s3/object_multipart_copier.rb +41 -19
  43. data/lib/aws-sdk-s3/object_summary.rb +291 -123
  44. data/lib/aws-sdk-s3/object_version.rb +99 -46
  45. data/lib/aws-sdk-s3/plugins/accelerate.rb +3 -44
  46. data/lib/aws-sdk-s3/plugins/arn.rb +22 -180
  47. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +3 -39
  48. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +1 -6
  49. data/lib/aws-sdk-s3/plugins/dualstack.rb +1 -55
  50. data/lib/aws-sdk-s3/plugins/endpoints.rb +262 -0
  51. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +2 -1
  52. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +6 -29
  53. data/lib/aws-sdk-s3/plugins/md5s.rb +5 -3
  54. data/lib/aws-sdk-s3/plugins/s3_signer.rb +35 -100
  55. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +31 -0
  56. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +23 -2
  57. data/lib/aws-sdk-s3/presigned_post.rb +99 -78
  58. data/lib/aws-sdk-s3/presigner.rb +24 -29
  59. data/lib/aws-sdk-s3/resource.rb +25 -3
  60. data/lib/aws-sdk-s3/types.rb +3307 -4625
  61. data/lib/aws-sdk-s3.rb +5 -1
  62. metadata +14 -11
  63. data/lib/aws-sdk-s3/arn/access_point_arn.rb +0 -69
  64. data/lib/aws-sdk-s3/arn/object_lambda_arn.rb +0 -69
  65. data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +0 -73
  66. data/lib/aws-sdk-s3/plugins/object_lambda_endpoint.rb +0 -25
@@ -54,7 +54,9 @@ module Aws::S3
54
54
  #
55
55
  # @return [self]
56
56
  def load
57
- resp = @client.get_bucket_tagging(bucket: @bucket_name)
57
+ resp = Aws::Plugins::UserAgent.feature('resource') do
58
+ @client.get_bucket_tagging(bucket: @bucket_name)
59
+ end
58
60
  @data = resp.data
59
61
  self
60
62
  end
@@ -169,7 +171,9 @@ module Aws::S3
169
171
  :retry
170
172
  end
171
173
  end
172
- Aws::Waiters::Waiter.new(options).wait({})
174
+ Aws::Plugins::UserAgent.feature('resource') do
175
+ Aws::Waiters::Waiter.new(options).wait({})
176
+ end
173
177
  end
174
178
 
175
179
  # @!group Actions
@@ -182,12 +186,14 @@ module Aws::S3
182
186
  # @param [Hash] options ({})
183
187
  # @option options [String] :expected_bucket_owner
184
188
  # The account ID of the expected bucket owner. If the bucket is owned by
185
- # a different account, the request will fail with an HTTP `403 (Access
186
- # Denied)` error.
189
+ # a different account, the request fails with the HTTP status code `403
190
+ # Forbidden` (access denied).
187
191
  # @return [EmptyStructure]
188
192
  def delete(options = {})
189
193
  options = options.merge(bucket: @bucket_name)
190
- resp = @client.delete_bucket_tagging(options)
194
+ resp = Aws::Plugins::UserAgent.feature('resource') do
195
+ @client.delete_bucket_tagging(options)
196
+ end
191
197
  resp.data
192
198
  end
193
199
 
@@ -195,6 +201,7 @@ module Aws::S3
195
201
  #
196
202
  # bucket_tagging.put({
197
203
  # content_md5: "ContentMD5",
204
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
198
205
  # tagging: { # required
199
206
  # tag_set: [ # required
200
207
  # {
@@ -211,22 +218,40 @@ module Aws::S3
211
218
  # header as a message integrity check to verify that the request body
212
219
  # was not corrupted in transit. For more information, see [RFC 1864][1].
213
220
  #
214
- # For requests made using the AWS Command Line Interface (CLI) or AWS
215
- # SDKs, this field is calculated automatically.
221
+ # For requests made using the Amazon Web Services Command Line Interface
222
+ # (CLI) or Amazon Web Services SDKs, this field is calculated
223
+ # automatically.
216
224
  #
217
225
  #
218
226
  #
219
227
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
228
+ # @option options [String] :checksum_algorithm
229
+ # Indicates the algorithm used to create the checksum for the object
230
+ # when using the SDK. This header will not provide any additional
231
+ # functionality if not using the SDK. When sending this header, there
232
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
233
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
234
+ # `400 Bad Request`. For more information, see [Checking object
235
+ # integrity][1] in the *Amazon S3 User Guide*.
236
+ #
237
+ # If you provide an individual checksum, Amazon S3 ignores any provided
238
+ # `ChecksumAlgorithm` parameter.
239
+ #
240
+ #
241
+ #
242
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
220
243
  # @option options [required, Types::Tagging] :tagging
221
244
  # Container for the `TagSet` and `Tag` elements.
222
245
  # @option options [String] :expected_bucket_owner
223
246
  # The account ID of the expected bucket owner. If the bucket is owned by
224
- # a different account, the request will fail with an HTTP `403 (Access
225
- # Denied)` error.
247
+ # a different account, the request fails with the HTTP status code `403
248
+ # Forbidden` (access denied).
226
249
  # @return [EmptyStructure]
227
250
  def put(options = {})
228
251
  options = options.merge(bucket: @bucket_name)
229
- resp = @client.put_bucket_tagging(options)
252
+ resp = Aws::Plugins::UserAgent.feature('resource') do
253
+ @client.put_bucket_tagging(options)
254
+ end
230
255
  resp.data
231
256
  end
232
257
 
@@ -63,7 +63,9 @@ module Aws::S3
63
63
  #
64
64
  # @return [self]
65
65
  def load
66
- resp = @client.get_bucket_versioning(bucket: @bucket_name)
66
+ resp = Aws::Plugins::UserAgent.feature('resource') do
67
+ @client.get_bucket_versioning(bucket: @bucket_name)
68
+ end
67
69
  @data = resp.data
68
70
  self
69
71
  end
@@ -178,7 +180,9 @@ module Aws::S3
178
180
  :retry
179
181
  end
180
182
  end
181
- Aws::Waiters::Waiter.new(options).wait({})
183
+ Aws::Plugins::UserAgent.feature('resource') do
184
+ Aws::Waiters::Waiter.new(options).wait({})
185
+ end
182
186
  end
183
187
 
184
188
  # @!group Actions
@@ -187,6 +191,7 @@ module Aws::S3
187
191
  #
188
192
  # bucket_versioning.enable({
189
193
  # content_md5: "ContentMD5",
194
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
190
195
  # mfa: "MFA",
191
196
  # expected_bucket_owner: "AccountId",
192
197
  # })
@@ -197,19 +202,35 @@ module Aws::S3
197
202
  # body was not corrupted in transit. For more information, see [RFC
198
203
  # 1864][1].
199
204
  #
200
- # For requests made using the AWS Command Line Interface (CLI) or AWS
201
- # SDKs, this field is calculated automatically.
205
+ # For requests made using the Amazon Web Services Command Line Interface
206
+ # (CLI) or Amazon Web Services SDKs, this field is calculated
207
+ # automatically.
202
208
  #
203
209
  #
204
210
  #
205
211
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
212
+ # @option options [String] :checksum_algorithm
213
+ # Indicates the algorithm used to create the checksum for the object
214
+ # when using the SDK. This header will not provide any additional
215
+ # functionality if not using the SDK. When sending this header, there
216
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
217
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
218
+ # `400 Bad Request`. For more information, see [Checking object
219
+ # integrity][1] in the *Amazon S3 User Guide*.
220
+ #
221
+ # If you provide an individual checksum, Amazon S3 ignores any provided
222
+ # `ChecksumAlgorithm` parameter.
223
+ #
224
+ #
225
+ #
226
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
206
227
  # @option options [String] :mfa
207
228
  # The concatenation of the authentication device's serial number, a
208
229
  # space, and the value that is displayed on your authentication device.
209
230
  # @option options [String] :expected_bucket_owner
210
231
  # The account ID of the expected bucket owner. If the bucket is owned by
211
- # a different account, the request will fail with an HTTP `403 (Access
212
- # Denied)` error.
232
+ # a different account, the request fails with the HTTP status code `403
233
+ # Forbidden` (access denied).
213
234
  # @return [EmptyStructure]
214
235
  def enable(options = {})
215
236
  options = Aws::Util.deep_merge(options,
@@ -218,7 +239,9 @@ module Aws::S3
218
239
  status: "Enabled"
219
240
  }
220
241
  )
221
- resp = @client.put_bucket_versioning(options)
242
+ resp = Aws::Plugins::UserAgent.feature('resource') do
243
+ @client.put_bucket_versioning(options)
244
+ end
222
245
  resp.data
223
246
  end
224
247
 
@@ -226,6 +249,7 @@ module Aws::S3
226
249
  #
227
250
  # bucket_versioning.put({
228
251
  # content_md5: "ContentMD5",
252
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
229
253
  # mfa: "MFA",
230
254
  # versioning_configuration: { # required
231
255
  # mfa_delete: "Enabled", # accepts Enabled, Disabled
@@ -240,12 +264,28 @@ module Aws::S3
240
264
  # body was not corrupted in transit. For more information, see [RFC
241
265
  # 1864][1].
242
266
  #
243
- # For requests made using the AWS Command Line Interface (CLI) or AWS
244
- # SDKs, this field is calculated automatically.
267
+ # For requests made using the Amazon Web Services Command Line Interface
268
+ # (CLI) or Amazon Web Services SDKs, this field is calculated
269
+ # automatically.
245
270
  #
246
271
  #
247
272
  #
248
273
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
274
+ # @option options [String] :checksum_algorithm
275
+ # Indicates the algorithm used to create the checksum for the object
276
+ # when using the SDK. This header will not provide any additional
277
+ # functionality if not using the SDK. When sending this header, there
278
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
279
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
280
+ # `400 Bad Request`. For more information, see [Checking object
281
+ # integrity][1] in the *Amazon S3 User Guide*.
282
+ #
283
+ # If you provide an individual checksum, Amazon S3 ignores any provided
284
+ # `ChecksumAlgorithm` parameter.
285
+ #
286
+ #
287
+ #
288
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
249
289
  # @option options [String] :mfa
250
290
  # The concatenation of the authentication device's serial number, a
251
291
  # space, and the value that is displayed on your authentication device.
@@ -253,12 +293,14 @@ module Aws::S3
253
293
  # Container for setting the versioning state.
254
294
  # @option options [String] :expected_bucket_owner
255
295
  # The account ID of the expected bucket owner. If the bucket is owned by
256
- # a different account, the request will fail with an HTTP `403 (Access
257
- # Denied)` error.
296
+ # a different account, the request fails with the HTTP status code `403
297
+ # Forbidden` (access denied).
258
298
  # @return [EmptyStructure]
259
299
  def put(options = {})
260
300
  options = options.merge(bucket: @bucket_name)
261
- resp = @client.put_bucket_versioning(options)
301
+ resp = Aws::Plugins::UserAgent.feature('resource') do
302
+ @client.put_bucket_versioning(options)
303
+ end
262
304
  resp.data
263
305
  end
264
306
 
@@ -266,6 +308,7 @@ module Aws::S3
266
308
  #
267
309
  # bucket_versioning.suspend({
268
310
  # content_md5: "ContentMD5",
311
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
269
312
  # mfa: "MFA",
270
313
  # expected_bucket_owner: "AccountId",
271
314
  # })
@@ -276,19 +319,35 @@ module Aws::S3
276
319
  # body was not corrupted in transit. For more information, see [RFC
277
320
  # 1864][1].
278
321
  #
279
- # For requests made using the AWS Command Line Interface (CLI) or AWS
280
- # SDKs, this field is calculated automatically.
322
+ # For requests made using the Amazon Web Services Command Line Interface
323
+ # (CLI) or Amazon Web Services SDKs, this field is calculated
324
+ # automatically.
281
325
  #
282
326
  #
283
327
  #
284
328
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
329
+ # @option options [String] :checksum_algorithm
330
+ # Indicates the algorithm used to create the checksum for the object
331
+ # when using the SDK. This header will not provide any additional
332
+ # functionality if not using the SDK. When sending this header, there
333
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
334
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
335
+ # `400 Bad Request`. For more information, see [Checking object
336
+ # integrity][1] in the *Amazon S3 User Guide*.
337
+ #
338
+ # If you provide an individual checksum, Amazon S3 ignores any provided
339
+ # `ChecksumAlgorithm` parameter.
340
+ #
341
+ #
342
+ #
343
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
285
344
  # @option options [String] :mfa
286
345
  # The concatenation of the authentication device's serial number, a
287
346
  # space, and the value that is displayed on your authentication device.
288
347
  # @option options [String] :expected_bucket_owner
289
348
  # The account ID of the expected bucket owner. If the bucket is owned by
290
- # a different account, the request will fail with an HTTP `403 (Access
291
- # Denied)` error.
349
+ # a different account, the request fails with the HTTP status code `403
350
+ # Forbidden` (access denied).
292
351
  # @return [EmptyStructure]
293
352
  def suspend(options = {})
294
353
  options = Aws::Util.deep_merge(options,
@@ -297,7 +356,9 @@ module Aws::S3
297
356
  status: "Suspended"
298
357
  }
299
358
  )
300
- resp = @client.put_bucket_versioning(options)
359
+ resp = Aws::Plugins::UserAgent.feature('resource') do
360
+ @client.put_bucket_versioning(options)
361
+ end
301
362
  resp.data
302
363
  end
303
364
 
@@ -76,7 +76,9 @@ module Aws::S3
76
76
  #
77
77
  # @return [self]
78
78
  def load
79
- resp = @client.get_bucket_website(bucket: @bucket_name)
79
+ resp = Aws::Plugins::UserAgent.feature('resource') do
80
+ @client.get_bucket_website(bucket: @bucket_name)
81
+ end
80
82
  @data = resp.data
81
83
  self
82
84
  end
@@ -191,7 +193,9 @@ module Aws::S3
191
193
  :retry
192
194
  end
193
195
  end
194
- Aws::Waiters::Waiter.new(options).wait({})
196
+ Aws::Plugins::UserAgent.feature('resource') do
197
+ Aws::Waiters::Waiter.new(options).wait({})
198
+ end
195
199
  end
196
200
 
197
201
  # @!group Actions
@@ -204,12 +208,14 @@ module Aws::S3
204
208
  # @param [Hash] options ({})
205
209
  # @option options [String] :expected_bucket_owner
206
210
  # The account ID of the expected bucket owner. If the bucket is owned by
207
- # a different account, the request will fail with an HTTP `403 (Access
208
- # Denied)` error.
211
+ # a different account, the request fails with the HTTP status code `403
212
+ # Forbidden` (access denied).
209
213
  # @return [EmptyStructure]
210
214
  def delete(options = {})
211
215
  options = options.merge(bucket: @bucket_name)
212
- resp = @client.delete_bucket_website(options)
216
+ resp = Aws::Plugins::UserAgent.feature('resource') do
217
+ @client.delete_bucket_website(options)
218
+ end
213
219
  resp.data
214
220
  end
215
221
 
@@ -217,6 +223,7 @@ module Aws::S3
217
223
  #
218
224
  # bucket_website.put({
219
225
  # content_md5: "ContentMD5",
226
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
220
227
  # website_configuration: { # required
221
228
  # error_document: {
222
229
  # key: "ObjectKey", # required
@@ -252,22 +259,40 @@ module Aws::S3
252
259
  # header as a message integrity check to verify that the request body
253
260
  # was not corrupted in transit. For more information, see [RFC 1864][1].
254
261
  #
255
- # For requests made using the AWS Command Line Interface (CLI) or AWS
256
- # SDKs, this field is calculated automatically.
262
+ # For requests made using the Amazon Web Services Command Line Interface
263
+ # (CLI) or Amazon Web Services SDKs, this field is calculated
264
+ # automatically.
257
265
  #
258
266
  #
259
267
  #
260
268
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
269
+ # @option options [String] :checksum_algorithm
270
+ # Indicates the algorithm used to create the checksum for the object
271
+ # when using the SDK. This header will not provide any additional
272
+ # functionality if not using the SDK. When sending this header, there
273
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
274
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
275
+ # `400 Bad Request`. For more information, see [Checking object
276
+ # integrity][1] in the *Amazon S3 User Guide*.
277
+ #
278
+ # If you provide an individual checksum, Amazon S3 ignores any provided
279
+ # `ChecksumAlgorithm` parameter.
280
+ #
281
+ #
282
+ #
283
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
261
284
  # @option options [required, Types::WebsiteConfiguration] :website_configuration
262
285
  # Container for the request.
263
286
  # @option options [String] :expected_bucket_owner
264
287
  # The account ID of the expected bucket owner. If the bucket is owned by
265
- # a different account, the request will fail with an HTTP `403 (Access
266
- # Denied)` error.
288
+ # a different account, the request fails with the HTTP status code `403
289
+ # Forbidden` (access denied).
267
290
  # @return [EmptyStructure]
268
291
  def put(options = {})
269
292
  options = options.merge(bucket: @bucket_name)
270
- resp = @client.put_bucket_website(options)
293
+ resp = Aws::Plugins::UserAgent.feature('resource') do
294
+ @client.put_bucket_website(options)
295
+ end
271
296
  resp.data
272
297
  end
273
298