aws-sdk-s3 1.184.0 → 1.208.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +160 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +43 -4
  5. data/lib/aws-sdk-s3/bucket_acl.rb +1 -1
  6. data/lib/aws-sdk-s3/bucket_versioning.rb +33 -0
  7. data/lib/aws-sdk-s3/client.rb +1979 -377
  8. data/lib/aws-sdk-s3/client_api.rb +457 -162
  9. data/lib/aws-sdk-s3/customizations/object.rb +76 -86
  10. data/lib/aws-sdk-s3/customizations.rb +4 -1
  11. data/lib/aws-sdk-s3/default_executor.rb +103 -0
  12. data/lib/aws-sdk-s3/encryption/client.rb +2 -2
  13. data/lib/aws-sdk-s3/encryption/default_cipher_provider.rb +2 -0
  14. data/lib/aws-sdk-s3/encryption/encrypt_handler.rb +2 -0
  15. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +2 -0
  16. data/lib/aws-sdk-s3/encryptionV2/client.rb +98 -23
  17. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +7 -162
  18. data/lib/aws-sdk-s3/encryptionV2/decryption.rb +205 -0
  19. data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +17 -0
  20. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +2 -0
  21. data/lib/aws-sdk-s3/encryptionV2/io_encrypter.rb +2 -0
  22. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +8 -0
  23. data/lib/aws-sdk-s3/encryptionV2/utils.rb +5 -0
  24. data/lib/aws-sdk-s3/encryptionV3/client.rb +885 -0
  25. data/lib/aws-sdk-s3/encryptionV3/decrypt_handler.rb +98 -0
  26. data/lib/aws-sdk-s3/encryptionV3/decryption.rb +244 -0
  27. data/lib/aws-sdk-s3/encryptionV3/default_cipher_provider.rb +159 -0
  28. data/lib/aws-sdk-s3/encryptionV3/default_key_provider.rb +35 -0
  29. data/lib/aws-sdk-s3/encryptionV3/encrypt_handler.rb +98 -0
  30. data/lib/aws-sdk-s3/encryptionV3/errors.rb +47 -0
  31. data/lib/aws-sdk-s3/encryptionV3/io_auth_decrypter.rb +60 -0
  32. data/lib/aws-sdk-s3/encryptionV3/io_decrypter.rb +35 -0
  33. data/lib/aws-sdk-s3/encryptionV3/io_encrypter.rb +84 -0
  34. data/lib/aws-sdk-s3/encryptionV3/key_provider.rb +28 -0
  35. data/lib/aws-sdk-s3/encryptionV3/kms_cipher_provider.rb +159 -0
  36. data/lib/aws-sdk-s3/encryptionV3/materials.rb +58 -0
  37. data/lib/aws-sdk-s3/encryptionV3/utils.rb +321 -0
  38. data/lib/aws-sdk-s3/encryption_v2.rb +1 -0
  39. data/lib/aws-sdk-s3/encryption_v3.rb +24 -0
  40. data/lib/aws-sdk-s3/endpoint_parameters.rb +17 -17
  41. data/lib/aws-sdk-s3/endpoint_provider.rb +332 -162
  42. data/lib/aws-sdk-s3/endpoints.rb +110 -0
  43. data/lib/aws-sdk-s3/errors.rb +11 -0
  44. data/lib/aws-sdk-s3/file_downloader.rb +197 -134
  45. data/lib/aws-sdk-s3/file_uploader.rb +9 -13
  46. data/lib/aws-sdk-s3/legacy_signer.rb +2 -1
  47. data/lib/aws-sdk-s3/multipart_download_error.rb +8 -0
  48. data/lib/aws-sdk-s3/multipart_file_uploader.rb +92 -107
  49. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +96 -107
  50. data/lib/aws-sdk-s3/multipart_upload_error.rb +3 -4
  51. data/lib/aws-sdk-s3/object.rb +117 -36
  52. data/lib/aws-sdk-s3/object_acl.rb +8 -2
  53. data/lib/aws-sdk-s3/object_multipart_copier.rb +2 -1
  54. data/lib/aws-sdk-s3/object_summary.rb +72 -20
  55. data/lib/aws-sdk-s3/object_version.rb +7 -9
  56. data/lib/aws-sdk-s3/plugins/endpoints.rb +1 -1
  57. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +5 -7
  58. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -1
  59. data/lib/aws-sdk-s3/resource.rb +6 -0
  60. data/lib/aws-sdk-s3/transfer_manager.rb +303 -0
  61. data/lib/aws-sdk-s3/types.rb +1719 -310
  62. data/lib/aws-sdk-s3.rb +1 -1
  63. data/sig/bucket.rbs +12 -3
  64. data/sig/client.rbs +173 -33
  65. data/sig/errors.rbs +2 -0
  66. data/sig/multipart_upload.rbs +1 -1
  67. data/sig/object.rbs +15 -10
  68. data/sig/object_summary.rbs +11 -9
  69. data/sig/resource.rbs +8 -1
  70. data/sig/types.rbs +217 -30
  71. metadata +25 -9
@@ -137,8 +137,8 @@ module Aws::S3
137
137
  # class name or an instance of a plugin class.
138
138
  #
139
139
  # @option options [required, Aws::CredentialProvider] :credentials
140
- # Your AWS credentials. This can be an instance of any one of the
141
- # following classes:
140
+ # Your AWS credentials used for authentication. This can be any class that includes and implements
141
+ # `Aws::CredentialProvider`, or instance of any one of the following classes:
142
142
  #
143
143
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
144
144
  # credentials.
@@ -166,22 +166,24 @@ module Aws::S3
166
166
  # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
167
167
  # from the Cognito Identity service.
168
168
  #
169
- # When `:credentials` are not configured directly, the following
170
- # locations will be searched for credentials:
169
+ # When `:credentials` are not configured directly, the following locations will be searched for credentials:
171
170
  #
172
171
  # * `Aws.config[:credentials]`
172
+ #
173
173
  # * The `:access_key_id`, `:secret_access_key`, `:session_token`, and
174
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
+ #
176
+ # * `ENV['AWS_ACCESS_KEY_ID']`, `ENV['AWS_SECRET_ACCESS_KEY']`,
177
+ # `ENV['AWS_SESSION_TOKEN']`, and `ENV['AWS_ACCOUNT_ID']`.
178
+ #
177
179
  # * `~/.aws/credentials`
180
+ #
178
181
  # * `~/.aws/config`
179
- # * EC2/ECS IMDS instance profile - When used by default, the timeouts
180
- # are very aggressive. Construct and pass an instance of
181
- # `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
182
- # enable retries and extended timeouts. Instance profile credential
183
- # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
184
- # to true.
182
+ #
183
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive.
184
+ # Construct and pass an instance of `Aws::InstanceProfileCredentials` or `Aws::ECSCredentials` to
185
+ # enable retries and extended timeouts. Instance profile credential fetching can be disabled by
186
+ # setting `ENV['AWS_EC2_METADATA_DISABLED']` to `true`.
185
187
  #
186
188
  # @option options [required, String] :region
187
189
  # The AWS region to connect to. The configured `:region` is
@@ -219,6 +221,11 @@ module Aws::S3
219
221
  # When false, the request will raise a `RetryCapacityNotAvailableError` and will
220
222
  # not retry instead of sleeping.
221
223
  #
224
+ # @option options [Array<String>] :auth_scheme_preference
225
+ # A list of preferred authentication schemes to use when making a request. Supported values are:
226
+ # `sigv4`, `sigv4a`, `httpBearerAuth`, and `noAuth`. When set using `ENV['AWS_AUTH_SCHEME_PREFERENCE']` or in
227
+ # shared config as `auth_scheme_preference`, the value should be a comma-separated list.
228
+ #
222
229
  # @option options [Boolean] :client_side_monitoring (false)
223
230
  # When `true`, client-side metrics will be collected for all API requests from
224
231
  # this client.
@@ -256,14 +263,13 @@ module Aws::S3
256
263
  # accepted modes and the configuration defaults that are included.
257
264
  #
258
265
  # @option options [Boolean] :disable_host_prefix_injection (false)
259
- # Set to true to disable SDK automatically adding host prefix
260
- # to default service endpoint when available.
266
+ # When `true`, the SDK will not prepend the modeled host prefix to the endpoint.
261
267
  #
262
268
  # @option options [Boolean] :disable_request_compression (false)
263
269
  # When set to 'true' the request body will not be compressed
264
270
  # for supported operations.
265
271
  #
266
- # @option options [Boolean] :disable_s3_express_session_auth
272
+ # @option options [boolean] :disable_s3_express_session_auth
267
273
  # Parameter to indicate whether S3Express session auth should be disabled
268
274
  #
269
275
  # @option options [String, URI::HTTPS, URI::HTTP] :endpoint
@@ -334,8 +340,8 @@ module Aws::S3
334
340
  # When an EventStream or Proc object is provided, it will be used as callback for each chunk of event stream response received along the way.
335
341
  #
336
342
  # @option options [String] :profile ("default")
337
- # Used when loading credentials from the shared credentials file
338
- # at HOME/.aws/credentials. When not specified, 'default' is used.
343
+ # Used when loading credentials from the shared credentials file at `HOME/.aws/credentials`.
344
+ # When not specified, 'default' is used.
339
345
  #
340
346
  # @option options [String] :request_checksum_calculation ("when_supported")
341
347
  # Determines when a checksum will be calculated for request payloads. Values are:
@@ -467,8 +473,8 @@ module Aws::S3
467
473
  # `Aws::Telemetry::OTelProvider` for telemetry provider.
468
474
  #
469
475
  # @option options [Aws::TokenProvider] :token_provider
470
- # A Bearer Token Provider. This can be an instance of any one of the
471
- # following classes:
476
+ # Your Bearer token used for authentication. This can be any class that includes and implements
477
+ # `Aws::TokenProvider`, or instance of any one of the following classes:
472
478
  #
473
479
  # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
474
480
  # tokens.
@@ -644,6 +650,10 @@ module Aws::S3
644
650
  #
645
651
  # * [ListMultipartUploads][9]
646
652
  #
653
+ # You must URL encode any signed header values that contain spaces. For
654
+ # example, if your header value is `my file.txt`, containing two spaces
655
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
656
+ #
647
657
  #
648
658
  #
649
659
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
@@ -918,6 +928,10 @@ module Aws::S3
918
928
  #
919
929
  # * [ListMultipartUploads][13]
920
930
  #
931
+ # You must URL encode any signed header values that contain spaces. For
932
+ # example, if your header value is `my file.txt`, containing two spaces
933
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
934
+ #
921
935
  #
922
936
  #
923
937
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html
@@ -1265,7 +1279,7 @@ module Aws::S3
1265
1279
  # resp.checksum_sha1 #=> String
1266
1280
  # resp.checksum_sha256 #=> String
1267
1281
  # resp.checksum_type #=> String, one of "COMPOSITE", "FULL_OBJECT"
1268
- # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse"
1282
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
1269
1283
  # resp.version_id #=> String
1270
1284
  # resp.ssekms_key_id #=> String
1271
1285
  # resp.bucket_key_enabled #=> Boolean
@@ -1282,7 +1296,19 @@ module Aws::S3
1282
1296
 
1283
1297
  # Creates a copy of an object that is already stored in Amazon S3.
1284
1298
  #
1285
- # <note markdown="1"> You can store individual objects of up to 5 TB in Amazon S3. You
1299
+ # End of support notice: As of October 1, 2025, Amazon S3 has
1300
+ # discontinued support for Email Grantee Access Control Lists (ACLs). If
1301
+ # you attempt to use an Email Grantee ACL in a request after October 1,
1302
+ # 2025, the request will receive an `HTTP 405` (Method Not Allowed)
1303
+ # error.
1304
+ #
1305
+ # This change affects the following Amazon Web Services Regions: US
1306
+ # East
1307
+ # (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific
1308
+ # (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Europe
1309
+ # (Ireland), and South America (São Paulo).
1310
+ #
1311
+ # <note markdown="1"> You can store individual objects of up to 50 TB in Amazon S3. You
1286
1312
  # create a copy of your object up to 5 GB in size in a single atomic
1287
1313
  # action using this API. However, to copy an object greater than 5 GB,
1288
1314
  # you must use the multipart upload Upload Part - Copy (UploadPartCopy)
@@ -1449,6 +1475,10 @@ module Aws::S3
1449
1475
  #
1450
1476
  # * [GetObject][12]
1451
1477
  #
1478
+ # You must URL encode any signed header values that contain spaces. For
1479
+ # example, if your header value is `my file.txt`, containing two spaces
1480
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
1481
+ #
1452
1482
  #
1453
1483
  #
1454
1484
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html
@@ -1769,6 +1799,37 @@ module Aws::S3
1769
1799
  #
1770
1800
  # </note>
1771
1801
  #
1802
+ # @option params [String] :if_match
1803
+ # Copies the object if the entity tag (ETag) of the destination object
1804
+ # matches the specified tag. If the ETag values do not match, the
1805
+ # operation returns a `412 Precondition Failed` error. If a concurrent
1806
+ # operation occurs during the upload S3 returns a `409
1807
+ # ConditionalRequestConflict` response. On a 409 failure you should
1808
+ # fetch the object's ETag and retry the upload.
1809
+ #
1810
+ # Expects the ETag value as a string.
1811
+ #
1812
+ # For more information about conditional requests, see [RFC 7232][1].
1813
+ #
1814
+ #
1815
+ #
1816
+ # [1]: https://tools.ietf.org/html/rfc7232
1817
+ #
1818
+ # @option params [String] :if_none_match
1819
+ # Copies the object only if the object key name at the destination does
1820
+ # not already exist in the bucket specified. Otherwise, Amazon S3
1821
+ # returns a `412 Precondition Failed` error. If a concurrent operation
1822
+ # occurs during the upload S3 returns a `409 ConditionalRequestConflict`
1823
+ # response. On a 409 failure you should retry the upload.
1824
+ #
1825
+ # Expects the '*' (asterisk) character.
1826
+ #
1827
+ # For more information about conditional requests, see [RFC 7232][1].
1828
+ #
1829
+ #
1830
+ #
1831
+ # [1]: https://tools.ietf.org/html/rfc7232
1832
+ #
1772
1833
  # @option params [required, String] :key
1773
1834
  # The key of the destination object.
1774
1835
  #
@@ -1915,6 +1976,14 @@ module Aws::S3
1915
1976
  # key is the same customer managed key that you specified for the
1916
1977
  # directory bucket's default encryption configuration.
1917
1978
  #
1979
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
1980
+ # in Amazon FSx file systems using S3 access points, the only valid
1981
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
1982
+ # systems have encryption configured by default and are encrypted at
1983
+ # rest. Data is automatically encrypted before being written to the
1984
+ # file system, and automatically decrypted as it is read. These
1985
+ # processes are handled transparently by Amazon FSx.
1986
+ #
1918
1987
  #
1919
1988
  #
1920
1989
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
@@ -2292,14 +2361,16 @@ module Aws::S3
2292
2361
  # grant_read: "GrantRead",
2293
2362
  # grant_read_acp: "GrantReadACP",
2294
2363
  # grant_write_acp: "GrantWriteACP",
2364
+ # if_match: "IfMatch",
2365
+ # if_none_match: "IfNoneMatch",
2295
2366
  # key: "ObjectKey", # required
2296
2367
  # metadata: {
2297
2368
  # "MetadataKey" => "MetadataValue",
2298
2369
  # },
2299
2370
  # metadata_directive: "COPY", # accepts COPY, REPLACE
2300
2371
  # tagging_directive: "COPY", # accepts COPY, REPLACE
2301
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
2302
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
2372
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
2373
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
2303
2374
  # website_redirect_location: "WebsiteRedirectLocation",
2304
2375
  # sse_customer_algorithm: "SSECustomerAlgorithm",
2305
2376
  # sse_customer_key: "SSECustomerKey",
@@ -2332,7 +2403,7 @@ module Aws::S3
2332
2403
  # resp.expiration #=> String
2333
2404
  # resp.copy_source_version_id #=> String
2334
2405
  # resp.version_id #=> String
2335
- # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse"
2406
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
2336
2407
  # resp.sse_customer_algorithm #=> String
2337
2408
  # resp.sse_customer_key_md5 #=> String
2338
2409
  # resp.ssekms_key_id #=> String
@@ -2470,6 +2541,10 @@ module Aws::S3
2470
2541
  #
2471
2542
  # * [DeleteBucket][13]
2472
2543
  #
2544
+ # You must URL encode any signed header values that contain spaces. For
2545
+ # example, if your header value is `my file.txt`, containing two spaces
2546
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
2547
+ #
2473
2548
  #
2474
2549
  #
2475
2550
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html
@@ -2604,35 +2679,36 @@ module Aws::S3
2604
2679
  # @return [Types::CreateBucketOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2605
2680
  #
2606
2681
  # * {Types::CreateBucketOutput#location #location} => String
2682
+ # * {Types::CreateBucketOutput#bucket_arn #bucket_arn} => String
2607
2683
  #
2608
2684
  #
2609
- # @example Example: To create a bucket
2685
+ # @example Example: To create a bucket in a specific region
2610
2686
  #
2611
- # # The following example creates a bucket.
2687
+ # # The following example creates a bucket. The request specifies an AWS region where to create the bucket.
2612
2688
  #
2613
2689
  # resp = client.create_bucket({
2614
2690
  # bucket: "examplebucket",
2691
+ # create_bucket_configuration: {
2692
+ # location_constraint: "eu-west-1",
2693
+ # },
2615
2694
  # })
2616
2695
  #
2617
2696
  # resp.to_h outputs the following:
2618
2697
  # {
2619
- # location: "/examplebucket",
2698
+ # location: "http://examplebucket.<Region>.s3.amazonaws.com/",
2620
2699
  # }
2621
2700
  #
2622
- # @example Example: To create a bucket in a specific region
2701
+ # @example Example: To create a bucket
2623
2702
  #
2624
- # # The following example creates a bucket. The request specifies an AWS region where to create the bucket.
2703
+ # # The following example creates a bucket.
2625
2704
  #
2626
2705
  # resp = client.create_bucket({
2627
2706
  # bucket: "examplebucket",
2628
- # create_bucket_configuration: {
2629
- # location_constraint: "eu-west-1",
2630
- # },
2631
2707
  # })
2632
2708
  #
2633
2709
  # resp.to_h outputs the following:
2634
2710
  # {
2635
- # location: "http://examplebucket.<Region>.s3.amazonaws.com/",
2711
+ # location: "/examplebucket",
2636
2712
  # }
2637
2713
  #
2638
2714
  # @example Request syntax with placeholder values
@@ -2650,6 +2726,12 @@ module Aws::S3
2650
2726
  # data_redundancy: "SingleAvailabilityZone", # accepts SingleAvailabilityZone, SingleLocalZone
2651
2727
  # type: "Directory", # accepts Directory
2652
2728
  # },
2729
+ # tags: [
2730
+ # {
2731
+ # key: "ObjectKey", # required
2732
+ # value: "Value", # required
2733
+ # },
2734
+ # ],
2653
2735
  # },
2654
2736
  # grant_full_control: "GrantFullControl",
2655
2737
  # grant_read: "GrantRead",
@@ -2663,6 +2745,7 @@ module Aws::S3
2663
2745
  # @example Response structure
2664
2746
  #
2665
2747
  # resp.location #=> String
2748
+ # resp.bucket_arn #=> String
2666
2749
  #
2667
2750
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucket AWS API Documentation
2668
2751
  #
@@ -2673,8 +2756,8 @@ module Aws::S3
2673
2756
  req.send_request(options)
2674
2757
  end
2675
2758
 
2676
- # Creates a metadata table configuration for a general purpose bucket.
2677
- # For more information, see [Accelerating data discovery with S3
2759
+ # Creates an S3 Metadata V2 metadata configuration for a general purpose
2760
+ # bucket. For more information, see [Accelerating data discovery with S3
2678
2761
  # Metadata][1] in the *Amazon S3 User Guide*.
2679
2762
  #
2680
2763
  # Permissions
@@ -2683,14 +2766,31 @@ module Aws::S3
2683
2766
  # more information, see [Setting up permissions for configuring
2684
2767
  # metadata tables][2] in the *Amazon S3 User Guide*.
2685
2768
  #
2769
+ # If you want to encrypt your metadata tables with server-side
2770
+ # encryption with Key Management Service (KMS) keys (SSE-KMS), you
2771
+ # need additional permissions in your KMS key policy. For more
2772
+ # information, see [ Setting up permissions for configuring metadata
2773
+ # tables][2] in the *Amazon S3 User Guide*.
2774
+ #
2686
2775
  # If you also want to integrate your table bucket with Amazon Web
2687
2776
  # Services analytics services so that you can query your metadata
2688
2777
  # table, you need additional permissions. For more information, see [
2689
2778
  # Integrating Amazon S3 Tables with Amazon Web Services analytics
2690
2779
  # services][3] in the *Amazon S3 User Guide*.
2691
2780
  #
2781
+ # To query your metadata tables, you need additional permissions. For
2782
+ # more information, see [ Permissions for querying metadata tables][4]
2783
+ # in the *Amazon S3 User Guide*.
2784
+ #
2692
2785
  # * `s3:CreateBucketMetadataTableConfiguration`
2693
2786
  #
2787
+ # <note markdown="1"> The IAM policy action name is the same for the V1 and V2 API
2788
+ # operations.
2789
+ #
2790
+ # </note>
2791
+ #
2792
+ # * `s3tables:CreateTableBucket`
2793
+ #
2694
2794
  # * `s3tables:CreateNamespace`
2695
2795
  #
2696
2796
  # * `s3tables:GetTable`
@@ -2699,24 +2799,158 @@ module Aws::S3
2699
2799
  #
2700
2800
  # * `s3tables:PutTablePolicy`
2701
2801
  #
2802
+ # * `s3tables:PutTableEncryption`
2803
+ #
2804
+ # * `kms:DescribeKey`
2805
+ #
2702
2806
  # The following operations are related to
2703
- # `CreateBucketMetadataTableConfiguration`:
2807
+ # `CreateBucketMetadataConfiguration`:
2808
+ #
2809
+ # * [DeleteBucketMetadataConfiguration][5]
2810
+ #
2811
+ # * [GetBucketMetadataConfiguration][6]
2812
+ #
2813
+ # * [UpdateBucketMetadataInventoryTableConfiguration][7]
2704
2814
  #
2705
- # * [DeleteBucketMetadataTableConfiguration][4]
2815
+ # * [UpdateBucketMetadataJournalTableConfiguration][8]
2706
2816
  #
2707
- # * [GetBucketMetadataTableConfiguration][5]
2817
+ # You must URL encode any signed header values that contain spaces. For
2818
+ # example, if your header value is `my file.txt`, containing two spaces
2819
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
2708
2820
  #
2709
2821
  #
2710
2822
  #
2711
2823
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html
2712
2824
  # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html
