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
@@ -221,6 +221,7 @@ module Aws::S3
221
221
  # },
222
222
  # },
223
223
  # content_md5: "ContentMD5",
224
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
224
225
  # grant_full_control: "GrantFullControl",
225
226
  # grant_read: "GrantRead",
226
227
  # grant_read_acp: "GrantReadACP",
@@ -247,12 +248,28 @@ module Aws::S3
247
248
  # not corrupted in transit. For more information, go to [RFC
248
249
  # 1864.>][1]
249
250
  #
250
- # For requests made using the AWS Command Line Interface (CLI) or AWS
251
- # SDKs, this field is calculated automatically.
251
+ # For requests made using the Amazon Web Services Command Line Interface
252
+ # (CLI) or Amazon Web Services SDKs, this field is calculated
253
+ # automatically.
252
254
  #
253
255
  #
254
256
  #
255
257
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
258
+ # @option options [String] :checksum_algorithm
259
+ # Indicates the algorithm used to create the checksum for the object
260
+ # when using the SDK. This header will not provide any additional
261
+ # functionality if not using the SDK. When sending this header, there
262
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
263
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
264
+ # `400 Bad Request`. For more information, see [Checking object
265
+ # integrity][1] in the *Amazon S3 User Guide*.
266
+ #
267
+ # If you provide an individual checksum, Amazon S3 ignores any provided
268
+ # `ChecksumAlgorithm` parameter.
269
+ #
270
+ #
271
+ #
272
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
256
273
  # @option options [String] :grant_full_control
257
274
  # Allows grantee the read, write, read ACP, and write ACP permissions on
258
275
  # the bucket.
@@ -278,8 +295,8 @@ module Aws::S3
278
295
  # @option options [String] :request_payer
279
296
  # Confirms that the requester knows that they will be charged for the
280
297
  # request. Bucket owners need not specify this parameter in their
281
- # requests. For information about downloading objects from requester
282
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
298
+ # requests. For information about downloading objects from Requester
299
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
283
300
  # in the *Amazon S3 User Guide*.
284
301
  #
285
302
  #
@@ -289,8 +306,8 @@ module Aws::S3
289
306
  # VersionId used to reference a specific version of the object.
290
307
  # @option options [String] :expected_bucket_owner
291
308
  # The account ID of the expected bucket owner. If the bucket is owned by
292
- # a different account, the request will fail with an HTTP `403 (Access
293
- # Denied)` error.
309
+ # a different account, the request fails with the HTTP status code `403
310
+ # Forbidden` (access denied).
294
311
  # @return [Types::PutObjectAclOutput]
295
312
  def put(options = {})
