aws-sdk-s3 1.157.0 → 1.166.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.
@@ -32,6 +32,7 @@ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
32
32
  require 'aws-sdk-core/plugins/request_compression.rb'
33
33
  require 'aws-sdk-core/plugins/defaults_mode.rb'
34
34
  require 'aws-sdk-core/plugins/recursion_detection.rb'
35
+ require 'aws-sdk-core/plugins/telemetry.rb'
35
36
  require 'aws-sdk-core/plugins/sign.rb'
36
37
  require 'aws-sdk-core/plugins/protocols/rest_xml.rb'
37
38
  require 'aws-sdk-s3/plugins/accelerate.rb'
@@ -56,8 +57,6 @@ require 'aws-sdk-s3/plugins/streaming_retry.rb'
56
57
  require 'aws-sdk-s3/plugins/url_encoded_keys.rb'
57
58
  require 'aws-sdk-core/plugins/event_stream_configuration.rb'
58
59
 
59
- Aws::Plugins::GlobalConfiguration.add_identifier(:s3)
60
-
61
60
  module Aws::S3
62
61
  # An API client for S3. To construct a client, you need to configure a `:region` and `:credentials`.
63
62
  #
@@ -104,6 +103,7 @@ module Aws::S3
104
103
  add_plugin(Aws::Plugins::RequestCompression)
105
104
  add_plugin(Aws::Plugins::DefaultsMode)
106
105
  add_plugin(Aws::Plugins::RecursionDetection)
106
+ add_plugin(Aws::Plugins::Telemetry)
107
107
  add_plugin(Aws::Plugins::Sign)
108
108
  add_plugin(Aws::Plugins::Protocols::RestXml)
109
109
  add_plugin(Aws::S3::Plugins::Accelerate)
@@ -170,13 +170,15 @@ module Aws::S3
170
170
  # locations will be searched for credentials:
171
171
  #
172
172
  # * `Aws.config[:credentials]`
173
- # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
174
- # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
173
+ # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
174
+ # `:account_id` options.
175
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'],
176
+ # ENV['AWS_SESSION_TOKEN'], and ENV['AWS_ACCOUNT_ID']
175
177
  # * `~/.aws/credentials`
176
178
  # * `~/.aws/config`
177
179
  # * EC2/ECS IMDS instance profile - When used by default, the timeouts
178
180
  # are very aggressive. Construct and pass an instance of
179
- # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
181
+ # `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
180
182
  # enable retries and extended timeouts. Instance profile credential
181
183
  # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
182
184
  # to true.
@@ -205,6 +207,8 @@ module Aws::S3
205
207
  #
206
208
  # @option options [String] :access_key_id
207
209
  #
210
+ # @option options [String] :account_id
211
+ #
208
212
  # @option options [Boolean] :active_endpoint_cache (false)
209
213
  # When set to `true`, a thread polling for endpoints will be running in
210
214
  # the background every 60 secs (default). Defaults to `false`.
@@ -432,6 +436,16 @@ module Aws::S3
432
436
  # ** Please note ** When response stubbing is enabled, no HTTP
433
437
  # requests are made, and retries are disabled.
434
438
  #
439
+ # @option options [Aws::Telemetry::TelemetryProviderBase] :telemetry_provider (Aws::Telemetry::NoOpTelemetryProvider)
440
+ # Allows you to provide a telemetry provider, which is used to
441
+ # emit telemetry data. By default, uses `NoOpTelemetryProvider` which
442
+ # will not record or emit any telemetry data. The SDK supports the
443
+ # following telemetry providers:
444
+ #
445
+ # * OpenTelemetry (OTel) - To use the OTel provider, install and require the
446
+ # `opentelemetry-sdk` gem and then, pass in an instance of a
447
+ # `Aws::Telemetry::OTelProvider` for telemetry provider.
448
+ #
435
449
  # @option options [Aws::TokenProvider] :token_provider
436
450
  # A Bearer Token Provider. This can be an instance of any one of the
437
451
  # following classes:
@@ -464,7 +478,9 @@ module Aws::S3
464
478
  # sending the request.
465
479
  #
466
480
  # @option options [Aws::S3::EndpointProvider] :endpoint_provider
467
- # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::S3::EndpointParameters`
481
+ # The endpoint provider used to resolve endpoints. Any object that responds to
482
+ # `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to
483
+ # `Aws::S3::EndpointParameters`.
468
484
  #
469
485
  # @option options [Float] :http_continue_timeout (1)
470
486
  # The number of seconds to wait for a 100-continue response before sending the
@@ -520,6 +536,12 @@ module Aws::S3
520
536
  # @option options [String] :ssl_ca_store
521
537
  # Sets the X509::Store to verify peer certificate.
522
538
  #
539
+ # @option options [OpenSSL::X509::Certificate] :ssl_cert
540
+ # Sets a client certificate when creating http connections.
541
+ #
542
+ # @option options [OpenSSL::PKey] :ssl_key
543
+ # Sets a client key when creating http connections.
544
+ #
523
545
  # @option options [Float] :ssl_timeout
524
546
  # Sets the SSL timeout in seconds
525
547
  #
@@ -544,12 +566,20 @@ module Aws::S3
544
566
  # for the part storage, you should call the [ListParts][1] API operation
545
567
  # and ensure that the parts list is empty.
546
568
  #
547
- # <note markdown="1"> **Directory buckets** - For directory buckets, you must make requests
548
- # for this API operation to the Zonal endpoint. These endpoints support
549
- # virtual-hosted-style requests in the format
550
- # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `.
551
- # Path-style requests are not supported. For more information, see
552
- # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*.
569
+ # <note markdown="1"> * **Directory buckets** - If multipart uploads in a directory bucket
570
+ # are in progress, you can't delete the bucket until all the
571
+ # in-progress multipart uploads are aborted or completed. To delete
572
+ # these in-progress multipart uploads, use the `ListMultipartUploads`
573
+ # operation to list the in-progress multipart uploads in the bucket
574
+ # and use the `AbortMultupartUpload` operation to abort all the
575
+ # in-progress multipart uploads.
576
+ #
577
+ # * **Directory buckets** - For directory buckets, you must make
578
+ # requests for this API operation to the Zonal endpoint. These
579
+ # endpoints support virtual-hosted-style requests in the format
580
+ # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name
581
+ # `. Path-style requests are not supported. For more information, see
582
+ # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*.
553
583
  #
554
584
  # </note>
555
585
  #
@@ -774,9 +804,15 @@ module Aws::S3
774
804
  # [Multipart Upload and Permissions][6] in the *Amazon S3 User
775
805
  # Guide*.
776
806
  #
807
+ # If you provide an [additional checksum value][7] in your
808
+ # `MultipartUpload` requests and the object is encrypted with Key
809
+ # Management Service, you must have permission to use the
810
+ # `kms:Decrypt` action for the `CompleteMultipartUpload` request to
811
+ # succeed.
812
+ #
777
813
  # * **Directory bucket permissions** - To grant access to this API
778
814
  # operation on a directory bucket, we recommend that you use the [
779
- # `CreateSession` ][7] API operation for session-based
815
+ # `CreateSession` ][8] API operation for session-based
780
816
  # authorization. Specifically, you grant the
781
817
  # `s3express:CreateSession` permission to the directory bucket in a
782
818
  # bucket policy or an IAM identity-based policy. Then, you make the
@@ -787,7 +823,11 @@ module Aws::S3
787
823
  # token for use. Amazon Web Services CLI or SDKs create session and
788
824
  # refresh the session token automatically to avoid service
789
825
  # interruptions when a session expires. For more information about
790
- # authorization, see [ `CreateSession` ][7].
826
+ # authorization, see [ `CreateSession` ][8].
827
+ #
828
+ # If the object is encrypted with SSE-KMS, you must also have the
829
+ # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
830
+ # identity-based policies and KMS key policies for the KMS key.
791
831
  #
792
832
  # Special errors
793
833
  # : * Error Code: `EntityTooSmall`
@@ -828,15 +868,15 @@ module Aws::S3
828
868
  #
829
869
  # The following operations are related to `CompleteMultipartUpload`:
830
870
  #
831
- # * [CreateMultipartUpload][8]
871
+ # * [CreateMultipartUpload][9]
832
872
  #
833
873
  # * [UploadPart][1]
834
874
  #
835
- # * [AbortMultipartUpload][9]
875
+ # * [AbortMultipartUpload][10]
836
876
  #
837
- # * [ListParts][10]
877
+ # * [ListParts][11]
838
878
  #
839
- # * [ListMultipartUploads][11]
879
+ # * [ListMultipartUploads][12]
840
880
  #
841
881
  #
842
882
  #
@@ -846,11 +886,12 @@ module Aws::S3
846
886
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html
847
887
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
848
888
  # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
849
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
850
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
851
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
852
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
853
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
889
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
890
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
891
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
892
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
893
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
894
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
854
895
  #
855
896
  # @option params [required, String] :bucket
856
897
  # Name of the bucket to which the multipart upload was initiated.
@@ -971,6 +1012,26 @@ module Aws::S3
971
1012
  # you provide does not match the actual owner of the bucket, the request
972
1013
  # fails with the HTTP status code `403 Forbidden` (access denied).
973
1014
  #
1015
+ # @option params [String] :if_none_match
1016
+ # Uploads the object only if the object key name does not already exist
1017
+ # in the bucket specified. Otherwise, Amazon S3 returns a `412
1018
+ # Precondition Failed` error.
1019
+ #
1020
+ # If a conflicting operation occurs during the upload S3 returns a `409
1021
+ # ConditionalRequestConflict` response. On a 409 failure you should
1022
+ # re-initiate the multipart upload with `CreateMultipartUpload` and
1023
+ # re-upload each part.
1024
+ #
1025
+ # Expects the '*' (asterisk) character.
1026
+ #
1027
+ # For more information about conditional requests, see [RFC 7232][1], or
1028
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
1029
+ #
1030
+ #
1031
+ #
1032
+ # [1]: https://tools.ietf.org/html/rfc7232
1033
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
1034
+ #
974
1035
  # @option params [String] :sse_customer_algorithm
975
1036
  # The server-side encryption (SSE) algorithm used to encrypt the object.
976
1037
  # This parameter is required only when the object was created using a
@@ -1086,6 +1147,7 @@ module Aws::S3
1086
1147
  # checksum_sha256: "ChecksumSHA256",
1087
1148
  # request_payer: "requester", # accepts requester
1088
1149
  # expected_bucket_owner: "AccountId",
1150
+ # if_none_match: "IfNoneMatch",
1089
1151
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1090
1152
  # sse_customer_key: "SSECustomerKey",
1091
1153
  # sse_customer_key_md5: "SSECustomerKeyMD5",
@@ -1132,12 +1194,20 @@ module Aws::S3
1132
1194
  # between directory buckets, and between general purpose buckets and
1133
1195
  # directory buckets.
1134
1196
  #
1135
- # <note markdown="1"> <b>Directory buckets </b> - For directory buckets, you must make
1136
- # requests for this API operation to the Zonal endpoint. These endpoints
1137
- # support virtual-hosted-style requests in the format
1138
- # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `.
1139
- # Path-style requests are not supported. For more information, see
1140
- # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*.
1197
+ # <note markdown="1"> * Amazon S3 supports copy operations using Multi-Region Access Points
1198
+ # only as a destination when using the Multi-Region Access Point ARN.
1199
+ #
1200
+ # * <b>Directory buckets </b> - For directory buckets, you must make
1201
+ # requests for this API operation to the Zonal endpoint. These
1202
+ # endpoints support virtual-hosted-style requests in the format
1203
+ # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name
1204
+ # `. Path-style requests are not supported. For more information, see
1205
+ # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*.
1206
+ #
1207
+ # * VPC endpoints don't support cross-Region requests (including
1208
+ # copies). If you're using VPC endpoints, your source and destination
1209
+ # buckets should be in the same Amazon Web Services Region as your VPC
1210
+ # endpoint.
1141
1211
  #
1142
1212
  # </note>
1143
1213
  #
@@ -1203,6 +1273,10 @@ module Aws::S3
1203
1273
  # destination. The `s3express:SessionMode` condition key can't be
1204
1274
  # set to `ReadOnly` on the copy destination bucket.
1205
1275
  #
1276
+ # If the object is encrypted with SSE-KMS, you must also have the
1277
+ # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
1278
+ # identity-based policies and KMS key policies for the KMS key.
1279
+ #
1206
1280
  # For example policies, see [Example bucket policies for S3 Express
1207
1281
  # One Zone][6] and [Amazon Web Services Identity and Access
1208
1282
  # Management (IAM) identity-based policies for S3 Express One
@@ -1649,9 +1723,8 @@ module Aws::S3
1649
1723
  #
1650
1724
  # @option params [String] :server_side_encryption
1651
1725
  # The server-side encryption algorithm used when storing this object in
1652
- # Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
1653
- # Unrecognized or unsupported values won’t write a destination object
1654
- # and will receive a `400 Bad Request` response.
1726
+ # Amazon S3. Unrecognized or unsupported values won’t write a
1727
+ # destination object and will receive a `400 Bad Request` response.
1655
1728
  #
1656
1729
  # Amazon S3 automatically encrypts all new objects that are copied to an
1657
1730
  # S3 bucket. When copying an object, if you don't specify encryption
@@ -1659,35 +1732,72 @@ module Aws::S3
1659
1732
  # object is set to the default encryption configuration of the
1660
1733
  # destination bucket. By default, all buckets have a base level of
1661
1734
  # encryption configuration that uses server-side encryption with Amazon
1662
- # S3 managed keys (SSE-S3). If the destination bucket has a default
1663
- # encryption configuration that uses server-side encryption with Key
1664
- # Management Service (KMS) keys (SSE-KMS), dual-layer server-side
1665
- # encryption with Amazon Web Services KMS keys (DSSE-KMS), or
1666
- # server-side encryption with customer-provided encryption keys (SSE-C),
1667
- # Amazon S3 uses the corresponding KMS key, or a customer-provided key
1668
- # to encrypt the target object copy.
1669
- #
1670
- # When you perform a `CopyObject` operation, if you want to use a
1671
- # different type of encryption setting for the target object, you can
1672
- # specify appropriate encryption-related headers to encrypt the target
1673
- # object with an Amazon S3 managed key, a KMS key, or a
1674
- # customer-provided key. If the encryption setting in your request is
1675
- # different from the default encryption configuration of the destination
1676
- # bucket, the encryption setting in your request takes precedence.
1735
+ # S3 managed keys (SSE-S3). If the destination bucket has a different
1736
+ # default encryption configuration, Amazon S3 uses the corresponding
1737
+ # encryption key to encrypt the target object copy.
1677
1738
  #
1678
1739
  # With server-side encryption, Amazon S3 encrypts your data as it writes
1679
1740
  # your data to disks in its data centers and decrypts the data when you
1680
1741
  # access it. For more information about server-side encryption, see
1681
1742
  # [Using Server-Side Encryption][1] in the *Amazon S3 User Guide*.
1682
1743
  #
1683
- # <note markdown="1"> For directory buckets, only server-side encryption with Amazon S3
1684
- # managed keys (SSE-S3) (`AES256`) is supported.
1685
- #
1686
- # </note>
1744
+ # <b>General purpose buckets </b>
1745
+ #
1746
+ # * For general purpose buckets, there are the following supported
1747
+ # options for server-side encryption: server-side encryption with Key
1748
+ # Management Service (KMS) keys (SSE-KMS), dual-layer server-side
1749
+ # encryption with Amazon Web Services KMS keys (DSSE-KMS), and
1750
+ # server-side encryption with customer-provided encryption keys
1751
+ # (SSE-C). Amazon S3 uses the corresponding KMS key, or a
1752
+ # customer-provided key to encrypt the target object copy.
1753
+ #
1754
+ # * When you perform a `CopyObject` operation, if you want to use a
1755
+ # different type of encryption setting for the target object, you can
1756
+ # specify appropriate encryption-related headers to encrypt the target
1757
+ # object with an Amazon S3 managed key, a KMS key, or a
1758
+ # customer-provided key. If the encryption setting in your request is
1759
+ # different from the default encryption configuration of the
1760
+ # destination bucket, the encryption setting in your request takes
1761
+ # precedence.
1762
+ #
1763
+ # <b>Directory buckets </b>
1764
+ #
1765
+ # * For directory buckets, there are only two supported options for
1766
+ # server-side encryption: server-side encryption with Amazon S3
1767
+ # managed keys (SSE-S3) (`AES256`) and server-side encryption with KMS
1768
+ # keys (SSE-KMS) (`aws:kms`). We recommend that the bucket's default
1769
+ # encryption uses the desired encryption configuration and you don't
1770
+ # override the bucket default encryption in your `CreateSession`
1771
+ # requests or `PUT` object requests. Then, new objects are
1772
+ # automatically encrypted with the desired encryption settings. For
1773
+ # more information, see [Protecting data with server-side
1774
+ # encryption][2] in the *Amazon S3 User Guide*. For more information
1775
+ # about the encryption overriding behaviors in directory buckets, see
1776
+ # [Specifying server-side encryption with KMS for new object
1777
+ # uploads][3].
1778
+ #
1779
+ # * To encrypt new object copies to a directory bucket with SSE-KMS, we
1780
+ # recommend you specify SSE-KMS as the directory bucket's default
1781
+ # encryption configuration with a KMS key (specifically, a [customer
1782
+ # managed key][4]). [Amazon Web Services managed key][5] (`aws/s3`)
1783
+ # isn't supported. Your SSE-KMS configuration can only support 1
1784
+ # [customer managed key][4] per directory bucket for the lifetime of
1785
+ # the bucket. After you specify a customer managed key for SSE-KMS,
1786
+ # you can't override the customer managed key for the bucket's
1787
+ # SSE-KMS configuration. Then, when you perform a `CopyObject`
1788
+ # operation and want to specify server-side encryption settings for
1789
+ # new object copies with SSE-KMS in the encryption-related request
1790
+ # headers, you must ensure the encryption key is the same customer
1791
+ # managed key that you specified for the directory bucket's default
1792
+ # encryption configuration.
1687
1793
  #
1688
1794
  #
1689
1795
  #
1690
1796
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
1797
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
1798
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
1799
+ # [4]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
1800
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
1691
1801
  #
1692
1802
  # @option params [String] :storage_class
1693
1803
  # If the `x-amz-storage-class` header is not used, the copied object
@@ -1784,33 +1894,51 @@ module Aws::S3
1784
1894
  # </note>
1785
1895
  #
1786
1896
  # @option params [String] :ssekms_key_id
1787
- # Specifies the KMS ID (Key ID, Key ARN, or Key Alias) to use for object
1788
- # encryption. All GET and PUT requests for an object protected by KMS
1789
- # will fail if they're not made via SSL or using SigV4. For information
1790
- # about configuring any of the officially supported Amazon Web Services
1791
- # SDKs and Amazon Web Services CLI, see [Specifying the Signature
1792
- # Version in Request Authentication][1] in the *Amazon S3 User Guide*.
1793
- #
1794
- # <note markdown="1"> This functionality is not supported when the destination bucket is a
1795
- # directory bucket.
1897
+ # Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for
1898
+ # object encryption. All GET and PUT requests for an object protected by
1899
+ # KMS will fail if they're not made via SSL or using SigV4. For
1900
+ # information about configuring any of the officially supported Amazon
1901
+ # Web Services SDKs and Amazon Web Services CLI, see [Specifying the
1902
+ # Signature Version in Request Authentication][1] in the *Amazon S3 User
1903
+ # Guide*.
1796
1904
  #
1797
- # </note>
1905
+ # **Directory buckets** - If you specify `x-amz-server-side-encryption`
1906
+ # with `aws:kms`, you must specify the `
1907
+ # x-amz-server-side-encryption-aws-kms-key-id` header with the ID (Key
1908
+ # ID or Key ARN) of the KMS symmetric encryption customer managed key to
1909
+ # use. Otherwise, you get an HTTP `400 Bad Request` error. Only use the
1910
+ # key ID or key ARN. The key alias format of the KMS key isn't
1911
+ # supported. Your SSE-KMS configuration can only support 1 [customer
1912
+ # managed key][2] per directory bucket for the lifetime of the bucket.
1913
+ # [Amazon Web Services managed key][3] (`aws/s3`) isn't supported.
1798
1914
  #
1799
1915
  #