2713
2825
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html
2714
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html
2715
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html
2826
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-bucket-query-permissions.html
2827
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html
2828
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html
2829
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html
2830
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html
2831
+ #
2832
+ # @option params [required, String] :bucket
2833
+ # The general purpose bucket that you want to create the metadata
2834
+ # configuration for.
2835
+ #
2836
+ # @option params [String] :content_md5
2837
+ # The `Content-MD5` header for the metadata configuration.
2838
+ #
2839
+ # @option params [String] :checksum_algorithm
2840
+ # The checksum algorithm to use with your metadata configuration.
2841
+ #
2842
+ # @option params [required, Types::MetadataConfiguration] :metadata_configuration
2843
+ # The contents of your metadata configuration.
2844
+ #
2845
+ # @option params [String] :expected_bucket_owner
2846
+ # The expected owner of the general purpose bucket that corresponds to
2847
+ # your metadata configuration.
2848
+ #
2849
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2850
+ #
2851
+ # @example Request syntax with placeholder values
2852
+ #
2853
+ # resp = client.create_bucket_metadata_configuration({
2854
+ # bucket: "BucketName", # required
2855
+ # content_md5: "ContentMD5",
2856
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
2857
+ # metadata_configuration: { # required
2858
+ # journal_table_configuration: { # required
2859
+ # record_expiration: { # required
2860
+ # expiration: "ENABLED", # required, accepts ENABLED, DISABLED
2861
+ # days: 1,
2862
+ # },
2863
+ # encryption_configuration: {
2864
+ # sse_algorithm: "aws:kms", # required, accepts aws:kms, AES256
2865
+ # kms_key_arn: "KmsKeyArn",
2866
+ # },
2867
+ # },
2868
+ # inventory_table_configuration: {
2869
+ # configuration_state: "ENABLED", # required, accepts ENABLED, DISABLED
2870
+ # encryption_configuration: {
2871
+ # sse_algorithm: "aws:kms", # required, accepts aws:kms, AES256
2872
+ # kms_key_arn: "KmsKeyArn",
2873
+ # },
2874
+ # },
2875
+ # },
2876
+ # expected_bucket_owner: "AccountId",
2877
+ # })
2878
+ #
2879
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucketMetadataConfiguration AWS API Documentation
2880
+ #
2881
+ # @overload create_bucket_metadata_configuration(params = {})
2882
+ # @param [Hash] params ({})
2883
+ def create_bucket_metadata_configuration(params = {}, options = {})
2884
+ req = build_request(:create_bucket_metadata_configuration, params)
2885
+ req.send_request(options)
2886
+ end
2887
+
2888
+ # We recommend that you create your S3 Metadata configurations by using
2889
+ # the V2 [CreateBucketMetadataConfiguration][1] API operation. We no
2890
+ # longer recommend using the V1 `CreateBucketMetadataTableConfiguration`
2891
+ # API operation.
2892
+ #
2893
+ # If you created your S3 Metadata configuration before July 15, 2025,
2894
+ # we
2895
+ # recommend that you delete and re-create your configuration by using
2896
+ # [CreateBucketMetadataConfiguration][1] so that you can expire journal
2897
+ # table records and create a live inventory table.
2898
+ #
2899
+ # Creates a V1 S3 Metadata configuration for a general purpose bucket.
2900
+ # For more information, see [Accelerating data discovery with S3
2901
+ # Metadata][2] in the *Amazon S3 User Guide*.
2902
+ #
2903
+ # Permissions
2904
+ #
2905
+ # : To use this operation, you must have the following permissions. For
2906
+ # more information, see [Setting up permissions for configuring
2907
+ # metadata tables][3] in the *Amazon S3 User Guide*.
2908
+ #
2909
+ # If you want to encrypt your metadata tables with server-side
2910
+ # encryption with Key Management Service (KMS) keys (SSE-KMS), you
2911
+ # need additional permissions. For more information, see [ Setting up
2912
+ # permissions for configuring metadata tables][3] in the *Amazon S3
2913
+ # User Guide*.
2914
+ #
2915
+ # If you also want to integrate your table bucket with Amazon Web
2916
+ # Services analytics services so that you can query your metadata
2917
+ # table, you need additional permissions. For more information, see [
2918
+ # Integrating Amazon S3 Tables with Amazon Web Services analytics
2919
+ # services][4] in the *Amazon S3 User Guide*.
2920
+ #
2921
+ # * `s3:CreateBucketMetadataTableConfiguration`
2922
+ #
2923
+ # * `s3tables:CreateNamespace`
2924
+ #
2925
+ # * `s3tables:GetTable`
2926
+ #
2927
+ # * `s3tables:CreateTable`
2928
+ #
2929
+ # * `s3tables:PutTablePolicy`
2930
+ #
2931
+ # The following operations are related to
2932
+ # `CreateBucketMetadataTableConfiguration`:
2933
+ #
2934
+ # * [DeleteBucketMetadataTableConfiguration][5]
2935
+ #
2936
+ # * [GetBucketMetadataTableConfiguration][6]
2937
+ #
2938
+ # You must URL encode any signed header values that contain spaces. For
2939
+ # example, if your header value is `my file.txt`, containing two spaces
2940
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
2941
+ #
2942
+ #
2943
+ #
2944
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html
2945
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html
2946
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html
2947
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-integrating-aws.html
2948
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html
2949
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html
2716
2950
  #
2717
2951
  # @option params [required, String] :bucket
2718
2952
  # The general purpose bucket that you want to create the metadata table
2719
- # configuration in.
2953
+ # configuration for.
2720
2954
  #
2721
2955
  # @option params [String] :content_md5
2722
2956
  # The `Content-MD5` header for the metadata table configuration.
@@ -2728,8 +2962,8 @@ module Aws::S3
2728
2962
  # The contents of your metadata table configuration.
2729
2963
  #
2730
2964
  # @option params [String] :expected_bucket_owner
2731
- # The expected owner of the general purpose bucket that contains your
2732
- # metadata table configuration.
2965
+ # The expected owner of the general purpose bucket that corresponds to
2966
+ # your metadata table configuration.
2733
2967
  #
2734
2968
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2735
2969
  #
@@ -2757,6 +2991,18 @@ module Aws::S3
2757
2991
  req.send_request(options)
2758
2992
  end
2759
2993
 
2994
+ # End of support notice: As of October 1, 2025, Amazon S3 has
2995
+ # discontinued support for Email Grantee Access Control Lists (ACLs). If
2996
+ # you attempt to use an Email Grantee ACL in a request after October 1,
2997
+ # 2025, the request will receive an `HTTP 405` (Method Not Allowed)
2998
+ # error.
2999
+ #
3000
+ # This change affects the following Amazon Web Services Regions: US
3001
+ # East
3002
+ # (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific
3003
+ # (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Europe
3004
+ # (Ireland), and South America (São Paulo).
3005
+ #
2760
3006
  # This action initiates a multipart upload and returns an upload ID.
2761
3007
  # This upload ID is used to associate all of the parts in the specific
2762
3008
  # multipart upload. You specify this upload ID in each of your
@@ -2991,6 +3237,10 @@ module Aws::S3
2991
3237
  #
2992
3238
  # * [ListMultipartUploads][19]
2993
3239
  #
3240
+ # You must URL encode any signed header values that contain spaces. For
3241
+ # example, if your header value is `my file.txt`, containing two spaces
3242
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
3243
+ #
2994
3244
  #
2995
3245
  #
2996
3246
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html
@@ -3373,7 +3623,7 @@ module Aws::S3
3373
3623
  #
3374
3624
  # @option params [String] :server_side_encryption
3375
3625
  # The server-side encryption algorithm used when you store this object
3376
- # in Amazon S3 (for example, `AES256`, `aws:kms`).
3626
+ # in Amazon S3 or Amazon FSx.
3377
3627
  #
3378
3628
  # * <b>Directory buckets </b> - For directory buckets, there are only
3379
3629
  # two supported options for server-side encryption: server-side
@@ -3415,6 +3665,14 @@ module Aws::S3
3415
3665
  #
3416
3666
  # </note>
3417
3667
  #
3668
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
3669
+ # in Amazon FSx file systems using S3 access points, the only valid
3670
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
3671
+ # systems have encryption configured by default and are encrypted at
3672
+ # rest. Data is automatically encrypted before being written to the
3673
+ # file system, and automatically decrypted as it is read. These
3674
+ # processes are handled transparently by Amazon FSx.
3675
+ #
3418
3676
  #
3419
3677
  #
3420
3678
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
@@ -3672,8 +3930,8 @@ module Aws::S3
3672
3930
  # metadata: {
3673
3931
  # "MetadataKey" => "MetadataValue",
3674
3932
  # },
3675
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
3676
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
3933
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
3934
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
3677
3935
  # website_redirect_location: "WebsiteRedirectLocation",
3678
3936
  # sse_customer_algorithm: "SSECustomerAlgorithm",
3679
3937
  # sse_customer_key: "SSECustomerKey",
@@ -3698,7 +3956,7 @@ module Aws::S3
3698
3956
  # resp.bucket #=> String
3699
3957
  # resp.key #=> String
3700
3958
  # resp.upload_id #=> String
3701
- # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse"
3959
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
3702
3960
  # resp.sse_customer_algorithm #=> String
3703
3961
  # resp.sse_customer_key_md5 #=> String
3704
3962
  # resp.ssekms_key_id #=> String
@@ -3863,6 +4121,10 @@ module Aws::S3
3863
4121
  # : <b>Directory buckets </b> - The HTTP Host header syntax is `
3864
4122
  # Bucket-name.s3express-zone-id.region-code.amazonaws.com`.
3865
4123
  #
4124
+ # You must URL encode any signed header values that contain spaces. For
4125
+ # example, if your header value is `my file.txt`, containing two spaces
4126
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
4127
+ #
3866
4128
  #
3867
4129
  #
3868
4130
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-APIs.html
@@ -3905,6 +4167,14 @@ module Aws::S3
3905
4167
  # SSE-S3. For more information, see [Protecting data with server-side
3906
4168
  # encryption][1] in the *Amazon S3 User Guide*.
3907
4169
  #
4170
+ # <b>S3 access points for Amazon FSx </b> - When accessing data stored
4171
+ # in Amazon FSx file systems using S3 access points, the only valid
4172
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
4173
+ # systems have encryption configured by default and are encrypted at
4174
+ # rest. Data is automatically encrypted before being written to the file
4175
+ # system, and automatically decrypted as it is read. These processes are
4176
+ # handled transparently by Amazon FSx.
4177
+ #
3908
4178
  #
3909
4179
  #
3910
4180
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html
@@ -3985,7 +4255,7 @@ module Aws::S3
3985
4255
  # resp = client.create_session({
3986
4256
  # session_mode: "ReadOnly", # accepts ReadOnly, ReadWrite
3987
4257
  # bucket: "BucketName", # required
3988
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
4258
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
3989
4259
  # ssekms_key_id: "SSEKMSKeyId",
3990
4260
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
3991
4261
  # bucket_key_enabled: false,
@@ -3993,7 +4263,7 @@ module Aws::S3
3993
4263
  #
3994
4264
  # @example Response structure
3995
4265
  #
3996
- # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse"
4266
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
3997
4267
  # resp.ssekms_key_id #=> String
3998
4268
  # resp.ssekms_encryption_context #=> String
3999
4269
  # resp.bucket_key_enabled #=> Boolean
@@ -4057,6 +4327,10 @@ module Aws::S3
4057
4327
  #
4058
4328
  # * [DeleteObject][5]
4059
4329
  #
4330
+ # You must URL encode any signed header values that contain spaces. For
4331
+ # example, if your header value is `my file.txt`, containing two spaces
4332
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
4333
+ #
4060
4334
  #
4061
4335
  #
4062
4336
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html
@@ -4147,6 +4421,10 @@ module Aws::S3
4147
4421
  #
4148
4422
  # * [PutBucketAnalyticsConfiguration][6]
4149
4423
  #
4424
+ # You must URL encode any signed header values that contain spaces. For
4425
+ # example, if your header value is `my file.txt`, containing two spaces
4426
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
4427
+ #
4150
4428
  #
4151
4429
  #
4152
4430
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
@@ -4206,6 +4484,10 @@ module Aws::S3
4206
4484
  #
4207
4485
  # * [RESTOPTIONSobject][3]
4208
4486
  #
4487
+ # You must URL encode any signed header values that contain spaces. For
4488
+ # example, if your header value is `my file.txt`, containing two spaces
4489
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
4490
+ #
4209
4491
  #
4210
4492
  #
4211
4493
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html
@@ -4294,6 +4576,10 @@ module Aws::S3
4294
4576
  #
4295
4577
  # * [GetBucketEncryption][7]
4296
4578
  #
4579
+ # You must URL encode any signed header values that contain spaces. For
4580
+ # example, if your header value is `my file.txt`, containing two spaces
4581
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
4582
+ #
4297
4583
  #
4298
4584
  #
4299
4585
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html
@@ -4387,6 +4673,10 @@ module Aws::S3
4387
4673
  #
4388
4674
  # * [ListBucketIntelligentTieringConfigurations][4]
4389
4675
  #
4676
+ # You must URL encode any signed header values that contain spaces. For
4677
+ # example, if your header value is `my file.txt`, containing two spaces
4678
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
4679
+ #
4390
4680
  #
4391
4681
  #
4392
4682
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access
@@ -4401,6 +4691,11 @@ module Aws::S3
4401
4691
  # @option params [required, String] :id
4402
4692
  # The ID used to identify the S3 Intelligent-Tiering configuration.
4403
4693
  #
4694
+ # @option params [String] :expected_bucket_owner
4695
+ # The account ID of the expected bucket owner. If the account ID that
4696
+ # you provide does not match the actual owner of the bucket, the request
4697
+ # fails with the HTTP status code `403 Forbidden` (access denied).
4698
+ #
4404
4699
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
4405
4700
  #
4406
4701
  # @example Request syntax with placeholder values
@@ -4408,6 +4703,7 @@ module Aws::S3
4408
4703
  # resp = client.delete_bucket_intelligent_tiering_configuration({
4409
4704
  # bucket: "BucketName", # required
4410
4705
  # id: "IntelligentTieringId", # required
4706
+ # expected_bucket_owner: "AccountId",
4411
4707
  # })
4412
4708
  #
4413
4709
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketIntelligentTieringConfiguration AWS API Documentation
@@ -4423,7 +4719,7 @@ module Aws::S3
4423
4719
  #
4424
4720
  # </note>
4425
4721
  #
4426
- # Deletes an inventory configuration (identified by the inventory ID)
4722
+ # Deletes an S3 Inventory configuration (identified by the inventory ID)
4427
4723
  # from the bucket.
4428
4724
  #
4429
4725
  # To use this operation, you must have permissions to perform the
@@ -4444,6 +4740,10 @@ module Aws::S3
4444
4740
  #
4445
4741
  # * [ListBucketInventoryConfigurations][6]
4446
4742
  #
4743
+ # You must URL encode any signed header values that contain spaces. For
4744
+ # example, if your header value is `my file.txt`, containing two spaces
4745
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
4746
+ #
4447
4747
  #
4448
4748
  #
4449
4749
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
@@ -4544,6 +4844,10 @@ module Aws::S3
4544
4844
  #
4545
4845
  # * [GetBucketLifecycleConfiguration][7]
4546
4846
  #
4847
+ # You must URL encode any signed header values that contain spaces. For
4848
+ # example, if your header value is `my file.txt`, containing two spaces
4849
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
4850
+ #
4547
4851
  #
4548
4852
  #
4549
4853
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
@@ -4594,10 +4898,18 @@ module Aws::S3
4594
4898
  req.send_request(options)
4595
4899
  end
4596
4900
 
4597
- # Deletes a metadata table configuration from a general purpose bucket.
4901
+ # Deletes an S3 Metadata configuration from a general purpose bucket.
4598
4902
  # For more information, see [Accelerating data discovery with S3
4599
4903
  # Metadata][1] in the *Amazon S3 User Guide*.
4600
4904
  #
4905
+ # <note markdown="1"> You can use the V2 `DeleteBucketMetadataConfiguration` API operation
4906
+ # with V1 or V2 metadata configurations. However, if you try to use the
4907
+ # V1 `DeleteBucketMetadataTableConfiguration` API operation with V2
4908
+ # configurations, you will receive an HTTP `405 Method Not Allowed`
4909
+ # error.
4910
+ #
4911
+ # </note>
4912
+ #
4601
4913
  # Permissions
4602
4914
  #
4603
4915
  # : To use this operation, you must have the
@@ -4605,19 +4917,115 @@ module Aws::S3
4605
4917
  # information, see [Setting up permissions for configuring metadata
4606
4918
  # tables][2] in the *Amazon S3 User Guide*.
4607
4919
  #
4920
+ # <note markdown="1"> The IAM policy action name is the same for the V1 and V2 API
4921
+ # operations.
4922
+ #
4923
+ # </note>
4924
+ #
4608
4925
  # The following operations are related to
4609
- # `DeleteBucketMetadataTableConfiguration`:
4926
+ # `DeleteBucketMetadataConfiguration`:
4927
+ #
4928
+ # * [CreateBucketMetadataConfiguration][3]
4929
+ #
4930
+ # * [GetBucketMetadataConfiguration][4]
4931
+ #
4932
+ # * [UpdateBucketMetadataInventoryTableConfiguration][5]
4610
4933
  #
4611
- # * [CreateBucketMetadataTableConfiguration][3]
4934
+ # * [UpdateBucketMetadataJournalTableConfiguration][6]
4612
4935
  #
4613
- # * [GetBucketMetadataTableConfiguration][4]
4936
+ # You must URL encode any signed header values that contain spaces. For
4937
+ # example, if your header value is `my file.txt`, containing two spaces
4938
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
4614
4939
  #
4615
4940
  #
4616
4941
  #
4617
4942
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html
4618
4943
  # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html
4619
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataTableConfiguration.html
4620
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html
4944
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html
4945
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html
4946
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html
4947
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html
4948
+ #
4949
+ # @option params [required, String] :bucket
4950
+ # The general purpose bucket that you want to remove the metadata
4951
+ # configuration from.
4952
+ #
4953
+ # @option params [String] :expected_bucket_owner
4954
+ # The expected bucket owner of the general purpose bucket that you want
4955
+ # to remove the metadata table configuration from.
4956
+ #
4957
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
4958
+ #
4959
+ # @example Request syntax with placeholder values
4960
+ #
4961
+ # resp = client.delete_bucket_metadata_configuration({
4962
+ # bucket: "BucketName", # required
4963
+ # expected_bucket_owner: "AccountId",
4964
+ # })
4965
+ #
4966
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketMetadataConfiguration AWS API Documentation
4967
+ #
4968
+ # @overload delete_bucket_metadata_configuration(params = {})
4969
+ # @param [Hash] params ({})
4970
+ def delete_bucket_metadata_configuration(params = {}, options = {})
4971
+ req = build_request(:delete_bucket_metadata_configuration, params)
4972
+ req.send_request(options)
4973
+ end
4974
+
4975
+ # We recommend that you delete your S3 Metadata configurations by using
4976
+ # the V2 [DeleteBucketMetadataTableConfiguration][1] API operation. We
4977
+ # no longer recommend using the V1
4978
+ # `DeleteBucketMetadataTableConfiguration` API operation.
4979
+ #
4980
+ # If you created your S3 Metadata configuration before July 15, 2025,
4981
+ # we
4982
+ # recommend that you delete and re-create your configuration by using
4983
+ # [CreateBucketMetadataConfiguration][2] so that you can expire journal
4984
+ # table records and create a live inventory table.
4985
+ #
4986
+ # Deletes a V1 S3 Metadata configuration from a general purpose bucket.
4987
+ # For more information, see [Accelerating data discovery with S3
4988
+ # Metadata][3] in the *Amazon S3 User Guide*.
4989
+ #
4990
+ # <note markdown="1"> You can use the V2 `DeleteBucketMetadataConfiguration` API operation
4991
+ # with V1 or V2 metadata table configurations. However, if you try to
4992
+ # use the V1 `DeleteBucketMetadataTableConfiguration` API operation with
4993
+ # V2 configurations, you will receive an HTTP `405 Method Not Allowed`
4994
+ # error.
4995
+ #
4996
+ # Make sure that you update your processes to use the new V2 API
4997
+ # operations (`CreateBucketMetadataConfiguration`,
4998
+ # `GetBucketMetadataConfiguration`, and
4999
+ # `DeleteBucketMetadataConfiguration`) instead of the V1 API operations.
5000
+ #
5001
+ # </note>
5002
+ #
5003
+ # Permissions
5004
+ #
5005
+ # : To use this operation, you must have the
5006
+ # `s3:DeleteBucketMetadataTableConfiguration` permission. For more
5007
+ # information, see [Setting up permissions for configuring metadata
5008
+ # tables][4] in the *Amazon S3 User Guide*.
5009
+ #
5010
+ # The following operations are related to
5011
+ # `DeleteBucketMetadataTableConfiguration`:
5012
+ #
5013
+ # * [CreateBucketMetadataTableConfiguration][5]
5014
+ #
5015
+ # * [GetBucketMetadataTableConfiguration][6]
5016
+ #
5017
+ # You must URL encode any signed header values that contain spaces. For
5018
+ # example, if your header value is `my file.txt`, containing two spaces
5019
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
5020
+ #
5021
+ #
5022
+ #
5023
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html
5024
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html
5025
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html
5026
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html
5027
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataTableConfiguration.html
5028
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html
4621
5029
  #
4622
5030
  # @option params [required, String] :bucket
4623
5031
  # The general purpose bucket that you want to remove the metadata table
@@ -4674,6 +5082,10 @@ module Aws::S3
4674
5082
  #
4675
5083
  # * [Monitoring Metrics with Amazon CloudWatch][3]
4676
5084
  #
5085
+ # You must URL encode any signed header values that contain spaces. For
5086
+ # example, if your header value is `my file.txt`, containing two spaces
5087
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
5088
+ #
4677
5089
  #
4678
5090
  #
4679
5091
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
@@ -4734,6 +5146,10 @@ module Aws::S3
4734
5146
  #
4735
5147
  # * PutBucketOwnershipControls
4736
5148
  #
5149
+ # You must URL encode any signed header values that contain spaces. For
5150
+ # example, if your header value is `my file.txt`, containing two spaces
5151
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
5152
+ #
4737
5153
  #
4738
5154
  #
4739
5155
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
@@ -4830,6 +5246,10 @@ module Aws::S3
4830
5246
  #
4831
5247
  # * [DeleteObject][6]
4832
5248
  #
5249
+ # You must URL encode any signed header values that contain spaces. For
5250
+ # example, if your header value is `my file.txt`, containing two spaces
5251
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
5252
+ #
4833
5253
  #
4834
5254
  #
4835
5255
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html
@@ -4922,6 +5342,10 @@ module Aws::S3
4922
5342
  #
4923
5343
  # * [GetBucketReplication][5]
4924
5344
  #
5345
+ # You must URL encode any signed header values that contain spaces. For
5346
+ # example, if your header value is `my file.txt`, containing two spaces
5347
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
5348
+ #
4925
5349
  #
4926
5350
  #
4927
5351
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
@@ -4969,7 +5393,14 @@ module Aws::S3
4969
5393
  #
4970
5394
  # </note>
4971
5395
  #
4972
- # Deletes the tags from the bucket.
5396
+ # Deletes tags from the general purpose bucket if attribute based access
5397
+ # control (ABAC) is not enabled for the bucket. When you [enable ABAC
5398
+ # for a general purpose bucket][1], you can no longer use this operation
5399
+ # for that bucket and must use [UntagResource][2] instead.
5400
+ #
5401
+ # if ABAC is not enabled for the bucket. When you [enable ABAC for a
5402
+ # general purpose bucket][1], you can no longer use this operation for
5403
+ # that bucket and must use [UntagResource][2] instead.
4973
5404
  #
4974
5405
  # To use this operation, you must have permission to perform the
4975
5406
  # `s3:PutBucketTagging` action. By default, the bucket owner has this
@@ -4977,14 +5408,20 @@ module Aws::S3
4977
5408
  #
4978
5409
  # The following operations are related to `DeleteBucketTagging`:
4979
5410
  #
4980
- # * [GetBucketTagging][1]
5411
+ # * [GetBucketTagging][3]
4981
5412
  #
4982
- # * [PutBucketTagging][2]
5413
+ # * [PutBucketTagging][4]
4983
5414
  #
5415
+ # You must URL encode any signed header values that contain spaces. For
5416
+ # example, if your header value is `my file.txt`, containing two spaces
5417
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
4984
5418
  #
4985
5419
  #
4986
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html
4987
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html
5420
+ #
5421
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html
5422
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html
5423
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html
5424
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html
4988
5425
  #
4989
5426
  # @option params [required, String] :bucket
4990
5427
  # The bucket that has the tag set to be removed.
@@ -5047,6 +5484,10 @@ module Aws::S3
5047
5484
  #
5048
5485
  # * [PutBucketWebsite][3]
5049
5486
  #
5487
+ # You must URL encode any signed header values that contain spaces. For
5488
+ # example, if your header value is `my file.txt`, containing two spaces
5489
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
5490
+ #
5050
5491
  #
5051
5492
  #
5052
5493
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html
@@ -5169,6 +5610,12 @@ module Aws::S3
5169
5610
  # * <b> <code>s3:DeleteObjectVersion</code> </b> - To delete a
5170
5611
  # specific version of an object from a versioning-enabled bucket,
5171
5612
  # you must have the `s3:DeleteObjectVersion` permission.
5613
+ #
5614
+ # <note markdown="1"> If the `s3:DeleteObject` or `s3:DeleteObjectVersion` permissions
5615
+ # are explicitly denied in your bucket policy, attempts to delete
5616
+ # any unversioned objects result in a `403 Access Denied` error.
5617
+ #
5618
+ # </note>
5172
5619
  # * **Directory bucket permissions** - To grant access to this API
5173
5620
  # operation on a directory bucket, we recommend that you use the [
5174
5621
  # `CreateSession` ][8] API operation for session-based
@@ -5195,6 +5642,16 @@ module Aws::S3
5195
5642
  #
5196
5643
  # ^
5197
5644
  #
5645
+ # You must URL encode any signed header values that contain spaces. For
5646
+ # example, if your header value is `my file.txt`, containing two spaces
5647
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
5648
+ #
5649
+ # <note markdown="1"> The `If-Match` header is supported for both general purpose and
5650
+ # directory buckets. `IfMatchLastModifiedTime` and `IfMatchSize` is only
5651
+ # supported for directory buckets.
5652
+ #
5653
+ # </note>
5654
+ #
5198
5655
  #
5199
5656
  #
5200
5657
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/DeletingObjectVersions.html
@@ -5305,17 +5762,15 @@ module Aws::S3
5305
5762
  # fails with the HTTP status code `403 Forbidden` (access denied).