296
313
  options = options.merge(
@@ -55,13 +55,14 @@ module Aws::S3
55
55
  # below:
56
56
  #
57
57
  # * Objects created by the PUT Object, POST Object, or Copy operation,
58
- # or through the AWS Management Console, and are encrypted by SSE-S3
59
- # or plaintext, have ETags that are an MD5 digest of their object
60
- # data.
58
+ # or through the Amazon Web Services Management Console, and are
59
+ # encrypted by SSE-S3 or plaintext, have ETags that are an MD5 digest
60
+ # of their object data.
61
61
  #
62
62
  # * Objects created by the PUT Object, POST Object, or Copy operation,
63
- # or through the AWS Management Console, and are encrypted by SSE-C or
64
- # SSE-KMS, have ETags that are not an MD5 digest of their object data.
63
+ # or through the Amazon Web Services Management Console, and are
64
+ # encrypted by SSE-C or SSE-KMS, have ETags that are not an MD5 digest
65
+ # of their object data.
65
66
  #
66
67
  # * If an object is created by either the Multipart Upload or Part Copy
67
68
  # operation, the ETag is not an MD5 digest, regardless of the method
@@ -71,6 +72,12 @@ module Aws::S3
71
72
  data[:etag]
72
73
  end
73
74
 
75
+ # The algorithm that was used to create a checksum of the object.
76
+ # @return [Array<String>]
77
+ def checksum_algorithm
78
+ data[:checksum_algorithm]
79
+ end
80
+
74
81
  # Size in bytes of the object
75
82
  # @return [Integer]
76
83
  def size
@@ -275,6 +282,7 @@ module Aws::S3
275
282
  # object_summary.copy_from({
276
283
  # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control
277
284
  # cache_control: "CacheControl",
285
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
278
286
  # content_disposition: "ContentDisposition",
279
287
  # content_encoding: "ContentEncoding",
280
288
  # content_language: "ContentLanguage",
@@ -295,7 +303,7 @@ module Aws::S3
295
303
  # metadata_directive: "COPY", # accepts COPY, REPLACE
296
304
  # tagging_directive: "COPY", # accepts COPY, REPLACE
297
305
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
298
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
306
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
299
307
  # website_redirect_location: "WebsiteRedirectLocation",
300
308
  # sse_customer_algorithm: "SSECustomerAlgorithm",
301
309
  # sse_customer_key: "SSECustomerKey",
@@ -321,6 +329,14 @@ module Aws::S3
321
329
  # This action is not supported by Amazon S3 on Outposts.
322
330
  # @option options [String] :cache_control
323
331
  # Specifies caching behavior along the request/reply chain.
332
+ # @option options [String] :checksum_algorithm
333
+ # Indicates the algorithm you want Amazon S3 to use to create the
334
+ # checksum for the object. For more information, see [Checking object
335
+ # integrity][1] in the *Amazon S3 User Guide*.
336
+ #
337
+ #
338
+ #
339
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
324
340
  # @option options [String] :content_disposition
325
341
  # Specifies presentational information for the object.
326
342
  # @option options [String] :content_encoding
@@ -340,8 +356,8 @@ module Aws::S3
340
356
  # of the source bucket and the key of the source object, separated by
341
357
  # a slash (/). For example, to copy the object `reports/january.pdf`
342
358
  # from the bucket `awsexamplebucket`, use
343
- # `awsexamplebucket/reports/january.pdf`. The value must be URL
344
- # encoded.
359
+ # `awsexamplebucket/reports/january.pdf`. The value must be
360
+ # URL-encoded.
345
361
  #
346
362
  # * For objects accessed through access points, specify the Amazon
347
363
  # Resource Name (ARN) of the object as accessed through the access
@@ -354,7 +370,8 @@ module Aws::S3
354
370
  # The value must be URL encoded.
355
371
  #
356
372
  # <note markdown="1"> Amazon S3 supports copy operations using access points only when the
357
- # source and destination buckets are in the same AWS Region.
373
+ # source and destination buckets are in the same Amazon Web Services
374
+ # Region.
358
375
  #
359
376
  # </note>
360
377
  #
@@ -365,7 +382,7 @@ module Aws::S3
365
382
  # outpost `my-outpost` owned by account `123456789012` in Region
366
383
  # `us-west-2`, use the URL encoding of
367
384
  # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
368
- # The value must be URL encoded.
385
+ # The value must be URL-encoded.
369
386
  #
370
387
  # To copy a specific version of an object, append
371
388
  # `?versionId=<version-id>` to the value (for example,
@@ -445,20 +462,21 @@ module Aws::S3
445
462
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
446
463
  # ensure that the encryption key was transmitted without error.
447
464
  # @option options [String] :ssekms_key_id
448
- # Specifies the AWS KMS key ID to use for object encryption. All GET and
449
- # PUT requests for an object protected by AWS KMS will fail if not made
450
- # via SSL or using SigV4. For information about configuring using any of
451
- # the officially supported AWS SDKs and AWS CLI, see [Specifying the
452
- # Signature Version in Request Authentication][1] in the *Amazon S3 User
453
- # Guide*.
465
+ # Specifies the Amazon Web Services KMS key ID to use for object
466
+ # encryption. All GET and PUT requests for an object protected by Amazon
467
+ # Web Services KMS will fail if not made via SSL or using SigV4. For
468
+ # information about configuring using any of the officially supported
469
+ # Amazon Web Services SDKs and Amazon Web Services CLI, see [Specifying
470
+ # the Signature Version in Request Authentication][1] in the *Amazon S3
471
+ # User Guide*.
454
472
  #
455
473
  #
456
474
  #
457
475
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
458
476
  # @option options [String] :ssekms_encryption_context
459
- # Specifies the AWS KMS Encryption Context to use for object encryption.
460
- # The value of this header is a base64-encoded UTF-8 string holding JSON
461
- # with the encryption context key-value pairs.
477
+ # Specifies the Amazon Web Services KMS Encryption Context to use for
478
+ # object encryption. The value of this header is a base64-encoded UTF-8
479
+ # string holding JSON with the encryption context key-value pairs.
462
480
  # @option options [Boolean] :bucket_key_enabled
463
481
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
464
482
  # encryption with server-side encryption using AWS KMS (SSE-KMS).
@@ -481,8 +499,8 @@ module Aws::S3
481
499
  # @option options [String] :request_payer
482
500
  # Confirms that the requester knows that they will be charged for the
483
501
  # request. Bucket owners need not specify this parameter in their
484
- # requests. For information about downloading objects from requester
485
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
502
+ # requests. For information about downloading objects from Requester
503
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
486
504
  # in the *Amazon S3 User Guide*.
487
505
  #
488
506
  #
@@ -498,15 +516,15 @@ module Aws::S3
498
516
  # The date and time when you want the copied object's Object Lock to
499
517
  # expire.
500
518
  # @option options [String] :object_lock_legal_hold_status
501
- # Specifies whether you want to apply a Legal Hold to the copied object.
519
+ # Specifies whether you want to apply a legal hold to the copied object.
502
520
  # @option options [String] :expected_bucket_owner
503
521
  # The account ID of the expected destination bucket owner. If the
504
- # destination bucket is owned by a different account, the request will
505
- # fail with an HTTP `403 (Access Denied)` error.
522
+ # destination bucket is owned by a different account, the request fails
523
+ # with the HTTP status code `403 Forbidden` (access denied).
506
524
  # @option options [String] :expected_source_bucket_owner
507
525
  # The account ID of the expected source bucket owner. If the source
508
- # bucket is owned by a different account, the request will fail with an
509
- # HTTP `403 (Access Denied)` error.
526
+ # bucket is owned by a different account, the request fails with the
527
+ # HTTP status code `403 Forbidden` (access denied).
510
528
  # @return [Types::CopyObjectOutput]
511
529
  def copy_from(options = {})
512
530
  options = options.merge(
@@ -537,8 +555,8 @@ module Aws::S3
537
555
  # @option options [String] :request_payer
538
556
  # Confirms that the requester knows that they will be charged for the
539
557
  # request. Bucket owners need not specify this parameter in their
540
- # requests. For information about downloading objects from requester
541
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
558
+ # requests. For information about downloading objects from Requester
559
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
542
560
  # in the *Amazon S3 User Guide*.
543
561
  #
544
562
  #
@@ -546,11 +564,12 @@ module Aws::S3
546
564
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
547
565
  # @option options [Boolean] :bypass_governance_retention
548
566
  # Indicates whether S3 Object Lock should bypass Governance-mode
549
- # restrictions to process this operation.
567
+ # restrictions to process this operation. To use this header, you must
568
+ # have the `s3:BypassGovernanceRetention` permission.
550
569
  # @option options [String] :expected_bucket_owner
551
570
  # The account ID of the expected bucket owner. If the bucket is owned by
552
- # a different account, the request will fail with an HTTP `403 (Access
553
- # Denied)` error.
571
+ # a different account, the request fails with the HTTP status code `403
572
+ # Forbidden` (access denied).
554
573
  # @return [Types::DeleteObjectOutput]
555
574
  def delete(options = {})
556
575
  options = options.merge(
@@ -582,20 +601,21 @@ module Aws::S3
582
601
  # request_payer: "requester", # accepts requester
583
602
  # part_number: 1,
584
603
  # expected_bucket_owner: "AccountId",
604
+ # checksum_mode: "ENABLED", # accepts ENABLED
585
605
  # })
586
606
  # @param [Hash] options ({})
587
607
  # @option options [String] :if_match
588
608
  # Return the object only if its entity tag (ETag) is the same as the one
589
- # specified, otherwise return a 412 (precondition failed).
609
+ # specified; otherwise, return a 412 (precondition failed) error.
590
610
  # @option options [Time,DateTime,Date,Integer,String] :if_modified_since
591
611
  # Return the object only if it has been modified since the specified
592
- # time, otherwise return a 304 (not modified).
612
+ # time; otherwise, return a 304 (not modified) error.
593
613
  # @option options [String] :if_none_match
594
614
  # Return the object only if its entity tag (ETag) is different from the
595
- # one specified, otherwise return a 304 (not modified).
615
+ # one specified; otherwise, return a 304 (not modified) error.
596
616
  # @option options [Time,DateTime,Date,Integer,String] :if_unmodified_since
597
617
  # Return the object only if it has not been modified since the specified
598
- # time, otherwise return a 412 (precondition failed).
618
+ # time; otherwise, return a 412 (precondition failed) error.
599
619
  # @option options [String] :range
600
620
  # Downloads the specified range bytes of an object. For more information
601
621
  # about the HTTP Range header, see
@@ -639,8 +659,8 @@ module Aws::S3
639
659
  # @option options [String] :request_payer
640
660
  # Confirms that the requester knows that they will be charged for the
641
661
  # request. Bucket owners need not specify this parameter in their
642
- # requests. For information about downloading objects from requester
643
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
662
+ # requests. For information about downloading objects from Requester
663
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
644
664
  # in the *Amazon S3 User Guide*.
645
665
  #
646
666
  #
@@ -653,8 +673,10 @@ module Aws::S3
653
673
  # object.
654
674
  # @option options [String] :expected_bucket_owner
655
675
  # The account ID of the expected bucket owner. If the bucket is owned by
656
- # a different account, the request will fail with an HTTP `403 (Access
657
- # Denied)` error.
676
+ # a different account, the request fails with the HTTP status code `403
677
+ # Forbidden` (access denied).
678
+ # @option options [String] :checksum_mode
679
+ # To retrieve the checksum, this mode must be enabled.
658
680
  # @return [Types::GetObjectOutput]
659
681
  def get(options = {}, &block)
660
682
  options = options.merge(
@@ -683,7 +705,7 @@ module Aws::S3
683
705
  # "MetadataKey" => "MetadataValue",
684
706
  # },
685
707
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
686
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
708
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
687
709
  # website_redirect_location: "WebsiteRedirectLocation",
688
710
  # sse_customer_algorithm: "SSECustomerAlgorithm",
689
711
  # sse_customer_key: "SSECustomerKey",
@@ -697,6 +719,7 @@ module Aws::S3
697
719
  # object_lock_retain_until_date: Time.now,
698
720
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
699
721
  # expected_bucket_owner: "AccountId",
722
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
700
723
  # })
701
724
  # @param [Hash] options ({})
702
725
  # @option options [String] :acl
@@ -768,20 +791,21 @@ module Aws::S3
768
791
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
769
792
  # ensure that the encryption key was transmitted without error.
770
793
  # @option options [String] :ssekms_key_id
771
- # Specifies the ID of the symmetric customer managed AWS KMS CMK to use
772
- # for object encryption. All GET and PUT requests for an object
773
- # protected by AWS KMS will fail if not made via SSL or using SigV4. For
774
- # information about configuring using any of the officially supported
775
- # AWS SDKs and AWS CLI, see [Specifying the Signature Version in Request
776
- # Authentication][1] in the *Amazon S3 User Guide*.
794
+ # Specifies the ID of the symmetric customer managed key to use for
795
+ # object encryption. All GET and PUT requests for an object protected by
796
+ # Amazon Web Services KMS will fail if not made via SSL or using SigV4.
797
+ # For information about configuring using any of the officially
798
+ # supported Amazon Web Services SDKs and Amazon Web Services CLI, see
799
+ # [Specifying the Signature Version in Request Authentication][1] in the
800
+ # *Amazon S3 User Guide*.
777
801
  #
778
802
  #
779
803
  #
780
804
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
781
805
  # @option options [String] :ssekms_encryption_context
782
- # Specifies the AWS KMS Encryption Context to use for object encryption.
783
- # The value of this header is a base64-encoded UTF-8 string holding JSON
784
- # with the encryption context key-value pairs.
806
+ # Specifies the Amazon Web Services KMS Encryption Context to use for
807
+ # object encryption. The value of this header is a base64-encoded UTF-8
808
+ # string holding JSON with the encryption context key-value pairs.
785
809
  # @option options [Boolean] :bucket_key_enabled
786
810
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
787
811
  # encryption with server-side encryption using AWS KMS (SSE-KMS).
@@ -793,8 +817,8 @@ module Aws::S3
793
817
  # @option options [String] :request_payer
794
818
  # Confirms that the requester knows that they will be charged for the
795
819
  # request. Bucket owners need not specify this parameter in their
796
- # requests. For information about downloading objects from requester
797
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
820
+ # requests. For information about downloading objects from Requester
821
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
798
822
  # in the *Amazon S3 User Guide*.
799
823
  #
800
824
  #
@@ -809,12 +833,20 @@ module Aws::S3
809
833
  # @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
810
834
  # Specifies the date and time when you want the Object Lock to expire.
811
835
  # @option options [String] :object_lock_legal_hold_status
812
- # Specifies whether you want to apply a Legal Hold to the uploaded
836
+ # Specifies whether you want to apply a legal hold to the uploaded
813
837
  # object.
814
838
  # @option options [String] :expected_bucket_owner
815
839
  # The account ID of the expected bucket owner. If the bucket is owned by
816
- # a different account, the request will fail with an HTTP `403 (Access
817
- # Denied)` error.
840
+ # a different account, the request fails with the HTTP status code `403
841
+ # Forbidden` (access denied).
842
+ # @option options [String] :checksum_algorithm
843
+ # Indicates the algorithm you want Amazon S3 to use to create the
844
+ # checksum for the object. For more information, see [Checking object
845
+ # integrity][1] in the *Amazon S3 User Guide*.
846
+ #
847
+ #
848
+ #
849
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
818
850
  # @return [MultipartUpload]
819
851
  def initiate_multipart_upload(options = {})
820
852
  options = options.merge(
@@ -842,6 +874,11 @@ module Aws::S3
842
874
  # content_length: 1,
843
875
  # content_md5: "ContentMD5",
844
876
  # content_type: "ContentType",
877
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
878
+ # checksum_crc32: "ChecksumCRC32",
879
+ # checksum_crc32c: "ChecksumCRC32C",
880
+ # checksum_sha1: "ChecksumSHA1",
881
+ # checksum_sha256: "ChecksumSHA256",
845
882
  # expires: Time.now,
846
883
  # grant_full_control: "GrantFullControl",
847
884
  # grant_read: "GrantRead",
@@ -851,7 +888,7 @@ module Aws::S3
851
888
  # "MetadataKey" => "MetadataValue",
852
889
  # },
853
890
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
854
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
891
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
855
892
  # website_redirect_location: "WebsiteRedirectLocation",
856
893
  # sse_customer_algorithm: "SSECustomerAlgorithm",
857
894
  # sse_customer_key: "SSECustomerKey",
@@ -933,6 +970,61 @@ module Aws::S3
933
970
  #
934
971
  #
935
972
  # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17
973
+ # @option options [String] :checksum_algorithm
974
+ # Indicates the algorithm used to create the checksum for the object
975
+ # when using the SDK. This header will not provide any additional
976
+ # functionality if not using the SDK. When sending this header, there
977
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
978
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
979
+ # `400 Bad Request`. For more information, see [Checking object
980
+ # integrity][1] in the *Amazon S3 User Guide*.
981
+ #
982
+ # If you provide an individual checksum, Amazon S3 ignores any provided
983
+ # `ChecksumAlgorithm` parameter.
984
+ #
985
+ #
986
+ #
987
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
988
+ # @option options [String] :checksum_crc32
989
+ # This header can be used as a data integrity check to verify that the
990
+ # data received is the same data that was originally sent. This header
991
+ # specifies the base64-encoded, 32-bit CRC32 checksum of the object. For
992
+ # more information, see [Checking object integrity][1] in the *Amazon S3
993
+ # User Guide*.
994
+ #
995
+ #
996
+ #
997
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
998
+ # @option options [String] :checksum_crc32c
999
+ # This header can be used as a data integrity check to verify that the
1000
+ # data received is the same data that was originally sent. This header
1001
+ # specifies the base64-encoded, 32-bit CRC32C checksum of the object.
1002
+ # For more information, see [Checking object integrity][1] in the
1003
+ # *Amazon S3 User Guide*.
1004
+ #
1005
+ #
1006
+ #
1007
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1008
+ # @option options [String] :checksum_sha1
1009
+ # This header can be used as a data integrity check to verify that the
1010
+ # data received is the same data that was originally sent. This header
1011
+ # specifies the base64-encoded, 160-bit SHA-1 digest of the object. For
1012
+ # more information, see [Checking object integrity][1] in the *Amazon S3
1013
+ # User Guide*.
1014
+ #
1015
+ #
1016
+ #
1017
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1018
+ # @option options [String] :checksum_sha256
1019
+ # This header can be used as a data integrity check to verify that the
1020
+ # data received is the same data that was originally sent. This header
1021
+ # specifies the base64-encoded, 256-bit SHA-256 digest of the object.
1022
+ # For more information, see [Checking object integrity][1] in the
1023
+ # *Amazon S3 User Guide*.
1024
+ #
1025
+ #
1026
+ #
1027
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
936
1028
  # @option options [Time,DateTime,Date,Integer,String] :expires
937
1029
  # The date and time at which the object is no longer cacheable. For more
938
1030
  # information, see
@@ -1014,18 +1106,18 @@ module Aws::S3
1014
1106
  # ensure that the encryption key was transmitted without error.
1015
1107
  # @option options [String] :ssekms_key_id
1016
1108
  # If `x-amz-server-side-encryption` is present and has the value of
1017
- # `aws:kms`, this header specifies the ID of the AWS Key Management
1018
- # Service (AWS KMS) symmetrical customer managed customer master key
1019
- # (CMK) that was used for the object. If you specify
1109
+ # `aws:kms`, this header specifies the ID of the Amazon Web Services Key
1110
+ # Management Service (Amazon Web Services KMS) symmetrical customer
1111
+ # managed key that was used for the object. If you specify
1020
1112
  # `x-amz-server-side-encryption:aws:kms`, but do not provide`
1021
- # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the AWS
1022
- # managed CMK in AWS to protect the data. If the KMS key does not exist
1023
- # in the same account issuing the command, you must use the full ARN and
1024
- # not just the ID.
1113
+ # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
1114
+ # Amazon Web Services managed key to protect the data. If the KMS key
1115
+ # does not exist in the same account issuing the command, you must use
1116
+ # the full ARN and not just the ID.
1025
1117
  # @option options [String] :ssekms_encryption_context
1026
- # Specifies the AWS KMS Encryption Context to use for object encryption.
1027
- # The value of this header is a base64-encoded UTF-8 string holding JSON
1028
- # with the encryption context key-value pairs.
1118
+ # Specifies the Amazon Web Services KMS Encryption Context to use for
1119
+ # object encryption. The value of this header is a base64-encoded UTF-8
1120
+ # string holding JSON with the encryption context key-value pairs.
1029
1121
  # @option options [Boolean] :bucket_key_enabled
1030
1122
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
1031
1123
  # encryption with server-side encryption using AWS KMS (SSE-KMS).
@@ -1037,8 +1129,8 @@ module Aws::S3
1037
1129
  # @option options [String] :request_payer
1038
1130
  # Confirms that the requester knows that they will be charged for the
1039
1131
  # request. Bucket owners need not specify this parameter in their
1040
- # requests. For information about downloading objects from requester
1041
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1132
+ # requests. For information about downloading objects from Requester
1133
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1042
1134
  # in the *Amazon S3 User Guide*.
1043
1135
  #
1044
1136
  #
@@ -1061,8 +1153,8 @@ module Aws::S3
1061
1153
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
1062
1154
  # @option options [String] :expected_bucket_owner
1063
1155
  # The account ID of the expected bucket owner. If the bucket is owned by
1064
- # a different account, the request will fail with an HTTP `403 (Access
1065
- # Denied)` error.
1156
+ # a different account, the request fails with the HTTP status code `403
1157
+ # Forbidden` (access denied).
1066
1158
  # @return [Types::PutObjectOutput]
1067
1159
  def put(options = {})
1068
1160
  options = options.merge(
@@ -1154,11 +1246,12 @@ module Aws::S3
1154
1246
  # value: "MetadataValue",
1155
1247
  # },
1156
1248
  # ],
1157
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
1249
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
1158
1250
  # },
1159
1251
  # },
1160
1252
  # },
1161
1253
  # request_payer: "requester", # accepts requester
1254
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
1162
1255
  # expected_bucket_owner: "AccountId",
1163
1256
  # })
1164
1257
  # @param [Hash] options ({})
@@ -1169,17 +1262,32 @@ module Aws::S3
1169
1262
  # @option options [String] :request_payer
1170
1263
  # Confirms that the requester knows that they will be charged for the
1171
1264
  # request. Bucket owners need not specify this parameter in their
1172
- # requests. For information about downloading objects from requester
1173
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1265
+ # requests. For information about downloading objects from Requester
1266
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1174
1267
  # in the *Amazon S3 User Guide*.
1175
1268
  #
1176
1269
  #
1177
1270
  #
1178
1271
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1272
+ # @option options [String] :checksum_algorithm
1273
+ # Indicates the algorithm used to create the checksum for the object
1274
+ # when using the SDK. This header will not provide any additional
1275
+ # functionality if not using the SDK. When sending this header, there
1276
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
1277
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
1278
+ # `400 Bad Request`. For more information, see [Checking object
1279
+ # integrity][1] in the *Amazon S3 User Guide*.
1280
+ #
1281
+ # If you provide an individual checksum, Amazon S3 ignores any provided
1282
+ # `ChecksumAlgorithm` parameter.
1283
+ #
1284
+ #
1285
+ #
1286
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1179
1287
  # @option options [String] :expected_bucket_owner
1180
1288
  # The account ID of the expected bucket owner. If the bucket is owned by
1181
- # a different account, the request will fail with an HTTP `403 (Access
1182
- # Denied)` error.
1289
+ # a different account, the request fails with the HTTP status code `403
1290
+ # Forbidden` (access denied).
1183
1291
  # @return [Types::RestoreObjectOutput]
1184
1292
  def restore_object(options = {})
1185
1293
  options = options.merge(
@@ -1312,6 +1420,7 @@ module Aws::S3
1312
1420
  # request_payer: "requester", # accepts requester
1313
1421
  # bypass_governance_retention: false,
1314
1422
  # expected_bucket_owner: "AccountId",
1423
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
1315
1424
  # })
1316
1425
  # @param options ({})
1317
1426
  # @option options [String] :mfa
@@ -1322,8 +1431,8 @@ module Aws::S3
1322
1431
  # @option options [String] :request_payer
1323
1432
  # Confirms that the requester knows that they will be charged for the
1324
1433
  # request. Bucket owners need not specify this parameter in their
1325
- # requests. For information about downloading objects from requester
1326
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1434
+ # requests. For information about downloading objects from Requester
1435
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1327
1436
  # in the *Amazon S3 User Guide*.
1328
1437
  #
1329
1438
  #
@@ -1331,12 +1440,30 @@ module Aws::S3
1331
1440
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1332
1441
  # @option options [Boolean] :bypass_governance_retention
1333
1442
  # Specifies whether you want to delete this object even if it has a
1334
- # Governance-type Object Lock in place. You must have sufficient
1335
- # permissions to perform this operation.
1443
+ # Governance-type Object Lock in place. To use this header, you must
1444
+ # have the `s3:BypassGovernanceRetention` permission.
1336
1445
  # @option options [String] :expected_bucket_owner
1337
1446
  # The account ID of the expected bucket owner. If the bucket is owned by
1338
- # a different account, the request will fail with an HTTP `403 (Access
1339
- # Denied)` error.
1447
+ # a different account, the request fails with the HTTP status code `403
1448
+ # Forbidden` (access denied).
1449
+ # @option options [String] :checksum_algorithm
1450
+ # Indicates the algorithm used to create the checksum for the object
1451
+ # when using the SDK. This header will not provide any additional
1452
+ # functionality if not using the SDK. When sending this header, there
1453
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
1454
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
1455
+ # `400 Bad Request`. For more information, see [Checking object
1456
+ # integrity][1] in the *Amazon S3 User Guide*.
1457
+ #
1458
+ # If you provide an individual checksum, Amazon S3 ignores any provided
1459
+ # `ChecksumAlgorithm` parameter.
1460
+ #
1461
+ # This checksum algorithm must be the same for all parts and it match
1462
+ # the checksum value supplied in the `CreateMultipartUpload` request.
1463
+ #
1464
+ #
1465
+ #
1466
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1340
1467
  # @return [void]
1341
1468
  def batch_delete!(options = {})
1342
1469
  batch_enum.each do |batch|