aws-sdk-s3 1.156.0 → 1.190.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 (70) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +193 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/access_grants_credentials_provider.rb +12 -3
  5. data/lib/aws-sdk-s3/bucket.rb +304 -94
  6. data/lib/aws-sdk-s3/bucket_acl.rb +6 -5
  7. data/lib/aws-sdk-s3/bucket_cors.rb +6 -5
  8. data/lib/aws-sdk-s3/bucket_lifecycle.rb +7 -2
  9. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +60 -3
  10. data/lib/aws-sdk-s3/bucket_logging.rb +2 -2
  11. data/lib/aws-sdk-s3/bucket_policy.rb +10 -9
  12. data/lib/aws-sdk-s3/bucket_request_payment.rb +3 -3
  13. data/lib/aws-sdk-s3/bucket_tagging.rb +3 -3
  14. data/lib/aws-sdk-s3/bucket_versioning.rb +9 -9
  15. data/lib/aws-sdk-s3/bucket_website.rb +3 -3
  16. data/lib/aws-sdk-s3/client.rb +4081 -1812
  17. data/lib/aws-sdk-s3/client_api.rb +404 -162
  18. data/lib/aws-sdk-s3/customizations/object.rb +6 -0
  19. data/lib/aws-sdk-s3/customizations/object_summary.rb +5 -0
  20. data/lib/aws-sdk-s3/customizations/object_version.rb +13 -0
  21. data/lib/aws-sdk-s3/customizations.rb +24 -38
  22. data/lib/aws-sdk-s3/endpoint_parameters.rb +13 -18
  23. data/lib/aws-sdk-s3/endpoint_provider.rb +400 -276
  24. data/lib/aws-sdk-s3/endpoints.rb +465 -1706
  25. data/lib/aws-sdk-s3/errors.rb +58 -0
  26. data/lib/aws-sdk-s3/file_downloader.rb +14 -31
  27. data/lib/aws-sdk-s3/legacy_signer.rb +2 -1
  28. data/lib/aws-sdk-s3/multipart_file_uploader.rb +31 -13
  29. data/lib/aws-sdk-s3/multipart_upload.rb +108 -8
  30. data/lib/aws-sdk-s3/multipart_upload_part.rb +52 -36
  31. data/lib/aws-sdk-s3/object.rb +614 -203
  32. data/lib/aws-sdk-s3/object_acl.rb +11 -5
  33. data/lib/aws-sdk-s3/object_multipart_copier.rb +2 -1
  34. data/lib/aws-sdk-s3/object_summary.rb +518 -151
  35. data/lib/aws-sdk-s3/object_version.rb +81 -12
  36. data/lib/aws-sdk-s3/plugins/access_grants.rb +68 -4
  37. data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +31 -0
  38. data/lib/aws-sdk-s3/plugins/endpoints.rb +24 -212
  39. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +11 -20
  40. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +3 -3
  41. data/lib/aws-sdk-s3/plugins/md5s.rb +10 -71
  42. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +5 -7
  43. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -1
  44. data/lib/aws-sdk-s3/presigner.rb +5 -5
  45. data/lib/aws-sdk-s3/resource.rb +45 -18
  46. data/lib/aws-sdk-s3/types.rb +3462 -1337
  47. data/lib/aws-sdk-s3.rb +35 -31
  48. data/sig/bucket.rbs +16 -6
  49. data/sig/bucket_acl.rbs +1 -1
  50. data/sig/bucket_cors.rbs +1 -1
  51. data/sig/bucket_lifecycle.rbs +1 -1
  52. data/sig/bucket_lifecycle_configuration.rbs +8 -4
  53. data/sig/bucket_logging.rbs +1 -1
  54. data/sig/bucket_policy.rbs +1 -1
  55. data/sig/bucket_request_payment.rbs +1 -1
  56. data/sig/bucket_tagging.rbs +1 -1
  57. data/sig/bucket_versioning.rbs +3 -3
  58. data/sig/bucket_website.rbs +1 -1
  59. data/sig/client.rbs +162 -45
  60. data/sig/errors.rbs +10 -0
  61. data/sig/multipart_upload.rbs +12 -2
  62. data/sig/multipart_upload_part.rbs +5 -1
  63. data/sig/object.rbs +26 -6
  64. data/sig/object_acl.rbs +1 -1
  65. data/sig/object_summary.rbs +18 -7
  66. data/sig/object_version.rbs +9 -3
  67. data/sig/resource.rbs +11 -4
  68. data/sig/types.rbs +210 -38
  69. metadata +8 -10
  70. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +0 -31