1800
1916
  #
1801
1917
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
1918
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
1919
+ # [3]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
1802
1920
  #
1803
1921
  # @option params [String] :ssekms_encryption_context
1804
- # Specifies the Amazon Web Services KMS Encryption Context to use for
1805
- # object encryption. The value of this header is a base64-encoded UTF-8
1806
- # string holding JSON with the encryption context key-value pairs. This
1807
- # value must be explicitly added to specify encryption context for
1808
- # `CopyObject` requests.
1922
+ # Specifies the Amazon Web Services KMS Encryption Context as an
1923
+ # additional encryption context to use for the destination object
1924
+ # encryption. The value of this header is a base64-encoded UTF-8 string
1925
+ # holding JSON with the encryption context key-value pairs.
1809
1926
  #
1810
- # <note markdown="1"> This functionality is not supported when the destination bucket is a
1811
- # directory bucket.
1927
+ # **General purpose buckets** - This value must be explicitly added to
1928
+ # specify encryption context for `CopyObject` requests if you want an
1929
+ # additional encryption context for your destination object. The
1930
+ # additional encryption context of the source object won't be copied to
1931
+ # the destination object. For more information, see [Encryption
1932
+ # context][1] in the *Amazon S3 User Guide*.
1933
+ #
1934
+ # **Directory buckets** - You can optionally provide an explicit
1935
+ # encryption context value. The value must match the default encryption
1936
+ # context - the bucket Amazon Resource Name (ARN). An additional
1937
+ # encryption context value is not supported.
1812
1938
  #
1813
- # </note>
1939
+ #
1940
+ #
1941
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context
1814
1942
  #
1815
1943
  # @option params [Boolean] :bucket_key_enabled
1816
1944
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
@@ -1825,14 +1953,19 @@ module Aws::S3
1825
1953
  # For more information, see [Amazon S3 Bucket Keys][1] in the *Amazon S3
1826
1954
  # User Guide*.
1827
1955
  #
1828
- # <note markdown="1"> This functionality is not supported when the destination bucket is a
1829
- # directory bucket.
1956
+ # <note markdown="1"> **Directory buckets** - S3 Bucket Keys aren't supported, when you
1957
+ # copy SSE-KMS encrypted objects from general purpose buckets to
1958
+ # directory buckets, from directory buckets to general purpose buckets,
1959
+ # or between directory buckets, through [CopyObject][2]. In this case,
1960
+ # Amazon S3 makes a call to KMS every time a copy request is made for a
1961
+ # KMS-encrypted object.
1830
1962
  #
1831
1963
  # </note>
1832
1964
  #
1833
1965
  #
1834
1966
  #
1835
1967
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html
1968
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
1836
1969
  #
1837
1970
  # @option params [String] :copy_source_sse_customer_algorithm
1838
1971
  # Specifies the algorithm to use when decrypting the source object (for
@@ -2454,24 +2587,23 @@ module Aws::S3
2454
2587
  # Version 4)][5] in the *Amazon S3 User Guide*.
2455
2588
  #
2456
2589
  # Permissions
2457
- # : * **General purpose bucket permissions** - For information about the
2458
- # permissions required to use the multipart upload API, see
2459
- # [Multipart upload and permissions][6] in the *Amazon S3 User
2460
- # Guide*.
2461
- #
2462
- # To perform a multipart upload with encryption by using an Amazon
2463
- # Web Services KMS key, the requester must have permission to the
2464
- # `kms:Decrypt` and `kms:GenerateDataKey*` actions on the key. These
2465
- # permissions are required because Amazon S3 must decrypt and read
2466
- # data from the encrypted file parts before it completes the
2467
- # multipart upload. For more information, see [Multipart upload API
2468
- # and permissions][7] and [Protecting data using server-side
2469
- # encryption with Amazon Web Services KMS][8] in the *Amazon S3 User
2470
- # Guide*.
2590
+ # : * **General purpose bucket permissions** - To perform a multipart
2591
+ # upload with encryption using an Key Management Service (KMS) KMS
2592
+ # key, the requester must have permission to the `kms:Decrypt` and
2593
+ # `kms:GenerateDataKey` actions on the key. The requester must also
2594
+ # have permissions for the `kms:GenerateDataKey` action for the
2595
+ # `CreateMultipartUpload` API. Then, the requester needs permissions
2596
+ # for the `kms:Decrypt` action on the `UploadPart` and
2597
+ # `UploadPartCopy` APIs. These permissions are required because
2598
+ # Amazon S3 must decrypt and read data from the encrypted file parts
2599
+ # before it completes the multipart upload. For more information,
2600
+ # see [Multipart upload API and permissions][6] and [Protecting data
2601
+ # using server-side encryption with Amazon Web Services KMS][7] in
2602
+ # the *Amazon S3 User Guide*.
2471
2603
  #
2472
2604
  # * **Directory bucket permissions** - To grant access to this API
2473
2605
  # operation on a directory bucket, we recommend that you use the [
2474
- # `CreateSession` ][9] API operation for session-based
2606
+ # `CreateSession` ][8] API operation for session-based
2475
2607
  # authorization. Specifically, you grant the
2476
2608
  # `s3express:CreateSession` permission to the directory bucket in a
2477
2609
  # bucket policy or an IAM identity-based policy. Then, you make the
@@ -2482,7 +2614,7 @@ module Aws::S3
2482
2614
  # token for use. Amazon Web Services CLI or SDKs create session and
2483
2615
  # refresh the session token automatically to avoid service
2484
2616
  # interruptions when a session expires. For more information about
2485
- # authorization, see [ `CreateSession` ][9].
2617
+ # authorization, see [ `CreateSession` ][8].
2486
2618
  #
2487
2619
  # Encryption
2488
2620
  # : * **General purpose buckets** - Server-side encryption is for data
@@ -2509,7 +2641,7 @@ module Aws::S3
2509
2641
  # the destination bucket, the encryption setting in your request
2510
2642
  # takes precedence. If you choose to provide your own encryption
2511
2643
  # key, the request headers you provide in [UploadPart][1] and
2512
- # [UploadPartCopy][10] requests must match the headers you used in
2644
+ # [UploadPartCopy][9] requests must match the headers you used in
2513
2645
  # the `CreateMultipartUpload` request.
2514
2646
  #
2515
2647
  # * Use KMS keys (SSE-KMS) that include the Amazon Web Services
@@ -2535,9 +2667,9 @@ module Aws::S3
2535
2667
  # actions on the key. These permissions are required because
2536
2668
  # Amazon S3 must decrypt and read data from the encrypted file
2537
2669
  # parts before it completes the multipart upload. For more
2538
- # information, see [Multipart upload API and permissions][7] and
2670
+ # information, see [Multipart upload API and permissions][6] and
2539
2671
  # [Protecting data using server-side encryption with Amazon Web
2540
- # Services KMS][8] in the *Amazon S3 User Guide*.
2672
+ # Services KMS][7] in the *Amazon S3 User Guide*.
2541
2673
  #
2542
2674
  # * If your Identity and Access Management (IAM) user or role is
2543
2675
  # in the same Amazon Web Services account as the KMS key, then
@@ -2552,13 +2684,13 @@ module Aws::S3
2552
2684
  # For information about configuring any of the officially
2553
2685
  # supported Amazon Web Services SDKs and Amazon Web Services
2554
2686
  # CLI, see [Specifying the Signature Version in Request
2555
- # Authentication][11] in the *Amazon S3 User Guide*.
2687
+ # Authentication][10] in the *Amazon S3 User Guide*.
2556
2688
  #
2557
2689
  # </note>
2558
2690
  #
2559
2691
  # For more information about server-side encryption with KMS keys
2560
2692
  # (SSE-KMS), see [Protecting Data Using Server-Side Encryption
2561
- # with KMS keys][8] in the *Amazon S3 User Guide*.
2693
+ # with KMS keys][7] in the *Amazon S3 User Guide*.
2562
2694
  #
2563
2695
  # * Use customer-provided encryption keys (SSE-C) – If you want to
2564
2696
  # manage your own encryption keys, provide all the following
@@ -2573,11 +2705,55 @@ module Aws::S3
2573
2705
  # For more information about server-side encryption with
2574
2706
  # customer-provided encryption keys (SSE-C), see [ Protecting data
2575
2707
  # using server-side encryption with customer-provided encryption
2576
- # keys (SSE-C)][12] in the *Amazon S3 User Guide*.
2708
+ # keys (SSE-C)][11] in the *Amazon S3 User Guide*.
2709
+ #
2710
+ # * **Directory buckets** - For directory buckets, there are only two
2711
+ # supported options for server-side encryption: server-side
2712
+ # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
2713
+ # server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We
2714
+ # recommend that the bucket's default encryption uses the desired
2715
+ # encryption configuration and you don't override the bucket
2716
+ # default encryption in your `CreateSession` requests or `PUT`
2717
+ # object requests. Then, new objects are automatically encrypted
2718
+ # with the desired encryption settings. For more information, see
2719
+ # [Protecting data with server-side encryption][12] in the *Amazon
2720
+ # S3 User Guide*. For more information about the encryption
2721
+ # overriding behaviors in directory buckets, see [Specifying
2722
+ # server-side encryption with KMS for new object uploads][13].
2723
+ #
2724
+ # In the Zonal endpoint API calls (except [CopyObject][14] and
2725
+ # [UploadPartCopy][9]) using the REST API, the encryption request
2726
+ # headers must match the encryption settings that are specified in
2727
+ # the `CreateSession` request. You can't override the values of the
2728
+ # encryption settings (`x-amz-server-side-encryption`,
2729
+ # `x-amz-server-side-encryption-aws-kms-key-id`,
2730
+ # `x-amz-server-side-encryption-context`, and
2731
+ # `x-amz-server-side-encryption-bucket-key-enabled`) that are
2732
+ # specified in the `CreateSession` request. You don't need to
2733
+ # explicitly specify these encryption settings values in Zonal
2734
+ # endpoint API calls, and Amazon S3 will use the encryption settings
2735
+ # values from the `CreateSession` request to protect new objects in
2736
+ # the directory bucket.
2737
+ #
2738
+ # <note markdown="1"> When you use the CLI or the Amazon Web Services SDKs, for
2739
+ # `CreateSession`, the session token refreshes automatically to
2740
+ # avoid service interruptions when a session expires. The CLI or the
2741
+ # Amazon Web Services SDKs use the bucket's default encryption
2742
+ # configuration for the `CreateSession` request. It's not supported
2743
+ # to override the encryption settings values in the `CreateSession`
2744
+ # request. So in the Zonal endpoint API calls (except
2745
+ # [CopyObject][14] and [UploadPartCopy][9]), the encryption request
2746
+ # headers must match the default encryption configuration of the
2747
+ # directory bucket.
2577
2748
  #
2578
- # * **Directory buckets** -For directory buckets, only server-side
2579
- # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) is
2580
- # supported.
2749
+ # </note>
2750
+ #
2751
+ # <note markdown="1"> For directory buckets, when you perform a `CreateMultipartUpload`
2752
+ # operation and an `UploadPartCopy` operation, the request headers
2753
+ # you provide in the `CreateMultipartUpload` request must match the
2754
+ # default encryption configuration of the destination bucket.
2755
+ #
2756
+ # </note>
2581
2757
  #
2582
2758
  # HTTP Host header syntax
2583
2759
  #
@@ -2588,13 +2764,13 @@ module Aws::S3
2588
2764
  #
2589
2765
  # * [UploadPart][1]
2590
2766
  #
2591
- # * [CompleteMultipartUpload][13]
2767
+ # * [CompleteMultipartUpload][15]
2592
2768
  #
2593
- # * [AbortMultipartUpload][14]
2769
+ # * [AbortMultipartUpload][16]
2594
2770
  #
2595
- # * [ListParts][15]
2771
+ # * [ListParts][17]
2596
2772
  #
2597
- # * [ListMultipartUploads][16]
2773
+ # * [ListMultipartUploads][18]
2598
2774
  #
2599
2775
  #
2600
2776
  #
@@ -2603,17 +2779,19 @@ module Aws::S3
2603
2779
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html#mpu-abort-incomplete-mpu-lifecycle-config
2604
2780
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
2605
2781
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html
2606
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
2607
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
2608
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
2609
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
2610
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
2611
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
2612
- # [12]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html
2613
- # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
2614
- # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
2615
- # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
2616
- # [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
2782
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
2783
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
2784
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
2785
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
2786
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
2787
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html
2788
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
2789
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
2790
+ # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
2791
+ # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
2792
+ # [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
2793
+ # [17]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
2794
+ # [18]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
2617
2795
  #
2618
2796
  # @option params [String] :acl
2619
2797
  # The canned ACL to apply to the object. Amazon S3 supports a set of
@@ -2976,10 +3154,52 @@ module Aws::S3
2976
3154
  # The server-side encryption algorithm used when you store this object
2977
3155
  # in Amazon S3 (for example, `AES256`, `aws:kms`).
2978
3156
  #
2979
- # <note markdown="1"> For directory buckets, only server-side encryption with Amazon S3
2980
- # managed keys (SSE-S3) (`AES256`) is supported.
3157
+ # * <b>Directory buckets </b> - For directory buckets, there are only
3158
+ # two supported options for server-side encryption: server-side
3159
+ # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
3160
+ # server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We
3161
+ # recommend that the bucket's default encryption uses the desired
3162
+ # encryption configuration and you don't override the bucket default
3163
+ # encryption in your `CreateSession` requests or `PUT` object
3164
+ # requests. Then, new objects are automatically encrypted with the
3165
+ # desired encryption settings. For more information, see [Protecting
3166
+ # data with server-side encryption][1] in the *Amazon S3 User Guide*.
3167
+ # For more information about the encryption overriding behaviors in
3168
+ # directory buckets, see [Specifying server-side encryption with KMS
3169
+ # for new object uploads][2].
3170
+ #
3171
+ # In the Zonal endpoint API calls (except [CopyObject][3] and
3172
+ # [UploadPartCopy][4]) using the REST API, the encryption request
3173
+ # headers must match the encryption settings that are specified in the
3174
+ # `CreateSession` request. You can't override the values of the
3175
+ # encryption settings (`x-amz-server-side-encryption`,
3176
+ # `x-amz-server-side-encryption-aws-kms-key-id`,
3177
+ # `x-amz-server-side-encryption-context`, and
3178
+ # `x-amz-server-side-encryption-bucket-key-enabled`) that are
3179
+ # specified in the `CreateSession` request. You don't need to
3180
+ # explicitly specify these encryption settings values in Zonal
3181
+ # endpoint API calls, and Amazon S3 will use the encryption settings
3182
+ # values from the `CreateSession` request to protect new objects in
3183
+ # the directory bucket.
3184
+ #
3185
+ # <note markdown="1"> When you use the CLI or the Amazon Web Services SDKs, for
3186
+ # `CreateSession`, the session token refreshes automatically to avoid
3187
+ # service interruptions when a session expires. The CLI or the Amazon
3188
+ # Web Services SDKs use the bucket's default encryption configuration
3189
+ # for the `CreateSession` request. It's not supported to override the
3190
+ # encryption settings values in the `CreateSession` request. So in the
3191
+ # Zonal endpoint API calls (except [CopyObject][3] and
3192
+ # [UploadPartCopy][4]), the encryption request headers must match the
3193
+ # default encryption configuration of the directory bucket.
3194
+ #
3195
+ # </note>
2981
3196
  #
2982
- # </note>
3197
+ #
3198
+ #
3199
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
3200
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
3201
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
3202
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
2983
3203
  #
2984
3204
  # @option params [String] :storage_class
2985
3205
  # By default, Amazon S3 uses the STANDARD Storage Class to store newly
@@ -3038,34 +3258,71 @@ module Aws::S3
3038
3258
  # </note>
3039
3259
  #
3040
3260
  # @option params [String] :ssekms_key_id
3041
- # Specifies the ID (Key ID, Key ARN, or Key Alias) of the symmetric
3042
- # encryption customer managed key to use for object encryption.
3043
- #
3044
- # <note markdown="1"> This functionality is not supported for directory buckets.
3045
- #
3046
- # </note>
3261
+ # Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for
3262
+ # object encryption. If the KMS key doesn't exist in the same account
3263
+ # that's issuing the command, you must use the full Key ARN not the Key
3264
+ # ID.
3265
+ #
3266
+ # **General purpose buckets** - If you specify
3267
+ # `x-amz-server-side-encryption` with `aws:kms` or `aws:kms:dsse`, this
3268
+ # header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS key
3269
+ # to use. If you specify `x-amz-server-side-encryption:aws:kms` or
3270
+ # `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide
3271
+ # `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
3272
+ # Amazon Web Services managed key (`aws/s3`) to protect the data.
3273
+ #
3274
+ # **Directory buckets** - If you specify `x-amz-server-side-encryption`
3275
+ # with `aws:kms`, you must specify the `
3276
+ # x-amz-server-side-encryption-aws-kms-key-id` header with the ID (Key
3277
+ # ID or Key ARN) of the KMS symmetric encryption customer managed key to
3278
+ # use. Otherwise, you get an HTTP `400 Bad Request` error. Only use the
3279
+ # key ID or key ARN. The key alias format of the KMS key isn't
3280
+ # supported. Your SSE-KMS configuration can only support 1 [customer
3281
+ # managed key][1] per directory bucket for the lifetime of the bucket.
3282
+ # [Amazon Web Services managed key][2] (`aws/s3`) isn't supported.
3283
+ #
3284
+ #
3285
+ #
3286
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
3287
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
3047
3288
  #
3048
3289
  # @option params [String] :ssekms_encryption_context
3049
3290
  # Specifies the Amazon Web Services KMS Encryption Context to use for
3050
- # object encryption. The value of this header is a base64-encoded UTF-8
3051
- # string holding JSON with the encryption context key-value pairs.
3291
+ # object encryption. The value of this header is a Base64-encoded string
3292
+ # of a UTF-8 encoded JSON, which contains the encryption context as
3293
+ # key-value pairs.
3052
3294
  #
3053
- # <note markdown="1"> This functionality is not supported for directory buckets.
3054
- #
3055
- # </note>
3295
+ # **Directory buckets** - You can optionally provide an explicit
3296
+ # encryption context value. The value must match the default encryption
3297
+ # context - the bucket Amazon Resource Name (ARN). An additional
3298
+ # encryption context value is not supported.
3056
3299
  #
3057
3300
  # @option params [Boolean] :bucket_key_enabled
3058
3301
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
3059
3302
  # encryption with server-side encryption using Key Management Service
3060
- # (KMS) keys (SSE-KMS). Setting this header to `true` causes Amazon S3
3061
- # to use an S3 Bucket Key for object encryption with SSE-KMS.
3303
+ # (KMS) keys (SSE-KMS).
3062
3304
  #
3063
- # Specifying this header with an object action doesn’t affect
3305
+ # **General purpose buckets** - Setting this header to `true` causes
3306
+ # Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.
3307
+ # Also, specifying this header with a PUT action doesn't affect
3064
3308
  # bucket-level settings for S3 Bucket Key.
3065
3309
  #
3066
- # <note markdown="1"> This functionality is not supported for directory buckets.
3310
+ # **Directory buckets** - S3 Bucket Keys are always enabled for `GET`
3311
+ # and `PUT` operations in a directory bucket and can’t be disabled. S3
3312
+ # Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects
3313
+ # from general purpose buckets to directory buckets, from directory
3314
+ # buckets to general purpose buckets, or between directory buckets,
3315
+ # through [CopyObject][1], [UploadPartCopy][2], [the Copy operation in
3316
+ # Batch Operations][3], or [the import jobs][4]. In this case, Amazon S3
3317
+ # makes a call to KMS every time a copy request is made for a
3318
+ # KMS-encrypted object.
3319
+ #
3067
3320
  #
3068
- # </note>
3321
+ #
3322
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
3323
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
3324
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
3325
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
3069
3326
  #
3070
3327
  # @option params [String] :request_payer
3071
3328
  # Confirms that the requester knows that they will be charged for the
@@ -3226,9 +3483,10 @@ module Aws::S3
3226
3483
 
3227
3484
  # Creates a session that establishes temporary security credentials to
3228
3485
  # support fast authentication and authorization for the Zonal endpoint
