aws-sdk-s3 1.96.2 → 1.113.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +105 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/arn/access_point_arn.rb +6 -6
  5. data/lib/aws-sdk-s3/arn/multi_region_access_point_arn.rb +68 -0
  6. data/lib/aws-sdk-s3/arn/object_lambda_arn.rb +6 -6
  7. data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +7 -6
  8. data/lib/aws-sdk-s3/bucket.rb +126 -29
  9. data/lib/aws-sdk-s3/bucket_acl.rb +21 -4
  10. data/lib/aws-sdk-s3/bucket_cors.rb +23 -6
  11. data/lib/aws-sdk-s3/bucket_lifecycle.rb +27 -8
  12. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +28 -6
  13. data/lib/aws-sdk-s3/bucket_logging.rb +21 -4
  14. data/lib/aws-sdk-s3/bucket_notification.rb +19 -7
  15. data/lib/aws-sdk-s3/bucket_policy.rb +23 -6
  16. data/lib/aws-sdk-s3/bucket_request_payment.rb +21 -4
  17. data/lib/aws-sdk-s3/bucket_tagging.rb +23 -6
  18. data/lib/aws-sdk-s3/bucket_versioning.rb +63 -12
  19. data/lib/aws-sdk-s3/bucket_website.rb +23 -6
  20. data/lib/aws-sdk-s3/client.rb +2691 -1278
  21. data/lib/aws-sdk-s3/client_api.rb +390 -21
  22. data/lib/aws-sdk-s3/customizations/object.rb +78 -5
  23. data/lib/aws-sdk-s3/encryption/client.rb +1 -1
  24. data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +0 -4
  25. data/lib/aws-sdk-s3/encryptionV2/client.rb +1 -1
  26. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +0 -4
  27. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +0 -4
  28. data/lib/aws-sdk-s3/file_downloader.rb +1 -1
  29. data/lib/aws-sdk-s3/file_uploader.rb +6 -1
  30. data/lib/aws-sdk-s3/multipart_file_uploader.rb +26 -7
  31. data/lib/aws-sdk-s3/multipart_upload.rb +126 -12
  32. data/lib/aws-sdk-s3/multipart_upload_part.rb +134 -14
  33. data/lib/aws-sdk-s3/object.rb +291 -115
  34. data/lib/aws-sdk-s3/object_acl.rb +23 -6
  35. data/lib/aws-sdk-s3/object_summary.rb +207 -80
  36. data/lib/aws-sdk-s3/object_version.rb +66 -39
  37. data/lib/aws-sdk-s3/plugins/accelerate.rb +7 -1
  38. data/lib/aws-sdk-s3/plugins/arn.rb +59 -33
  39. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +1 -1
  40. data/lib/aws-sdk-s3/plugins/dualstack.rb +25 -31
  41. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +6 -0
  42. data/lib/aws-sdk-s3/plugins/md5s.rb +5 -3
  43. data/lib/aws-sdk-s3/plugins/s3_signer.rb +29 -5
  44. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +31 -0
  45. data/lib/aws-sdk-s3/presigned_post.rb +38 -19
  46. data/lib/aws-sdk-s3/presigner.rb +6 -0
  47. data/lib/aws-sdk-s3/resource.rb +18 -0
  48. data/lib/aws-sdk-s3/types.rb +2928 -920
  49. data/lib/aws-sdk-s3.rb +1 -1
  50. metadata +9 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 242ed586795b4719f27d124b42faaa419bf14d4c5dc3b612db75583df4563685
4
- data.tar.gz: dadf398788037a0cd952f24aa0ff0e0f11de1a3af6223381c720effee0ca4bde
3
+ metadata.gz: cd3cdd3ce413a190558c3c4fb19b0c360e6fdc8429315addf9a99f8a4200e84f
4
+ data.tar.gz: 8ea6b6b1a93212b99871945b5deeaa90813f4aef35d55ae2c351194be17f2909
5
5
  SHA512:
