aws-sdk-s3 1.147.0 → 1.167.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 +123 -2
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/access_grants_credentials.rb +57 -0
  5. data/lib/aws-sdk-s3/access_grants_credentials_provider.rb +250 -0
  6. data/lib/aws-sdk-s3/bucket.rb +224 -81
  7. data/lib/aws-sdk-s3/bucket_acl.rb +3 -3
  8. data/lib/aws-sdk-s3/bucket_cors.rb +4 -4
  9. data/lib/aws-sdk-s3/bucket_lifecycle.rb +4 -4
  10. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +42 -5
  11. data/lib/aws-sdk-s3/bucket_logging.rb +3 -3
  12. data/lib/aws-sdk-s3/bucket_notification.rb +3 -3
  13. data/lib/aws-sdk-s3/bucket_policy.rb +8 -8
  14. data/lib/aws-sdk-s3/bucket_region_cache.rb +9 -5
  15. data/lib/aws-sdk-s3/bucket_request_payment.rb +3 -3
  16. data/lib/aws-sdk-s3/bucket_tagging.rb +4 -4
  17. data/lib/aws-sdk-s3/bucket_versioning.rb +5 -5
  18. data/lib/aws-sdk-s3/bucket_website.rb +4 -4
  19. data/lib/aws-sdk-s3/client.rb +1744 -695
  20. data/lib/aws-sdk-s3/client_api.rb +44 -4
  21. data/lib/aws-sdk-s3/customizations/bucket.rb +1 -1
  22. data/lib/aws-sdk-s3/customizations/errors.rb +15 -2
  23. data/lib/aws-sdk-s3/customizations/object.rb +11 -5
  24. data/lib/aws-sdk-s3/customizations/object_summary.rb +5 -0
  25. data/lib/aws-sdk-s3/customizations/object_version.rb +13 -0
  26. data/lib/aws-sdk-s3/customizations.rb +24 -35
  27. data/lib/aws-sdk-s3/encryption/client.rb +2 -2
  28. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +2 -2
  29. data/lib/aws-sdk-s3/encryptionV2/client.rb +2 -2
  30. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +2 -2
  31. data/lib/aws-sdk-s3/endpoint_parameters.rb +8 -0
  32. data/lib/aws-sdk-s3/endpoint_provider.rb +1 -0
  33. data/lib/aws-sdk-s3/endpoints.rb +199 -397
  34. data/lib/aws-sdk-s3/errors.rb +3 -0
  35. data/lib/aws-sdk-s3/express_credentials_provider.rb +27 -4
  36. data/lib/aws-sdk-s3/file_downloader.rb +1 -1
  37. data/lib/aws-sdk-s3/file_uploader.rb +1 -1
  38. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +1 -1
  39. data/lib/aws-sdk-s3/multipart_upload.rb +31 -8
  40. data/lib/aws-sdk-s3/multipart_upload_part.rb +11 -11
  41. data/lib/aws-sdk-s3/object.rb +411 -151
  42. data/lib/aws-sdk-s3/object_acl.rb +3 -3
  43. data/lib/aws-sdk-s3/object_copier.rb +1 -1
  44. data/lib/aws-sdk-s3/object_multipart_copier.rb +10 -8
  45. data/lib/aws-sdk-s3/object_summary.rb +373 -127
  46. data/lib/aws-sdk-s3/object_version.rb +53 -13
  47. data/lib/aws-sdk-s3/plugins/access_grants.rb +178 -0
  48. data/lib/aws-sdk-s3/plugins/endpoints.rb +23 -8
  49. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +8 -2
  50. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +53 -16
  51. data/lib/aws-sdk-s3/plugins/s3_signer.rb +7 -2
  52. data/lib/aws-sdk-s3/presigner.rb +1 -0
  53. data/lib/aws-sdk-s3/resource.rb +12 -10
  54. data/lib/aws-sdk-s3/types.rb +1082 -399
  55. data/lib/aws-sdk-s3.rb +35 -31
  56. data/sig/bucket.rbs +1 -0
  57. data/sig/bucket_lifecycle_configuration.rbs +7 -3
  58. data/sig/client.rbs +48 -5
  59. data/sig/customizations/bucket.rbs +19 -0
  60. data/sig/customizations/object.rbs +38 -0
  61. data/sig/customizations/object_summary.rbs +35 -0
  62. data/sig/multipart_upload.rbs +1 -0
  63. data/sig/object.rbs +7 -0
  64. data/sig/object_summary.rbs +1 -0
  65. data/sig/object_version.rbs +6 -0
  66. data/sig/resource.rbs +7 -1
  67. data/sig/types.rbs +32 -2
  68. data/sig/waiters.rbs +12 -0
  69. metadata +13 -7
  70. data/lib/aws-sdk-s3/express_credentials_cache.rb +0 -30
@@ -634,7 +634,7 @@ module Aws::S3
634
634
  # Contains all the possible checksum or digest values for an object.
635
635
  #
636
636
  # @!attribute [rw] checksum_crc32
637
- # The base64-encoded, 32-bit CRC32 checksum of the object. This will
637
+ # The base64-encoded, 32-bit CRC-32 checksum of the object. This will
638
638
  # only be present if it was uploaded with the object. When you use an
639
639
  # API operation on an object that was uploaded using multipart
640
640
  # uploads, this value may not be a direct checksum value of the full
@@ -649,7 +649,7 @@ module Aws::S3
649
649
  # @return [String]
650
650
  #
651
651
  # @!attribute [rw] checksum_crc32c
652
- # The base64-encoded, 32-bit CRC32C checksum of the object. This will
652
+ # The base64-encoded, 32-bit CRC-32C checksum of the object. This will
653
653
  # only be present if it was uploaded with the object. When you use an
654
654
  # API operation on an object that was uploaded using multipart
655
655
  # uploads, this value may not be a direct checksum value of the full
@@ -803,7 +803,7 @@ module Aws::S3
803
803
  # @return [String]
804
804
  #
805
805
  # @!attribute [rw] checksum_crc32
806
- # The base64-encoded, 32-bit CRC32 checksum of the object. This will
806
+ # The base64-encoded, 32-bit CRC-32 checksum of the object. This will
807
807
  # only be present if it was uploaded with the object. When you use an
808
808
  # API operation on an object that was uploaded using multipart
809
809
  # uploads, this value may not be a direct checksum value of the full
@@ -818,7 +818,7 @@ module Aws::S3
818
818
  # @return [String]
819
819
  #
820
820
  # @!attribute [rw] checksum_crc32c
821
- # The base64-encoded, 32-bit CRC32C checksum of the object. This will
821
+ # The base64-encoded, 32-bit CRC-32C checksum of the object. This will
822
822
  # only be present if it was uploaded with the object. When you use an
823
823
  # API operation on an object that was uploaded using multipart
824
824
  # uploads, this value may not be a direct checksum value of the full
@@ -865,11 +865,6 @@ module Aws::S3
865
865
  # @!attribute [rw] server_side_encryption
866
866
  # The server-side encryption algorithm used when storing this object
867
867
  # in Amazon S3 (for example, `AES256`, `aws:kms`).
868
- #
869
- # <note markdown="1"> For directory buckets, only server-side encryption with Amazon S3
870
- # managed keys (SSE-S3) (`AES256`) is supported.
871
- #
872
- # </note>
873
868
  # @return [String]
874
869
  #
875
870
  # @!attribute [rw] version_id
@@ -882,23 +877,14 @@ module Aws::S3
882
877
  # @return [String]
883
878
  #
884
879
  # @!attribute [rw] ssekms_key_id
885
- # If present, indicates the ID of the Key Management Service (KMS)
886
- # symmetric encryption customer managed key that was used for the
887
- # object.
888
- #
889
- # <note markdown="1"> This functionality is not supported for directory buckets.
890
- #
891
- # </note>
880
+ # If present, indicates the ID of the KMS key that was used for object
881
+ # encryption.
892
882
  # @return [String]
893
883
  #
894
884
  # @!attribute [rw] bucket_key_enabled
895
885
  # Indicates whether the multipart upload uses an S3 Bucket Key for
896
886
  # server-side encryption with Key Management Service (KMS) keys
897
887
  # (SSE-KMS).
898
- #
899
- # <note markdown="1"> This functionality is not supported for directory buckets.
900
- #
901
- # </note>
902
888
  # @return [Boolean]
903
889
  #
904
890
  # @!attribute [rw] request_charged
@@ -991,7 +977,7 @@ module Aws::S3
991
977
  # @!attribute [rw] checksum_crc32
992
978
  # This header can be used as a data integrity check to verify that the
993
979
  # data received is the same data that was originally sent. This header
994
- # specifies the base64-encoded, 32-bit CRC32 checksum of the object.
980
+ # specifies the base64-encoded, 32-bit CRC-32 checksum of the object.
995
981
  # For more information, see [Checking object integrity][1] in the
996
982
  # *Amazon S3 User Guide*.
997
983
  #
@@ -1003,7 +989,7 @@ module Aws::S3
1003
989
  # @!attribute [rw] checksum_crc32c
1004
990
  # This header can be used as a data integrity check to verify that the
1005
991
  # data received is the same data that was originally sent. This header
1006
- # specifies the base64-encoded, 32-bit CRC32C checksum of the object.
992
+ # specifies the base64-encoded, 32-bit CRC-32C checksum of the object.
1007
993
  # For more information, see [Checking object integrity][1] in the
1008
994
  # *Amazon S3 User Guide*.
1009
995
  #
@@ -1061,6 +1047,27 @@ module Aws::S3
1061
1047
  # denied).
1062
1048
  # @return [String]
1063
1049
  #
1050
+ # @!attribute [rw] if_none_match
1051
+ # Uploads the object only if the object key name does not already
1052
+ # exist in the bucket specified. Otherwise, Amazon S3 returns a `412
1053
+ # Precondition Failed` error.
1054
+ #
1055
+ # If a conflicting operation occurs during the upload S3 returns a
1056
+ # `409 ConditionalRequestConflict` response. On a 409 failure you
1057
+ # should re-initiate the multipart upload with `CreateMultipartUpload`
1058
+ # and re-upload each part.
1059
+ #
1060
+ # Expects the '*' (asterisk) character.
1061
+ #
1062
+ # For more information about conditional requests, see [RFC 7232][1],
1063
+ # or [Conditional requests][2] in the *Amazon S3 User Guide*.
1064
+ #
1065
+ #
1066
+ #
1067
+ # [1]: https://tools.ietf.org/html/rfc7232
1068
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
1069
+ # @return [String]
1070
+ #
1064
1071
  # @!attribute [rw] sse_customer_algorithm
1065
1072
  # The server-side encryption (SSE) algorithm used to encrypt the
1066
1073
  # object. This parameter is required only when the object was created
@@ -1120,6 +1127,7 @@ module Aws::S3
1120
1127
  :checksum_sha256,
1121
1128
  :request_payer,
1122
1129
  :expected_bucket_owner,
1130
+ :if_none_match,
1123
1131
  :sse_customer_algorithm,
1124
1132
  :sse_customer_key,
1125
1133
  :sse_customer_key_md5)
@@ -1151,7 +1159,7 @@ module Aws::S3
1151
1159
  # @return [String]
1152
1160
  #
1153
1161
  # @!attribute [rw] checksum_crc32
1154
- # The base64-encoded, 32-bit CRC32 checksum of the object. This will
1162
+ # The base64-encoded, 32-bit CRC-32 checksum of the object. This will
1155
1163
  # only be present if it was uploaded with the object. When you use an
1156
1164
  # API operation on an object that was uploaded using multipart
1157
1165
  # uploads, this value may not be a direct checksum value of the full
@@ -1166,7 +1174,7 @@ module Aws::S3
1166
1174
  # @return [String]
1167
1175
  #
1168
1176
  # @!attribute [rw] checksum_crc32c
1169
- # The base64-encoded, 32-bit CRC32C checksum of the object. This will
1177
+ # The base64-encoded, 32-bit CRC-32C checksum of the object. This will
1170
1178
  # only be present if it was uploaded with the object. When you use an
1171
1179
  # API operation on an object that was uploaded using multipart
1172
1180
  # uploads, this value may not be a direct checksum value of the full
@@ -1326,11 +1334,6 @@ module Aws::S3
1326
1334
  # @!attribute [rw] server_side_encryption
1327
1335
  # The server-side encryption algorithm used when you store this object
1328
1336
  # in Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
1329
- #
1330
- # <note markdown="1"> For directory buckets, only server-side encryption with Amazon S3
1331
- # managed keys (SSE-S3) (`AES256`) is supported.
1332
- #
1333
- # </note>
1334
1337
  # @return [String]
1335
1338
  #
1336
1339
  # @!attribute [rw] sse_customer_algorithm
@@ -1355,13 +1358,8 @@ module Aws::S3
1355
1358
  # @return [String]
1356
1359
  #
1357
1360
  # @!attribute [rw] ssekms_key_id
1358
- # If present, indicates the ID of the Key Management Service (KMS)
1359
- # symmetric encryption customer managed key that was used for the
1360
- # object.
1361
- #
1362
- # <note markdown="1"> This functionality is not supported for directory buckets.
1363
- #
1364
- # </note>
1361
+ # If present, indicates the ID of the KMS key that was used for object
1362
+ # encryption.
1365
1363
  # @return [String]
1366
1364
  #
1367
1365
  # @!attribute [rw] ssekms_encryption_context
@@ -1369,20 +1367,12 @@ module Aws::S3
1369
1367
  # to use for object encryption. The value of this header is a
1370
1368
  # base64-encoded UTF-8 string holding JSON with the encryption context
1371
1369
  # key-value pairs.
1372
- #
1373
- # <note markdown="1"> This functionality is not supported for directory buckets.
1374
- #
1375
- # </note>
1376
1370
  # @return [String]
1377
1371
  #
1378
1372
  # @!attribute [rw] bucket_key_enabled
1379
1373
  # Indicates whether the copied object uses an S3 Bucket Key for
1380
1374
  # server-side encryption with Key Management Service (KMS) keys
1381
1375
  # (SSE-KMS).
1382
- #
1383
- # <note markdown="1"> This functionality is not supported for directory buckets.
1384
- #
1385
- # </note>
1386
1376
  # @return [Boolean]
1387
1377
  #
1388
1378
  # @!attribute [rw] request_charged
@@ -1810,9 +1800,8 @@ module Aws::S3
1810
1800
  #
1811
1801
  # @!attribute [rw] server_side_encryption
1812
1802
  # The server-side encryption algorithm used when storing this object
1813
- # in Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
1814
- # Unrecognized or unsupported values won’t write a destination object
1815
- # and will receive a `400 Bad Request` response.
1803
+ # in Amazon S3. Unrecognized or unsupported values won’t write a
1804
+ # destination object and will receive a `400 Bad Request` response.
1816
1805
  #
1817
1806
  # Amazon S3 automatically encrypts all new objects that are copied to
1818
1807
  # an S3 bucket. When copying an object, if you don't specify
@@ -1821,21 +1810,8 @@ module Aws::S3
1821
1810
  # of the destination bucket. By default, all buckets have a base level
1822
1811
  # of encryption configuration that uses server-side encryption with
1823
1812
  # Amazon S3 managed keys (SSE-S3). If the destination bucket has a
1824
- # default encryption configuration that uses server-side encryption
1825
- # with Key Management Service (KMS) keys (SSE-KMS), dual-layer
1826
- # server-side encryption with Amazon Web Services KMS keys (DSSE-KMS),
1827
- # or server-side encryption with customer-provided encryption keys
1828
- # (SSE-C), Amazon S3 uses the corresponding KMS key, or a
1829
- # customer-provided key to encrypt the target object copy.
1830
- #
1831
- # When you perform a `CopyObject` operation, if you want to use a
1832
- # different type of encryption setting for the target object, you can
1833
- # specify appropriate encryption-related headers to encrypt the target
1834
- # object with an Amazon S3 managed key, a KMS key, or a
1835
- # customer-provided key. If the encryption setting in your request is
1836
- # different from the default encryption configuration of the
1837
- # destination bucket, the encryption setting in your request takes
1838
- # precedence.
1813
+ # different default encryption configuration, Amazon S3 uses the
1814
+ # corresponding encryption key to encrypt the target object copy.
1839
1815
  #