3229
- # APIs on directory buckets. For more information about Zonal endpoint
3230
- # APIs that include the Availability Zone in the request endpoint, see
3231
- # [S3 Express One Zone APIs][1] in the *Amazon S3 User Guide*.
3486
+ # API operations on directory buckets. For more information about Zonal
3487
+ # endpoint API operations that include the Availability Zone in the
3488
+ # request endpoint, see [S3 Express One Zone APIs][1] in the *Amazon S3
3489
+ # User Guide*.
3232
3490
  #
3233
3491
  # To make Zonal endpoint API requests on a directory bucket, use the
3234
3492
  # `CreateSession` API operation. Specifically, you grant
@@ -3237,13 +3495,13 @@ module Aws::S3
3237
3495
  # the `CreateSession` API request on the bucket, which returns temporary
3238
3496
  # security credentials that include the access key ID, secret access
3239
3497
  # key, session token, and expiration. These credentials have associated
3240
- # permissions to access the Zonal endpoint APIs. After the session is
3241
- # created, you don’t need to use other policies to grant permissions to
3242
- # each Zonal endpoint API individually. Instead, in your Zonal endpoint
3243
- # API requests, you sign your requests by applying the temporary
3244
- # security credentials of the session to the request headers and
3245
- # following the SigV4 protocol for authentication. You also apply the
3246
- # session token to the `x-amz-s3session-token` request header for
3498
+ # permissions to access the Zonal endpoint API operations. After the
3499
+ # session is created, you don’t need to use other policies to grant
3500
+ # permissions to each Zonal endpoint API individually. Instead, in your
3501
+ # Zonal endpoint API requests, you sign your requests by applying the
3502
+ # temporary security credentials of the session to the request headers
3503
+ # and following the SigV4 protocol for authentication. You also apply
3504
+ # the session token to the `x-amz-s3session-token` request header for
3247
3505
  # authorization. Temporary security credentials are scoped to the bucket
3248
3506
  # and expire after 5 minutes. After the expiration time, any calls that
3249
3507
  # you make with those credentials will fail. You must use IAM
@@ -3266,16 +3524,16 @@ module Aws::S3
3266
3524
  # [Regional and Zonal endpoints][3] in the *Amazon S3 User Guide*.
3267
3525
  #
3268
3526
  # * <b> <code>CopyObject</code> API operation</b> - Unlike other Zonal
3269
- # endpoint APIs, the `CopyObject` API operation doesn't use the
3270
- # temporary security credentials returned from the `CreateSession` API
3271
- # operation for authentication and authorization. For information
3527
+ # endpoint API operations, the `CopyObject` API operation doesn't use
3528
+ # the temporary security credentials returned from the `CreateSession`
3529
+ # API operation for authentication and authorization. For information
3272
3530
  # about authentication and authorization of the `CopyObject` API
3273
3531
  # operation on directory buckets, see [CopyObject][4].
3274
3532
  #
3275
3533
  # * <b> <code>HeadBucket</code> API operation</b> - Unlike other Zonal
3276
- # endpoint APIs, the `HeadBucket` API operation doesn't use the
3277
- # temporary security credentials returned from the `CreateSession` API
3278
- # operation for authentication and authorization. For information
3534
+ # endpoint API operations, the `HeadBucket` API operation doesn't use
3535
+ # the temporary security credentials returned from the `CreateSession`
3536
+ # API operation for authentication and authorization. For information
3279
3537
  # about authentication and authorization of the `HeadBucket` API
3280
3538
  # operation on directory buckets, see [HeadBucket][5].
3281
3539
  #
@@ -3294,9 +3552,71 @@ module Aws::S3
3294
3552
  # Identity and Access Management (IAM) identity-based policies for S3
3295
3553
  # Express One Zone][8] in the *Amazon S3 User Guide*.
3296
3554
  #
3297
- # To grant cross-account access to Zonal endpoint APIs, the bucket
3298
- # policy should also grant both accounts the `s3express:CreateSession`
3299
- # permission.
3555
+ # To grant cross-account access to Zonal endpoint API operations, the
3556
+ # bucket policy should also grant both accounts the
3557
+ # `s3express:CreateSession` permission.
3558
+ #
3559
+ # If you want to encrypt objects with SSE-KMS, you must also have the
3560
+ # `kms:GenerateDataKey` and the `kms:Decrypt` permissions in IAM
3561
+ # identity-based policies and KMS key policies for the target KMS key.
3562
+ #
3563
+ # Encryption
3564
+ #
3565
+ # : For directory buckets, there are only two supported options for
3566
+ # server-side encryption: server-side encryption with Amazon S3
3567
+ # managed keys (SSE-S3) (`AES256`) and server-side encryption with KMS
3568
+ # keys (SSE-KMS) (`aws:kms`). We recommend that the bucket's default
3569
+ # encryption uses the desired encryption configuration and you don't
3570
+ # override the bucket default encryption in your `CreateSession`
3571
+ # requests or `PUT` object requests. Then, new objects are
3572
+ # automatically encrypted with the desired encryption settings. For
3573
+ # more information, see [Protecting data with server-side
3574
+ # encryption][9] in the *Amazon S3 User Guide*. For more information
3575
+ # about the encryption overriding behaviors in directory buckets, see
3576
+ # [Specifying server-side encryption with KMS for new object
3577
+ # uploads][10].
3578
+ #
3579
+ # For [Zonal endpoint (object-level) API operations][11] except
3580
+ # [CopyObject][4] and [UploadPartCopy][12], you authenticate and
3581
+ # authorize requests through [CreateSession][13] for low latency. To
3582
+ # encrypt new objects in a directory bucket with SSE-KMS, you must
3583
+ # specify SSE-KMS as the directory bucket's default encryption
3584
+ # configuration with a KMS key (specifically, a [customer managed
3585
+ # key][14]). Then, when a session is created for Zonal endpoint API
3586
+ # operations, new objects are automatically encrypted and decrypted
3587
+ # with SSE-KMS and S3 Bucket Keys during the session.
3588
+ #
3589
+ # <note markdown="1"> Only 1 [customer managed key][14] is supported per directory bucket
3590
+ # for the lifetime of the bucket. [Amazon Web Services managed
3591
+ # key][15] (`aws/s3`) isn't supported. After you specify SSE-KMS as
3592
+ # your bucket's default encryption configuration with a customer
3593
+ # managed key, you can't change the customer managed key for the
3594
+ # bucket's SSE-KMS configuration.
3595
+ #
3596
+ # </note>
3597
+ #
3598
+ # In the Zonal endpoint API calls (except [CopyObject][4] and
3599
+ # [UploadPartCopy][12]) using the REST API, you can't override the
3600
+ # values of the encryption settings (`x-amz-server-side-encryption`,
3601
+ # `x-amz-server-side-encryption-aws-kms-key-id`,
3602
+ # `x-amz-server-side-encryption-context`, and
3603
+ # `x-amz-server-side-encryption-bucket-key-enabled`) from the
3604
+ # `CreateSession` request. You don't need to explicitly specify these
3605
+ # encryption settings values in Zonal endpoint API calls, and Amazon
3606
+ # S3 will use the encryption settings values from the `CreateSession`
3607
+ # request to protect new objects in the directory bucket.
3608
+ #
3609
+ # <note markdown="1"> When you use the CLI or the Amazon Web Services SDKs, for
3610
+ # `CreateSession`, the session token refreshes automatically to avoid
3611
+ # service interruptions when a session expires. The CLI or the Amazon
3612
+ # Web Services SDKs use the bucket's default encryption configuration
3613
+ # for the `CreateSession` request. It's not supported to override the
3614
+ # encryption settings values in the `CreateSession` request. Also, in
3615
+ # the Zonal endpoint API calls (except [CopyObject][4] and
3616
+ # [UploadPartCopy][12]), it's not supported to override the values of
3617
+ # the encryption settings from the `CreateSession` request.
3618
+ #
3619
+ # </note>
3300
3620
  #
3301
3621
  # HTTP Host header syntax
3302
3622
  #
@@ -3313,21 +3633,110 @@ module Aws::S3
3313
3633
  # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html#API_CreateSession_RequestParameters
3314
3634
  # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
3315
3635
  # [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
3636
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
3637
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
3638
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-differences.html#s3-express-differences-api-operations
3639
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
3640
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
3641
+ # [14]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
3642
+ # [15]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
3316
3643
  #
3317
3644
  # @option params [String] :session_mode
3318
3645
  # Specifies the mode of the session that will be created, either
3319
3646
  # `ReadWrite` or `ReadOnly`. By default, a `ReadWrite` session is
3320
3647
  # created. A `ReadWrite` session is capable of executing all the Zonal
3321
- # endpoint APIs on a directory bucket. A `ReadOnly` session is
3322
- # constrained to execute the following Zonal endpoint APIs: `GetObject`,
3323
- # `HeadObject`, `ListObjectsV2`, `GetObjectAttributes`, `ListParts`, and
3324
- # `ListMultipartUploads`.
3648
+ # endpoint API operations on a directory bucket. A `ReadOnly` session is
3649
+ # constrained to execute the following Zonal endpoint API operations:
3650
+ # `GetObject`, `HeadObject`, `ListObjectsV2`, `GetObjectAttributes`,
3651
+ # `ListParts`, and `ListMultipartUploads`.
3325
3652
  #
3326
3653
  # @option params [required, String] :bucket
3327
3654
  # The name of the bucket that you create a session for.
3328
3655
  #
3656
+ # @option params [String] :server_side_encryption
3657
+ # The server-side encryption algorithm to use when you store objects in
3658
+ # the directory bucket.
3659
+ #
3660
+ # For directory buckets, there are only two supported options for
3661
+ # server-side encryption: server-side encryption with Amazon S3 managed
3662
+ # keys (SSE-S3) (`AES256`) and server-side encryption with KMS keys
3663
+ # (SSE-KMS) (`aws:kms`). By default, Amazon S3 encrypts data with
3664
+ # SSE-S3. For more information, see [Protecting data with server-side
3665
+ # encryption][1] in the *Amazon S3 User Guide*.
3666
+ #
3667
+ #
3668
+ #
3669
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
3670
+ #
3671
+ # @option params [String] :ssekms_key_id
3672
+ # If you specify `x-amz-server-side-encryption` with `aws:kms`, you must
3673
+ # specify the ` x-amz-server-side-encryption-aws-kms-key-id` header with
3674
+ # the ID (Key ID or Key ARN) of the KMS symmetric encryption customer
3675
+ # managed key to use. Otherwise, you get an HTTP `400 Bad Request`
3676
+ # error. Only use the key ID or key ARN. The key alias format of the KMS
3677
+ # key isn't supported. Also, if the KMS key doesn't exist in the same
3678
+ # account that't issuing the command, you must use the full Key ARN not
3679
+ # the Key ID.
3680
+ #
3681
+ # Your SSE-KMS configuration can only support 1 [customer managed
3682
+ # key][1] per directory bucket for the lifetime of the bucket. [Amazon
3683
+ # Web Services managed key][2] (`aws/s3`) isn't supported.
3684
+ #
3685
+ #
3686
+ #
3687
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
3688
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
3689
+ #
3690
+ # @option params [String] :ssekms_encryption_context
3691
+ # Specifies the Amazon Web Services KMS Encryption Context as an
3692
+ # additional encryption context to use for object encryption. The value
3693
+ # of this header is a Base64-encoded string of a UTF-8 encoded JSON,
3694
+ # which contains the encryption context as key-value pairs. This value
3695
+ # is stored as object metadata and automatically gets passed on to
3696
+ # Amazon Web Services KMS for future `GetObject` operations on this
3697
+ # object.
3698
+ #
3699
+ # **General purpose buckets** - This value must be explicitly added
3700
+ # during `CopyObject` operations if you want an additional encryption
3701
+ # context for your object. For more information, see [Encryption
3702
+ # context][1] in the *Amazon S3 User Guide*.
3703
+ #
3704
+ # **Directory buckets** - You can optionally provide an explicit
3705
+ # encryption context value. The value must match the default encryption
3706
+ # context - the bucket Amazon Resource Name (ARN). An additional
3707
+ # encryption context value is not supported.
3708
+ #
3709
+ #
3710
+ #
3711
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context
3712
+ #
3713
+ # @option params [Boolean] :bucket_key_enabled
3714
+ # Specifies whether Amazon S3 should use an S3 Bucket Key for object
3715
+ # encryption with server-side encryption using KMS keys (SSE-KMS).
3716
+ #
3717
+ # S3 Bucket Keys are always enabled for `GET` and `PUT` operations in a
3718
+ # directory bucket and can’t be disabled. S3 Bucket Keys aren't
3719
+ # supported, when you copy SSE-KMS encrypted objects from general
3720
+ # purpose buckets to directory buckets, from directory buckets to
3721
+ # general purpose buckets, or between directory buckets, through
3722
+ # [CopyObject][1], [UploadPartCopy][2], [the Copy operation in Batch
3723
+ # Operations][3], or [the import jobs][4]. In this case, Amazon S3 makes
3724
+ # a call to KMS every time a copy request is made for a KMS-encrypted
3725
+ # object.
3726
+ #
3727
+ #
3728
+ #
3729
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
3730
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
3731
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
3732
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
3733
+ #
3329
3734
  # @return [Types::CreateSessionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3330
3735
  #
3736
+ # * {Types::CreateSessionOutput#server_side_encryption #server_side_encryption} => String
3737
+ # * {Types::CreateSessionOutput#ssekms_key_id #ssekms_key_id} => String
3738
+ # * {Types::CreateSessionOutput#ssekms_encryption_context #ssekms_encryption_context} => String
3739
+ # * {Types::CreateSessionOutput#bucket_key_enabled #bucket_key_enabled} => Boolean
3331
3740
  # * {Types::CreateSessionOutput#credentials #credentials} => Types::SessionCredentials
3332
3741
  #
3333
3742
  # @example Request syntax with placeholder values
@@ -3335,10 +3744,18 @@ module Aws::S3
3335
3744
  # resp = client.create_session({
3336
3745
  # session_mode: "ReadOnly", # accepts ReadOnly, ReadWrite
3337
3746
  # bucket: "BucketName", # required
3747
+ # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
3748
+ # ssekms_key_id: "SSEKMSKeyId",
3749
+ # ssekms_encryption_context: "SSEKMSEncryptionContext",
3750
+ # bucket_key_enabled: false,
3338
3751
  # })
3339
3752
  #
3340
3753
  # @example Response structure
3341
3754
  #
3755
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse"
3756
+ # resp.ssekms_key_id #=> String
3757
+ # resp.ssekms_encryption_context #=> String
3758
+ # resp.bucket_key_enabled #=> Boolean
3342
3759
  # resp.credentials.access_key_id #=> String
3343
3760
  # resp.credentials.secret_access_key #=> String
3344
3761
  # resp.credentials.session_token #=> String
@@ -3584,47 +4001,92 @@ module Aws::S3
3584
4001
  req.send_request(options)
3585
4002
  end
3586
4003
 
3587
- # <note markdown="1"> This operation is not supported by directory buckets.
4004
+ # This implementation of the DELETE action resets the default encryption
4005
+ # for the bucket as server-side encryption with Amazon S3 managed keys
4006
+ # (SSE-S3).
4007
+ #
4008
+ # <note markdown="1"> * **General purpose buckets** - For information about the bucket
4009
+ # default encryption feature, see [Amazon S3 Bucket Default
4010
+ # Encryption][1] in the *Amazon S3 User Guide*.
4011
+ #
4012
+ # * **Directory buckets** - For directory buckets, there are only two
4013
+ # supported options for server-side encryption: SSE-S3 and SSE-KMS.
4014
+ # For information about the default encryption configuration in
4015
+ # directory buckets, see [Setting default server-side encryption
4016
+ # behavior for directory buckets][2].
3588
4017
  #
3589
4018
  # </note>
3590
4019
  #
3591
- # This implementation of the DELETE action resets the default encryption
3592
- # for the bucket as server-side encryption with Amazon S3 managed keys
3593
- # (SSE-S3). For information about the bucket default encryption feature,
3594
- # see [Amazon S3 Bucket Default Encryption][1] in the *Amazon S3 User
3595
- # Guide*.
4020
+ # Permissions
4021
+ # : * **General purpose bucket permissions** - The
4022
+ # `s3:PutEncryptionConfiguration` permission is required in a
4023
+ # policy. The bucket owner has this permission by default. The
4024
+ # bucket owner can grant this permission to others. For more
4025
+ # information about permissions, see [Permissions Related to Bucket
4026
+ # Operations][3] and [Managing Access Permissions to Your Amazon S3
4027
+ # Resources][4].
3596
4028
  #
3597
- # To use this operation, you must have permissions to perform the
3598
- # `s3:PutEncryptionConfiguration` action. The bucket owner has this
3599
- # permission by default. The bucket owner can grant this permission to
3600
- # others. For more information about permissions, see [Permissions
3601
- # Related to Bucket Subresource Operations][2] and [Managing Access
3602
- # Permissions to your Amazon S3 Resources][3] in the *Amazon S3 User
3603
- # Guide*.
4029
+ # * **Directory bucket permissions** - To grant access to this API
4030
+ # operation, you must have the
4031
+ # `s3express:PutEncryptionConfiguration` permission in an IAM
4032
+ # identity-based policy instead of a bucket policy. Cross-account
4033
+ # access to this API operation isn't supported. This operation can
4034
+ # only be performed by the Amazon Web Services account that owns the
4035
+ # resource. For more information about directory bucket policies and
4036
+ # permissions, see [Amazon Web Services Identity and Access
4037
+ # Management (IAM) for S3 Express One Zone][5] in the *Amazon S3
4038
+ # User Guide*.
4039
+ #
4040
+ # HTTP Host header syntax
4041
+ #
4042
+ # : <b>Directory buckets </b> - The HTTP Host header syntax is
4043
+ # `s3express-control.region.amazonaws.com`.
3604
4044
  #
3605
4045
  # The following operations are related to `DeleteBucketEncryption`:
3606
4046
  #
3607
- # * [PutBucketEncryption][4]
4047
+ # * [PutBucketEncryption][6]
3608
4048
  #
3609
- # * [GetBucketEncryption][5]
4049
+ # * [GetBucketEncryption][7]
3610
4050
  #
3611
4051
  #
3612
4052
  #
3613
4053
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html
3614
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
3615
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
3616
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html
3617
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html
4054
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-bucket-encryption.html
4055
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
4056
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
4057
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html
4058
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html
4059
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html
3618
4060
  #
3619
4061
  # @option params [required, String] :bucket
3620
4062
  # The name of the bucket containing the server-side encryption
3621
4063
  # configuration to delete.
3622
4064
  #
4065
+ # <b>Directory buckets </b> - When you use this operation with a
4066
+ # directory bucket, you must use path-style requests in the format
4067
+ # `https://s3express-control.region_code.amazonaws.com/bucket-name `.
4068
+ # Virtual-hosted-style requests aren't supported. Directory bucket
4069
+ # names must be unique in the chosen Availability Zone. Bucket names
4070
+ # must also follow the format ` bucket_base_name--az_id--x-s3` (for
4071
+ # example, ` DOC-EXAMPLE-BUCKET--usw2-az1--x-s3`). For information about
4072
+ # bucket naming restrictions, see [Directory bucket naming rules][1] in
4073
+ # the *Amazon S3 User Guide*
4074
+ #
4075
+ #
4076
+ #
4077
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html
4078
+ #
3623
4079
  # @option params [String] :expected_bucket_owner
3624
4080
  # The account ID of the expected bucket owner. If the account ID that
3625
4081
  # you provide does not match the actual owner of the bucket, the request
3626
4082
  # fails with the HTTP status code `403 Forbidden` (access denied).
3627
4083
  #
4084
+ # <note markdown="1"> For directory buckets, this header is not supported in this API
4085
+ # operation. If you specify this header, the request fails with the HTTP
4086
+ # status code `501 Not Implemented`.
4087
+ #
4088
+ # </note>
4089
+ #
3628
4090
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3629
4091
  #
3630
4092
  # @example Request syntax with placeholder values
@@ -4498,6 +4960,15 @@ module Aws::S3
4498
4960
  # * {Types::DeleteObjectOutput#request_charged #request_charged} => String
4499
4961
  #
4500
4962
  #