@@ -41,6 +41,14 @@ module Aws::S3
41
41
  data[:creation_date]
42
42
  end
43
43
 
44
+ # `BucketRegion` indicates the Amazon Web Services region where the
45
+ # bucket is located. If the request contains at least one valid
46
+ # parameter, it is included in the response.
47
+ # @return [String]
48
+ def bucket_region
49
+ data[:bucket_region]
50
+ end
51
+
44
52
  # @!endgroup
45
53
 
46
54
  # @return [Client]
@@ -229,13 +237,13 @@ module Aws::S3
229
237
  # bucket.create({
230
238
  # acl: "private", # accepts private, public-read, public-read-write, authenticated-read
231
239
  # create_bucket_configuration: {
232
- # location_constraint: "af-south-1", # accepts af-south-1, ap-east-1, ap-northeast-1, ap-northeast-2, ap-northeast-3, ap-south-1, ap-south-2, ap-southeast-1, ap-southeast-2, ap-southeast-3, ca-central-1, cn-north-1, cn-northwest-1, EU, eu-central-1, eu-north-1, eu-south-1, eu-south-2, eu-west-1, eu-west-2, eu-west-3, me-south-1, sa-east-1, us-east-2, us-gov-east-1, us-gov-west-1, us-west-1, us-west-2
240
+ # location_constraint: "af-south-1", # accepts af-south-1, ap-east-1, ap-northeast-1, ap-northeast-2, ap-northeast-3, ap-south-1, ap-south-2, ap-southeast-1, ap-southeast-2, ap-southeast-3, ap-southeast-4, ap-southeast-5, ca-central-1, cn-north-1, cn-northwest-1, EU, eu-central-1, eu-central-2, eu-north-1, eu-south-1, eu-south-2, eu-west-1, eu-west-2, eu-west-3, il-central-1, me-central-1, me-south-1, sa-east-1, us-east-2, us-gov-east-1, us-gov-west-1, us-west-1, us-west-2
233
241
  # location: {
234
- # type: "AvailabilityZone", # accepts AvailabilityZone
242
+ # type: "AvailabilityZone", # accepts AvailabilityZone, LocalZone
235
243
  # name: "LocationNameAsString",
236
244
  # },
237
245
  # bucket: {
238
- # data_redundancy: "SingleAvailabilityZone", # accepts SingleAvailabilityZone
246
+ # data_redundancy: "SingleAvailabilityZone", # accepts SingleAvailabilityZone, SingleLocalZone
239
247
  # type: "Directory", # accepts Directory
240
248
  # },
241
249
  # },
@@ -373,6 +381,9 @@ module Aws::S3
373
381
  # {
374
382
  # key: "ObjectKey", # required
375
383
  # version_id: "ObjectVersionId",
384
+ # etag: "ETag",
385
+ # last_modified_time: Time.now,
386
+ # size: 1,
376
387
  # },
377
388
  # ],
378
389
  # quiet: false,
@@ -381,7 +392,7 @@ module Aws::S3
381
392
  # request_payer: "requester", # accepts requester
382
393
  # bypass_governance_retention: false,
383
394
  # expected_bucket_owner: "AccountId",
384
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
395
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
385
396
  # })
386
397
  # @param [Hash] options ({})
387
398
  # @option options [required, Types::Delete] :delete
@@ -447,22 +458,23 @@ module Aws::S3
447
458
  # For the `x-amz-checksum-algorithm ` header, replace ` algorithm ` with
448
459
  # the supported algorithm from the following list:
449
460
  #
450
- # * CRC32
461
+ # * `CRC32`
462
+ #
463
+ # * `CRC32C`
451
464
  #
452
- # * CRC32C
465
+ # * `CRC64NVME`
453
466
  #
454
- # * SHA1
467
+ # * `SHA1`
455
468
  #
456
- # * SHA256
469
+ # * `SHA256`
457
470
  #
458
471
  # For more information, see [Checking object integrity][1] in the
459
472
  # *Amazon S3 User Guide*.
460
473
  #
461
474
  # If the individual checksum value you provide through
462
475
  # `x-amz-checksum-algorithm ` doesn't match the checksum algorithm you
463
- # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 ignores any
464
- # provided `ChecksumAlgorithm` parameter and uses the checksum algorithm
465
- # that matches the provided value in `x-amz-checksum-algorithm `.
476
+ # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the
477
+ # request with a `BadDigest` error.
466
478
  #
467
479
  # If you provide an individual checksum, Amazon S3 ignores any provided
468
480
  # `ChecksumAlgorithm` parameter.
@@ -491,17 +503,21 @@ module Aws::S3
491
503
  # content_length: 1,