1840
1816
  # With server-side encryption, Amazon S3 encrypts your data as it
1841
1817
  # writes your data to disks in its data centers and decrypts the data
@@ -1843,14 +1819,63 @@ module Aws::S3
1843
1819
  # encryption, see [Using Server-Side Encryption][1] in the *Amazon S3
1844
1820
  # User Guide*.
1845
1821
  #
1846
- # <note markdown="1"> For directory buckets, only server-side encryption with Amazon S3
1847
- # managed keys (SSE-S3) (`AES256`) is supported.
1848
- #
1849
- # </note>
1822
+ # <b>General purpose buckets </b>
1823
+ #
1824
+ # * For general purpose buckets, there are the following supported
1825
+ # options for server-side encryption: server-side encryption with
1826
+ # Key Management Service (KMS) keys (SSE-KMS), dual-layer
1827
+ # server-side encryption with Amazon Web Services KMS keys
1828
+ # (DSSE-KMS), and server-side encryption with customer-provided
1829
+ # encryption keys (SSE-C). Amazon S3 uses the corresponding KMS key,
1830
+ # or a customer-provided key to encrypt the target object copy.
1831
+ #
1832
+ # * When you perform a `CopyObject` operation, if you want to use a
1833
+ # different type of encryption setting for the target object, you
1834
+ # can specify appropriate encryption-related headers to encrypt the
1835
+ # target object with an Amazon S3 managed key, a KMS key, or a
1836
+ # customer-provided key. If the encryption setting in your request
1837
+ # is different from the default encryption configuration of the
1838
+ # destination bucket, the encryption setting in your request takes
1839
+ # precedence.
1840
+ #
1841
+ # <b>Directory buckets </b>
1842
+ #
1843
+ # * For directory buckets, there are only two supported options for
1844
+ # server-side encryption: server-side encryption with Amazon S3
1845
+ # managed keys (SSE-S3) (`AES256`) and server-side encryption with
1846
+ # KMS keys (SSE-KMS) (`aws:kms`). We recommend that the bucket's
1847
+ # default encryption uses the desired encryption configuration and
1848
+ # you don't override the bucket default encryption in your
1849
+ # `CreateSession` requests or `PUT` object requests. Then, new
1850
+ # objects are automatically encrypted with the desired encryption
1851
+ # settings. For more information, see [Protecting data with
1852
+ # server-side encryption][2] in the *Amazon S3 User Guide*. For more
1853
+ # information about the encryption overriding behaviors in directory
1854
+ # buckets, see [Specifying server-side encryption with KMS for new
1855
+ # object uploads][3].
1856
+ #
1857
+ # * To encrypt new object copies to a directory bucket with SSE-KMS,
1858
+ # we recommend you specify SSE-KMS as the directory bucket's
1859
+ # default encryption configuration with a KMS key (specifically, a
1860
+ # [customer managed key][4]). [Amazon Web Services managed key][5]
1861
+ # (`aws/s3`) isn't supported. Your SSE-KMS configuration can only
1862
+ # support 1 [customer managed key][4] per directory bucket for the
1863
+ # lifetime of the bucket. After you specify a customer managed key
1864
+ # for SSE-KMS, you can't override the customer managed key for the
1865
+ # bucket's SSE-KMS configuration. Then, when you perform a
1866
+ # `CopyObject` operation and want to specify server-side encryption
1867
+ # settings for new object copies with SSE-KMS in the
1868
+ # encryption-related request headers, you must ensure the encryption
1869
+ # key is the same customer managed key that you specified for the
1870
+ # directory bucket's default encryption configuration.
1850
1871
  #
1851
1872
  #
1852
1873
  #
1853
1874
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
1875
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
1876
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
1877
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
1878
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
1854
1879
  # @return [String]
1855
1880
  #
1856
1881
  # @!attribute [rw] storage_class
@@ -1956,7 +1981,7 @@ module Aws::S3
1956
1981
  # @return [String]
1957
1982
  #
1958
1983
  # @!attribute [rw] ssekms_key_id
1959
- # Specifies the KMS ID (Key ID, Key ARN, or Key Alias) to use for
1984
+ # Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for
1960
1985
  # object encryption. All GET and PUT requests for an object protected
1961
1986
  # by KMS will fail if they're not made via SSL or using SigV4. For
1962
1987
  # information about configuring any of the officially supported Amazon
@@ -1964,27 +1989,45 @@ module Aws::S3
1964
1989
  # Signature Version in Request Authentication][1] in the *Amazon S3
1965
1990
  # User Guide*.
1966
1991
  #
1967
- # <note markdown="1"> This functionality is not supported when the destination bucket is a
1968
- # directory bucket.
1969
- #
1970
- # </note>
1992
+ # **Directory buckets** - If you specify
1993
+ # `x-amz-server-side-encryption` with `aws:kms`, you must specify the
1994
+ # ` x-amz-server-side-encryption-aws-kms-key-id` header with the ID
1995
+ # (Key ID or Key ARN) of the KMS symmetric encryption customer managed
1996
+ # key to use. Otherwise, you get an HTTP `400 Bad Request` error. Only
1997
+ # use the key ID or key ARN. The key alias format of the KMS key
1998
+ # isn't supported. Your SSE-KMS configuration can only support 1
1999
+ # [customer managed key][2] per directory bucket for the lifetime of
2000
+ # the bucket. [Amazon Web Services managed key][3] (`aws/s3`) isn't
2001
+ # supported.
1971
2002
  #
1972
2003
  #
1973
2004
  #
1974
2005
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
2006
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
2007
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
1975
2008
  # @return [String]
1976
2009
  #
1977
2010
  # @!attribute [rw] ssekms_encryption_context
1978
- # Specifies the Amazon Web Services KMS Encryption Context to use for
1979
- # object encryption. The value of this header is a base64-encoded
1980
- # UTF-8 string holding JSON with the encryption context key-value
1981
- # pairs. This value must be explicitly added to specify encryption
1982
- # context for `CopyObject` requests.
2011
+ # Specifies the Amazon Web Services KMS Encryption Context as an
2012
+ # additional encryption context to use for the destination object
2013
+ # encryption. The value of this header is a base64-encoded UTF-8
2014
+ # string holding JSON with the encryption context key-value pairs.
1983
2015
  #
1984
- # <note markdown="1"> This functionality is not supported when the destination bucket is a
1985
- # directory bucket.
2016
+ # **General purpose buckets** - This value must be explicitly added to
2017
+ # specify encryption context for `CopyObject` requests if you want an
2018
+ # additional encryption context for your destination object. The
2019
+ # additional encryption context of the source object won't be copied
2020
+ # to the destination object. For more information, see [Encryption
2021
+ # context][1] in the *Amazon S3 User Guide*.
1986
2022
  #
1987
- # </note>
2023
+ # **Directory buckets** - You can optionally provide an explicit
2024
+ # encryption context value. The value must match the default
2025
+ # encryption context - the bucket Amazon Resource Name (ARN). An
2026
+ # additional encryption context value is not supported.
2027
+ #
2028
+ #
2029
+ #
2030
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context
1988
2031
  # @return [String]
1989
2032
  #
1990
2033
  # @!attribute [rw] bucket_key_enabled
@@ -2001,14 +2044,19 @@ module Aws::S3
2001
2044
  # For more information, see [Amazon S3 Bucket Keys][1] in the *Amazon
2002
2045
  # S3 User Guide*.
2003
2046
  #
2004
- # <note markdown="1"> This functionality is not supported when the destination bucket is a
2005
- # directory bucket.
2047
+ # <note markdown="1"> **Directory buckets** - S3 Bucket Keys aren't supported, when you
2048
+ # copy SSE-KMS encrypted objects from general purpose buckets to
2049
+ # directory buckets, from directory buckets to general purpose
2050
+ # buckets, or between directory buckets, through [CopyObject][2]. In
2051
+ # this case, Amazon S3 makes a call to KMS every time a copy request
2052
+ # is made for a KMS-encrypted object.
2006
2053
  #
2007
2054
  # </note>
2008
2055
  #
2009
2056
  #
2010
2057
  #
2011
2058
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html
2059
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
2012
2060
  # @return [Boolean]
2013
2061
  #
2014
2062
  # @!attribute [rw] copy_source_sse_customer_algorithm
@@ -2225,7 +2273,7 @@ module Aws::S3
2225
2273
  # @return [Time]
2226
2274
  #
2227
2275
  # @!attribute [rw] checksum_crc32
2228
- # The base64-encoded, 32-bit CRC32 checksum of the object. This will
2276
+ # The base64-encoded, 32-bit CRC-32 checksum of the object. This will
2229
2277
  # only be present if it was uploaded with the object. For more
2230
2278
  # information, see [ Checking object integrity][1] in the *Amazon S3
2231
2279
  # User Guide*.
@@ -2236,7 +2284,7 @@ module Aws::S3
2236
2284
  # @return [String]
2237
2285
  #
2238
2286
  # @!attribute [rw] checksum_crc32c
2239
- # The base64-encoded, 32-bit CRC32C checksum of the object. This will
2287
+ # The base64-encoded, 32-bit CRC-32C checksum of the object. This will
2240
2288
  # only be present if it was uploaded with the object. For more
2241
2289
  # information, see [ Checking object integrity][1] in the *Amazon S3
2242
2290
  # User Guide*.
@@ -2292,7 +2340,7 @@ module Aws::S3
2292
2340
  # @return [Time]
2293
2341
  #
2294
2342
  # @!attribute [rw] checksum_crc32
2295
- # The base64-encoded, 32-bit CRC32 checksum of the object. This will
2343
+ # The base64-encoded, 32-bit CRC-32 checksum of the object. This will
2296
2344
  # only be present if it was uploaded with the object. When you use an
2297
2345
  # API operation on an object that was uploaded using multipart
2298
2346
  # uploads, this value may not be a direct checksum value of the full
@@ -2307,7 +2355,7 @@ module Aws::S3
2307
2355
  # @return [String]
2308
2356
  #
2309
2357
  # @!attribute [rw] checksum_crc32c
2310
- # The base64-encoded, 32-bit CRC32C checksum of the object. This will
2358
+ # The base64-encoded, 32-bit CRC-32C checksum of the object. This will
2311
2359
  # only be present if it was uploaded with the object. When you use an
2312
2360
  # API operation on an object that was uploaded using multipart
2313
2361
  # uploads, this value may not be a direct checksum value of the full
@@ -2620,11 +2668,6 @@ module Aws::S3
2620
2668
  # @!attribute [rw] server_side_encryption
2621
2669
  # The server-side encryption algorithm used when you store this object
2622
2670
  # in Amazon S3 (for example, `AES256`, `aws:kms`).
2623
- #
2624
- # <note markdown="1"> For directory buckets, only server-side encryption with Amazon S3
2625
- # managed keys (SSE-S3) (`AES256`) is supported.
2626
- #
2627
- # </note>
2628
2671
  # @return [String]
2629
2672
  #
2630
2673
  # @!attribute [rw] sse_customer_algorithm
@@ -2649,34 +2692,21 @@ module Aws::S3
2649
2692
  # @return [String]
2650
2693
  #
2651
2694
  # @!attribute [rw] ssekms_key_id
2652
- # If present, indicates the ID of the Key Management Service (KMS)
2653
- # symmetric encryption customer managed key that was used for the
2654
- # object.
2655
- #
2656
- # <note markdown="1"> This functionality is not supported for directory buckets.
2657
- #
2658
- # </note>
2695
+ # If present, indicates the ID of the KMS key that was used for object
2696
+ # encryption.
2659
2697
  # @return [String]
2660
2698
  #
2661
2699
  # @!attribute [rw] ssekms_encryption_context
2662
2700
  # If present, indicates the Amazon Web Services KMS Encryption Context
2663
2701
  # to use for object encryption. The value of this header is a
2664
- # base64-encoded UTF-8 string holding JSON with the encryption context
2665
- # key-value pairs.
2666
- #
2667
- # <note markdown="1"> This functionality is not supported for directory buckets.
2668
- #
2669
- # </note>
2702
+ # Base64-encoded string of a UTF-8 encoded JSON, which contains the
2703
+ # encryption context as key-value pairs.
2670
2704
  # @return [String]
2671
2705
  #
2672
2706
  # @!attribute [rw] bucket_key_enabled
2673
2707
  # Indicates whether the multipart upload uses an S3 Bucket Key for
2674
2708
  # server-side encryption with Key Management Service (KMS) keys
2675
2709
  # (SSE-KMS).
2676
- #
2677
- # <note markdown="1"> This functionality is not supported for directory buckets.
2678
- #
2679
- # </note>
2680
2710
  # @return [Boolean]
2681
2711
  #
2682
2712
  # @!attribute [rw] request_charged
@@ -3088,10 +3118,53 @@ module Aws::S3
3088
3118
  # The server-side encryption algorithm used when you store this object
3089
3119
  # in Amazon S3 (for example, `AES256`, `aws:kms`).
3090
3120
  #
3091
- # <note markdown="1"> For directory buckets, only server-side encryption with Amazon S3
3092
- # managed keys (SSE-S3) (`AES256`) is supported.
3121
+ # * <b>Directory buckets </b> - For directory buckets, there are only
3122
+ # two supported options for server-side encryption: server-side
3123
+ # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
3124
+ # server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We
3125
+ # recommend that the bucket's default encryption uses the desired
3126
+ # encryption configuration and you don't override the bucket
3127
+ # default encryption in your `CreateSession` requests or `PUT`
3128
+ # object requests. Then, new objects are automatically encrypted
3129
+ # with the desired encryption settings. For more information, see
3130
+ # [Protecting data with server-side encryption][1] in the *Amazon S3
3131
+ # User Guide*. For more information about the encryption overriding
3132
+ # behaviors in directory buckets, see [Specifying server-side
3133
+ # encryption with KMS for new object uploads][2].
3134
+ #
3135
+ # In the Zonal endpoint API calls (except [CopyObject][3] and
3136
+ # [UploadPartCopy][4]) using the REST API, the encryption request
3137
+ # headers must match the encryption settings that are specified in
3138
+ # the `CreateSession` request. You can't override the values of the
3139
+ # encryption settings (`x-amz-server-side-encryption`,
3140
+ # `x-amz-server-side-encryption-aws-kms-key-id`,
3141
+ # `x-amz-server-side-encryption-context`, and
3142
+ # `x-amz-server-side-encryption-bucket-key-enabled`) that are
3143
+ # specified in the `CreateSession` request. You don't need to
3144
+ # explicitly specify these encryption settings values in Zonal
3145
+ # endpoint API calls, and Amazon S3 will use the encryption settings
3146
+ # values from the `CreateSession` request to protect new objects in
3147
+ # the directory bucket.
3148
+ #
3149
+ # <note markdown="1"> When you use the CLI or the Amazon Web Services SDKs, for
3150
+ # `CreateSession`, the session token refreshes automatically to
3151
+ # avoid service interruptions when a session expires. The CLI or the
3152
+ # Amazon Web Services SDKs use the bucket's default encryption
3153
+ # configuration for the `CreateSession` request. It's not supported
3154
+ # to override the encryption settings values in the `CreateSession`
3155
+ # request. So in the Zonal endpoint API calls (except
3156
+ # [CopyObject][3] and [UploadPartCopy][4]), the encryption request
3157
+ # headers must match the default encryption configuration of the
3158
+ # directory bucket.
3093
3159
  #