4963
+ # @example Example: To delete an object (from a non-versioned bucket)
4964
+ #
4965
+ # # The following example deletes an object from a non-versioned bucket.
4966
+ #
4967
+ # resp = client.delete_object({
4968
+ # bucket: "ExampleBucket",
4969
+ # key: "HappyFace.jpg",
4970
+ # })
4971
+ #
4501
4972
  # @example Example: To delete an object
4502
4973
  #
4503
4974
  # # The following example deletes an object from an S3 bucket.
@@ -4511,15 +4982,6 @@ module Aws::S3
4511
4982
  # {
4512
4983
  # }
4513
4984
  #
4514
- # @example Example: To delete an object (from a non-versioned bucket)
4515
- #
4516
- # # The following example deletes an object from a non-versioned bucket.
4517
- #
4518
- # resp = client.delete_object({
4519
- # bucket: "ExampleBucket",
4520
- # key: "HappyFace.jpg",
4521
- # })
4522
- #
4523
4985
  # @example Request syntax with placeholder values
4524
4986
  #
4525
4987
  # resp = client.delete_object({
@@ -4618,35 +5080,35 @@ module Aws::S3
4618
5080
  # * {Types::DeleteObjectTaggingOutput#version_id #version_id} => String
4619
5081
  #
4620
5082
  #
4621
- # @example Example: To remove tag set from an object version
5083
+ # @example Example: To remove tag set from an object
4622
5084
  #
4623
- # # The following example removes tag set associated with the specified object version. The request specifies both the
4624
- # # object key and object version.
5085
+ # # The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the
5086
+ # # operation removes tag set from the latest object version.
4625
5087
  #
4626
5088
  # resp = client.delete_object_tagging({
4627
5089
  # bucket: "examplebucket",
4628
5090
  # key: "HappyFace.jpg",
4629
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
4630
5091
  # })
4631
5092
  #
4632
5093
  # resp.to_h outputs the following:
4633
5094
  # {
4634
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
5095
+ # version_id: "null",
4635
5096
  # }
4636
5097
  #
4637
- # @example Example: To remove tag set from an object
5098
+ # @example Example: To remove tag set from an object version
4638
5099
  #
4639
- # # The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the
4640
- # # operation removes tag set from the latest object version.
5100
+ # # The following example removes tag set associated with the specified object version. The request specifies both the
5101
+ # # object key and object version.
4641
5102
  #
4642
5103
  # resp = client.delete_object_tagging({
4643
5104
  # bucket: "examplebucket",
4644
5105
  # key: "HappyFace.jpg",
5106
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
4645
5107
  # })
4646
5108
  #
4647
5109
  # resp.to_h outputs the following:
4648
5110
  # {
4649
- # version_id: "null",
5111
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
4650
5112
  # }
4651
5113
  #
4652
5114
  # @example Request syntax with placeholder values
@@ -4929,20 +5391,22 @@ module Aws::S3
4929
5391
  # * {Types::DeleteObjectsOutput#errors #errors} => Array&lt;Types::Error&gt;
4930
5392
  #
4931
5393
  #
4932
- # @example Example: To delete multiple objects from a versioned bucket
5394
+ # @example Example: To delete multiple object versions from a versioned bucket
4933
5395
  #
4934
- # # The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the
4935
- # # object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.
5396
+ # # The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object
5397
+ # # versions and returns the key and versions of deleted objects in the response.
4936
5398
  #
4937
5399
  # resp = client.delete_objects({
4938
5400
  # bucket: "examplebucket",
4939
5401
  # delete: {
4940
5402
  # objects: [
4941
5403
  # {
4942
- # key: "objectkey1",
5404
+ # key: "HappyFace.jpg",
5405
+ # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
4943
5406
  # },
4944
5407
  # {
4945
- # key: "objectkey2",
5408
+ # key: "HappyFace.jpg",
5409
+ # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
4946
5410
  # },
4947
5411
  # ],
4948
5412
  # quiet: false,
@@ -4953,34 +5417,30 @@ module Aws::S3
4953
5417
  # {
4954
5418
  # deleted: [
4955
5419
  # {
4956
- # delete_marker: true,
4957
- # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
4958
- # key: "objectkey1",
5420
+ # key: "HappyFace.jpg",
5421
+ # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
4959
5422
  # },
4960
5423
  # {
4961
- # delete_marker: true,
4962
- # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
4963
- # key: "objectkey2",
5424
+ # key: "HappyFace.jpg",
5425
+ # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
4964
5426
  # },
4965
5427
  # ],
4966
5428
  # }
4967
5429
  #
4968
- # @example Example: To delete multiple object versions from a versioned bucket
5430
+ # @example Example: To delete multiple objects from a versioned bucket
4969
5431
  #
4970
- # # The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object
4971
- # # versions and returns the key and versions of deleted objects in the response.
5432
+ # # The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the
5433
+ # # object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.
4972
5434
  #
4973
5435
  # resp = client.delete_objects({
4974
5436
  # bucket: "examplebucket",
4975
5437
  # delete: {
4976
5438
  # objects: [
4977
5439
  # {
4978
- # key: "HappyFace.jpg",
4979
- # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
5440
+ # key: "objectkey1",
4980
5441
  # },
4981
5442
  # {
4982
- # key: "HappyFace.jpg",
4983
- # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
5443
+ # key: "objectkey2",
4984
5444
  # },
4985
5445
  # ],
4986
5446
  # quiet: false,
@@ -4991,12 +5451,14 @@ module Aws::S3
4991
5451
  # {
4992
5452
  # deleted: [
4993
5453
  # {
4994
- # key: "HappyFace.jpg",
4995
- # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
5454
+ # delete_marker: true,
5455
+ # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
5456
+ # key: "objectkey1",
4996
5457
  # },
4997
5458
  # {
4998
- # key: "HappyFace.jpg",
4999
- # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
5459
+ # delete_marker: true,
5460
+ # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
5461
+ # key: "objectkey2",
5000
5462
  # },
5001
5463
  # ],
5002
5464
  # }
@@ -5499,46 +5961,92 @@ module Aws::S3
5499
5961
  req.send_request(options)
5500
5962
  end
5501
5963
 
5502
- # <note markdown="1"> This operation is not supported by directory buckets.
5964
+ # Returns the default encryption configuration for an Amazon S3 bucket.
5965
+ # By default, all buckets have a default encryption configuration that
5966
+ # uses server-side encryption with Amazon S3 managed keys (SSE-S3).
5967
+ #
5968
+ # <note markdown="1"> * **General purpose buckets** - For information about the bucket
5969
+ # default encryption feature, see [Amazon S3 Bucket Default
5970
+ # Encryption][1] in the *Amazon S3 User Guide*.
5971
+ #
5972
+ # * **Directory buckets** - For directory buckets, there are only two
5973
+ # supported options for server-side encryption: SSE-S3 and SSE-KMS.
5974
+ # For information about the default encryption configuration in
5975
+ # directory buckets, see [Setting default server-side encryption
5976
+ # behavior for directory buckets][2].
5503
5977
  #
5504
5978
  # </note>
5505
5979
  #
5506
- # Returns the default encryption configuration for an Amazon S3 bucket.
5507
- # By default, all buckets have a default encryption configuration that
5508
- # uses server-side encryption with Amazon S3 managed keys (SSE-S3). For
5509
- # information about the bucket default encryption feature, see [Amazon
5510
- # S3 Bucket Default Encryption][1] in the *Amazon S3 User Guide*.
5980
+ # Permissions
5981
+ # : * **General purpose bucket permissions** - The
5982
+ # `s3:GetEncryptionConfiguration` permission is required in a
5983
+ # policy. The bucket owner has this permission by default. The
5984
+ # bucket owner can grant this permission to others. For more
5985
+ # information about permissions, see [Permissions Related to Bucket
5986
+ # Operations][3] and [Managing Access Permissions to Your Amazon S3
5987
+ # Resources][4].
5511
5988
  #
5512
- # To use this operation, you must have permission to perform the
5513
- # `s3:GetEncryptionConfiguration` action. The bucket owner has this
5514
- # permission by default. The bucket owner can grant this permission to
5515
- # others. For more information about permissions, see [Permissions
5516
- # Related to Bucket Subresource Operations][2] and [Managing Access
5517
- # Permissions to Your Amazon S3 Resources][3].
5989
+ # * **Directory bucket permissions** - To grant access to this API
5990
+ # operation, you must have the
5991
+ # `s3express:GetEncryptionConfiguration` permission in an IAM
5992
+ # identity-based policy instead of a bucket policy. Cross-account
5993
+ # access to this API operation isn't supported. This operation can
5994
+ # only be performed by the Amazon Web Services account that owns the
5995
+ # resource. For more information about directory bucket policies and
5996
+ # permissions, see [Amazon Web Services Identity and Access
5997
+ # Management (IAM) for S3 Express One Zone][5] in the *Amazon S3
5998
+ # User Guide*.
5999
+ #
6000
+ # HTTP Host header syntax
6001
+ #
6002
+ # : <b>Directory buckets </b> - The HTTP Host header syntax is
6003
+ # `s3express-control.region.amazonaws.com`.
5518
6004
  #
5519
6005
  # The following operations are related to `GetBucketEncryption`:
5520
6006
  #
5521
- # * [PutBucketEncryption][4]
6007
+ # * [PutBucketEncryption][6]
5522
6008
  #
5523
- # * [DeleteBucketEncryption][5]
6009
+ # * [DeleteBucketEncryption][7]
5524
6010
  #
5525
6011
  #
5526
6012
  #
5527
6013
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html
5528
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
5529
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
5530
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html
5531
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html
6014
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-bucket-encryption.html
6015
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
6016
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
6017
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html
6018
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html
6019
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html
5532
6020
  #
5533
6021
  # @option params [required, String] :bucket
5534
6022
  # The name of the bucket from which the server-side encryption
5535
6023
  # configuration is retrieved.
5536
6024
  #
6025
+ # <b>Directory buckets </b> - When you use this operation with a
6026
+ # directory bucket, you must use path-style requests in the format
6027
+ # `https://s3express-control.region_code.amazonaws.com/bucket-name `.
6028
+ # Virtual-hosted-style requests aren't supported. Directory bucket
6029
+ # names must be unique in the chosen Availability Zone. Bucket names
6030
+ # must also follow the format ` bucket_base_name--az_id--x-s3` (for
6031
+ # example, ` DOC-EXAMPLE-BUCKET--usw2-az1--x-s3`). For information about
6032
+ # bucket naming restrictions, see [Directory bucket naming rules][1] in
6033
+ # the *Amazon S3 User Guide*
6034
+ #
6035
+ #
6036
+ #
6037
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html
6038
+ #
5537
6039
  # @option params [String] :expected_bucket_owner
5538
6040
  # The account ID of the expected bucket owner. If the account ID that
5539
6041
  # you provide does not match the actual owner of the bucket, the request
5540
6042
  # fails with the HTTP status code `403 Forbidden` (access denied).
5541
6043
  #
6044
+ # <note markdown="1"> For directory buckets, this header is not supported in this API
6045
+ # operation. If you specify this header, the request fails with the HTTP
6046
+ # status code `501 Not Implemented`.
6047
+ #
6048
+ # </note>
6049
+ #
5542
6050
  # @return [Types::GetBucketEncryptionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5543
6051
  #
5544
6052
  # * {Types::GetBucketEncryptionOutput#server_side_encryption_configuration #server_side_encryption_configuration} => Types::ServerSideEncryptionConfiguration
@@ -7278,6 +7786,10 @@ module Aws::S3
7278
7786
  # interruptions when a session expires. For more information about
7279
7787
  # authorization, see [ `CreateSession` ][4].
7280
7788
  #
7789
+ # If the object is encrypted using SSE-KMS, you must also have the
7790
+ # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
7791
+ # identity-based policies and KMS key policies for the KMS key.
7792
+ #
7281
7793
  # Storage classes
7282
7794
  #
7283
7795
  # : If the object you are retrieving is stored in the S3 Glacier
@@ -7306,6 +7818,11 @@ module Aws::S3
7306
7818
  # `GetObject` requests for the object that uses these types of keys,
7307
7819
  # you’ll get an HTTP `400 Bad Request` error.
7308
7820
  #
7821
+ # **Directory buckets** - For directory buckets, there are only two
7822
+ # supported options for server-side encryption: SSE-S3 and SSE-KMS.
7823
+ # SSE-C isn't supported. For more information, see [Protecting data
7824
+ # with server-side encryption][7] in the *Amazon S3 User Guide*.
7825
+ #
7309
7826
  # Overriding response header values through the request
7310
7827
  #
7311
7828
  # : There are times when you want to override certain response header
@@ -7353,9 +7870,9 @@ module Aws::S3
7353
7870
  #
7354
7871
  # The following operations are related to `GetObject`:
7355
7872
  #
7356
- # * [ListBuckets][7]
7873
+ # * [ListBuckets][8]
7357
7874
  #
7358
- # * [GetObjectAcl][8]
7875
+ # * [GetObjectAcl][9]
7359
7876
  #
7360
7877
  #
7361
7878
  #
@@ -7365,8 +7882,9 @@ module Aws::S3
7365
7882
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
7366
7883
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html
7367
7884
  # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html
7368
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html
7369
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html
7885
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
7886
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html
7887
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html
7370
7888
  #
7371
7889
  # @option params [String, IO] :response_target
7372
7890
  # Where to write response data, file path, or IO object.
@@ -7663,6 +8181,15 @@ module Aws::S3
7663
8181
  # @option params [String] :checksum_mode
7664
8182
  # To retrieve the checksum, this mode must be enabled.
7665
8183
  #
8184
+ # **General purpose buckets** - In addition, if you enable checksum mode
8185
+ # and the object is uploaded with a [checksum][1] and encrypted with an
8186
+ # Key Management Service (KMS) key, you must have permission to use the
8187
+ # `kms:Decrypt` action to retrieve the checksum.
8188
+ #
8189
+ #
8190
+ #
8191
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
8192
+ #
7666
8193
  # @return [Types::GetObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7667
8194
  #
7668
8195
  # * {Types::GetObjectOutput#body #body} => IO
@@ -7704,49 +8231,49 @@ module Aws::S3
7704
8231
  # * {Types::GetObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String
7705
8232
  #
7706
8233
  #
7707
- # @example Example: To retrieve a byte range of an object
8234
+ # @example Example: To retrieve an object
7708
8235
  #
7709
- # # The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a
7710
- # # specific byte range.
8236
+ # # The following example retrieves an object for an S3 bucket.
7711
8237
  #
7712
8238
  # resp = client.get_object({
7713
8239
  # bucket: "examplebucket",
7714
- # key: "SampleFile.txt",
7715
- # range: "bytes=0-9",
8240
+ # key: "HappyFace.jpg",
7716
8241
  # })
7717
8242
  #
7718
8243
  # resp.to_h outputs the following:
7719
8244
  # {
7720
8245
  # accept_ranges: "bytes",
7721
- # content_length: 10,
7722
- # content_range: "bytes 0-9/43",
7723
- # content_type: "text/plain",
7724
- # etag: "\"0d94420ffd0bc68cd3d152506b97a9cc\"",
7725
- # last_modified: Time.parse("Thu, 09 Oct 2014 22:57:28 GMT"),
8246
+ # content_length: 3191,
8247
+ # content_type: "image/jpeg",
8248
+ # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
8249
+ # last_modified: Time.parse("Thu, 15 Dec 2016 01:19:41 GMT"),
7726
8250
  # metadata: {
7727
8251
  # },
8252
+ # tag_count: 2,
7728
8253
  # version_id: "null",
7729
8254
  # }
7730
8255
  #
7731
- # @example Example: To retrieve an object
8256
+ # @example Example: To retrieve a byte range of an object
7732
8257
  #
7733
- # # The following example retrieves an object for an S3 bucket.
8258
+ # # The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a
8259
+ # # specific byte range.
7734
8260
  #
7735
8261
  # resp = client.get_object({
7736
8262
  # bucket: "examplebucket",
7737
- # key: "HappyFace.jpg",
8263
+ # key: "SampleFile.txt",
8264
+ # range: "bytes=0-9",
7738
8265
  # })
7739
8266
  #
7740
8267
  # resp.to_h outputs the following:
7741
8268
  # {
7742
8269
  # accept_ranges: "bytes",
7743
- # content_length: 3191,
7744
- # content_type: "image/jpeg",
7745
- # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
7746
- # last_modified: Time.parse("Thu, 15 Dec 2016 01:19:41 GMT"),
8270
+ # content_length: 10,
8271
+ # content_range: "bytes 0-9/43",
8272
+ # content_type: "text/plain",
8273
+ # etag: "\"0d94420ffd0bc68cd3d152506b97a9cc\"",
8274
+ # last_modified: Time.parse("Thu, 09 Oct 2014 22:57:28 GMT"),
7747
8275
  # metadata: {
7748
8276
  # },
7749
- # tag_count: 2,
7750
8277
  # version_id: "null",
7751
8278
  # }
7752
8279
  #
@@ -8059,7 +8586,7 @@ module Aws::S3
8059
8586
  # Permissions
8060
8587
  # : * **General purpose bucket permissions** - To use
8061
8588
  # `GetObjectAttributes`, you must have READ access to the object.
8062
- # The permissions that you need to use this operation with depend on
8589
+ # The permissions that you need to use this operation depend on
8063
8590
  # whether the bucket is versioned. If the bucket is versioned, you
8064
8591
  # need both the `s3:GetObjectVersion` and
8065
8592
  # `s3:GetObjectVersionAttributes` permissions for this operation. If
@@ -8093,6 +8620,10 @@ module Aws::S3
8093
8620
  # interruptions when a session expires. For more information about
8094
8621
  # authorization, see [ `CreateSession` ][3].
8095
8622
  #
8623
+ # If the object is encrypted with SSE-KMS, you must also have the
8624
+ # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
8625
+ # identity-based policies and KMS key policies for the KMS key.
8626
+ #
8096
8627
  # Encryption
8097
8628
  # : <note markdown="1"> Encryption request headers, like `x-amz-server-side-encryption`,
8098
8629
  # should not be sent for `HEAD` requests if your object uses
@@ -8126,9 +8657,19 @@ module Aws::S3
8126
8657
  # Customer-Provided Encryption Keys)][4] in the *Amazon S3 User
8127
8658
  # Guide*.
8128
8659
  #
8129
- # <note markdown="1"> **Directory bucket permissions** - For directory buckets, only
8130
- # server-side encryption with Amazon S3 managed keys (SSE-S3)
8131
- # (`AES256`) is supported.
8660
+ # <note markdown="1"> **Directory bucket permissions** - For directory buckets, there are
8661
+ # only two supported options for server-side encryption: server-side
8662
+ # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
8663
+ # server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We
8664
+ # recommend that the bucket's default encryption uses the desired
8665
+ # encryption configuration and you don't override the bucket default
8666
+ # encryption in your `CreateSession` requests or `PUT` object
8667
+ # requests. Then, new objects are automatically encrypted with the
8668
+ # desired encryption settings. For more information, see [Protecting
8669
+ # data with server-side encryption][5] in the *Amazon S3 User Guide*.
8670
+ # For more information about the encryption overriding behaviors in
8671
+ # directory buckets, see [Specifying server-side encryption with KMS
8672
+ # for new object uploads][6].
8132
8673
  #
8133
8674
  # </note>
8134
8675
  #
@@ -8152,7 +8693,7 @@ module Aws::S3
8152
8693
  # * `If-Unmodified-Since` condition evaluates to `false`.
8153
8694
  #
8154
8695
  # For more information about conditional requests, see [RFC
8155
- # 7232][5].
8696
+ # 7232][7].
8156
8697
  #
8157
8698
  # * If both of the `If-None-Match` and `If-Modified-Since` headers are
8158
8699
  # present in the request as follows, then Amazon S3 returns the HTTP
@@ -8163,7 +8704,7 @@ module Aws::S3
8163
8704
  # * `If-Modified-Since` condition evaluates to `true`.
8164
8705
  #
8165
8706
  # For more information about conditional requests, see [RFC
8166
- # 7232][5].
8707
+ # 7232][7].
8167
8708
  #
8168
8709
  # HTTP Host header syntax
8169
8710
  #
@@ -8172,21 +8713,21 @@ module Aws::S3
8172
8713
  #
8173
8714
  # The following actions are related to `GetObjectAttributes`:
8174
8715
  #
8175
- # * [GetObject][6]
8716
+ # * [GetObject][8]
8176
8717
  #
