aws-sdk-s3 1.103.0 → 1.120.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +139 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +134 -34
  5. data/lib/aws-sdk-s3/bucket_acl.rb +18 -2
  6. data/lib/aws-sdk-s3/bucket_cors.rb +20 -4
  7. data/lib/aws-sdk-s3/bucket_lifecycle.rb +24 -6
  8. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +28 -6
  9. data/lib/aws-sdk-s3/bucket_logging.rb +18 -2
  10. data/lib/aws-sdk-s3/bucket_notification.rb +17 -5
  11. data/lib/aws-sdk-s3/bucket_policy.rb +20 -4
  12. data/lib/aws-sdk-s3/bucket_request_payment.rb +18 -2
  13. data/lib/aws-sdk-s3/bucket_tagging.rb +20 -4
  14. data/lib/aws-sdk-s3/bucket_versioning.rb +54 -6
  15. data/lib/aws-sdk-s3/bucket_website.rb +20 -4
  16. data/lib/aws-sdk-s3/client.rb +2574 -1199
  17. data/lib/aws-sdk-s3/client_api.rb +574 -208
  18. data/lib/aws-sdk-s3/customizations/bucket.rb +20 -46
  19. data/lib/aws-sdk-s3/customizations/errors.rb +27 -0
  20. data/lib/aws-sdk-s3/customizations/object.rb +80 -4
  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/endpoint_parameters.rb +142 -0
  24. data/lib/aws-sdk-s3/endpoint_provider.rb +733 -0
  25. data/lib/aws-sdk-s3/endpoints.rb +2149 -0
  26. data/lib/aws-sdk-s3/file_downloader.rb +1 -1
  27. data/lib/aws-sdk-s3/file_uploader.rb +5 -0
  28. data/lib/aws-sdk-s3/multipart_file_uploader.rb +26 -7
  29. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +36 -10
  30. data/lib/aws-sdk-s3/multipart_upload.rb +126 -12
  31. data/lib/aws-sdk-s3/multipart_upload_part.rb +133 -14
  32. data/lib/aws-sdk-s3/object.rb +289 -112
  33. data/lib/aws-sdk-s3/object_acl.rb +20 -4
  34. data/lib/aws-sdk-s3/object_multipart_copier.rb +11 -5
  35. data/lib/aws-sdk-s3/object_summary.rb +204 -74
  36. data/lib/aws-sdk-s3/object_version.rb +68 -40
  37. data/lib/aws-sdk-s3/plugins/accelerate.rb +3 -44
  38. data/lib/aws-sdk-s3/plugins/arn.rb +0 -197
  39. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +3 -39
  40. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +1 -6
  41. data/lib/aws-sdk-s3/plugins/dualstack.rb +1 -55
  42. data/lib/aws-sdk-s3/plugins/endpoints.rb +262 -0
  43. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +2 -1
  44. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +6 -29
  45. data/lib/aws-sdk-s3/plugins/md5s.rb +5 -3
  46. data/lib/aws-sdk-s3/plugins/s3_signer.rb +33 -109
  47. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +31 -0
  48. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +23 -2
  49. data/lib/aws-sdk-s3/presigned_post.rb +47 -35
  50. data/lib/aws-sdk-s3/presigner.rb +20 -33
  51. data/lib/aws-sdk-s3/resource.rb +19 -1
  52. data/lib/aws-sdk-s3/types.rb +2519 -4175
  53. data/lib/aws-sdk-s3.rb +5 -1
  54. metadata +11 -9
  55. data/lib/aws-sdk-s3/arn/access_point_arn.rb +0 -69
  56. data/lib/aws-sdk-s3/arn/multi_region_access_point_arn.rb +0 -69
  57. data/lib/aws-sdk-s3/arn/object_lambda_arn.rb +0 -69
  58. data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +0 -73
  59. data/lib/aws-sdk-s3/plugins/object_lambda_endpoint.rb +0 -25
@@ -66,12 +66,20 @@ module Aws::S3
66
66
  #
67
67
  # * If an object is created by either the Multipart Upload or Part Copy