492
504
  # content_md5: "ContentMD5",
493
505
  # content_type: "ContentType",
494
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
506
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
495
507
  # checksum_crc32: "ChecksumCRC32",
496
508
  # checksum_crc32c: "ChecksumCRC32C",
509
+ # checksum_crc64nvme: "ChecksumCRC64NVME",
497
510
  # checksum_sha1: "ChecksumSHA1",
498
511
  # checksum_sha256: "ChecksumSHA256",
499
512
  # expires: Time.now,
513
+ # if_match: "IfMatch",
514
+ # if_none_match: "IfNoneMatch",
500
515
  # grant_full_control: "GrantFullControl",
501
516
  # grant_read: "GrantRead",
502
517
  # grant_read_acp: "GrantReadACP",
503
518
  # grant_write_acp: "GrantWriteACP",
504
519
  # key: "ObjectKey", # required
520
+ # write_offset_bytes: 1,
505
521
  # metadata: {
506
522
  # "MetadataKey" => "MetadataValue",
507
523
  # },
@@ -597,7 +613,7 @@ module Aws::S3
597
613
  #
598
614
  # [1]: https://www.rfc-editor.org/rfc/rfc9110.html#name-content-length
599
615
  # @option options [String] :content_md5
600
- # The base64-encoded 128-bit MD5 digest of the message (without the
616
+ # The Base64 encoded 128-bit `MD5` digest of the message (without the
601
617
  # headers) according to RFC 1864. This header can be used as a message
602
618
  # integrity check to verify that the data is the same data that was
603
619
  # originally sent. Although it is optional, we recommend using the
@@ -605,10 +621,11 @@ module Aws::S3
605
621
  # information about REST request authentication, see [REST
606
622
  # Authentication][1].
607
623
  #
608
- # <note markdown="1"> The `Content-MD5` header is required for any request to upload an
609
- # object with a retention period configured using Amazon S3 Object Lock.
610
- # For more information about Amazon S3 Object Lock, see [Amazon S3
611
- # Object Lock Overview][2] in the *Amazon S3 User Guide*.
624
+ # <note markdown="1"> The `Content-MD5` or `x-amz-sdk-checksum-algorithm` header is required
625
+ # for any request to upload an object with a retention period configured
626
+ # using Amazon S3 Object Lock. For more information, see [Uploading
627
+ # objects to an Object Lock enabled bucket ][2] in the *Amazon S3 User
628
+ # Guide*.
612
629
  #
613
630
  # </note>
614
631
  #
@@ -619,7 +636,7 @@ module Aws::S3
619
636
  #
620
637
  #
621
638
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
622
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html
639
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-put-object
623
640
  # @option options [String] :content_type
624
641
  # A standard MIME type describing the format of the contents. For more
625
642
  # information, see
@@ -639,37 +656,45 @@ module Aws::S3
639
656
  # For the `x-amz-checksum-algorithm ` header, replace ` algorithm ` with
640
657
  # the supported algorithm from the following list:
641
658
  #
642
- # * CRC32
659
+ # * `CRC32`
643
660
  #
644
- # * CRC32C
661
+ # * `CRC32C`
645
662
  #
646
- # * SHA1
663
+ # * `CRC64NVME`
647
664
  #
648
- # * SHA256
665
+ # * `SHA1`
666
+ #
667
+ # * `SHA256`
649
668
  #
650
669
  # For more information, see [Checking object integrity][1] in the
651
670
  # *Amazon S3 User Guide*.
652
671
  #
653
672
  # If the individual checksum value you provide through
654
673
  # `x-amz-checksum-algorithm ` doesn't match the checksum algorithm you
655
- # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 ignores any
656
- # provided `ChecksumAlgorithm` parameter and uses the checksum algorithm
657
- # that matches the provided value in `x-amz-checksum-algorithm `.
674
+ # set through `x-amz-sdk-checksum-algorithm`, Amazon S3 fails the
675
+ # request with a `BadDigest` error.
658
676
  #
659
- # <note markdown="1"> For directory buckets, when you use Amazon Web Services SDKs, `CRC32`
660
- # is the default checksum algorithm that's used for performance.
677
+ # <note markdown="1"> The `Content-MD5` or `x-amz-sdk-checksum-algorithm` header is required
678
+ # for any request to upload an object with a retention period configured
679
+ # using Amazon S3 Object Lock. For more information, see [Uploading
680
+ # objects to an Object Lock enabled bucket ][2] in the *Amazon S3 User
681
+ # Guide*.
661
682
  #
662
683
  # </note>
663
684
  #