5306
5763
  #
5307
5764
  # @option params [String] :if_match
5308
- # The `If-Match` header field makes the request method conditional on
5309
- # ETags. If the ETag value does not match, the operation returns a `412
5310
- # Precondition Failed` error. If the ETag matches or if the object
5311
- # doesn't exist, the operation will return a `204 Success (No Content)
5312
- # response`.
5313
- #
5314
- # For more information about conditional requests, see [RFC 7232][1].
5765
+ # Deletes the object if the ETag (entity tag) value provided during the
5766
+ # delete operation matches the ETag of the object in S3. If the ETag
5767
+ # values do not match, the operation returns a `412 Precondition Failed`
5768
+ # error.
5315
5769
  #
5316
- # <note markdown="1"> This functionality is only supported for directory buckets.
5770
+ # Expects the ETag value as a string. `If-Match` does accept a string
5771
+ # value of an '*' (asterisk) character to denote a match of any ETag.
5317
5772
  #
5318
- # </note>
5773
+ # For more information about conditional requests, see [RFC 7232][1].
5319
5774
  #
5320
5775
  #
5321
5776
  #
@@ -5426,6 +5881,10 @@ module Aws::S3
5426
5881
  #
5427
5882
  # * [GetObjectTagging][3]
5428
5883
  #
5884
+ # You must URL encode any signed header values that contain spaces. For
5885
+ # example, if your header value is `my file.txt`, containing two spaces
5886
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
5887
+ #
5429
5888
  #
5430
5889
  #
5431
5890
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html
@@ -5596,6 +6055,12 @@ module Aws::S3
5596
6055
  # * <b> <code>s3:DeleteObjectVersion</code> </b> - To delete a
5597
6056
  # specific version of an object from a versioning-enabled bucket,
5598
6057
  # you must specify the `s3:DeleteObjectVersion` permission.
6058
+ #
6059
+ # <note markdown="1"> If the `s3:DeleteObject` or `s3:DeleteObjectVersion` permissions
6060
+ # are explicitly denied in your bucket policy, attempts to delete
6061
+ # any unversioned objects result in a `403 Access Denied` error.
6062
+ #
6063
+ # </note>
5599
6064
  # * **Directory bucket permissions** - To grant access to this API
5600
6065
  # operation on a directory bucket, we recommend that you use the [
5601
6066
  # `CreateSession` ][4] API operation for session-based
@@ -5640,6 +6105,10 @@ module Aws::S3
5640
6105
  #
5641
6106
  # * [AbortMultipartUpload][9]
5642
6107
  #
6108
+ # You must URL encode any signed header values that contain spaces. For
6109
+ # example, if your header value is `my file.txt`, containing two spaces
6110
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
6111
+ #
5643
6112
  #
5644
6113
  #
5645
6114
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html
@@ -5797,22 +6266,20 @@ module Aws::S3
5797
6266
  # * {Types::DeleteObjectsOutput#errors #errors} => Array&lt;Types::Error&gt;
5798
6267
  #
5799
6268
  #
5800
- # @example Example: To delete multiple object versions from a versioned bucket
6269
+ # @example Example: To delete multiple objects from a versioned bucket
5801
6270
  #
5802
- # # The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object
5803
- # # versions and returns the key and versions of deleted objects in the response.
6271
+ # # The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the
6272
+ # # object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.
5804
6273
  #
5805
6274
  # resp = client.delete_objects({
5806
6275
  # bucket: "examplebucket",
5807
6276
  # delete: {
5808
6277
  # objects: [
5809
6278
  # {
5810
- # key: "HappyFace.jpg",
5811
- # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
6279
+ # key: "objectkey1",
5812
6280
  # },
5813
6281
  # {
5814
- # key: "HappyFace.jpg",
5815
- # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
6282
+ # key: "objectkey2",
5816
6283
  # },
5817
6284
  # ],
5818
6285
  # quiet: false,
@@ -5823,30 +6290,34 @@ module Aws::S3
5823
6290
  # {
5824
6291
  # deleted: [
5825
6292
  # {
5826
- # key: "HappyFace.jpg",
5827
- # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
6293
+ # delete_marker: true,
6294
+ # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
6295
+ # key: "objectkey1",
5828
6296
  # },
5829
6297
  # {
5830
- # key: "HappyFace.jpg",
5831
- # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
5832
- # },
5833
- # ],
6298
+ # delete_marker: true,
6299
+ # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
6300
+ # key: "objectkey2",
6301
+ # },
6302
+ # ],
5834
6303
  # }
5835
6304
  #
5836
- # @example Example: To delete multiple objects from a versioned bucket
6305
+ # @example Example: To delete multiple object versions from a versioned bucket
5837
6306
  #
5838
- # # The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the
5839
- # # object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.
6307
+ # # The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object
6308
+ # # versions and returns the key and versions of deleted objects in the response.
5840
6309
  #
5841
6310
  # resp = client.delete_objects({
5842
6311
  # bucket: "examplebucket",
5843
6312
  # delete: {
5844
6313
  # objects: [
5845
6314
  # {
5846
- # key: "objectkey1",
6315
+ # key: "HappyFace.jpg",
6316
+ # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
5847
6317
  # },
5848
6318
  # {
5849
- # key: "objectkey2",
6319
+ # key: "HappyFace.jpg",
6320
+ # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
5850
6321
  # },
5851
6322
  # ],
5852
6323
  # quiet: false,
@@ -5857,14 +6328,12 @@ module Aws::S3
5857
6328
  # {
5858
6329
  # deleted: [
5859
6330
  # {
5860
- # delete_marker: true,
5861
- # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
5862
- # key: "objectkey1",
6331
+ # key: "HappyFace.jpg",
6332
+ # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
5863
6333
  # },
5864
6334
  # {
5865
- # delete_marker: true,
5866
- # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
5867
- # key: "objectkey2",
6335
+ # key: "HappyFace.jpg",
6336
+ # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
5868
6337
  # },
5869
6338
  # ],
5870
6339
  # }
@@ -5920,7 +6389,10 @@ module Aws::S3
5920
6389
  # </note>
5921
6390
  #
5922
6391
  # Removes the `PublicAccessBlock` configuration for an Amazon S3 bucket.
5923
- # To use this operation, you must have the
6392
+ # This operation removes the bucket-level configuration only. The
6393
+ # effective public access behavior will still be governed by
6394
+ # account-level settings (which may inherit from organization-level
6395
+ # policies). To use this operation, you must have the
5924
6396
  # `s3:PutBucketPublicAccessBlock` permission. For more information about
5925
6397
  # permissions, see [Permissions Related to Bucket Subresource
5926
6398
  # Operations][1] and [Managing Access Permissions to Your Amazon S3
@@ -5936,6 +6408,10 @@ module Aws::S3
5936
6408
  #
5937
6409
  # * [GetBucketPolicyStatus][6]
5938
6410
  #
6411
+ # You must URL encode any signed header values that contain spaces. For
6412
+ # example, if your header value is `my file.txt`, containing two spaces
6413
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
6414
+ #
5939
6415
  #
5940
6416
  #
5941
6417
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
@@ -5972,6 +6448,46 @@ module Aws::S3
5972
6448
  req.send_request(options)
5973
6449
  end
5974
6450
 
6451
+ # Returns the attribute-based access control (ABAC) property of the
6452
+ # general purpose bucket. If ABAC is enabled on your bucket, you can use
6453
+ # tags on the bucket for access control. For more information, see
6454
+ # [Enabling ABAC in general purpose buckets][1].
6455
+ #
6456
+ #
6457
+ #
6458
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html
6459
+ #
6460
+ # @option params [required, String] :bucket
6461
+ # The name of the general purpose bucket.
6462
+ #
6463
+ # @option params [String] :expected_bucket_owner
6464
+ # The Amazon Web Services account ID of the general purpose bucket's
6465
+ # owner.
6466
+ #
6467
+ # @return [Types::GetBucketAbacOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6468
+ #
6469
+ # * {Types::GetBucketAbacOutput#abac_status #abac_status} => Types::AbacStatus
6470
+ #
6471
+ # @example Request syntax with placeholder values
6472
+ #
6473
+ # resp = client.get_bucket_abac({
6474
+ # bucket: "BucketName", # required
6475
+ # expected_bucket_owner: "AccountId",
6476
+ # })
6477
+ #
6478
+ # @example Response structure
6479
+ #
6480
+ # resp.abac_status.status #=> String, one of "Enabled", "Disabled"
6481
+ #
6482
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAbac AWS API Documentation
6483
+ #
6484
+ # @overload get_bucket_abac(params = {})
6485
+ # @param [Hash] params ({})
6486
+ def get_bucket_abac(params = {}, options = {})
6487
+ req = build_request(:get_bucket_abac, params)
6488
+ req.send_request(options)
6489
+ end
6490
+
5975
6491
  # <note markdown="1"> This operation is not supported for directory buckets.
5976
6492
  #
5977
6493
  # </note>
@@ -6008,6 +6524,10 @@ module Aws::S3
6008
6524
  #
6009
6525
  # ^
6010
6526
  #
6527
+ # You must URL encode any signed header values that contain spaces. For
6528
+ # example, if your header value is `my file.txt`, containing two spaces
6529
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
6530
+ #
6011
6531
  #
6012
6532
  #
6013
6533
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
@@ -6097,6 +6617,10 @@ module Aws::S3
6097
6617
  #
6098
6618
  # </note>
6099
6619
  #
6620
+ # You must URL encode any signed header values that contain spaces. For
6621
+ # example, if your header value is `my file.txt`, containing two spaces
6622
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
6623
+ #
6100
6624
  # The following operations are related to `GetBucketAcl`:
6101
6625
  #
6102
6626
  # * [ListObjects][3]
@@ -6192,6 +6716,10 @@ module Aws::S3
6192
6716
  #
6193
6717
  # * [PutBucketAnalyticsConfiguration][6]
6194
6718
  #
6719
+ # You must URL encode any signed header values that contain spaces. For
6720
+ # example, if your header value is `my file.txt`, containing two spaces
6721
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
6722
+ #
6195
6723
  #
6196
6724
  #
6197
6725
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
@@ -6280,6 +6808,10 @@ module Aws::S3
6280
6808
  #
6281
6809
  # * [DeleteBucketCors][4]
6282
6810
  #
6811
+ # You must URL encode any signed header values that contain spaces. For
6812
+ # example, if your header value is `my file.txt`, containing two spaces
6813
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
6814
+ #
6283
6815
  #
6284
6816
  #
6285
6817
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList
@@ -6372,17 +6904,19 @@ module Aws::S3
6372
6904
 
6373
6905
  # Returns the default encryption configuration for an Amazon S3 bucket.
6374
6906
  # By default, all buckets have a default encryption configuration that
6375
- # uses server-side encryption with Amazon S3 managed keys (SSE-S3).
6907
+ # uses server-side encryption with Amazon S3 managed keys (SSE-S3). This
6908
+ # operation also returns the [BucketKeyEnabled][1] and
6909
+ # [BlockedEncryptionTypes][2] statuses.
6376
6910
  #
6377
6911
  # <note markdown="1"> * **General purpose buckets** - For information about the bucket
6378
6912
  # default encryption feature, see [Amazon S3 Bucket Default
6379
- # Encryption][1] in the *Amazon S3 User Guide*.
6913
+ # Encryption][3] in the *Amazon S3 User Guide*.
6380
6914
  #
6381
6915
  # * **Directory buckets** - For directory buckets, there are only two
6382
6916
  # supported options for server-side encryption: SSE-S3 and SSE-KMS.
6383
6917
  # For information about the default encryption configuration in
6384
6918
  # directory buckets, see [Setting default server-side encryption
6385
- # behavior for directory buckets][2].
6919
+ # behavior for directory buckets][4].
6386
6920
  #
6387
6921
  # </note>
6388
6922
  #
@@ -6392,8 +6926,8 @@ module Aws::S3
6392
6926
  # policy. The bucket owner has this permission by default. The
6393
6927
  # bucket owner can grant this permission to others. For more
6394
6928
  # information about permissions, see [Permissions Related to Bucket
6395
- # Operations][3] and [Managing Access Permissions to Your Amazon S3
6396
- # Resources][4].
6929
+ # Operations][5] and [Managing Access Permissions to Your Amazon S3
6930
+ # Resources][6].
6397
6931
  #
6398
6932
  # * **Directory bucket permissions** - To grant access to this API
6399
6933
  # operation, you must have the
@@ -6403,7 +6937,7 @@ module Aws::S3
6403
6937
  # only be performed by the Amazon Web Services account that owns the
6404
6938
  # resource. For more information about directory bucket policies and
6405
6939
  # permissions, see [Amazon Web Services Identity and Access
6406
- # Management (IAM) for S3 Express One Zone][5] in the *Amazon S3
6940
+ # Management (IAM) for S3 Express One Zone][7] in the *Amazon S3
6407
6941
  # User Guide*.
6408
6942
  #
6409
6943
  # HTTP Host header syntax
@@ -6413,19 +6947,25 @@ module Aws::S3
6413
6947
  #
6414
6948
  # The following operations are related to `GetBucketEncryption`:
6415
6949
  #
6416
- # * [PutBucketEncryption][6]
6950
+ # * [PutBucketEncryption][8]
6417
6951
  #
6418
- # * [DeleteBucketEncryption][7]
6952
+ # * [DeleteBucketEncryption][9]
6419
6953
  #
6954
+ # You must URL encode any signed header values that contain spaces. For
6955
+ # example, if your header value is `my file.txt`, containing two spaces
6956
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
6420
6957
  #
6421
6958
  #
6422
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html
6423
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-bucket-encryption.html
6424
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
6425
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
6426
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html
6427
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html
6428
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html
6959
+ #
6960
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionRule.html#AmazonS3-Type-ServerSideEncryptionRule-BucketKeyEnabled
6961
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ServerSideEncryptionRule.html#AmazonS3-Type-ServerSideEncryptionRule-BlockedEncryptionTypes
6962
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html
6963
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-bucket-encryption.html
6964
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
6965
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
6966
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html
6967
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html
6968
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html
6429
6969
  #
6430
6970
  # @option params [required, String] :bucket
6431
6971
  # The name of the bucket from which the server-side encryption
@@ -6471,9 +7011,11 @@ module Aws::S3
6471
7011
  # @example Response structure
6472
7012
  #
6473
7013
  # resp.server_side_encryption_configuration.rules #=> Array
6474
- # resp.server_side_encryption_configuration.rules[0].apply_server_side_encryption_by_default.sse_algorithm #=> String, one of "AES256", "aws:kms", "aws:kms:dsse"
7014
+ # resp.server_side_encryption_configuration.rules[0].apply_server_side_encryption_by_default.sse_algorithm #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
6475
7015
  # resp.server_side_encryption_configuration.rules[0].apply_server_side_encryption_by_default.kms_master_key_id #=> String
6476
7016
  # resp.server_side_encryption_configuration.rules[0].bucket_key_enabled #=> Boolean
7017
+ # resp.server_side_encryption_configuration.rules[0].blocked_encryption_types.encryption_type #=> Array
7018
+ # resp.server_side_encryption_configuration.rules[0].blocked_encryption_types.encryption_type[0] #=> String, one of "NONE", "SSE-C"
6477
7019
  #
6478
7020
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketEncryption AWS API Documentation
6479
7021
  #
@@ -6519,6 +7061,10 @@ module Aws::S3
6519
7061
  #
6520
7062
  # * [ListBucketIntelligentTieringConfigurations][4]
6521
7063
  #
7064
+ # You must URL encode any signed header values that contain spaces. For
7065
+ # example, if your header value is `my file.txt`, containing two spaces
7066
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
7067
+ #
6522
7068
  #
6523
7069
  #
6524
7070
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access
@@ -6533,6 +7079,11 @@ module Aws::S3
6533
7079
  # @option params [required, String] :id
6534
7080
  # The ID used to identify the S3 Intelligent-Tiering configuration.
6535
7081
  #
7082
+ # @option params [String] :expected_bucket_owner
7083
+ # The account ID of the expected bucket owner. If the account ID that
7084
+ # you provide does not match the actual owner of the bucket, the request
7085
+ # fails with the HTTP status code `403 Forbidden` (access denied).
7086
+ #
6536
7087
  # @return [Types::GetBucketIntelligentTieringConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6537
7088
  #
6538
7089
  # * {Types::GetBucketIntelligentTieringConfigurationOutput#intelligent_tiering_configuration #intelligent_tiering_configuration} => Types::IntelligentTieringConfiguration
@@ -6542,6 +7093,7 @@ module Aws::S3
6542
7093
  # resp = client.get_bucket_intelligent_tiering_configuration({
6543
7094
  # bucket: "BucketName", # required
6544
7095
  # id: "IntelligentTieringId", # required
7096
+ # expected_bucket_owner: "AccountId",
6545
7097
  # })
6546
7098
  #
6547
7099
  # @example Response structure
@@ -6572,7 +7124,7 @@ module Aws::S3
6572
7124
  #
6573
7125
  # </note>
6574
7126
  #
6575
- # Returns an inventory configuration (identified by the inventory
7127
+ # Returns an S3 Inventory configuration (identified by the inventory
6576
7128
  # configuration ID) from the bucket.
6577
7129
  #
6578
7130
  # To use this operation, you must have permissions to perform the
@@ -6594,6 +7146,10 @@ module Aws::S3
6594
7146
  #
6595
7147
  # * [PutBucketInventoryConfiguration][6]
6596
7148
  #
7149
+ # You must URL encode any signed header values that contain spaces. For
7150
+ # example, if your header value is `my file.txt`, containing two spaces
7151
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
7152
+ #
6597
7153
  #
6598
7154
  #
6599
7155
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
@@ -6639,7 +7195,7 @@ module Aws::S3
6639
7195
  # resp.inventory_configuration.id #=> String
6640
7196
  # resp.inventory_configuration.included_object_versions #=> String, one of "All", "Current"
6641
7197
  # resp.inventory_configuration.optional_fields #=> Array
6642
- # resp.inventory_configuration.optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus", "ObjectLockRetainUntilDate", "ObjectLockMode", "ObjectLockLegalHoldStatus", "IntelligentTieringAccessTier", "BucketKeyStatus", "ChecksumAlgorithm", "ObjectAccessControlList", "ObjectOwner"
7198
+ # resp.inventory_configuration.optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus", "ObjectLockRetainUntilDate", "ObjectLockMode", "ObjectLockLegalHoldStatus", "IntelligentTieringAccessTier", "BucketKeyStatus", "ChecksumAlgorithm", "ObjectAccessControlList", "ObjectOwner", "LifecycleExpirationDate"
6643
7199
  # resp.inventory_configuration.schedule.frequency #=> String, one of "Daily", "Weekly"
6644
7200
  #
6645
7201
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketInventoryConfiguration AWS API Documentation
@@ -6690,6 +7246,10 @@ module Aws::S3
6690
7246
  #
6691
7247
  # * [DeleteBucketLifecycle][6]
6692
7248
  #
7249
+ # You must URL encode any signed header values that contain spaces. For
7250
+ # example, if your header value is `my file.txt`, containing two spaces
7251
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
7252
+ #
6693
7253
  #
6694
7254
  #
6695
7255
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLifecycleConfiguration.html
@@ -6851,6 +7411,10 @@ module Aws::S3
6851
7411
  #
6852
7412
  # * [DeleteBucketLifecycle][8]
6853
7413
  #
7414
+ # You must URL encode any signed header values that contain spaces. For
7415
+ # example, if your header value is `my file.txt`, containing two spaces
7416
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
7417
+ #
6854
7418
  #
6855
7419
  #
6856
7420
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
@@ -6955,13 +7519,25 @@ module Aws::S3
6955
7519
  req.send_request(options)
6956
7520
  end
6957
7521
 
6958
- # <note markdown="1"> This operation is not supported for directory buckets.
6959
- #
6960
- # </note>
7522
+ # Using the `GetBucketLocation` operation is no longer a best practice.
7523
+ # To return the Region that a bucket resides in, we recommend that you
7524
+ # use the [HeadBucket][1] operation instead. For backward compatibility,
7525
+ # Amazon S3 continues to support the `GetBucketLocation` operation.
6961
7526
  #
6962
7527
  # Returns the Region the bucket resides in. You set the bucket's Region
6963
7528
  # using the `LocationConstraint` request parameter in a `CreateBucket`
6964
- # request. For more information, see [CreateBucket][1].
7529
+ # request. For more information, see [CreateBucket][2].
7530
+ #
7531
+ # <note markdown="1"> In a bucket's home Region, calls to the `GetBucketLocation` operation
7532
+ # are governed by the bucket's policy. In other Regions, the bucket
7533
+ # policy doesn't apply, which means that cross-account access won't be
7534
+ # authorized. However, calls to the `HeadBucket` operation always return
7535
+ # the bucket’s location through an HTTP response header, whether access
7536
+ # to the bucket is authorized or not. Therefore, we recommend using the
7537
+ # `HeadBucket` operation for bucket Region discovery and to avoid using
7538
+ # the `GetBucketLocation` operation.
7539
+ #
7540
+ # </note>
6965
7541
  #
6966
7542
  # When you use this API operation with an access point, provide the
6967
7543
  # alias of the access point in place of the bucket name.
@@ -6971,11 +7547,9 @@ module Aws::S3
6971
7547
  # bucket name. If the Object Lambda access point alias in a request is
6972
7548
  # not valid, the error code `InvalidAccessPointAliasError` is returned.
6973
7549
  # For more information about `InvalidAccessPointAliasError`, see [List
6974
- # of Error Codes][2].
7550
+ # of Error Codes][3].
6975
7551
  #
6976
- # <note markdown="1"> We recommend that you use [HeadBucket][3] to return the Region that a
6977
- # bucket resides in. For backward compatibility, Amazon S3 continues to
6978
- # support GetBucketLocation.
7552
+ # <note markdown="1"> This operation is not supported for directory buckets.
6979
7553
  #
6980
7554
  # </note>
6981
7555
  #
@@ -6983,13 +7557,17 @@ module Aws::S3
6983
7557
  #
6984
7558
  # * [GetObject][4]
6985
7559
  #
6986
- # * [CreateBucket][1]
7560
+ # * [CreateBucket][2]
6987
7561
  #
7562
+ # You must URL encode any signed header values that contain spaces. For
7563
+ # example, if your header value is `my file.txt`, containing two spaces
7564
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
6988
7565
  #
6989
7566
  #
6990
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html
6991
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList
6992
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html
7567
+ #
7568
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html
7569
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html
7570
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList
6993
7571
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
6994
7572
  #
6995
7573
  # @option params [required, String] :bucket
@@ -7065,6 +7643,10 @@ module Aws::S3
7065
7643
  #
7066
7644
  # * [PutBucketLogging][2]
7067
7645
  #
7646
+ # You must URL encode any signed header values that contain spaces. For
7647
+ # example, if your header value is `my file.txt`, containing two spaces
7648
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
7649
+ #
7068
7650
  #
7069
7651
  #
7070
7652
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html
@@ -7111,10 +7693,18 @@ module Aws::S3
7111
7693
  req.send_request(options)
7112
7694
  end
7113
7695
 
7114
- # Retrieves the metadata table configuration for a general purpose
7115
- # bucket. For more information, see [Accelerating data discovery with S3
7696
+ # Retrieves the S3 Metadata configuration for a general purpose bucket.
7697
+ # For more information, see [Accelerating data discovery with S3
7116
7698
  # Metadata][1] in the *Amazon S3 User Guide*.
7117
7699
  #
7700
+ # <note markdown="1"> You can use the V2 `GetBucketMetadataConfiguration` API operation with
7701
+ # V1 or V2 metadata configurations. However, if you try to use the V1
7702
+ # `GetBucketMetadataTableConfiguration` API operation with V2
7703
+ # configurations, you will receive an HTTP `405 Method Not Allowed`
7704
+ # error.
7705
+ #
7706
+ # </note>
7707
+ #
7118
7708
  # Permissions
7119
7709
  #
7120
7710
  # : To use this operation, you must have the
@@ -7122,27 +7712,144 @@ module Aws::S3
7122
7712
  # information, see [Setting up permissions for configuring metadata
7123
7713
  # tables][2] in the *Amazon S3 User Guide*.
7124
7714
  #
7715
+ # <note markdown="1"> The IAM policy action name is the same for the V1 and V2 API
7716
+ # operations.
7717
+ #
7718
+ # </note>
7719
+ #
7125
7720
  # The following operations are related to
7126
- # `GetBucketMetadataTableConfiguration`:
7721
+ # `GetBucketMetadataConfiguration`:
7127
7722
  #
7128
- # * [CreateBucketMetadataTableConfiguration][3]
7723
+ # * [CreateBucketMetadataConfiguration][3]
7129
7724
  #