68
68
  # operation, the ETag is not an MD5 digest, regardless of the method
69
- # of encryption.
69
+ # of encryption. If an object is larger than 16 MB, the Amazon Web
70
+ # Services Management Console will upload or copy that object as a
71
+ # Multipart Upload, and therefore the ETag will not be an MD5 digest.
70
72
  # @return [String]
71
73
  def etag
72
74
  data[:etag]
73
75
  end
74
76
 
77
+ # The algorithm that was used to create a checksum of the object.
78
+ # @return [Array<String>]
79
+ def checksum_algorithm
80
+ data[:checksum_algorithm]
81
+ end
82
+
75
83
  # Size in bytes of the object
76
84
  # @return [Integer]
77
85
  def size
@@ -276,6 +284,7 @@ module Aws::S3
276
284
  # object_summary.copy_from({
277
285
  # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control
278
286
  # cache_control: "CacheControl",
287
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
279
288
  # content_disposition: "ContentDisposition",
280
289
  # content_encoding: "ContentEncoding",
281
290
  # content_language: "ContentLanguage",
@@ -296,7 +305,7 @@ module Aws::S3
296
305
  # metadata_directive: "COPY", # accepts COPY, REPLACE
297
306
  # tagging_directive: "COPY", # accepts COPY, REPLACE
298
307
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
299
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
308
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
300
309
  # website_redirect_location: "WebsiteRedirectLocation",
301
310
  # sse_customer_algorithm: "SSECustomerAlgorithm",
302
311
  # sse_customer_key: "SSECustomerKey",
@@ -322,6 +331,14 @@ module Aws::S3
322
331
  # This action is not supported by Amazon S3 on Outposts.
323
332
  # @option options [String] :cache_control
324
333
  # Specifies caching behavior along the request/reply chain.
334
+ # @option options [String] :checksum_algorithm
335
+ # Indicates the algorithm you want Amazon S3 to use to create the
336
+ # checksum for the object. For more information, see [Checking object
337
+ # integrity][1] in the *Amazon S3 User Guide*.
338
+ #
339
+ #
340
+ #
341
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
325
342
  # @option options [String] :content_disposition
326
343
  # Specifies presentational information for the object.
327
344
  # @option options [String] :content_encoding
@@ -335,14 +352,14 @@ module Aws::S3
335
352
  # @option options [required, String] :copy_source
336
353
  # Specifies the source object for the copy operation. You specify the
337
354
  # value in one of two formats, depending on whether you want to access
338
- # the source object through an [access point][1]\:
355
+ # the source object through an [access point][1]:
339
356
  #
340
357
  # * For objects not accessed through an access point, specify the name
341
358
  # of the source bucket and the key of the source object, separated by
342
359
  # a slash (/). For example, to copy the object `reports/january.pdf`
343
360
  # from the bucket `awsexamplebucket`, use
344
- # `awsexamplebucket/reports/january.pdf`. The value must be URL
345
- # encoded.
361
+ # `awsexamplebucket/reports/january.pdf`. The value must be
362
+ # URL-encoded.
346
363
  #
347
364
  # * For objects accessed through access points, specify the Amazon
348
365
  # Resource Name (ARN) of the object as accessed through the access
@@ -367,7 +384,7 @@ module Aws::S3
367
384
  # outpost `my-outpost` owned by account `123456789012` in Region
368
385
  # `us-west-2`, use the URL encoding of
369
386
  # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
370
- # The value must be URL encoded.
387
+ # The value must be URL-encoded.
371
388
  #
372
389
  # To copy a specific version of an object, append
373
390
  # `?versionId=<version-id>` to the value (for example,
@@ -417,7 +434,7 @@ module Aws::S3
417
434
  # or replaced with tag-set provided in the request.
418
435
  # @option options [String] :server_side_encryption
419
436
  # The server-side encryption algorithm used when storing this object in
420
- # Amazon S3 (for example, AES256, aws:kms).
437
+ # Amazon S3 (for example, AES256, `aws:kms`).
421
438
  # @option options [String] :storage_class
422
439
  # By default, Amazon S3 uses the STANDARD Storage Class to store newly