3094
- # </note>
3160
+ # </note>
3161
+ #
3162
+ #
3163
+ #
3164
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
3165
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
3166
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
3167
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
3095
3168
  # @return [String]
3096
3169
  #
3097
3170
  # @!attribute [rw] storage_class
@@ -3157,37 +3230,75 @@ module Aws::S3
3157
3230
  # @return [String]
3158
3231
  #
3159
3232
  # @!attribute [rw] ssekms_key_id
3160
- # Specifies the ID (Key ID, Key ARN, or Key Alias) of the symmetric
3161
- # encryption customer managed key to use for object encryption.
3233
+ # Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for
3234
+ # object encryption. If the KMS key doesn't exist in the same account
3235
+ # that's issuing the command, you must use the full Key ARN not the
3236
+ # Key ID.
3237
+ #
3238
+ # **General purpose buckets** - If you specify
3239
+ # `x-amz-server-side-encryption` with `aws:kms` or `aws:kms:dsse`,
3240
+ # this header specifies the ID (Key ID, Key ARN, or Key Alias) of the
3241
+ # KMS key to use. If you specify
3242
+ # `x-amz-server-side-encryption:aws:kms` or
3243
+ # `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide
3244
+ # `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
3245
+ # Amazon Web Services managed key (`aws/s3`) to protect the data.
3162
3246
  #
3163
- # <note markdown="1"> This functionality is not supported for directory buckets.
3247
+ # **Directory buckets** - If you specify
3248
+ # `x-amz-server-side-encryption` with `aws:kms`, you must specify the
3249
+ # ` x-amz-server-side-encryption-aws-kms-key-id` header with the ID
3250
+ # (Key ID or Key ARN) of the KMS symmetric encryption customer managed
3251
+ # key to use. Otherwise, you get an HTTP `400 Bad Request` error. Only
3252
+ # use the key ID or key ARN. The key alias format of the KMS key
3253
+ # isn't supported. Your SSE-KMS configuration can only support 1
3254
+ # [customer managed key][1] per directory bucket for the lifetime of
3255
+ # the bucket. [Amazon Web Services managed key][2] (`aws/s3`) isn't
3256
+ # supported.
3164
3257
  #
3165
- # </note>
3258
+ #
3259
+ #
3260
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
3261
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
3166
3262
  # @return [String]
3167
3263
  #
3168
3264
  # @!attribute [rw] ssekms_encryption_context
3169
3265
  # Specifies the Amazon Web Services KMS Encryption Context to use for
3170
- # object encryption. The value of this header is a base64-encoded
3171
- # UTF-8 string holding JSON with the encryption context key-value
3172
- # pairs.
3266
+ # object encryption. The value of this header is a Base64-encoded
3267
+ # string of a UTF-8 encoded JSON, which contains the encryption
3268
+ # context as key-value pairs.
3173
3269
  #
3174
- # <note markdown="1"> This functionality is not supported for directory buckets.
3175
- #
3176
- # </note>
3270
+ # **Directory buckets** - You can optionally provide an explicit
3271
+ # encryption context value. The value must match the default
3272
+ # encryption context - the bucket Amazon Resource Name (ARN). An
3273
+ # additional encryption context value is not supported.
3177
3274
  # @return [String]
3178
3275
  #
3179
3276
  # @!attribute [rw] bucket_key_enabled
3180
3277
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
3181
3278
  # encryption with server-side encryption using Key Management Service
3182
- # (KMS) keys (SSE-KMS). Setting this header to `true` causes Amazon S3
3183
- # to use an S3 Bucket Key for object encryption with SSE-KMS.
3279
+ # (KMS) keys (SSE-KMS).
3184
3280
  #
3185
- # Specifying this header with an object action doesn’t affect
3186
- # bucket-level settings for S3 Bucket Key.
3281
+ # **General purpose buckets** - Setting this header to `true` causes
3282
+ # Amazon S3 to use an S3 Bucket Key for object encryption with
3283
+ # SSE-KMS. Also, specifying this header with a PUT action doesn't
3284
+ # affect bucket-level settings for S3 Bucket Key.
3187
3285
  #
3188
- # <note markdown="1"> This functionality is not supported for directory buckets.
3286
+ # **Directory buckets** - S3 Bucket Keys are always enabled for `GET`
3287
+ # and `PUT` operations in a directory bucket and can’t be disabled. S3
3288
+ # Bucket Keys aren't supported, when you copy SSE-KMS encrypted
3289
+ # objects from general purpose buckets to directory buckets, from
3290
+ # directory buckets to general purpose buckets, or between directory
3291
+ # buckets, through [CopyObject][1], [UploadPartCopy][2], [the Copy
3292
+ # operation in Batch Operations][3], or [the import jobs][4]. In this
3293
+ # case, Amazon S3 makes a call to KMS every time a copy request is
3294
+ # made for a KMS-encrypted object.
3189
3295
  #
3190
- # </note>
3296
+ #
3297
+ #
3298
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
3299
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
3300
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
3301
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
3191
3302
  # @return [Boolean]
3192
3303
  #
3193
3304
  # @!attribute [rw] request_payer
@@ -3297,16 +3408,45 @@ module Aws::S3
3297
3408
  include Aws::Structure
3298
3409
  end
3299
3410
 
3411
+ # @!attribute [rw] server_side_encryption
3412
+ # The server-side encryption algorithm used when you store objects in
3413
+ # the directory bucket.
3414
+ # @return [String]
3415
+ #
3416
+ # @!attribute [rw] ssekms_key_id
3417
+ # If you specify `x-amz-server-side-encryption` with `aws:kms`, this
3418
+ # header indicates the ID of the KMS symmetric encryption customer
3419
+ # managed key that was used for object encryption.
3420
+ # @return [String]
3421
+ #
3422
+ # @!attribute [rw] ssekms_encryption_context
3423
+ # If present, indicates the Amazon Web Services KMS Encryption Context
3424
+ # to use for object encryption. The value of this header is a
3425
+ # Base64-encoded string of a UTF-8 encoded JSON, which contains the
3426
+ # encryption context as key-value pairs. This value is stored as
3427
+ # object metadata and automatically gets passed on to Amazon Web
3428
+ # Services KMS for future `GetObject` operations on this object.
3429
+ # @return [String]
3430
+ #
3431
+ # @!attribute [rw] bucket_key_enabled
3432
+ # Indicates whether to use an S3 Bucket Key for server-side encryption
3433
+ # with KMS keys (SSE-KMS).
3434
+ # @return [Boolean]
3435
+ #
3300
3436
  # @!attribute [rw] credentials
3301
3437
  # The established temporary security credentials for the created
3302
- # session..
3438
+ # session.
3303
3439
  # @return [Types::SessionCredentials]
3304
3440
  #
3305
3441
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateSessionOutput AWS API Documentation
3306
3442
  #
3307
3443
  class CreateSessionOutput < Struct.new(
3444
+ :server_side_encryption,
3445
+ :ssekms_key_id,
3446
+ :ssekms_encryption_context,
3447
+ :bucket_key_enabled,
3308
3448
  :credentials)
3309
- SENSITIVE = []
3449
+ SENSITIVE = [:ssekms_key_id, :ssekms_encryption_context]
3310
3450
  include Aws::Structure
3311
3451
  end
3312
3452
 
@@ -3314,27 +3454,114 @@ module Aws::S3
3314
3454
  # Specifies the mode of the session that will be created, either
3315
3455
  # `ReadWrite` or `ReadOnly`. By default, a `ReadWrite` session is
3316
3456
  # created. A `ReadWrite` session is capable of executing all the Zonal
3317
- # endpoint APIs on a directory bucket. A `ReadOnly` session is
3318
- # constrained to execute the following Zonal endpoint APIs:
3319
- # `GetObject`, `HeadObject`, `ListObjectsV2`, `GetObjectAttributes`,
3320
- # `ListParts`, and `ListMultipartUploads`.
3457
+ # endpoint API operations on a directory bucket. A `ReadOnly` session
3458
+ # is constrained to execute the following Zonal endpoint API
3459
+ # operations: `GetObject`, `HeadObject`, `ListObjectsV2`,
3460
+ # `GetObjectAttributes`, `ListParts`, and `ListMultipartUploads`.
3321
3461
  # @return [String]
3322
3462
  #
3323
3463
  # @!attribute [rw] bucket
3324
3464
  # The name of the bucket that you create a session for.
3325
3465
  # @return [String]
3326
3466
  #
3467
+ # @!attribute [rw] server_side_encryption
3468
+ # The server-side encryption algorithm to use when you store objects
3469
+ # in the directory bucket.
3470
+ #
3471
+ # For directory buckets, there are only two supported options for
3472
+ # server-side encryption: server-side encryption with Amazon S3
3473
+ # managed keys (SSE-S3) (`AES256`) and server-side encryption with KMS
3474
+ # keys (SSE-KMS) (`aws:kms`). By default, Amazon S3 encrypts data with
3475
+ # SSE-S3. For more information, see [Protecting data with server-side
3476
+ # encryption][1] in the *Amazon S3 User Guide*.
3477
+ #
3478
+ #
3479
+ #
3480
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
3481
+ # @return [String]
3482
+ #
3483
+ # @!attribute [rw] ssekms_key_id
3484
+ # If you specify `x-amz-server-side-encryption` with `aws:kms`, you
3485
+ # must specify the ` x-amz-server-side-encryption-aws-kms-key-id`
3486
+ # header with the ID (Key ID or Key ARN) of the KMS symmetric
3487
+ # encryption customer managed key to use. Otherwise, you get an HTTP
3488
+ # `400 Bad Request` error. Only use the key ID or key ARN. The key
3489
+ # alias format of the KMS key isn't supported. Also, if the KMS key
3490
+ # doesn't exist in the same account that't issuing the command, you
3491
+ # must use the full Key ARN not the Key ID.
3492
+ #
3493
+ # Your SSE-KMS configuration can only support 1 [customer managed
3494
+ # key][1] per directory bucket for the lifetime of the bucket. [Amazon
3495
+ # Web Services managed key][2] (`aws/s3`) isn't supported.
3496
+ #
3497
+ #
3498
+ #
3499
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
3500
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
3501
+ # @return [String]
3502
+ #
3503
+ # @!attribute [rw] ssekms_encryption_context
3504
+ # Specifies the Amazon Web Services KMS Encryption Context as an
3505
+ # additional encryption context to use for object encryption. The
3506
+ # value of this header is a Base64-encoded string of a UTF-8 encoded
3507
+ # JSON, which contains the encryption context as key-value pairs. This
3508
+ # value is stored as object metadata and automatically gets passed on
3509
+ # to Amazon Web Services KMS for future `GetObject` operations on this
3510
+ # object.
3511
+ #
3512
+ # **General purpose buckets** - This value must be explicitly added
3513
+ # during `CopyObject` operations if you want an additional encryption
3514
+ # context for your object. For more information, see [Encryption
3515
+ # context][1] in the *Amazon S3 User Guide*.
3516
+ #
3517
+ # **Directory buckets** - You can optionally provide an explicit
3518
+ # encryption context value. The value must match the default
3519
+ # encryption context - the bucket Amazon Resource Name (ARN). An
3520
+ # additional encryption context value is not supported.
3521
+ #
3522
+ #
3523
+ #
3524
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context
3525
+ # @return [String]
3526
+ #
3527
+ # @!attribute [rw] bucket_key_enabled
3528
+ # Specifies whether Amazon S3 should use an S3 Bucket Key for object
3529
+ # encryption with server-side encryption using KMS keys (SSE-KMS).
3530
+ #
3531
+ # S3 Bucket Keys are always enabled for `GET` and `PUT` operations in
3532
+ # a directory bucket and can’t be disabled. S3 Bucket Keys aren't
3533
+ # supported, when you copy SSE-KMS encrypted objects from general
3534
+ # purpose buckets to directory buckets, from directory buckets to
3535
+ # general purpose buckets, or between directory buckets, through
3536
+ # [CopyObject][1], [UploadPartCopy][2], [the Copy operation in Batch
3537
+ # Operations][3], or [the import jobs][4]. In this case, Amazon S3
3538
+ # makes a call to KMS every time a copy request is made for a
3539
+ # KMS-encrypted object.
3540
+ #
3541
+ #
3542
+ #
3543
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
3544
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
3545
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
3546
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
3547
+ # @return [Boolean]
3548
+ #
3327
3549
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateSessionRequest AWS API Documentation
3328
3550
  #
3329
3551
  class CreateSessionRequest < Struct.new(
3330
3552
  :session_mode,
3331
- :bucket)
3332
- SENSITIVE = []
3553
+ :bucket,
3554
+ :server_side_encryption,
3555
+ :ssekms_key_id,
3556
+ :ssekms_encryption_context,
3557
+ :bucket_key_enabled)
3558
+ SENSITIVE = [:ssekms_key_id, :ssekms_encryption_context]
3333
3559
  include Aws::Structure
3334
3560
  end
3335
3561
 
3336
- # The container element for specifying the default Object Lock retention
3337
- # settings for new objects placed in the specified bucket.
3562
+ # The container element for optionally specifying the default Object
3563
+ # Lock retention settings for new objects placed in the specified
3564
+ # bucket.
3338
3565
  #
3339
3566
  # <note markdown="1"> * The `DefaultRetention` settings require both a mode and a period.
3340
3567
  #
@@ -3447,6 +3674,20 @@ module Aws::S3
3447
3674
  # @!attribute [rw] bucket
3448
3675
  # The name of the bucket containing the server-side encryption
3449
3676
  # configuration to delete.
3677
+ #
3678
+ # <b>Directory buckets </b> - When you use this operation with a
3679
+ # directory bucket, you must use path-style requests in the format
3680
+ # `https://s3express-control.region_code.amazonaws.com/bucket-name `.
3681
+ # Virtual-hosted-style requests aren't supported. Directory bucket
3682
+ # names must be unique in the chosen Availability Zone. Bucket names
3683
+ # must also follow the format ` bucket_base_name--az_id--x-s3` (for
3684
+ # example, ` DOC-EXAMPLE-BUCKET--usw2-az1--x-s3`). For information
3685
+ # about bucket naming restrictions, see [Directory bucket naming
3686
+ # rules][1] in the *Amazon S3 User Guide*
3687
+ #
3688
+ #
3689
+ #
3690
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html
3450
3691
  # @return [String]
3451
3692
  #
3452
3693
  # @!attribute [rw] expected_bucket_owner
@@ -3454,6 +3695,12 @@ module Aws::S3
3454
3695
  # you provide does not match the actual owner of the bucket, the
3455
3696
  # request fails with the HTTP status code `403 Forbidden` (access
3456
3697
  # denied).
3698
+ #
3699
+ # <note markdown="1"> For directory buckets, this header is not supported in this API
3700
+ # operation. If you specify this header, the request fails with the
3701
+ # HTTP status code `501 Not Implemented`.
3702
+ #
3703
+ # </note>
3457
3704
  # @return [String]
3458
3705
  #
3459
3706
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketEncryptionRequest AWS API Documentation
@@ -4167,13 +4414,13 @@ module Aws::S3
4167
4414
  # For the `x-amz-checksum-algorithm ` header, replace ` algorithm `
4168
4415
  # with the supported algorithm from the following list:
4169
4416
  #
4170
- # * CRC32
4417
+ # * `CRC32`
4171
4418
  #
4172
- # * CRC32C
4419
+ # * `CRC32C`
4173
4420
  #
4174
- # * SHA1
4421
+ # * `SHA1`
4175
4422
  #
4176
- # * SHA256
4423
+ # * `SHA256`
4177
4424
  #
4178
4425
  # For more information, see [Checking object integrity][1] in the
4179
4426
  # *Amazon S3 User Guide*.