685
+ # For directory buckets, when you use Amazon Web Services SDKs, `CRC32`
686
+ # is the default checksum algorithm that's used for performance.
687
+ #
664
688
  #
665
689
  #
666
690
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
691
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock-managing.html#object-lock-put-object
667
692
  # @option options [String] :checksum_crc32
668
693
  # This header can be used as a data integrity check to verify that the
669
694
  # data received is the same data that was originally sent. This header
670
- # specifies the base64-encoded, 32-bit CRC32 checksum of the object. For
671
- # more information, see [Checking object integrity][1] in the *Amazon S3
672
- # User Guide*.
695
+ # specifies the Base64 encoded, 32-bit `CRC32` checksum of the object.
696
+ # For more information, see [Checking object integrity][1] in the
697
+ # *Amazon S3 User Guide*.
673
698
  #
674
699
  #
675
700
  #
@@ -677,17 +702,28 @@ module Aws::S3
677
702
  # @option options [String] :checksum_crc32c
678
703
  # This header can be used as a data integrity check to verify that the
679
704
  # data received is the same data that was originally sent. This header
680
- # specifies the base64-encoded, 32-bit CRC32C checksum of the object.
705
+ # specifies the Base64 encoded, 32-bit `CRC32C` checksum of the object.
681
706
  # For more information, see [Checking object integrity][1] in the
682
707
  # *Amazon S3 User Guide*.
683
708
  #
684
709
  #
685
710
  #
686
711
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
712
+ # @option options [String] :checksum_crc64nvme
713
+ # This header can be used as a data integrity check to verify that the
714
+ # data received is the same data that was originally sent. This header
715
+ # specifies the Base64 encoded, 64-bit `CRC64NVME` checksum of the
716
+ # object. The `CRC64NVME` checksum is always a full object checksum. For
717
+ # more information, see [Checking object integrity in the Amazon S3 User
718
+ # Guide][1].
719
+ #
720
+ #
721
+ #
722
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
687
723
  # @option options [String] :checksum_sha1
688
724
  # This header can be used as a data integrity check to verify that the
689
725
  # data received is the same data that was originally sent. This header
690
- # specifies the base64-encoded, 160-bit SHA-1 digest of the object. For
726
+ # specifies the Base64 encoded, 160-bit `SHA1` digest of the object. For
691
727
  # more information, see [Checking object integrity][1] in the *Amazon S3
692
728
  # User Guide*.
693
729
  #
@@ -697,7 +733,7 @@ module Aws::S3
697
733
  # @option options [String] :checksum_sha256
698
734
  # This header can be used as a data integrity check to verify that the
699
735
  # data received is the same data that was originally sent. This header
700
- # specifies the base64-encoded, 256-bit SHA-256 digest of the object.
736
+ # specifies the Base64 encoded, 256-bit `SHA256` digest of the object.
701
737
  # For more information, see [Checking object integrity][1] in the
702
738
  # *Amazon S3 User Guide*.
703
739
  #
@@ -712,6 +748,43 @@ module Aws::S3
712
748
  #
713
749
  #
714
750
  # [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
751
+ # @option options [String] :if_match
752
+ # Uploads the object only if the ETag (entity tag) value provided during
753
+ # the WRITE operation matches the ETag of the object in S3. If the ETag
754
+ # values do not match, the operation returns a `412 Precondition Failed`
755
+ # error.
756
+ #
757
+ # If a conflicting operation occurs during the upload S3 returns a `409
758
+ # ConditionalRequestConflict` response. On a 409 failure you should
759
+ # fetch the object's ETag and retry the upload.
760
+ #
761
+ # Expects the ETag value as a string.
762
+ #
763
+ # For more information about conditional requests, see [RFC 7232][1], or
764
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
765
+ #
766
+ #
767
+ #
768
+ # [1]: https://tools.ietf.org/html/rfc7232
769
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
770
+ # @option options [String] :if_none_match
771
+ # Uploads the object only if the object key name does not already exist
772
+ # in the bucket specified. Otherwise, Amazon S3 returns a `412
773
+ # Precondition Failed` error.
774
+ #
775
+ # If a conflicting operation occurs during the upload S3 returns a `409
776
+ # ConditionalRequestConflict` response. On a 409 failure you should
777
+ # retry the upload.
778
+ #
779
+ # Expects the '*' (asterisk) character.
780
+ #
781
+ # For more information about conditional requests, see [RFC 7232][1], or
782
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
783
+ #
784
+ #
785
+ #
786
+ # [1]: https://tools.ietf.org/html/rfc7232
787
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
715
788
  # @option options [String] :grant_full_control
716
789
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
717
790
  # object.