423
440
  # created objects. The STANDARD storage class provides high durability
@@ -432,7 +449,10 @@ module Aws::S3
432
449
  # @option options [String] :website_redirect_location
433
450
  # If the bucket is configured as a website, redirects requests for this
434
451
  # object to another object in the same bucket or to an external URL.
435
- # Amazon S3 stores the value of this header in the object metadata.
452
+ # Amazon S3 stores the value of this header in the object metadata. This
453
+ # value is unique to each object and is not copied when using the
454
+ # `x-amz-metadata-directive` header. Instead, you may opt to provide
455
+ # this header in combination with the directive.
436
456
  # @option options [String] :sse_customer_algorithm
437
457
  # Specifies the algorithm to use to when encrypting the object (for
438
458
  # example, AES256).
@@ -484,8 +504,8 @@ module Aws::S3
484
504
  # @option options [String] :request_payer
485
505
  # Confirms that the requester knows that they will be charged for the
486
506
  # request. Bucket owners need not specify this parameter in their
487
- # requests. For information about downloading objects from requester
488
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
507
+ # requests. For information about downloading objects from Requester
508
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
489
509
  # in the *Amazon S3 User Guide*.
490
510
  #
491
511
  #
@@ -501,15 +521,15 @@ module Aws::S3
501
521
  # The date and time when you want the copied object's Object Lock to
502
522
  # expire.
503
523
  # @option options [String] :object_lock_legal_hold_status
504
- # Specifies whether you want to apply a Legal Hold to the copied object.
524
+ # Specifies whether you want to apply a legal hold to the copied object.
505
525
  # @option options [String] :expected_bucket_owner
506
526
  # The account ID of the expected destination bucket owner. If the
507
- # destination bucket is owned by a different account, the request will
508
- # fail with an HTTP `403 (Access Denied)` error.
527
+ # destination bucket is owned by a different account, the request fails
528
+ # with the HTTP status code `403 Forbidden` (access denied).
509
529
  # @option options [String] :expected_source_bucket_owner
510
530
  # The account ID of the expected source bucket owner. If the source
511
- # bucket is owned by a different account, the request will fail with an
512
- # HTTP `403 (Access Denied)` error.
531
+ # bucket is owned by a different account, the request fails with the
532
+ # HTTP status code `403 Forbidden` (access denied).
513
533
  # @return [Types::CopyObjectOutput]
514
534
  def copy_from(options = {})