@@ -4390,6 +4637,14 @@ module Aws::S3
4390
4637
  # Specifies encryption-related information for an Amazon S3 bucket that
4391
4638
  # is a destination for replicated objects.
4392
4639
  #
4640
+ # <note markdown="1"> If you're specifying a customer managed KMS key, we recommend using a
4641
+ # fully qualified KMS key ARN. If you use a KMS key alias instead, then
4642
+ # KMS resolves the key within the requester’s account. This behavior can
4643
+ # result in data that's encrypted with a KMS key that belongs to the
4644
+ # requester, and not the bucket owner.
4645
+ #
4646
+ # </note>
4647
+ #
4393
4648
  # @!attribute [rw] replica_kms_key_id
4394
4649
  # Specifies the ID (Key ARN or Alias ARN) of the customer managed
4395
4650
  # Amazon Web Services KMS key stored in Amazon Web Services Key
@@ -5295,12 +5550,16 @@ module Aws::S3
5295
5550
  class EventBridgeConfiguration < Aws::EmptyStructure; end
5296
5551
 
5297
5552
  # Optional configuration to replicate existing source bucket objects.
5298
- # For more information, see [Replicating Existing Objects][1] in the
5553
+ #
5554
+ # <note markdown="1"> This parameter is no longer supported. To replicate existing objects,
5555
+ # see [Replicating existing objects with S3 Batch Replication][1] in the
5299
5556
  # *Amazon S3 User Guide*.
5300
5557
  #
5558
+ # </note>
5559
+ #
5301
5560
  #
5302
5561
  #
5303
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-what-is-isnot-replicated.html#existing-object-replication
5562
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-batch-replication-batch.html
5304
5563
  #
5305
5564
  # @!attribute [rw] status
5306
5565
  # Specifies whether Amazon S3 replicates existing source bucket
@@ -5564,6 +5823,20 @@ module Aws::S3
5564
5823
  # @!attribute [rw] bucket
5565
5824
  # The name of the bucket from which the server-side encryption
5566
5825
  # configuration is retrieved.
5826
+ #
5827
+ # <b>Directory buckets </b> - When you use this operation with a
5828
+ # directory bucket, you must use path-style requests in the format
5829
+ # `https://s3express-control.region_code.amazonaws.com/bucket-name `.
5830
+ # Virtual-hosted-style requests aren't supported. Directory bucket
5831
+ # names must be unique in the chosen Availability Zone. Bucket names
5832
+ # must also follow the format ` bucket_base_name--az_id--x-s3` (for
5833
+ # example, ` DOC-EXAMPLE-BUCKET--usw2-az1--x-s3`). For information
5834
+ # about bucket naming restrictions, see [Directory bucket naming
5835
+ # rules][1] in the *Amazon S3 User Guide*
5836
+ #
5837
+ #
5838
+ #
5839
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html
5567
5840
  # @return [String]
5568
5841
  #
5569
5842
  # @!attribute [rw] expected_bucket_owner
@@ -5571,6 +5844,12 @@ module Aws::S3
5571
5844
  # you provide does not match the actual owner of the bucket, the
5572
5845
  # request fails with the HTTP status code `403 Forbidden` (access
5573
5846
  # denied).
5847
+ #
5848
+ # <note markdown="1"> For directory buckets, this header is not supported in this API
5849
+ # operation. If you specify this header, the request fails with the
5850
+ # HTTP status code `501 Not Implemented`.
5851
+ #
5852
+ # </note>
5574
5853
  # @return [String]
5575
5854
  #
5576
5855
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketEncryptionRequest AWS API Documentation
@@ -5654,10 +5933,29 @@ module Aws::S3
5654
5933
  # Container for a lifecycle rule.
5655
5934
  # @return [Array<Types::LifecycleRule>]
5656
5935
  #
5936
+ # @!attribute [rw] transition_default_minimum_object_size
5937
+ # Indicates which default minimum object size behavior is applied to
5938
+ # the lifecycle configuration.
5939
+ #
5940
+ # * `all_storage_classes_128K` - Objects smaller than 128 KB will not
5941
+ # transition to any storage class by default.
5942
+ #
5943
+ # * `varies_by_storage_class` - Objects smaller than 128 KB will
5944
+ # transition to Glacier Flexible Retrieval or Glacier Deep Archive
5945
+ # storage classes. By default, all other storage classes will
5946
+ # prevent transitions smaller than 128 KB.
5947
+ #
5948
+ # To customize the minimum object size for any transition you can add
5949
+ # a filter that specifies a custom `ObjectSizeGreaterThan` or
5950
+ # `ObjectSizeLessThan` in the body of your transition rule. Custom
5951
+ # filters always take precedence over the default transition behavior.
5952
+ # @return [String]
5953
+ #
5657
5954
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycleConfigurationOutput AWS API Documentation
5658
5955
  #
5659
5956
  class GetBucketLifecycleConfigurationOutput < Struct.new(
5660
- :rules)
5957
+ :rules,
5958
+ :transition_default_minimum_object_size)
5661
5959
  SENSITIVE = []
5662
5960
  include Aws::Structure
5663
5961
  end
@@ -6783,7 +7081,7 @@ module Aws::S3
6783
7081
  # @return [String]
6784
7082
  #
6785
7083
  # @!attribute [rw] checksum_crc32
6786
- # The base64-encoded, 32-bit CRC32 checksum of the object. This will
7084
+ # The base64-encoded, 32-bit CRC-32 checksum of the object. This will
6787
7085
  # only be present if it was uploaded with the object. For more
6788
7086
  # information, see [ Checking object integrity][1] in the *Amazon S3
6789
7087
  # User Guide*.
@@ -6794,7 +7092,7 @@ module Aws::S3
6794
7092
  # @return [String]
6795
7093
  #
6796
7094
  # @!attribute [rw] checksum_crc32c
6797
- # The base64-encoded, 32-bit CRC32C checksum of the object. This will
7095
+ # The base64-encoded, 32-bit CRC-32C checksum of the object. This will
6798
7096
  # only be present if it was uploaded with the object. For more
6799
7097
  # information, see [ Checking object integrity][1] in the *Amazon S3
6800
7098
  # User Guide*.
@@ -6892,12 +7190,7 @@ module Aws::S3
6892
7190
  #
6893
7191
  # @!attribute [rw] server_side_encryption
6894
7192
  # The server-side encryption algorithm used when you store this object
6895
- # in Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
6896
- #
6897
- # <note markdown="1"> For directory buckets, only server-side encryption with Amazon S3
6898
- # managed keys (SSE-S3) (`AES256`) is supported.
6899
- #
6900
- # </note>
7193
+ # in Amazon S3.
6901
7194
  # @return [String]
6902
7195
  #
6903
7196
  # @!attribute [rw] metadata
@@ -6926,22 +7219,13 @@ module Aws::S3
6926
7219
  # @return [String]
6927
7220
  #
6928
7221
  # @!attribute [rw] ssekms_key_id
6929
- # If present, indicates the ID of the Key Management Service (KMS)
6930
- # symmetric encryption customer managed key that was used for the
6931
- # object.
6932
- #
6933
- # <note markdown="1"> This functionality is not supported for directory buckets.
6934
- #
6935
- # </note>
7222
+ # If present, indicates the ID of the KMS key that was used for object
7223
+ # encryption.
6936
7224
  # @return [String]
6937
7225
  #
6938
7226
  # @!attribute [rw] bucket_key_enabled
6939
7227
  # Indicates whether the object uses an S3 Bucket Key for server-side
6940
7228
  # encryption with Key Management Service (KMS) keys (SSE-KMS).
6941
- #
6942
- # <note markdown="1"> This functionality is not supported for directory buckets.
6943
- #
6944
- # </note>
6945
7229
  # @return [Boolean]
6946
7230
  #
6947
7231
  # @!attribute [rw] storage_class
@@ -7381,6 +7665,15 @@ module Aws::S3
7381
7665
  #
7382
7666
  # @!attribute [rw] checksum_mode
7383
7667
  # To retrieve the checksum, this mode must be enabled.
7668
+ #
7669
+ # **General purpose buckets** - In addition, if you enable checksum
7670
+ # mode and the object is uploaded with a [checksum][1] and encrypted
7671
+ # with an Key Management Service (KMS) key, you must have permission
7672
+ # to use the `kms:Decrypt` action to retrieve the checksum.
7673
+ #
7674
+ #
7675
+ #
7676
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
7384
7677
  # @return [String]
7385
7678
  #
7386
7679
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRequest AWS API Documentation
@@ -7802,17 +8095,13 @@ module Aws::S3
7802
8095
  #
7803
8096
  # @!attribute [rw] bucket_region
7804
8097
  # The Region that the bucket is located.
7805
- #
7806
- # <note markdown="1"> This functionality is not supported for directory buckets.
7807
- #
7808
- # </note>
7809
8098
  # @return [String]
7810
8099
  #
7811
8100
  # @!attribute [rw] access_point_alias
7812
8101
  # Indicates whether the bucket name used in the request is an access
7813
8102
  # point alias.
7814
8103
  #
7815
- # <note markdown="1"> This functionality is not supported for directory buckets.
8104
+ # <note markdown="1"> For directory buckets, the value of this field is `false`.
7816
8105
  #
7817
8106
  # </note>
7818
8107
  # @return [Boolean]
@@ -7974,7 +8263,7 @@ module Aws::S3
7974
8263
  # @return [Integer]
7975
8264
  #
7976
8265
  # @!attribute [rw] checksum_crc32
7977
- # The base64-encoded, 32-bit CRC32 checksum of the object. This will
8266
+ # The base64-encoded, 32-bit CRC-32 checksum of the object. This will
7978
8267
  # only be present if it was uploaded with the object. When you use an
7979
8268
  # API operation on an object that was uploaded using multipart
7980
8269
  # uploads, this value may not be a direct checksum value of the full
@@ -7989,7 +8278,7 @@ module Aws::S3
7989
8278
  # @return [String]
7990
8279
  #
7991
8280
  # @!attribute [rw] checksum_crc32c
7992
- # The base64-encoded, 32-bit CRC32C checksum of the object. This will
8281
+ # The base64-encoded, 32-bit CRC-32C checksum of the object. This will
7993
8282
  # only be present if it was uploaded with the object. When you use an
7994
8283
  # API operation on an object that was uploaded using multipart
7995
8284
  # uploads, this value may not be a direct checksum value of the full
@@ -8101,11 +8390,6 @@ module Aws::S3
8101
8390
  # @!attribute [rw] server_side_encryption
8102
8391
  # The server-side encryption algorithm used when you store this object
8103
8392
  # in Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
8104
- #
8105
- # <note markdown="1"> For directory buckets, only server-side encryption with Amazon S3
8106
- # managed keys (SSE-S3) (`AES256`) is supported.
8107
- #
8108
- # </note>
8109
8393
  # @return [String]
8110
8394
  #
8111
8395
  # @!attribute [rw] metadata
@@ -8134,22 +8418,13 @@ module Aws::S3
8134
8418
  # @return [String]
8135
8419
  #
8136
8420
  # @!attribute [rw] ssekms_key_id
8137
- # If present, indicates the ID of the Key Management Service (KMS)
8138
- # symmetric encryption customer managed key that was used for the
8139
- # object.
8140
- #
8141
- # <note markdown="1"> This functionality is not supported for directory buckets.
8142
- #
8143
- # </note>
8421
+ # If present, indicates the ID of the KMS key that was used for object
8422
+ # encryption.
8144
8423
  # @return [String]
8145
8424
  #
8146
8425
  # @!attribute [rw] bucket_key_enabled
8147
8426
  # Indicates whether the object uses an S3 Bucket Key for server-side
8148
8427
  # encryption with Key Management Service (KMS) keys (SSE-KMS).
8149
- #
8150
- # <note markdown="1"> This functionality is not supported for directory buckets.
8151
- #
8152
- # </note>
8153
8428
  # @return [Boolean]
8154
8429
  #
8155
8430
  # @!attribute [rw] storage_class
@@ -8445,13 +8720,37 @@ module Aws::S3
8445
8720
  # The object key.
8446
8721
  # @return [String]
8447
8722
  #
8448
- # @!attribute [rw] range
8449
- # HeadObject returns only the metadata for an object. If the Range is
8450
- # satisfiable, only the `ContentLength` is affected in the response.
8451
- # If the Range is not satisfiable, S3 returns a `416 - Requested Range
8452
- # Not Satisfiable` error.
8723
+ # @!attribute [rw] range
8724
+ # HeadObject returns only the metadata for an object. If the Range is
8725
+ # satisfiable, only the `ContentLength` is affected in the response.
8726
+ # If the Range is not satisfiable, S3 returns a `416 - Requested Range
8727
+ # Not Satisfiable` error.
8728
+ # @return [String]
8729
+ #
8730
+ # @!attribute [rw] response_cache_control
8731
+ # Sets the `Cache-Control` header of the response.
8732
+ # @return [String]
8733
+ #
8734
+ # @!attribute [rw] response_content_disposition
8735
+ # Sets the `Content-Disposition` header of the response.
8736
+ # @return [String]
8737
+ #
8738
+ # @!attribute [rw] response_content_encoding
8739
+ # Sets the `Content-Encoding` header of the response.
8740
+ # @return [String]
8741
+ #
8742
+ # @!attribute [rw] response_content_language
8743
+ # Sets the `Content-Language` header of the response.
8744
+ # @return [String]
8745
+ #
8746
+ # @!attribute [rw] response_content_type
8747
+ # Sets the `Content-Type` header of the response.
8453
8748
  # @return [String]
8454
8749
  #
8750
+ # @!attribute [rw] response_expires
8751
+ # Sets the `Expires` header of the response.
8752
+ # @return [Time]
8753
+ #
8455
8754
  # @!attribute [rw] version_id
8456
8755
  # Version ID used to reference a specific version of the object.
8457
8756
  #
@@ -8527,10 +8826,20 @@ module Aws::S3
8527
8826
  # @!attribute [rw] checksum_mode
8528
8827
  # To retrieve the checksum, this parameter must be enabled.
8529
8828
  #
8530
- # In addition, if you enable `ChecksumMode` and the object is
8531
- # encrypted with Amazon Web Services Key Management Service (Amazon
8532
- # Web Services KMS), you must have permission to use the `kms:Decrypt`
8533
- # action for the request to succeed.
8829
+ # **General purpose buckets** - If you enable checksum mode and the
8830
+ # object is uploaded with a [checksum][1] and encrypted with an Key
8831
+ # Management Service (KMS) key, you must have permission to use the
8832
+ # `kms:Decrypt` action to retrieve the checksum.
8833
+ #
8834
+ # **Directory buckets** - If you enable `ChecksumMode` and the object
8835
+ # is encrypted with Amazon Web Services Key Management Service (Amazon
8836
+ # Web Services KMS), you must also have the `kms:GenerateDataKey` and
8837
+ # `kms:Decrypt` permissions in IAM identity-based policies and KMS key
8838
+ # policies for the KMS key to retrieve the checksum of the object.
8839
+ #
8840
+ #
8841
+ #
8842
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
8534
8843
  # @return [String]
8535
8844
  #
8536
8845
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObjectRequest AWS API Documentation
@@ -8543,6 +8852,12 @@ module Aws::S3
8543
8852
  :if_unmodified_since,
8544
8853
  :key,
8545
8854
  :range,
8855
+ :response_cache_control,
8856
+ :response_content_disposition,
8857
+ :response_content_encoding,
8858
+ :response_content_language,
8859
+ :response_content_type,
8860
+ :response_expires,
8546
8861
  :version_id,
8547
8862
  :sse_customer_algorithm,
8548
8863
  :sse_customer_key,
@@ -8559,10 +8874,11 @@ module Aws::S3
8559
8874
  #