7130
- # * [DeleteBucketMetadataTableConfiguration][4]
7725
+ # * [DeleteBucketMetadataConfiguration][4]
7726
+ #
7727
+ # * [UpdateBucketMetadataInventoryTableConfiguration][5]
7728
+ #
7729
+ # * [UpdateBucketMetadataJournalTableConfiguration][6]
7730
+ #
7731
+ # You must URL encode any signed header values that contain spaces. For
7732
+ # example, if your header value is `my file.txt`, containing two spaces
7733
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
7131
7734
  #
7132
7735
  #
7133
7736
  #
7134
7737
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html
7135
7738
  # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html
7136
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataTableConfiguration.html
7137
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html
7739
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html
7740
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html
7741
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html
7742
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html
7743
+ #
7744
+ # @option params [required, String] :bucket
7745
+ # The general purpose bucket that corresponds to the metadata
7746
+ # configuration that you want to retrieve.
7747
+ #
7748
+ # @option params [String] :expected_bucket_owner
7749
+ # The expected owner of the general purpose bucket that you want to
7750
+ # retrieve the metadata table configuration for.
7751
+ #
7752
+ # @return [Types::GetBucketMetadataConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7753
+ #
7754
+ # * {Types::GetBucketMetadataConfigurationOutput#get_bucket_metadata_configuration_result #get_bucket_metadata_configuration_result} => Types::GetBucketMetadataConfigurationResult
7755
+ #
7756
+ # @example Request syntax with placeholder values
7757
+ #
7758
+ # resp = client.get_bucket_metadata_configuration({
7759
+ # bucket: "BucketName", # required
7760
+ # expected_bucket_owner: "AccountId",
7761
+ # })
7762
+ #
7763
+ # @example Response structure
7764
+ #
7765
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.destination_result.table_bucket_type #=> String, one of "aws", "customer"
7766
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.destination_result.table_bucket_arn #=> String
7767
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.destination_result.table_namespace #=> String
7768
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.journal_table_configuration_result.table_status #=> String
7769
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.journal_table_configuration_result.error.error_code #=> String
7770
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.journal_table_configuration_result.error.error_message #=> String
7771
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.journal_table_configuration_result.table_name #=> String
7772
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.journal_table_configuration_result.table_arn #=> String
7773
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.journal_table_configuration_result.record_expiration.expiration #=> String, one of "ENABLED", "DISABLED"
7774
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.journal_table_configuration_result.record_expiration.days #=> Integer
7775
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.inventory_table_configuration_result.configuration_state #=> String, one of "ENABLED", "DISABLED"
7776
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.inventory_table_configuration_result.table_status #=> String
7777
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.inventory_table_configuration_result.error.error_code #=> String
7778
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.inventory_table_configuration_result.error.error_message #=> String
7779
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.inventory_table_configuration_result.table_name #=> String
7780
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.inventory_table_configuration_result.table_arn #=> String
7781
+ #
7782
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetadataConfiguration AWS API Documentation
7783
+ #
7784
+ # @overload get_bucket_metadata_configuration(params = {})
7785
+ # @param [Hash] params ({})
7786
+ def get_bucket_metadata_configuration(params = {}, options = {})
7787
+ req = build_request(:get_bucket_metadata_configuration, params)
7788
+ req.send_request(options)
7789
+ end
7790
+
7791
+ # We recommend that you retrieve your S3 Metadata configurations by
7792
+ # using the V2 [GetBucketMetadataTableConfiguration][1] API operation.
7793
+ # We no longer recommend using the V1
7794
+ # `GetBucketMetadataTableConfiguration` API operation.
7795
+ #
7796
+ # If you created your S3 Metadata configuration before July 15, 2025,
7797
+ # we
7798
+ # recommend that you delete and re-create your configuration by using
7799
+ # [CreateBucketMetadataConfiguration][2] so that you can expire journal
7800
+ # table records and create a live inventory table.
7801
+ #
7802
+ # Retrieves the V1 S3 Metadata configuration for a general purpose
7803
+ # bucket. For more information, see [Accelerating data discovery with S3
7804
+ # Metadata][3] in the *Amazon S3 User Guide*.
7805
+ #
7806
+ # <note markdown="1"> You can use the V2 `GetBucketMetadataConfiguration` API operation with
7807
+ # V1 or V2 metadata table configurations. However, if you try to use the
7808
+ # V1 `GetBucketMetadataTableConfiguration` API operation with V2
7809
+ # configurations, you will receive an HTTP `405 Method Not Allowed`
7810
+ # error.
7811
+ #
7812
+ # Make sure that you update your processes to use the new V2 API
7813
+ # operations (`CreateBucketMetadataConfiguration`,
7814
+ # `GetBucketMetadataConfiguration`, and
7815
+ # `DeleteBucketMetadataConfiguration`) instead of the V1 API operations.
7816
+ #
7817
+ # </note>
7818
+ #
7819
+ # Permissions
7820
+ #
7821
+ # : To use this operation, you must have the
7822
+ # `s3:GetBucketMetadataTableConfiguration` permission. For more
7823
+ # information, see [Setting up permissions for configuring metadata
7824
+ # tables][4] in the *Amazon S3 User Guide*.
7825
+ #
7826
+ # The following operations are related to
7827
+ # `GetBucketMetadataTableConfiguration`:
7828
+ #
7829
+ # * [CreateBucketMetadataTableConfiguration][5]
7830
+ #
7831
+ # * [DeleteBucketMetadataTableConfiguration][6]
7832
+ #
7833
+ # You must URL encode any signed header values that contain spaces. For
7834
+ # example, if your header value is `my file.txt`, containing two spaces
7835
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
7836
+ #
7837
+ #
7838
+ #
7839
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataTableConfiguration.html
7840
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html
7841
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html
7842
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html
7843
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataTableConfiguration.html
7844
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataTableConfiguration.html
7138
7845
  #
7139
7846
  # @option params [required, String] :bucket
7140
- # The general purpose bucket that contains the metadata table
7847
+ # The general purpose bucket that corresponds to the metadata table
7141
7848
  # configuration that you want to retrieve.
7142
7849
  #
7143
7850
  # @option params [String] :expected_bucket_owner
7144
7851
  # The expected owner of the general purpose bucket that you want to
7145
- # retrieve the metadata table configuration from.
7852
+ # retrieve the metadata table configuration for.
7146
7853
  #
7147
7854
  # @return [Types::GetBucketMetadataTableConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
7148
7855
  #
@@ -7203,6 +7910,10 @@ module Aws::S3
7203
7910
  #
7204
7911
  # * [Monitoring Metrics with Amazon CloudWatch][3]
7205
7912
  #
7913
+ # You must URL encode any signed header values that contain spaces. For
7914
+ # example, if your header value is `my file.txt`, containing two spaces
7915
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
7916
+ #
7206
7917
  #
7207
7918
  #
7208
7919
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
@@ -7426,6 +8137,10 @@ module Aws::S3
7426
8137
  #
7427
8138
  # ^
7428
8139
  #
8140
+ # You must URL encode any signed header values that contain spaces. For
8141
+ # example, if your header value is `my file.txt`, containing two spaces
8142
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
8143
+ #
7429
8144
  #
7430
8145
  #
7431
8146
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList
@@ -7515,6 +8230,21 @@ module Aws::S3
7515
8230
  # permission. For more information about Amazon S3 permissions, see
7516
8231
  # [Specifying permissions in a policy][1].
7517
8232
  #
8233
+ # <note markdown="1"> A bucket doesn't have `OwnershipControls` settings in the following
8234
+ # cases:
8235
+ #
8236
+ # * The bucket was created before the `BucketOwnerEnforced` ownership
8237
+ # setting was introduced and you've never explicitly applied this
8238
+ # value
8239
+ #
8240
+ # * You've manually deleted the bucket ownership control value using
8241
+ # the `DeleteBucketOwnershipControls` API operation.
8242
+ #
8243
+ # By default, Amazon S3 sets `OwnershipControls` for all newly created
8244
+ # buckets.
8245
+ #
8246
+ # </note>
8247
+ #
7518
8248
  # For information about Amazon S3 Object Ownership, see [Using Object
7519
8249
  # Ownership][2].
7520
8250
  #
@@ -7524,6 +8254,10 @@ module Aws::S3
7524
8254
  #
7525
8255
  # * DeleteBucketOwnershipControls
7526
8256
  #
8257
+ # You must URL encode any signed header values that contain spaces. For
8258
+ # example, if your header value is `my file.txt`, containing two spaces
8259
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
8260
+ #
7527
8261
  #
7528
8262
  #
7529
8263
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html
@@ -7635,6 +8369,10 @@ module Aws::S3
7635
8369
  #
7636
8370
  # ^
7637
8371
  #
8372
+ # You must URL encode any signed header values that contain spaces. For
8373
+ # example, if your header value is `my file.txt`, containing two spaces
8374
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
8375
+ #
7638
8376
  #
7639
8377
  #
7640
8378
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html
@@ -7705,7 +8443,7 @@ module Aws::S3
7705
8443
  #
7706
8444
  # resp.to_h outputs the following:
7707
8445
  # {
7708
- # policy: "{\"Version\":\"2008-10-17\",\"Id\":\"LogPolicy\",\"Statement\":[{\"Sid\":\"Enables the log delivery group to publish logs to your bucket \",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"111122223333\"},\"Action\":[\"s3:GetBucketAcl\",\"s3:GetObjectAcl\",\"s3:PutObject\"],\"Resource\":[\"arn:aws:s3:::policytest1/*\",\"arn:aws:s3:::policytest1\"]}]}",
8446
+ # policy: "{\"Version\":\"2008-10-17\",&TCX5-2025-waiver;\"Id\":\"LogPolicy\",\"Statement\":[{\"Sid\":\"Enables the log delivery group to publish logs to your bucket \",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"111122223333\"},\"Action\":[\"s3:GetBucketAcl\",\"s3:GetObjectAcl\",\"s3:PutObject\"],\"Resource\":[\"arn:aws:s3:::policytest1/*\",\"arn:aws:s3:::policytest1\"]}]}",
7709
8447
  # }
7710
8448
  #
7711
8449
  # @example Request syntax with placeholder values
@@ -7751,6 +8489,10 @@ module Aws::S3
7751
8489
  #
7752
8490
  # * [DeletePublicAccessBlock][6]
7753
8491
  #
8492
+ # You must URL encode any signed header values that contain spaces. For
8493
+ # example, if your header value is `my file.txt`, containing two spaces
8494
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
8495
+ #
7754
8496
  #
7755
8497
  #
7756
8498
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
@@ -7825,6 +8567,10 @@ module Aws::S3
7825
8567
  #
7826
8568
  # * [DeleteBucketReplication][5]
7827
8569
  #
8570
+ # You must URL encode any signed header values that contain spaces. For
8571
+ # example, if your header value is `my file.txt`, containing two spaces
8572
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
8573
+ #
7828
8574
  #
7829
8575
  #
7830
8576
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html
@@ -7898,7 +8644,7 @@ module Aws::S3
7898
8644
  # resp.replication_configuration.rules[0].existing_object_replication.status #=> String, one of "Enabled", "Disabled"
7899
8645
  # resp.replication_configuration.rules[0].destination.bucket #=> String
7900
8646
  # resp.replication_configuration.rules[0].destination.account #=> String
7901
- # resp.replication_configuration.rules[0].destination.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE"
8647
+ # resp.replication_configuration.rules[0].destination.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP"
7902
8648
  # resp.replication_configuration.rules[0].destination.access_control_translation.owner #=> String, one of "Destination"
7903
8649
  # resp.replication_configuration.rules[0].destination.encryption_configuration.replica_kms_key_id #=> String
7904
8650
  # resp.replication_configuration.rules[0].destination.replication_time.status #=> String, one of "Enabled", "Disabled"
@@ -7930,6 +8676,10 @@ module Aws::S3
7930
8676
  #
7931
8677
  # ^
7932
8678
  #
8679
+ # You must URL encode any signed header values that contain spaces. For
8680
+ # example, if your header value is `my file.txt`, containing two spaces
8681
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
8682
+ #
7933
8683
  #
7934
8684
  #
7935
8685
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html
@@ -7986,7 +8736,11 @@ module Aws::S3
7986
8736
  #
7987
8737
  # </note>
7988
8738
  #
7989
- # Returns the tag set associated with the bucket.
8739
+ # Returns the tag set associated with the general purpose bucket.
8740
+ #
8741
+ # if ABAC is not enabled for the bucket. When you [enable ABAC for a
8742
+ # general purpose bucket][1], you can no longer use this operation for
8743
+ # that bucket and must use [ListTagsForResource][2] instead.
7990
8744
  #
7991
8745
  # To use this operation, you must have permission to perform the
7992
8746
  # `s3:GetBucketTagging` action. By default, the bucket owner has this
@@ -8002,14 +8756,20 @@ module Aws::S3
8002
8756
  #
8003
8757
  # The following operations are related to `GetBucketTagging`:
8004
8758
  #
8005
- # * [PutBucketTagging][1]
8759
+ # * [PutBucketTagging][3]
8760
+ #
8761
+ # * [DeleteBucketTagging][4]
8006
8762
  #
8007
- # * [DeleteBucketTagging][2]
8763
+ # You must URL encode any signed header values that contain spaces. For
8764
+ # example, if your header value is `my file.txt`, containing two spaces
8765
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
8008
8766
  #
8009
8767
  #
8010
8768
  #
8011
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html
8012
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html
8769
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html
8770
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_ListTagsForResource.html
8771
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html
8772
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html
8013
8773
  #
8014
8774
  # @option params [required, String] :bucket
8015
8775
  # The name of the bucket for which to get the tagging information.
@@ -8090,6 +8850,10 @@ module Aws::S3
8090
8850
  #
8091
8851
  # * [DeleteObject][3]
8092
8852
  #
8853
+ # You must URL encode any signed header values that contain spaces. For
8854
+ # example, if your header value is `my file.txt`, containing two spaces
8855
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
8856
+ #
8093
8857
  #
8094
8858
  #
8095
8859
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
@@ -8166,6 +8930,10 @@ module Aws::S3
8166
8930
  #
8167
8931
  # * [PutBucketWebsite][3]
8168
8932
  #
8933
+ # You must URL encode any signed header values that contain spaces. For
8934
+ # example, if your header value is `my file.txt`, containing two spaces
8935
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
8936
+ #
8169
8937
  #
8170
8938
  #
8171
8939
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html
@@ -8400,6 +9168,10 @@ module Aws::S3
8400
9168
  #
8401
9169
  # * [GetObjectAcl][10]
8402
9170
  #
9171
+ # You must URL encode any signed header values that contain spaces. For
9172
+ # example, if your header value is `my file.txt`, containing two spaces
9173
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
9174
+ #
8403
9175
  #
8404
9176
  #
8405
9177
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html#VirtualHostingSpecifyBucket
@@ -8752,49 +9524,49 @@ module Aws::S3
8752
9524
  # * {Types::GetObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String
8753
9525
  #
8754
9526
  #
8755
- # @example Example: To retrieve an object
9527
+ # @example Example: To retrieve a byte range of an object
8756
9528
  #
8757
- # # The following example retrieves an object for an S3 bucket.
9529
+ # # The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a
9530
+ # # specific byte range.
8758
9531
  #
8759
9532
  # resp = client.get_object({
8760
9533
  # bucket: "examplebucket",
8761
- # key: "HappyFace.jpg",
9534
+ # key: "SampleFile.txt",
9535
+ # range: "bytes=0-9",
8762
9536
  # })
8763
9537
  #
8764
9538
  # resp.to_h outputs the following:
8765
9539
  # {
8766
9540
  # accept_ranges: "bytes",
8767
- # content_length: 3191,
8768
- # content_type: "image/jpeg",
8769
- # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
8770
- # last_modified: Time.parse("2016-12-15T01:19:41.000Z"),
9541
+ # content_length: 10,
9542
+ # content_range: "bytes 0-9/43",
9543
+ # content_type: "text/plain",
9544
+ # etag: "\"0d94420ffd0bc68cd3d152506b97a9cc\"",
9545
+ # last_modified: Time.parse("2014-10-09T22:57:28.000Z"),
8771
9546
  # metadata: {
8772
9547
  # },
8773
- # tag_count: 2,
8774
9548
  # version_id: "null",
8775
9549
  # }
8776
9550
  #
8777
- # @example Example: To retrieve a byte range of an object
9551
+ # @example Example: To retrieve an object
8778
9552
  #
8779
- # # The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a
8780
- # # specific byte range.
9553
+ # # The following example retrieves an object for an S3 bucket.
8781
9554
  #
8782
9555
  # resp = client.get_object({
8783
9556
  # bucket: "examplebucket",
8784
- # key: "SampleFile.txt",
8785
- # range: "bytes=0-9",
9557
+ # key: "HappyFace.jpg",
8786
9558
  # })
8787
9559
  #
8788
9560
  # resp.to_h outputs the following:
8789
9561
  # {
8790
9562
  # accept_ranges: "bytes",
8791
- # content_length: 10,
8792
- # content_range: "bytes 0-9/43",
8793
- # content_type: "text/plain",
8794
- # etag: "\"0d94420ffd0bc68cd3d152506b97a9cc\"",
8795
- # last_modified: Time.parse("2014-10-09T22:57:28.000Z"),
9563
+ # content_length: 3191,
9564
+ # content_type: "image/jpeg",
9565
+ # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
9566
+ # last_modified: Time.parse("2016-12-15T01:19:41.000Z"),
8796
9567
  # metadata: {
8797
9568
  # },
9569
+ # tag_count: 2,
8798
9570
  # version_id: "null",
8799
9571
  # }
8800
9572
  #
@@ -8880,14 +9652,14 @@ module Aws::S3
8880
9652
  # resp.expires #=> Time
8881
9653
  # resp.expires_string #=> String
8882
9654
  # resp.website_redirect_location #=> String
8883
- # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse"
9655
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
8884
9656
  # resp.metadata #=> Hash
8885
9657
  # resp.metadata["MetadataKey"] #=> String
8886
9658
  # resp.sse_customer_algorithm #=> String
8887
9659
  # resp.sse_customer_key_md5 #=> String
8888
9660
  # resp.ssekms_key_id #=> String
8889
9661
  # resp.bucket_key_enabled #=> Boolean
8890
- # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE"
9662
+ # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP"
8891
9663
  # resp.request_charged #=> String, one of "requester"
8892
9664
  # resp.replication_status #=> String, one of "COMPLETE", "PENDING", "FAILED", "REPLICA", "COMPLETED"
8893
9665
  # resp.parts_count #=> Integer
@@ -8939,6 +9711,10 @@ module Aws::S3
8939
9711
  #
8940
9712
  # * [PutObject][6]
8941
9713
  #
9714
+ # You must URL encode any signed header values that contain spaces. For
9715
+ # example, if your header value is `my file.txt`, containing two spaces
9716
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
9717
+ #
8942
9718
  #
8943
9719
  #
8944
9720
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#acl-access-policy-permission-mapping
@@ -9091,12 +9867,12 @@ module Aws::S3
9091
9867
  req.send_request(options)
9092
9868
  end
9093
9869
 
9094
- # Retrieves all the metadata from an object without returning the object
9095
- # itself. This operation is useful if you're interested only in an
9096
- # object's metadata.
9870
+ # Retrieves all of the metadata from an object without returning the
9871
+ # object itself. This operation is useful if you're interested only in
9872
+ # an object's metadata.
9097
9873
  #
9098
9874
  # `GetObjectAttributes` combines the functionality of `HeadObject` and
9099
- # `ListParts`. All of the data returned with each of those individual
9875
+ # `ListParts`. All of the data returned with both of those individual
9100
9876
  # calls can be returned with a single call to `GetObjectAttributes`.
9101
9877
  #
9102
9878
  # <note markdown="1"> **Directory buckets** - For directory buckets, you must make requests
@@ -9115,16 +9891,23 @@ module Aws::S3
9115
9891
  # Permissions
9116
9892
  # : * **General purpose bucket permissions** - To use
9117
9893
  # `GetObjectAttributes`, you must have READ access to the object.
9118
- # The permissions that you need to use this operation depend on
9119
- # whether the bucket is versioned. If the bucket is versioned, you
9120
- # need both the `s3:GetObjectVersion` and
9121
- # `s3:GetObjectVersionAttributes` permissions for this operation. If
9122
- # the bucket is not versioned, you need the `s3:GetObject` and
9123
- # `s3:GetObjectAttributes` permissions. For more information, see
9124
- # [Specifying Permissions in a Policy][3] in the *Amazon S3 User
9125
- # Guide*. If the object that you request does not exist, the error
9126
- # Amazon S3 returns depends on whether you also have the
9127
- # `s3:ListBucket` permission.
9894
+ #
9895
+ # The other permissions that you need to use this operation depend
9896
+ # on whether the bucket is versioned and if a version ID is passed
9897
+ # in the `GetObjectAttributes` request.
9898
+ #
9899
+ # * If you pass a version ID in your request, you need both the
9900
+ # `s3:GetObjectVersion` and `s3:GetObjectVersionAttributes`
9901
+ # permissions.
9902
+ #
9903
+ # * If you do not pass a version ID in your request, you need the
9904
+ # `s3:GetObject` and `s3:GetObjectAttributes` permissions.
9905
+ # For more information, see [Specifying Permissions in a Policy][3]
9906
+ # in the *Amazon S3 User Guide*.
9907
+ #
9908
+ # If the object that you request does not exist, the error Amazon S3
9909
+ # returns depends on whether you also have the `s3:ListBucket`
9910
+ # permission.
9128
9911
  #
9129
9912
  # * If you have the `s3:ListBucket` permission on the bucket, Amazon
9130
9913
  # S3 returns an HTTP status code `404 Not Found` ("no such key")
@@ -9168,12 +9951,12 @@ module Aws::S3
9168
9951
  #
9169
9952
  # </note>
9170
9953
  #
9171
- # If you encrypt an object by using server-side encryption with
9172
- # customer-provided encryption keys (SSE-C) when you store the object
9173
- # in Amazon S3, then when you retrieve the metadata from the object,
9174
- # you must use the following headers to provide the encryption key for
9175
- # the server to be able to retrieve the object's metadata. The
9176
- # headers are:
9954
+ # If you encrypted an object when you stored the object in Amazon S3
9955
+ # by using server-side encryption with customer-provided encryption
9956
+ # keys (SSE-C), then when you retrieve the metadata from the object,
9957
+ # you must use the following headers. These headers provide the server
9958
+ # with the encryption key required to retrieve the object's metadata.
9959
+ # The headers are:
9177
9960
  #
9178
9961
  # * `x-amz-server-side-encryption-customer-algorithm`
9179
9962
  #
@@ -9255,6 +10038,10 @@ module Aws::S3
9255
10038
  #
9256
10039
  # * [ListParts][16]
9257
10040
  #
10041
+ # You must URL encode any signed header values that contain spaces. For
10042
+ # example, if your header value is `my file.txt`, containing two spaces
10043
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
10044
+ #
9258
10045
  #
9259
10046
  #
9260
10047
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html
@@ -9333,11 +10120,23 @@ module Aws::S3
9333
10120
  # </note>
9334
10121
  #
9335
10122
  # @option params [Integer] :max_parts
9336
- # Sets the maximum number of parts to return.
10123
+ # Sets the maximum number of parts to return. For more information, see
10124
+ # [Uploading and copying objects using multipart upload in Amazon S3
10125
+ # ][1] in the *Amazon Simple Storage Service user guide*.
10126
+ #
10127
+ #
10128
+ #
10129
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html
9337
10130
  #
9338
10131
  # @option params [Integer] :part_number_marker
9339
10132
  # Specifies the part after which listing should begin. Only parts with
9340
- # higher part numbers will be listed.
10133
+ # higher part numbers will be listed. For more information, see
10134
+ # [Uploading and copying objects using multipart upload in Amazon S3
10135
+ # ][1] in the *Amazon Simple Storage Service user guide*.
10136
+ #
10137
+ #
10138
+ #
10139
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html
9341
10140
  #
9342
10141
  # @option params [String] :sse_customer_algorithm
9343
10142
  # Specifies the algorithm to use when encrypting the object (for
@@ -9447,7 +10246,7 @@ module Aws::S3
9447
10246
  # resp.object_parts.parts[0].checksum_crc64nvme #=> String
9448
10247
  # resp.object_parts.parts[0].checksum_sha1 #=> String
9449
10248
  # resp.object_parts.parts[0].checksum_sha256 #=> String
9450
- # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE"
10249
+ # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP"
9451
10250
  # resp.object_size #=> Integer
9452
10251
  #
9453
10252
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAttributes AWS API Documentation
@@ -9474,6 +10273,10 @@ module Aws::S3
9474
10273
  #
9475
10274
  # ^
9476
10275
  #
10276
+ # You must URL encode any signed header values that contain spaces. For
10277
+ # example, if your header value is `my file.txt`, containing two spaces
10278
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
10279
+ #
9477
10280
  #
9478
10281
  #