@@ -747,6 +820,16 @@ module Aws::S3
747
820
  # </note>
748
821
  # @option options [required, String] :key
749
822
  # Object key for which the PUT action was initiated.
823
+ # @option options [Integer] :write_offset_bytes
824
+ # Specifies the offset for appending data to existing objects in bytes.
825
+ # The offset must be equal to the size of the existing object being
826
+ # appended to. If no object exists, setting this header to 0 will create
827
+ # a new object.
828
+ #
829
+ # <note markdown="1"> This functionality is only supported for objects in the Amazon S3
830
+ # Express One Zone storage class in directory buckets.
831
+ #
832
+ # </note>
750
833
  # @option options [Hash<String,String>] :metadata
751
834
  # A map of metadata to store with the object in S3.
752
835
  # @option options [String] :server_side_encryption
@@ -754,25 +837,65 @@ module Aws::S3
754
837
  # object in Amazon S3 (for example, `AES256`, `aws:kms`,
755
838
  # `aws:kms:dsse`).
756
839
  #
757
- # <b>General purpose buckets </b> - You have four mutually exclusive
758
- # options to protect data using server-side encryption in Amazon S3,
759
- # depending on how you choose to manage the encryption keys.
760
- # Specifically, the encryption key options are Amazon S3 managed keys
761
- # (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or DSSE-KMS), and
762
- # customer-provided keys (SSE-C). Amazon S3 encrypts data with
763
- # server-side encryption by using Amazon S3 managed keys (SSE-S3) by
764
- # default. You can optionally tell Amazon S3 to encrypt data at rest by
765
- # using server-side encryption with other key options. For more
766
- # information, see [Using Server-Side Encryption][1] in the *Amazon S3
767
- # User Guide*.
768
- #
769
- # <b>Directory buckets </b> - For directory buckets, only the
770
- # server-side encryption with Amazon S3 managed keys (SSE-S3) (`AES256`)
771
- # value is supported.
840
+ # * <b>General purpose buckets </b> - You have four mutually exclusive
841
+ # options to protect data using server-side encryption in Amazon S3,
842
+ # depending on how you choose to manage the encryption keys.
843
+ # Specifically, the encryption key options are Amazon S3 managed keys
844
+ # (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or DSSE-KMS), and
845
+ # customer-provided keys (SSE-C). Amazon S3 encrypts data with
846
+ # server-side encryption by using Amazon S3 managed keys (SSE-S3) by
847
+ # default. You can optionally tell Amazon S3 to encrypt data at rest
848
+ # by using server-side encryption with other key options. For more
849
+ # information, see [Using Server-Side Encryption][1] in the *Amazon S3
850
+ # User Guide*.
851
+ #
852
+ # * <b>Directory buckets </b> - For directory buckets, there are only
853
+ # two supported options for server-side encryption: server-side
854
+ # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
855
+ # server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We
856
+ # recommend that the bucket's default encryption uses the desired
857
+ # encryption configuration and you don't override the bucket default
858
+ # encryption in your `CreateSession` requests or `PUT` object
859
+ # requests. Then, new objects are automatically encrypted with the
860
+ # desired encryption settings. For more information, see [Protecting
861
+ # data with server-side encryption][2] in the *Amazon S3 User Guide*.
862
+ # For more information about the encryption overriding behaviors in
863
+ # directory buckets, see [Specifying server-side encryption with KMS
864
+ # for new object uploads][3].
865
+ #
866
+ # In the Zonal endpoint API calls (except [CopyObject][4] and
867
+ # [UploadPartCopy][5]) using the REST API, the encryption request
868
+ # headers must match the encryption settings that are specified in the
869
+ # `CreateSession` request. You can't override the values of the
870
+ # encryption settings (`x-amz-server-side-encryption`,
871
+ # `x-amz-server-side-encryption-aws-kms-key-id`,
872
+ # `x-amz-server-side-encryption-context`, and
873
+ # `x-amz-server-side-encryption-bucket-key-enabled`) that are
874
+ # specified in the `CreateSession` request. You don't need to
875
+ # explicitly specify these encryption settings values in Zonal
876
+ # endpoint API calls, and Amazon S3 will use the encryption settings
877
+ # values from the `CreateSession` request to protect new objects in
878
+ # the directory bucket.
879
+ #
880
+ # <note markdown="1"> When you use the CLI or the Amazon Web Services SDKs, for
881
+ # `CreateSession`, the session token refreshes automatically to avoid
882
+ # service interruptions when a session expires. The CLI or the Amazon
883
+ # Web Services SDKs use the bucket's default encryption configuration
884
+ # for the `CreateSession` request. It's not supported to override the
885
+ # encryption settings values in the `CreateSession` request. So in the
886
+ # Zonal endpoint API calls (except [CopyObject][4] and
887
+ # [UploadPartCopy][5]), the encryption request headers must match the
888
+ # default encryption configuration of the directory bucket.
889
+ #
890
+ # </note>
772
891
  #