6
- metadata.gz: 1095e47c4edccb43eb079cfbc7dadb9b6fa077d7bf2344571041cede5e587ac70d76cecdef4f514890f5c576416ffd89d6ac07bd876559bb59a229a1bb0dc103
7
- data.tar.gz: 7df71120e7b7da8eee77f7df0fbe64a86f4452b137909578aee664d80c7126591b728b4a8efbaa8c367a102e6ab912b8cae961955dfa8fc2124aed82e0f1660f
6
+ metadata.gz: 4c83d52e47d9990c34a6ffa1b0ab647e333353dc516a4105a01df1fa2d93fe5d8a7e45c48072e27d95cd4e7581adcc606fabe3afb5cfd9e41047da330910ad37
7
+ data.tar.gz: a399eff773756874118891127b2ac26592b1c780559b3900ef0f4982e6ef3286b759331507a79778725e5cb61f7f140d94d08e77bd4ba51b05eb3e23b1f7a621
data/CHANGELOG.md CHANGED
@@ -1,6 +1,111 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.113.0 (2022-02-24)
5
+ ------------------
6
+
7
+ * Feature - This release adds support for new integrity checking capabilities in Amazon S3. You can choose from four supported checksum algorithms for data integrity checking on your upload and download requests. In addition, AWS SDK can automatically calculate a checksum as it streams data into S3
8
+
9
+ 1.112.0 (2022-02-03)
10
+ ------------------
11
+
12
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
13
+
14
+ 1.111.3 (2022-01-24)
15
+ ------------------
16
+
17
+ * Issue - Fix starts_with fields on `PresignedPost` (#2636).
18
+
19
+ 1.111.2 (2022-01-20)
20
+ ------------------
21
+
22
+ * Issue - Minor cleanups.
23
+
24
+ 1.111.1 (2022-01-06)
25
+ ------------------
26
+
27
+ * Issue - Don't fail small files in `upload_file` when `:thread_count` is set. (#2628)
28
+
29
+ 1.111.0 (2022-01-04)
30
+ ------------------
31
+
32
+ * Feature - Minor doc-based updates based on feedback bugs received.
33
+
34
+ 1.110.0 (2021-12-21)
35
+ ------------------
36
+
37
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
38
+
39
+ 1.109.0 (2021-11-30)
40
+ ------------------
41
+
42
+ * Feature - Introduce Amazon S3 Glacier Instant Retrieval storage class and a new setting in S3 Object Ownership to disable ACLs for bucket and the objects in it.
43
+
44
+ 1.108.0 (2021-11-29)
45
+ ------------------
46
+
47
+ * Feature - Amazon S3 Event Notifications adds Amazon EventBridge as a destination and supports additional event types. The PutBucketNotificationConfiguration API can now skip validation of Amazon SQS, Amazon SNS and AWS Lambda destinations.
48
+
49
+ 1.107.0 (2021-11-23)
50
+ ------------------
51
+
52
+ * Feature - Introduce two new Filters to S3 Lifecycle configurations - ObjectSizeGreaterThan and ObjectSizeLessThan. Introduce a new way to trigger actions on noncurrent versions by providing the number of newer noncurrent versions along with noncurrent days.
53
+
54
+ 1.106.0 (2021-11-17)
55
+ ------------------
56
+
57
+ * Feature - Add `presigned_request` method to `Aws::S3::Object`.
58
+
59
+ 1.105.1 (2021-11-05)
60
+ ------------------
61
+
62
+ * Issue - Raise error when `use_fips_endpoint` is used with `use_accelerate_endpoint`.
63
+
64
+ 1.105.0 (2021-11-04)
65
+ ------------------
66
+
67
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
68
+
69
+ 1.104.0 (2021-10-18)
70
+ ------------------
71
+
72
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
73
+
74
+ 1.103.0 (2021-09-16)
75
+ ------------------
76
+
77
+ * Feature - Add support for access point arn filtering in S3 CW Request Metrics
78
+
79
+ 1.102.0 (2021-09-02)
80
+ ------------------
81
+
82
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
83
+
84
+ 1.101.0 (2021-09-01)
85
+ ------------------
86
+
87
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
88
+
89
+ 1.100.0 (2021-08-27)
90
+ ------------------
91
+
92
+ * Feature - Documentation updates for Amazon S3.
93
+
94
+ 1.99.0 (2021-08-16)
95
+ ------------------
96
+
97
+ * Feature - Documentation updates for Amazon S3
98
+
99
+ 1.98.0 (2021-07-30)
100
+ ------------------
101
+
102
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
103
+
104
+ 1.97.0 (2021-07-28)
105
+ ------------------
106
+
107
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
108
+
4
109
  1.96.2 (2021-07-20)
5
110
  ------------------
6
111
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.96.2
1
+ 1.113.0
@@ -25,25 +25,25 @@ module Aws
25
25
  if @region.empty? || @account_id.empty?
26
26
  raise ArgumentError,
27
27
  'S3 Access Point ARNs must contain both a region '\
28
- 'and an account id.'
28
+ 'and an account ID.'
29
29
  end
30
30
 
31
31
  if @region.include?('-fips') || @region.include?('fips-')
32
32
  raise ArgumentError,
33
- 'S3 Access Point ARNs cannot contain a FIPS region'
33
+ 'S3 Access Point ARNs cannot contain a FIPS region.'
34
34
  end
35
35
 
36
36
  if @type != 'accesspoint'
37
- raise ArgumentError, 'Invalid ARN, resource format is not correct'
37
+ raise ArgumentError, 'Invalid ARN, resource format is not correct.'
38
38
  end
39
39
 
40
40
  if @access_point_name.nil? || @access_point_name.empty?
41
- raise ArgumentError, 'Missing ARN accesspoint name.'
41
+ raise ArgumentError, 'Missing ARN Access Point name.'
42
42
  end
43
43
 
44
44
  if @extra
45
45
  raise ArgumentError,
46
- 'ARN accesspoint resource must be a single value.'
46
+ 'ARN Access Point resource must be a single value.'
47
47
  end
48
48
 
49
49
  unless Seahorse::Util.host_label?(
@@ -60,7 +60,7 @@ module Aws
60
60
  if custom_endpoint
61
61
  "#{pfx}.#{custom_endpoint}"
62
62
  else
63
- sfx = Aws::Partitions::EndpointProvider.dns_suffix_for(region)
63
+ sfx = Aws::Partitions::EndpointProvider.dns_suffix_for(region, 's3')
64
64
  "#{pfx}.s3-accesspoint#{'-fips' if fips}#{'.dualstack' if dualstack}.#{region}.#{sfx}"
65
65
  end
66
66
  end
@@ -0,0 +1,68 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Aws
4
+ module S3
5
+ # @api private
6
+ class MultiRegionAccessPointARN < Aws::ARN
7
+ def initialize(options)
8
+ super(options)
9
+ @type, @mrap_alias, @extra = @resource.split(/[:,\/]/)
10
+ end
11
+
12
+ attr_reader :mrap_alias
13
+
14
+ def support_dualstack?
15
+ false
16
+ end
17
+
18
+ def support_fips?
19
+ false
20
+ end
21
+
22
+ def validate_arn!
23
+ unless @service == 's3'
24
+ raise ArgumentError,
25
+ 'Must provide a valid S3 multi-region access point ARN.'
26
+ end
27
+
28
+ if @account_id.empty?
29
+ raise ArgumentError,
30
+ 'S3 multi-region access point ARNs must contain '\
31
+ 'an account id.'
32
+ end
33
+
34
+ unless @region.empty?
35
+ raise ArgumentError,
36
+ 'Multi-region access points must have an empty region.'
37
+ end
38
+
39
+ if @type != 'accesspoint'
40
+ raise ArgumentError, 'Invalid ARN, resource format is not correct'
41
+ end
42
+
43
+ if @mrap_alias.nil? || @mrap_alias.empty?
44
+ raise ArgumentError, 'Missing ARN multi-region access points alias.'
45
+ end
46
+
47
+ unless @mrap_alias.split('.').all? { |s| Seahorse::Util.host_label?(s) }
48
+ raise ArgumentError, "#{@mrap_alias} is not a valid "\
49
+ 'multi region access point alias.'
50
+ end
51
+
52
+ if @extra
53
+ raise ArgumentError,
54
+ 'ARN access point resource must be a single value.'
55
+ end
56
+ end
57
+
58
+ def host_url(_region, _fips = false, _dualstack = false, custom_endpoint = nil)
59
+ if custom_endpoint
60
+ "#{@mrap_alias}.#{custom_endpoint}"
61
+ else
62
+ sfx = Aws::Partitions::EndpointProvider.dns_suffix_for(@partition, 's3')
63
+ "#{@mrap_alias}.accesspoint.s3-global.#{sfx}"
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
@@ -19,18 +19,18 @@ module Aws
19
19
 
20
20
  def validate_arn!
21
21
  unless @service == 's3-object-lambda'
22
- raise ArgumentError, 'Must provide a valid S3 Object Lambdas ARN.'
22
+ raise ArgumentError, 'Must provide a valid S3 Object Lambda ARN.'
23
23
  end
24
24
 
25
25
  if @region.empty? || @account_id.empty?
26
26
  raise ArgumentError,
27
27
  'S3 Object Lambdas ARNs must contain both a region '\
28
- 'and an account id.'
28
+ 'and an account ID.'
29
29
  end
30
30
 
31
31
  if @region.include?('-fips') || @region.include?('fips-')
32
32
  raise ArgumentError,
33
- 'S3 Access Point ARNs cannot contain a FIPS region'
33
+ 'S3 Object Lambda ARNs cannot contain a FIPS region'
34
34
  end
35
35
 
36
36
  if @type != 'accesspoint'
@@ -38,12 +38,12 @@ module Aws
38
38
  end
39
39
 
40
40
  if @access_point_name.nil? || @access_point_name.empty?
41
- raise ArgumentError, 'Missing ARN accesspoint name.'
41
+ raise ArgumentError, 'Missing ARN Access Point name.'
42
42
  end
43
43
 
44
44
  if @extra
45
45
  raise ArgumentError,
46
- 'ARN accesspoint resource must be a single value.'
46
+ 'ARN Access Point resource must be a single value.'
47
47
  end
48
48
 
49
49
  unless Seahorse::Util.host_label?(
@@ -60,7 +60,7 @@ module Aws
60
60
  if custom_endpoint
61
61
  "#{pfx}.#{custom_endpoint}"
62
62
  else
63
- sfx = Aws::Partitions::EndpointProvider.dns_suffix_for(region)
63
+ sfx = Aws::Partitions::EndpointProvider.dns_suffix_for(region, 's3')
64
64
  "#{pfx}.s3-object-lambda#{'-fips' if fips}.#{region}.#{sfx}"
65
65
  end
66
66
  end
@@ -20,13 +20,14 @@ module Aws
20
20
 
21
21
  def validate_arn!
22
22
  unless @service == 's3-outposts'
23
- raise ArgumentError, 'Must provide a valid S3 Outposts ARN.'
23
+ raise ArgumentError, 'Must provide a valid S3 Outpost Access '\
24
+ 'Point ARN.'
24
25
  end
25
26
 
26
27
  if @region.empty? || @account_id.empty?
27
28
  raise ArgumentError,
28
- 'S3 Outpost ARNs must contain both a region '\
29
- 'and an account id.'
29
+ 'S3 Outpost Access Point ARNs must contain both a region '\
30
+ 'and an account ID.'
30
31
  end
31
32
 
32
33
  if @type != 'outpost' && @subtype != 'accesspoint'
@@ -34,16 +35,16 @@ module Aws
34
35
  end
35
36
 
36
37
  if @outpost_id.nil? || @outpost_id.empty?
37
- raise ArgumentError, 'Missing ARN outpost id.'
38
+ raise ArgumentError, 'Missing ARN Outpost ID.'
38
39
  end
39
40
 
40
41
  if @access_point_name.nil? || @access_point_name.empty?
41
- raise ArgumentError, 'Missing ARN accesspoint name.'
42
+ raise ArgumentError, 'Missing ARN Access Point name.'
42
43
  end
43
44
 
44
45
  if @extra
45
46
  raise ArgumentError,
46
- 'ARN accesspoint resource must be a single value.'
47
+ 'ARN Access Point resource must be a single value.'
47
48
  end
48
49
 
49
50
  unless Seahorse::Util.host_label?(
@@ -231,6 +231,7 @@ module Aws::S3
231
231
  # grant_write: "GrantWrite",
232
232
  # grant_write_acp: "GrantWriteACP",
233
233
  # object_lock_enabled_for_bucket: false,
234
+ # object_ownership: "BucketOwnerPreferred", # accepts BucketOwnerPreferred, ObjectWriter, BucketOwnerEnforced
234
235
  # })
235
236
  # @param [Hash] options ({})
236
237
  # @option options [String] :acl
@@ -254,6 +255,23 @@ module Aws::S3
254
255
  # @option options [Boolean] :object_lock_enabled_for_bucket
255
256
  # Specifies whether you want S3 Object Lock to be enabled for the new
256
257
  # bucket.
258
+ # @option options [String] :object_ownership
259
+ # The container element for object ownership for a bucket's ownership
260
+ # controls.
261
+ #
262
+ # BucketOwnerPreferred - Objects uploaded to the bucket change ownership
263
+ # to the bucket owner if the objects are uploaded with the
264
+ # `bucket-owner-full-control` canned ACL.
265
+ #
266
+ # ObjectWriter - The uploading account will own the object if the object
267
+ # is uploaded with the `bucket-owner-full-control` canned ACL.
268
+ #
269
+ # BucketOwnerEnforced - Access control lists (ACLs) are disabled and no
270
+ # longer affect permissions. The bucket owner automatically owns and has
271
+ # full control over every object in the bucket. The bucket only accepts
272
+ # PUT requests that don't specify an ACL or bucket owner full control
273
+ # ACLs, such as the `bucket-owner-full-control` canned ACL or an
274
+ # equivalent form of this ACL expressed in the XML format.
257
275
  # @return [Types::CreateBucketOutput]
258
276
  def create(options = {})
259
277
  options = options.merge(bucket: @name)
@@ -269,8 +287,8 @@ module Aws::S3
269
287
  # @param [Hash] options ({})
270
288
  # @option options [String] :expected_bucket_owner
271
289
  # The account ID of the expected bucket owner. If the bucket is owned by
272
- # a different account, the request will fail with an HTTP `403 (Access
273
- # Denied)` error.
290
+ # a different account, the request fails with the HTTP status code `403
291
+ # Forbidden` (access denied).
274
292
  # @return [EmptyStructure]
275
293
  def delete(options = {})
276
294
  options = options.merge(bucket: @name)
@@ -294,6 +312,7 @@ module Aws::S3
294
312
  # request_payer: "requester", # accepts requester
295
313
  # bypass_governance_retention: false,
296
314
  # expected_bucket_owner: "AccountId",
315
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
297
316
  # })
298
317
  # @param [Hash] options ({})
299
318
  # @option options [required, Types::Delete] :delete
@@ -306,8 +325,8 @@ module Aws::S3
306
325
  # @option options [String] :request_payer
307
326
  # Confirms that the requester knows that they will be charged for the
308
327
  # request. Bucket owners need not specify this parameter in their
309
- # requests. For information about downloading objects from requester
310
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
328
+ # requests. For information about downloading objects from Requester
329
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
311
330
  # in the *Amazon S3 User Guide*.
312
331
  #
313
332
  #
@@ -315,12 +334,30 @@ module Aws::S3
315
334
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
316
335
  # @option options [Boolean] :bypass_governance_retention
317
336
  # Specifies whether you want to delete this object even if it has a
318
- # Governance-type Object Lock in place. You must have sufficient
319
- # permissions to perform this operation.
337
+ # Governance-type Object Lock in place. To use this header, you must
338
+ # have the `s3:BypassGovernanceRetention` permission.
320
339
  # @option options [String] :expected_bucket_owner
321
340
  # The account ID of the expected bucket owner. If the bucket is owned by
322
- # a different account, the request will fail with an HTTP `403 (Access
323
- # Denied)` error.
341
+ # a different account, the request fails with the HTTP status code `403
342
+ # Forbidden` (access denied).
343
+ # @option options [String] :checksum_algorithm
344
+ # Indicates the algorithm used to create the checksum for the object
345
+ # when using the SDK. This header will not provide any additional
346
+ # functionality if not using the SDK. When sending this header, there
347
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
348
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
349
+ # `400 Bad Request`. For more information, see [Checking object
350
+ # integrity][1] in the *Amazon S3 User Guide*.
351
+ #
352
+ # If you provide an individual checksum, Amazon S3 ignores any provided
353
+ # `ChecksumAlgorithm` parameter.
354
+ #
355
+ # This checksum algorithm must be the same for all parts and it match
356
+ # the checksum value supplied in the `CreateMultipartUpload` request.
357
+ #
358
+ #
359
+ #
360
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
324
361
  # @return [Types::DeleteObjectsOutput]
325
362
  def delete_objects(options = {})
326
363
  options = options.merge(bucket: @name)
@@ -340,6 +377,11 @@ module Aws::S3
340
377
  # content_length: 1,
341
378
  # content_md5: "ContentMD5",
342
379
  # content_type: "ContentType",
380
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
381
+ # checksum_crc32: "ChecksumCRC32",
382
+ # checksum_crc32c: "ChecksumCRC32C",
383
+ # checksum_sha1: "ChecksumSHA1",
384
+ # checksum_sha256: "ChecksumSHA256",
343
385
  # expires: Time.now,
344
386
  # grant_full_control: "GrantFullControl",
345
387
  # grant_read: "GrantRead",
@@ -350,7 +392,7 @@ module Aws::S3
350
392
  # "MetadataKey" => "MetadataValue",
351
393
  # },
352
394
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
353
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
395
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
354
396
  # website_redirect_location: "WebsiteRedirectLocation",
355
397
  # sse_customer_algorithm: "SSECustomerAlgorithm",
356
398
  # sse_customer_key: "SSECustomerKey",
@@ -432,6 +474,61 @@ module Aws::S3
432
474
  #
433
475
  #
434
476
  # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17
477
+ # @option options [String] :checksum_algorithm
478
+ # Indicates the algorithm used to create the checksum for the object
479
+ # when using the SDK. This header will not provide any additional
480
+ # functionality if not using the SDK. When sending this header, there
481
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
482
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
483
+ # `400 Bad Request`. For more information, see [Checking object
484
+ # integrity][1] in the *Amazon S3 User Guide*.
485
+ #
486
+ # If you provide an individual checksum, Amazon S3 ignores any provided
487
+ # `ChecksumAlgorithm` parameter.
488
+ #
489
+ #
490
+ #
491
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
492
+ # @option options [String] :checksum_crc32
493
+ # This header can be used as a data integrity check to verify that the
494
+ # data received is the same data that was originally sent. This header
495
+ # specifies the base64-encoded, 32-bit CRC32 checksum of the object. For
496
+ # more information, see [Checking object integrity][1] in the *Amazon S3
497
+ # User Guide*.
498
+ #
499
+ #
500
+ #
501
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
502
+ # @option options [String] :checksum_crc32c
503
+ # This header can be used as a data integrity check to verify that the
504
+ # data received is the same data that was originally sent. This header
505
+ # specifies the base64-encoded, 32-bit CRC32C checksum of the object.
506
+ # For more information, see [Checking object integrity][1] in the
507
+ # *Amazon S3 User Guide*.
508
+ #
509
+ #
510
+ #
511
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
512
+ # @option options [String] :checksum_sha1
513
+ # This header can be used as a data integrity check to verify that the
514
+ # data received is the same data that was originally sent. This header
515
+ # specifies the base64-encoded, 160-bit SHA-1 digest of the object. For
516
+ # more information, see [Checking object integrity][1] in the *Amazon S3
517
+ # User Guide*.
518
+ #
519
+ #
520
+ #
521
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
522
+ # @option options [String] :checksum_sha256
523
+ # This header can be used as a data integrity check to verify that the
524
+ # data received is the same data that was originally sent. This header
525
+ # specifies the base64-encoded, 256-bit SHA-256 digest of the object.
526
+ # For more information, see [Checking object integrity][1] in the
527
+ # *Amazon S3 User Guide*.
528
+ #
529
+ #
530
+ #
531
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
435
532
  # @option options [Time,DateTime,Date,Integer,String] :expires
436
533
  # The date and time at which the object is no longer cacheable. For more
437
534
  # information, see
@@ -515,18 +612,18 @@ module Aws::S3
515
612
  # ensure that the encryption key was transmitted without error.
516
613
  # @option options [String] :ssekms_key_id
517
614
  # If `x-amz-server-side-encryption` is present and has the value of
518
- # `aws:kms`, this header specifies the ID of the AWS Key Management
519
- # Service (AWS KMS) symmetrical customer managed customer master key
520
- # (CMK) that was used for the object. If you specify
615
+ # `aws:kms`, this header specifies the ID of the Amazon Web Services Key
616
+ # Management Service (Amazon Web Services KMS) symmetrical customer
617
+ # managed key that was used for the object. If you specify
521
618
  # `x-amz-server-side-encryption:aws:kms`, but do not provide`
522
- # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the AWS
523
- # managed CMK in AWS to protect the data. If the KMS key does not exist
524
- # in the same account issuing the command, you must use the full ARN and
525
- # not just the ID.
619
+ # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
620
+ # Amazon Web Services managed key to protect the data. If the KMS key
621
+ # does not exist in the same account issuing the command, you must use
622
+ # the full ARN and not just the ID.
526
623
  # @option options [String] :ssekms_encryption_context
527
- # Specifies the AWS KMS Encryption Context to use for object encryption.
528
- # The value of this header is a base64-encoded UTF-8 string holding JSON
529
- # with the encryption context key-value pairs.
624
+ # Specifies the Amazon Web Services KMS Encryption Context to use for
625
+ # object encryption. The value of this header is a base64-encoded UTF-8
626
+ # string holding JSON with the encryption context key-value pairs.
530
627
  # @option options [Boolean] :bucket_key_enabled
531
628
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
532
629
  # encryption with server-side encryption using AWS KMS (SSE-KMS).
@@ -538,8 +635,8 @@ module Aws::S3
538
635
  # @option options [String] :request_payer
539
636
  # Confirms that the requester knows that they will be charged for the
540
637
  # request. Bucket owners need not specify this parameter in their
541
- # requests. For information about downloading objects from requester
542
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
638
+ # requests. For information about downloading objects from Requester
639
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
543
640
  # in the *Amazon S3 User Guide*.
544
641
  #
545
642
  #
@@ -562,8 +659,8 @@ module Aws::S3
562
659
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
563
660
  # @option options [String] :expected_bucket_owner
564
661
  # The account ID of the expected bucket owner. If the bucket is owned by
565
- # a different account, the request will fail with an HTTP `403 (Access
566
- # Denied)` error.
662
+ # a different account, the request fails with the HTTP status code `403
663
+ # Forbidden` (access denied).
567
664
  # @return [Object]
568
665
  def put_object(options = {})
569
666
  options = options.merge(bucket: @name)
@@ -670,8 +767,8 @@ module Aws::S3
670
767
  # specified `upload-id-marker`.
671
768
  # @option options [String] :expected_bucket_owner
672
769
  # The account ID of the expected bucket owner. If the bucket is owned by
673
- # a different account, the request will fail with an HTTP `403 (Access
674
- # Denied)` error.
770
+ # a different account, the request fails with the HTTP status code `403
771
+ # Forbidden` (access denied).
675
772
  # @return [MultipartUpload::Collection]
676
773
  def multipart_uploads(options = {})
677
774
  batches = Enumerator.new do |y|
@@ -750,8 +847,8 @@ module Aws::S3
750
847
  # Specifies the object version you want to start listing from.
751
848
  # @option options [String] :expected_bucket_owner
752
849
  # The account ID of the expected bucket owner. If the bucket is owned by
753
- # a different account, the request will fail with an HTTP `403 (Access
754
- # Denied)` error.
850
+ # a different account, the request fails with the HTTP status code `403
851
+ # Forbidden` (access denied).
755
852
  # @return [ObjectVersion::Collection]
756
853
  def object_versions(options = {})
757
854
  batches = Enumerator.new do |y|
@@ -806,8 +903,8 @@ module Aws::S3
806
903
  # this parameter in their requests.
807
904
  # @option options [String] :expected_bucket_owner
808
905
  # The account ID of the expected bucket owner. If the bucket is owned by
809
- # a different account, the request will fail with an HTTP `403 (Access
810
- # Denied)` error.
906
+ # a different account, the request fails with the HTTP status code `403
907
+ # Forbidden` (access denied).
811
908
  # @return [ObjectSummary::Collection]
812
909
  def objects(options = {})
813
910
  batches = Enumerator.new do |y|
@@ -203,6 +203,7 @@ module Aws::S3
203
203
  # },
204
204
  # },
205
205
  # content_md5: "ContentMD5",
206
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
206
207
  # grant_full_control: "GrantFullControl",
207
208
  # grant_read: "GrantRead",
208
209
  # grant_read_acp: "GrantReadACP",
@@ -221,12 +222,28 @@ module Aws::S3
221
222
  # used as a message integrity check to verify that the request body was
222
223
  # not corrupted in transit. For more information, go to [RFC 1864.][1]
223
224
  #
224
- # For requests made using the AWS Command Line Interface (CLI) or AWS
225
- # SDKs, this field is calculated automatically.
225
+ # For requests made using the Amazon Web Services Command Line Interface
226
+ # (CLI) or Amazon Web Services SDKs, this field is calculated
227
+ # automatically.
226
228
  #
227
229
  #
228
230
  #
229
231
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
232
+ # @option options [String] :checksum_algorithm
233
+ # Indicates the algorithm used to create the checksum for the object
234
+ # when using the SDK. This header will not provide any additional
235
+ # functionality if not using the SDK. When sending this header, there
236
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
237
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
238
+ # `400 Bad Request`. For more information, see [Checking object
239
+ # integrity][1] in the *Amazon S3 User Guide*.
240
+ #
241
+ # If you provide an individual checksum, Amazon S3 ignores any provided
242
+ # `ChecksumAlgorithm` parameter.
243
+ #
244
+ #
245
+ #
246
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
230
247
  # @option options [String] :grant_full_control
231
248
  # Allows grantee the read, write, read ACP, and write ACP permissions on
232
249
  # the bucket.
@@ -243,8 +260,8 @@ module Aws::S3
243
260
  # Allows grantee to write the ACL for the applicable bucket.
244
261
  # @option options [String] :expected_bucket_owner
245
262
  # The account ID of the expected bucket owner. If the bucket is owned by
246
- # a different account, the request will fail with an HTTP `403 (Access
247
- # Denied)` error.
263
+ # a different account, the request fails with the HTTP status code `403
264
+ # Forbidden` (access denied).
248
265
  # @return [EmptyStructure]
249
266
  def put(options = {})
250
267
  options = options.merge(bucket: @bucket_name)