515
535
  options = options.merge(
@@ -540,8 +560,8 @@ module Aws::S3
540
560
  # @option options [String] :request_payer
541
561
  # Confirms that the requester knows that they will be charged for the
542
562
  # request. Bucket owners need not specify this parameter in their
543
- # requests. For information about downloading objects from requester
544
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
563
+ # requests. For information about downloading objects from Requester
564
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
545
565
  # in the *Amazon S3 User Guide*.
546
566
  #
547
567
  #
@@ -550,11 +570,11 @@ module Aws::S3
550
570
  # @option options [Boolean] :bypass_governance_retention
551
571
  # Indicates whether S3 Object Lock should bypass Governance-mode
552
572
  # restrictions to process this operation. To use this header, you must
553
- # have the `s3:PutBucketPublicAccessBlock` permission.
573
+ # have the `s3:BypassGovernanceRetention` permission.
554
574
  # @option options [String] :expected_bucket_owner
555
575
  # The account ID of the expected bucket owner. If the bucket is owned by
556
- # a different account, the request will fail with an HTTP `403 (Access
557
- # Denied)` error.
576
+ # a different account, the request fails with the HTTP status code `403
577
+ # Forbidden` (access denied).
558
578
  # @return [Types::DeleteObjectOutput]
559
579
  def delete(options = {})
560
580
  options = options.merge(
@@ -586,24 +606,25 @@ module Aws::S3
586
606
  # request_payer: "requester", # accepts requester
587
607
  # part_number: 1,
588
608
  # expected_bucket_owner: "AccountId",
609
+ # checksum_mode: "ENABLED", # accepts ENABLED
589
610
  # })
590
611
  # @param [Hash] options ({})
591
612
  # @option options [String] :if_match
592
613
  # Return the object only if its entity tag (ETag) is the same as the one
593
- # specified, otherwise return a 412 (precondition failed).
614
+ # specified; otherwise, return a 412 (precondition failed) error.
594
615
  # @option options [Time,DateTime,Date,Integer,String] :if_modified_since
595
616
  # Return the object only if it has been modified since the specified
596
- # time, otherwise return a 304 (not modified).
617
+ # time; otherwise, return a 304 (not modified) error.
597
618
  # @option options [String] :if_none_match
598
619
  # Return the object only if its entity tag (ETag) is different from the
599
- # one specified, otherwise return a 304 (not modified).
620
+ # one specified; otherwise, return a 304 (not modified) error.
600
621
  # @option options [Time,DateTime,Date,Integer,String] :if_unmodified_since
601
622
  # Return the object only if it has not been modified since the specified
602
- # time, otherwise return a 412 (precondition failed).
623
+ # time; otherwise, return a 412 (precondition failed) error.
603
624
  # @option options [String] :range
604
625
  # Downloads the specified range bytes of an object. For more information
605
626
  # about the HTTP Range header, see
606
- # [https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35][1].
627
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#name-range][1].
607
628
  #
608
629
  # <note markdown="1"> Amazon S3 doesn't support retrieving multiple ranges of data per
609
630
  # `GET` request.
@@ -612,7 +633,7 @@ module Aws::S3
612
633
  #
613
634
  #
614
635
  #
615
- # [1]: https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35
636
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-range
616
637
  # @option options [String] :response_cache_control
617
638
  # Sets the `Cache-Control` header of the response.
618
639
  # @option options [String] :response_content_disposition
@@ -643,8 +664,8 @@ module Aws::S3
643
664
  # @option options [String] :request_payer
644
665
  # Confirms that the requester knows that they will be charged for the
645
666
  # request. Bucket owners need not specify this parameter in their
646
- # requests. For information about downloading objects from requester
647
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
667
+ # requests. For information about downloading objects from Requester
668
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
648
669
  # in the *Amazon S3 User Guide*.
649
670
  #
650
671
  #
@@ -657,8 +678,10 @@ module Aws::S3
657
678
  # object.
658
679
  # @option options [String] :expected_bucket_owner
659
680
  # The account ID of the expected bucket owner. If the bucket is owned by
660
- # a different account, the request will fail with an HTTP `403 (Access
661
- # Denied)` error.
681
+ # a different account, the request fails with the HTTP status code `403
682
+ # Forbidden` (access denied).
683
+ # @option options [String] :checksum_mode
684
+ # To retrieve the checksum, this mode must be enabled.
662
685
  # @return [Types::GetObjectOutput]
663
686
  def get(options = {}, &block)
664
687
  options = options.merge(
@@ -687,7 +710,7 @@ module Aws::S3
687
710
  # "MetadataKey" => "MetadataValue",
688
711
  # },
689
712
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
690
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
713
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
691
714
  # website_redirect_location: "WebsiteRedirectLocation",
692
715
  # sse_customer_algorithm: "SSECustomerAlgorithm",
693
716
  # sse_customer_key: "SSECustomerKey",
@@ -701,6 +724,7 @@ module Aws::S3
701
724
  # object_lock_retain_until_date: Time.now,
702
725
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
703
726
  # expected_bucket_owner: "AccountId",
727
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
704
728
  # })
705
729
  # @param [Hash] options ({})
706
730
  # @option options [String] :acl
@@ -742,7 +766,7 @@ module Aws::S3
742
766
  # A map of metadata to store with the object in S3.
743
767
  # @option options [String] :server_side_encryption
744
768
  # The server-side encryption algorithm used when storing this object in
745
- # Amazon S3 (for example, AES256, aws:kms).
769
+ # Amazon S3 (for example, AES256, `aws:kms`).
746
770
  # @option options [String] :storage_class
747
771
  # By default, Amazon S3 uses the STANDARD Storage Class to store newly
748
772
  # created objects. The STANDARD storage class provides high durability
@@ -772,13 +796,13 @@ module Aws::S3
772
796
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
773
797
  # ensure that the encryption key was transmitted without error.
774
798
  # @option options [String] :ssekms_key_id
775
- # Specifies the ID of the symmetric customer managed key to use for
776
- # object encryption. All GET and PUT requests for an object protected by
777
- # Amazon Web Services KMS will fail if not made via SSL or using SigV4.
778
- # For information about configuring using any of the officially
779
- # supported Amazon Web Services SDKs and Amazon Web Services CLI, see
780
- # [Specifying the Signature Version in Request Authentication][1] in the
781
- # *Amazon S3 User Guide*.
799
+ # Specifies the ID of the symmetric encryption customer managed key to
800
+ # use for object encryption. All GET and PUT requests for an object
801
+ # protected by Amazon Web Services KMS will fail if not made via SSL or
802
+ # using SigV4. For information about configuring using any of the
803
+ # officially supported Amazon Web Services SDKs and Amazon Web Services
804
+ # CLI, see [Specifying the Signature Version in Request
805
+ # Authentication][1] in the *Amazon S3 User Guide*.
782
806
  #
783
807
  #
784
808
  #
@@ -798,8 +822,8 @@ module Aws::S3
798
822
  # @option options [String] :request_payer
799
823
  # Confirms that the requester knows that they will be charged for the
800
824
  # request. Bucket owners need not specify this parameter in their
801
- # requests. For information about downloading objects from requester
802
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
825
+ # requests. For information about downloading objects from Requester
826
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
803
827
  # in the *Amazon S3 User Guide*.
804
828
  #
805
829
  #
@@ -814,12 +838,20 @@ module Aws::S3
814
838
  # @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
815
839
  # Specifies the date and time when you want the Object Lock to expire.
816
840
  # @option options [String] :object_lock_legal_hold_status
817
- # Specifies whether you want to apply a Legal Hold to the uploaded
841
+ # Specifies whether you want to apply a legal hold to the uploaded
818
842
  # object.
819
843
  # @option options [String] :expected_bucket_owner
820
844
  # The account ID of the expected bucket owner. If the bucket is owned by
821
- # a different account, the request will fail with an HTTP `403 (Access
822
- # Denied)` error.
845
+ # a different account, the request fails with the HTTP status code `403
846
+ # Forbidden` (access denied).
847
+ # @option options [String] :checksum_algorithm
848
+ # Indicates the algorithm you want Amazon S3 to use to create the
849
+ # checksum for the object. For more information, see [Checking object
850
+ # integrity][1] in the *Amazon S3 User Guide*.
851
+ #
852
+ #
853
+ #
854
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
823
855
  # @return [MultipartUpload]
824
856
  def initiate_multipart_upload(options = {})
825
857
  options = options.merge(
@@ -847,6 +879,11 @@ module Aws::S3
847
879
  # content_length: 1,
848
880
  # content_md5: "ContentMD5",
849
881
  # content_type: "ContentType",
882
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
883
+ # checksum_crc32: "ChecksumCRC32",
884
+ # checksum_crc32c: "ChecksumCRC32C",
885
+ # checksum_sha1: "ChecksumSHA1",
886
+ # checksum_sha256: "ChecksumSHA256",
850
887
  # expires: Time.now,
851
888
  # grant_full_control: "GrantFullControl",
852
889
  # grant_read: "GrantRead",
@@ -856,7 +893,7 @@ module Aws::S3
856
893
  # "MetadataKey" => "MetadataValue",
857
894
  # },
858
895
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
859
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
896
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
860
897
  # website_redirect_location: "WebsiteRedirectLocation",
861
898
  # sse_customer_algorithm: "SSECustomerAlgorithm",
862
899
  # sse_customer_key: "SSECustomerKey",
@@ -894,30 +931,30 @@ module Aws::S3
894
931
  # @option options [String] :content_disposition
895
932
  # Specifies presentational information for the object. For more
896
933
  # information, see
897
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1][1].
934
+ # [https://www.rfc-editor.org/rfc/rfc6266#section-4][1].
898
935
  #
899
936
  #
900
937
  #
901
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1
938
+ # [1]: https://www.rfc-editor.org/rfc/rfc6266#section-4
902
939
  # @option options [String] :content_encoding
903
940
  # Specifies what content encodings have been applied to the object and
904
941
  # thus what decoding mechanisms must be applied to obtain the media-type
905
942
  # referenced by the Content-Type header field. For more information, see
906
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11][1].
943
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding][1].
907
944
  #
908
945
  #
909
946
  #
910
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11
947
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#field.content-encoding
911
948
  # @option options [String] :content_language
912
949
  # The language the content is in.
913
950
  # @option options [Integer] :content_length
914
951
  # Size of the body in bytes. This parameter is useful when the size of
915
952
  # the body cannot be determined automatically. For more information, see
916
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13][1].
953
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length][1].
917
954
  #