773
892
  #
774
893
  #
775
894
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
895
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
896
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
897
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
898
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
776
899
  # @option options [String] :storage_class
777
900
  # By default, Amazon S3 uses the STANDARD Storage Class to store newly
778
901
  # created objects. The STANDARD storage class provides high durability
@@ -780,8 +903,9 @@ module Aws::S3
780
903
  # a different Storage Class. For more information, see [Storage
781
904
  # Classes][1] in the *Amazon S3 User Guide*.
782
905
  #
783
- # <note markdown="1"> * For directory buckets, only the S3 Express One Zone storage class is
784
- # supported to store newly created objects.
906
+ # <note markdown="1"> * Directory buckets only support `EXPRESS_ONEZONE` (the S3 Express One
907
+ # Zone storage class) in Availability Zones and `ONEZONE_IA` (the S3
908
+ # One Zone-Infrequent Access storage class) in Dedicated Local Zones.
785
909
  #
786
910
  # * Amazon S3 on Outposts only uses the OUTPOSTS Storage Class.
787
911
  #
@@ -846,44 +970,83 @@ module Aws::S3
846
970
  #
847
971
  # </note>
848
972
  # @option options [String] :ssekms_key_id
849
- # If `x-amz-server-side-encryption` has a valid value of `aws:kms` or
850
- # `aws:kms:dsse`, this header specifies the ID (Key ID, Key ARN, or Key
851
- # Alias) of the Key Management Service (KMS) symmetric encryption
852
- # customer managed key that was used for the object. If you specify
853
- # `x-amz-server-side-encryption:aws:kms` or
854
- # `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide`
855
- # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
856
- # Amazon Web Services managed key (`aws/s3`) to protect the data. If the
857
- # KMS key does not exist in the same account that's issuing the
858
- # command, you must use the full ARN and not just the ID.
973
+ # Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for
974
+ # object encryption. If the KMS key doesn't exist in the same account
975
+ # that's issuing the command, you must use the full Key ARN not the Key
976
+ # ID.
977
+ #
978
+ # **General purpose buckets** - If you specify
979
+ # `x-amz-server-side-encryption` with `aws:kms` or `aws:kms:dsse`, this
980
+ # header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS key
981
+ # to use. If you specify `x-amz-server-side-encryption:aws:kms` or
982
+ # `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide
983
+ # `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
984
+ # Amazon Web Services managed key (`aws/s3`) to protect the data.
985
+ #
986
+ # **Directory buckets** - To encrypt data using SSE-KMS, it's
987
+ # recommended to specify the `x-amz-server-side-encryption` header to
988
+ # `aws:kms`. Then, the `x-amz-server-side-encryption-aws-kms-key-id`
989
+ # header implicitly uses the bucket's default KMS customer managed key
990
+ # ID. If you want to explicitly set the `
991
+ # x-amz-server-side-encryption-aws-kms-key-id` header, it must match the
992
+ # bucket's default customer managed key (using key ID or ARN, not
993
+ # alias). Your SSE-KMS configuration can only support 1 [customer
994
+ # managed key][1] per directory bucket's lifetime. The [Amazon Web
995
+ # Services managed key][2] (`aws/s3`) isn't supported. Incorrect key
996
+ # specification results in an HTTP `400 Bad Request` error.
997
+ #
998
+ #
999
+ #
1000
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
1001
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
1002
+ # @option options [String] :ssekms_encryption_context
1003
+ # Specifies the Amazon Web Services KMS Encryption Context as an
1004
+ # additional encryption context to use for object encryption. The value
1005
+ # of this header is a Base64 encoded string of a UTF-8 encoded JSON,
1006
+ # which contains the encryption context as key-value pairs. This value
1007
+ # is stored as object metadata and automatically gets passed on to
1008
+ # Amazon Web Services KMS for future `GetObject` operations on this
1009
+ # object.
859
1010
  #
860
- # <note markdown="1"> This functionality is not supported for directory buckets.
1011
+ # **General purpose buckets** - This value must be explicitly added
1012
+ # during `CopyObject` operations if you want an additional encryption
1013
+ # context for your object. For more information, see [Encryption
1014
+ # context][1] in the *Amazon S3 User Guide*.
861
1015
  #