8560
8875
  # @!attribute [rw] suffix
8561
8876
  # A suffix that is appended to a request that is for a directory on
8562
- # the website endpoint (for example,if the suffix is index.html and
8563
- # you make a request to samplebucket/images/ the data that is returned
8564
- # will be for the object with the key name images/index.html) The
8565
- # suffix must not be empty and must not include a slash character.
8877
+ # the website endpoint. (For example, if the suffix is `index.html`
8878
+ # and you make a request to `samplebucket/images/`, the data that is
8879
+ # returned will be for the object with the key name
8880
+ # `images/index.html`.) The suffix must not be empty and must not
8881
+ # include a slash character.
8566
8882
  #
8567
8883
  # Replacement must be made for object keys containing special
8568
8884
  # characters (such as carriage returns) when using XML requests. For
@@ -9495,11 +9811,45 @@ module Aws::S3
9495
9811
  # The owner of the buckets listed.
9496
9812
  # @return [Types::Owner]
9497
9813
  #
9814
+ # @!attribute [rw] continuation_token
9815
+ # `ContinuationToken` is included in the response when there are more
9816
+ # buckets that can be listed with pagination. The next `ListBuckets`
9817
+ # request to Amazon S3 can be continued with this `ContinuationToken`.
9818
+ # `ContinuationToken` is obfuscated and is not a real bucket.
9819
+ # @return [String]
9820
+ #
9498
9821
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketsOutput AWS API Documentation
9499
9822
  #
9500
9823
  class ListBucketsOutput < Struct.new(
9501
9824
  :buckets,
9502
- :owner)
9825
+ :owner,
9826
+ :continuation_token)
9827
+ SENSITIVE = []
9828
+ include Aws::Structure
9829
+ end
9830
+
9831
+ # @!attribute [rw] max_buckets
9832
+ # Maximum number of buckets to be returned in response. When the
9833
+ # number is more than the count of buckets that are owned by an Amazon
9834
+ # Web Services account, return all the buckets in response.
9835
+ # @return [Integer]
9836
+ #
9837
+ # @!attribute [rw] continuation_token
9838
+ # `ContinuationToken` indicates to Amazon S3 that the list is being
9839
+ # continued on this bucket with a token. `ContinuationToken` is
9840
+ # obfuscated and is not a real key. You can use this
9841
+ # `ContinuationToken` for pagination of the list results.
9842
+ #
9843
+ # Length Constraints: Minimum length of 0. Maximum length of 1024.
9844
+ #
9845
+ # Required: No.
9846
+ # @return [String]
9847
+ #
9848
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketsRequest AWS API Documentation
9849
+ #
9850
+ class ListBucketsRequest < Struct.new(
9851
+ :max_buckets,
9852
+ :continuation_token)
9503
9853
  SENSITIVE = []
9504
9854
  include Aws::Structure
9505
9855
  end
@@ -9525,9 +9875,10 @@ module Aws::S3
9525
9875
 
9526
9876
  # @!attribute [rw] continuation_token
9527
9877
  # `ContinuationToken` indicates to Amazon S3 that the list is being
9528
- # continued on this bucket with a token. `ContinuationToken` is
9529
- # obfuscated and is not a real key. You can use this
9530
- # `ContinuationToken` for pagination of the list results.
9878
+ # continued on buckets in this account with a token.
9879
+ # `ContinuationToken` is obfuscated and is not a real bucket name. You
9880
+ # can use this `ContinuationToken` for the pagination of the list
9881
+ # results.
9531
9882
  # @return [String]
9532
9883
  #
9533
9884
  # @!attribute [rw] max_directory_buckets
@@ -9737,12 +10088,26 @@ module Aws::S3
9737
10088
  # @return [String]
9738
10089
  #
9739
10090
  # @!attribute [rw] encoding_type
9740
- # Requests Amazon S3 to encode the object keys in the response and
9741
- # specifies the encoding method to use. An object key can contain any
9742
- # Unicode character; however, the XML 1.0 parser cannot parse some
9743
- # characters, such as characters with an ASCII value from 0 to 10. For
9744
- # characters that are not supported in XML 1.0, you can add this
9745
- # parameter to request that Amazon S3 encode the keys in the response.
10091
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in
10092
+ # the response. Responses are encoded only in UTF-8. An object key can
10093
+ # contain any Unicode character. However, the XML 1.0 parser can't
10094
+ # parse certain characters, such as characters with an ASCII value
10095
+ # from 0 to 10. For characters that aren't supported in XML 1.0, you
10096
+ # can add this parameter to request that Amazon S3 encode the keys in
10097
+ # the response. For more information about characters to avoid in
10098
+ # object key names, see [Object key naming guidelines][2].
10099
+ #
10100
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
10101
+ # in an object's key name will be percent-encoded according to UTF-8
10102
+ # code values. For example, the object `test_file(3).png` will appear
10103
+ # as `test_file%283%29.png`.
10104
+ #
10105
+ # </note>
10106
+ #
10107
+ #
10108
+ #
10109
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
10110
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
9746
10111
  # @return [String]
9747
10112
  #
9748
10113
  # @!attribute [rw] key_marker
@@ -9967,12 +10332,26 @@ module Aws::S3
9967
10332
  # @return [String]
9968
10333
  #
9969
10334
  # @!attribute [rw] encoding_type
9970
- # Requests Amazon S3 to encode the object keys in the response and
9971
- # specifies the encoding method to use. An object key can contain any
9972
- # Unicode character; however, the XML 1.0 parser cannot parse some
9973
- # characters, such as characters with an ASCII value from 0 to 10. For
9974
- # characters that are not supported in XML 1.0, you can add this
9975
- # parameter to request that Amazon S3 encode the keys in the response.
10335
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in
10336
+ # the response. Responses are encoded only in UTF-8. An object key can
10337
+ # contain any Unicode character. However, the XML 1.0 parser can't
10338
+ # parse certain characters, such as characters with an ASCII value
10339
+ # from 0 to 10. For characters that aren't supported in XML 1.0, you
10340
+ # can add this parameter to request that Amazon S3 encode the keys in
10341
+ # the response. For more information about characters to avoid in
10342
+ # object key names, see [Object key naming guidelines][2].
10343
+ #
10344
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
10345
+ # in an object's key name will be percent-encoded according to UTF-8
10346
+ # code values. For example, the object `test_file(3).png` will appear
10347
+ # as `test_file%283%29.png`.
10348
+ #
10349
+ # </note>
10350
+ #
10351
+ #
10352
+ #
10353
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
10354
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
9976
10355
  # @return [String]
9977
10356
  #
9978
10357
  # @!attribute [rw] key_marker
@@ -10119,10 +10498,26 @@ module Aws::S3
10119
10498
  # @return [Array<Types::CommonPrefix>]
10120
10499
  #
10121
10500
  # @!attribute [rw] encoding_type
10122
- # Encoding type used by Amazon S3 to encode object keys in the
10123
- # response. If using `url`, non-ASCII characters used in an object's
10124
- # key name will be URL encoded. For example, the object
10125
- # test\_file(3).png will appear as test\_file%283%29.png.
10501
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in
10502
+ # the response. Responses are encoded only in UTF-8. An object key can
10503
+ # contain any Unicode character. However, the XML 1.0 parser can't
10504
+ # parse certain characters, such as characters with an ASCII value
10505
+ # from 0 to 10. For characters that aren't supported in XML 1.0, you
10506
+ # can add this parameter to request that Amazon S3 encode the keys in
10507
+ # the response. For more information about characters to avoid in
10508
+ # object key names, see [Object key naming guidelines][2].
10509
+ #
10510
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
10511
+ # in an object's key name will be percent-encoded according to UTF-8
10512
+ # code values. For example, the object `test_file(3).png` will appear
10513
+ # as `test_file%283%29.png`.
10514
+ #
10515
+ # </note>
10516
+ #
10517
+ #
10518
+ #
10519
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
10520
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
10126
10521
  # @return [String]
10127
10522
  #
10128
10523
  # @!attribute [rw] request_charged
@@ -10202,12 +10597,26 @@ module Aws::S3
10202
10597
  # @return [String]
10203
10598
  #
10204
10599
  # @!attribute [rw] encoding_type
10205
- # Requests Amazon S3 to encode the object keys in the response and
10206
- # specifies the encoding method to use. An object key can contain any
10207
- # Unicode character; however, the XML 1.0 parser cannot parse some
10208
- # characters, such as characters with an ASCII value from 0 to 10. For
10209
- # characters that are not supported in XML 1.0, you can add this
10210
- # parameter to request that Amazon S3 encode the keys in the response.
10600
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in
10601
+ # the response. Responses are encoded only in UTF-8. An object key can
10602
+ # contain any Unicode character. However, the XML 1.0 parser can't
10603
+ # parse certain characters, such as characters with an ASCII value
10604
+ # from 0 to 10. For characters that aren't supported in XML 1.0, you
10605
+ # can add this parameter to request that Amazon S3 encode the keys in
10606
+ # the response. For more information about characters to avoid in
10607
+ # object key names, see [Object key naming guidelines][2].
10608
+ #
10609
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
10610
+ # in an object's key name will be percent-encoded according to UTF-8
10611
+ # code values. For example, the object `test_file(3).png` will appear
10612
+ # as `test_file%283%29.png`.
10613
+ #
10614
+ # </note>
10615
+ #
10616
+ #
10617
+ #
10618
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
10619
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
10211
10620
  # @return [String]
10212
10621
  #
10213
10622
  # @!attribute [rw] marker
@@ -10475,10 +10884,26 @@ module Aws::S3
10475
10884
  # @return [String]
10476
10885
  #
10477
10886
  # @!attribute [rw] encoding_type
10478
- # Encoding type used by Amazon S3 to encode object keys in the
10479
- # response. If using `url`, non-ASCII characters used in an object's
10480
- # key name will be URL encoded. For example, the object
10481
- # test\_file(3).png will appear as test\_file%283%29.png.
10887
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in
10888
+ # the response. Responses are encoded only in UTF-8. An object key can
10889
+ # contain any Unicode character. However, the XML 1.0 parser can't
10890
+ # parse certain characters, such as characters with an ASCII value
10891
+ # from 0 to 10. For characters that aren't supported in XML 1.0, you
10892
+ # can add this parameter to request that Amazon S3 encode the keys in
10893
+ # the response. For more information about characters to avoid in
10894
+ # object key names, see [Object key naming guidelines][2].
10895
+ #
10896
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
10897
+ # in an object's key name will be percent-encoded according to UTF-8
10898
+ # code values. For example, the object `test_file(3).png` will appear
10899
+ # as `test_file%283%29.png`.
10900
+ #
10901
+ # </note>
10902
+ #
10903
+ #
10904
+ #
10905
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
10906
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
10482
10907
  # @return [String]
10483
10908
  #
10484
10909
  # @!attribute [rw] max_keys
@@ -11173,10 +11598,10 @@ module Aws::S3
11173
11598
  # @return [Integer]
11174
11599
  #
11175
11600
  # @!attribute [rw] newer_noncurrent_versions
11176
- # Specifies how many newer noncurrent versions must exist before
11177
- # Amazon S3 can perform the associated action on a given version. If
11178
- # there are this many more recent noncurrent versions, Amazon S3 will
11179
- # take the associated action. For more information about noncurrent
11601
+ # Specifies how many noncurrent versions Amazon S3 will retain. You
11602
+ # can specify up to 100 noncurrent versions to retain. Amazon S3 will
11603
+ # permanently delete any additional noncurrent versions beyond the
11604
+ # specified number to retain. For more information about noncurrent
11180
11605
  # versions, see [Lifecycle configuration elements][1] in the *Amazon
11181
11606
  # S3 User Guide*.
11182
11607
  #
@@ -11220,12 +11645,12 @@ module Aws::S3
11220
11645
  # @return [String]
11221
11646
  #
11222
11647
  # @!attribute [rw] newer_noncurrent_versions
11223
- # Specifies how many newer noncurrent versions must exist before
11224
- # Amazon S3 can perform the associated action on a given version. If
11225
- # there are this many more recent noncurrent versions, Amazon S3 will
11226
- # take the associated action. For more information about noncurrent
11227
- # versions, see [Lifecycle configuration elements][1] in the *Amazon
11228
- # S3 User Guide*.
11648
+ # Specifies how many noncurrent versions Amazon S3 will retain in the
11649
+ # same storage class before transitioning objects. You can specify up
11650
+ # to 100 noncurrent versions to retain. Amazon S3 will transition any
11651
+ # additional noncurrent versions beyond the specified number to
11652
+ # retain. For more information about noncurrent versions, see
11653
+ # [Lifecycle configuration elements][1] in the *Amazon S3 User Guide*.
11229
11654
  #
11230
11655
  #
11231
11656
  #
@@ -11556,7 +11981,7 @@ module Aws::S3
11556
11981
  # @!attribute [rw] checksum_crc32
11557
11982
  # This header can be used as a data integrity check to verify that the
11558
11983
  # data received is the same data that was originally sent. This header
11559
- # specifies the base64-encoded, 32-bit CRC32 checksum of the object.
11984
+ # specifies the base64-encoded, 32-bit CRC-32 checksum of the object.
11560
11985
  # For more information, see [Checking object integrity][1] in the
11561
11986
  # *Amazon S3 User Guide*.
11562
11987
  #
@@ -11566,7 +11991,7 @@ module Aws::S3
11566
11991
  # @return [String]
11567
11992
  #
11568
11993
  # @!attribute [rw] checksum_crc32c
11569
- # The base64-encoded, 32-bit CRC32C checksum of the object. This will
11994
+ # The base64-encoded, 32-bit CRC-32C checksum of the object. This will
11570
11995
  # only be present if it was uploaded with the object. When you use an
11571
11996
  # API operation on an object that was uploaded using multipart
11572
11997
  # uploads, this value may not be a direct checksum value of the full
@@ -11856,7 +12281,7 @@ module Aws::S3
11856
12281
  # @!attribute [rw] checksum_crc32
11857
12282
  # This header can be used as a data integrity check to verify that the
11858
12283
  # data received is the same data that was originally sent. This header
11859
- # specifies the base64-encoded, 32-bit CRC32 checksum of the object.
12284
+ # specifies the base64-encoded, 32-bit CRC-32 checksum of the object.
11860
12285
  # For more information, see [Checking object integrity][1] in the
11861
12286
  # *Amazon S3 User Guide*.
11862
12287
  #
@@ -11866,7 +12291,7 @@ module Aws::S3
11866
12291
  # @return [String]
11867
12292
  #
11868
12293
  # @!attribute [rw] checksum_crc32c
11869
- # The base64-encoded, 32-bit CRC32C checksum of the object. This will
12294
+ # The base64-encoded, 32-bit CRC-32C checksum of the object. This will
11870
12295
  # only be present if it was uploaded with the object. When you use an
11871
12296
  # API operation on an object that was uploaded using multipart
11872
12297
  # uploads, this value may not be a direct checksum value of the full
@@ -11932,7 +12357,15 @@ module Aws::S3
11932
12357
  #
11933
12358
  # @!attribute [rw] partition_date_source
11934
12359
  # Specifies the partition date source for the partitioned prefix.
11935
- # PartitionDateSource can be EventTime or DeliveryTime.
12360
+ # `PartitionDateSource` can be `EventTime` or `DeliveryTime`.
12361
+ #
12362
+ # For `DeliveryTime`, the time in the log file names corresponds to
12363
+ # the delivery time for the log files.
12364
+ #
12365
+ # For `EventTime`, The logs delivered are for a specific day only. The
12366
+ # year, month, and day correspond to the day on which the event
12367
+ # occurred, and the hour, minutes and seconds are set to 00 in the
12368
+ # key.
11936
12369
  # @return [String]
11937
12370
  #