9479
10282
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
@@ -9572,6 +10375,10 @@ module Aws::S3
9572
10375
  #
9573
10376
  # ^
9574
10377
  #
10378
+ # You must URL encode any signed header values that contain spaces. For
10379
+ # example, if your header value is `my file.txt`, containing two spaces
10380
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
10381
+ #
9575
10382
  #
9576
10383
  #
9577
10384
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
@@ -9644,6 +10451,10 @@ module Aws::S3
9644
10451
  #
9645
10452
  # ^
9646
10453
  #
10454
+ # You must URL encode any signed header values that contain spaces. For
10455
+ # example, if your header value is `my file.txt`, containing two spaces
10456
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
10457
+ #
9647
10458
  #
9648
10459
  #
9649
10460
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
@@ -9756,6 +10567,10 @@ module Aws::S3
9756
10567
  #
9757
10568
  # * [PutObjectTagging][4]
9758
10569
  #
10570
+ # You must URL encode any signed header values that contain spaces. For
10571
+ # example, if your header value is `my file.txt`, containing two spaces
10572
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
10573
+ #
9759
10574
  #
9760
10575
  #
9761
10576
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-tagging.html
@@ -9922,6 +10737,10 @@ module Aws::S3
9922
10737
  #
9923
10738
  # ^
9924
10739
  #
10740
+ # You must URL encode any signed header values that contain spaces. For
10741
+ # example, if your header value is `my file.txt`, containing two spaces
10742
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
10743
+ #
9925
10744
  #
9926
10745
  #
9927
10746
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
@@ -10005,17 +10824,21 @@ module Aws::S3
10005
10824
  # </note>
10006
10825
  #
10007
10826
  # Retrieves the `PublicAccessBlock` configuration for an Amazon S3
10008
- # bucket. To use this operation, you must have the
10827
+ # bucket. This operation returns the bucket-level configuration only. To
10828
+ # understand the effective public access behavior, you must also
10829
+ # consider account-level settings (which may inherit from
10830
+ # organization-level policies). To use this operation, you must have the
10009
10831
  # `s3:GetBucketPublicAccessBlock` permission. For more information about
10010
10832
  # Amazon S3 permissions, see [Specifying Permissions in a Policy][1].
10011
10833
  #
10012
10834
  # When Amazon S3 evaluates the `PublicAccessBlock` configuration for a
10013
10835
  # bucket or an object, it checks the `PublicAccessBlock` configuration
10014
10836
  # for both the bucket (or the bucket that contains the object) and the
10015
- # bucket owner's account. If the `PublicAccessBlock` settings are
10016
- # different between the bucket and the account, Amazon S3 uses the most
10017
- # restrictive combination of the bucket-level and account-level
10018
- # settings.
10837
+ # bucket owner's account. Account-level settings automatically inherit
10838
+ # from organization-level policies when present. If the
10839
+ # `PublicAccessBlock` settings are different between the bucket and the
10840
+ # account, Amazon S3 uses the most restrictive combination of the
10841
+ # bucket-level and account-level settings.
10019
10842
  #
10020
10843
  # For more information about when Amazon S3 considers a bucket or an
10021
10844
  # object public, see [The Meaning of "Public"][2].
@@ -10030,6 +10853,10 @@ module Aws::S3
10030
10853
  #
10031
10854
  # * [DeletePublicAccessBlock][6]
10032
10855
  #
10856
+ # You must URL encode any signed header values that contain spaces. For
10857
+ # example, if your header value is `my file.txt`, containing two spaces
10858
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
10859
+ #
10033
10860
  #
10034
10861
  #
10035
10862
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
@@ -10076,13 +10903,19 @@ module Aws::S3
10076
10903
  end
10077
10904
 
10078
10905
  # You can use this operation to determine if a bucket exists and if you
10079
- # have permission to access it. The action returns a `200 OK` if the
10080
- # bucket exists and you have permission to access it.
10081
- #
10082
- # <note markdown="1"> If the bucket does not exist or you do not have permission to access
10906
+ # have permission to access it. The action returns a `200 OK` HTTP
10907
+ # status code if the bucket exists and you have permission to access it.
10908
+ # You can make a `HeadBucket` call on any bucket name to any Region in
10909
+ # the partition, and regardless of the permissions on the bucket, you
10910
+ # will receive a response header with the correct bucket location so
10911
+ # that you can then make a proper, signed request to the appropriate
10912
+ # Regional endpoint.
10913
+ #
10914
+ # <note markdown="1"> If the bucket doesn't exist or you don't have permission to access
10083
10915
  # it, the `HEAD` request returns a generic `400 Bad Request`, `403
10084
- # Forbidden` or `404 Not Found` code. A message body is not included, so
10085
- # you cannot determine the exception beyond these HTTP response codes.
10916
+ # Forbidden`, or `404 Not Found` HTTP status code. A message body isn't
10917
+ # included, so you can't determine the exception beyond these HTTP
10918
+ # response codes.
10086
10919
  #
10087
10920
  # </note>
10088
10921
  #
@@ -10145,6 +10978,10 @@ module Aws::S3
10145
10978
  #
10146
10979
  # </note>
10147
10980
  #
10981
+ # You must URL encode any signed header values that contain spaces. For
10982
+ # example, if your header value is `my file.txt`, containing two spaces
10983
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
10984
+ #
10148
10985
  #
10149
10986
  #
10150
10987
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
@@ -10214,6 +11051,7 @@ module Aws::S3
10214
11051
  #
10215
11052
  # @return [Types::HeadBucketOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
10216
11053
  #
11054
+ # * {Types::HeadBucketOutput#bucket_arn #bucket_arn} => String
10217
11055
  # * {Types::HeadBucketOutput#bucket_location_type #bucket_location_type} => String
10218
11056
  # * {Types::HeadBucketOutput#bucket_location_name #bucket_location_name} => String
10219
11057
  # * {Types::HeadBucketOutput#bucket_region #bucket_region} => String
@@ -10237,6 +11075,7 @@ module Aws::S3
10237
11075
  #
10238
11076
  # @example Response structure
10239
11077
  #
11078
+ # resp.bucket_arn #=> String
10240
11079
  # resp.bucket_location_type #=> String, one of "AvailabilityZone", "LocalZone"
10241
11080
  # resp.bucket_location_name #=> String
10242
11081
  # resp.bucket_region #=> String
@@ -10403,6 +11242,10 @@ module Aws::S3
10403
11242
  #
10404
11243
  # * [GetObjectAttributes][9]
10405
11244
  #
11245
+ # You must URL encode any signed header values that contain spaces. For
11246
+ # example, if your header value is `my file.txt`, containing two spaces
11247
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
11248
+ #
10406
11249
  #
10407
11250
  #
10408
11251
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTCommonRequestHeaders.html
@@ -10682,6 +11525,7 @@ module Aws::S3
10682
11525
  # * {Types::HeadObjectOutput#request_charged #request_charged} => String
10683
11526
  # * {Types::HeadObjectOutput#replication_status #replication_status} => String
10684
11527
  # * {Types::HeadObjectOutput#parts_count #parts_count} => Integer
11528
+ # * {Types::HeadObjectOutput#tag_count #tag_count} => Integer
10685
11529
  # * {Types::HeadObjectOutput#object_lock_mode #object_lock_mode} => String
10686
11530
  # * {Types::HeadObjectOutput#object_lock_retain_until_date #object_lock_retain_until_date} => Time
10687
11531
  # * {Types::HeadObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String
@@ -10761,17 +11605,18 @@ module Aws::S3
10761
11605
  # resp.expires #=> Time
10762
11606
  # resp.expires_string #=> String
10763
11607
  # resp.website_redirect_location #=> String
10764
- # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse"
11608
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
10765
11609
  # resp.metadata #=> Hash
10766
11610
  # resp.metadata["MetadataKey"] #=> String
10767
11611
  # resp.sse_customer_algorithm #=> String
10768
11612
  # resp.sse_customer_key_md5 #=> String
10769
11613
  # resp.ssekms_key_id #=> String
10770
11614
  # resp.bucket_key_enabled #=> Boolean
10771
- # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE"
11615
+ # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP"
10772
11616
  # resp.request_charged #=> String, one of "requester"
10773
11617
  # resp.replication_status #=> String, one of "COMPLETE", "PENDING", "FAILED", "REPLICA", "COMPLETED"
10774
11618
  # resp.parts_count #=> Integer
11619
+ # resp.tag_count #=> Integer
10775
11620
  # resp.object_lock_mode #=> String, one of "GOVERNANCE", "COMPLIANCE"
10776
11621
  # resp.object_lock_retain_until_date #=> Time
10777
11622
  # resp.object_lock_legal_hold_status #=> String, one of "ON", "OFF"
@@ -10826,6 +11671,10 @@ module Aws::S3
10826
11671
  #
10827
11672
  # * [PutBucketAnalyticsConfiguration][6]
10828
11673
  #
11674
+ # You must URL encode any signed header values that contain spaces. For
11675
+ # example, if your header value is `my file.txt`, containing two spaces
11676
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
11677
+ #
10829
11678
  #
10830
11679
  #
10831
11680
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
@@ -10927,6 +11776,10 @@ module Aws::S3
10927
11776
  #
10928
11777
  # * [GetBucketIntelligentTieringConfiguration][4]
10929
11778
  #
11779
+ # You must URL encode any signed header values that contain spaces. For
11780
+ # example, if your header value is `my file.txt`, containing two spaces
11781
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
11782
+ #
10930
11783
  #
10931
11784
  #
10932
11785
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access
@@ -10942,6 +11795,11 @@ module Aws::S3
10942
11795
  # The `ContinuationToken` that represents a placeholder from where this
10943
11796
  # request should begin.
10944
11797
  #
11798
+ # @option params [String] :expected_bucket_owner
11799
+ # The account ID of the expected bucket owner. If the account ID that
11800
+ # you provide does not match the actual owner of the bucket, the request
11801
+ # fails with the HTTP status code `403 Forbidden` (access denied).
11802
+ #
10945
11803
  # @return [Types::ListBucketIntelligentTieringConfigurationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
10946
11804
  #
10947
11805
  # * {Types::ListBucketIntelligentTieringConfigurationsOutput#is_truncated #is_truncated} => Boolean
@@ -10954,6 +11812,7 @@ module Aws::S3
10954
11812
  # resp = client.list_bucket_intelligent_tiering_configurations({
10955
11813
  # bucket: "BucketName", # required
10956
11814
  # continuation_token: "Token",
11815
+ # expected_bucket_owner: "AccountId",
10957
11816
  # })
10958
11817
  #
10959
11818
  # @example Response structure
@@ -10988,8 +11847,8 @@ module Aws::S3
10988
11847
  #
10989
11848
  # </note>
10990
11849
  #
10991
- # Returns a list of inventory configurations for the bucket. You can
10992
- # have up to 1,000 analytics configurations per bucket.
11850
+ # Returns a list of S3 Inventory configurations for the bucket. You can
11851
+ # have up to 1,000 inventory configurations per bucket.
10993
11852
  #
10994
11853
  # This action supports list pagination and does not return more than 100
10995
11854
  # configurations at a time. Always check the `IsTruncated` element in
@@ -11019,6 +11878,10 @@ module Aws::S3
11019
11878
  #
11020
11879
  # * [PutBucketInventoryConfiguration][6]
11021
11880
  #
11881
+ # You must URL encode any signed header values that contain spaces. For
11882
+ # example, if your header value is `my file.txt`, containing two spaces
11883
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
11884
+ #
11022
11885
  #
11023
11886
  #
11024
11887
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
@@ -11072,7 +11935,7 @@ module Aws::S3
11072
11935
  # resp.inventory_configuration_list[0].id #=> String
11073
11936
  # resp.inventory_configuration_list[0].included_object_versions #=> String, one of "All", "Current"
11074
11937
  # resp.inventory_configuration_list[0].optional_fields #=> Array
11075
- # resp.inventory_configuration_list[0].optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus", "ObjectLockRetainUntilDate", "ObjectLockMode", "ObjectLockLegalHoldStatus", "IntelligentTieringAccessTier", "BucketKeyStatus", "ChecksumAlgorithm", "ObjectAccessControlList", "ObjectOwner"
11938
+ # resp.inventory_configuration_list[0].optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus", "ObjectLockRetainUntilDate", "ObjectLockMode", "ObjectLockLegalHoldStatus", "IntelligentTieringAccessTier", "BucketKeyStatus", "ChecksumAlgorithm", "ObjectAccessControlList", "ObjectOwner", "LifecycleExpirationDate"
11076
11939
  # resp.inventory_configuration_list[0].schedule.frequency #=> String, one of "Daily", "Weekly"
11077
11940
  # resp.is_truncated #=> Boolean
11078
11941
  # resp.next_continuation_token #=> String
@@ -11123,6 +11986,10 @@ module Aws::S3
11123
11986
  #
11124
11987
  # * [DeleteBucketMetricsConfiguration][6]
11125
11988
  #
11989
+ # You must URL encode any signed header values that contain spaces. For
11990
+ # example, if your header value is `my file.txt`, containing two spaces
11991
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
11992
+ #
11126
11993
  #
11127
11994
  #
11128
11995
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
@@ -11208,6 +12075,10 @@ module Aws::S3
11208
12075
  # rejected for Amazon Web Services accounts with a general purpose
11209
12076
  # bucket quota greater than 10,000.
11210
12077
  #
12078
+ # You must URL encode any signed header values that contain spaces. For
12079
+ # example, if your header value is `my file.txt`, containing two spaces
12080
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
12081
+ #
11211
12082
  #
11212
12083
  #
11213
12084
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-buckets-s3.html
@@ -11312,6 +12183,7 @@ module Aws::S3
11312
12183
  # resp.buckets[0].name #=> String
11313
12184
  # resp.buckets[0].creation_date #=> Time
11314
12185
  # resp.buckets[0].bucket_region #=> String
12186
+ # resp.buckets[0].bucket_arn #=> String
11315
12187
  # resp.owner.display_name #=> String
11316
12188
  # resp.owner.id #=> String
11317
12189
  # resp.continuation_token #=> String
@@ -11365,6 +12237,10 @@ module Aws::S3
11365
12237
  #
11366
12238
  # </note>
11367
12239
  #
12240
+ # You must URL encode any signed header values that contain spaces. For
12241
+ # example, if your header value is `my file.txt`, containing two spaces
12242
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
12243
+ #
11368
12244
  #
11369
12245
  #
11370
12246
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-overview.html
@@ -11403,6 +12279,7 @@ module Aws::S3
11403
12279
  # resp.buckets[0].name #=> String
11404
12280
  # resp.buckets[0].creation_date #=> Time
11405
12281
  # resp.buckets[0].bucket_region #=> String
12282
+ # resp.buckets[0].bucket_arn #=> String
11406
12283
  # resp.continuation_token #=> String
11407
12284
  #
11408
12285
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListDirectoryBuckets AWS API Documentation
@@ -11522,6 +12399,10 @@ module Aws::S3
11522
12399
  #
11523
12400
  # * [AbortMultipartUpload][10]
11524
12401
  #
12402
+ # You must URL encode any signed header values that contain spaces. For
12403
+ # example, if your header value is `my file.txt`, containing two spaces
12404
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
12405
+ #
11525
12406
  #
11526
12407
  #
11527
12408
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/uploadobjusingmpu.html
@@ -11590,6 +12471,9 @@ module Aws::S3
11590
12471
  # beginning of the key. The keys that are grouped under `CommonPrefixes`
11591
12472
  # result element are not returned elsewhere in the response.
11592
12473
  #
12474
+ # `CommonPrefixes` is filtered out from results if it is not
12475
+ # lexicographically greater than the key-marker.
12476
+ #
11593
12477
  # <note markdown="1"> **Directory buckets** - For directory buckets, `/` is the only
11594
12478
  # supported delimiter.
11595
12479
  #
@@ -11839,7 +12723,7 @@ module Aws::S3
11839
12723
  # resp.uploads[0].upload_id #=> String
11840
12724
  # resp.uploads[0].key #=> String
11841
12725
  # resp.uploads[0].initiated #=> Time
11842
- # resp.uploads[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE"
12726
+ # resp.uploads[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP"
11843
12727
  # resp.uploads[0].owner.display_name #=> String
11844
12728
  # resp.uploads[0].owner.id #=> String
11845
12729
  # resp.uploads[0].initiator.id #=> String
@@ -11889,6 +12773,10 @@ module Aws::S3
11889
12773
  #
11890
12774
  # * [DeleteObject][4]
11891
12775
  #
12776
+ # You must URL encode any signed header values that contain spaces. For
12777
+ # example, if your header value is `my file.txt`, containing two spaces
12778
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
12779
+ #
11892
12780
  #
11893
12781
  #
11894
12782
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html
@@ -11907,6 +12795,9 @@ module Aws::S3
11907
12795
  # the `max-keys` limitation. These keys are not returned elsewhere in
11908
12796
  # the response.
11909
12797
  #
12798
+ # `CommonPrefixes` is filtered out from results if it is not
12799
+ # lexicographically greater than the key-marker.
12800
+ #
11910
12801
  # @option params [String] :encoding_type
11911
12802
  # Encoding type used by Amazon S3 to encode the [object keys][1] in the
11912
12803
  # response. Responses are encoded only in UTF-8. An object key can
@@ -12126,6 +13017,10 @@ module Aws::S3
12126
13017
  #
12127
13018
  # * [ListBuckets][5]
12128
13019
  #
13020
+ # You must URL encode any signed header values that contain spaces. For
13021
+ # example, if your header value is `my file.txt`, containing two spaces
13022
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
13023
+ #
12129
13024
  #
12130
13025
  #
12131
13026
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html
@@ -12182,6 +13077,9 @@ module Aws::S3
12182
13077
  # @option params [String] :delimiter
12183
13078
  # A delimiter is a character that you use to group keys.
12184
13079
  #
13080
+ # `CommonPrefixes` is filtered out from results if it is not
13081
+ # lexicographically greater than the key-marker.
13082
+ #
12185
13083
  # @option params [String] :encoding_type
12186
13084
  # Encoding type used by Amazon S3 to encode the [object keys][1] in the
12187
13085
  # response. Responses are encoded only in UTF-8. An object key can
@@ -12313,7 +13211,7 @@ module Aws::S3
12313
13211
  # resp.contents[0].checksum_algorithm[0] #=> String, one of "CRC32", "CRC32C", "SHA1", "SHA256", "CRC64NVME"
12314
13212
  # resp.contents[0].checksum_type #=> String, one of "COMPOSITE", "FULL_OBJECT"
12315
13213
  # resp.contents[0].size #=> Integer
12316
- # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE"
13214
+ # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP"
12317
13215
  # resp.contents[0].owner.display_name #=> String
12318
13216
  # resp.contents[0].owner.id #=> String
12319
13217
  # resp.contents[0].restore_status.is_restore_in_progress #=> Boolean
@@ -12416,6 +13314,10 @@ module Aws::S3
12416
13314
  #
12417
13315
  # * [CreateBucket][11]
12418
13316
  #
13317
+ # You must URL encode any signed header values that contain spaces. For
13318
+ # example, if your header value is `my file.txt`, containing two spaces
13319
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
13320
+ #
12419
13321
  #
12420
13322
  #
12421
13323
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ListingKeysUsingAPIs.html
@@ -12476,6 +13378,9 @@ module Aws::S3
12476
13378
  # @option params [String] :delimiter
12477
13379
  # A delimiter is a character that you use to group keys.
12478
13380
  #
13381
+ # `CommonPrefixes` is filtered out from results if it is not
13382
+ # lexicographically greater than the `StartAfter` value.
13383
+ #
12479
13384
  # <note markdown="1"> * **Directory buckets** - For directory buckets, `/` is the only
12480
13385
  # supported delimiter.
12481
13386
  #
@@ -12656,7 +13561,7 @@ module Aws::S3
12656
13561
  # resp.contents[0].checksum_algorithm[0] #=> String, one of "CRC32", "CRC32C", "SHA1", "SHA256", "CRC64NVME"
12657
13562
  # resp.contents[0].checksum_type #=> String, one of "COMPOSITE", "FULL_OBJECT"
12658
13563
  # resp.contents[0].size #=> Integer
12659
- # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE"
13564
+ # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP"
12660
13565
  # resp.contents[0].owner.display_name #=> String
12661
13566
  # resp.contents[0].owner.id #=> String
12662
13567
  # resp.contents[0].restore_status.is_restore_in_progress #=> Boolean
@@ -12762,6 +13667,10 @@ module Aws::S3
12762
13667
  #
12763
13668
  # * [ListMultipartUploads][11]
12764
13669
  #
13670
+ # You must URL encode any signed header values that contain spaces. For
13671
+ # example, if your header value is `my file.txt`, containing two spaces
13672
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
13673
+ #
12765
13674
  #
12766
13675
  #
12767
13676
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
@@ -12998,7 +13907,7 @@ module Aws::S3
12998
13907
  # resp.initiator.display_name #=> String
12999
13908
  # resp.owner.display_name #=> String
13000
13909
  # resp.owner.id #=> String
13001
- # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE"
13910
+ # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP"
13002
13911
  # resp.request_charged #=> String, one of "requester"
13003
13912
  # resp.checksum_algorithm #=> String, one of "CRC32", "CRC32C", "SHA1", "SHA256", "CRC64NVME"
13004
13913
  # resp.checksum_type #=> String, one of "COMPOSITE", "FULL_OBJECT"
@@ -13012,6 +13921,81 @@ module Aws::S3
13012
13921
  req.send_request(options)
13013
13922
  end
13014
13923
 
13924
+ # Sets the attribute-based access control (ABAC) property of the general
13925
+ # purpose bucket. You must have `s3:PutBucketABAC` permission to perform
13926
+ # this action. When you enable ABAC, you can use tags for access control
13927
+ # on your buckets. Additionally, when ABAC is enabled, you must use the
13928
+ # [TagResource][1] and [UntagResource][2] actions to manage tags on your
13929
+ # buckets. You can nolonger use the [PutBucketTagging][3] and
13930
+ # [DeleteBucketTagging][4] actions to tag your bucket. For more
13931
+ # information, see [Enabling ABAC in general purpose buckets][5].
13932
+ #
13933
+ #
13934
+ #
13935
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html
13936
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html
13937
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketTagging.html
13938
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html
13939
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html
13940
+ #
13941
+ # @option params [required, String] :bucket
13942
+ # The name of the general purpose bucket.
13943
+ #
13944
+ # @option params [String] :content_md5
13945
+ # The MD5 hash of the `PutBucketAbac` request body.
13946
+ #
13947
+ # For requests made using the Amazon Web Services Command Line Interface
13948
+ # (CLI) or Amazon Web Services SDKs, this field is calculated
13949
+ # automatically.
13950
+ #
13951
+ # @option params [String] :checksum_algorithm
13952
+ # Indicates the algorithm that you want Amazon S3 to use to create the
13953
+ # checksum. For more information, see [ Checking object integrity][1] in
13954
+ # the *Amazon S3 User Guide*.
13955
+ #
13956
+ #
13957
+ #
13958
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
13959
+ #
13960
+ # @option params [String] :expected_bucket_owner
13961
+ # The Amazon Web Services account ID of the general purpose bucket's
13962
+ # owner.
13963
+ #
13964
+ # @option params [required, Types::AbacStatus] :abac_status
13965
+ # The ABAC status of the general purpose bucket. When ABAC is enabled
13966
+ # for the general purpose bucket, you can use tags to manage access to
13967
+ # the general purpose buckets as well as for cost tracking purposes.
13968
+ # When ABAC is disabled for the general purpose buckets, you can only
13969
+ # use tags for cost tracking purposes. For more information, see [Using
13970
+ # tags with S3 general purpose buckets][1].
13971
+ #
13972
+ #
13973
+ #
13974
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging.html
13975
+ #
13976
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
13977
+ #
13978
+ # @example Request syntax with placeholder values
13979
+ #
13980
+ # resp = client.put_bucket_abac({
13981
+ # bucket: "BucketName", # required
13982
+ # content_md5: "ContentMD5",
13983
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
13984
+ # expected_bucket_owner: "AccountId",
13985
+ # abac_status: { # required
13986
+ # status: "Enabled", # accepts Enabled, Disabled
13987
+ # },
13988
+ # })
13989
+ #
13990
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAbac AWS API Documentation
13991
+ #
13992
+ # @overload put_bucket_abac(params = {})
13993
+ # @param [Hash] params ({})
13994
+ def put_bucket_abac(params = {}, options = {})
13995
+ req = build_request(:put_bucket_abac, params)
13996
+ req.send_request(options)
13997
+ end
13998
+
13015
13999
  # <note markdown="1"> This operation is not supported for directory buckets.
13016
14000
  #
13017
14001
  # </note>
@@ -13054,6 +14038,10 @@ module Aws::S3
13054
14038
  #
13055
14039
  # * [CreateBucket][5]