862
- # </note>
863
- # @option options [String] :ssekms_encryption_context
864
- # Specifies the Amazon Web Services KMS Encryption Context to use for
865
- # object encryption. The value of this header is a base64-encoded UTF-8
866
- # string holding JSON with the encryption context key-value pairs. This
867
- # value is stored as object metadata and automatically gets passed on to
868
- # Amazon Web Services KMS for future `GetObject` or `CopyObject`
869
- # operations on this object. This value must be explicitly added during
870
- # `CopyObject` operations.
1016
+ # **Directory buckets** - You can optionally provide an explicit
1017
+ # encryption context value. The value must match the default encryption
1018
+ # context - the bucket Amazon Resource Name (ARN). An additional
1019
+ # encryption context value is not supported.
871
1020
  #
872
- # <note markdown="1"> This functionality is not supported for directory buckets.
873
1021
  #
874
- # </note>
1022
+ #
1023
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context
875
1024
  # @option options [Boolean] :bucket_key_enabled
876
1025
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
877
1026
  # encryption with server-side encryption using Key Management Service
878
- # (KMS) keys (SSE-KMS). Setting this header to `true` causes Amazon S3
879
- # to use an S3 Bucket Key for object encryption with SSE-KMS.
1027
+ # (KMS) keys (SSE-KMS).
880
1028
  #
881
- # Specifying this header with a PUT action doesn’t affect bucket-level
882
- # settings for S3 Bucket Key.
1029
+ # **General purpose buckets** - Setting this header to `true` causes
1030
+ # Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.
1031
+ # Also, specifying this header with a PUT action doesn't affect
1032
+ # bucket-level settings for S3 Bucket Key.
883
1033
  #
884
- # <note markdown="1"> This functionality is not supported for directory buckets.
1034
+ # **Directory buckets** - S3 Bucket Keys are always enabled for `GET`
1035
+ # and `PUT` operations in a directory bucket and can’t be disabled. S3
1036
+ # Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects
1037
+ # from general purpose buckets to directory buckets, from directory
1038
+ # buckets to general purpose buckets, or between directory buckets,
1039
+ # through [CopyObject][1], [UploadPartCopy][2], [the Copy operation in
1040
+ # Batch Operations][3], or [the import jobs][4]. In this case, Amazon S3
1041
+ # makes a call to KMS every time a copy request is made for a
1042
+ # KMS-encrypted object.
885
1043
  #
886
- # </note>
1044
+ #
1045
+ #
1046
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
1047
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
1048
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
1049
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
887
1050
  # @option options [String] :request_payer
888
1051
  # Confirms that the requester knows that they will be charged for the
889
1052
  # request. Bucket owners need not specify this parameter in their
@@ -1018,12 +1181,26 @@ module Aws::S3
1018
1181
  #
1019
1182
  # </note>
1020
1183
  # @option options [String] :encoding_type
1021
- # Requests Amazon S3 to encode the object keys in the response and
1022
- # specifies the encoding method to use. An object key can contain any
1023
- # Unicode character; however, the XML 1.0 parser cannot parse some
1024
- # characters, such as characters with an ASCII value from 0 to 10. For
1025
- # characters that are not supported in XML 1.0, you can add this
1026
- # parameter to request that Amazon S3 encode the keys in the response.
1184
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in the
1185
+ # response. Responses are encoded only in UTF-8. An object key can
1186
+ # contain any Unicode character. However, the XML 1.0 parser can't
1187
+ # parse certain characters, such as characters with an ASCII value from
1188
+ # 0 to 10. For characters that aren't supported in XML 1.0, you can add
1189
+ # this parameter to request that Amazon S3 encode the keys in the
1190
+ # response. For more information about characters to avoid in object key
1191
+ # names, see [Object key naming guidelines][2].
1192
+ #
1193
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
1194
+ # in an object's key name will be percent-encoded according to UTF-8
1195
+ # code values. For example, the object `test_file(3).png` will appear as
1196
+ # `test_file%283%29.png`.
1197
+ #
1198
+ # </note>
1199
+ #
1200
+ #
1201
+ #
1202
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
1203
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
1027
1204
  # @option options [String] :key_marker
1028
1205
  # Specifies the multipart upload after which listing should begin.
1029
1206
  #
@@ -1156,12 +1333,26 @@ module Aws::S3
1156
1333
  # the `max-keys` limitation. These keys are not returned elsewhere in
1157
1334
  # the response.
1158
1335
  # @option options [String] :encoding_type