11938
12371
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PartitionedPrefix AWS API Documentation
@@ -12045,8 +12478,9 @@ module Aws::S3
12045
12478
  # @!attribute [rw] restrict_public_buckets
12046
12479
  # Specifies whether Amazon S3 should restrict public bucket policies
12047
12480
  # for this bucket. Setting this element to `TRUE` restricts access to
12048
- # this bucket to only Amazon Web Service principals and authorized
12049
- # users within this account if the bucket has a public policy.
12481
+ # this bucket to only Amazon Web Servicesservice principals and
12482
+ # authorized users within this account if the bucket has a public
12483
+ # policy.
12050
12484
  #
12051
12485
  # Enabling this setting doesn't affect previously stored bucket
12052
12486
  # policies, except that public and cross-account access within any
@@ -12301,18 +12735,21 @@ module Aws::S3
12301
12735
 
12302
12736
  # @!attribute [rw] bucket
12303
12737
  # Specifies default encryption for a bucket using server-side
12304
- # encryption with different key options. By default, all buckets have
12305
- # a default encryption configuration that uses server-side encryption
12306
- # with Amazon S3 managed keys (SSE-S3). You can optionally configure
12307
- # default encryption for a bucket by using server-side encryption with
12308
- # an Amazon Web Services KMS key (SSE-KMS) or a customer-provided key
12309
- # (SSE-C). For information about the bucket default encryption
12310
- # feature, see [Amazon S3 Bucket Default Encryption][1] in the *Amazon
12311
- # S3 User Guide*.
12738
+ # encryption with different key options.
12739
+ #
12740
+ # <b>Directory buckets </b> - When you use this operation with a
12741
+ # directory bucket, you must use path-style requests in the format
12742
+ # `https://s3express-control.region_code.amazonaws.com/bucket-name `.
12743
+ # Virtual-hosted-style requests aren't supported. Directory bucket
12744
+ # names must be unique in the chosen Availability Zone. Bucket names
12745
+ # must also follow the format ` bucket_base_name--az_id--x-s3` (for
12746
+ # example, ` DOC-EXAMPLE-BUCKET--usw2-az1--x-s3`). For information
12747
+ # about bucket naming restrictions, see [Directory bucket naming
12748
+ # rules][1] in the *Amazon S3 User Guide*
12312
12749
  #
12313
12750
  #
12314
12751
  #
12315
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html
12752
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html
12316
12753
  # @return [String]
12317
12754
  #
12318
12755
  # @!attribute [rw] content_md5
@@ -12322,6 +12759,10 @@ module Aws::S3
12322
12759
  # For requests made using the Amazon Web Services Command Line
12323
12760
  # Interface (CLI) or Amazon Web Services SDKs, this field is
12324
12761
  # calculated automatically.
12762
+ #
12763
+ # <note markdown="1"> This functionality is not supported for directory buckets.
12764
+ #
12765
+ # </note>
12325
12766
  # @return [String]
12326
12767
  #
12327
12768
  # @!attribute [rw] checksum_algorithm
@@ -12336,6 +12777,12 @@ module Aws::S3
12336
12777
  # If you provide an individual checksum, Amazon S3 ignores any
12337
12778
  # provided `ChecksumAlgorithm` parameter.
12338
12779
  #
12780
+ # <note markdown="1"> For directory buckets, when you use Amazon Web Services SDKs,
12781
+ # `CRC32` is the default checksum algorithm that's used for
12782
+ # performance.
12783
+ #
12784
+ # </note>
12785
+ #
12339
12786
  #
12340
12787
  #
12341
12788
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
@@ -12350,6 +12797,12 @@ module Aws::S3
12350
12797
  # you provide does not match the actual owner of the bucket, the
12351
12798
  # request fails with the HTTP status code `403 Forbidden` (access
12352
12799
  # denied).
12800
+ #
12801
+ # <note markdown="1"> For directory buckets, this header is not supported in this API
12802
+ # operation. If you specify this header, the request fails with the
12803
+ # HTTP status code `501 Not Implemented`.
12804
+ #
12805
+ # </note>
12353
12806
  # @return [String]
12354
12807
  #
12355
12808
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketEncryptionRequest AWS API Documentation
@@ -12418,6 +12871,32 @@ module Aws::S3
12418
12871
  include Aws::Structure
12419
12872
  end
12420
12873
 
12874
+ # @!attribute [rw] transition_default_minimum_object_size
12875
+ # Indicates which default minimum object size behavior is applied to
12876
+ # the lifecycle configuration.
12877
+ #
12878
+ # * `all_storage_classes_128K` - Objects smaller than 128 KB will not
12879
+ # transition to any storage class by default.
12880
+ #
12881
+ # * `varies_by_storage_class` - Objects smaller than 128 KB will
12882
+ # transition to Glacier Flexible Retrieval or Glacier Deep Archive
12883
+ # storage classes. By default, all other storage classes will
12884
+ # prevent transitions smaller than 128 KB.
12885
+ #
12886
+ # To customize the minimum object size for any transition you can add
12887
+ # a filter that specifies a custom `ObjectSizeGreaterThan` or
12888
+ # `ObjectSizeLessThan` in the body of your transition rule. Custom
12889
+ # filters always take precedence over the default transition behavior.
12890
+ # @return [String]
12891
+ #
12892
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycleConfigurationOutput AWS API Documentation
12893
+ #
12894
+ class PutBucketLifecycleConfigurationOutput < Struct.new(
12895
+ :transition_default_minimum_object_size)
12896
+ SENSITIVE = []
12897
+ include Aws::Structure
12898
+ end
12899
+
12421
12900
  # @!attribute [rw] bucket
12422
12901
  # The name of the bucket for which to set the configuration.
12423
12902
  # @return [String]
@@ -12450,13 +12929,32 @@ module Aws::S3
12450
12929
  # denied).
12451
12930
  # @return [String]
12452
12931
  #
12932
+ # @!attribute [rw] transition_default_minimum_object_size
12933
+ # Indicates which default minimum object size behavior is applied to
12934
+ # the lifecycle configuration.
12935
+ #
12936
+ # * `all_storage_classes_128K` - Objects smaller than 128 KB will not
12937
+ # transition to any storage class by default.
12938
+ #
12939
+ # * `varies_by_storage_class` - Objects smaller than 128 KB will
12940
+ # transition to Glacier Flexible Retrieval or Glacier Deep Archive
12941
+ # storage classes. By default, all other storage classes will
12942
+ # prevent transitions smaller than 128 KB.
12943
+ #
12944
+ # To customize the minimum object size for any transition you can add
12945
+ # a filter that specifies a custom `ObjectSizeGreaterThan` or
12946
+ # `ObjectSizeLessThan` in the body of your transition rule. Custom
12947
+ # filters always take precedence over the default transition behavior.
12948
+ # @return [String]
12949
+ #
12453
12950
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycleConfigurationRequest AWS API Documentation
12454
12951
  #
12455
12952
  class PutBucketLifecycleConfigurationRequest < Struct.new(
12456
12953
  :bucket,
12457
12954
  :checksum_algorithm,
12458
12955
  :lifecycle_configuration,
12459
- :expected_bucket_owner)
12956
+ :expected_bucket_owner,
12957
+ :transition_default_minimum_object_size)
12460
12958
  SENSITIVE = []
12461
12959
  include Aws::Structure
12462
12960
  end
@@ -12755,13 +13253,13 @@ module Aws::S3
12755
13253
  # For the `x-amz-checksum-algorithm ` header, replace ` algorithm `
12756
13254
  # with the supported algorithm from the following list:
12757
13255
  #
12758
- # * CRC32
13256
+ # * `CRC32`
12759
13257
  #
12760
- # * CRC32C
13258
+ # * `CRC32C`
12761
13259
  #
12762
- # * SHA1
13260
+ # * `SHA1`
12763
13261
  #
12764
- # * SHA256
13262
+ # * `SHA256`
12765
13263
  #
12766
13264
  # For more information, see [Checking object integrity][1] in the
12767
13265
  # *Amazon S3 User Guide*.
@@ -13557,7 +14055,7 @@ module Aws::S3
13557
14055
  # @return [String]
13558
14056
  #
13559
14057
  # @!attribute [rw] checksum_crc32
13560
- # The base64-encoded, 32-bit CRC32 checksum of the object. This will
14058
+ # The base64-encoded, 32-bit CRC-32 checksum of the object. This will
13561
14059
  # only be present if it was uploaded with the object. When you use an
13562
14060
  # API operation on an object that was uploaded using multipart
13563
14061
  # uploads, this value may not be a direct checksum value of the full
@@ -13572,7 +14070,7 @@ module Aws::S3
13572
14070
  # @return [String]
13573
14071
  #
13574
14072
  # @!attribute [rw] checksum_crc32c
13575
- # The base64-encoded, 32-bit CRC32C checksum of the object. This will
14073
+ # The base64-encoded, 32-bit CRC-32C checksum of the object. This will
13576
14074
  # only be present if it was uploaded with the object. When you use an
13577
14075
  # API operation on an object that was uploaded using multipart
13578
14076
  # uploads, this value may not be a direct checksum value of the full
@@ -13618,12 +14116,7 @@ module Aws::S3
13618
14116
  #
13619
14117
  # @!attribute [rw] server_side_encryption
13620
14118
  # The server-side encryption algorithm used when you store this object
13621
- # in Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
13622
- #
13623
- # <note markdown="1"> For directory buckets, only server-side encryption with Amazon S3
13624
- # managed keys (SSE-S3) (`AES256`) is supported.
13625
- #
13626
- # </note>
14119
+ # in Amazon S3.
13627
14120
  # @return [String]
13628
14121
  #
13629
14122
  # @!attribute [rw] version_id
@@ -13671,37 +14164,23 @@ module Aws::S3
13671
14164
  # @return [String]
13672
14165
  #
13673
14166
  # @!attribute [rw] ssekms_key_id
13674
- # If `x-amz-server-side-encryption` has a valid value of `aws:kms` or
13675
- # `aws:kms:dsse`, this header indicates the ID of the Key Management
13676
- # Service (KMS) symmetric encryption customer managed key that was
13677
- # used for the object.
13678
- #
13679
- # <note markdown="1"> This functionality is not supported for directory buckets.
13680
- #
13681
- # </note>
14167
+ # If present, indicates the ID of the KMS key that was used for object
14168
+ # encryption.
13682
14169
  # @return [String]
13683
14170
  #
13684
14171
  # @!attribute [rw] ssekms_encryption_context
13685
14172
  # If present, indicates the Amazon Web Services KMS Encryption Context
13686
14173
  # to use for object encryption. The value of this header is a
13687
- # base64-encoded UTF-8 string holding JSON with the encryption context
13688
- # key-value pairs. This value is stored as object metadata and
13689
- # automatically gets passed on to Amazon Web Services KMS for future
13690
- # `GetObject` or `CopyObject` operations on this object.
13691
- #
13692
- # <note markdown="1"> This functionality is not supported for directory buckets.
13693
- #
13694
- # </note>
14174
+ # Base64-encoded string of a UTF-8 encoded JSON, which contains the
14175
+ # encryption context as key-value pairs. This value is stored as
14176
+ # object metadata and automatically gets passed on to Amazon Web
14177
+ # Services KMS for future `GetObject` operations on this object.
13695
14178
  # @return [String]
13696
14179
  #
13697
14180
  # @!attribute [rw] bucket_key_enabled
13698
14181
  # Indicates whether the uploaded object uses an S3 Bucket Key for
13699
14182
  # server-side encryption with Key Management Service (KMS) keys
13700
14183
  # (SSE-KMS).
13701
- #
13702
- # <note markdown="1"> This functionality is not supported for directory buckets.
13703
- #
13704
- # </note>
13705
14184
  # @return [Boolean]
13706
14185
  #
13707
14186
  # @!attribute [rw] request_charged
@@ -13916,13 +14395,13 @@ module Aws::S3
13916
14395
  # For the `x-amz-checksum-algorithm ` header, replace ` algorithm `
13917
14396
  # with the supported algorithm from the following list:
13918
14397
  #
13919
- # * CRC32
14398
+ # * `CRC32`
13920
14399
  #
13921
- # * CRC32C
14400
+ # * `CRC32C`
13922
14401
  #
13923
- # * SHA1
14402
+ # * `SHA1`
13924
14403
  #
13925
- # * SHA256
14404
+ # * `SHA256`
13926
14405
  #
13927
14406
  # For more information, see [Checking object integrity][1] in the
13928
14407
  # *Amazon S3 User Guide*.
@@ -13948,7 +14427,7 @@ module Aws::S3
13948
14427
  # @!attribute [rw] checksum_crc32
13949
14428
  # This header can be used as a data integrity check to verify that the
13950
14429
  # data received is the same data that was originally sent. This header
13951
- # specifies the base64-encoded, 32-bit CRC32 checksum of the object.
14430
+ # specifies the base64-encoded, 32-bit CRC-32 checksum of the object.
13952
14431
  # For more information, see [Checking object integrity][1] in the
13953
14432
  # *Amazon S3 User Guide*.
13954
14433
  #
@@ -13960,7 +14439,7 @@ module Aws::S3
13960
14439
  # @!attribute [rw] checksum_crc32c
13961
14440
  # This header can be used as a data integrity check to verify that the
13962
14441
  # data received is the same data that was originally sent. This header
13963
- # specifies the base64-encoded, 32-bit CRC32C checksum of the object.
14442
+ # specifies the base64-encoded, 32-bit CRC-32C checksum of the object.
13964
14443
  # For more information, see [Checking object integrity][1] in the
13965
14444
  # *Amazon S3 User Guide*.
13966
14445
  #
@@ -14003,6 +14482,26 @@ module Aws::S3
14003
14482
  # [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
14004
14483
  # @return [Time]
14005
14484
  #
14485
+ # @!attribute [rw] if_none_match
14486
+ # Uploads the object only if the object key name does not already
14487
+ # exist in the bucket specified. Otherwise, Amazon S3 returns a `412
14488
+ # Precondition Failed` error.
14489
+ #
14490
+ # If a conflicting operation occurs during the upload S3 returns a
14491
+ # `409 ConditionalRequestConflict` response. On a 409 failure you
14492
+ # should retry the upload.
14493
+ #
14494
+ # Expects the '*' (asterisk) character.
14495
+ #
14496
+ # For more information about conditional requests, see [RFC 7232][1],
14497
+ # or [Conditional requests][2] in the *Amazon S3 User Guide*.
14498
+ #
14499
+ #
14500
+ #
14501
+ # [1]: https://tools.ietf.org/html/rfc7232
14502
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
14503
+ # @return [String]
14504
+ #
14006
14505
  # @!attribute [rw] grant_full_control
14007
14506
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
14008
14507
  # object.
@@ -14057,25 +14556,66 @@ module Aws::S3
14057
14556
  # this object in Amazon S3 (for example, `AES256`, `aws:kms`,
14058
14557
  # `aws:kms:dsse`).
14059
14558
  #