8177
- # * [GetObjectAcl][7]
8718
+ # * [GetObjectAcl][9]
8178
8719
  #
8179
- # * [GetObjectLegalHold][8]
8720
+ # * [GetObjectLegalHold][10]
8180
8721
  #
8181
- # * [GetObjectLockConfiguration][9]
8722
+ # * [GetObjectLockConfiguration][11]
8182
8723
  #
8183
- # * [GetObjectRetention][10]
8724
+ # * [GetObjectRetention][12]
8184
8725
  #
8185
- # * [GetObjectTagging][11]
8726
+ # * [GetObjectTagging][13]
8186
8727
  #
8187
- # * [HeadObject][12]
8728
+ # * [HeadObject][14]
8188
8729
  #
8189
- # * [ListParts][13]
8730
+ # * [ListParts][15]
8190
8731
  #
8191
8732
  #
8192
8733
  #
@@ -8194,15 +8735,17 @@ module Aws::S3
8194
8735
  # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
8195
8736
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
8196
8737
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
8197
- # [5]: https://tools.ietf.org/html/rfc7232
8198
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
8199
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html
8200
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLegalHold.html
8201
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLockConfiguration.html
8202
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectRetention.html
8203
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html
8204
- # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html
8205
- # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
8738
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
8739
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
8740
+ # [7]: https://tools.ietf.org/html/rfc7232
8741
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
8742
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html
8743
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLegalHold.html
8744
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectLockConfiguration.html
8745
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectRetention.html
8746
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html
8747
+ # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html
8748
+ # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
8206
8749
  #
8207
8750
  # @option params [required, String] :bucket
8208
8751
  # The name of the bucket that contains the object.
@@ -8997,29 +9540,24 @@ module Aws::S3
8997
9540
  # have permission to access it. The action returns a `200 OK` if the
8998
9541
  # bucket exists and you have permission to access it.
8999
9542
  #
9000
- # If the bucket does not exist or you do not have permission to access
9543
+ # <note markdown="1"> If the bucket does not exist or you do not have permission to access
9001
9544
  # it, the `HEAD` request returns a generic `400 Bad Request`, `403
9002
9545
  # Forbidden` or `404 Not Found` code. A message body is not included, so
9003
9546
  # you cannot determine the exception beyond these HTTP response codes.
9004
9547
  #
9005
- # <note markdown="1"> <b>Directory buckets </b> - You must make requests for this API
9006
- # operation to the Zonal endpoint. These endpoints support
9007
- # virtual-hosted-style requests in the format
9008
- # `https://bucket_name.s3express-az_id.region.amazonaws.com`. Path-style
9009
- # requests are not supported. For more information, see [Regional and
9010
- # Zonal endpoints][1] in the *Amazon S3 User Guide*.
9011
- #
9012
9548
  # </note>
9013
9549
  #
9014
9550
  # Authentication and authorization
9015
9551
  #
9016
- # : All `HeadBucket` requests must be authenticated and signed by using
9017
- # IAM credentials (access key ID and secret access key for the IAM
9018
- # identities). All headers with the `x-amz-` prefix, including
9552
+ # : **General purpose buckets** - Request to public buckets that grant
9553
+ # the s3:ListBucket permission publicly do not need to be signed. All
9554
+ # other `HeadBucket` requests must be authenticated and signed by
9555
+ # using IAM credentials (access key ID and secret access key for the
9556
+ # IAM identities). All headers with the `x-amz-` prefix, including
9019
9557
  # `x-amz-copy-source`, must be signed. For more information, see [REST
9020
- # Authentication][2].
9558
+ # Authentication][1].
9021
9559
  #
9022
- # **Directory bucket** - You must use IAM credentials to authenticate
9560
+ # **Directory buckets** - You must use IAM credentials to authenticate
9023
9561
  # and authorize your access to the `HeadBucket` API operation, instead
9024
9562
  # of using the temporary security credentials through the
9025
9563
  # `CreateSession` API operation.
@@ -9035,7 +9573,7 @@ module Aws::S3
9035
9573
  # you must have permissions to perform the `s3:ListBucket` action.
9036
9574
  # The bucket owner has this permission by default and can grant this
9037
9575
  # permission to others. For more information about permissions, see
9038
- # [Managing access permissions to your Amazon S3 resources][3] in
9576
+ # [Managing access permissions to your Amazon S3 resources][2] in
9039
9577
  # the *Amazon S3 User Guide*.
9040
9578
  #
9041
9579
  # * **Directory bucket permissions** - You must have the <b>
@@ -9046,9 +9584,9 @@ module Aws::S3
9046
9584
  # `ReadOnly` on the bucket.
9047
9585
  #
9048
9586
  # For more information about example bucket policies, see [Example
9049
- # bucket policies for S3 Express One Zone][4] and [Amazon Web
9587
+ # bucket policies for S3 Express One Zone][3] and [Amazon Web
9050
9588
  # Services Identity and Access Management (IAM) identity-based
9051
- # policies for S3 Express One Zone][5] in the *Amazon S3 User
9589
+ # policies for S3 Express One Zone][4] in the *Amazon S3 User
9052
9590
  # Guide*.
9053
9591
  #
9054
9592
  # HTTP Host header syntax
@@ -9056,13 +9594,21 @@ module Aws::S3
9056
9594
  # : <b>Directory buckets </b> - The HTTP Host header syntax is `
9057
9595
  # Bucket_name.s3express-az_id.region.amazonaws.com`.
9058
9596
  #
9597
+ # <note markdown="1"> You must make requests for this API operation to the Zonal endpoint.
9598
+ # These endpoints support virtual-hosted-style requests in the format
9599
+ # `https://bucket_name.s3express-az_id.region.amazonaws.com`.
9600
+ # Path-style requests are not supported. For more information, see
9601
+ # [Regional and Zonal endpoints][5] in the *Amazon S3 User Guide*.
9602
+ #
9603
+ # </note>
9059
9604
  #
9060
9605
  #
9061
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
9062
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
9063
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
9064
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
9065
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
9606
+ #
9607
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
9608
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
9609
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
9610
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
9611
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
9066
9612
  #
9067
9613
  # @option params [required, String] :bucket
9068
9614
  # The bucket name.
@@ -9170,7 +9716,7 @@ module Aws::S3
9170
9716
  # returning the object itself. This operation is useful if you're
9171
9717
  # interested only in an object's metadata.
9172
9718
  #
9173
- # A `HEAD` request has the same options as a `GET` operation on an
9719
+ # <note markdown="1"> A `HEAD` request has the same options as a `GET` operation on an
9174
9720
  # object. The response is identical to the `GET` response except that
9175
9721
  # there is no response body. Because of this, if the `HEAD` request
9176
9722
  # generates an error, it returns a generic code, such as `400 Bad
@@ -9178,18 +9724,11 @@ module Aws::S3
9178
9724
  # `412 Precondition Failed`, or `304 Not Modified`. It's not possible
9179
9725
  # to retrieve the exact exception of these error codes.
9180
9726
  #
9727
+ # </note>
9728
+ #
9181
9729
  # Request headers are limited to 8 KB in size. For more information, see
9182
9730
  # [Common Request Headers][1].
9183
9731
  #
9184
- # <note markdown="1"> **Directory buckets** - For directory buckets, you must make requests
9185
- # for this API operation to the Zonal endpoint. These endpoints support
9186
- # virtual-hosted-style requests in the format
9187
- # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `.
9188
- # Path-style requests are not supported. For more information, see
9189
- # [Regional and Zonal endpoints][2] in the *Amazon S3 User Guide*.
9190
- #
9191
- # </note>
9192
- #
9193
9732
  # Permissions
9194
9733
  #
9195
9734
  # :
@@ -9198,7 +9737,7 @@ module Aws::S3
9198
9737
  # have the `s3:GetObject` permission. You need the relevant read
9199
9738
  # object (or version) permission for this operation. For more
9200
9739
  # information, see [Actions, resources, and condition keys for
9201
- # Amazon S3][3] in the *Amazon S3 User Guide*.
9740
+ # Amazon S3][2] in the *Amazon S3 User Guide*.
9202
9741
  #
9203
9742
  # If the object you request doesn't exist, the error that Amazon S3
9204
9743
  # returns depends on whether you also have the `s3:ListBucket`
@@ -9212,7 +9751,7 @@ module Aws::S3
9212
9751
  #
9213
9752
  # * **Directory bucket permissions** - To grant access to this API
9214
9753
  # operation on a directory bucket, we recommend that you use the [
9215
- # `CreateSession` ][4] API operation for session-based
9754
+ # `CreateSession` ][3] API operation for session-based
9216
9755
  # authorization. Specifically, you grant the
9217
9756
  # `s3express:CreateSession` permission to the directory bucket in a
9218
9757
  # bucket policy or an IAM identity-based policy. Then, you make the
@@ -9223,7 +9762,14 @@ module Aws::S3
9223
9762
  # token for use. Amazon Web Services CLI or SDKs create session and
9224
9763
  # refresh the session token automatically to avoid service
9225
9764
  # interruptions when a session expires. For more information about
9226
- # authorization, see [ `CreateSession` ][4].
9765
+ # authorization, see [ `CreateSession` ][3].
9766
+ #
9767
+ # If you enable `x-amz-checksum-mode` in the request and the object
9768
+ # is encrypted with Amazon Web Services Key Management Service
9769
+ # (Amazon Web Services KMS), you must also have the
9770
+ # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
9771
+ # identity-based policies and KMS key policies for the KMS key to
9772
+ # retrieve the checksum of the object.
9227
9773
  #
9228
9774
  # Encryption
9229
9775
  # : <note markdown="1"> Encryption request headers, like `x-amz-server-side-encryption`,
@@ -9255,12 +9801,13 @@ module Aws::S3
9255
9801
  # * `x-amz-server-side-encryption-customer-key-MD5`
9256
9802
  #
9257
9803
  # For more information about SSE-C, see [Server-Side Encryption (Using
9258
- # Customer-Provided Encryption Keys)][5] in the *Amazon S3 User
9804
+ # Customer-Provided Encryption Keys)][4] in the *Amazon S3 User
9259
9805
  # Guide*.
9260
9806
  #
9261
- # <note markdown="1"> **Directory bucket permissions** - For directory buckets, only
9262
- # server-side encryption with Amazon S3 managed keys (SSE-S3)
9263
- # (`AES256`) is supported.
9807
+ # <note markdown="1"> <b>Directory bucket </b> - For directory buckets, there are only two
9808
+ # supported options for server-side encryption: SSE-S3 and SSE-KMS.
9809
+ # SSE-C isn't supported. For more information, see [Protecting data
9810
+ # with server-side encryption][5] in the *Amazon S3 User Guide*.
9264
9811
  #
9265
9812
  # </note>
9266
9813
  #
@@ -9289,21 +9836,31 @@ module Aws::S3
9289
9836
  # : <b>Directory buckets </b> - The HTTP Host header syntax is `
9290
9837
  # Bucket_name.s3express-az_id.region.amazonaws.com`.
9291
9838
  #
9839
+ # <note markdown="1"> For directory buckets, you must make requests for this API operation
9840
+ # to the Zonal endpoint. These endpoints support virtual-hosted-style
9841
+ # requests in the format
9842
+ # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name
9843
+ # `. Path-style requests are not supported. For more information, see
9844
+ # [Regional and Zonal endpoints][6] in the *Amazon S3 User Guide*.
9845
+ #
9846
+ # </note>
9847
+ #
9292
9848
  # The following actions are related to `HeadObject`:
9293
9849
  #
9294
- # * [GetObject][6]
9850
+ # * [GetObject][7]
9295
9851
  #
9296
- # * [GetObjectAttributes][7]
9852
+ # * [GetObjectAttributes][8]
9297
9853
  #
9298
9854
  #
9299
9855
  #
9300
9856
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html
9301
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
9302
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html
9303
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
9304
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
9305
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
9306
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html
9857
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html
9858
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
9859
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
9860
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
9861
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
9862
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
9863
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html
9307
9864
  #
9308
9865
  # @option params [required, String] :bucket
9309
9866
  # The name of the bucket that contains the object.
@@ -9519,10 +10076,20 @@ module Aws::S3
9519
10076
  # @option params [String] :checksum_mode
9520
10077
  # To retrieve the checksum, this parameter must be enabled.
9521
10078
  #
9522
- # In addition, if you enable `ChecksumMode` and the object is encrypted
9523
- # with Amazon Web Services Key Management Service (Amazon Web Services
9524
- # KMS), you must have permission to use the `kms:Decrypt` action for the
9525
- # request to succeed.
10079
+ # **General purpose buckets** - If you enable checksum mode and the
10080
+ # object is uploaded with a [checksum][1] and encrypted with an Key
10081
+ # Management Service (KMS) key, you must have permission to use the
10082
+ # `kms:Decrypt` action to retrieve the checksum.
10083
+ #
10084
+ # **Directory buckets** - If you enable `ChecksumMode` and the object is
10085
+ # encrypted with Amazon Web Services Key Management Service (Amazon Web
10086
+ # Services KMS), you must also have the `kms:GenerateDataKey` and
10087
+ # `kms:Decrypt` permissions in IAM identity-based policies and KMS key
10088
+ # policies for the KMS key to retrieve the checksum of the object.
10089
+ #
10090
+ #
10091
+ #
10092
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_Checksum.html
9526
10093
  #
9527
10094
  # @return [Types::HeadObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
9528
10095
  #
@@ -10076,10 +10643,28 @@ module Aws::S3
10076
10643
  #
10077
10644
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html
10078
10645
  #
10646
+ # @option params [Integer] :max_buckets
10647
+ # Maximum number of buckets to be returned in response. When the number
10648
+ # is more than the count of buckets that are owned by an Amazon Web
10649
+ # Services account, return all the buckets in response.
10650
+ #
10651
+ # @option params [String] :continuation_token
10652
+ # `ContinuationToken` indicates to Amazon S3 that the list is being
10653
+ # continued on this bucket with a token. `ContinuationToken` is
10654
+ # obfuscated and is not a real key. You can use this `ContinuationToken`
10655
+ # for pagination of the list results.
10656
+ #
10657
+ # Length Constraints: Minimum length of 0. Maximum length of 1024.
10658
+ #
10659
+ # Required: No.
10660
+ #
10079
10661
  # @return [Types::ListBucketsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
10080
10662
  #
10081
10663
  # * {Types::ListBucketsOutput#buckets #buckets} => Array&lt;Types::Bucket&gt;
10082
10664
  # * {Types::ListBucketsOutput#owner #owner} => Types::Owner
10665
+ # * {Types::ListBucketsOutput#continuation_token #continuation_token} => String
10666
+ #
10667
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
10083
10668
  #
10084
10669
  #
10085
10670
  # @example Example: To list all buckets
@@ -10111,6 +10696,13 @@ module Aws::S3
10111
10696
  # },
10112
10697
  # }
10113
10698
  #
10699
+ # @example Request syntax with placeholder values
10700
+ #
10701
+ # resp = client.list_buckets({
10702
+ # max_buckets: 1,
10703
+ # continuation_token: "Token",
10704
+ # })
10705
+ #
10114
10706
  # @example Response structure
10115
10707
  #
10116
10708
  # resp.buckets #=> Array
@@ -10118,6 +10710,7 @@ module Aws::S3
10118
10710
  # resp.buckets[0].creation_date #=> Time
10119
10711
  # resp.owner.display_name #=> String
10120
10712
  # resp.owner.id #=> String
10713
+ # resp.continuation_token #=> String
10121
10714
  #
10122
10715
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBuckets AWS API Documentation
10123
10716
  #
@@ -10166,9 +10759,9 @@ module Aws::S3
10166
10759
  #
10167
10760
  # @option params [String] :continuation_token
10168
10761
  # `ContinuationToken` indicates to Amazon S3 that the list is being
10169
- # continued on this bucket with a token. `ContinuationToken` is
10170
- # obfuscated and is not a real key. You can use this `ContinuationToken`
10171
- # for pagination of the list results.
10762
+ # continued on buckets in this account with a token. `ContinuationToken`
10763
+ # is obfuscated and is not a real bucket name. You can use this
10764
+ # `ContinuationToken` for the pagination of the list results.
10172
10765
  #
10173
10766
  # @option params [Integer] :max_directory_buckets
10174
10767
  # Maximum number of buckets to be returned in response. When the number
@@ -10212,7 +10805,11 @@ module Aws::S3
10212
10805
  #
10213
10806
  # <note markdown="1"> **Directory buckets** - If multipart uploads in a directory bucket are
10214
10807
  # in progress, you can't delete the bucket until all the in-progress
10215
- # multipart uploads are aborted or completed.
10808
+ # multipart uploads are aborted or completed. To delete these
10809
+ # in-progress multipart uploads, use the `ListMultipartUploads`
10810
+ # operation to list the in-progress multipart uploads in the bucket and
10811
+ # use the `AbortMultupartUpload` operation to abort all the in-progress
10812
+ # multipart uploads.
10216
10813
  #
10217
10814
  # </note>
10218
10815
  #
@@ -10378,12 +10975,26 @@ module Aws::S3
10378
10975
  # </note>
10379
10976
  #
10380
10977
  # @option params [String] :encoding_type
10381
- # Requests Amazon S3 to encode the object keys in the response and
10382
- # specifies the encoding method to use. An object key can contain any
10383
- # Unicode character; however, the XML 1.0 parser cannot parse some
10384
- # characters, such as characters with an ASCII value from 0 to 10. For
10385
- # characters that are not supported in XML 1.0, you can add this
10386
- # parameter to request that Amazon S3 encode the keys in the response.
10978
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in the
10979
+ # response. Responses are encoded only in UTF-8. An object key can
10980
+ # contain any Unicode character. However, the XML 1.0 parser can't
10981
+ # parse certain characters, such as characters with an ASCII value from
10982
+ # 0 to 10. For characters that aren't supported in XML 1.0, you can add
10983
+ # this parameter to request that Amazon S3 encode the keys in the
10984
+ # response. For more information about characters to avoid in object key
10985
+ # names, see [Object key naming guidelines][2].
10986
+ #
10987
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
10988
+ # in an object's key name will be percent-encoded according to UTF-8
10989
+ # code values. For example, the object `test_file(3).png` will appear as
10990
+ # `test_file%283%29.png`.
10991
+ #
10992
+ # </note>
10993
+ #
10994
+ #
10995
+ #
10996
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
10997
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
10387
10998
  #
10388
10999
  # @option params [String] :key_marker
10389
11000
  # Specifies the multipart upload after which listing should begin.
@@ -10675,12 +11286,26 @@ module Aws::S3
10675
11286
  # the response.
10676
11287
  #
10677
11288
  # @option params [String] :encoding_type
10678
- # Requests Amazon S3 to encode the object keys in the response and
10679
- # specifies the encoding method to use. An object key can contain any
10680
- # Unicode character; however, the XML 1.0 parser cannot parse some
10681
- # characters, such as characters with an ASCII value from 0 to 10. For
10682
- # characters that are not supported in XML 1.0, you can add this
10683
- # parameter to request that Amazon S3 encode the keys in the response.
11289
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in the
11290
+ # response. Responses are encoded only in UTF-8. An object key can
11291
+ # contain any Unicode character. However, the XML 1.0 parser can't
11292
+ # parse certain characters, such as characters with an ASCII value from
11293
+ # 0 to 10. For characters that aren't supported in XML 1.0, you can add
11294
+ # this parameter to request that Amazon S3 encode the keys in the
11295
+ # response. For more information about characters to avoid in object key
11296
+ # names, see [Object key naming guidelines][2].
11297
+ #
11298
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
11299
+ # in an object's key name will be percent-encoded according to UTF-8
11300
+ # code values. For example, the object `test_file(3).png` will appear as
11301
+ # `test_file%283%29.png`.
11302
+ #
11303
+ # </note>
11304
+ #
11305
+ #
11306
+ #
11307
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
11308
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
10684
11309
  #
10685
11310
  # @option params [String] :key_marker
10686
11311
  # Specifies the key to start with when listing objects in a bucket.
@@ -10934,12 +11559,26 @@ module Aws::S3
10934
11559
  # A delimiter is a character that you use to group keys.
10935
11560
  #
10936
11561
  # @option params [String] :encoding_type
