aws-sdk-s3 1.103.0 → 1.120.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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|