14060
- # <b>General purpose buckets </b> - You have four mutually exclusive
14061
- # options to protect data using server-side encryption in Amazon S3,
14062
- # depending on how you choose to manage the encryption keys.
14063
- # Specifically, the encryption key options are Amazon S3 managed keys
14064
- # (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or DSSE-KMS), and
14065
- # customer-provided keys (SSE-C). Amazon S3 encrypts data with
14066
- # server-side encryption by using Amazon S3 managed keys (SSE-S3) by
14067
- # default. You can optionally tell Amazon S3 to encrypt data at rest
14068
- # by using server-side encryption with other key options. For more
14069
- # information, see [Using Server-Side Encryption][1] in the *Amazon S3
14070
- # User Guide*.
14559
+ # * <b>General purpose buckets </b> - You have four mutually exclusive
14560
+ # options to protect data using server-side encryption in Amazon S3,
14561
+ # depending on how you choose to manage the encryption keys.
14562
+ # Specifically, the encryption key options are Amazon S3 managed
14563
+ # keys (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or DSSE-KMS),
14564
+ # and customer-provided keys (SSE-C). Amazon S3 encrypts data with
14565
+ # server-side encryption by using Amazon S3 managed keys (SSE-S3) by
14566
+ # default. You can optionally tell Amazon S3 to encrypt data at rest
14567
+ # by using server-side encryption with other key options. For more
14568
+ # information, see [Using Server-Side Encryption][1] in the *Amazon
14569
+ # S3 User Guide*.
14570
+ #
14571
+ # * <b>Directory buckets </b> - For directory buckets, there are only
14572
+ # two supported options for server-side encryption: server-side
14573
+ # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
14574
+ # server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We
14575
+ # recommend that the bucket's default encryption uses the desired
14576
+ # encryption configuration and you don't override the bucket
14577
+ # default encryption in your `CreateSession` requests or `PUT`
14578
+ # object requests. Then, new objects are automatically encrypted
14579
+ # with the desired encryption settings. For more information, see
14580
+ # [Protecting data with server-side encryption][2] in the *Amazon S3
14581
+ # User Guide*. For more information about the encryption overriding
14582
+ # behaviors in directory buckets, see [Specifying server-side
14583
+ # encryption with KMS for new object uploads][3].
14584
+ #
14585
+ # In the Zonal endpoint API calls (except [CopyObject][4] and
14586
+ # [UploadPartCopy][5]) using the REST API, the encryption request
14587
+ # headers must match the encryption settings that are specified in
14588
+ # the `CreateSession` request. You can't override the values of the
14589
+ # encryption settings (`x-amz-server-side-encryption`,
14590
+ # `x-amz-server-side-encryption-aws-kms-key-id`,
14591
+ # `x-amz-server-side-encryption-context`, and
14592
+ # `x-amz-server-side-encryption-bucket-key-enabled`) that are
14593
+ # specified in the `CreateSession` request. You don't need to
14594
+ # explicitly specify these encryption settings values in Zonal
14595
+ # endpoint API calls, and Amazon S3 will use the encryption settings
14596
+ # values from the `CreateSession` request to protect new objects in
14597
+ # the directory bucket.
14598
+ #
14599
+ # <note markdown="1"> When you use the CLI or the Amazon Web Services SDKs, for
14600
+ # `CreateSession`, the session token refreshes automatically to
14601
+ # avoid service interruptions when a session expires. The CLI or the
14602
+ # Amazon Web Services SDKs use the bucket's default encryption
14603
+ # configuration for the `CreateSession` request. It's not supported
14604
+ # to override the encryption settings values in the `CreateSession`
14605
+ # request. So in the Zonal endpoint API calls (except
14606
+ # [CopyObject][4] and [UploadPartCopy][5]), the encryption request
14607
+ # headers must match the default encryption configuration of the
14608
+ # directory bucket.
14071
14609
  #
14072
- # <b>Directory buckets </b> - For directory buckets, only the
14073
- # server-side encryption with Amazon S3 managed keys (SSE-S3)
14074
- # (`AES256`) value is supported.
14610
+ # </note>
14075
14611
  #
14076
14612
  #
14077
14613
  #
14078
14614
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
14615
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
14616
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
14617
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
14618
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
14079
14619
  # @return [String]
14080
14620
  #
14081
14621
  # @!attribute [rw] storage_class
@@ -14161,48 +14701,87 @@ module Aws::S3
14161
14701
  # @return [String]
14162
14702
  #
14163
14703
  # @!attribute [rw] ssekms_key_id
14164
- # If `x-amz-server-side-encryption` has a valid value of `aws:kms` or
14165
- # `aws:kms:dsse`, this header specifies the ID (Key ID, Key ARN, or
14166
- # Key Alias) of the Key Management Service (KMS) symmetric encryption
14167
- # customer managed key that was used for the object. If you specify
14704
+ # Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for
14705
+ # object encryption. If the KMS key doesn't exist in the same account
14706
+ # that's issuing the command, you must use the full Key ARN not the
14707
+ # Key ID.
14708
+ #
14709
+ # **General purpose buckets** - If you specify
14710
+ # `x-amz-server-side-encryption` with `aws:kms` or `aws:kms:dsse`,
14711
+ # this header specifies the ID (Key ID, Key ARN, or Key Alias) of the
14712
+ # KMS key to use. If you specify
14168
14713
  # `x-amz-server-side-encryption:aws:kms` or
14169
- # `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide`
14170
- # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
14171
- # Amazon Web Services managed key (`aws/s3`) to protect the data. If
14172
- # the KMS key does not exist in the same account that's issuing the
14173
- # command, you must use the full ARN and not just the ID.
14714
+ # `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide
14715
+ # `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
14716
+ # Amazon Web Services managed key (`aws/s3`) to protect the data.
14174
14717
  #
14175
- # <note markdown="1"> This functionality is not supported for directory buckets.
14718
+ # **Directory buckets** - If you specify
14719
+ # `x-amz-server-side-encryption` with `aws:kms`, you must specify the
14720
+ # ` x-amz-server-side-encryption-aws-kms-key-id` header with the ID
14721
+ # (Key ID or Key ARN) of the KMS symmetric encryption customer managed
14722
+ # key to use. Otherwise, you get an HTTP `400 Bad Request` error. Only
14723
+ # use the key ID or key ARN. The key alias format of the KMS key
14724
+ # isn't supported. Your SSE-KMS configuration can only support 1
14725
+ # [customer managed key][1] per directory bucket for the lifetime of
14726
+ # the bucket. [Amazon Web Services managed key][2] (`aws/s3`) isn't
14727
+ # supported.
14176
14728
  #
14177
- # </note>
14729
+ #
14730
+ #
14731
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
14732
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
14178
14733
  # @return [String]
14179
14734
  #
14180
14735
  # @!attribute [rw] ssekms_encryption_context
14181
- # Specifies the Amazon Web Services KMS Encryption Context to use for
14182
- # object encryption. The value of this header is a base64-encoded
14183
- # UTF-8 string holding JSON with the encryption context key-value
14184
- # pairs. This value is stored as object metadata and automatically
14185
- # gets passed on to Amazon Web Services KMS for future `GetObject` or
14186
- # `CopyObject` operations on this object. This value must be
14187
- # explicitly added during `CopyObject` operations.
14736
+ # Specifies the Amazon Web Services KMS Encryption Context as an
14737
+ # additional encryption context to use for object encryption. The
14738
+ # value of this header is a Base64-encoded string of a UTF-8 encoded
14739
+ # JSON, which contains the encryption context as key-value pairs. This
14740
+ # value is stored as object metadata and automatically gets passed on
14741
+ # to Amazon Web Services KMS for future `GetObject` operations on this
14742
+ # object.
14188
14743
  #
14189
- # <note markdown="1"> This functionality is not supported for directory buckets.
14744
+ # **General purpose buckets** - This value must be explicitly added
14745
+ # during `CopyObject` operations if you want an additional encryption
14746
+ # context for your object. For more information, see [Encryption
14747
+ # context][1] in the *Amazon S3 User Guide*.
14190
14748
  #
14191
- # </note>
14749
+ # **Directory buckets** - You can optionally provide an explicit
14750
+ # encryption context value. The value must match the default
14751
+ # encryption context - the bucket Amazon Resource Name (ARN). An
14752
+ # additional encryption context value is not supported.
14753
+ #
14754
+ #
14755
+ #
14756
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context
14192
14757
  # @return [String]
14193
14758
  #
14194
14759
  # @!attribute [rw] bucket_key_enabled
14195
14760
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
14196
14761
  # encryption with server-side encryption using Key Management Service
14197
- # (KMS) keys (SSE-KMS). Setting this header to `true` causes Amazon S3
14198
- # to use an S3 Bucket Key for object encryption with SSE-KMS.
14762
+ # (KMS) keys (SSE-KMS).
14199
14763
  #
14200
- # Specifying this header with a PUT action doesn’t affect bucket-level
14201
- # settings for S3 Bucket Key.
14764
+ # **General purpose buckets** - Setting this header to `true` causes
14765
+ # Amazon S3 to use an S3 Bucket Key for object encryption with
14766
+ # SSE-KMS. Also, specifying this header with a PUT action doesn't
14767
+ # affect bucket-level settings for S3 Bucket Key.
14202
14768
  #
14203
- # <note markdown="1"> This functionality is not supported for directory buckets.
14769
+ # **Directory buckets** - S3 Bucket Keys are always enabled for `GET`
14770
+ # and `PUT` operations in a directory bucket and can’t be disabled. S3
14771
+ # Bucket Keys aren't supported, when you copy SSE-KMS encrypted
14772
+ # objects from general purpose buckets to directory buckets, from
14773
+ # directory buckets to general purpose buckets, or between directory
14774
+ # buckets, through [CopyObject][1], [UploadPartCopy][2], [the Copy
14775
+ # operation in Batch Operations][3], or [the import jobs][4]. In this
14776
+ # case, Amazon S3 makes a call to KMS every time a copy request is
14777
+ # made for a KMS-encrypted object.
14204
14778
  #
14205
- # </note>
14779
+ #
14780
+ #
14781
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
14782
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
14783
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
14784
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
14206
14785
  # @return [Boolean]
14207
14786
  #
14208
14787
  # @!attribute [rw] request_payer
@@ -14289,6 +14868,7 @@ module Aws::S3
14289
14868
  :checksum_sha1,
14290
14869
  :checksum_sha256,
14291
14870
  :expires,
14871
+ :if_none_match,
14292
14872
  :grant_full_control,
14293
14873
  :grant_read,
14294
14874
  :grant_read_acp,
@@ -14699,7 +15279,15 @@ module Aws::S3
14699
15279
  # The container for the records event.
14700
15280
  #
14701
15281
  # @!attribute [rw] payload
14702
- # The byte array of partial, one or more result records.
15282
+ # The byte array of partial, one or more result records. S3 Select
15283
+ # doesn't guarantee that a record will be self-contained in one
15284
+ # record frame. To ensure continuous streaming of data, S3 Select
15285
+ # might split the same record across multiple record frames instead of
15286
+ # aggregating the results in memory. Some S3 clients (for example, the
15287
+ # SDK for Java) handle this behavior by creating a `ByteStream` out of
15288
+ # the response by default. Other clients might not handle this
15289
+ # behavior by default. In those cases, you must aggregate the results
15290
+ # on the client side and parse the response.
14703
15291
  # @return [String]
14704
15292
  #
14705
15293
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RecordsEvent AWS API Documentation
@@ -14907,12 +15495,16 @@ module Aws::S3
14907
15495
  #
14908
15496
  # @!attribute [rw] existing_object_replication
14909
15497
  # Optional configuration to replicate existing source bucket objects.
14910
- # For more information, see [Replicating Existing Objects][1] in the
14911
- # *Amazon S3 User Guide*.
15498
+ #
15499
+ # <note markdown="1"> This parameter is no longer supported. To replicate existing
15500
+ # objects, see [Replicating existing objects with S3 Batch
15501
+ # Replication][1] in the *Amazon S3 User Guide*.
15502
+ #
15503
+ # </note>
14912
15504
  #
14913
15505
  #
14914
15506
  #
14915
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-what-is-isnot-replicated.html#existing-object-replication
15507
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-batch-replication-batch.html
14916
15508
  # @return [Types::ExistingObjectReplication]
14917
15509
  #
14918
15510
  # @!attribute [rw] destination
@@ -15243,7 +15835,15 @@ module Aws::S3
15243
15835
  # @return [Types::GlacierJobParameters]
15244
15836
  #
15245
15837
  # @!attribute [rw] type
15838
+ # Amazon S3 Select is no longer available to new customers. Existing
15839
+ # customers of Amazon S3 Select can continue to use the feature as
15840
+ # usual. [Learn more][1]
15841
+ #
15246
15842
  # Type of restore request.
15843
+ #
15844
+ #
15845
+ #
15846
+ # [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/
15247
15847
  # @return [String]
15248
15848
  #
15249
15849
  # @!attribute [rw] tier
@@ -15255,7 +15855,15 @@ module Aws::S3
15255
15855
  # @return [String]
15256
15856
  #
15257
15857
  # @!attribute [rw] select_parameters
15858
+ # Amazon S3 Select is no longer available to new customers. Existing
15859
+ # customers of Amazon S3 Select can continue to use the feature as
15860
+ # usual. [Learn more][1]
15861
+ #
15258
15862
  # Describes the parameters for Select job types.
15863
+ #
15864
+ #
15865
+ #
15866
+ # [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/
15259
15867
  # @return [Types::SelectParameters]
15260
15868
  #
15261
15869
  # @!attribute [rw] output_location
@@ -15586,6 +16194,12 @@ module Aws::S3
15586
16194
  include Aws::Structure
15587
16195
  end
15588
16196
 
16197
+ # <note markdown="1"> Learn Amazon S3 Select is no longer available to new customers.
16198
+ # Existing customers of Amazon S3 Select can continue to use the feature
16199
+ # as usual. [Learn more][1]
16200
+ #
16201
+ # </note>
16202
+ #
15589
16203
  # Request to filter the contents of an Amazon S3 object based on a
15590
16204
  # simple Structured Query Language (SQL) statement. In the request,
15591
16205
  # along with the SQL expression, you must specify a data serialization
@@ -15593,11 +16207,12 @@ module Aws::S3
15593
16207
  # object data into records. It returns only records that match the
15594
16208
  # specified SQL expression. You must also specify the data serialization
15595
16209
  # format for the response. For more information, see [S3Select API
15596
- # Documentation][1].
16210
+ # Documentation][2].
15597
16211
  #
15598
16212
  #
15599
16213
  #
15600
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html
16214
+ # [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/
16215
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html
15601
16216
  #
15602
16217
  # @!attribute [rw] bucket
15603
16218
  # The S3 bucket.
@@ -15709,8 +16324,21 @@ module Aws::S3
15709
16324
  include Aws::Structure
15710
16325
  end
15711
16326
 
16327
+ # Amazon S3 Select is no longer available to new customers. Existing
16328
+ # customers of Amazon S3 Select can continue to use the feature as
16329
+ # usual. [Learn more][1]
16330
+ #
15712
16331
  # Describes the parameters for Select job types.
15713
16332
  #
16333
+ # Learn [How to optimize querying your data in Amazon S3][1] using
16334
+ # [Amazon Athena][2], [S3 Object Lambda][3], or client-side filtering.
16335
+ #
16336
+ #
16337
+ #
16338
+ # [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/
16339
+ # [2]: https://docs.aws.amazon.com/athena/latest/ug/what-is.html
16340
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html
16341
+ #
15714
16342
  # @!attribute [rw] input_serialization
15715
16343
  # Describes the serialization format of the object.
15716
16344
  # @return [Types::InputSerialization]
@@ -15720,7 +16348,15 @@ module Aws::S3
15720
16348
  # @return [String]
15721
16349
  #
15722
16350
  # @!attribute [rw] expression
16351
+ # Amazon S3 Select is no longer available to new customers. Existing
16352
+ # customers of Amazon S3 Select can continue to use the feature as
16353
+ # usual. [Learn more][1]
16354
+ #
15723
16355
  # The expression that is used to query the object.
16356
+ #
16357
+ #
16358
+ #
16359
+ # [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/
15724
16360
  # @return [String]
15725
16361
  #
15726
16362
  # @!attribute [rw] output_serialization
@@ -15740,27 +16376,51 @@ module Aws::S3
15740
16376
 
15741
16377
  # Describes the default server-side encryption to apply to new objects
15742
16378
  # in the bucket. If a PUT Object request doesn't specify any