13056
14040
  #
14041
+ # You must URL encode any signed header values that contain spaces. For
14042
+ # example, if your header value is `my file.txt`, containing two spaces
14043
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
14044
+ #
13057
14045
  #
13058
14046
  #
13059
14047
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
@@ -13111,6 +14099,18 @@ module Aws::S3
13111
14099
  req.send_request(options)
13112
14100
  end
13113
14101
 
14102
+ # End of support notice: As of October 1, 2025, Amazon S3 has
14103
+ # discontinued support for Email Grantee Access Control Lists (ACLs). If
14104
+ # you attempt to use an Email Grantee ACL in a request after October 1,
14105
+ # 2025, the request will receive an `HTTP 405` (Method Not Allowed)
14106
+ # error.
14107
+ #
14108
+ # This change affects the following Amazon Web Services Regions: US
14109
+ # East
14110
+ # (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific
14111
+ # (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Europe
14112
+ # (Ireland), and South America (São Paulo).
14113
+ #
13114
14114
  # <note markdown="1"> This operation is not supported for directory buckets.
13115
14115
  #
13116
14116
  # </note>
@@ -13217,7 +14217,10 @@ module Aws::S3
13217
14217
  # Grantee Values
13218
14218
  #
13219
14219
  # : You can specify the person (grantee) to whom you're assigning
13220
- # access rights (using request elements) in the following ways:
14220
+ # access rights (using request elements) in the following ways. For
14221
+ # examples of how to specify these grantee values in JSON format, see
14222
+ # the Amazon Web Services CLI example in [ Enabling Amazon S3 server
14223
+ # access logging][6] in the *Amazon S3 User Guide*.
13221
14224
  #
13222
14225
  # * By the person's ID:
13223
14226
  #
@@ -13267,11 +14270,15 @@ module Aws::S3
13267
14270
  #
13268
14271
  # The following operations are related to `PutBucketAcl`:
13269
14272
  #
13270
- # * [CreateBucket][6]
14273
+ # * [CreateBucket][7]
14274
+ #
14275
+ # * [DeleteBucket][8]
13271
14276
  #
13272
- # * [DeleteBucket][7]
14277
+ # * [GetObjectAcl][9]
13273
14278
  #
13274
- # * [GetObjectAcl][8]
14279
+ # You must URL encode any signed header values that contain spaces. For
14280
+ # example, if your header value is `my file.txt`, containing two spaces
14281
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
13275
14282
  #
13276
14283
  #
13277
14284
  #
@@ -13280,9 +14287,10 @@ module Aws::S3
13280
14287
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
13281
14288
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html
13282
14289
  # [5]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
13283
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html
13284
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html
13285
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html
14290
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html
14291
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html
14292
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html
14293
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAcl.html
13286
14294
  #
13287
14295
  # @option params [String] :acl
13288
14296
  # The canned ACL to apply to the bucket.
@@ -13466,6 +14474,10 @@ module Aws::S3
13466
14474
  #
13467
14475
  # * [ListBucketAnalyticsConfigurations][7]
13468
14476
  #
14477
+ # You must URL encode any signed header values that contain spaces. For
14478
+ # example, if your header value is `my file.txt`, containing two spaces
14479
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
14480
+ #
13469
14481
  #
13470
14482
  #
13471
14483
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html
@@ -13591,6 +14603,10 @@ module Aws::S3
13591
14603
  #
13592
14604
  # * [RESTOPTIONSobject][4]
13593
14605
  #
14606
+ # You must URL encode any signed header values that contain spaces. For
14607
+ # example, if your header value is `my file.txt`, containing two spaces
14608
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
14609
+ #
13594
14610
  #
13595
14611
  #
13596
14612
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html
@@ -13722,7 +14738,8 @@ module Aws::S3
13722
14738
  end
13723
14739
 
13724
14740
  # This operation configures default encryption and Amazon S3 Bucket Keys
13725
- # for an existing bucket.
14741
+ # for an existing bucket. You can also [block encryption types][1] using
14742
+ # this operation.
13726
14743
  #
13727
14744
  # <note markdown="1"> <b>Directory buckets </b> - For directory buckets, you must make
13728
14745
  # requests for this API operation to the Regional endpoint. These
@@ -13730,9 +14747,9 @@ module Aws::S3
13730
14747
  # `https://s3express-control.region-code.amazonaws.com/bucket-name `.
13731
14748
  # Virtual-hosted-style requests aren't supported. For more information
13732
14749
  # about endpoints in Availability Zones, see [Regional and Zonal
13733
- # endpoints for directory buckets in Availability Zones][1] in the
14750
+ # endpoints for directory buckets in Availability Zones][2] in the
13734
14751
  # *Amazon S3 User Guide*. For more information about endpoints in Local
13735
- # Zones, see [Concepts for directory buckets in Local Zones][2] in the
14752
+ # Zones, see [Concepts for directory buckets in Local Zones][3] in the
13736
14753
  # *Amazon S3 User Guide*.
13737
14754
  #
13738
14755
  # </note>
@@ -13747,12 +14764,12 @@ module Aws::S3
13747
14764
  # keys (SSE-KMS) or dual-layer server-side encryption with Amazon
13748
14765
  # Web Services KMS keys (DSSE-KMS). If you specify default
13749
14766
  # encryption by using SSE-KMS, you can also configure [Amazon S3
13750
- # Bucket Keys][3]. For information about the bucket default
13751
- # encryption feature, see [Amazon S3 Bucket Default Encryption][4]
14767
+ # Bucket Keys][4]. For information about the bucket default
14768
+ # encryption feature, see [Amazon S3 Bucket Default Encryption][5]
13752
14769
  # in the *Amazon S3 User Guide*.
13753
14770
  #
13754
14771
  # * If you use PutBucketEncryption to set your [default bucket
13755
- # encryption][4] to SSE-KMS, you should verify that your KMS key ID
14772
+ # encryption][5] to SSE-KMS, you should verify that your KMS key ID
13756
14773
  # is correct. Amazon S3 doesn't validate the KMS key ID provided in
13757
14774
  # PutBucketEncryption requests.
13758
14775
  # * <b>Directory buckets </b> - You can optionally configure default
@@ -13766,28 +14783,28 @@ module Aws::S3
13766
14783
  # encrypted with the desired encryption settings. For more
13767
14784
  # information about the encryption overriding behaviors in directory
13768
14785
  # buckets, see [Specifying server-side encryption with KMS for new
13769
- # object uploads][5].
14786
+ # object uploads][6].
13770
14787
  #
13771
14788
  # * Your SSE-KMS configuration can only support 1 [customer managed
13772
- # key][6] per directory bucket's lifetime. The [Amazon Web Services
13773
- # managed key][7] (`aws/s3`) isn't supported.
14789
+ # key][7] per directory bucket's lifetime. The [Amazon Web Services
14790
+ # managed key][8] (`aws/s3`) isn't supported.
13774
14791
  #
13775
14792
  # * S3 Bucket Keys are always enabled for `GET` and `PUT` operations
13776
14793
  # in a directory bucket and can’t be disabled. S3 Bucket Keys
13777
14794
  # aren't supported, when you copy SSE-KMS encrypted objects from
13778
14795
  # general purpose buckets to directory buckets, from directory
13779
14796
  # buckets to general purpose buckets, or between directory buckets,
13780
- # through [CopyObject][8], [UploadPartCopy][9], [the Copy operation
13781
- # in Batch Operations][10], or [the import jobs][11]. In this case,
14797
+ # through [CopyObject][9], [UploadPartCopy][10], [the Copy operation
14798
+ # in Batch Operations][11], or [the import jobs][12]. In this case,
13782
14799
  # Amazon S3 makes a call to KMS every time a copy request is made
13783
14800
  # for a KMS-encrypted object.
13784
14801
  #
13785
- # * When you specify an [KMS customer managed key][6] for encryption
14802
+ # * When you specify an [KMS customer managed key][7] for encryption
13786
14803
  # in your directory bucket, only use the key ID or key ARN. The key
13787
14804
  # alias format of the KMS key isn't supported.
13788
14805
  #
13789
14806
  # * For directory buckets, if you use PutBucketEncryption to set your
13790
- # [default bucket encryption][4] to SSE-KMS, Amazon S3 validates the
14807
+ # [default bucket encryption][5] to SSE-KMS, Amazon S3 validates the
13791
14808
  # KMS key ID provided in PutBucketEncryption requests.
13792
14809
  #
13793
14810
  # </note>
@@ -13800,7 +14817,7 @@ module Aws::S3
13800
14817
  #
13801
14818
  # Also, this action requires Amazon Web Services Signature Version 4.
13802
14819
  # For more information, see [ Authenticating Requests (Amazon Web
13803
- # Services Signature Version 4)][12].
14820
+ # Services Signature Version 4)][13].
13804
14821
  #
13805
14822
  # Permissions
13806
14823
  # : * **General purpose bucket permissions** - The
@@ -13808,8 +14825,8 @@ module Aws::S3
13808
14825
  # policy. The bucket owner has this permission by default. The
13809
14826
  # bucket owner can grant this permission to others. For more
13810
14827
  # information about permissions, see [Permissions Related to Bucket
13811
- # Operations][13] and [Managing Access Permissions to Your Amazon S3
13812
- # Resources][14] in the *Amazon S3 User Guide*.
14828
+ # Operations][14] and [Managing Access Permissions to Your Amazon S3
14829
+ # Resources][15] in the *Amazon S3 User Guide*.
13813
14830
  #
13814
14831
  # * **Directory bucket permissions** - To grant access to this API
13815
14832
  # operation, you must have the
@@ -13819,7 +14836,7 @@ module Aws::S3
13819
14836
  # only be performed by the Amazon Web Services account that owns the
13820
14837
  # resource. For more information about directory bucket policies and
13821
14838
  # permissions, see [Amazon Web Services Identity and Access
13822
- # Management (IAM) for S3 Express One Zone][15] in the *Amazon S3
14839
+ # Management (IAM) for S3 Express One Zone][16] in the *Amazon S3
13823
14840
  # User Guide*.
13824
14841
  #
13825
14842
  # To set a directory bucket default encryption with SSE-KMS, you
@@ -13834,29 +14851,34 @@ module Aws::S3
13834
14851
  #
13835
14852
  # The following operations are related to `PutBucketEncryption`:
13836
14853
  #
13837
- # * [GetBucketEncryption][16]
14854
+ # * [GetBucketEncryption][17]
13838
14855
  #
13839
- # * [DeleteBucketEncryption][17]
14856
+ # * [DeleteBucketEncryption][18]
13840
14857
  #
14858
+ # You must URL encode any signed header values that contain spaces. For
14859
+ # example, if your header value is `my file.txt`, containing two spaces
14860
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
13841
14861
  #
13842
14862
  #
13843
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html
13844
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html
13845
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html
13846
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html
13847
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
13848
- # [6]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
13849
- # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
13850
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
13851
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
13852
- # [10]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
13853
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
13854
- # [12]: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html
13855
- # [13]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
13856
- # [14]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
13857
- # [15]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html
13858
- # [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html
13859
- # [17]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html
14863
+ #
14864
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_BlockedEncryptionTypes.html
14865
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html
14866
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-lzs-for-directory-buckets.html
14867
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html
14868
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html
14869
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html
14870
+ # [7]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk
14871
+ # [8]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk
14872
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
14873
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
14874
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-objects-Batch-Ops
14875
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
14876
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html
14877
+ # [14]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
14878
+ # [15]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
14879
+ # [16]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam.html
14880
+ # [17]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html
14881
+ # [18]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html
13860
14882
  #
13861
14883
  # @option params [required, String] :bucket
13862
14884
  # Specifies default encryption for a bucket using server-side encryption
@@ -13936,10 +14958,13 @@ module Aws::S3
13936
14958
  # rules: [ # required
13937
14959
  # {
13938
14960
  # apply_server_side_encryption_by_default: {
13939
- # sse_algorithm: "AES256", # required, accepts AES256, aws:kms, aws:kms:dsse
14961
+ # sse_algorithm: "AES256", # required, accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
13940
14962
  # kms_master_key_id: "SSEKMSKeyId",
13941
14963
  # },
13942
14964
  # bucket_key_enabled: false,
14965
+ # blocked_encryption_types: {
14966
+ # encryption_type: ["NONE"], # accepts NONE, SSE-C
14967
+ # },
13943
14968
  # },
13944
14969
  # ],
13945
14970
  # },
@@ -14019,6 +15044,10 @@ module Aws::S3
14019
15044
  # not have the `s3:PutIntelligentTieringConfiguration` bucket
14020
15045
  # permission to set the configuration on the bucket.
14021
15046
  #
15047
+ # You must URL encode any signed header values that contain spaces. For
15048
+ # example, if your header value is `my file.txt`, containing two spaces
15049
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
15050
+ #
14022
15051
  #
14023
15052
  #
14024
15053
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access
@@ -14033,6 +15062,11 @@ module Aws::S3
14033
15062
  # @option params [required, String] :id
14034
15063
  # The ID used to identify the S3 Intelligent-Tiering configuration.
14035
15064
  #
15065
+ # @option params [String] :expected_bucket_owner
15066
+ # The account ID of the expected bucket owner. If the account ID that
15067
+ # you provide does not match the actual owner of the bucket, the request
15068
+ # fails with the HTTP status code `403 Forbidden` (access denied).
15069
+ #
14036
15070
  # @option params [required, Types::IntelligentTieringConfiguration] :intelligent_tiering_configuration
14037
15071
  # Container for S3 Intelligent-Tiering configuration.
14038
15072
  #
@@ -14043,6 +15077,7 @@ module Aws::S3
14043
15077
  # resp = client.put_bucket_intelligent_tiering_configuration({
14044
15078
  # bucket: "BucketName", # required
14045
15079
  # id: "IntelligentTieringId", # required
15080
+ # expected_bucket_owner: "AccountId",
14046
15081
  # intelligent_tiering_configuration: { # required
14047
15082
  # id: "IntelligentTieringId", # required
14048
15083
  # filter: {
@@ -14084,7 +15119,7 @@ module Aws::S3
14084
15119
  #
14085
15120
  # </note>
14086
15121
  #
14087
- # This implementation of the `PUT` action adds an inventory
15122
+ # This implementation of the `PUT` action adds an S3 Inventory
14088
15123
  # configuration (identified by the inventory ID) to the bucket. You can
14089
15124
  # have up to 1,000 inventory configurations per bucket.
14090
15125
  #
@@ -14158,6 +15193,10 @@ module Aws::S3
14158
15193
  #
14159
15194
  # * [ListBucketInventoryConfigurations][10]
14160
15195
  #
15196
+ # You must URL encode any signed header values that contain spaces. For
15197
+ # example, if your header value is `my file.txt`, containing two spaces
15198
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
15199
+ #
14161
15200
  #
14162
15201
  #
14163
15202
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html
@@ -14215,7 +15254,7 @@ module Aws::S3
14215
15254
  # },
14216
15255
  # id: "InventoryId", # required
14217
15256
  # included_object_versions: "All", # required, accepts All, Current
14218
- # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus, ObjectLockRetainUntilDate, ObjectLockMode, ObjectLockLegalHoldStatus, IntelligentTieringAccessTier, BucketKeyStatus, ChecksumAlgorithm, ObjectAccessControlList, ObjectOwner
15257
+ # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus, ObjectLockRetainUntilDate, ObjectLockMode, ObjectLockLegalHoldStatus, IntelligentTieringAccessTier, BucketKeyStatus, ChecksumAlgorithm, ObjectAccessControlList, ObjectOwner, LifecycleExpirationDate
14219
15258
  # schedule: { # required
14220
15259
  # frequency: "Daily", # required, accepts Daily, Weekly
14221
15260
  # },
@@ -14295,6 +15334,10 @@ module Aws::S3
14295
15334
  #
14296
15335
  # * [Managing Access Permissions to your Amazon S3 Resources][3]
14297
15336
  #
15337
+ # You must URL encode any signed header values that contain spaces. For
15338
+ # example, if your header value is `my file.txt`, containing two spaces
15339
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
15340
+ #
14298
15341
  #
14299
15342
  #
14300
15343
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
@@ -14504,6 +15547,10 @@ module Aws::S3
14504
15547
  #
14505
15548
  # * [DeleteBucketLifecycle][10]
14506
15549
  #
15550
+ # You must URL encode any signed header values that contain spaces. For
15551
+ # example, if your header value is `my file.txt`, containing two spaces
15552
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
15553
+ #
14507
15554
  #
14508
15555
  #
14509
15556
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lifecycle-mgmt.html
@@ -14681,6 +15728,18 @@ module Aws::S3
14681
15728
  req.send_request(options)
14682
15729
  end
14683
15730
 
15731
+ # End of support notice: As of October 1, 2025, Amazon S3 has
15732
+ # discontinued support for Email Grantee Access Control Lists (ACLs). If
15733
+ # you attempt to use an Email Grantee ACL in a request after October 1,
15734
+ # 2025, the request will receive an `HTTP 405` (Method Not Allowed)
15735
+ # error.
15736
+ #
15737
+ # This change affects the following Amazon Web Services Regions: US
15738
+ # East
15739
+ # (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific
15740
+ # (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Europe
15741
+ # (Ireland), and South America (São Paulo).
15742
+ #
14684
15743
  # <note markdown="1"> This operation is not supported for directory buckets.
14685
15744
  #
14686
15745
  # </note>
@@ -14704,7 +15763,10 @@ module Aws::S3
14704
15763
  # Grantee Values
14705
15764
  #
14706
15765
  # : You can specify the person (grantee) to whom you're assigning
14707
- # access rights (by using request elements) in the following ways:
15766
+ # access rights (by using request elements) in the following ways. For
15767
+ # examples of how to specify these grantee values in JSON format, see
15768
+ # the Amazon Web Services CLI example in [ Enabling Amazon S3 server
15769
+ # access logging][2] in the *Amazon S3 User Guide*.
14708
15770
  #
14709
15771
  # * By the person's ID:
14710
15772
  #
@@ -14735,30 +15797,35 @@ module Aws::S3
14735
15797
  # />`
14736
15798
  #
14737
15799
  # For more information about server access logging, see [Server Access
14738
- # Logging][2] in the *Amazon S3 User Guide*.
15800
+ # Logging][3] in the *Amazon S3 User Guide*.
14739
15801
  #
14740
- # For more information about creating a bucket, see [CreateBucket][3].
15802
+ # For more information about creating a bucket, see [CreateBucket][4].
14741
15803
  # For more information about returning the logging status of a bucket,
14742
- # see [GetBucketLogging][4].
15804
+ # see [GetBucketLogging][5].
14743
15805
  #
14744
15806
  # The following operations are related to `PutBucketLogging`:
14745
15807
  #
14746
- # * [PutObject][5]
15808
+ # * [PutObject][6]
14747
15809
  #
14748
- # * [DeleteBucket][6]
15810
+ # * [DeleteBucket][7]
14749
15811
  #
14750
- # * [CreateBucket][3]
15812
+ # * [CreateBucket][4]
15813
+ #
15814
+ # * [GetBucketLogging][5]
14751
15815
  #
14752
- # * [GetBucketLogging][4]
15816
+ # You must URL encode any signed header values that contain spaces. For
15817
+ # example, if your header value is `my file.txt`, containing two spaces
15818
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
14753
15819
  #
14754
15820
  #
14755
15821
  #
14756
15822
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html#grant-log-delivery-permissions-general
14757
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html
14758
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html
14759
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html
14760
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html
14761
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html
15823
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html
15824
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerLogs.html
15825
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html
15826
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLogging.html
15827
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html
15828
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html
14762
15829
  #
14763
15830
  # @option params [required, String] :bucket
14764
15831
  # The name of the bucket for which to set the logging parameters.
@@ -14903,6 +15970,10 @@ module Aws::S3
14903
15970
  #
14904
15971
  # * HTTP Status Code: HTTP 400 Bad Request
14905
15972
  #
15973
+ # You must URL encode any signed header values that contain spaces. For
15974
+ # example, if your header value is `my file.txt`, containing two spaces
15975
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
15976
+ #
14906
15977
  #
14907
15978
  #
14908
15979
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
@@ -15122,6 +16193,10 @@ module Aws::S3
15122
16193
  #
15123
16194
  # ^
15124
16195
  #
16196
+ # You must URL encode any signed header values that contain spaces. For
16197
+ # example, if your header value is `my file.txt`, containing two spaces
16198
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
16199
+ #
15125
16200
  #
15126
16201
  #
15127
16202
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
@@ -15256,6 +16331,10 @@ module Aws::S3
15256
16331
  #
15257
16332
  # * DeleteBucketOwnershipControls
15258
16333
  #
16334
+ # You must URL encode any signed header values that contain spaces. For
16335
+ # example, if your header value is `my file.txt`, containing two spaces
16336
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
16337
+ #
15259
16338
  #
15260
16339
  #
15261
16340
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-with-s3-actions.html
@@ -15281,6 +16360,22 @@ module Aws::S3
15281
16360
  # The `OwnershipControls` (BucketOwnerEnforced, BucketOwnerPreferred, or
15282
16361
  # ObjectWriter) that you want to apply to this Amazon S3 bucket.
15283
16362
  #
16363
+ # @option params [String] :checksum_algorithm
16364
+ # Indicates the algorithm used to create the checksum for the object
16365
+ # when you use the SDK. This header will not provide any additional
16366
+ # functionality if you don't use the SDK. When you send this header,
16367
+ # there must be a corresponding `x-amz-checksum-algorithm ` header sent.
16368
+ # Otherwise, Amazon S3 fails the request with the HTTP status code `400
16369
+ # Bad Request`. For more information, see [Checking object integrity][1]
16370
+ # in the *Amazon S3 User Guide*.
16371
+ #
16372
+ # If you provide an individual checksum, Amazon S3 ignores any provided
16373
+ # `ChecksumAlgorithm` parameter.
16374
+ #
16375
+ #
16376
+ #
16377
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
16378
+ #
15284
16379
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
15285
16380
  #
15286
16381
  # @example Request syntax with placeholder values
@@ -15296,6 +16391,7 @@ module Aws::S3
15296
16391
  # },
15297
16392
  # ],
15298
16393
  # },
16394
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
15299
16395
  # })
15300
16396
  #
15301
16397
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketOwnershipControls AWS API Documentation
@@ -15379,6 +16475,10 @@ module Aws::S3
15379
16475
  #
15380
16476
  # * [DeleteBucket][8]
15381
16477
  #
16478
+ # You must URL encode any signed header values that contain spaces. For
16479
+ # example, if your header value is `my file.txt`, containing two spaces
16480
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
16481
+ #
15382
16482
  #
15383
16483
  #
15384
16484
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html
@@ -15587,6 +16687,10 @@ module Aws::S3
15587
16687
  #
15588
16688
  # * [DeleteBucketReplication][11]
15589
16689
  #
16690
+ # You must URL encode any signed header values that contain spaces. For
16691
+ # example, if your header value is `my file.txt`, containing two spaces
16692
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
16693
+ #
15590
16694
  #
15591
16695
  #
15592
16696
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html
@@ -15713,7 +16817,7 @@ module Aws::S3
15713
16817
  # destination: { # required
15714
16818
  # bucket: "BucketName", # required
15715
16819
  # account: "AccountId",
15716
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
16820
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
15717
16821
  # access_control_translation: {
15718
16822
  # owner: "Destination", # required, accepts Destination
15719
16823
  # },
@@ -15768,6 +16872,10 @@ module Aws::S3
15768
16872
  #
15769
16873
  # * [GetBucketRequestPayment][3]
15770
16874
  #
16875
+ # You must URL encode any signed header values that contain spaces. For
16876
+ # example, if your header value is `my file.txt`, containing two spaces
16877
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
16878
+ #
15771
16879
  #
15772
16880
  #
15773
16881
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html
@@ -15853,7 +16961,11 @@ module Aws::S3
15853
16961
  #
15854
16962
  # </note>
15855
16963
  #
15856
- # Sets the tags for a bucket.
16964
+ # Sets the tags for a general purpose bucket if attribute based access
16965
+ # control (ABAC) is not enabled for the bucket. When you [enable ABAC
16966
+ # for a general purpose bucket][1], you can no longer use this operation
16967
+ # for that bucket and must use the [TagResource][2] or
16968
+ # [UntagResource][3] operations instead.
15857
16969
  #
15858
16970
  # Use tags to organize your Amazon Web Services bill to reflect your own
15859
16971
  # cost structure. To do this, sign up to get your Amazon Web Services
@@ -15863,8 +16975,8 @@ module Aws::S3
15863
16975
  # several resources with a specific application name, and then organize
15864
16976
  # your billing information to see the total cost of that application
15865
16977
  # across several services. For more information, see [Cost Allocation
15866
- # and Tagging][1] and [Using Cost Allocation in Amazon S3 Bucket
15867
- # Tags][2].
16978
+ # and Tagging][4] and [Using Cost Allocation in Amazon S3 Bucket
16979
+ # Tags][5].
15868
16980
  #