10937
- # Requests Amazon S3 to encode the object keys in the response and
10938
- # specifies the encoding method to use. An object key can contain any
10939
- # Unicode character; however, the XML 1.0 parser cannot parse some
10940
- # characters, such as characters with an ASCII value from 0 to 10. For
10941
- # characters that are not supported in XML 1.0, you can add this
10942
- # parameter to request that Amazon S3 encode the keys in the response.
11562
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in the
11563
+ # response. Responses are encoded only in UTF-8. An object key can
11564
+ # contain any Unicode character. However, the XML 1.0 parser can't
11565
+ # parse certain characters, such as characters with an ASCII value from
11566
+ # 0 to 10. For characters that aren't supported in XML 1.0, you can add
11567
+ # this parameter to request that Amazon S3 encode the keys in the
11568
+ # response. For more information about characters to avoid in object key
11569
+ # names, see [Object key naming guidelines][2].
11570
+ #
11571
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
11572
+ # in an object's key name will be percent-encoded according to UTF-8
11573
+ # code values. For example, the object `test_file(3).png` will appear as
11574
+ # `test_file%283%29.png`.
11575
+ #
11576
+ # </note>
11577
+ #
11578
+ #
11579
+ #
11580
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
11581
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
10943
11582
  #
10944
11583
  # @option params [String] :marker
10945
11584
  # Marker is where you want Amazon S3 to start listing from. Amazon S3
@@ -11081,12 +11720,20 @@ module Aws::S3
11081
11720
  # programmatically][1] in the *Amazon S3 User Guide*. To get a list of
11082
11721
  # your buckets, see [ListBuckets][2].
11083
11722
  #
11084
- # <note markdown="1"> **Directory buckets** - For directory buckets, you must make requests
11085
- # for this API operation to the Zonal endpoint. These endpoints support
11086
- # virtual-hosted-style requests in the format
11087
- # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name `.
11088
- # Path-style requests are not supported. For more information, see
11089
- # [Regional and Zonal endpoints][3] in the *Amazon S3 User Guide*.
11723
+ # <note markdown="1"> * **General purpose bucket** - For general purpose buckets,
11724
+ # `ListObjectsV2` doesn't return prefixes that are related only to
11725
+ # in-progress multipart uploads.
11726
+ #
11727
+ # * **Directory buckets** - For directory buckets, `ListObjectsV2`
11728
+ # response includes the prefixes that are related only to in-progress
11729
+ # multipart uploads.
11730
+ #
11731
+ # * **Directory buckets** - For directory buckets, you must make
11732
+ # requests for this API operation to the Zonal endpoint. These
11733
+ # endpoints support virtual-hosted-style requests in the format
11734
+ # `https://bucket_name.s3express-az_id.region.amazonaws.com/key-name
11735
+ # `. Path-style requests are not supported. For more information, see
11736
+ # [Regional and Zonal endpoints][3] in the *Amazon S3 User Guide*.
11090
11737
  #
11091
11738
  # </note>
11092
11739
  #
@@ -11212,13 +11859,29 @@ module Aws::S3
11212
11859
  #
11213
11860
  #
11214
11861
  #
11215
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html
11862
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html
11863
+ #
11864
+ # @option params [String] :encoding_type
11865
+ # Encoding type used by Amazon S3 to encode the [object keys][1] in the
11866
+ # response. Responses are encoded only in UTF-8. An object key can
11867
+ # contain any Unicode character. However, the XML 1.0 parser can't
11868
+ # parse certain characters, such as characters with an ASCII value from
11869
+ # 0 to 10. For characters that aren't supported in XML 1.0, you can add
11870
+ # this parameter to request that Amazon S3 encode the keys in the
11871
+ # response. For more information about characters to avoid in object key
11872
+ # names, see [Object key naming guidelines][2].
11873
+ #
11874
+ # <note markdown="1"> When using the URL encoding type, non-ASCII characters that are used
11875
+ # in an object's key name will be percent-encoded according to UTF-8
11876
+ # code values. For example, the object `test_file(3).png` will appear as
11877
+ # `test_file%283%29.png`.
11878
+ #
11879
+ # </note>
11880
+ #
11881
+ #
11216
11882
  #
11217
- # @option params [String] :encoding_type
11218
- # Encoding type used by Amazon S3 to encode object keys in the response.
11219
- # If using `url`, non-ASCII characters used in an object's key name
11220
- # will be URL encoded. For example, the object `test_file(3).png` will
11221
- # appear as `test_file%283%29.png`.
11883
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html
11884
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines
11222
11885
  #
11223
11886
  # @option params [Integer] :max_keys
11224
11887
  # Sets the maximum number of keys returned in the response. By default,
@@ -12418,66 +13081,156 @@ module Aws::S3
12418
13081
  req.send_request(options)
12419
13082
  end
12420
13083
 
12421
- # <note markdown="1"> This operation is not supported by directory buckets.
13084
+ # This operation configures default encryption and Amazon S3 Bucket Keys
13085
+ # for an existing bucket.
12422
13086
  #
12423
- # </note>
13087
+ # <note markdown="1"> <b>Directory buckets </b> - For directory buckets, you must make
13088
+ # requests for this API operation to the Regional endpoint. These
13089
+ # endpoints support path-style requests in the format
13090
+ # `https://s3express-control.region_code.amazonaws.com/bucket-name `.
13091
+ # Virtual-hosted-style requests aren't supported. For more information,
13092
+ # see [Regional and Zonal endpoints][1] in the *Amazon S3 User Guide*.
12424
13093
  #
12425
- # This action uses the `encryption` subresource to configure default
12426
- # encryption and Amazon S3 Bucket Keys for an existing bucket.
13094
+ # </note>
12427
13095
  #
12428
13096
  # By default, all buckets have a default encryption configuration that
12429
- # uses server-side encryption with Amazon S3 managed keys (SSE-S3). You
12430
- # can optionally configure default encryption for a bucket by using
12431
- # server-side encryption with Key Management Service (KMS) keys
12432
- # (SSE-KMS) or dual-layer server-side encryption with Amazon Web
12433
- # Services KMS keys (DSSE-KMS). If you specify default encryption by
12434
- # using SSE-KMS, you can also configure [Amazon S3 Bucket Keys][1]. If
12435
- # you use PutBucketEncryption to set your [default bucket encryption][2]
12436
- # to SSE-KMS, you should verify that your KMS key ID is correct. Amazon
12437
- # S3 does not validate the KMS key ID provided in PutBucketEncryption
12438
- # requests.
12439
- #
12440
- # This action requires Amazon Web Services Signature Version 4. For more
12441
- # information, see [ Authenticating Requests (Amazon Web Services
12442
- # Signature Version 4)][3].
13097
+ # uses server-side encryption with Amazon S3 managed keys (SSE-S3).
12443
13098
  #
12444
- # To use this operation, you must have permission to perform the
12445
- # `s3:PutEncryptionConfiguration` action. The bucket owner has this
12446
- # permission by default. The bucket owner can grant this permission to
12447
- # others. For more information about permissions, see [Permissions
12448
- # Related to Bucket Subresource Operations][4] and [Managing Access
12449
- # Permissions to Your Amazon S3 Resources][5] in the *Amazon S3 User
12450
- # Guide*.
13099
+ # <note markdown="1"> * **General purpose buckets**
13100
+ #
13101
+ # * You can optionally configure default encryption for a bucket by
13102
+ # using server-side encryption with Key Management Service (KMS)
13103
+ # keys (SSE-KMS) or dual-layer server-side encryption with Amazon
13104
+ # Web Services KMS keys (DSSE-KMS). If you specify default
13105
+ # encryption by using SSE-KMS, you can also configure [Amazon S3
13106
+ # Bucket Keys][2]. For information about the bucket default
13107
+ # encryption feature, see [Amazon S3 Bucket Default Encryption][3]
13108
+ # in the *Amazon S3 User Guide*.
13109
+ #
13110
+ # * If you use PutBucketEncryption to set your [default bucket
13111
+ # encryption][3] to SSE-KMS, you should verify that your KMS key ID
13112
+ # is correct. Amazon S3 doesn't validate the KMS key ID provided in
13113
+ # PutBucketEncryption requests.
13114
+ #
13115
+ # * <b>Directory buckets </b> - You can optionally configure default
13116
+ # encryption for a bucket by using server-side encryption with Key
13117
+ # Management Service (KMS) keys (SSE-KMS).
13118
+ #
13119
+ # * We recommend that the bucket's default encryption uses the
13120
+ # desired encryption configuration and you don't override the
13121
+ # bucket default encryption in your `CreateSession` requests or
13122
+ # `PUT` object requests. Then, new objects are automatically
13123
+ # encrypted with the desired encryption settings. For more
13124
+ # information about the encryption overriding behaviors in directory
13125
+ # buckets, see [Specifying server-side encryption with KMS for new
13126
+ # object uploads][4].
13127
+ #
13128
+ # * Your SSE-KMS configuration can only support 1 [customer managed
13129
+ # key][5] per directory bucket for the lifetime of the bucket.
13130
+ # [Amazon Web Services managed key][6] (`aws/s3`) isn't supported.
13131
+ #
13132
+ # * S3 Bucket Keys are always enabled for `GET` and `PUT` operations
13133
+ # in a directory bucket and can’t be disabled. S3 Bucket Keys
13134
+ # aren't supported, when you copy SSE-KMS encrypted objects from
13135
+ # general purpose buckets to directory buckets, from directory
13136
+ # buckets to general purpose buckets, or between directory buckets,
13137
+ # through [CopyObject][7], [UploadPartCopy][8], [the Copy operation
13138
+ # in Batch Operations][9], or [the import jobs][10]. In this case,
13139
+ # Amazon S3 makes a call to KMS every time a copy request is made
13140
+ # for a KMS-encrypted object.
13141
+ #
13142
+ # * When you specify an [KMS customer managed key][5] for encryption
13143
+ # in your directory bucket, only use the key ID or key ARN. The key
13144
+ # alias format of the KMS key isn't supported.
13145
+ #
13146
+ # * For directory buckets, if you use PutBucketEncryption to set your
13147
+ # [default bucket encryption][3] to SSE-KMS, Amazon S3 validates the
13148
+ # KMS key ID provided in PutBucketEncryption requests.
13149
+ #
13150
+ # </note>
13151
+ #
13152
+ # If you're specifying a customer managed KMS key, we recommend using a
13153
+ # fully qualified KMS key ARN. If you use a KMS key alias instead, then
13154
+ # KMS resolves the key within the requester’s account. This behavior can
13155
+ # result in data that's encrypted with a KMS key that belongs to the
13156
+ # requester, and not the bucket owner.
13157
+ #
13158
+ # Also, this action requires Amazon Web Services Signature Version 4.
13159
+ # For more information, see [ Authenticating Requests (Amazon Web
13160
+ # Services Signature Version 4)][11].
13161
+ #
13162
+ # Permissions
13163
+ # : * **General purpose bucket permissions** - The
13164
+ # `s3:PutEncryptionConfiguration` permission is required in a
13165
+ # policy. The bucket owner has this permission by default. The
13166
+ # bucket owner can grant this permission to others. For more
13167
+ # information about permissions, see [Permissions Related to Bucket
13168
+ # Operations][12] and [Managing Access Permissions to Your Amazon S3
13169
+ # Resources][13] in the *Amazon S3 User Guide*.
13170
+ #
13171
+ # * **Directory bucket permissions** - To grant access to this API
13172
+ # operation, you must have the
13173
+ # `s3express:PutEncryptionConfiguration` permission in an IAM
13174
+ # identity-based policy instead of a bucket policy. Cross-account
13175
+ # access to this API operation isn't supported. This operation can
13176
+ # only be performed by the Amazon Web Services account that owns the
13177
+ # resource. For more information about directory bucket policies and
13178
+ # permissions, see [Amazon Web Services Identity and Access
13179
+ # Management (IAM) for S3 Express One Zone][14] in the *Amazon S3
13180
+ # User Guide*.
13181
+ #
13182
+ # To set a directory bucket default encryption with SSE-KMS, you
13183
+ # must also have the `kms:GenerateDataKey` and the `kms:Decrypt`
13184
+ # permissions in IAM identity-based policies and KMS key policies
13185
+ # for the target KMS key.
13186
+ #
13187
+ # HTTP Host header syntax
13188
+ #
13189
+ # : <b>Directory buckets </b> - The HTTP Host header syntax is
13190
+ # `s3express-control.region.amazonaws.com`.
12451
13191
  #
12452
13192
  # The following operations are related to `PutBucketEncryption`:
12453
13193
  #
12454
- # * [GetBucketEncryption][6]
13194
+ # * [GetBucketEncryption][15]
12455
13195
  #
12456
- # * [DeleteBucketEncryption][7]
13196
+ # * [DeleteBucketEncryption][16]
12457
13197
  #
12458
13198
  #
12459
13199
  #
12460
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html
12461
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html
12462
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html
12463
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
12464
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
12465
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html
12466
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html
13200
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
13201
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html
13202
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html
13203
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
13204
+ # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
13205
+ # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
13206
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
13207
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
13208
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
13209
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
13210
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html
13211
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
13212
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
13213
+ # [14]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html
13214
+ # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html
13215
+ # [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html
12467
13216
  #
12468
13217
  # @option params [required, String] :bucket
12469
13218
  # Specifies default encryption for a bucket using server-side encryption
12470
- # with different key options. By default, all buckets have a default
12471
- # encryption configuration that uses server-side encryption with Amazon
12472
- # S3 managed keys (SSE-S3). You can optionally configure default
12473
- # encryption for a bucket by using server-side encryption with an Amazon
12474
- # Web Services KMS key (SSE-KMS) or a customer-provided key (SSE-C). For
12475
- # information about the bucket default encryption feature, see [Amazon
12476
- # S3 Bucket Default Encryption][1] in the *Amazon S3 User Guide*.
13219
+ # with different key options.
13220
+ #
13221
+ # <b>Directory buckets </b> - When you use this operation with a
13222
+ # directory bucket, you must use path-style requests in the format
13223
+ # `https://s3express-control.region_code.amazonaws.com/bucket-name `.
13224
+ # Virtual-hosted-style requests aren't supported. Directory bucket
13225
+ # names must be unique in the chosen Availability Zone. Bucket names
13226
+ # must also follow the format ` bucket_base_name--az_id--x-s3` (for
13227
+ # example, ` DOC-EXAMPLE-BUCKET--usw2-az1--x-s3`). For information about
13228
+ # bucket naming restrictions, see [Directory bucket naming rules][1] in
13229
+ # the *Amazon S3 User Guide*
12477
13230
  #
12478
13231
  #
12479
13232
  #
12480
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html
13233
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html
12481
13234
  #
12482
13235
  # @option params [String] :content_md5
12483
13236
  # The base64-encoded 128-bit MD5 digest of the server-side encryption
@@ -12487,6 +13240,10 @@ module Aws::S3
12487
13240
  # (CLI) or Amazon Web Services SDKs, this field is calculated
12488
13241
  # automatically.
12489
13242
  #
13243
+ # <note markdown="1"> This functionality is not supported for directory buckets.
13244
+ #
13245
+ # </note>
13246
+ #
12490
13247
  # @option params [String] :checksum_algorithm
12491
13248
  # Indicates the algorithm used to create the checksum for the object
12492
13249
  # when you use the SDK. This header will not provide any additional
@@ -12499,6 +13256,11 @@ module Aws::S3
12499
13256
  # If you provide an individual checksum, Amazon S3 ignores any provided
12500
13257
  # `ChecksumAlgorithm` parameter.
12501
13258
  #
13259
+ # <note markdown="1"> For directory buckets, when you use Amazon Web Services SDKs, `CRC32`
13260
+ # is the default checksum algorithm that's used for performance.
13261
+ #
13262
+ # </note>
13263
+ #
12502
13264
  #
12503
13265
  #
12504
13266
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
@@ -12511,6 +13273,12 @@ module Aws::S3
12511
13273
  # you provide does not match the actual owner of the bucket, the request
12512
13274
  # fails with the HTTP status code `403 Forbidden` (access denied).
12513
13275
  #
13276
+ # <note markdown="1"> For directory buckets, this header is not supported in this API
13277
+ # operation. If you specify this header, the request fails with the HTTP
13278
+ # status code `501 Not Implemented`.
13279
+ #
13280
+ # </note>
13281
+ #
12514
13282
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
12515
13283
  #
12516
13284
  # @example Request syntax with placeholder values
@@ -14507,6 +15275,14 @@ module Aws::S3
14507
15275
  #
14508
15276
  # </note>
14509
15277
  #
15278
+ # <note markdown="1"> When you enable versioning on a bucket for the first time, it might
15279
+ # take a short amount of time for the change to be fully propagated. We
15280
+ # recommend that you wait for 15 minutes after enabling versioning
15281
+ # before issuing write operations (`PUT` or `DELETE`) on objects in the
15282
+ # bucket.
15283
+ #
15284
+ # </note>
15285
+ #
14510
15286
  # Sets the versioning state of an existing bucket.
14511
15287
  #
14512
15288
  # You can set the versioning state with one of the following values:
@@ -14900,6 +15676,10 @@ module Aws::S3
14900
15676
  # interruptions when a session expires. For more information about
14901
15677
  # authorization, see [ `CreateSession` ][5].
14902
15678
  #
15679
+ # If the object is encrypted with SSE-KMS, you must also have the
15680
+ # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
15681
+ # identity-based policies and KMS key policies for the KMS key.
15682
+ #
14903
15683
  # Data integrity with Content-MD5
14904
15684
  # : * **General purpose bucket** - To ensure that data is not corrupted
14905
15685
  # traversing the network, use the `Content-MD5` header. When you use
@@ -15182,6 +15962,25 @@ module Aws::S3
15182
15962
  #
15183
15963
  # [1]: https://www.rfc-editor.org/rfc/rfc7234#section-5.3
15184
15964
  #
15965
+ # @option params [String] :if_none_match
15966
+ # Uploads the object only if the object key name does not already exist
15967
+ # in the bucket specified. Otherwise, Amazon S3 returns a `412
15968
+ # Precondition Failed` error.
15969
+ #
15970
+ # If a conflicting operation occurs during the upload S3 returns a `409
15971
+ # ConditionalRequestConflict` response. On a 409 failure you should
15972
+ # retry the upload.
15973
+ #
15974
+ # Expects the '*' (asterisk) character.
15975
+ #
15976
+ # For more information about conditional requests, see [RFC 7232][1], or
15977
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
15978
+ #
15979
+ #
15980
+ #
15981
+ # [1]: https://tools.ietf.org/html/rfc7232
15982
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
15983
+ #
15185
15984
  # @option params [String] :grant_full_control
15186
15985
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
15187
15986
  # object.
@@ -15230,25 +16029,65 @@ module Aws::S3
15230
16029
  # object in Amazon S3 (for example, `AES256`, `aws:kms`,
15231
16030
  # `aws:kms:dsse`).
15232
16031
  #