918
955
  #
919
956
  #
920
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13
957
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length
921
958
  # @option options [String] :content_md5
922
959
  # The base64-encoded 128-bit MD5 digest of the message (without the
923
960
  # headers) according to RFC 1864. This header can be used as a message
@@ -933,19 +970,74 @@ module Aws::S3
933
970
  # @option options [String] :content_type
934
971
  # A standard MIME type describing the format of the contents. For more
935
972
  # information, see
936
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17][1].
973
+ # [https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type][1].
937
974
  #
938
975
  #
939
976
  #
940
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17
977
+ # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-type
978
+ # @option options [String] :checksum_algorithm
979
+ # Indicates the algorithm used to create the checksum for the object
980
+ # when using the SDK. This header will not provide any additional
981
+ # functionality if not using the SDK. When sending this header, there
982
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
983
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
984
+ # `400 Bad Request`. For more information, see [Checking object
985
+ # integrity][1] in the *Amazon S3 User Guide*.
986
+ #
987
+ # If you provide an individual checksum, Amazon S3 ignores any provided
988
+ # `ChecksumAlgorithm` parameter.
989
+ #
990
+ #
991
+ #
992
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
993
+ # @option options [String] :checksum_crc32
994
+ # This header can be used as a data integrity check to verify that the
995
+ # data received is the same data that was originally sent. This header
996
+ # specifies the base64-encoded, 32-bit CRC32 checksum of the object. For
997
+ # more information, see [Checking object integrity][1] in the *Amazon S3
998
+ # User Guide*.
999
+ #
1000
+ #
1001
+ #
1002
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1003
+ # @option options [String] :checksum_crc32c
1004
+ # This header can be used as a data integrity check to verify that the
1005
+ # data received is the same data that was originally sent. This header
1006
+ # specifies the base64-encoded, 32-bit CRC32C checksum of the object.
1007
+ # For more information, see [Checking object integrity][1] in the
1008
+ # *Amazon S3 User Guide*.
1009
+ #
1010
+ #
1011
+ #
1012
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1013
+ # @option options [String] :checksum_sha1
1014
+ # This header can be used as a data integrity check to verify that the
1015
+ # data received is the same data that was originally sent. This header
1016
+ # specifies the base64-encoded, 160-bit SHA-1 digest of the object. For
1017
+ # more information, see [Checking object integrity][1] in the *Amazon S3
1018
+ # User Guide*.
1019
+ #
1020
+ #
1021
+ #
1022
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1023
+ # @option options [String] :checksum_sha256
1024
+ # This header can be used as a data integrity check to verify that the
1025
+ # data received is the same data that was originally sent. This header
1026
+ # specifies the base64-encoded, 256-bit SHA-256 digest of the object.
1027
+ # For more information, see [Checking object integrity][1] in the
1028
+ # *Amazon S3 User Guide*.
1029
+ #
1030
+ #
1031
+ #
1032
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
941
1033
  # @option options [Time,DateTime,Date,Integer,String] :expires