15869
16981
  # <note markdown="1"> When this operation sets the tags for a bucket, it will overwrite any
15870
16982
  # current tags the bucket already has. You cannot use this operation to
@@ -15876,16 +16988,16 @@ module Aws::S3
15876
16988
  # `s3:PutBucketTagging` action. The bucket owner has this permission by
15877
16989
  # default and can grant this permission to others. For more information
15878
16990
  # about permissions, see [Permissions Related to Bucket Subresource
15879
- # Operations][3] and [Managing Access Permissions to Your Amazon S3
15880
- # Resources][4].
16991
+ # Operations][6] and [Managing Access Permissions to Your Amazon S3
16992
+ # Resources][7].
15881
16993
  #
15882
16994
  # `PutBucketTagging` has the following special errors. For more Amazon
15883
- # S3 errors see, [Error Responses][5].
16995
+ # S3 errors see, [Error Responses][8].
15884
16996
  #
15885
16997
  # * `InvalidTag` - The tag provided was not a valid tag. This error can
15886
16998
  # occur if the tag did not pass input validation. For more
15887
16999
  # information, see [Using Cost Allocation in Amazon S3 Bucket
15888
- # Tags][2].
17000
+ # Tags][5].
15889
17001
  #
15890
17002
  # * `MalformedXML` - The XML provided does not match the schema.
15891
17003
  #
@@ -15897,19 +17009,26 @@ module Aws::S3
15897
17009
  #
15898
17010
  # The following operations are related to `PutBucketTagging`:
15899
17011
  #
15900
- # * [GetBucketTagging][6]
17012
+ # * [GetBucketTagging][9]
15901
17013
  #
15902
- # * [DeleteBucketTagging][7]
17014
+ # * [DeleteBucketTagging][10]
15903
17015
  #
17016
+ # You must URL encode any signed header values that contain spaces. For
17017
+ # example, if your header value is `my file.txt`, containing two spaces
17018
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
15904
17019
  #
15905
17020
  #
15906
- # [1]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html
15907
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html
15908
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
15909
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
15910
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
15911
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html
15912
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html
17021
+ #
17022
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging-enable-abac.html
17023
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_TagResource.html
17024
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_UntagResource.html
17025
+ # [4]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html
17026
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/CostAllocTagging.html
17027
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
17028
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html
17029
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
17030
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketTagging.html
17031
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketTagging.html
15913
17032
  #
15914
17033
  # @option params [required, String] :bucket
15915
17034
  # The bucket name.
@@ -16051,6 +17170,10 @@ module Aws::S3
16051
17170
  #
16052
17171
  # * [GetBucketVersioning][1]
16053
17172
  #
17173
+ # You must URL encode any signed header values that contain spaces. For
17174
+ # example, if your header value is `my file.txt`, containing two spaces
17175
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
17176
+ #
16054
17177
  #
16055
17178
  #
16056
17179
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketVersioning.html
@@ -16094,6 +17217,17 @@ module Aws::S3
16094
17217
  # @option params [String] :mfa
16095
17218
  # The concatenation of the authentication device's serial number, a
16096
17219
  # space, and the value that is displayed on your authentication device.
17220
+ # The serial number is the number that uniquely identifies the MFA
17221
+ # device. For physical MFA devices, this is the unique serial number
17222
+ # that's provided with the device. For virtual MFA devices, the serial
17223
+ # number is the device ARN. For more information, see [Enabling
17224
+ # versioning on buckets][1] and [Configuring MFA delete][2] in the
17225
+ # *Amazon Simple Storage Service User Guide*.
17226
+ #
17227
+ #
17228
+ #
17229
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html
17230
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiFactorAuthenticationDelete.html
16097
17231
  #
16098
17232
  # @option params [required, Types::VersioningConfiguration] :versioning_configuration
16099
17233
  # Container for setting the versioning state.
@@ -16215,6 +17349,10 @@ module Aws::S3
16215
17349
  #
16216
17350
  # The maximum request length is limited to 128 KB.
16217
17351
  #
17352
+ # You must URL encode any signed header values that contain spaces. For
17353
+ # example, if your header value is `my file.txt`, containing two spaces
17354
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
17355
+ #
16218
17356
  #
16219
17357
  #
16220
17358
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html
@@ -16325,6 +17463,18 @@ module Aws::S3
16325
17463
  req.send_request(options)
16326
17464
  end
16327
17465
 
17466
+ # End of support notice: As of October 1, 2025, Amazon S3 has
17467
+ # discontinued support for Email Grantee Access Control Lists (ACLs). If
17468
+ # you attempt to use an Email Grantee ACL in a request after October 1,
17469
+ # 2025, the request will receive an `HTTP 405` (Method Not Allowed)
17470
+ # error.
17471
+ #
17472
+ # This change affects the following Amazon Web Services Regions: US
17473
+ # East
17474
+ # (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific
17475
+ # (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Europe
17476
+ # (Ireland), and South America (São Paulo).
17477
+ #
16328
17478
  # Adds an object to a bucket.
16329
17479
  #
16330
17480
  # <note markdown="1"> * Amazon S3 never adds partial objects; if you receive a success
@@ -16454,6 +17604,10 @@ module Aws::S3
16454
17604
  #
16455
17605
  # * [DeleteObject][10]
16456
17606
  #
17607
+ # You must URL encode any signed header values that contain spaces. For
17608
+ # example, if your header value is `my file.txt`, containing two spaces
17609
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
17610
+ #
16457
17611
  #
16458
17612
  #
16459
17613
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/endpoint-directory-buckets-AZ.html
@@ -16833,8 +17987,7 @@ module Aws::S3
16833
17987
  #
16834
17988
  # @option params [String] :server_side_encryption
16835
17989
  # The server-side encryption algorithm that was used when you store this
16836
- # object in Amazon S3 (for example, `AES256`, `aws:kms`,
16837
- # `aws:kms:dsse`).
17990
+ # object in Amazon S3 or Amazon FSx.
16838
17991
  #
16839
17992
  # * <b>General purpose buckets </b> - You have four mutually exclusive
16840
17993
  # options to protect data using server-side encryption in Amazon S3,
@@ -16888,6 +18041,14 @@ module Aws::S3
16888
18041
  #
16889
18042
  # </note>
16890
18043
  #
18044
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data stored
18045
+ # in Amazon FSx file systems using S3 access points, the only valid
18046
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
18047
+ # systems have encryption configured by default and are encrypted at
18048
+ # rest. Data is automatically encrypted before being written to the
18049
+ # file system, and automatically decrypted as it is read. These
18050
+ # processes are handled transparently by Amazon FSx.
18051
+ #
16891
18052
  #
16892
18053
  #
16893
18054
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
@@ -17134,38 +18295,39 @@ module Aws::S3
17134
18295
  # * {Types::PutObjectOutput#request_charged #request_charged} => String
17135
18296
  #
17136
18297
  #
17137
- # @example Example: To create an object.
18298
+ # @example Example: To upload an object and specify canned ACL.
17138
18299
  #
17139
- # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
18300
+ # # The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ
18301
+ # # access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.
17140
18302
  #
17141
18303
  # resp = client.put_object({
18304
+ # acl: "authenticated-read",
17142
18305
  # body: "filetoupload",
17143
18306
  # bucket: "examplebucket",
17144
- # key: "objectkey",
18307
+ # key: "exampleobject",
17145
18308
  # })
17146
18309
  #
17147
18310
  # resp.to_h outputs the following:
17148
18311
  # {
17149
18312
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
17150
- # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
18313
+ # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
17151
18314
  # }
17152
18315
  #
17153
- # @example Example: To upload an object and specify optional tags
18316
+ # @example Example: To upload an object
17154
18317
  #
17155
- # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
17156
- # # S3 returns version ID of the newly created object.
18318
+ # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
18319
+ # # syntax. S3 returns VersionId of the newly created object.
17157
18320
  #
17158
18321
  # resp = client.put_object({
17159
- # body: "c:\\HappyFace.jpg",
18322
+ # body: "HappyFace.jpg",
17160
18323
  # bucket: "examplebucket",
17161
18324
  # key: "HappyFace.jpg",
17162
- # tagging: "key1=value1&key2=value2",
17163
18325
  # })
17164
18326
  #
17165
18327
  # resp.to_h outputs the following:
17166
18328
  # {
17167
18329
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
17168
- # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
18330
+ # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
17169
18331
  # }
17170
18332
  #
17171
18333
  # @example Example: To upload an object (specify optional headers)
@@ -17188,22 +18350,22 @@ module Aws::S3
17188
18350
  # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
17189
18351
  # }
17190
18352
  #
17191
- # @example Example: To upload an object and specify canned ACL.
18353
+ # @example Example: To upload an object and specify optional tags
17192
18354
  #
17193
- # # The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ
17194
- # # access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.
18355
+ # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
18356
+ # # S3 returns version ID of the newly created object.
17195
18357
  #
17196
18358
  # resp = client.put_object({
17197
- # acl: "authenticated-read",
17198
- # body: "filetoupload",
18359
+ # body: "c:\\HappyFace.jpg",
17199
18360
  # bucket: "examplebucket",
17200
- # key: "exampleobject",
18361
+ # key: "HappyFace.jpg",
18362
+ # tagging: "key1=value1&key2=value2",
17201
18363
  # })
17202
18364
  #
17203
18365
  # resp.to_h outputs the following:
17204
18366
  # {
17205
18367
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
17206
- # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
18368
+ # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
17207
18369
  # }
17208
18370
  #
17209
18371
  # @example Example: To upload an object and specify server-side encryption and object tags
@@ -17247,21 +18409,20 @@ module Aws::S3
17247
18409
  # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
17248
18410
  # }
17249
18411
  #
17250
- # @example Example: To upload an object
18412
+ # @example Example: To create an object.
17251
18413
  #
17252
- # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
17253
- # # syntax. S3 returns VersionId of the newly created object.
18414
+ # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
17254
18415
  #
17255
18416
  # resp = client.put_object({
17256
- # body: "HappyFace.jpg",
18417
+ # body: "filetoupload",
17257
18418
  # bucket: "examplebucket",
17258
- # key: "HappyFace.jpg",
18419
+ # key: "objectkey",
17259
18420
  # })
17260
18421
  #
17261
18422
  # resp.to_h outputs the following:
17262
18423
  # {
17263
18424
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
17264
- # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
18425
+ # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
17265
18426
  # }
17266
18427
  #
17267
18428
  # @example Streaming a file from disk
@@ -17301,8 +18462,8 @@ module Aws::S3
17301
18462
  # metadata: {
17302
18463
  # "MetadataKey" => "MetadataValue",
17303
18464
  # },
17304
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
17305
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
18465
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
18466
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
17306
18467
  # website_redirect_location: "WebsiteRedirectLocation",
17307
18468
  # sse_customer_algorithm: "SSECustomerAlgorithm",
17308
18469
  # sse_customer_key: "SSECustomerKey",
@@ -17328,7 +18489,7 @@ module Aws::S3
17328
18489
  # resp.checksum_sha1 #=> String
17329
18490
  # resp.checksum_sha256 #=> String
17330
18491
  # resp.checksum_type #=> String, one of "COMPOSITE", "FULL_OBJECT"
17331
- # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse"
18492
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
17332
18493
  # resp.version_id #=> String
17333
18494
  # resp.sse_customer_algorithm #=> String
17334
18495
  # resp.sse_customer_key_md5 #=> String
@@ -17347,6 +18508,18 @@ module Aws::S3
17347
18508
  req.send_request(options)
17348
18509
  end
17349
18510
 
18511
+ # End of support notice: As of October 1, 2025, Amazon S3 has
18512
+ # discontinued support for Email Grantee Access Control Lists (ACLs). If
18513
+ # you attempt to use an Email Grantee ACL in a request after October 1,
18514
+ # 2025, the request will receive an `HTTP 405` (Method Not Allowed)
18515
+ # error.
18516
+ #
18517
+ # This change affects the following Amazon Web Services Regions: US
18518
+ # East
18519
+ # (N. Virginia), US West (N. California), US West (Oregon), Asia Pacific
18520
+ # (Singapore), Asia Pacific (Sydney), Asia Pacific (Tokyo), Europe
18521
+ # (Ireland), and South America (São Paulo).
18522
+ #
17350
18523
  # <note markdown="1"> This operation is not supported for directory buckets.
17351
18524
  #
17352
18525
  # </note>
@@ -17444,7 +18617,10 @@ module Aws::S3
17444
18617
  # Grantee Values
17445
18618
  #
17446
18619
  # : You can specify the person (grantee) to whom you're assigning
17447
- # access rights (using request elements) in the following ways:
18620
+ # access rights (using request elements) in the following ways. For
18621
+ # examples of how to specify these grantee values in JSON format, see
18622
+ # the Amazon Web Services CLI example in [ Enabling Amazon S3 server
18623
+ # access logging][6] in the *Amazon S3 User Guide*.
17448
18624
  #
17449
18625
  # * By the person's ID:
17450
18626
  #
@@ -17500,9 +18676,13 @@ module Aws::S3
17500
18676
  #
17501
18677
  # The following operations are related to `PutObjectAcl`:
17502
18678
  #
17503
- # * [CopyObject][6]
18679
+ # * [CopyObject][7]
17504
18680
  #
17505
- # * [GetObject][7]
18681
+ # * [GetObject][8]
18682
+ #
18683
+ # You must URL encode any signed header values that contain spaces. For
18684
+ # example, if your header value is `my file.txt`, containing two spaces
18685
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
17506
18686
  #
17507
18687
  #
17508
18688
  #
@@ -17511,8 +18691,9 @@ module Aws::S3
17511
18691
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html
17512
18692
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
17513
18693
  # [5]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
17514
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
17515
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
18694
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-server-access-logging.html
18695
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
18696
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
17516
18697
  #
17517
18698
  # @option params [String] :acl
17518
18699
  # The canned ACL to apply to the object. For more information, see
@@ -17727,6 +18908,10 @@ module Aws::S3
17727
18908
  #
17728
18909
  # This functionality is not supported for Amazon S3 on Outposts.
17729
18910
  #
18911
+ # You must URL encode any signed header values that contain spaces. For
18912
+ # example, if your header value is `my file.txt`, containing two spaces
18913
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
18914
+ #
17730
18915
  #
17731
18916
  #
17732
18917
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
@@ -17859,6 +19044,10 @@ module Aws::S3
17859
19044
  #
17860
19045
  # </note>
17861
19046
  #
19047
+ # You must URL encode any signed header values that contain spaces. For
19048
+ # example, if your header value is `my file.txt`, containing two spaces
19049
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
19050
+ #
17862
19051
  #
17863
19052
  #
17864
19053
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
@@ -17970,6 +19159,10 @@ module Aws::S3
17970
19159
  #
17971
19160
  # This functionality is not supported for Amazon S3 on Outposts.
17972
19161
  #
19162
+ # You must URL encode any signed header values that contain spaces. For
19163
+ # example, if your header value is `my file.txt`, containing two spaces
19164
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
19165
+ #
17973
19166
  #
17974
19167
  #
17975
19168
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
@@ -18134,6 +19327,10 @@ module Aws::S3
18134
19327
  #
18135
19328
  # * [DeleteObjectTagging][5]
18136
19329
  #
19330
+ # You must URL encode any signed header values that contain spaces. For
19331
+ # example, if your header value is `my file.txt`, containing two spaces
19332
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
19333
+ #
18137
19334
  #
18138
19335
  #
18139
19336
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-tagging.html
@@ -18210,21 +19407,9 @@ module Aws::S3
18210
19407
  # fails with the HTTP status code `403 Forbidden` (access denied).
18211
19408
  #
18212
19409
  # @option params [String] :request_payer
18213
- # Confirms that the requester knows that they will be charged for the
18214
- # request. Bucket owners need not specify this parameter in their
18215
- # requests. If either the source or destination S3 bucket has Requester
18216
- # Pays enabled, the requester will pay for corresponding charges to copy
18217
- # the object. For information about downloading objects from Requester
18218
- # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
18219
- # in the *Amazon S3 User Guide*.
18220
- #
18221
- # <note markdown="1"> This functionality is not supported for directory buckets.
18222
- #
18223
- # </note>
18224
- #
18225
- #
18226
- #
18227
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
19410
+ # Confirms that the requester knows that she or he will be charged for
19411
+ # the tagging object request. Bucket owners need not specify this
19412
+ # parameter in their requests.
18228
19413
  #
18229
19414
  # @return [Types::PutObjectTaggingOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
18230
19415
  #
@@ -18302,10 +19487,11 @@ module Aws::S3
18302
19487
  # When Amazon S3 evaluates the `PublicAccessBlock` configuration for a
18303
19488
  # bucket or an object, it checks the `PublicAccessBlock` configuration
18304
19489
  # for both the bucket (or the bucket that contains the object) and the
18305
- # bucket owner's account. If the `PublicAccessBlock` configurations are
18306
- # different between the bucket and the account, Amazon S3 uses the most
18307
- # restrictive combination of the bucket-level and account-level
18308
- # settings.
19490
+ # bucket owner's account. Account-level settings automatically inherit
19491
+ # from organization-level policies when present. If the
19492
+ # `PublicAccessBlock` configurations are different between the bucket
19493
+ # and the account, Amazon S3 uses the most restrictive combination of
19494
+ # the bucket-level and account-level settings.
18309
19495
  #
18310
19496
  # For more information about when Amazon S3 considers a bucket or an
18311
19497
  # object public, see [The Meaning of "Public"][2].
@@ -18320,6 +19506,10 @@ module Aws::S3
18320
19506
  #
18321
19507
  # * [Using Amazon S3 Block Public Access][6]
18322
19508
  #
19509
+ # You must URL encode any signed header values that contain spaces. For
19510
+ # example, if your header value is `my file.txt`, containing two spaces
19511
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
19512
+ #
18323
19513
  #
18324
19514
  #
18325
19515
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
@@ -18398,6 +19588,183 @@ module Aws::S3
18398
19588
  req.send_request(options)
18399
19589
  end
18400
19590
 
19591
+ # Renames an existing object in a directory bucket that uses the S3
19592
+ # Express One Zone storage class. You can use `RenameObject` by
19593
+ # specifying an existing object’s name as the source and the new name of
19594
+ # the object as the destination within the same directory bucket.
19595
+ #
19596
+ # <note markdown="1"> `RenameObject` is only supported for objects stored in the S3 Express
19597
+ # One Zone storage class.
19598
+ #
19599
+ # </note>
19600
+ #
19601
+ # To prevent overwriting an object, you can use the `If-None-Match`
19602
+ # conditional header.
19603
+ #
19604
+ # * **If-None-Match** - Renames the object only if an object with the
19605
+ # specified name does not already exist in the directory bucket. If
19606
+ # you don't want to overwrite an existing object, you can add the
19607
+ # `If-None-Match` conditional header with the value `‘*’` in the
19608
+ # `RenameObject` request. Amazon S3 then returns a `412 Precondition
19609
+ # Failed` error if the object with the specified name already exists.
19610
+ # For more information, see [RFC 7232][1].
19611
+ #
19612
+ # ^
19613
+ #
19614
+ # Permissions
19615
+ #
19616
+ # : To grant access to the `RenameObject` operation on a directory
19617
+ # bucket, we recommend that you use the `CreateSession` operation for
19618
+ # session-based authorization. Specifically, you grant the
19619
+ # `s3express:CreateSession` permission to the directory bucket in a
19620
+ # bucket policy or an IAM identity-based policy. Then, you make the
19621
+ # `CreateSession` API call on the directory bucket to obtain a session
19622
+ # token. With the session token in your request header, you can make
19623
+ # API requests to this operation. After the session token expires, you
19624
+ # make another `CreateSession` API call to generate a new session
19625
+ # token for use. The Amazon Web Services CLI and SDKs will create and
19626
+ # manage your session including refreshing the session token
19627
+ # automatically to avoid service interruptions when a session expires.
19628
+ # In your bucket policy, you can specify the `s3express:SessionMode`
19629
+ # condition key to control who can create a `ReadWrite` or `ReadOnly`
19630
+ # session. A `ReadWrite` session is required for executing all the
19631
+ # Zonal endpoint API operations, including `RenameObject`. For more
19632
+ # information about authorization, see [ `CreateSession` ][2]. To
19633
+ # learn more about Zonal endpoint API operations, see [Authorizing
19634
+ # Zonal endpoint API operations with CreateSession][3] in the *Amazon
19635
+ # S3 User Guide*.
19636
+ #
19637
+ # HTTP Host header syntax
19638
+ #
19639
+ # : <b>Directory buckets </b> - The HTTP Host header syntax is `
19640
+ # Bucket-name.s3express-zone-id.region-code.amazonaws.com`.
19641
+ #
19642
+ # You must URL encode any signed header values that contain spaces. For
19643
+ # example, if your header value is `my file.txt`, containing two spaces
19644
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
19645
+ #
19646
+ #
19647
+ #
19648
+ # [1]: https://datatracker.ietf.org/doc/rfc7232/
19649
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
19650
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-create-session.html
19651
+ #
19652
+ # @option params [required, String] :bucket
19653
+ # The bucket name of the directory bucket containing the object.
19654
+ #
19655
+ # You must use virtual-hosted-style requests in the format
19656
+ # `Bucket-name.s3express-zone-id.region-code.amazonaws.com`. Path-style
19657
+ # requests are not supported. Directory bucket names must be unique in
19658
+ # the chosen Availability Zone. Bucket names must follow the format
19659
+ # `bucket-base-name--zone-id--x-s3 ` (for example,
19660
+ # `amzn-s3-demo-bucket--usw2-az1--x-s3`). For information about bucket
19661
+ # naming restrictions, see [Directory bucket naming rules][1] in the
19662
+ # *Amazon S3 User Guide*.
19663
+ #
19664
+ #
19665
+ #
19666
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html
19667
+ #
19668
+ # @option params [required, String] :key
19669
+ # Key name of the object to rename.
19670
+ #
19671
+ # @option params [required, String] :rename_source
19672
+ # Specifies the source for the rename operation. The value must be URL
19673
+ # encoded.
19674
+ #
19675
+ # @option params [String] :destination_if_match
19676
+ # Renames the object only if the ETag (entity tag) value provided during
19677
+ # the operation matches the ETag of the object in S3. The `If-Match`
19678
+ # header field makes the request method conditional on ETags. If the
19679
+ # ETag values do not match, the operation returns a `412 Precondition
19680
+ # Failed` error.
19681
+ #
19682
+ # Expects the ETag value as a string.
19683
+ #
19684
+ # @option params [String] :destination_if_none_match
19685
+ # Renames the object only if the destination does not already exist in
19686
+ # the specified directory bucket. If the object does exist when you send
19687
+ # a request with `If-None-Match:*`, the S3 API will return a `412
19688
+ # Precondition Failed` error, preventing an overwrite. The
19689
+ # `If-None-Match` header prevents overwrites of existing data by
19690
+ # validating that there's not an object with the same key name already
19691
+ # in your directory bucket.
19692
+ #
19693
+ # Expects the `*` character (asterisk).
19694
+ #
19695
+ # @option params [Time,DateTime,Date,Integer,String] :destination_if_modified_since
19696
+ # Renames the object if the destination exists and if it has been
19697
+ # modified since the specified time.
19698
+ #
19699
+ # @option params [Time,DateTime,Date,Integer,String] :destination_if_unmodified_since
19700
+ # Renames the object if it hasn't been modified since the specified
19701
+ # time.
19702
+ #
19703
+ # @option params [String] :source_if_match
19704
+ # Renames the object if the source exists and if its entity tag (ETag)
19705
+ # matches the specified ETag.
19706
+ #
19707
+ # @option params [String] :source_if_none_match
19708
+ # Renames the object if the source exists and if its entity tag (ETag)
19709
+ # is different than the specified ETag. If an asterisk (`*`) character
19710
+ # is provided, the operation will fail and return a `412 Precondition
19711
+ # Failed` error.
19712
+ #
19713
+ # @option params [Time,DateTime,Date,Integer,String] :source_if_modified_since
19714
+ # Renames the object if the source exists and if it has been modified
19715
+ # since the specified time.
19716
+ #
19717
+ # @option params [Time,DateTime,Date,Integer,String] :source_if_unmodified_since
19718
+ # Renames the object if the source exists and hasn't been modified
19719
+ # since the specified time.
19720
+ #
19721
+ # @option params [String] :client_token
19722
+ # A unique string with a max of 64 ASCII characters in the ASCII range
19723
+ # of 33 - 126.
19724
+ #
19725
+ # <note markdown="1"> `RenameObject` supports idempotency using a client token. To make an
19726
+ # idempotent API request using `RenameObject`, specify a client token in
19727
+ # the request. You should not reuse the same client token for other API
19728
+ # requests. If you retry a request that completed successfully using the
19729
+ # same client token and the same parameters, the retry succeeds without
19730
+ # performing any further actions. If you retry a successful request
19731
+ # using the same client token, but one or more of the parameters are
19732
+ # different, the retry fails and an `IdempotentParameterMismatch` error
19733
+ # is returned.
19734
+ #
19735
+ # </note>
19736
+ #
19737
+ # **A suitable default value is auto-generated.** You should normally
19738
+ # not need to pass this option.**
19739
+ #
19740
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
19741
+ #
19742
+ # @example Request syntax with placeholder values
19743
+ #
19744
+ # resp = client.rename_object({
19745
+ # bucket: "BucketName", # required
19746
+ # key: "ObjectKey", # required
19747
+ # rename_source: "RenameSource", # required
19748
+ # destination_if_match: "IfMatch",
19749
+ # destination_if_none_match: "IfNoneMatch",
19750
+ # destination_if_modified_since: Time.now,
19751
+ # destination_if_unmodified_since: Time.now,
19752
+ # source_if_match: "RenameSourceIfMatch",
19753
+ # source_if_none_match: "RenameSourceIfNoneMatch",
19754
+ # source_if_modified_since: Time.now,
19755
+ # source_if_unmodified_since: Time.now,
19756
+ # client_token: "ClientToken",
19757
+ # })
19758
+ #
19759
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RenameObject AWS API Documentation
19760
+ #
19761
+ # @overload rename_object(params = {})
19762
+ # @param [Hash] params ({})
19763
+ def rename_object(params = {}, options = {})
19764
+ req = build_request(:rename_object, params)
19765
+ req.send_request(options)
19766
+ end
19767
+
18401
19768
  # <note markdown="1"> This operation is not supported for directory buckets.