15233
- # <b>General purpose buckets </b> - You have four mutually exclusive
15234
- # options to protect data using server-side encryption in Amazon S3,
15235
- # depending on how you choose to manage the encryption keys.
15236
- # Specifically, the encryption key options are Amazon S3 managed keys
15237
- # (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or DSSE-KMS), and
15238
- # customer-provided keys (SSE-C). Amazon S3 encrypts data with
15239
- # server-side encryption by using Amazon S3 managed keys (SSE-S3) by
15240
- # default. You can optionally tell Amazon S3 to encrypt data at rest by
15241
- # using server-side encryption with other key options. For more
15242
- # information, see [Using Server-Side Encryption][1] in the *Amazon S3
15243
- # User Guide*.
16032
+ # * <b>General purpose buckets </b> - You have four mutually exclusive
16033
+ # options to protect data using server-side encryption in Amazon S3,
16034
+ # depending on how you choose to manage the encryption keys.
16035
+ # Specifically, the encryption key options are Amazon S3 managed keys
16036
+ # (SSE-S3), Amazon Web Services KMS keys (SSE-KMS or DSSE-KMS), and
16037
+ # customer-provided keys (SSE-C). Amazon S3 encrypts data with
16038
+ # server-side encryption by using Amazon S3 managed keys (SSE-S3) by
16039
+ # default. You can optionally tell Amazon S3 to encrypt data at rest
16040
+ # by using server-side encryption with other key options. For more
16041
+ # information, see [Using Server-Side Encryption][1] in the *Amazon S3
16042
+ # User Guide*.
16043
+ #
16044
+ # * <b>Directory buckets </b> - For directory buckets, there are only
16045
+ # two supported options for server-side encryption: server-side
16046
+ # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
16047
+ # server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). We
16048
+ # recommend that the bucket's default encryption uses the desired
16049
+ # encryption configuration and you don't override the bucket default
16050
+ # encryption in your `CreateSession` requests or `PUT` object
16051
+ # requests. Then, new objects are automatically encrypted with the
16052
+ # desired encryption settings. For more information, see [Protecting
16053
+ # data with server-side encryption][2] in the *Amazon S3 User Guide*.
16054
+ # For more information about the encryption overriding behaviors in
16055
+ # directory buckets, see [Specifying server-side encryption with KMS
16056
+ # for new object uploads][3].
16057
+ #
16058
+ # In the Zonal endpoint API calls (except [CopyObject][4] and
16059
+ # [UploadPartCopy][5]) using the REST API, the encryption request
16060
+ # headers must match the encryption settings that are specified in the
16061
+ # `CreateSession` request. You can't override the values of the
16062
+ # encryption settings (`x-amz-server-side-encryption`,
16063
+ # `x-amz-server-side-encryption-aws-kms-key-id`,
16064
+ # `x-amz-server-side-encryption-context`, and
16065
+ # `x-amz-server-side-encryption-bucket-key-enabled`) that are
16066
+ # specified in the `CreateSession` request. You don't need to
16067
+ # explicitly specify these encryption settings values in Zonal
16068
+ # endpoint API calls, and Amazon S3 will use the encryption settings
16069
+ # values from the `CreateSession` request to protect new objects in
16070
+ # the directory bucket.
16071
+ #
16072
+ # <note markdown="1"> When you use the CLI or the Amazon Web Services SDKs, for
16073
+ # `CreateSession`, the session token refreshes automatically to avoid
16074
+ # service interruptions when a session expires. The CLI or the Amazon
16075
+ # Web Services SDKs use the bucket's default encryption configuration
16076
+ # for the `CreateSession` request. It's not supported to override the
16077
+ # encryption settings values in the `CreateSession` request. So in the
16078
+ # Zonal endpoint API calls (except [CopyObject][4] and
16079
+ # [UploadPartCopy][5]), the encryption request headers must match the
16080
+ # default encryption configuration of the directory bucket.
15244
16081
  #
15245
- # <b>Directory buckets </b> - For directory buckets, only the
15246
- # server-side encryption with Amazon S3 managed keys (SSE-S3) (`AES256`)
15247
- # value is supported.
16082
+ # </note>
15248
16083
  #
15249
16084
  #
15250
16085
  #
15251
16086
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
16087
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
16088
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
16089
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
16090
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
15252
16091
  #
15253
16092
  # @option params [String] :storage_class
15254
16093
  # By default, Amazon S3 uses the STANDARD Storage Class to store newly
@@ -15328,46 +16167,83 @@ module Aws::S3
15328
16167
  # </note>
15329
16168
  #
15330
16169
  # @option params [String] :ssekms_key_id
15331
- # If `x-amz-server-side-encryption` has a valid value of `aws:kms` or
15332
- # `aws:kms:dsse`, this header specifies the ID (Key ID, Key ARN, or Key
15333
- # Alias) of the Key Management Service (KMS) symmetric encryption
15334
- # customer managed key that was used for the object. If you specify
15335
- # `x-amz-server-side-encryption:aws:kms` or
15336
- # `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide`
15337
- # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
15338
- # Amazon Web Services managed key (`aws/s3`) to protect the data. If the
15339
- # KMS key does not exist in the same account that's issuing the
15340
- # command, you must use the full ARN and not just the ID.
16170
+ # Specifies the KMS key ID (Key ID, Key ARN, or Key Alias) to use for
16171
+ # object encryption. If the KMS key doesn't exist in the same account
16172
+ # that's issuing the command, you must use the full Key ARN not the Key
16173
+ # ID.
16174
+ #
16175
+ # **General purpose buckets** - If you specify
16176
+ # `x-amz-server-side-encryption` with `aws:kms` or `aws:kms:dsse`, this
16177
+ # header specifies the ID (Key ID, Key ARN, or Key Alias) of the KMS key
16178
+ # to use. If you specify `x-amz-server-side-encryption:aws:kms` or
16179
+ # `x-amz-server-side-encryption:aws:kms:dsse`, but do not provide
16180
+ # `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
16181
+ # Amazon Web Services managed key (`aws/s3`) to protect the data.
16182
+ #
16183
+ # **Directory buckets** - If you specify `x-amz-server-side-encryption`
16184
+ # with `aws:kms`, you must specify the `
16185
+ # x-amz-server-side-encryption-aws-kms-key-id` header with the ID (Key
16186
+ # ID or Key ARN) of the KMS symmetric encryption customer managed key to
16187
+ # use. Otherwise, you get an HTTP `400 Bad Request` error. Only use the
16188
+ # key ID or key ARN. The key alias format of the KMS key isn't
16189
+ # supported. Your SSE-KMS configuration can only support 1 [customer
16190
+ # managed key][1] per directory bucket for the lifetime of the bucket.
16191
+ # [Amazon Web Services managed key][2] (`aws/s3`) isn't supported.
16192
+ #
16193
+ #
16194
+ #
16195
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
16196
+ # [2]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
15341
16197
  #
15342
- # <note markdown="1"> This functionality is not supported for directory buckets.
16198
+ # @option params [String] :ssekms_encryption_context
16199
+ # Specifies the Amazon Web Services KMS Encryption Context as an
16200
+ # additional encryption context to use for object encryption. The value
16201
+ # of this header is a Base64-encoded string of a UTF-8 encoded JSON,
16202
+ # which contains the encryption context as key-value pairs. This value
16203
+ # is stored as object metadata and automatically gets passed on to
16204
+ # Amazon Web Services KMS for future `GetObject` operations on this
16205
+ # object.
15343
16206
  #
15344
- # </note>
16207
+ # **General purpose buckets** - This value must be explicitly added
16208
+ # during `CopyObject` operations if you want an additional encryption
16209
+ # context for your object. For more information, see [Encryption
16210
+ # context][1] in the *Amazon S3 User Guide*.
15345
16211
  #
15346
- # @option params [String] :ssekms_encryption_context
15347
- # Specifies the Amazon Web Services KMS Encryption Context to use for
15348
- # object encryption. The value of this header is a base64-encoded UTF-8
15349
- # string holding JSON with the encryption context key-value pairs. This
15350
- # value is stored as object metadata and automatically gets passed on to
15351
- # Amazon Web Services KMS for future `GetObject` or `CopyObject`
15352
- # operations on this object. This value must be explicitly added during
15353
- # `CopyObject` operations.
16212
+ # **Directory buckets** - You can optionally provide an explicit
16213
+ # encryption context value. The value must match the default encryption
16214
+ # context - the bucket Amazon Resource Name (ARN). An additional
16215
+ # encryption context value is not supported.
15354
16216
  #
15355
- # <note markdown="1"> This functionality is not supported for directory buckets.
15356
16217
  #
15357
- # </note>
16218
+ #
16219
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html#encryption-context
15358
16220
  #
15359
16221
  # @option params [Boolean] :bucket_key_enabled
15360
16222
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
15361
16223
  # encryption with server-side encryption using Key Management Service
15362
- # (KMS) keys (SSE-KMS). Setting this header to `true` causes Amazon S3
15363
- # to use an S3 Bucket Key for object encryption with SSE-KMS.
16224
+ # (KMS) keys (SSE-KMS).
15364
16225
  #
15365
- # Specifying this header with a PUT action doesn’t affect bucket-level
15366
- # settings for S3 Bucket Key.
16226
+ # **General purpose buckets** - Setting this header to `true` causes
16227
+ # Amazon S3 to use an S3 Bucket Key for object encryption with SSE-KMS.
16228
+ # Also, specifying this header with a PUT action doesn't affect
16229
+ # bucket-level settings for S3 Bucket Key.
16230
+ #
16231
+ # **Directory buckets** - S3 Bucket Keys are always enabled for `GET`
16232
+ # and `PUT` operations in a directory bucket and can’t be disabled. S3
16233
+ # Bucket Keys aren't supported, when you copy SSE-KMS encrypted objects
16234
+ # from general purpose buckets to directory buckets, from directory
16235
+ # buckets to general purpose buckets, or between directory buckets,
16236
+ # through [CopyObject][1], [UploadPartCopy][2], [the Copy operation in
16237
+ # Batch Operations][3], or [the import jobs][4]. In this case, Amazon S3
16238
+ # makes a call to KMS every time a copy request is made for a
16239
+ # KMS-encrypted object.
15367
16240
  #
15368
- # <note markdown="1"> This functionality is not supported for directory buckets.
15369
16241
  #
15370
- # </note>
16242
+ #
16243
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
16244
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
16245
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
16246
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
15371
16247
  #
15372
16248
  # @option params [String] :request_payer
15373
16249
  # Confirms that the requester knows that they will be charged for the
@@ -15445,61 +16321,38 @@ module Aws::S3
15445
16321
  # * {Types::PutObjectOutput#request_charged #request_charged} => String
15446
16322
  #
15447
16323
  #
15448
- # @example Example: To upload an object
16324
+ # @example Example: To upload an object and specify optional tags
15449
16325
  #
15450
- # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
15451
- # # syntax. S3 returns VersionId of the newly created object.
16326
+ # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
16327
+ # # S3 returns version ID of the newly created object.
15452
16328
  #
15453
16329
  # resp = client.put_object({
15454
- # body: "HappyFace.jpg",
16330
+ # body: "c:\\HappyFace.jpg",
15455
16331
  # bucket: "examplebucket",
15456
16332
  # key: "HappyFace.jpg",
15457
- # })
15458
- #
15459
- # resp.to_h outputs the following:
15460
- # {
15461
- # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15462
- # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
15463
- # }
15464
- #
15465
- # @example Example: To upload an object and specify server-side encryption and object tags
15466
- #
15467
- # # The following example uploads an object. The request specifies the optional server-side encryption option. The request
15468
- # # also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.
15469
- #
15470
- # resp = client.put_object({
15471
- # body: "filetoupload",
15472
- # bucket: "examplebucket",
15473
- # key: "exampleobject",
15474
- # server_side_encryption: "AES256",
15475
16333
  # tagging: "key1=value1&key2=value2",
15476
16334
  # })
15477
16335
  #
15478
16336
  # resp.to_h outputs the following:
15479
16337
  # {
15480
16338
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15481
- # server_side_encryption: "AES256",
15482
- # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
16339
+ # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
15483
16340
  # }
15484
16341
  #
15485
- # @example Example: To upload an object (specify optional headers)
16342
+ # @example Example: To create an object.
15486
16343
  #
15487
- # # The following example uploads an object. The request specifies optional request headers to directs S3 to use specific
15488
- # # storage class and use server-side encryption.
16344
+ # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
15489
16345
  #
15490
16346
  # resp = client.put_object({
15491
- # body: "HappyFace.jpg",
16347
+ # body: "filetoupload",
15492
16348
  # bucket: "examplebucket",
15493
- # key: "HappyFace.jpg",
15494
- # server_side_encryption: "AES256",
15495
- # storage_class: "STANDARD_IA",
16349
+ # key: "objectkey",
15496
16350
  # })
15497
16351
  #
15498
16352
  # resp.to_h outputs the following:
15499
16353
  # {
15500
16354
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15501
- # server_side_encryption: "AES256",
15502
- # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
16355
+ # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
15503
16356
  # }
15504
16357
  #
15505
16358
  # @example Example: To upload object and specify user-defined metadata
@@ -15523,22 +16376,41 @@ module Aws::S3
15523
16376
  # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
15524
16377
  # }
15525
16378
  #
15526
- # @example Example: To upload an object and specify optional tags
16379
+ # @example Example: To upload an object
15527
16380
  #
15528
- # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
15529
- # # S3 returns version ID of the newly created object.
16381
+ # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
16382
+ # # syntax. S3 returns VersionId of the newly created object.
15530
16383
  #
15531
16384
  # resp = client.put_object({
15532
- # body: "c:\\HappyFace.jpg",
16385
+ # body: "HappyFace.jpg",
15533
16386
  # bucket: "examplebucket",
15534
16387
  # key: "HappyFace.jpg",
16388
+ # })
16389
+ #
16390
+ # resp.to_h outputs the following:
16391
+ # {
16392
+ # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
16393
+ # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
16394
+ # }
16395
+ #
16396
+ # @example Example: To upload an object and specify server-side encryption and object tags
16397
+ #
16398
+ # # The following example uploads an object. The request specifies the optional server-side encryption option. The request
16399
+ # # also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.
16400
+ #
16401
+ # resp = client.put_object({
16402
+ # body: "filetoupload",
16403
+ # bucket: "examplebucket",
16404
+ # key: "exampleobject",
16405
+ # server_side_encryption: "AES256",
15535
16406
  # tagging: "key1=value1&key2=value2",
15536
16407
  # })
15537
16408
  #
15538
16409
  # resp.to_h outputs the following:
15539
16410
  # {
15540
16411
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15541
- # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
16412
+ # server_side_encryption: "AES256",
16413
+ # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
15542
16414
  # }
15543
16415
  #
15544
16416
  # @example Example: To upload an object and specify canned ACL.
@@ -15559,20 +16431,24 @@ module Aws::S3
15559
16431
  # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
15560
16432
  # }
15561
16433
  #
15562
- # @example Example: To create an object.
16434
+ # @example Example: To upload an object (specify optional headers)
15563
16435
  #
15564
- # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
16436
+ # # The following example uploads an object. The request specifies optional request headers to directs S3 to use specific
16437
+ # # storage class and use server-side encryption.
15565
16438
  #
15566
16439
  # resp = client.put_object({
15567
- # body: "filetoupload",
16440
+ # body: "HappyFace.jpg",
15568
16441
  # bucket: "examplebucket",
15569
- # key: "objectkey",
16442
+ # key: "HappyFace.jpg",
16443
+ # server_side_encryption: "AES256",
16444
+ # storage_class: "STANDARD_IA",
15570
16445
  # })
15571
16446
  #
15572
16447
  # resp.to_h outputs the following:
15573
16448
  # {
15574
16449
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
15575
- # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
16450
+ # server_side_encryption: "AES256",
16451
+ # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
15576
16452
  # }
15577
16453
  #
15578
16454
  # @example Streaming a file from disk
@@ -15600,6 +16476,7 @@ module Aws::S3
15600
16476
  # checksum_sha1: "ChecksumSHA1",
15601
16477
  # checksum_sha256: "ChecksumSHA256",
15602
16478
  # expires: Time.now,
16479
+ # if_none_match: "IfNoneMatch",
15603
16480
  # grant_full_control: "GrantFullControl",
15604
16481
  # grant_read: "GrantRead",
15605
16482
  # grant_read_acp: "GrantReadACP",
@@ -16699,6 +17576,10 @@ module Aws::S3
16699
17576
  #
16700
17577
  # </note>
16701
17578
  #
17579
+ # The `SELECT` job type for the RestoreObject operation is no longer
17580
+ # available to new customers. Existing customers of Amazon S3 Select can
17581
+ # continue to use the feature as usual. [Learn more][1]
17582
+ #
16702
17583
  # Restores an archived copy of an object back into Amazon S3
16703
17584
  #
16704
17585
  # This functionality is not supported for Amazon S3 on Outposts.
@@ -16712,11 +17593,11 @@ module Aws::S3
16712
17593
  # For more information about the `S3` structure in the request body, see
16713
17594
  # the following:
16714
17595
  #
16715
- # * [PutObject][1]
17596
+ # * [PutObject][2]
16716
17597
  #
16717
- # * [Managing Access with ACLs][2] in the *Amazon S3 User Guide*
17598
+ # * [Managing Access with ACLs][3] in the *Amazon S3 User Guide*
16718
17599
  #
16719
- # * [Protecting Data Using Server-Side Encryption][3] in the *Amazon S3
17600
+ # * [Protecting Data Using Server-Side Encryption][4] in the *Amazon S3
16720
17601
  # User Guide*
16721
17602
  #
16722
17603
  # Permissions
@@ -16725,8 +17606,8 @@ module Aws::S3
16725
17606
  # `s3:RestoreObject` action. The bucket owner has this permission by
16726
17607
  # default and can grant this permission to others. For more
16727
17608
  # information about permissions, see [Permissions Related to Bucket
16728
- # Subresource Operations][4] and [Managing Access Permissions to Your
16729
- # Amazon S3 Resources][5] in the *Amazon S3 User Guide*.
17609
+ # Subresource Operations][5] and [Managing Access Permissions to Your
17610
+ # Amazon S3 Resources][6] in the *Amazon S3 User Guide*.
16730
17611
  #
16731
17612
  # Restoring objects
16732
17613
  #
@@ -16789,11 +17670,11 @@ module Aws::S3
16789
17670
  #
16790
17671
  # For more information about archive retrieval options and provisioned
16791
17672
  # capacity for `Expedited` data access, see [Restoring Archived
16792
- # Objects][6] in the *Amazon S3 User Guide*.
17673
+ # Objects][7] in the *Amazon S3 User Guide*.
16793
17674
  #
16794
17675
  # You can use Amazon S3 restore speed upgrade to change the restore
16795
17676
  # speed to a faster speed while it is in progress. For more
16796
- # information, see [ Upgrading the speed of an in-progress restore][7]
17677
+ # information, see [ Upgrading the speed of an in-progress restore][8]
16797
17678
  # in the *Amazon S3 User Guide*.
16798
17679
  #
16799
17680
  # To get the status of object restoration, you can send a `HEAD`
@@ -16801,7 +17682,7 @@ module Aws::S3
16801
17682
  # provides information about the restoration status, in the response.
16802
17683
  # You can use Amazon S3 event notifications to notify you when a
16803
17684
  # restore is initiated or completed. For more information, see
16804
- # [Configuring Amazon S3 Event Notifications][8] in the *Amazon S3
17685
+ # [Configuring Amazon S3 Event Notifications][9] in the *Amazon S3
16805
17686
  # User Guide*.
16806
17687
  #
16807
17688
  # After restoring an archived object, you can update the restoration
@@ -16817,8 +17698,8 @@ module Aws::S3
16817
17698
  # restore an object copy for 10 days, but the object is scheduled to
16818
17699
  # expire in 3 days, Amazon S3 deletes the object in 3 days. For more
16819
17700
  # information about lifecycle configuration, see
16820
- # [PutBucketLifecycleConfiguration][9] and [Object Lifecycle
16821
- # Management][10] in *Amazon S3 User Guide*.
17701
+ # [PutBucketLifecycleConfiguration][10] and [Object Lifecycle
17702
+ # Management][11] in *Amazon S3 User Guide*.
16822
17703
  #
16823
17704
  # Responses
16824
17705
  #
@@ -16856,23 +17737,24 @@ module Aws::S3
16856
17737
  #
16857
17738
  # The following operations are related to `RestoreObject`:
16858
17739
  #
16859
- # * [PutBucketLifecycleConfiguration][9]
17740
+ # * [PutBucketLifecycleConfiguration][10]
16860
17741
  #
16861
- # * [GetBucketNotificationConfiguration][11]
17742
+ # * [GetBucketNotificationConfiguration][12]
16862
17743
  #
16863
17744
  #
16864
17745
  #
16865
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html
16866
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html
16867
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
16868
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
16869
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
16870
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html
16871
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html
16872
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
16873
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
16874
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
16875
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html
17746
+ # [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/
17747
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html
17748
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html
17749
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
17750
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
17751
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
17752
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html
17753
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/restoring-objects.html#restoring-objects-upgrade-tier.title.html
17754
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
17755
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
17756
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
17757
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html
16876
17758
  #
16877
17759
  # @option params [required, String] :bucket
16878
17760
  # The bucket name containing the object to restore.
@@ -17084,6 +17966,10 @@ module Aws::S3
17084
17966
  #
17085
17967
  # </note>
17086
17968
  #
17969
+ # The SelectObjectContent operation is no longer available to new
17970
+ # customers. Existing customers of Amazon S3 Select can continue to use
17971
+ # the operation as usual. [Learn more][1]
17972
+ #
17087
17973
  # This action filters the contents of an Amazon S3 object based on a