942
1034
  # The date and time at which the object is no longer cacheable. For more
943
1035
  # information, see
944
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21][1].
1036
+ # [https://www.rfc-editor.org/rfc/rfc7234#section-5.3][1].
945
1037
  #
946
1038
  #
947
1039
  #
948
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21
1040
+ # [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
949
1041
  # @option options [String] :grant_full_control
950
1042
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
951
1043
  # object.
@@ -967,7 +1059,7 @@ module Aws::S3
967
1059
  # A map of metadata to store with the object in S3.
968
1060
  # @option options [String] :server_side_encryption
969
1061
  # The server-side encryption algorithm used when storing this object in
970
- # Amazon S3 (for example, AES256, aws:kms).
1062
+ # Amazon S3 (for example, AES256, `aws:kms`).
971
1063
  # @option options [String] :storage_class
972
1064
  # By default, Amazon S3 uses the STANDARD Storage Class to store newly
973
1065
  # created objects. The STANDARD storage class provides high durability
@@ -1018,9 +1110,9 @@ module Aws::S3
1018
1110
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
1019
1111
  # ensure that the encryption key was transmitted without error.
1020
1112
  # @option options [String] :ssekms_key_id
1021
- # If `x-amz-server-side-encryption` is present and has the value of
1022
- # `aws:kms`, this header specifies the ID of the Amazon Web Services Key
1023
- # Management Service (Amazon Web Services KMS) symmetrical customer
1113
+ # If `x-amz-server-side-encryption` has a valid value of `aws:kms`, this
1114
+ # header specifies the ID of the Amazon Web Services Key Management
1115
+ # Service (Amazon Web Services KMS) symmetric encryption customer
1024
1116
  # managed key that was used for the object. If you specify