18402
19769
  #
18403
19770
  # </note>
@@ -18560,6 +19927,10 @@ module Aws::S3
18560
19927
  #
18561
19928
  # * [GetBucketNotificationConfiguration][11]
18562
19929
  #
19930
+ # You must URL encode any signed header values that contain spaces. For
19931
+ # example, if your header value is `my file.txt`, containing two spaces
19932
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
19933
+ #
18563
19934
  #
18564
19935
  #
18565
19936
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html
@@ -18728,7 +20099,7 @@ module Aws::S3
18728
20099
  # bucket_name: "BucketName", # required
18729
20100
  # prefix: "LocationPrefix", # required
18730
20101
  # encryption: {
18731
- # encryption_type: "AES256", # required, accepts AES256, aws:kms, aws:kms:dsse
20102
+ # encryption_type: "AES256", # required, accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
18732
20103
  # kms_key_id: "SSEKMSKeyId",
18733
20104
  # kms_context: "KMSContext",
18734
20105
  # },
@@ -18759,7 +20130,7 @@ module Aws::S3
18759
20130
  # value: "MetadataValue",
18760
20131
  # },
18761
20132
  # ],
18762
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
20133
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
18763
20134
  # },
18764
20135
  # },
18765
20136
  # },
@@ -18883,6 +20254,10 @@ module Aws::S3
18883
20254
  #
18884
20255
  # * [PutBucketLifecycleConfiguration][12]
18885
20256
  #
20257
+ # You must URL encode any signed header values that contain spaces. For
20258
+ # example, if your header value is `my file.txt`, containing two spaces
20259
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
20260
+ #
18886
20261
  #
18887
20262
  #
18888
20263
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/selecting-content-from-objects.html
@@ -19203,6 +20578,190 @@ module Aws::S3
19203
20578
  req.send_request(options, &block)
19204
20579
  end
19205
20580
 
20581
+ # Enables or disables a live inventory table for an S3 Metadata
20582
+ # configuration on a general purpose bucket. For more information, see
20583
+ # [Accelerating data discovery with S3 Metadata][1] in the *Amazon S3
20584
+ # User Guide*.
20585
+ #
20586
+ # Permissions
20587
+ #
20588
+ # : To use this operation, you must have the following permissions. For
20589
+ # more information, see [Setting up permissions for configuring
20590
+ # metadata tables][2] in the *Amazon S3 User Guide*.
20591
+ #
20592
+ # If you want to encrypt your inventory table with server-side
20593
+ # encryption with Key Management Service (KMS) keys (SSE-KMS), you
20594
+ # need additional permissions in your KMS key policy. For more
20595
+ # information, see [ Setting up permissions for configuring metadata
20596
+ # tables][2] in the *Amazon S3 User Guide*.
20597
+ #
20598
+ # * `s3:UpdateBucketMetadataInventoryTableConfiguration`
20599
+ #
20600
+ # * `s3tables:CreateTableBucket`
20601
+ #
20602
+ # * `s3tables:CreateNamespace`
20603
+ #
20604
+ # * `s3tables:GetTable`
20605
+ #
20606
+ # * `s3tables:CreateTable`
20607
+ #
20608
+ # * `s3tables:PutTablePolicy`
20609
+ #
20610
+ # * `s3tables:PutTableEncryption`
20611
+ #
20612
+ # * `kms:DescribeKey`
20613
+ #
20614
+ # The following operations are related to
20615
+ # `UpdateBucketMetadataInventoryTableConfiguration`:
20616
+ #
20617
+ # * [CreateBucketMetadataConfiguration][3]
20618
+ #
20619
+ # * [DeleteBucketMetadataConfiguration][4]
20620
+ #
20621
+ # * [GetBucketMetadataConfiguration][5]
20622
+ #
20623
+ # * [UpdateBucketMetadataJournalTableConfiguration][6]
20624
+ #
20625
+ # You must URL encode any signed header values that contain spaces. For
20626
+ # example, if your header value is `my file.txt`, containing two spaces
20627
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
20628
+ #
20629
+ #
20630
+ #
20631
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html
20632
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html
20633
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html
20634
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html
20635
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html
20636
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html
20637
+ #
20638
+ # @option params [required, String] :bucket
20639
+ # The general purpose bucket that corresponds to the metadata
20640
+ # configuration that you want to enable or disable an inventory table
20641
+ # for.
20642
+ #
20643
+ # @option params [String] :content_md5
20644
+ # The `Content-MD5` header for the inventory table configuration.
20645
+ #
20646
+ # @option params [String] :checksum_algorithm
20647
+ # The checksum algorithm to use with your inventory table configuration.
20648
+ #
20649
+ # @option params [required, Types::InventoryTableConfigurationUpdates] :inventory_table_configuration
20650
+ # The contents of your inventory table configuration.
20651
+ #
20652
+ # @option params [String] :expected_bucket_owner
20653
+ # The expected owner of the general purpose bucket that corresponds to
20654
+ # the metadata table configuration that you want to enable or disable an
20655
+ # inventory table for.
20656
+ #
20657
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
20658
+ #
20659
+ # @example Request syntax with placeholder values
20660
+ #
20661
+ # resp = client.update_bucket_metadata_inventory_table_configuration({
20662
+ # bucket: "BucketName", # required
20663
+ # content_md5: "ContentMD5",
20664
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
20665
+ # inventory_table_configuration: { # required
20666
+ # configuration_state: "ENABLED", # required, accepts ENABLED, DISABLED
20667
+ # encryption_configuration: {
20668
+ # sse_algorithm: "aws:kms", # required, accepts aws:kms, AES256
20669
+ # kms_key_arn: "KmsKeyArn",
20670
+ # },
20671
+ # },
20672
+ # expected_bucket_owner: "AccountId",
20673
+ # })
20674
+ #
20675
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UpdateBucketMetadataInventoryTableConfiguration AWS API Documentation
20676
+ #
20677
+ # @overload update_bucket_metadata_inventory_table_configuration(params = {})
20678
+ # @param [Hash] params ({})
20679
+ def update_bucket_metadata_inventory_table_configuration(params = {}, options = {})
20680
+ req = build_request(:update_bucket_metadata_inventory_table_configuration, params)
20681
+ req.send_request(options)
20682
+ end
20683
+
20684
+ # Enables or disables journal table record expiration for an S3 Metadata
20685
+ # configuration on a general purpose bucket. For more information, see
20686
+ # [Accelerating data discovery with S3 Metadata][1] in the *Amazon S3
20687
+ # User Guide*.
20688
+ #
20689
+ # Permissions
20690
+ #
20691
+ # : To use this operation, you must have the
20692
+ # `s3:UpdateBucketMetadataJournalTableConfiguration` permission. For
20693
+ # more information, see [Setting up permissions for configuring
20694
+ # metadata tables][2] in the *Amazon S3 User Guide*.
20695
+ #
20696
+ # The following operations are related to
20697
+ # `UpdateBucketMetadataJournalTableConfiguration`:
20698
+ #
20699
+ # * [CreateBucketMetadataConfiguration][3]
20700
+ #
20701
+ # * [DeleteBucketMetadataConfiguration][4]
20702
+ #
20703
+ # * [GetBucketMetadataConfiguration][5]
20704
+ #
20705
+ # * [UpdateBucketMetadataInventoryTableConfiguration][6]
20706
+ #
20707
+ # You must URL encode any signed header values that contain spaces. For
20708
+ # example, if your header value is `my file.txt`, containing two spaces
20709
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
20710
+ #
20711
+ #
20712
+ #
20713
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-overview.html
20714
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/metadata-tables-permissions.html
20715
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html
20716
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketMetadataConfiguration.html
20717
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html
20718
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html
20719
+ #
20720
+ # @option params [required, String] :bucket
20721
+ # The general purpose bucket that corresponds to the metadata
20722
+ # configuration that you want to enable or disable journal table record
20723
+ # expiration for.
20724
+ #
20725
+ # @option params [String] :content_md5
20726
+ # The `Content-MD5` header for the journal table configuration.
20727
+ #
20728
+ # @option params [String] :checksum_algorithm
20729
+ # The checksum algorithm to use with your journal table configuration.
20730
+ #
20731
+ # @option params [required, Types::JournalTableConfigurationUpdates] :journal_table_configuration
20732
+ # The contents of your journal table configuration.
20733
+ #
20734
+ # @option params [String] :expected_bucket_owner
20735
+ # The expected owner of the general purpose bucket that corresponds to
20736
+ # the metadata table configuration that you want to enable or disable
20737
+ # journal table record expiration for.
20738
+ #
20739
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
20740
+ #
20741
+ # @example Request syntax with placeholder values
20742
+ #
20743
+ # resp = client.update_bucket_metadata_journal_table_configuration({
20744
+ # bucket: "BucketName", # required
20745
+ # content_md5: "ContentMD5",
20746
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
20747
+ # journal_table_configuration: { # required
20748
+ # record_expiration: { # required
20749
+ # expiration: "ENABLED", # required, accepts ENABLED, DISABLED
20750
+ # days: 1,
20751
+ # },
20752
+ # },
20753
+ # expected_bucket_owner: "AccountId",
20754
+ # })
20755
+ #
20756
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UpdateBucketMetadataJournalTableConfiguration AWS API Documentation
20757
+ #
20758
+ # @overload update_bucket_metadata_journal_table_configuration(params = {})
20759
+ # @param [Hash] params ({})
20760
+ def update_bucket_metadata_journal_table_configuration(params = {}, options = {})
20761
+ req = build_request(:update_bucket_metadata_journal_table_configuration, params)
20762
+ req.send_request(options)
20763
+ end
20764
+
19206
20765
  # Uploads a part in a multipart upload.
19207
20766
  #
19208
20767
  # <note markdown="1"> In this operation, you provide new data as a part of an object in your
@@ -19330,6 +20889,15 @@ module Aws::S3
19330
20889
  # Multipart request. For more information, see
19331
20890
  # [CreateMultipartUpload][2].
19332
20891
  #
20892
+ # <note markdown="1"> If you have server-side encryption with customer-provided keys
20893
+ # (SSE-C) blocked for your general purpose bucket, you will get an
20894
+ # HTTP 403 Access Denied error when you specify the SSE-C request
20895
+ # headers while writing new data to your bucket. For more
20896
+ # information, see [Blocking or unblocking SSE-C for a general
20897
+ # purpose bucket][12].
20898
+ #
20899
+ # </note>
20900
+ #
19333
20901
  # If you request server-side encryption using a customer-provided
19334
20902
  # encryption key (SSE-C) in your initiate multipart upload request,
19335
20903
  # you must provide identical encryption information in each part
@@ -19340,7 +20908,7 @@ module Aws::S3
19340
20908
  # * x-amz-server-side-encryption-customer-key
19341
20909
  #
19342
20910
  # * x-amz-server-side-encryption-customer-key-MD5
19343
- # For more information, see [Using Server-Side Encryption][12] in
20911
+ # For more information, see [Using Server-Side Encryption][13] in
19344
20912
  # the *Amazon S3 User Guide*.
19345
20913
  #
19346
20914
  # * <b>Directory buckets </b> - For directory buckets, there are only
@@ -19368,13 +20936,17 @@ module Aws::S3
19368
20936
  #
19369
20937
  # * [CreateMultipartUpload][2]
19370
20938
  #
19371
- # * [CompleteMultipartUpload][13]
20939
+ # * [CompleteMultipartUpload][14]
19372
20940
  #
19373
- # * [AbortMultipartUpload][14]
20941
+ # * [AbortMultipartUpload][15]
19374
20942
  #
19375
- # * [ListParts][15]
20943
+ # * [ListParts][16]
20944
+ #
20945
+ # * [ListMultipartUploads][17]
19376
20946
  #
19377
- # * [ListMultipartUploads][16]
20947
+ # You must URL encode any signed header values that contain spaces. For
20948
+ # example, if your header value is `my file.txt`, containing two spaces
20949
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
19378
20950
  #
19379
20951
  #
19380
20952
  #
@@ -19389,11 +20961,12 @@ module Aws::S3
19389
20961
  # [9]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#mpuAndPermissions
19390
20962
  # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateSession.html
19391
20963
  # [11]: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html
19392
- # [12]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
19393
- # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
19394
- # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
19395
- # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
19396
- # [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
20964
+ # [12]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/blocking-unblocking-s3-c-encryption-gpb.html
20965
+ # [13]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
20966
+ # [14]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
20967
+ # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
20968
+ # [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
20969
+ # [17]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
19397
20970
  #
19398
20971
  # @option params [String, StringIO, File] :body
19399
20972
  # Object data.
@@ -19652,7 +21225,7 @@ module Aws::S3
19652
21225
  #
19653
21226
  # @example Response structure
19654
21227
  #
19655
- # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse"
21228
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
19656
21229
  # resp.etag #=> String
19657
21230
  # resp.checksum_crc32 #=> String
19658
21231
  # resp.checksum_crc32c #=> String
@@ -19792,12 +21365,21 @@ module Aws::S3
19792
21365
  # the `UploadPartCopy` operation, see [CopyObject][13] and
19793
21366
  # [UploadPart][2].
19794
21367
  #
21368
+ # <note markdown="1"> If you have server-side encryption with customer-provided keys
21369
+ # (SSE-C) blocked for your general purpose bucket, you will get an
21370
+ # HTTP 403 Access Denied error when you specify the SSE-C request
21371
+ # headers while writing new data to your bucket. For more
21372
+ # information, see [Blocking or unblocking SSE-C for a general
21373
+ # purpose bucket][14].
21374
+ #
21375
+ # </note>
21376
+ #
19795
21377
  # * <b>Directory buckets </b> - For directory buckets, there are only
19796
21378
  # two supported options for server-side encryption: server-side
19797
21379
  # encryption with Amazon S3 managed keys (SSE-S3) (`AES256`) and
19798
21380
  # server-side encryption with KMS keys (SSE-KMS) (`aws:kms`). For
19799
21381
  # more information, see [Protecting data with server-side
19800
- # encryption][14] in the *Amazon S3 User Guide*.
21382
+ # encryption][15] in the *Amazon S3 User Guide*.
19801
21383
  #
19802
21384
  # <note markdown="1"> For directory buckets, when you perform a `CreateMultipartUpload`
19803
21385
  # operation and an `UploadPartCopy` operation, the request headers
@@ -19809,7 +21391,7 @@ module Aws::S3
19809
21391
  # S3 Bucket Keys aren't supported, when you copy SSE-KMS encrypted
19810
21392
  # objects from general purpose buckets to directory buckets, from
19811
21393
  # directory buckets to general purpose buckets, or between directory
19812
- # buckets, through [UploadPartCopy][15]. In this case, Amazon S3
21394
+ # buckets, through [UploadPartCopy][16]. In this case, Amazon S3
19813
21395
  # makes a call to KMS every time a copy request is made for a
19814
21396
  # KMS-encrypted object.
19815
21397
  #
@@ -19835,17 +21417,21 @@ module Aws::S3
19835
21417
  #
19836
21418
  # The following operations are related to `UploadPartCopy`:
19837
21419
  #
19838
- # * [CreateMultipartUpload][16]
21420
+ # * [CreateMultipartUpload][17]
19839
21421
  #
19840
21422
  # * [UploadPart][2]
19841
21423
  #
19842
- # * [CompleteMultipartUpload][17]
21424
+ # * [CompleteMultipartUpload][18]
21425
+ #
21426
+ # * [AbortMultipartUpload][19]
19843
21427
  #
19844
- # * [AbortMultipartUpload][18]
21428
+ # * [ListParts][20]
19845
21429
  #
19846
- # * [ListParts][19]
21430
+ # * [ListMultipartUploads][21]
19847
21431
  #
19848
- # * [ListMultipartUploads][20]
21432
+ # You must URL encode any signed header values that contain spaces. For
21433
+ # example, if your header value is `my file.txt`, containing two spaces
21434
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
19849
21435
  #
19850
21436
  #
19851
21437
  #
@@ -19862,13 +21448,14 @@ module Aws::S3
19862
21448
  # [11]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-example-bucket-policies.html
19863
21449
  # [12]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-security-iam-identity-policies.html
19864
21450
  # [13]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html
19865
- # [14]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
19866
- # [15]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
19867
- # [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
19868
- # [17]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
19869
- # [18]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
19870
- # [19]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
19871
- # [20]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
21451
+ # [14]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/blocking-unblocking-s3-c-encryption-gpb.html
21452
+ # [15]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
21453
+ # [16]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
21454
+ # [17]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
21455
+ # [18]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
21456
+ # [19]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
21457
+ # [20]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
21458
+ # [21]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
19872
21459
  #
19873
21460
  # @option params [required, String] :bucket
19874
21461
  # The bucket name.
@@ -20163,45 +21750,45 @@ module Aws::S3
20163
21750
  # * {Types::UploadPartCopyOutput#request_charged #request_charged} => String
20164
21751
  #
20165
21752
  #
20166
- # @example Example: To upload a part by copying byte range from an existing object as data source
21753
+ # @example Example: To upload a part by copying data from an existing object as data source
20167
21754
  #
20168
- # # The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as
20169
- # # data source.
21755
+ # # The following example uploads a part of a multipart upload by copying data from an existing object as data source.
20170
21756
  #
20171
21757
  # resp = client.upload_part_copy({
20172
21758
  # bucket: "examplebucket",
20173
21759
  # copy_source: "/bucketname/sourceobjectkey",
20174
- # copy_source_range: "bytes=1-100000",
20175
21760
  # key: "examplelargeobject",
20176
- # part_number: 2,
21761
+ # part_number: 1,
20177
21762
  # upload_id: "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--",
20178
21763
  # })
20179
21764
  #
20180
21765
  # resp.to_h outputs the following:
20181
21766
  # {
20182
21767
  # copy_part_result: {
20183
- # etag: "\"65d16d19e65a7508a51f043180edcc36\"",
20184
- # last_modified: Time.parse("2016-12-29T21:44:28.000Z"),
21768
+ # etag: "\"b0c6f0e7e054ab8fa2536a2677f8734d\"",
21769
+ # last_modified: Time.parse("2016-12-29T21:24:43.000Z"),
20185
21770
  # },
20186
21771
  # }
20187
21772
  #
20188
- # @example Example: To upload a part by copying data from an existing object as data source
21773
+ # @example Example: To upload a part by copying byte range from an existing object as data source
20189
21774
  #
20190
- # # The following example uploads a part of a multipart upload by copying data from an existing object as data source.
21775
+ # # The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as
21776
+ # # data source.
20191
21777
  #
20192
21778
  # resp = client.upload_part_copy({
20193
21779
  # bucket: "examplebucket",
20194
21780
  # copy_source: "/bucketname/sourceobjectkey",
21781
+ # copy_source_range: "bytes=1-100000",
20195
21782
  # key: "examplelargeobject",
20196
- # part_number: 1,
21783
+ # part_number: 2,
20197
21784
  # upload_id: "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--",
20198
21785
  # })
20199
21786
  #
20200
21787
  # resp.to_h outputs the following:
20201
21788
  # {
20202
21789
  # copy_part_result: {
20203
- # etag: "\"b0c6f0e7e054ab8fa2536a2677f8734d\"",
20204
- # last_modified: Time.parse("2016-12-29T21:24:43.000Z"),
21790
+ # etag: "\"65d16d19e65a7508a51f043180edcc36\"",
21791
+ # last_modified: Time.parse("2016-12-29T21:44:28.000Z"),
20205
21792
  # },
20206
21793
  # }
20207
21794
  #
@@ -20239,7 +21826,7 @@ module Aws::S3
20239
21826
  # resp.copy_part_result.checksum_crc64nvme #=> String
20240
21827
  # resp.copy_part_result.checksum_sha1 #=> String
20241
21828
  # resp.copy_part_result.checksum_sha256 #=> String
20242
- # resp.server_side_encryption #=> String, one of "AES256", "aws:kms", "aws:kms:dsse"
21829
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
20243
21830
  # resp.sse_customer_algorithm #=> String
20244
21831
  # resp.sse_customer_key_md5 #=> String
20245
21832
  # resp.ssekms_key_id #=> String
@@ -20310,6 +21897,10 @@ module Aws::S3
20310
21897
  # Amazon Web Services built Lambda functions][3] in the *Amazon S3 User
20311
21898
  # Guide*.
20312
21899
  #
21900
+ # You must URL encode any signed header values that contain spaces. For
21901
+ # example, if your header value is `my file.txt`, containing two spaces
21902
+ # after `my`, you must URL encode this value to `my%20%20file.txt`.
21903
+ #
20313
21904
  #
20314
21905
  #
20315
21906
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/transforming-objects.html
@@ -20548,19 +22139,30 @@ module Aws::S3
20548
22139
  #
20549
22140
  # @option params [String] :request_charged
20550
22141
  # If present, indicates that the requester was successfully charged for
20551
- # the request.
22142
+ # the request. For more information, see [Using Requester Pays buckets
22143
+ # for storage transfers and usage][1] in the *Amazon Simple Storage
22144
+ # Service user guide*.
20552
22145
  #
20553
22146
  # <note markdown="1"> This functionality is not supported for directory buckets.
20554
22147
  #
20555
22148
  # </note>
20556
22149
  #
22150
+ #
22151
+ #
22152
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html
22153
+ #
20557
22154
  # @option params [String] :restore
20558
22155
  # Provides information about object restoration operation and expiration
20559
22156
  # time of the restored object copy.
20560
22157
  #
20561
22158
  # @option params [String] :server_side_encryption
20562
22159
  # The server-side encryption algorithm used when storing requested
20563
- # object in Amazon S3 (for example, AES256, `aws:kms`).
22160
+ # object in Amazon S3 or Amazon FSx.
22161
+ #
22162
+ # <note markdown="1"> When accessing data stored in Amazon FSx file systems using S3 access
22163
+ # points, the only valid server side encryption option is `aws:fsx`.
22164
+ #
22165
+ # </note>
20564
22166
  #
20565
22167
  # @option params [String] :sse_customer_algorithm
20566
22168
  # Encryption algorithm used if server-side encryption with a
@@ -20644,11 +22246,11 @@ module Aws::S3
20644
22246
  # replication_status: "COMPLETE", # accepts COMPLETE, PENDING, FAILED, REPLICA, COMPLETED
20645
22247
  # request_charged: "requester", # accepts requester
20646
22248
  # restore: "Restore",
20647
- # server_side_encryption: "AES256", # accepts AES256, aws:kms, aws:kms:dsse
22249
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
20648
22250
  # sse_customer_algorithm: "SSECustomerAlgorithm",
20649
22251
  # ssekms_key_id: "SSEKMSKeyId",
20650
22252
  # sse_customer_key_md5: "SSECustomerKeyMD5",
20651
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE
22253
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
20652
22254
  # tag_count: 1,
20653
22255
  # version_id: "ObjectVersionId",
20654
22256
  # bucket_key_enabled: false,
@@ -20681,7 +22283,7 @@ module Aws::S3
20681
22283
  tracer: tracer
20682
22284
  )
20683
22285
  context[:gem_name] = 'aws-sdk-s3'
20684
- context[:gem_version] = '1.184.0'
22286
+ context[:gem_version] = '1.208.0'
20685
22287
  Seahorse::Client::Request.new(handlers, context)
20686
22288
  end
20687
22289