17088
17974
  # simple structured query language (SQL) statement. In the request,
17089
17975
  # along with the SQL expression, you must also specify a data
@@ -17095,7 +17981,7 @@ module Aws::S3
17095
17981
  # This functionality is not supported for Amazon S3 on Outposts.
17096
17982
  #
17097
17983
  # For more information about Amazon S3 Select, see [Selecting Content
17098
- # from Objects][1] and [SELECT Command][2] in the *Amazon S3 User
17984
+ # from Objects][2] and [SELECT Command][3] in the *Amazon S3 User
17099
17985
  # Guide*.
17100
17986
  #
17101
17987
  #
@@ -17105,7 +17991,7 @@ module Aws::S3
17105
17991
  # : You must have the `s3:GetObject` permission for this
17106
17992
  # operation. Amazon S3 Select does not support anonymous access. For
17107
17993
  # more information about permissions, see [Specifying Permissions in a
17108
- # Policy][3] in the *Amazon S3 User Guide*.
17994
+ # Policy][4] in the *Amazon S3 User Guide*.
17109
17995
  #
17110
17996
  # Object Data Formats
17111
17997
  #
@@ -17130,31 +18016,31 @@ module Aws::S3
17130
18016
  #
17131
18017
  # For objects that are encrypted with customer-provided encryption
17132
18018
  # keys (SSE-C), you must use HTTPS, and you must use the headers
17133
- # that are documented in the [GetObject][4]. For more information
18019
+ # that are documented in the [GetObject][5]. For more information
17134
18020
  # about SSE-C, see [Server-Side Encryption (Using Customer-Provided
17135
- # Encryption Keys)][5] in the *Amazon S3 User Guide*.
18021
+ # Encryption Keys)][6] in the *Amazon S3 User Guide*.
17136
18022
  #
17137
18023
  # For objects that are encrypted with Amazon S3 managed keys
17138
18024
  # (SSE-S3) and Amazon Web Services KMS keys (SSE-KMS), server-side
17139
18025
  # encryption is handled transparently, so you don't need to specify
17140
18026
  # anything. For more information about server-side encryption,
17141
18027
  # including SSE-S3 and SSE-KMS, see [Protecting Data Using
17142
- # Server-Side Encryption][6] in the *Amazon S3 User Guide*.
18028
+ # Server-Side Encryption][7] in the *Amazon S3 User Guide*.
17143
18029
  #
17144
18030
  # Working with the Response Body
17145
18031
  #
17146
18032
  # : Given the response size is unknown, Amazon S3 Select streams the
17147
18033
  # response as a series of messages and includes a `Transfer-Encoding`
17148
18034
  # header with `chunked` as its value in the response. For more
17149
- # information, see [Appendix: SelectObjectContent Response][7].
18035
+ # information, see [Appendix: SelectObjectContent Response][8].
17150
18036
  #
17151
18037
  # GetObject Support
17152
18038
  #
17153
18039
  # : The `SelectObjectContent` action does not support the following
17154
- # `GetObject` functionality. For more information, see [GetObject][4].
18040
+ # `GetObject` functionality. For more information, see [GetObject][5].
17155
18041
  #
17156
18042
  # * `Range`: Although you can specify a scan range for an Amazon S3
17157
- # Select request (see [SelectObjectContentRequest - ScanRange][8] in
18043
+ # Select request (see [SelectObjectContentRequest - ScanRange][9] in
17158
18044
  # the request parameters), you cannot specify the range of bytes of
17159
18045
  # an object to return.
17160
18046
  #
@@ -17165,36 +18051,37 @@ module Aws::S3
17165
18051
  # storage classes, nor objects in the `ARCHIVE_ACCESS` or
17166
18052
  # `DEEP_ARCHIVE_ACCESS` access tiers of the `INTELLIGENT_TIERING`
17167
18053
  # storage class. For more information about storage classes, see
17168
- # [Using Amazon S3 storage classes][9] in the *Amazon S3 User
18054
+ # [Using Amazon S3 storage classes][10] in the *Amazon S3 User
17169
18055
  # Guide*.
17170
18056
  #
17171
18057
  # Special Errors
17172
18058
  #
17173
18059
  # : For a list of special errors for this operation, see [List of SELECT
17174
- # Object Content Error Codes][10]
18060
+ # Object Content Error Codes][11]
17175
18061
  #
17176
18062
  # The following operations are related to `SelectObjectContent`:
17177
18063
  #
17178
- # * [GetObject][4]
18064
+ # * [GetObject][5]
17179
18065
  #
17180
- # * [GetBucketLifecycleConfiguration][11]
18066
+ # * [GetBucketLifecycleConfiguration][12]
17181
18067
  #
17182
- # * [PutBucketLifecycleConfiguration][12]
18068
+ # * [PutBucketLifecycleConfiguration][13]
17183
18069
  #
17184
18070
  #
17185
18071
  #
17186
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html
17187
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-select.html
17188
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
17189
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
17190
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
17191
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
17192
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html
17193
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange
17194
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html
17195
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList
17196
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html
17197
- # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
18072
+ # [1]: http://aws.amazon.com/blogs/storage/how-to-optimize-querying-your-data-in-amazon-s3/
18073
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html
18074
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-glacier-select-sql-reference-select.html
18075
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
18076
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
18077
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
18078
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
18079
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTSelectObjectAppendix.html
18080
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_SelectObjectContent.html#AmazonS3-SelectObjectContent-request-ScanRange
18081
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/storage-class-intro.html
18082
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#SelectObjectContentErrorCodeList
18083
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html
18084
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
17198
18085
  #
17199
18086
  # @option params [required, String] :bucket
17200
18087
  # The S3 bucket.
@@ -17541,14 +18428,27 @@ module Aws::S3
17541
18428
  # </note>
17542
18429
  #
17543
18430
  # Permissions
17544
- # : * **General purpose bucket permissions** - For information on the
17545
- # permissions required to use the multipart upload API, see
17546
- # [Multipart Upload and Permissions][6] in the *Amazon S3 User
17547
- # Guide*.
18431
+ # : * **General purpose bucket permissions** - To perform a multipart
18432
+ # upload with encryption using an Key Management Service key, the
18433
+ # requester must have permission to the `kms:Decrypt` and
18434
+ # `kms:GenerateDataKey` actions on the key. The requester must also
18435
+ # have permissions for the `kms:GenerateDataKey` action for the
18436
+ # `CreateMultipartUpload` API. Then, the requester needs permissions
18437
+ # for the `kms:Decrypt` action on the `UploadPart` and
18438
+ # `UploadPartCopy` APIs.
18439
+ #
18440
+ # These permissions are required because Amazon S3 must decrypt and
18441
+ # read data from the encrypted file parts before it completes the
18442
+ # multipart upload. For more information about KMS permissions, see
18443
+ # [Protecting data using server-side encryption with KMS][6] in the
18444
+ # *Amazon S3 User Guide*. For information about the permissions
18445
+ # required to use the multipart upload API, see [Multipart upload
18446
+ # and permissions][7] and [Multipart upload API and permissions][8]
18447
+ # in the *Amazon S3 User Guide*.
17548
18448
  #
17549
18449
  # * **Directory bucket permissions** - To grant access to this API
17550
18450
  # operation on a directory bucket, we recommend that you use the [
17551
- # `CreateSession` ][7] API operation for session-based
18451
+ # `CreateSession` ][9] API operation for session-based
17552
18452
  # authorization. Specifically, you grant the
17553
18453
  # `s3express:CreateSession` permission to the directory bucket in a
17554
18454
  # bucket policy or an IAM identity-based policy. Then, you make the
@@ -17559,7 +18459,11 @@ module Aws::S3
17559
18459
  # token for use. Amazon Web Services CLI or SDKs create session and
17560
18460
  # refresh the session token automatically to avoid service
17561
18461
  # interruptions when a session expires. For more information about
17562
- # authorization, see [ `CreateSession` ][7].
18462
+ # authorization, see [ `CreateSession` ][9].
18463
+ #
18464
+ # If the object is encrypted with SSE-KMS, you must also have the
18465
+ # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
18466
+ # identity-based policies and KMS key policies for the KMS key.
17563
18467
  #
17564
18468
  # Data integrity
17565
18469
  #
@@ -17571,7 +18475,7 @@ module Aws::S3
17571
18475
  # then Amazon Web Services S3 uses the `x-amz-content-sha256` header
17572
18476
  # as a checksum instead of `Content-MD5`. For more information see
17573
18477
  # [Authenticating Requests: Using the Authorization Header (Amazon Web
17574
- # Services Signature Version 4)][8].
18478
+ # Services Signature Version 4)][10].
17575
18479
  #
17576
18480
  # <note markdown="1"> **Directory buckets** - MD5 is not supported by directory buckets.
17577
18481
  # You can use checksum algorithms to check object integrity.
@@ -17612,12 +18516,13 @@ module Aws::S3
17612
18516
  #
17613
18517
  # * x-amz-server-side-encryption-customer-key-MD5
17614
18518
  #
17615
- # * **Directory bucket** - For directory buckets, only server-side
17616
- # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) is
17617
- # supported.
18519
+ # For more information, see [Using Server-Side Encryption][11] in
18520
+ # the *Amazon S3 User Guide*.
17618
18521
  #
17619
- # For more information, see [Using Server-Side Encryption][9] in the
17620
- # *Amazon S3 User Guide*.
18522
+ # * <b>Directory buckets </b> - For directory buckets, there are only
18523
+ # two supported options for server-side encryption: server-side
18524
+ # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
18525
+ # server-side encryption with KMS keys (SSE-KMS) (`aws:kms`).
17621
18526
  #
17622
18527
  # Special errors
17623
18528
  # : * Error Code: `NoSuchUpload`
@@ -17639,13 +18544,13 @@ module Aws::S3
17639
18544
  #
17640
18545
  # * [CreateMultipartUpload][2]
17641
18546
  #
17642
- # * [CompleteMultipartUpload][10]
18547
+ # * [CompleteMultipartUpload][12]
17643
18548
  #
17644
- # * [AbortMultipartUpload][11]
18549
+ # * [AbortMultipartUpload][13]
17645
18550
  #
17646
- # * [ListParts][12]
18551
+ # * [ListParts][14]
17647
18552
  #
17648
- # * [ListMultipartUploads][13]
18553
+ # * [ListMultipartUploads][15]
17649
18554
  #
17650
18555
  #
17651
18556
  #
@@ -17654,14 +18559,16 @@ module Aws::S3
17654
18559
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/qfacts.html
17655
18560
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html
17656
18561
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
17657
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
17658
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
17659
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html
17660
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
17661
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
17662
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
17663
- # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
17664
- # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
18562
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
18563
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
18564
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
18565
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
18566
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html
18567
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
18568
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
18569
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
18570
+ # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
18571
+ # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
17665
18572
  #
17666
18573
  # @option params [String, StringIO, File] :body
17667
18574
  # Object data.
@@ -17994,9 +18901,21 @@ module Aws::S3
17994
18901
  # have the <b> <code>s3:PutObject</code> </b> permission to write
17995
18902
  # the object copy to the destination bucket.
17996
18903
  #
17997
- # For information about permissions required to use the multipart
17998
- # upload API, see [Multipart upload API and permissions][7] in the
17999
- # *Amazon S3 User Guide*.
18904
+ # * To perform a multipart upload with encryption using an Key
18905
+ # Management Service key, the requester must have permission to
18906
+ # the `kms:Decrypt` and `kms:GenerateDataKey` actions on the key.
18907
+ # The requester must also have permissions for the
18908
+ # `kms:GenerateDataKey` action for the `CreateMultipartUpload`
18909
+ # API. Then, the requester needs permissions for the `kms:Decrypt`
18910
+ # action on the `UploadPart` and `UploadPartCopy` APIs. These
18911
+ # permissions are required because Amazon S3 must decrypt and read
18912
+ # data from the encrypted file parts before it completes the
18913
+ # multipart upload. For more information about KMS permissions,
18914
+ # see [Protecting data using server-side encryption with KMS][7]
18915
+ # in the *Amazon S3 User Guide*. For information about the
18916
+ # permissions required to use the multipart upload API, see
18917
+ # [Multipart upload and permissions][8] and [Multipart upload API
18918
+ # and permissions][9] in the *Amazon S3 User Guide*.
18000
18919
  #
18001
18920
  # * **Directory bucket permissions** - You must have permissions in a
18002
18921
  # bucket policy or an IAM identity-based policy based on the source
@@ -18016,20 +18935,41 @@ module Aws::S3
18016
18935
  # destination. The `s3express:SessionMode` condition key cannot be
18017
18936
  # set to `ReadOnly` on the copy destination.
18018
18937
  #
18938
+ # If the object is encrypted with SSE-KMS, you must also have the
18939
+ # `kms:GenerateDataKey` and `kms:Decrypt` permissions in IAM
18940
+ # identity-based policies and KMS key policies for the KMS key.
18941
+ #
18019
18942
  # For example policies, see [Example bucket policies for S3 Express
18020
- # One Zone][8] and [Amazon Web Services Identity and Access
18943
+ # One Zone][10] and [Amazon Web Services Identity and Access
18021
18944
  # Management (IAM) identity-based policies for S3 Express One
18022
- # Zone][9] in the *Amazon S3 User Guide*.
18945
+ # Zone][11] in the *Amazon S3 User Guide*.
18023
18946
  #
18024
18947
  # Encryption
18025
18948
  # : * <b>General purpose buckets </b> - For information about using
18026
18949
  # server-side encryption with customer-provided encryption keys with
18027
- # the `UploadPartCopy` operation, see [CopyObject][10] and
18950
+ # the `UploadPartCopy` operation, see [CopyObject][12] and
18028
18951
  # [UploadPart][2].
18029
18952
  #
18030
- # * <b>Directory buckets </b> - For directory buckets, only
18031
- # server-side encryption with Amazon S3 managed keys (SSE-S3)
18032
- # (`AES256`) is supported.
18953
+ # * <b>Directory buckets </b> - For directory buckets, there are only
18954
+ # two supported options for server-side encryption: server-side
18955
+ # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
18956
+ # server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). For
18957
+ # more information, see [Protecting data with server-side
18958
+ # encryption][13] in the *Amazon S3 User Guide*.
18959
+ #
18960
+ # <note markdown="1"> For directory buckets, when you perform a `CreateMultipartUpload`
18961
+ # operation and an `UploadPartCopy` operation, the request headers
18962
+ # you provide in the `CreateMultipartUpload` request must match the
18963
+ # default encryption configuration of the destination bucket.
18964
+ #
18965
+ # </note>
18966
+ #
18967
+ # S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted
18968
+ # objects from general purpose buckets to directory buckets, from
18969
+ # directory buckets to general purpose buckets, or between directory
18970
+ # buckets, through [UploadPartCopy][14]. In this case, Amazon S3
18971
+ # makes a call to KMS every time a copy request is made for a
18972
+ # KMS-encrypted object.
18033
18973
  #
18034
18974
  # Special errors
18035
18975
  # : * Error Code: `NoSuchUpload`
@@ -18054,17 +18994,17 @@ module Aws::S3
18054
18994
  #
18055
18995
  # The following operations are related to `UploadPartCopy`:
18056
18996
  #
18057
- # * [CreateMultipartUpload][11]
18997
+ # * [CreateMultipartUpload][15]
18058
18998
  #
18059
18999
  # * [UploadPart][2]
18060
19000
  #
18061
- # * [CompleteMultipartUpload][12]
19001
+ # * [CompleteMultipartUpload][16]
18062
19002
  #
18063
- # * [AbortMultipartUpload][13]
19003
+ # * [AbortMultipartUpload][17]
18064
19004
  #
18065
- # * [ListParts][14]
19005
+ # * [ListParts][18]
18066
19006
  #
18067
- # * [ListMultipartUploads][15]
19007
+ # * [ListMultipartUploads][19]
18068
19008
  #
18069
19009
  #
18070
19010
  #
@@ -18074,15 +19014,19 @@ module Aws::S3
18074
19014
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectOperations.html
18075
19015
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Regions-and-Zones.html
18076
19016
  # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
18077
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
18078
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
18079
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
18080
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
18081
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
18082
- # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
18083
- # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
18084
- # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
18085
- # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
19017
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html
19018
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
19019
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
19020
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
19021
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
19022
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
19023
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
19024
+ # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
19025
+ # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
19026
+ # [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
19027
+ # [17]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
19028
+ # [18]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
19029
+ # [19]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
18086
19030
  #
18087
19031
  # @option params [required, String] :bucket
18088
19032
  # The bucket name.
@@ -18368,45 +19312,45 @@ module Aws::S3
18368
19312
  # * {Types::UploadPartCopyOutput#request_charged #request_charged} => String
18369
19313
  #
18370
19314
  #
18371
- # @example Example: To upload a part by copying data from an existing object as data source
19315
+ # @example Example: To upload a part by copying byte range from an existing object as data source
18372
19316
  #
18373
- # # The following example uploads a part of a multipart upload by copying data from an existing object as data source.
19317
+ # # The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as
19318
+ # # data source.
18374
19319
  #
18375
19320
  # resp = client.upload_part_copy({
18376
19321
  # bucket: "examplebucket",
18377
19322
  # copy_source: "/bucketname/sourceobjectkey",
19323
+ # copy_source_range: "bytes=1-100000",
18378
19324
  # key: "examplelargeobject",
18379
- # part_number: 1,
19325
+ # part_number: 2,
18380
19326
  # upload_id: "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--",
18381
19327
  # })
18382
19328
  #
18383
19329
  # resp.to_h outputs the following:
18384
19330
  # {
18385
19331
  # copy_part_result: {
18386
- # etag: "\"b0c6f0e7e054ab8fa2536a2677f8734d\"",
18387
- # last_modified: Time.parse("2016-12-29T21:24:43.000Z"),
19332
+ # etag: "\"65d16d19e65a7508a51f043180edcc36\"",
19333
+ # last_modified: Time.parse("2016-12-29T21:44:28.000Z"),
18388
19334
  # },
18389
19335
  # }
18390
19336
  #
18391
- # @example Example: To upload a part by copying byte range from an existing object as data source
19337
+ # @example Example: To upload a part by copying data from an existing object as data source
18392
19338
  #
18393
- # # The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as
18394
- # # data source.
19339
+ # # The following example uploads a part of a multipart upload by copying data from an existing object as data source.
18395
19340
  #
18396
19341
  # resp = client.upload_part_copy({
18397
19342
  # bucket: "examplebucket",
18398
19343
  # copy_source: "/bucketname/sourceobjectkey",
18399
- # copy_source_range: "bytes=1-100000",
18400
19344
  # key: "examplelargeobject",
18401
- # part_number: 2,
19345
+ # part_number: 1,
18402
19346
  # upload_id: "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--",
18403
19347
  # })
18404
19348
  #
18405
19349
  # resp.to_h outputs the following:
18406
19350
  # {
18407
19351
  # copy_part_result: {
18408
- # etag: "\"65d16d19e65a7508a51f043180edcc36\"",
18409
- # last_modified: Time.parse("2016-12-29T21:44:28.000Z"),
19352
+ # etag: "\"b0c6f0e7e054ab8fa2536a2677f8734d\"",
19353
+ # last_modified: Time.parse("2016-12-29T21:24:43.000Z"),
18410
19354
  # },
18411
19355
  # }
18412
19356
  #
@@ -18856,14 +19800,19 @@ module Aws::S3
18856
19800
  # @api private
18857
19801
  def build_request(operation_name, params = {})
18858
19802
  handlers = @handlers.for(operation_name)
19803
+ tracer = config.telemetry_provider.tracer_provider.tracer(
19804
+ Aws::Telemetry.module_to_tracer_name('Aws::S3')
19805
+ )
18859
19806
  context = Seahorse::Client::RequestContext.new(
18860
19807
  operation_name: operation_name,
18861
19808
  operation: config.api.operation(operation_name),
18862
19809
  client: self,
18863
19810
  params: params,
18864
- config: config)
19811
+ config: config,
19812
+ tracer: tracer
19813
+ )
18865
19814
  context[:gem_name] = 'aws-sdk-s3'
18866
- context[:gem_version] = '1.157.0'
19815
+ context[:gem_version] = '1.166.0'
18867
19816
  Seahorse::Client::Request.new(handlers, context)
18868
19817
  end
18869
19818