15743
- # server-side encryption, this default encryption will be applied. If
15744
- # you don't specify a customer managed key at configuration, Amazon S3
15745
- # automatically creates an Amazon Web Services KMS key in your Amazon
15746
- # Web Services account the first time that you add an object encrypted
15747
- # with SSE-KMS to a bucket. By default, Amazon S3 uses this KMS key for
15748
- # SSE-KMS. For more information, see [PUT Bucket encryption][1] in the
15749
- # *Amazon S3 API Reference*.
16379
+ # server-side encryption, this default encryption will be applied. For
16380
+ # more information, see [PutBucketEncryption][1].
16381
+ #
16382
+ # <note markdown="1"> * **General purpose buckets** - If you don't specify a customer
16383
+ # managed key at configuration, Amazon S3 automatically creates an
16384
+ # Amazon Web Services KMS key (`aws/s3`) in your Amazon Web Services
16385
+ # account the first time that you add an object encrypted with SSE-KMS
16386
+ # to a bucket. By default, Amazon S3 uses this KMS key for SSE-KMS.
16387
+ #
16388
+ # * **Directory buckets** - Your SSE-KMS configuration can only support
16389
+ # 1 [customer managed key][2] per directory bucket for the lifetime of
16390
+ # the bucket. [Amazon Web Services managed key][3] (`aws/s3`) isn't
16391
+ # supported.
16392
+ #
16393
+ # * **Directory buckets** - For directory buckets, there are only two
16394
+ # supported options for server-side encryption: SSE-S3 and SSE-KMS.
16395
+ #
16396
+ # </note>
15750
16397
  #
15751
16398
  #
15752
16399
  #
15753
16400
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html
16401
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
16402
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
15754
16403
  #
15755
16404
  # @!attribute [rw] sse_algorithm
15756
16405
  # Server-side encryption algorithm to use for the default encryption.
16406
+ #
16407
+ # <note markdown="1"> For directory buckets, there are only two supported values for
16408
+ # server-side encryption: `AES256` and `aws:kms`.
16409
+ #
16410
+ # </note>
15757
16411
  # @return [String]
15758
16412
  #
15759
16413
  # @!attribute [rw] kms_master_key_id
15760
- # Amazon Web Services Key Management Service (KMS) customer Amazon Web
15761
- # Services KMS key ID to use for the default encryption. This
15762
- # parameter is allowed if and only if `SSEAlgorithm` is set to
15763
- # `aws:kms` or `aws:kms:dsse`.
16414
+ # Amazon Web Services Key Management Service (KMS) customer managed
16415
+ # key ID to use for the default encryption.
16416
+ #
16417
+ # <note markdown="1"> * **General purpose buckets** - This parameter is allowed if and
16418
+ # only if `SSEAlgorithm` is set to `aws:kms` or `aws:kms:dsse`.
16419
+ #
16420
+ # * **Directory buckets** - This parameter is allowed if and only if
16421
+ # `SSEAlgorithm` is set to `aws:kms`.
16422
+ #
16423
+ # </note>
15764
16424
  #
15765
16425
  # You can specify the key ID, key alias, or the Amazon Resource Name
15766
16426
  # (ARN) of the KMS key.
@@ -15772,22 +16432,36 @@ module Aws::S3
15772
16432
  #
15773
16433
  # * Key Alias: `alias/alias-name`
15774
16434
  #
15775
- # If you use a key ID, you can run into a LogDestination undeliverable
15776
- # error when creating a VPC flow log.
15777
- #
15778
16435
  # If you are using encryption with cross-account or Amazon Web
15779
- # Services service operations you must use a fully qualified KMS key
16436
+ # Services service operations, you must use a fully qualified KMS key
15780
16437
  # ARN. For more information, see [Using encryption for cross-account
15781
16438
  # operations][1].
15782
16439
  #
16440
+ # <note markdown="1"> * **General purpose buckets** - If you're specifying a customer
16441
+ # managed KMS key, we recommend using a fully qualified KMS key ARN.
16442
+ # If you use a KMS key alias instead, then KMS resolves the key
16443
+ # within the requester’s account. This behavior can result in data
16444
+ # that's encrypted with a KMS key that belongs to the requester,
16445
+ # and not the bucket owner. Also, if you use a key ID, you can run
16446
+ # into a LogDestination undeliverable error when creating a VPC flow
16447
+ # log.
16448
+ #
16449
+ # * **Directory buckets** - When you specify an [KMS customer managed
16450
+ # key][2] for encryption in your directory bucket, only use the key
16451
+ # ID or key ARN. The key alias format of the KMS key isn't
16452
+ # supported.
16453
+ #
16454
+ # </note>
16455
+ #
15783
16456
  # Amazon S3 only supports symmetric encryption KMS keys. For more
15784
- # information, see [Asymmetric keys in Amazon Web Services KMS][2] in
16457
+ # information, see [Asymmetric keys in Amazon Web Services KMS][3] in
15785
16458
  # the *Amazon Web Services Key Management Service Developer Guide*.
15786
16459
  #
15787
16460
  #
15788
16461
  #
15789
16462
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy
15790
- # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
16463
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
16464
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
15791
16465
  # @return [String]
15792
16466
  #
15793
16467
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ServerSideEncryptionByDefault AWS API Documentation
@@ -15816,6 +16490,23 @@ module Aws::S3
15816
16490
 
15817
16491
  # Specifies the default server-side encryption configuration.
15818
16492
  #
16493
+ # <note markdown="1"> * **General purpose buckets** - If you're specifying a customer
16494
+ # managed KMS key, we recommend using a fully qualified KMS key ARN.
16495
+ # If you use a KMS key alias instead, then KMS resolves the key within
16496
+ # the requester’s account. This behavior can result in data that's
16497
+ # encrypted with a KMS key that belongs to the requester, and not the
16498
+ # bucket owner.
16499
+ #
16500
+ # * **Directory buckets** - When you specify an [KMS customer managed
16501
+ # key][1] for encryption in your directory bucket, only use the key ID
16502
+ # or key ARN. The key alias format of the KMS key isn't supported.
16503
+ #
16504
+ # </note>
16505
+ #
16506
+ #
16507
+ #
16508
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
16509
+ #
15819
16510
  # @!attribute [rw] apply_server_side_encryption_by_default
15820
16511
  # Specifies the default server-side encryption to apply to new objects
15821
16512
  # in the bucket. If a PUT Object request doesn't specify any
@@ -15827,14 +16518,31 @@ module Aws::S3
15827
16518
  # server-side encryption using KMS (SSE-KMS) for new objects in the
15828
16519
  # bucket. Existing objects are not affected. Setting the
15829
16520
  # `BucketKeyEnabled` element to `true` causes Amazon S3 to use an S3
15830
- # Bucket Key. By default, S3 Bucket Key is not enabled.
16521
+ # Bucket Key.
15831
16522
  #
15832
- # For more information, see [Amazon S3 Bucket Keys][1] in the *Amazon
15833
- # S3 User Guide*.
16523
+ # <note markdown="1"> * **General purpose buckets** - By default, S3 Bucket Key is not
16524
+ # enabled. For more information, see [Amazon S3 Bucket Keys][1] in
16525
+ # the *Amazon S3 User Guide*.
16526
+ #
16527
+ # * **Directory buckets** - S3 Bucket Keys are always enabled for
16528
+ # `GET` and `PUT` operations in a directory bucket and can’t be
16529
+ # disabled. S3 Bucket Keys aren't supported, when you copy SSE-KMS
16530
+ # encrypted objects from general purpose buckets to directory
16531
+ # buckets, from directory buckets to general purpose buckets, or
16532
+ # between directory buckets, through [CopyObject][2],
16533
+ # [UploadPartCopy][3], [the Copy operation in Batch Operations][4],
16534
+ # or [the import jobs][5]. In this case, Amazon S3 makes a call to
16535
+ # KMS every time a copy request is made for a KMS-encrypted object.
16536
+ #
16537
+ # </note>
15834
16538
  #
15835
16539
  #
15836
16540
  #
15837
16541
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html
16542
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
16543
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
16544
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
16545
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
15838
16546
  # @return [Boolean]
15839
16547
  #
15840
16548
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ServerSideEncryptionRule AWS API Documentation
@@ -15849,8 +16557,8 @@ module Aws::S3
15849
16557
  # The established temporary security credentials of the session.
15850
16558
  #
15851
16559
  # <note markdown="1"> **Directory buckets** - These session credentials are only supported
15852
- # for the authentication and authorization of Zonal endpoint APIs on
15853
- # directory buckets.
16560
+ # for the authentication and authorization of Zonal endpoint API
16561
+ # operations on directory buckets.
15854
16562
  #
15855
16563
  # </note>
15856
16564
  #
@@ -16284,11 +16992,6 @@ module Aws::S3
16284
16992
  # @!attribute [rw] server_side_encryption
16285
16993
  # The server-side encryption algorithm used when you store this object
16286
16994
  # in Amazon S3 (for example, `AES256`, `aws:kms`).
16287
- #
16288
- # <note markdown="1"> For directory buckets, only server-side encryption with Amazon S3
16289
- # managed keys (SSE-S3) (`AES256`) is supported.
16290
- #
16291
- # </note>
16292
16995
  # @return [String]
16293
16996
  #
16294
16997
  # @!attribute [rw] sse_customer_algorithm
@@ -16313,23 +17016,14 @@ module Aws::S3
16313
17016
  # @return [String]
16314
17017
  #
16315
17018
  # @!attribute [rw] ssekms_key_id
16316
- # If present, indicates the ID of the Key Management Service (KMS)
16317
- # symmetric encryption customer managed key that was used for the
16318
- # object.
16319
- #
16320
- # <note markdown="1"> This functionality is not supported for directory buckets.
16321
- #
16322
- # </note>
17019
+ # If present, indicates the ID of the KMS key that was used for object
17020
+ # encryption.
16323
17021
  # @return [String]
16324
17022
  #
16325
17023
  # @!attribute [rw] bucket_key_enabled
16326
17024
  # Indicates whether the multipart upload uses an S3 Bucket Key for
16327
17025
  # server-side encryption with Key Management Service (KMS) keys
16328
17026
  # (SSE-KMS).
16329
- #
16330
- # <note markdown="1"> This functionality is not supported for directory buckets.
16331
- #
16332
- # </note>
16333
17027
  # @return [Boolean]
16334
17028
  #
16335
17029
  # @!attribute [rw] request_charged
@@ -16680,11 +17374,6 @@ module Aws::S3
16680
17374
  # @!attribute [rw] server_side_encryption
16681
17375
  # The server-side encryption algorithm used when you store this object
16682
17376
  # in Amazon S3 (for example, `AES256`, `aws:kms`).
16683
- #
16684
- # <note markdown="1"> For directory buckets, only server-side encryption with Amazon S3
16685
- # managed keys (SSE-S3) (`AES256`) is supported.
16686
- #
16687
- # </note>
16688
17377
  # @return [String]
16689
17378
  #
16690
17379
  # @!attribute [rw] etag
@@ -16692,7 +17381,7 @@ module Aws::S3
16692
17381
  # @return [String]
16693
17382
  #
16694
17383
  # @!attribute [rw] checksum_crc32
16695
- # The base64-encoded, 32-bit CRC32 checksum of the object. This will
17384
+ # The base64-encoded, 32-bit CRC-32 checksum of the object. This will
16696
17385
  # only be present if it was uploaded with the object. When you use an
16697
17386
  # API operation on an object that was uploaded using multipart
16698
17387
  # uploads, this value may not be a direct checksum value of the full
@@ -16707,7 +17396,7 @@ module Aws::S3
16707
17396
  # @return [String]
16708
17397
  #
16709
17398
  # @!attribute [rw] checksum_crc32c
16710
- # The base64-encoded, 32-bit CRC32C checksum of the object. This will
17399
+ # The base64-encoded, 32-bit CRC-32C checksum of the object. This will
16711
17400
  # only be present if it was uploaded with the object. When you use an
16712
17401
  # API operation on an object that was uploaded using multipart
16713
17402
  # uploads, this value may not be a direct checksum value of the full
@@ -16773,23 +17462,14 @@ module Aws::S3
16773
17462
  # @return [String]
16774
17463
  #
16775
17464
  # @!attribute [rw] ssekms_key_id
16776
- # If present, indicates the ID of the Key Management Service (KMS)
16777
- # symmetric encryption customer managed key that was used for the
16778
- # object.
16779
- #
16780
- # <note markdown="1"> This functionality is not supported for directory buckets.
16781
- #
16782
- # </note>
17465
+ # If present, indicates the ID of the KMS key that was used for object
17466
+ # encryption.
16783
17467
  # @return [String]
16784
17468
  #
16785
17469
  # @!attribute [rw] bucket_key_enabled
16786
17470
  # Indicates whether the multipart upload uses an S3 Bucket Key for
16787
17471
  # server-side encryption with Key Management Service (KMS) keys
16788
17472
  # (SSE-KMS).
16789
- #
16790
- # <note markdown="1"> This functionality is not supported for directory buckets.
16791
- #
16792
- # </note>
16793
17473
  # @return [Boolean]
16794
17474
  #
16795
17475
  # @!attribute [rw] request_charged
@@ -16906,7 +17586,7 @@ module Aws::S3
16906
17586
  # @!attribute [rw] checksum_crc32
16907
17587
  # This header can be used as a data integrity check to verify that the
16908
17588
  # data received is the same data that was originally sent. This header
16909
- # specifies the base64-encoded, 32-bit CRC32 checksum of the object.
17589
+ # specifies the base64-encoded, 32-bit CRC-32 checksum of the object.
16910
17590
  # For more information, see [Checking object integrity][1] in the
16911
17591
  # *Amazon S3 User Guide*.
16912
17592
  #
@@ -16918,7 +17598,7 @@ module Aws::S3
16918
17598
  # @!attribute [rw] checksum_crc32c
16919
17599
  # This header can be used as a data integrity check to verify that the
16920
17600
  # data received is the same data that was originally sent. This header
16921
- # specifies the base64-encoded, 32-bit CRC32C checksum of the object.
17601
+ # specifies the base64-encoded, 32-bit CRC-32C checksum of the object.
16922
17602
  # For more information, see [Checking object integrity][1] in the
16923
17603
  # *Amazon S3 User Guide*.
16924
17604
  #
@@ -17208,7 +17888,7 @@ module Aws::S3
17208
17888
  # @!attribute [rw] checksum_crc32
17209
17889
  # This header can be used as a data integrity check to verify that the
17210
17890
  # data received is the same data that was originally sent. This
17211
- # specifies the base64-encoded, 32-bit CRC32 checksum of the object
17891
+ # specifies the base64-encoded, 32-bit CRC-32 checksum of the object
17212
17892
  # returned by the Object Lambda function. This may not match the
17213
17893
  # checksum for the object stored in Amazon S3. Amazon S3 will perform
17214
17894
  # validation of the checksum values only when the original `GetObject`
@@ -17229,7 +17909,7 @@ module Aws::S3
17229
17909
  # @!attribute [rw] checksum_crc32c
17230
17910
  # This header can be used as a data integrity check to verify that the
17231
17911
  # data received is the same data that was originally sent. This
17232
- # specifies the base64-encoded, 32-bit CRC32C checksum of the object
17912
+ # specifies the base64-encoded, 32-bit CRC-32C checksum of the object
17233
17913
  # returned by the Object Lambda function. This may not match the
17234
17914
  # checksum for the object stored in Amazon S3. Amazon S3 will perform
17235
17915
  # validation of the checksum values only when the original `GetObject`
@@ -17492,3 +18172,6 @@ module Aws::S3
17492
18172
 
17493
18173
  end
17494
18174
  end
18175
+
18176
+ require "aws-sdk-s3/customizations/types/list_object_versions_output"
18177
+ require "aws-sdk-s3/customizations/types/permanent_redirect"