1025
1117
  # `x-amz-server-side-encryption:aws:kms`, but do not provide`
1026
1118
  # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
@@ -1030,7 +1122,10 @@ module Aws::S3
1030
1122
  # @option options [String] :ssekms_encryption_context
1031
1123
  # Specifies the Amazon Web Services KMS Encryption Context to use for
1032
1124
  # object encryption. The value of this header is a base64-encoded UTF-8
1033
- # string holding JSON with the encryption context key-value pairs.
1125
+ # string holding JSON with the encryption context key-value pairs. This
1126
+ # value is stored as object metadata and automatically gets passed on to
1127
+ # Amazon Web Services KMS for future `GetObject` or `CopyObject`
1128
+ # operations on this object.
1034
1129
  # @option options [Boolean] :bucket_key_enabled
1035
1130
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
1036
1131
  # encryption with server-side encryption using AWS KMS (SSE-KMS).
@@ -1042,8 +1137,8 @@ module Aws::S3
1042
1137
  # @option options [String] :request_payer
1043
1138
  # Confirms that the requester knows that they will be charged for the
1044
1139
  # request. Bucket owners need not specify this parameter in their
1045
- # requests. For information about downloading objects from requester
1046
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1140
+ # requests. For information about downloading objects from Requester
1141
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1047
1142
  # in the *Amazon S3 User Guide*.
1048
1143
  #
1049
1144
  #
@@ -1066,8 +1161,8 @@ module Aws::S3
1066
1161
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
1067
1162
  # @option options [String] :expected_bucket_owner
1068
1163
  # The account ID of the expected bucket owner. If the bucket is owned by
1069
- # a different account, the request will fail with an HTTP `403 (Access
1070
- # Denied)` error.
1164
+ # a different account, the request fails with the HTTP status code `403
1165
+ # Forbidden` (access denied).
1071
1166
  # @return [Types::PutObjectOutput]
1072
1167
  def put(options = {})