1159
- # Requests Amazon S3 to encode the object keys in the response and
1160
- # specifies the encoding method to use. An object key can contain any
1161
- # Unicode character; however, the XML 1.0 parser cannot parse some
1162
- # characters, such as characters with an ASCII value from 0 to 10. For
1163
- # characters that are not supported in XML 1.0, you can add this
1164
- # parameter to request that Amazon S3 encode the keys in the response.
1336
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in the
1337
+ # response. Responses are encoded only in UTF-8. An object key can
1338
+ # contain any Unicode character. However, the XML 1.0 parser can't
1339
+ # parse certain characters, such as characters with an ASCII value from
1340
+ # 0 to 10. For characters that aren't supported in XML 1.0, you can add
1341
+ # this parameter to request that Amazon S3 encode the keys in the
1342
+ # response. For more information about characters to avoid in object key
1343
+ # names, see [Object key naming guidelines][2].
1344
+ #
1345
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
1346
+ # in an object's key name will be percent-encoded according to UTF-8
1347
+ # code values. For example, the object `test_file(3).png` will appear as
1348
+ # `test_file%283%29.png`.
1349
+ #
1350
+ # </note>
1351
+ #
1352
+ #
1353
+ #
1354
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
1355
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
1165
1356
  # @option options [String] :key_marker
1166
1357
  # Specifies the key to start with when listing objects in a bucket.
1167
1358
  # @option options [String] :prefix
@@ -1252,10 +1443,26 @@ module Aws::S3
1252
1443
  #
1253
1444
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html
1254
1445
  # @option options [String] :encoding_type
1255
- # Encoding type used by Amazon S3 to encode object keys in the response.
1256
- # If using `url`, non-ASCII characters used in an object's key name
1257
- # will be URL encoded. For example, the object `test_file(3).png` will
1258
- # appear as `test_file%283%29.png`.
1446
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in the
1447
+ # response. Responses are encoded only in UTF-8. An object key can
1448
+ # contain any Unicode character. However, the XML 1.0 parser can't
1449
+ # parse certain characters, such as characters with an ASCII value from
1450
+ # 0 to 10. For characters that aren't supported in XML 1.0, you can add
1451
+ # this parameter to request that Amazon S3 encode the keys in the
1452
+ # response. For more information about characters to avoid in object key
1453
+ # names, see [Object key naming guidelines][2].
1454
+ #
1455
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
1456
+ # in an object's key name will be percent-encoded according to UTF-8
1457
+ # code values. For example, the object `test_file(3).png` will appear as
1458
+ # `test_file%283%29.png`.
1459
+ #
1460
+ # </note>
1461
+ #
1462
+ #
1463
+ #
1464
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
1465
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
1259
1466
  # @option options [String] :prefix
1260
1467
  # Limits the response to keys that begin with the specified prefix.
1261
1468
  #
@@ -1412,3 +1619,6 @@ module Aws::S3
1412
1619
  class Collection < Aws::Resources::Collection; end
1413
1620
  end
1414
1621
  end
1622
+
1623
+ # Load customizations if they exist
1624
+ require 'aws-sdk-s3/customizations/bucket'
@@ -207,7 +207,7 @@ module Aws::S3
207
207
  # },
208
208
  # },
209
209
  # content_md5: "ContentMD5",
210
- # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
210
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
211
211
  # grant_full_control: "GrantFullControl",
212
212
  # grant_read: "GrantRead",
213
213
  # grant_read_acp: "GrantReadACP",
@@ -222,9 +222,10 @@ module Aws::S3
222
222
  # Contains the elements that set the ACL permissions for an object per
223
223
  # grantee.
224
224
  # @option options [String] :content_md5
225
- # The base64-encoded 128-bit MD5 digest of the data. This header must be
226
- # used as a message integrity check to verify that the request body was
227
- # not corrupted in transit. For more information, go to [RFC 1864.][1]
225
+ # The Base64 encoded 128-bit `MD5` digest of the data. This header must
226
+ # be used as a message integrity check to verify that the request body
227
+ # was not corrupted in transit. For more information, go to [RFC
228
+ # 1864.][1]
228
229
  #
229
230
  # For requests made using the Amazon Web Services Command Line Interface
230
231
  # (CLI) or Amazon Web Services SDKs, this field is calculated
@@ -234,7 +235,7 @@ module Aws::S3
234
235
  #
235
236
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
236
237
  # @option options [String] :checksum_algorithm
237
- # Indicates the algorithm used to create the checksum for the object
238
+ # Indicates the algorithm used to create the checksum for the request
238
239
  # when you use the SDK. This header will not provide any additional
239
240
  # functionality if you don't use the SDK. When you send this header,
240
241
  # there must be a corresponding `x-amz-checksum` or `x-amz-trailer`