1073
1168
  options = options.merge(
@@ -1159,11 +1254,12 @@ module Aws::S3
1159
1254
  # value: "MetadataValue",
1160
1255
  # },
1161
1256
  # ],
1162
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
1257
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
1163
1258
  # },
1164
1259
  # },
1165
1260
  # },
1166
1261
  # request_payer: "requester", # accepts requester
1262
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
1167
1263
  # expected_bucket_owner: "AccountId",
1168
1264
  # })
1169
1265
  # @param [Hash] options ({})
@@ -1174,17 +1270,32 @@ module Aws::S3
1174
1270
  # @option options [String] :request_payer
1175
1271
  # Confirms that the requester knows that they will be charged for the
1176
1272
  # request. Bucket owners need not specify this parameter in their
1177
- # requests. For information about downloading objects from requester
1178
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1273
+ # requests. For information about downloading objects from Requester
1274
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1179
1275
  # in the *Amazon S3 User Guide*.
1180
1276
  #
1181
1277
  #
1182
1278
  #
1183
1279
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1280
+ # @option options [String] :checksum_algorithm
1281
+ # Indicates the algorithm used to create the checksum for the object
1282
+ # when using the SDK. This header will not provide any additional
1283
+ # functionality if not using the SDK. When sending this header, there
1284
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
1285
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
1286
+ # `400 Bad Request`. For more information, see [Checking object
1287
+ # integrity][1] in the *Amazon S3 User Guide*.
1288
+ #
1289
+ # If you provide an individual checksum, Amazon S3 ignores any provided
1290
+ # `ChecksumAlgorithm` parameter.
1291
+ #
1292
+ #
1293
+ #
1294
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1184
1295
  # @option options [String] :expected_bucket_owner
1185
1296
  # The account ID of the expected bucket owner. If the bucket is owned by
1186
- # a different account, the request will fail with an HTTP `403 (Access
1187
- # Denied)` error.
1297
+ # a different account, the request fails with the HTTP status code `403
1298
+ # Forbidden` (access denied).
1188
1299
  # @return [Types::RestoreObjectOutput]
1189
1300
  def restore_object(options = {})
1190
1301
  options = options.merge(
@@ -1317,6 +1428,7 @@ module Aws::S3
1317
1428
  # request_payer: "requester", # accepts requester
1318
1429
  # bypass_governance_retention: false,
1319
1430
  # expected_bucket_owner: "AccountId",
1431
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
1320
1432
  # })
1321
1433
  # @param options ({})
1322
1434
  # @option options [String] :mfa
@@ -1327,8 +1439,8 @@ module Aws::S3
1327
1439
  # @option options [String] :request_payer
1328
1440
  # Confirms that the requester knows that they will be charged for the
1329
1441
  # request. Bucket owners need not specify this parameter in their
1330
- # requests. For information about downloading objects from requester
1331
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1442
+ # requests. For information about downloading objects from Requester
1443
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1332
1444
  # in the *Amazon S3 User Guide*.
1333
1445
  #
1334
1446
  #
@@ -1337,11 +1449,29 @@ module Aws::S3
1337
1449
  # @option options [Boolean] :bypass_governance_retention
1338
1450
  # Specifies whether you want to delete this object even if it has a
1339
1451
  # Governance-type Object Lock in place. To use this header, you must
1340
- # have the `s3:PutBucketPublicAccessBlock` permission.
1452
+ # have the `s3:BypassGovernanceRetention` permission.
1341
1453
  # @option options [String] :expected_bucket_owner
1342
1454
  # The account ID of the expected bucket owner. If the bucket is owned by
1343
- # a different account, the request will fail with an HTTP `403 (Access
1344
- # Denied)` error.
1455
+ # a different account, the request fails with the HTTP status code `403
1456
+ # Forbidden` (access denied).
1457
+ # @option options [String] :checksum_algorithm
1458
+ # Indicates the algorithm used to create the checksum for the object
1459
+ # when using the SDK. This header will not provide any additional
1460
+ # functionality if not using the SDK. When sending this header, there
1461
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
1462
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
1463
+ # `400 Bad Request`. For more information, see [Checking object
1464
+ # integrity][1] in the *Amazon S3 User Guide*.
1465
+ #
1466
+ # If you provide an individual checksum, Amazon S3 ignores any provided
1467
+ # `ChecksumAlgorithm` parameter.
1468
+ #
1469
+ # This checksum algorithm must be the same for all parts and it match
1470
+ # the checksum value supplied in the `CreateMultipartUpload` request.
1471
+ #
1472
+ #
1473
+ #
1474
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1345
1475
  # @return [void]
1346
1476
  def batch_delete!(options = {})
1347
1477
  batch_enum.each do |batch|