aws-sdk-s3 1.188.0 → 1.205.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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +119 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +43 -4
  5. data/lib/aws-sdk-s3/bucket_versioning.rb +33 -0
  6. data/lib/aws-sdk-s3/client.rb +1943 -252
  7. data/lib/aws-sdk-s3/client_api.rb +289 -0
  8. data/lib/aws-sdk-s3/customizations/object.rb +76 -86
  9. data/lib/aws-sdk-s3/customizations.rb +3 -1
  10. data/lib/aws-sdk-s3/default_executor.rb +103 -0
  11. data/lib/aws-sdk-s3/endpoint_parameters.rb +17 -17
  12. data/lib/aws-sdk-s3/endpoint_provider.rb +220 -50
  13. data/lib/aws-sdk-s3/endpoints.rb +110 -0
  14. data/lib/aws-sdk-s3/errors.rb +11 -0
  15. data/lib/aws-sdk-s3/file_downloader.rb +197 -134
  16. data/lib/aws-sdk-s3/file_uploader.rb +9 -13
  17. data/lib/aws-sdk-s3/legacy_signer.rb +2 -1
  18. data/lib/aws-sdk-s3/multipart_download_error.rb +8 -0
  19. data/lib/aws-sdk-s3/multipart_file_uploader.rb +92 -107
  20. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +96 -107
  21. data/lib/aws-sdk-s3/multipart_upload_error.rb +3 -4
  22. data/lib/aws-sdk-s3/object.rb +110 -35
  23. data/lib/aws-sdk-s3/object_multipart_copier.rb +2 -1
  24. data/lib/aws-sdk-s3/object_summary.rb +72 -20
  25. data/lib/aws-sdk-s3/object_version.rb +7 -9
  26. data/lib/aws-sdk-s3/plugins/endpoints.rb +1 -1
  27. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -1
  28. data/lib/aws-sdk-s3/resource.rb +6 -0
  29. data/lib/aws-sdk-s3/transfer_manager.rb +303 -0
  30. data/lib/aws-sdk-s3/types.rb +1490 -189
  31. data/lib/aws-sdk-s3.rb +1 -1
  32. data/sig/bucket.rbs +12 -3
  33. data/sig/client.rbs +170 -31
  34. data/sig/errors.rbs +2 -0
  35. data/sig/multipart_upload.rbs +1 -1
  36. data/sig/object.rbs +15 -10
  37. data/sig/object_summary.rbs +11 -9
  38. data/sig/resource.rbs +8 -1
  39. data/sig/types.rbs +215 -29
  40. metadata +7 -4
@@ -10,6 +10,29 @@
10
10
  module Aws::S3
11
11
  module Types
12
12
 
13
+ # The ABAC status of the general purpose bucket. When ABAC is enabled
14
+ # for the general purpose bucket, you can use tags to manage access to
15
+ # the general purpose buckets as well as for cost tracking purposes.
16
+ # When ABAC is disabled for the general purpose buckets, you can only
17
+ # use tags for cost tracking purposes. For more information, see [Using
18
+ # tags with S3 general purpose buckets][1].
19
+ #
20
+ #
21
+ #
22
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging.html
23
+ #
24
+ # @!attribute [rw] status
25
+ # The ABAC status of the general purpose bucket.
26
+ # @return [String]
27
+ #
28
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AbacStatus AWS API Documentation
29
+ #
30
+ class AbacStatus < Struct.new(
31
+ :status)
32
+ SENSITIVE = []
33
+ include Aws::Structure
34
+ end
35
+
13
36
  # Specifies the days since the initiation of an incomplete multipart
14
37
  # upload that Amazon S3 will wait before permanently removing all parts
15
38
  # of the upload. For more information, see [ Aborting Incomplete
@@ -355,6 +378,63 @@ module Aws::S3
355
378
  include Aws::Structure
356
379
  end
357
380
 
381
+ # A bucket-level setting for Amazon S3 general purpose buckets used to
382
+ # prevent the upload of new objects encrypted with the specified
383
+ # server-side encryption type. For example, blocking an encryption type
384
+ # will block `PutObject`, `CopyObject`, `PostObject`, multipart upload,
385
+ # and replication requests to the bucket for objects with the specified
386
+ # encryption type. However, you can continue to read and list any
387
+ # pre-existing objects already encrypted with the specified encryption
388
+ # type. For more information, see [Blocking an encryption type for a
389
+ # general purpose bucket][1].
390
+ #
391
+ # This data type is used with the following actions:
392
+ #
393
+ # * [PutBucketEncryption][2]
394
+ #
395
+ # * [GetBucketEncryption][3]
396
+ #
397
+ # * [DeleteBucketEncryption][4]
398
+ #
399
+ # Permissions
400
+ #
401
+ # : You must have the `s3:PutEncryptionConfiguration` permission to
402
+ # block or unblock an encryption type for a bucket.
403
+ #
404
+ # You must have the `s3:GetEncryptionConfiguration` permission to view
405
+ # a bucket's encryption type.
406
+ #
407
+ #
408
+ #
409
+ # [1]: https://docs.aws.amazon.com/AmazonS3/userguide/block-encryption-type.html
410
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketEncryption.html
411
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketEncryption.html
412
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucketEncryption.html
413
+ #
414
+ # @!attribute [rw] encryption_type
415
+ # The object encryption type that you want to block or unblock for an
416
+ # Amazon S3 general purpose bucket.
417
+ #
418
+ # <note markdown="1"> Currently, this parameter only supports blocking or unblocking
419
+ # server side encryption with customer-provided keys (SSE-C). For more
420
+ # information about SSE-C, see [Using server-side encryption with
421
+ # customer-provided keys (SSE-C)][1].
422
+ #
423
+ # </note>
424
+ #
425
+ #
426
+ #
427
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html
428
+ # @return [Array<String>]
429
+ #
430
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/BlockedEncryptionTypes AWS API Documentation
431
+ #
432
+ class BlockedEncryptionTypes < Struct.new(
433
+ :encryption_type)
434
+ SENSITIVE = []
435
+ include Aws::Structure
436
+ end
437
+
358
438
  # In terms of implementation, a Bucket is a resource.
359
439
  #
360
440
  # @!attribute [rw] name
@@ -372,12 +452,28 @@ module Aws::S3
372
452
  # parameter, it is included in the response.
373
453
  # @return [String]
374
454
  #
455
+ # @!attribute [rw] bucket_arn
456
+ # The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely
457
+ # identify Amazon Web Services resources across all of Amazon Web
458
+ # Services.
459
+ #
460
+ # <note markdown="1"> This parameter is only supported for S3 directory buckets. For more
461
+ # information, see [Using tags with directory buckets][1].
462
+ #
463
+ # </note>
464
+ #
465
+ #
466
+ #
467
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html
468
+ # @return [String]
469
+ #
375
470
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Bucket AWS API Documentation
376
471
  #
377
472
  class Bucket < Struct.new(
378
473
  :name,
379
474
  :creation_date,
380
- :bucket_region)
475
+ :bucket_region,
476
+ :bucket_arn)
381
477
  SENSITIVE = []
382
478
  include Aws::Structure
383
479
  end
@@ -664,7 +760,7 @@ module Aws::S3
664
760
  #
665
761
  # @!attribute [rw] checksum_crc32
666
762
  # The Base64 encoded, 32-bit `CRC32 checksum` of the object. This
667
- # checksum is only be present if the checksum was uploaded with the
763
+ # checksum is only present if the checksum was uploaded with the
668
764
  # object. When you use an API operation on an object that was uploaded
669
765
  # using multipart uploads, this value may not be a direct checksum
670
766
  # value of the full object. Instead, it's a calculation based on the
@@ -706,14 +802,15 @@ module Aws::S3
706
802
  # @return [String]
707
803
  #
708
804
  # @!attribute [rw] checksum_sha1
709
- # The Base64 encoded, 160-bit `SHA1` digest of the object. This will
710
- # only be present if the object was uploaded with the object. When you
711
- # use the API operation on an object that was uploaded using multipart
712
- # uploads, this value may not be a direct checksum value of the full
713
- # object. Instead, it's a calculation based on the checksum values of
714
- # each individual part. For more information about how checksums are
715
- # calculated with multipart uploads, see [ Checking object
716
- # integrity][1] in the *Amazon S3 User Guide*.
805
+ # The Base64 encoded, 160-bit `SHA1` digest of the object. This
806
+ # checksum is only present if the checksum was uploaded with the
807
+ # object. When you use the API operation on an object that was
808
+ # uploaded using multipart uploads, this value may not be a direct
809
+ # checksum value of the full object. Instead, it's a calculation
810
+ # based on the checksum values of each individual part. For more
811
+ # information about how checksums are calculated with multipart
812
+ # uploads, see [ Checking object integrity][1] in the *Amazon S3 User
813
+ # Guide*.
717
814
  #
718
815
  #
719
816
  #
@@ -721,14 +818,14 @@ module Aws::S3
721
818
  # @return [String]
722
819
  #
723
820
  # @!attribute [rw] checksum_sha256
724
- # The Base64 encoded, 256-bit `SHA256` digest of the object. This will
725
- # only be present if the object was uploaded with the object. When you
726
- # use an API operation on an object that was uploaded using multipart
727
- # uploads, this value may not be a direct checksum value of the full
728
- # object. Instead, it's a calculation based on the checksum values of
729
- # each individual part. For more information about how checksums are
730
- # calculated with multipart uploads, see [ Checking object
731
- # integrity][1] in the *Amazon S3 User Guide*.
821
+ # The Base64 encoded, 256-bit `SHA256` digest of the object. This
822
+ # checksum is only present if the checksum was uploaded with the
823
+ # object. When you use an API operation on an object that was uploaded
824
+ # using multipart uploads, this value may not be a direct checksum
825
+ # value of the full object. Instead, it's a calculation based on the
826
+ # checksum values of each individual part. For more information about
827
+ # how checksums are calculated with multipart uploads, see [ Checking
828
+ # object integrity][1] in the *Amazon S3 User Guide*.
732
829
  #
733
830
  #
734
831
  #
@@ -858,7 +955,7 @@ module Aws::S3
858
955
  #
859
956
  # @!attribute [rw] checksum_crc32
860
957
  # The Base64 encoded, 32-bit `CRC32 checksum` of the object. This
861
- # checksum is only be present if the checksum was uploaded with the
958
+ # checksum is only present if the checksum was uploaded with the
862
959
  # object. When you use an API operation on an object that was uploaded
863
960
  # using multipart uploads, this value may not be a direct checksum
864
961
  # value of the full object. Instead, it's a calculation based on the
@@ -900,14 +997,15 @@ module Aws::S3
900
997
  # @return [String]
901
998
  #
902
999
  # @!attribute [rw] checksum_sha1
903
- # The Base64 encoded, 160-bit `SHA1` digest of the object. This will
904
- # only be present if the object was uploaded with the object. When you
905
- # use the API operation on an object that was uploaded using multipart
906
- # uploads, this value may not be a direct checksum value of the full
907
- # object. Instead, it's a calculation based on the checksum values of
908
- # each individual part. For more information about how checksums are
909
- # calculated with multipart uploads, see [ Checking object
910
- # integrity][1] in the *Amazon S3 User Guide*.
1000
+ # The Base64 encoded, 160-bit `SHA1` digest of the object. This
1001
+ # checksum is only present if the checksum was uploaded with the
1002
+ # object. When you use the API operation on an object that was
1003
+ # uploaded using multipart uploads, this value may not be a direct
1004
+ # checksum value of the full object. Instead, it's a calculation
1005
+ # based on the checksum values of each individual part. For more
1006
+ # information about how checksums are calculated with multipart
1007
+ # uploads, see [ Checking object integrity][1] in the *Amazon S3 User
1008
+ # Guide*.
911
1009
  #
912
1010
  #
913
1011
  #
@@ -915,14 +1013,14 @@ module Aws::S3
915
1013
  # @return [String]
916
1014
  #
917
1015
  # @!attribute [rw] checksum_sha256
918
- # The Base64 encoded, 256-bit `SHA256` digest of the object. This will
919
- # only be present if the object was uploaded with the object. When you
920
- # use an API operation on an object that was uploaded using multipart
921
- # uploads, this value may not be a direct checksum value of the full
922
- # object. Instead, it's a calculation based on the checksum values of
923
- # each individual part. For more information about how checksums are
924
- # calculated with multipart uploads, see [ Checking object
925
- # integrity][1] in the *Amazon S3 User Guide*.
1016
+ # The Base64 encoded, 256-bit `SHA256` digest of the object. This
1017
+ # checksum is only present if the checksum was uploaded with the
1018
+ # object. When you use an API operation on an object that was uploaded
1019
+ # using multipart uploads, this value may not be a direct checksum
1020
+ # value of the full object. Instead, it's a calculation based on the
1021
+ # checksum values of each individual part. For more information about
1022
+ # how checksums are calculated with multipart uploads, see [ Checking
1023
+ # object integrity][1] in the *Amazon S3 User Guide*.
926
1024
  #
927
1025
  #
928
1026
  #
@@ -945,7 +1043,13 @@ module Aws::S3
945
1043
  #
946
1044
  # @!attribute [rw] server_side_encryption
947
1045
  # The server-side encryption algorithm used when storing this object
948
- # in Amazon S3 (for example, `AES256`, `aws:kms`).
1046
+ # in Amazon S3.
1047
+ #
1048
+ # <note markdown="1"> When accessing data stored in Amazon FSx file systems using S3
1049
+ # access points, the only valid server side encryption option is
1050
+ # `aws:fsx`.
1051
+ #
1052
+ # </note>
949
1053
  # @return [String]
950
1054
  #
951
1055
  # @!attribute [rw] version_id
@@ -1481,7 +1585,13 @@ module Aws::S3
1481
1585
  #
1482
1586
  # @!attribute [rw] server_side_encryption
1483
1587
  # The server-side encryption algorithm used when you store this object
1484
- # in Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
1588
+ # in Amazon S3 or Amazon FSx.
1589
+ #
1590
+ # <note markdown="1"> When accessing data stored in Amazon FSx file systems using S3
1591
+ # access points, the only valid server side encryption option is
1592
+ # `aws:fsx`.
1593
+ #
1594
+ # </note>
1485
1595
  # @return [String]
1486
1596
  #
1487
1597
  # @!attribute [rw] sse_customer_algorithm
@@ -1887,6 +1997,40 @@ module Aws::S3
1887
1997
  # </note>
1888
1998
  # @return [String]
1889
1999
  #
2000
+ # @!attribute [rw] if_match
2001
+ # Copies the object if the entity tag (ETag) of the destination object
2002
+ # matches the specified tag. If the ETag values do not match, the
2003
+ # operation returns a `412 Precondition Failed` error. If a concurrent
2004
+ # operation occurs during the upload S3 returns a `409
2005
+ # ConditionalRequestConflict` response. On a 409 failure you should
2006
+ # fetch the object's ETag and retry the upload.
2007
+ #
2008
+ # Expects the ETag value as a string.
2009
+ #
2010
+ # For more information about conditional requests, see [RFC 7232][1].
2011
+ #
2012
+ #
2013
+ #
2014
+ # [1]: https://tools.ietf.org/html/rfc7232
2015
+ # @return [String]
2016
+ #
2017
+ # @!attribute [rw] if_none_match
2018
+ # Copies the object only if the object key name at the destination
2019
+ # does not already exist in the bucket specified. Otherwise, Amazon S3
2020
+ # returns a `412 Precondition Failed` error. If a concurrent operation
2021
+ # occurs during the upload S3 returns a `409
2022
+ # ConditionalRequestConflict` response. On a 409 failure you should
2023
+ # retry the upload.
2024
+ #
2025
+ # Expects the '*' (asterisk) character.
2026
+ #
2027
+ # For more information about conditional requests, see [RFC 7232][1].
2028
+ #
2029
+ #
2030
+ #
2031
+ # [1]: https://tools.ietf.org/html/rfc7232
2032
+ # @return [String]
2033
+ #
1890
2034
  # @!attribute [rw] key
1891
2035
  # The key of the destination object.
1892
2036
  # @return [String]
@@ -2038,6 +2182,14 @@ module Aws::S3
2038
2182
  # key is the same customer managed key that you specified for the
2039
2183
  # directory bucket's default encryption configuration.
2040
2184
  #
2185
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data
2186
+ # stored in Amazon FSx file systems using S3 access points, the only
2187
+ # valid server side encryption option is `aws:fsx`. All Amazon FSx
2188
+ # file systems have encryption configured by default and are
2189
+ # encrypted at rest. Data is automatically encrypted before being
2190
+ # written to the file system, and automatically decrypted as it is
2191
+ # read. These processes are handled transparently by Amazon FSx.
2192
+ #
2041
2193
  #
2042
2194
  #
2043
2195
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
@@ -2405,6 +2557,8 @@ module Aws::S3
2405
2557
  :grant_read,
2406
2558
  :grant_read_acp,
2407
2559
  :grant_write_acp,
2560
+ :if_match,
2561
+ :if_none_match,
2408
2562
  :key,
2409
2563
  :metadata,
2410
2564
  :metadata_directive,
@@ -2466,9 +2620,9 @@ module Aws::S3
2466
2620
  #
2467
2621
  # @!attribute [rw] checksum_crc32c
2468
2622
  # The Base64 encoded, 32-bit `CRC32C` checksum of the object. This
2469
- # will only be present if the object was uploaded with the object. For
2470
- # more information, see [ Checking object integrity][1] in the *Amazon
2471
- # S3 User Guide*.
2623
+ # checksum is only present if the checksum was uploaded with the
2624
+ # object. For more information, see [ Checking object integrity][1] in
2625
+ # the *Amazon S3 User Guide*.
2472
2626
  #
2473
2627
  #
2474
2628
  #
@@ -2489,10 +2643,10 @@ module Aws::S3
2489
2643
  # @return [String]
2490
2644
  #
2491
2645
  # @!attribute [rw] checksum_sha1
2492
- # The Base64 encoded, 160-bit `SHA1` digest of the object. This will
2493
- # only be present if the object was uploaded with the object. For more
2494
- # information, see [ Checking object integrity][1] in the *Amazon S3
2495
- # User Guide*.
2646
+ # The Base64 encoded, 160-bit `SHA1` digest of the object. This
2647
+ # checksum is only present if the checksum was uploaded with the
2648
+ # object. For more information, see [ Checking object integrity][1] in
2649
+ # the *Amazon S3 User Guide*.
2496
2650
  #
2497
2651
  #
2498
2652
  #
@@ -2500,10 +2654,10 @@ module Aws::S3
2500
2654
  # @return [String]
2501
2655
  #
2502
2656
  # @!attribute [rw] checksum_sha256
2503
- # The Base64 encoded, 256-bit `SHA256` digest of the object. This will
2504
- # only be present if the object was uploaded with the object. For more
2505
- # information, see [ Checking object integrity][1] in the *Amazon S3
2506
- # User Guide*.
2657
+ # The Base64 encoded, 256-bit `SHA256` digest of the object. This
2658
+ # checksum is only present if the checksum was uploaded with the
2659
+ # object. For more information, see [ Checking object integrity][1] in
2660
+ # the *Amazon S3 User Guide*.
2507
2661
  #
2508
2662
  #
2509
2663
  #
@@ -2661,19 +2815,72 @@ module Aws::S3
2661
2815
  # </note>
2662
2816
  # @return [Types::BucketInfo]
2663
2817
  #
2818
+ # @!attribute [rw] tags
2819
+ # An array of tags that you can apply to the bucket that you're
2820
+ # creating. Tags are key-value pairs of metadata used to categorize
2821
+ # and organize your buckets, track costs, and control access.
2822
+ #
2823
+ # <note markdown="1"> This parameter is only supported for S3 directory buckets. For more
2824
+ # information, see [Using tags with directory buckets][1].
2825
+ #
2826
+ # You must have the `s3express:TagResource` permission to create a
2827
+ # directory bucket with tags.
2828
+ #
2829
+ # </note>
2830
+ #
2831
+ #
2832
+ #
2833
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html
2834
+ # @return [Array<Types::Tag>]
2835
+ #
2664
2836
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucketConfiguration AWS API Documentation
2665
2837
  #
2666
2838
  class CreateBucketConfiguration < Struct.new(
2667
2839
  :location_constraint,
2668
2840
  :location,
2669
- :bucket)
2841
+ :bucket,
2842
+ :tags)
2843
+ SENSITIVE = []
2844
+ include Aws::Structure
2845
+ end
2846
+
2847
+ # @!attribute [rw] bucket
2848
+ # The general purpose bucket that you want to create the metadata
2849
+ # configuration for.
2850
+ # @return [String]
2851
+ #
2852
+ # @!attribute [rw] content_md5
2853
+ # The `Content-MD5` header for the metadata configuration.
2854
+ # @return [String]
2855
+ #
2856
+ # @!attribute [rw] checksum_algorithm
2857
+ # The checksum algorithm to use with your metadata configuration.
2858
+ # @return [String]
2859
+ #
2860
+ # @!attribute [rw] metadata_configuration
2861
+ # The contents of your metadata configuration.
2862
+ # @return [Types::MetadataConfiguration]
2863
+ #
2864
+ # @!attribute [rw] expected_bucket_owner
2865
+ # The expected owner of the general purpose bucket that corresponds to
2866
+ # your metadata configuration.
2867
+ # @return [String]
2868
+ #
2869
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucketMetadataConfigurationRequest AWS API Documentation
2870
+ #
2871
+ class CreateBucketMetadataConfigurationRequest < Struct.new(
2872
+ :bucket,
2873
+ :content_md5,
2874
+ :checksum_algorithm,
2875
+ :metadata_configuration,
2876
+ :expected_bucket_owner)
2670
2877
  SENSITIVE = []
2671
2878
  include Aws::Structure
2672
2879
  end
2673
2880
 
2674
2881
  # @!attribute [rw] bucket
2675
2882
  # The general purpose bucket that you want to create the metadata
2676
- # table configuration in.
2883
+ # table configuration for.
2677
2884
  # @return [String]
2678
2885
  #
2679
2886
  # @!attribute [rw] content_md5
@@ -2690,8 +2897,8 @@ module Aws::S3
2690
2897
  # @return [Types::MetadataTableConfiguration]
2691
2898
  #
2692
2899
  # @!attribute [rw] expected_bucket_owner
2693
- # The expected owner of the general purpose bucket that contains your
2694
- # metadata table configuration.
2900
+ # The expected owner of the general purpose bucket that corresponds to
2901
+ # your metadata table configuration.
2695
2902
  # @return [String]
2696
2903
  #
2697
2904
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucketMetadataTableConfigurationRequest AWS API Documentation
@@ -2710,10 +2917,26 @@ module Aws::S3
2710
2917
  # A forward slash followed by the name of the bucket.
2711
2918
  # @return [String]
2712
2919
  #
2920
+ # @!attribute [rw] bucket_arn
2921
+ # The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely
2922
+ # identify Amazon Web Services resources across all of Amazon Web
2923
+ # Services.
2924
+ #
2925
+ # <note markdown="1"> This parameter is only supported for S3 directory buckets. For more
2926
+ # information, see [Using tags with directory buckets][1].
2927
+ #
2928
+ # </note>
2929
+ #
2930
+ #
2931
+ #
2932
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html
2933
+ # @return [String]
2934
+ #
2713
2935
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucketOutput AWS API Documentation
2714
2936
  #
2715
2937
  class CreateBucketOutput < Struct.new(
2716
- :location)
2938
+ :location,
2939
+ :bucket_arn)
2717
2940
  SENSITIVE = []
2718
2941
  include Aws::Structure
2719
2942
  end
@@ -2912,7 +3135,13 @@ module Aws::S3
2912
3135
  #
2913
3136
  # @!attribute [rw] server_side_encryption
2914
3137
  # The server-side encryption algorithm used when you store this object
2915
- # in Amazon S3 (for example, `AES256`, `aws:kms`).
3138
+ # in Amazon S3 or Amazon FSx.
3139
+ #
3140
+ # <note markdown="1"> When accessing data stored in Amazon FSx file systems using S3
3141
+ # access points, the only valid server side encryption option is
3142
+ # `aws:fsx`.
3143
+ #
3144
+ # </note>
2916
3145
  # @return [String]
2917
3146
  #
2918
3147
  # @!attribute [rw] sse_customer_algorithm
@@ -3380,7 +3609,7 @@ module Aws::S3
3380
3609
  #
3381
3610
  # @!attribute [rw] server_side_encryption
3382
3611
  # The server-side encryption algorithm used when you store this object
3383
- # in Amazon S3 (for example, `AES256`, `aws:kms`).
3612
+ # in Amazon S3 or Amazon FSx.
3384
3613
  #
3385
3614
  # * <b>Directory buckets </b> - For directory buckets, there are only
3386
3615
  # two supported options for server-side encryption: server-side
@@ -3423,6 +3652,14 @@ module Aws::S3
3423
3652
  #
3424
3653
  # </note>
3425
3654
  #
3655
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data
3656
+ # stored in Amazon FSx file systems using S3 access points, the only
3657
+ # valid server side encryption option is `aws:fsx`. All Amazon FSx
3658
+ # file systems have encryption configured by default and are
3659
+ # encrypted at rest. Data is automatically encrypted before being
3660
+ # written to the file system, and automatically decrypted as it is
3661
+ # read. These processes are handled transparently by Amazon FSx.
3662
+ #
3426
3663
  #
3427
3664
  #
3428
3665
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-serv-side-encryption.html
@@ -3689,6 +3926,12 @@ module Aws::S3
3689
3926
  # @!attribute [rw] server_side_encryption
3690
3927
  # The server-side encryption algorithm used when you store objects in
3691
3928
  # the directory bucket.
3929
+ #
3930
+ # <note markdown="1"> When accessing data stored in Amazon FSx file systems using S3
3931
+ # access points, the only valid server side encryption option is
3932
+ # `aws:fsx`.
3933
+ #
3934
+ # </note>
3692
3935
  # @return [String]
3693
3936
  #
3694
3937
  # @!attribute [rw] ssekms_key_id
@@ -3753,6 +3996,14 @@ module Aws::S3
3753
3996
  # SSE-S3. For more information, see [Protecting data with server-side
3754
3997
  # encryption][1] in the *Amazon S3 User Guide*.
3755
3998
  #
3999
+ # <b>S3 access points for Amazon FSx </b> - When accessing data stored
4000
+ # in Amazon FSx file systems using S3 access points, the only valid
4001
+ # server side encryption option is `aws:fsx`. All Amazon FSx file
4002
+ # systems have encryption configured by default and are encrypted at
4003
+ # rest. Data is automatically encrypted before being written to the
4004
+ # file system, and automatically decrypted as it is read. These
4005
+ # processes are handled transparently by Amazon FSx.
4006
+ #
3756
4007
  #
3757
4008
  #
3758
4009
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html
@@ -4000,11 +4251,19 @@ module Aws::S3
4000
4251
  # The ID used to identify the S3 Intelligent-Tiering configuration.
4001
4252
  # @return [String]
4002
4253
  #
4254
+ # @!attribute [rw] expected_bucket_owner
4255
+ # The account ID of the expected bucket owner. If the account ID that
4256
+ # you provide does not match the actual owner of the bucket, the
4257
+ # request fails with the HTTP status code `403 Forbidden` (access
4258
+ # denied).
4259
+ # @return [String]
4260
+ #
4003
4261
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketIntelligentTieringConfigurationRequest AWS API Documentation
4004
4262
  #
4005
4263
  class DeleteBucketIntelligentTieringConfigurationRequest < Struct.new(
4006
4264
  :bucket,
4007
- :id)
4265
+ :id,
4266
+ :expected_bucket_owner)
4008
4267
  SENSITIVE = []
4009
4268
  include Aws::Structure
4010
4269
  end
@@ -4060,6 +4319,25 @@ module Aws::S3
4060
4319
  include Aws::Structure
4061
4320
  end
4062
4321
 
4322
+ # @!attribute [rw] bucket
4323
+ # The general purpose bucket that you want to remove the metadata
4324
+ # configuration from.
4325
+ # @return [String]
4326
+ #
4327
+ # @!attribute [rw] expected_bucket_owner
4328
+ # The expected bucket owner of the general purpose bucket that you
4329
+ # want to remove the metadata table configuration from.
4330
+ # @return [String]
4331
+ #
4332
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketMetadataConfigurationRequest AWS API Documentation
4333
+ #
4334
+ class DeleteBucketMetadataConfigurationRequest < Struct.new(
4335
+ :bucket,
4336
+ :expected_bucket_owner)
4337
+ SENSITIVE = []
4338
+ include Aws::Structure
4339
+ end
4340
+
4063
4341
  # @!attribute [rw] bucket
4064
4342
  # The general purpose bucket that you want to remove the metadata
4065
4343
  # table configuration from.
@@ -4502,17 +4780,16 @@ module Aws::S3
4502
4780
  # @return [String]
4503
4781
  #
4504
4782
  # @!attribute [rw] if_match
4505
- # The `If-Match` header field makes the request method conditional on
4506
- # ETags. If the ETag value does not match, the operation returns a
4507
- # `412 Precondition Failed` error. If the ETag matches or if the
4508
- # object doesn't exist, the operation will return a `204 Success (No
4509
- # Content) response`.
4783
+ # Deletes the object if the ETag (entity tag) value provided during
4784
+ # the delete operation matches the ETag of the object in S3. If the
4785
+ # ETag values do not match, the operation returns a `412 Precondition
4786
+ # Failed` error.
4510
4787
  #
4511
- # For more information about conditional requests, see [RFC 7232][1].
4788
+ # Expects the ETag value as a string. `If-Match` does accept a string
4789
+ # value of an '*' (asterisk) character to denote a match of any
4790
+ # ETag.
4512
4791
  #
4513
- # <note markdown="1"> This functionality is only supported for directory buckets.
4514
- #
4515
- # </note>
4792
+ # For more information about conditional requests, see [RFC 7232][1].
4516
4793
  #
4517
4794
  #
4518
4795
  #
@@ -4938,6 +5215,8 @@ module Aws::S3
4938
5215
  # For valid values, see the `StorageClass` element of the [PUT Bucket
4939
5216
  # replication][1] action in the *Amazon S3 API Reference*.
4940
5217
  #
5218
+ # `FSX_OPENZFS` is not an accepted value when replicating objects.
5219
+ #
4941
5220
  #
4942
5221
  #
4943
5222
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTreplication.html
@@ -4984,6 +5263,37 @@ module Aws::S3
4984
5263
  include Aws::Structure
4985
5264
  end
4986
5265
 
5266
+ # The destination information for the S3 Metadata configuration.
5267
+ #
5268
+ # @!attribute [rw] table_bucket_type
5269
+ # The type of the table bucket where the metadata configuration is
5270
+ # stored. The `aws` value indicates an Amazon Web Services managed
5271
+ # table bucket, and the `customer` value indicates a customer-managed
5272
+ # table bucket. V2 metadata configurations are stored in Amazon Web
5273
+ # Services managed table buckets, and V1 metadata configurations are
5274
+ # stored in customer-managed table buckets.
5275
+ # @return [String]
5276
+ #
5277
+ # @!attribute [rw] table_bucket_arn
5278
+ # The Amazon Resource Name (ARN) of the table bucket where the
5279
+ # metadata configuration is stored.
5280
+ # @return [String]
5281
+ #
5282
+ # @!attribute [rw] table_namespace
5283
+ # The namespace in the table bucket where the metadata tables for a
5284
+ # metadata configuration are stored.
5285
+ # @return [String]
5286
+ #
5287
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DestinationResult AWS API Documentation
5288
+ #
5289
+ class DestinationResult < Struct.new(
5290
+ :table_bucket_type,
5291
+ :table_bucket_arn,
5292
+ :table_namespace)
5293
+ SENSITIVE = []
5294
+ include Aws::Structure
5295
+ end
5296
+
4987
5297
  # Contains the type of server-side encryption used.
4988
5298
  #
4989
5299
  # @!attribute [rw] encryption_type
@@ -5825,12 +6135,24 @@ module Aws::S3
5825
6135
  include Aws::Structure
5826
6136
  end
5827
6137
 
5828
- # If the `CreateBucketMetadataTableConfiguration` request succeeds, but
5829
- # S3 Metadata was unable to create the table, this structure contains
5830
- # the error code and error message.
6138
+ # If an S3 Metadata V1 `CreateBucketMetadataTableConfiguration` or V2
6139
+ # `CreateBucketMetadataConfiguration` request succeeds, but S3 Metadata
6140
+ # was unable to create the table, this structure contains the error code
6141
+ # and error message.
6142
+ #
6143
+ # <note markdown="1"> If you created your S3 Metadata configuration before July 15, 2025, we
6144
+ # recommend that you delete and re-create your configuration by using
6145
+ # [CreateBucketMetadataConfiguration][1] so that you can expire journal
6146
+ # table records and create a live inventory table.
6147
+ #
6148
+ # </note>
6149
+ #
6150
+ #
6151
+ #
6152
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html
5831
6153
  #
5832
6154
  # @!attribute [rw] error_code
5833
- # If the `CreateBucketMetadataTableConfiguration` request succeeds,
6155
+ # If the V1 `CreateBucketMetadataTableConfiguration` request succeeds,
5834
6156
  # but S3 Metadata was unable to create the table, this structure
5835
6157
  # contains the error code. The possible error codes and error messages
5836
6158
  # are as follows:
@@ -5869,10 +6191,65 @@ module Aws::S3
5869
6191
  # Create or choose a different table bucket. To create a new
5870
6192
  # metadata table, you must delete the metadata configuration for
5871
6193
  # this bucket, and then create a new metadata configuration.
6194
+ #
6195
+ # If the V2 `CreateBucketMetadataConfiguration` request succeeds, but
6196
+ # S3 Metadata was unable to create the table, this structure contains
6197
+ # the error code. The possible error codes and error messages are as
6198
+ # follows:
6199
+ #
6200
+ # * `AccessDeniedCreatingResources` - You don't have sufficient
6201
+ # permissions to create the required resources. Make sure that you
6202
+ # have `s3tables:CreateTableBucket`, `s3tables:CreateNamespace`,
6203
+ # `s3tables:CreateTable`, `s3tables:GetTable`,
6204
+ # `s3tables:PutTablePolicy`, `kms:DescribeKey`, and
6205
+ # `s3tables:PutTableEncryption` permissions. Additionally, ensure
6206
+ # that the KMS key used to encrypt the table still exists, is active
6207
+ # and has a resource policy granting access to the S3 service
6208
+ # principals '`maintenance.s3tables.amazonaws.com`' and
6209
+ # '`metadata.s3.amazonaws.com`'. To create a new metadata table,
6210
+ # you must delete the metadata configuration for this bucket, and
6211
+ # then create a new metadata configuration.
6212
+ #
6213
+ # * `AccessDeniedWritingToTable` - Unable to write to the metadata
6214
+ # table because of missing resource permissions. To fix the resource
6215
+ # policy, Amazon S3 needs to create a new metadata table. To create
6216
+ # a new metadata table, you must delete the metadata configuration
6217
+ # for this bucket, and then create a new metadata configuration.
6218
+ #
6219
+ # * `DestinationTableNotFound` - The destination table doesn't exist.
6220
+ # To create a new metadata table, you must delete the metadata
6221
+ # configuration for this bucket, and then create a new metadata
6222
+ # configuration.
6223
+ #
6224
+ # * `ServerInternalError` - An internal error has occurred. To create
6225
+ # a new metadata table, you must delete the metadata configuration
6226
+ # for this bucket, and then create a new metadata configuration.
6227
+ #
6228
+ # * `JournalTableAlreadyExists` - A journal table already exists in
6229
+ # the Amazon Web Services managed table bucket's namespace. Delete
6230
+ # the journal table, and then try again. To create a new metadata
6231
+ # table, you must delete the metadata configuration for this bucket,
6232
+ # and then create a new metadata configuration.
6233
+ #
6234
+ # * `InventoryTableAlreadyExists` - An inventory table already exists
6235
+ # in the Amazon Web Services managed table bucket's namespace.
6236
+ # Delete the inventory table, and then try again. To create a new
6237
+ # metadata table, you must delete the metadata configuration for
6238
+ # this bucket, and then create a new metadata configuration.
6239
+ #
6240
+ # * `JournalTableNotAvailable` - The journal table that the inventory
6241
+ # table relies on has a `FAILED` status. An inventory table requires
6242
+ # a journal table with an `ACTIVE` status. To create a new journal
6243
+ # or inventory table, you must delete the metadata configuration for
6244
+ # this bucket, along with any journal or inventory tables, and then
6245
+ # create a new metadata configuration.
6246
+ #
6247
+ # * `NoSuchBucket` - The specified general purpose bucket does not
6248
+ # exist.
5872
6249
  # @return [String]
5873
6250
  #
5874
6251
  # @!attribute [rw] error_message
5875
- # If the `CreateBucketMetadataTableConfiguration` request succeeds,
6252
+ # If the V1 `CreateBucketMetadataTableConfiguration` request succeeds,
5876
6253
  # but S3 Metadata was unable to create the table, this structure
5877
6254
  # contains the error message. The possible error codes and error
5878
6255
  # messages are as follows:
@@ -5911,6 +6288,61 @@ module Aws::S3
5911
6288
  # Create or choose a different table bucket. To create a new
5912
6289
  # metadata table, you must delete the metadata configuration for
5913
6290
  # this bucket, and then create a new metadata configuration.
6291
+ #
6292
+ # If the V2 `CreateBucketMetadataConfiguration` request succeeds, but
6293
+ # S3 Metadata was unable to create the table, this structure contains
6294
+ # the error code. The possible error codes and error messages are as
6295
+ # follows:
6296
+ #
6297
+ # * `AccessDeniedCreatingResources` - You don't have sufficient
6298
+ # permissions to create the required resources. Make sure that you
6299
+ # have `s3tables:CreateTableBucket`, `s3tables:CreateNamespace`,
6300
+ # `s3tables:CreateTable`, `s3tables:GetTable`,
6301
+ # `s3tables:PutTablePolicy`, `kms:DescribeKey`, and
6302
+ # `s3tables:PutTableEncryption` permissions. Additionally, ensure
6303
+ # that the KMS key used to encrypt the table still exists, is active
6304
+ # and has a resource policy granting access to the S3 service
6305
+ # principals '`maintenance.s3tables.amazonaws.com`' and
6306
+ # '`metadata.s3.amazonaws.com`'. To create a new metadata table,
6307
+ # you must delete the metadata configuration for this bucket, and
6308
+ # then create a new metadata configuration.
6309
+ #
6310
+ # * `AccessDeniedWritingToTable` - Unable to write to the metadata
6311
+ # table because of missing resource permissions. To fix the resource
6312
+ # policy, Amazon S3 needs to create a new metadata table. To create
6313
+ # a new metadata table, you must delete the metadata configuration
6314
+ # for this bucket, and then create a new metadata configuration.
6315
+ #
6316
+ # * `DestinationTableNotFound` - The destination table doesn't exist.
6317
+ # To create a new metadata table, you must delete the metadata
6318
+ # configuration for this bucket, and then create a new metadata
6319
+ # configuration.
6320
+ #
6321
+ # * `ServerInternalError` - An internal error has occurred. To create
6322
+ # a new metadata table, you must delete the metadata configuration
6323
+ # for this bucket, and then create a new metadata configuration.
6324
+ #
6325
+ # * `JournalTableAlreadyExists` - A journal table already exists in
6326
+ # the Amazon Web Services managed table bucket's namespace. Delete
6327
+ # the journal table, and then try again. To create a new metadata
6328
+ # table, you must delete the metadata configuration for this bucket,
6329
+ # and then create a new metadata configuration.
6330
+ #
6331
+ # * `InventoryTableAlreadyExists` - An inventory table already exists
6332
+ # in the Amazon Web Services managed table bucket's namespace.
6333
+ # Delete the inventory table, and then try again. To create a new
6334
+ # metadata table, you must delete the metadata configuration for
6335
+ # this bucket, and then create a new metadata configuration.
6336
+ #
6337
+ # * `JournalTableNotAvailable` - The journal table that the inventory
6338
+ # table relies on has a `FAILED` status. An inventory table requires
6339
+ # a journal table with an `ACTIVE` status. To create a new journal
6340
+ # or inventory table, you must delete the metadata configuration for
6341
+ # this bucket, along with any journal or inventory tables, and then
6342
+ # create a new metadata configuration.
6343
+ #
6344
+ # * `NoSuchBucket` - The specified general purpose bucket does not
6345
+ # exist.
5914
6346
  # @return [String]
5915
6347
  #
5916
6348
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ErrorDetails AWS API Documentation
@@ -6004,11 +6436,41 @@ module Aws::S3
6004
6436
  # The value that the filter searches for in object key names.
6005
6437
  # @return [String]
6006
6438
  #
6007
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/FilterRule AWS API Documentation
6439
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/FilterRule AWS API Documentation
6440
+ #
6441
+ class FilterRule < Struct.new(
6442
+ :name,
6443
+ :value)
6444
+ SENSITIVE = []
6445
+ include Aws::Structure
6446
+ end
6447
+
6448
+ # @!attribute [rw] abac_status
6449
+ # The ABAC status of the general purpose bucket.
6450
+ # @return [Types::AbacStatus]
6451
+ #
6452
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAbacOutput AWS API Documentation
6453
+ #
6454
+ class GetBucketAbacOutput < Struct.new(
6455
+ :abac_status)
6456
+ SENSITIVE = []
6457
+ include Aws::Structure
6458
+ end
6459
+
6460
+ # @!attribute [rw] bucket
6461
+ # The name of the general purpose bucket.
6462
+ # @return [String]
6463
+ #
6464
+ # @!attribute [rw] expected_bucket_owner
6465
+ # The Amazon Web Services account ID of the general purpose bucket's
6466
+ # owner.
6467
+ # @return [String]
6468
+ #
6469
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAbacRequest AWS API Documentation
6008
6470
  #
6009
- class FilterRule < Struct.new(
6010
- :name,
6011
- :value)
6471
+ class GetBucketAbacRequest < Struct.new(
6472
+ :bucket,
6473
+ :expected_bucket_owner)
6012
6474
  SENSITIVE = []
6013
6475
  include Aws::Structure
6014
6476
  end
@@ -6292,11 +6754,19 @@ module Aws::S3
6292
6754
  # The ID used to identify the S3 Intelligent-Tiering configuration.
6293
6755
  # @return [String]
6294
6756
  #
6757
+ # @!attribute [rw] expected_bucket_owner
6758
+ # The account ID of the expected bucket owner. If the account ID that
6759
+ # you provide does not match the actual owner of the bucket, the
6760
+ # request fails with the HTTP status code `403 Forbidden` (access
6761
+ # denied).
6762
+ # @return [String]
6763
+ #
6295
6764
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketIntelligentTieringConfigurationRequest AWS API Documentation
6296
6765
  #
6297
6766
  class GetBucketIntelligentTieringConfigurationRequest < Struct.new(
6298
6767
  :bucket,
6299
- :id)
6768
+ :id,
6769
+ :expected_bucket_owner)
6300
6770
  SENSITIVE = []
6301
6771
  include Aws::Structure
6302
6772
  end
@@ -6525,6 +6995,51 @@ module Aws::S3
6525
6995
  include Aws::Structure
6526
6996
  end
6527
6997
 
6998
+ # @!attribute [rw] get_bucket_metadata_configuration_result
6999
+ # The metadata configuration for the general purpose bucket.
7000
+ # @return [Types::GetBucketMetadataConfigurationResult]
7001
+ #
7002
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetadataConfigurationOutput AWS API Documentation
7003
+ #
7004
+ class GetBucketMetadataConfigurationOutput < Struct.new(
7005
+ :get_bucket_metadata_configuration_result)
7006
+ SENSITIVE = []
7007
+ include Aws::Structure
7008
+ end
7009
+
7010
+ # @!attribute [rw] bucket
7011
+ # The general purpose bucket that corresponds to the metadata
7012
+ # configuration that you want to retrieve.
7013
+ # @return [String]
7014
+ #
7015
+ # @!attribute [rw] expected_bucket_owner
7016
+ # The expected owner of the general purpose bucket that you want to
7017
+ # retrieve the metadata table configuration for.
7018
+ # @return [String]
7019
+ #
7020
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetadataConfigurationRequest AWS API Documentation
7021
+ #
7022
+ class GetBucketMetadataConfigurationRequest < Struct.new(
7023
+ :bucket,
7024
+ :expected_bucket_owner)
7025
+ SENSITIVE = []
7026
+ include Aws::Structure
7027
+ end
7028
+
7029
+ # The S3 Metadata configuration for a general purpose bucket.
7030
+ #
7031
+ # @!attribute [rw] metadata_configuration_result
7032
+ # The metadata configuration for a general purpose bucket.
7033
+ # @return [Types::MetadataConfigurationResult]
7034
+ #
7035
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetadataConfigurationResult AWS API Documentation
7036
+ #
7037
+ class GetBucketMetadataConfigurationResult < Struct.new(
7038
+ :metadata_configuration_result)
7039
+ SENSITIVE = []
7040
+ include Aws::Structure
7041
+ end
7042
+
6528
7043
  # @!attribute [rw] get_bucket_metadata_table_configuration_result
6529
7044
  # The metadata table configuration for the general purpose bucket.
6530
7045
  # @return [Types::GetBucketMetadataTableConfigurationResult]
@@ -6538,13 +7053,13 @@ module Aws::S3
6538
7053
  end
6539
7054
 
6540
7055
  # @!attribute [rw] bucket
6541
- # The general purpose bucket that contains the metadata table
7056
+ # The general purpose bucket that corresponds to the metadata table
6542
7057
  # configuration that you want to retrieve.
6543
7058
  # @return [String]
6544
7059
  #
6545
7060
  # @!attribute [rw] expected_bucket_owner
6546
7061
  # The expected owner of the general purpose bucket that you want to
6547
- # retrieve the metadata table configuration from.
7062
+ # retrieve the metadata table configuration for.
6548
7063
  # @return [String]
6549
7064
  #
6550
7065
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetadataTableConfigurationRequest AWS API Documentation
@@ -6556,10 +7071,21 @@ module Aws::S3
6556
7071
  include Aws::Structure
6557
7072
  end
6558
7073
 
6559
- # The metadata table configuration for a general purpose bucket.
7074
+ # The V1 S3 Metadata configuration for a general purpose bucket.
7075
+ #
7076
+ # <note markdown="1"> If you created your S3 Metadata configuration before July 15, 2025, we
7077
+ # recommend that you delete and re-create your configuration by using
7078
+ # [CreateBucketMetadataConfiguration][1] so that you can expire journal
7079
+ # table records and create a live inventory table.
7080
+ #
7081
+ # </note>
7082
+ #
7083
+ #
7084
+ #
7085
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html
6560
7086
  #
6561
7087
  # @!attribute [rw] metadata_table_configuration_result
6562
- # The metadata table configuration for a general purpose bucket.
7088
+ # The V1 S3 Metadata configuration for a general purpose bucket.
6563
7089
  # @return [Types::MetadataTableConfigurationResult]
6564
7090
  #
6565
7091
  # @!attribute [rw] status
@@ -6568,7 +7094,7 @@ module Aws::S3
6568
7094
  # * `CREATING` - The metadata table is in the process of being created
6569
7095
  # in the specified table bucket.
6570
7096
  #
6571
- # * `ACTIVE` - The metadata table has been created successfully and
7097
+ # * `ACTIVE` - The metadata table has been created successfully, and
6572
7098
  # records are being delivered to the table.
6573
7099
  #
6574
7100
  # * `FAILED` - Amazon S3 is unable to create the metadata table, or
@@ -7222,15 +7748,15 @@ module Aws::S3
7222
7748
  # A container for elements related to a particular part. A response
7223
7749
  # can contain zero or more `Parts` elements.
7224
7750
  #
7225
- # <note markdown="1"> * **General purpose buckets** - For `GetObjectAttributes`, if a
7751
+ # <note markdown="1"> * **General purpose buckets** - For `GetObjectAttributes`, if an
7226
7752
  # additional checksum (including `x-amz-checksum-crc32`,
7227
7753
  # `x-amz-checksum-crc32c`, `x-amz-checksum-sha1`, or
7228
7754
  # `x-amz-checksum-sha256`) isn't applied to the object specified in
7229
- # the request, the response doesn't return `Part`.
7755
+ # the request, the response doesn't return the `Part` element.
7230
7756
  #
7231
- # * **Directory buckets** - For `GetObjectAttributes`, no matter
7232
- # whether a additional checksum is applied to the object specified
7233
- # in the request, the response returns `Part`.
7757
+ # * **Directory buckets** - For `GetObjectAttributes`, regardless of
7758
+ # whether an additional checksum is applied to the object specified
7759
+ # in the request, the response returns the `Part` element.
7234
7760
  #
7235
7761
  # </note>
7236
7762
  # @return [Array<Types::ObjectPart>]
@@ -7627,9 +8153,9 @@ module Aws::S3
7627
8153
  #
7628
8154
  # @!attribute [rw] checksum_crc32c
7629
8155
  # The Base64 encoded, 32-bit `CRC32C` checksum of the object. This
7630
- # will only be present if the object was uploaded with the object. For
7631
- # more information, see [ Checking object integrity][1] in the *Amazon
7632
- # S3 User Guide*.
8156
+ # checksum is only present if the checksum was uploaded with the
8157
+ # object. For more information, see [ Checking object integrity][1] in
8158
+ # the *Amazon S3 User Guide*.
7633
8159
  #
7634
8160
  #
7635
8161
  #
@@ -7647,10 +8173,10 @@ module Aws::S3
7647
8173
  # @return [String]
7648
8174
  #
7649
8175
  # @!attribute [rw] checksum_sha1
7650
- # The Base64 encoded, 160-bit `SHA1` digest of the object. This will
7651
- # only be present if the object was uploaded with the object. For more
7652
- # information, see [ Checking object integrity][1] in the *Amazon S3
7653
- # User Guide*.
8176
+ # The Base64 encoded, 160-bit `SHA1` digest of the object. This
8177
+ # checksum is only present if the checksum was uploaded with the
8178
+ # object. For more information, see [ Checking object integrity][1] in
8179
+ # the *Amazon S3 User Guide*.
7654
8180
  #
7655
8181
  #
7656
8182
  #
@@ -7658,10 +8184,10 @@ module Aws::S3
7658
8184
  # @return [String]
7659
8185
  #
7660
8186
  # @!attribute [rw] checksum_sha256
7661
- # The Base64 encoded, 256-bit `SHA256` digest of the object. This will
7662
- # only be present if the object was uploaded with the object. For more
7663
- # information, see [ Checking object integrity][1] in the *Amazon S3
7664
- # User Guide*.
8187
+ # The Base64 encoded, 256-bit `SHA256` digest of the object. This
8188
+ # checksum is only present if the checksum was uploaded with the
8189
+ # object. For more information, see [ Checking object integrity][1] in
8190
+ # the *Amazon S3 User Guide*.
7665
8191
  #
7666
8192
  #
7667
8193
  #
@@ -7747,7 +8273,13 @@ module Aws::S3
7747
8273
  #
7748
8274
  # @!attribute [rw] server_side_encryption
7749
8275
  # The server-side encryption algorithm used when you store this object
7750
- # in Amazon S3.
8276
+ # in Amazon S3 or Amazon FSx.
8277
+ #
8278
+ # <note markdown="1"> When accessing data stored in Amazon FSx file systems using S3
8279
+ # access points, the only valid server side encryption option is
8280
+ # `aws:fsx`.
8281
+ #
8282
+ # </note>
7751
8283
  # @return [String]
7752
8284
  #
7753
8285
  # @!attribute [rw] metadata
@@ -8583,6 +9115,19 @@ module Aws::S3
8583
9115
  include Aws::Structure
8584
9116
  end
8585
9117
 
9118
+ # End of support notice: Beginning November 21, 2025, Amazon S3 will
9119
+ # stop returning `DisplayName`. Update your applications to use
9120
+ # canonical IDs (unique identifier for Amazon Web Services accounts),
9121
+ # Amazon Web Services account ID (12 digit identifier) or IAM ARNs (full
9122
+ # resource naming) as a direct replacement of `DisplayName`.
9123
+ #
9124
+ # This change affects the following Amazon Web Services Regions: US
9125
+ # East
9126
+ # (N. Virginia) Region, US West (N. California) Region, US West (Oregon)
9127
+ # Region, Asia Pacific (Singapore) Region, Asia Pacific (Sydney) Region,
9128
+ # Asia Pacific (Tokyo) Region, Europe (Ireland) Region, and South
9129
+ # America (São Paulo) Region.
9130
+ #
8586
9131
  # Container for the person being granted permissions.
8587
9132
  #
8588
9133
  # @!attribute [rw] display_name
@@ -8646,6 +9191,21 @@ module Aws::S3
8646
9191
  include Aws::Structure
8647
9192
  end
8648
9193
 
9194
+ # @!attribute [rw] bucket_arn
9195
+ # The Amazon Resource Name (ARN) of the S3 bucket. ARNs uniquely
9196
+ # identify Amazon Web Services resources across all of Amazon Web
9197
+ # Services.
9198
+ #
9199
+ # <note markdown="1"> This parameter is only supported for S3 directory buckets. For more
9200
+ # information, see [Using tags with directory buckets][1].
9201
+ #
9202
+ # </note>
9203
+ #
9204
+ #
9205
+ #
9206
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-buckets-tagging.html
9207
+ # @return [String]
9208
+ #
8649
9209
  # @!attribute [rw] bucket_location_type
8650
9210
  # The type of location where the bucket is created.
8651
9211
  #
@@ -8682,6 +9242,7 @@ module Aws::S3
8682
9242
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadBucketOutput AWS API Documentation
8683
9243
  #
8684
9244
  class HeadBucketOutput < Struct.new(
9245
+ :bucket_arn,
8685
9246
  :bucket_location_type,
8686
9247
  :bucket_location_name,
8687
9248
  :bucket_region,
@@ -8842,7 +9403,7 @@ module Aws::S3
8842
9403
  #
8843
9404
  # @!attribute [rw] checksum_crc32
8844
9405
  # The Base64 encoded, 32-bit `CRC32 checksum` of the object. This
8845
- # checksum is only be present if the checksum was uploaded with the
9406
+ # checksum is only present if the checksum was uploaded with the
8846
9407
  # object. When you use an API operation on an object that was uploaded
8847
9408
  # using multipart uploads, this value may not be a direct checksum
8848
9409
  # value of the full object. Instead, it's a calculation based on the
@@ -8881,14 +9442,15 @@ module Aws::S3
8881
9442
  # @return [String]
8882
9443
  #
8883
9444
  # @!attribute [rw] checksum_sha1
8884
- # The Base64 encoded, 160-bit `SHA1` digest of the object. This will
8885
- # only be present if the object was uploaded with the object. When you
8886
- # use the API operation on an object that was uploaded using multipart
8887
- # uploads, this value may not be a direct checksum value of the full
8888
- # object. Instead, it's a calculation based on the checksum values of
8889
- # each individual part. For more information about how checksums are
8890
- # calculated with multipart uploads, see [ Checking object
8891
- # integrity][1] in the *Amazon S3 User Guide*.
9445
+ # The Base64 encoded, 160-bit `SHA1` digest of the object. This
9446
+ # checksum is only present if the checksum was uploaded with the
9447
+ # object. When you use the API operation on an object that was
9448
+ # uploaded using multipart uploads, this value may not be a direct
9449
+ # checksum value of the full object. Instead, it's a calculation
9450
+ # based on the checksum values of each individual part. For more
9451
+ # information about how checksums are calculated with multipart
9452
+ # uploads, see [ Checking object integrity][1] in the *Amazon S3 User
9453
+ # Guide*.
8892
9454
  #
8893
9455
  #
8894
9456
  #
@@ -8896,14 +9458,14 @@ module Aws::S3
8896
9458
  # @return [String]
8897
9459
  #
8898
9460
  # @!attribute [rw] checksum_sha256
8899
- # The Base64 encoded, 256-bit `SHA256` digest of the object. This will
8900
- # only be present if the object was uploaded with the object. When you
8901
- # use an API operation on an object that was uploaded using multipart
8902
- # uploads, this value may not be a direct checksum value of the full
8903
- # object. Instead, it's a calculation based on the checksum values of
8904
- # each individual part. For more information about how checksums are
8905
- # calculated with multipart uploads, see [ Checking object
8906
- # integrity][1] in the *Amazon S3 User Guide*.
9461
+ # The Base64 encoded, 256-bit `SHA256` digest of the object. This
9462
+ # checksum is only present if the checksum was uploaded with the
9463
+ # object. When you use an API operation on an object that was uploaded
9464
+ # using multipart uploads, this value may not be a direct checksum
9465
+ # value of the full object. Instead, it's a calculation based on the
9466
+ # checksum values of each individual part. For more information about
9467
+ # how checksums are calculated with multipart uploads, see [ Checking
9468
+ # object integrity][1] in the *Amazon S3 User Guide*.
8907
9469
  #
8908
9470
  #
8909
9471
  #
@@ -8995,7 +9557,13 @@ module Aws::S3
8995
9557
  #
8996
9558
  # @!attribute [rw] server_side_encryption
8997
9559
  # The server-side encryption algorithm used when you store this object
8998
- # in Amazon S3 (for example, `AES256`, `aws:kms`, `aws:kms:dsse`).
9560
+ # in Amazon S3 or Amazon FSx.
9561
+ #
9562
+ # <note markdown="1"> When accessing data stored in Amazon FSx file systems using S3
9563
+ # access points, the only valid server side encryption option is
9564
+ # `aws:fsx`.
9565
+ #
9566
+ # </note>
8999
9567
  # @return [String]
9000
9568
  #
9001
9569
  # @!attribute [rw] metadata
@@ -9121,6 +9689,22 @@ module Aws::S3
9121
9689
  # as a multipart upload.
9122
9690
  # @return [Integer]
9123
9691
  #
9692
+ # @!attribute [rw] tag_count
9693
+ # The number of tags, if any, on the object, when you have the
9694
+ # relevant permission to read object tags.
9695
+ #
9696
+ # You can use [GetObjectTagging][1] to retrieve the tag set associated
9697
+ # with an object.
9698
+ #
9699
+ # <note markdown="1"> This functionality is not supported for directory buckets.
9700
+ #
9701
+ # </note>
9702
+ #
9703
+ #
9704
+ #
9705
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectTagging.html
9706
+ # @return [Integer]
9707
+ #
9124
9708
  # @!attribute [rw] object_lock_mode
9125
9709
  # The Object Lock mode, if any, that's in effect for this object.
9126
9710
  # This header is only returned if the requester has the
@@ -9201,6 +9785,7 @@ module Aws::S3
9201
9785
  :request_charged,
9202
9786
  :replication_status,
9203
9787
  :parts_count,
9788
+ :tag_count,
9204
9789
  :object_lock_mode,
9205
9790
  :object_lock_retain_until_date,
9206
9791
  :object_lock_legal_hold_status)
@@ -9489,6 +10074,27 @@ module Aws::S3
9489
10074
  include Aws::Structure
9490
10075
  end
9491
10076
 
10077
+ # Parameters on this idempotent request are inconsistent with parameters
10078
+ # used in previous request(s).
10079
+ #
10080
+ # For a list of error codes and more information on Amazon S3 errors,
10081
+ # see [Error codes][1].
10082
+ #
10083
+ # <note markdown="1"> Idempotency ensures that an API request completes no more than one
10084
+ # time. With an idempotent request, if the original request completes
10085
+ # successfully, any subsequent retries complete successfully without
10086
+ # performing any further actions.
10087
+ #
10088
+ # </note>
10089
+ #
10090
+ #
10091
+ #
10092
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html#ErrorCodeList
10093
+ #
10094
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/IdempotencyParameterMismatch AWS API Documentation
10095
+ #
10096
+ class IdempotencyParameterMismatch < Aws::EmptyStructure; end
10097
+
9492
10098
  # Container for the `Suffix` element.
9493
10099
  #
9494
10100
  # @!attribute [rw] suffix
@@ -9729,7 +10335,7 @@ module Aws::S3
9729
10335
  #
9730
10336
  class InvalidWriteOffset < Aws::EmptyStructure; end
9731
10337
 
9732
- # Specifies the inventory configuration for an Amazon S3 bucket. For
10338
+ # Specifies the S3 Inventory configuration for an Amazon S3 bucket. For
9733
10339
  # more information, see [GET Bucket inventory][1] in the *Amazon S3 API
9734
10340
  # Reference*.
9735
10341
  #
@@ -9787,7 +10393,7 @@ module Aws::S3
9787
10393
  include Aws::Structure
9788
10394
  end
9789
10395
 
9790
- # Specifies the inventory configuration for an Amazon S3 bucket.
10396
+ # Specifies the S3 Inventory configuration for an Amazon S3 bucket.
9791
10397
  #
9792
10398
  # @!attribute [rw] s3_bucket_destination
9793
10399
  # Contains the bucket name, file format, bucket owner (optional), and
@@ -9802,8 +10408,8 @@ module Aws::S3
9802
10408
  include Aws::Structure
9803
10409
  end
9804
10410
 
9805
- # Contains the type of server-side encryption used to encrypt the
9806
- # inventory results.
10411
+ # Contains the type of server-side encryption used to encrypt the S3
10412
+ # Inventory results.
9807
10413
  #
9808
10414
  # @!attribute [rw] sses3
9809
10415
  # Specifies the use of SSE-S3 to encrypt delivered inventory reports.
@@ -9822,7 +10428,7 @@ module Aws::S3
9822
10428
  include Aws::Structure
9823
10429
  end
9824
10430
 
9825
- # Specifies an inventory filter. The inventory only includes objects
10431
+ # Specifies an S3 Inventory filter. The inventory only includes objects
9826
10432
  # that meet the filter's criteria.
9827
10433
  #
9828
10434
  # @!attribute [rw] prefix
@@ -9839,7 +10445,7 @@ module Aws::S3
9839
10445
  end
9840
10446
 
9841
10447
  # Contains the bucket name, file format, bucket owner (optional), and
9842
- # prefix (optional) where inventory results are published.
10448
+ # prefix (optional) where S3 Inventory results are published.
9843
10449
  #
9844
10450
  # @!attribute [rw] account_id
9845
10451
  # The account ID that owns the destination S3 bucket. If no account ID
@@ -9882,7 +10488,7 @@ module Aws::S3
9882
10488
  include Aws::Structure
9883
10489
  end
9884
10490
 
9885
- # Specifies the schedule for generating inventory results.
10491
+ # Specifies the schedule for generating S3 Inventory results.
9886
10492
  #
9887
10493
  # @!attribute [rw] frequency
9888
10494
  # Specifies how frequently inventory results are produced.
@@ -9896,6 +10502,117 @@ module Aws::S3
9896
10502
  include Aws::Structure
9897
10503
  end
9898
10504
 
10505
+ # The inventory table configuration for an S3 Metadata configuration.
10506
+ #
10507
+ # @!attribute [rw] configuration_state
10508
+ # The configuration state of the inventory table, indicating whether
10509
+ # the inventory table is enabled or disabled.
10510
+ # @return [String]
10511
+ #
10512
+ # @!attribute [rw] encryption_configuration
10513
+ # The encryption configuration for the inventory table.
10514
+ # @return [Types::MetadataTableEncryptionConfiguration]
10515
+ #
10516
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InventoryTableConfiguration AWS API Documentation
10517
+ #
10518
+ class InventoryTableConfiguration < Struct.new(
10519
+ :configuration_state,
10520
+ :encryption_configuration)
10521
+ SENSITIVE = []
10522
+ include Aws::Structure
10523
+ end
10524
+
10525
+ # The inventory table configuration for an S3 Metadata configuration.
10526
+ #
10527
+ # @!attribute [rw] configuration_state
10528
+ # The configuration state of the inventory table, indicating whether
10529
+ # the inventory table is enabled or disabled.
10530
+ # @return [String]
10531
+ #
10532
+ # @!attribute [rw] table_status
10533
+ # The status of the inventory table. The status values are:
10534
+ #
10535
+ # * `CREATING` - The inventory table is in the process of being
10536
+ # created in the specified Amazon Web Services managed table bucket.
10537
+ #
10538
+ # * `BACKFILLING` - The inventory table is in the process of being
10539
+ # backfilled. When you enable the inventory table for your metadata
10540
+ # configuration, the table goes through a process known as
10541
+ # backfilling, during which Amazon S3 scans your general purpose
10542
+ # bucket to retrieve the initial metadata for all objects in the
10543
+ # bucket. Depending on the number of objects in your bucket, this
10544
+ # process can take several hours. When the backfilling process is
10545
+ # finished, the status of your inventory table changes from
10546
+ # `BACKFILLING` to `ACTIVE`. After backfilling is completed, updates
10547
+ # to your objects are reflected in the inventory table within one
10548
+ # hour.
10549
+ #
10550
+ # * `ACTIVE` - The inventory table has been created successfully, and
10551
+ # records are being delivered to the table.
10552
+ #
10553
+ # * `FAILED` - Amazon S3 is unable to create the inventory table, or
10554
+ # Amazon S3 is unable to deliver records.
10555
+ # @return [String]
10556
+ #
10557
+ # @!attribute [rw] error
10558
+ # If an S3 Metadata V1 `CreateBucketMetadataTableConfiguration` or V2
10559
+ # `CreateBucketMetadataConfiguration` request succeeds, but S3
10560
+ # Metadata was unable to create the table, this structure contains the
10561
+ # error code and error message.
10562
+ #
10563
+ # <note markdown="1"> If you created your S3 Metadata configuration before July 15, 2025,
10564
+ # we recommend that you delete and re-create your configuration by
10565
+ # using [CreateBucketMetadataConfiguration][1] so that you can expire
10566
+ # journal table records and create a live inventory table.
10567
+ #
10568
+ # </note>
10569
+ #
10570
+ #
10571
+ #
10572
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html
10573
+ # @return [Types::ErrorDetails]
10574
+ #
10575
+ # @!attribute [rw] table_name
10576
+ # The name of the inventory table.
10577
+ # @return [String]
10578
+ #
10579
+ # @!attribute [rw] table_arn
10580
+ # The Amazon Resource Name (ARN) for the inventory table.
10581
+ # @return [String]
10582
+ #
10583
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InventoryTableConfigurationResult AWS API Documentation
10584
+ #
10585
+ class InventoryTableConfigurationResult < Struct.new(
10586
+ :configuration_state,
10587
+ :table_status,
10588
+ :error,
10589
+ :table_name,
10590
+ :table_arn)
10591
+ SENSITIVE = []
10592
+ include Aws::Structure
10593
+ end
10594
+
10595
+ # The specified updates to the S3 Metadata inventory table
10596
+ # configuration.
10597
+ #
10598
+ # @!attribute [rw] configuration_state
10599
+ # The configuration state of the inventory table, indicating whether
10600
+ # the inventory table is enabled or disabled.
10601
+ # @return [String]
10602
+ #
10603
+ # @!attribute [rw] encryption_configuration
10604
+ # The encryption configuration for the inventory table.
10605
+ # @return [Types::MetadataTableEncryptionConfiguration]
10606
+ #
10607
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InventoryTableConfigurationUpdates AWS API Documentation
10608
+ #
10609
+ class InventoryTableConfigurationUpdates < Struct.new(
10610
+ :configuration_state,
10611
+ :encryption_configuration)
10612
+ SENSITIVE = []
10613
+ include Aws::Structure
10614
+ end
10615
+
9899
10616
  # Specifies JSON as object's input serialization format.
9900
10617
  #
9901
10618
  # @!attribute [rw] type
@@ -9925,6 +10642,96 @@ module Aws::S3
9925
10642
  include Aws::Structure
9926
10643
  end
9927
10644
 
10645
+ # The journal table configuration for an S3 Metadata configuration.
10646
+ #
10647
+ # @!attribute [rw] record_expiration
10648
+ # The journal table record expiration settings for the journal table.
10649
+ # @return [Types::RecordExpiration]
10650
+ #
10651
+ # @!attribute [rw] encryption_configuration
10652
+ # The encryption configuration for the journal table.
10653
+ # @return [Types::MetadataTableEncryptionConfiguration]
10654
+ #
10655
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/JournalTableConfiguration AWS API Documentation
10656
+ #
10657
+ class JournalTableConfiguration < Struct.new(
10658
+ :record_expiration,
10659
+ :encryption_configuration)
10660
+ SENSITIVE = []
10661
+ include Aws::Structure
10662
+ end
10663
+
10664
+ # The journal table configuration for the S3 Metadata configuration.
10665
+ #
10666
+ # @!attribute [rw] table_status
10667
+ # The status of the journal table. The status values are:
10668
+ #
10669
+ # * `CREATING` - The journal table is in the process of being created
10670
+ # in the specified table bucket.
10671
+ #
10672
+ # * `ACTIVE` - The journal table has been created successfully, and
10673
+ # records are being delivered to the table.
10674
+ #
10675
+ # * `FAILED` - Amazon S3 is unable to create the journal table, or
10676
+ # Amazon S3 is unable to deliver records.
10677
+ # @return [String]
10678
+ #
10679
+ # @!attribute [rw] error
10680
+ # If an S3 Metadata V1 `CreateBucketMetadataTableConfiguration` or V2
10681
+ # `CreateBucketMetadataConfiguration` request succeeds, but S3
10682
+ # Metadata was unable to create the table, this structure contains the
10683
+ # error code and error message.
10684
+ #
10685
+ # <note markdown="1"> If you created your S3 Metadata configuration before July 15, 2025,
10686
+ # we recommend that you delete and re-create your configuration by
10687
+ # using [CreateBucketMetadataConfiguration][1] so that you can expire
10688
+ # journal table records and create a live inventory table.
10689
+ #
10690
+ # </note>
10691
+ #
10692
+ #
10693
+ #
10694
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html
10695
+ # @return [Types::ErrorDetails]
10696
+ #
10697
+ # @!attribute [rw] table_name
10698
+ # The name of the journal table.
10699
+ # @return [String]
10700
+ #
10701
+ # @!attribute [rw] table_arn
10702
+ # The Amazon Resource Name (ARN) for the journal table.
10703
+ # @return [String]
10704
+ #
10705
+ # @!attribute [rw] record_expiration
10706
+ # The journal table record expiration settings for the journal table.
10707
+ # @return [Types::RecordExpiration]
10708
+ #
10709
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/JournalTableConfigurationResult AWS API Documentation
10710
+ #
10711
+ class JournalTableConfigurationResult < Struct.new(
10712
+ :table_status,
10713
+ :error,
10714
+ :table_name,
10715
+ :table_arn,
10716
+ :record_expiration)
10717
+ SENSITIVE = []
10718
+ include Aws::Structure
10719
+ end
10720
+
10721
+ # The specified updates to the S3 Metadata journal table configuration.
10722
+ #
10723
+ # @!attribute [rw] record_expiration
10724
+ # The journal table record expiration settings for the journal table.
10725
+ # @return [Types::RecordExpiration]
10726
+ #
10727
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/JournalTableConfigurationUpdates AWS API Documentation
10728
+ #
10729
+ class JournalTableConfigurationUpdates < Struct.new(
10730
+ :record_expiration)
10731
+ SENSITIVE = []
10732
+ include Aws::Structure
10733
+ end
10734
+
9928
10735
  # A container for specifying the configuration for Lambda notifications.
9929
10736
  #
9930
10737
  # @!attribute [rw] id
@@ -10057,8 +10864,10 @@ module Aws::S3
10057
10864
  # @return [String]
10058
10865
  #
10059
10866
  # @!attribute [rw] prefix
10060
- # Prefix identifying one or more objects to which the rule applies.
10061
- # This is no longer used; use `Filter` instead.
10867
+ # The general purpose bucket prefix that identifies one or more
10868
+ # objects to which the rule applies. We recommend using `Filter`
10869
+ # instead of `Prefix` for new PUTs. Previous configurations where a
10870
+ # prefix is defined will continue to operate as before.
10062
10871
  #
10063
10872
  # Replacement must be made for object keys containing special
10064
10873
  # characters (such as carriage returns) when using XML requests. For
@@ -10076,9 +10885,16 @@ module Aws::S3
10076
10885
  # `Filter` is required if the `LifecycleRule` does not contain a
10077
10886
  # `Prefix` element.
10078
10887
  #
10888
+ # For more information about `Tag` filters, see [Adding filters to
10889
+ # Lifecycle rules][1] in the *Amazon S3 User Guide*.
10890
+ #
10079
10891
  # <note markdown="1"> `Tag` filters are not supported for directory buckets.
10080
10892
  #
10081
10893
  # </note>
10894
+ #
10895
+ #
10896
+ #
10897
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-filters.html
10082
10898
  # @return [Types::LifecycleRuleFilter]
10083
10899
  #
10084
10900
  # @!attribute [rw] status
@@ -10344,11 +11160,19 @@ module Aws::S3
10344
11160
  # this request should begin.
10345
11161
  # @return [String]
10346
11162
  #
11163
+ # @!attribute [rw] expected_bucket_owner
11164
+ # The account ID of the expected bucket owner. If the account ID that
11165
+ # you provide does not match the actual owner of the bucket, the
11166
+ # request fails with the HTTP status code `403 Forbidden` (access
11167
+ # denied).
11168
+ # @return [String]
11169
+ #
10347
11170
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketIntelligentTieringConfigurationsRequest AWS API Documentation
10348
11171
  #
10349
11172
  class ListBucketIntelligentTieringConfigurationsRequest < Struct.new(
10350
11173
  :bucket,
10351
- :continuation_token)
11174
+ :continuation_token,
11175
+ :expected_bucket_owner)
10352
11176
  SENSITIVE = []
10353
11177
  include Aws::Structure
10354
11178
  end
@@ -10809,6 +11633,9 @@ module Aws::S3
10809
11633
  # `CommonPrefixes` result element are not returned elsewhere in the
10810
11634
  # response.
10811
11635
  #
11636
+ # `CommonPrefixes` is filtered out from results if it is not
11637
+ # lexicographically greater than the key-marker.
11638
+ #
10812
11639
  # <note markdown="1"> **Directory buckets** - For directory buckets, `/` is the only
10813
11640
  # supported delimiter.
10814
11641
  #
@@ -11068,6 +11895,9 @@ module Aws::S3
11068
11895
  # element in `CommonPrefixes`. These groups are counted as one result
11069
11896
  # against the `max-keys` limitation. These keys are not returned
11070
11897
  # elsewhere in the response.
11898
+ #
11899
+ # `CommonPrefixes` is filtered out from results if it is not
11900
+ # lexicographically greater than the key-marker.
11071
11901
  # @return [String]
11072
11902
  #
11073
11903
  # @!attribute [rw] encoding_type
@@ -11341,6 +12171,9 @@ module Aws::S3
11341
12171
  #
11342
12172
  # @!attribute [rw] delimiter
11343
12173
  # A delimiter is a character that you use to group keys.
12174
+ #
12175
+ # `CommonPrefixes` is filtered out from results if it is not
12176
+ # lexicographically greater than the key-marker.
11344
12177
  # @return [String]
11345
12178
  #
11346
12179
  # @!attribute [rw] encoding_type
@@ -11517,8 +12350,7 @@ module Aws::S3
11517
12350
  # @!attribute [rw] continuation_token
11518
12351
  # If `ContinuationToken` was sent with the request, it is included in
11519
12352
  # the response. You can use the returned `ContinuationToken` for
11520
- # pagination of the list response. You can use this
11521
- # `ContinuationToken` for pagination of the list results.
12353
+ # pagination of the list response.
11522
12354
  # @return [String]
11523
12355
  #
11524
12356
  # @!attribute [rw] next_continuation_token
@@ -11621,6 +12453,9 @@ module Aws::S3
11621
12453
  # @!attribute [rw] delimiter
11622
12454
  # A delimiter is a character that you use to group keys.
11623
12455
  #
12456
+ # `CommonPrefixes` is filtered out from results if it is not
12457
+ # lexicographically greater than the `StartAfter` value.
12458
+ #
11624
12459
  # <note markdown="1"> * **Directory buckets** - For directory buckets, `/` is the only
11625
12460
  # supported delimiter.
11626
12461
  #
@@ -12145,6 +12980,49 @@ module Aws::S3
12145
12980
  include Aws::Structure
12146
12981
  end
12147
12982
 
12983
+ # The S3 Metadata configuration for a general purpose bucket.
12984
+ #
12985
+ # @!attribute [rw] journal_table_configuration
12986
+ # The journal table configuration for a metadata configuration.
12987
+ # @return [Types::JournalTableConfiguration]
12988
+ #
12989
+ # @!attribute [rw] inventory_table_configuration
12990
+ # The inventory table configuration for a metadata configuration.
12991
+ # @return [Types::InventoryTableConfiguration]
12992
+ #
12993
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/MetadataConfiguration AWS API Documentation
12994
+ #
12995
+ class MetadataConfiguration < Struct.new(
12996
+ :journal_table_configuration,
12997
+ :inventory_table_configuration)
12998
+ SENSITIVE = []
12999
+ include Aws::Structure
13000
+ end
13001
+
13002
+ # The S3 Metadata configuration for a general purpose bucket.
13003
+ #
13004
+ # @!attribute [rw] destination_result
13005
+ # The destination settings for a metadata configuration.
13006
+ # @return [Types::DestinationResult]
13007
+ #
13008
+ # @!attribute [rw] journal_table_configuration_result
13009
+ # The journal table configuration for a metadata configuration.
13010
+ # @return [Types::JournalTableConfigurationResult]
13011
+ #
13012
+ # @!attribute [rw] inventory_table_configuration_result
13013
+ # The inventory table configuration for a metadata configuration.
13014
+ # @return [Types::InventoryTableConfigurationResult]
13015
+ #
13016
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/MetadataConfigurationResult AWS API Documentation
13017
+ #
13018
+ class MetadataConfigurationResult < Struct.new(
13019
+ :destination_result,
13020
+ :journal_table_configuration_result,
13021
+ :inventory_table_configuration_result)
13022
+ SENSITIVE = []
13023
+ include Aws::Structure
13024
+ end
13025
+
12148
13026
  # A metadata key-value pair to store with an object.
12149
13027
  #
12150
13028
  # @!attribute [rw] name
@@ -12164,7 +13042,18 @@ module Aws::S3
12164
13042
  include Aws::Structure
12165
13043
  end
12166
13044
 
12167
- # The metadata table configuration for a general purpose bucket.
13045
+ # The V1 S3 Metadata configuration for a general purpose bucket.
13046
+ #
13047
+ # <note markdown="1"> If you created your S3 Metadata configuration before July 15, 2025, we
13048
+ # recommend that you delete and re-create your configuration by using
13049
+ # [CreateBucketMetadataConfiguration][1] so that you can expire journal
13050
+ # table records and create a live inventory table.
13051
+ #
13052
+ # </note>
13053
+ #
13054
+ #
13055
+ #
13056
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html
12168
13057
  #
12169
13058
  # @!attribute [rw] s3_tables_destination
12170
13059
  # The destination information for the metadata table configuration.
@@ -12182,12 +13071,23 @@ module Aws::S3
12182
13071
  include Aws::Structure
12183
13072
  end
12184
13073
 
12185
- # The metadata table configuration for a general purpose bucket. The
13074
+ # The V1 S3 Metadata configuration for a general purpose bucket. The
12186
13075
  # destination table bucket must be in the same Region and Amazon Web
12187
13076
  # Services account as the general purpose bucket. The specified metadata
12188
13077
  # table name must be unique within the `aws_s3_metadata` namespace in
12189
13078
  # the destination table bucket.
12190
13079
  #
13080
+ # <note markdown="1"> If you created your S3 Metadata configuration before July 15, 2025, we
13081
+ # recommend that you delete and re-create your configuration by using
13082
+ # [CreateBucketMetadataConfiguration][1] so that you can expire journal
13083
+ # table records and create a live inventory table.
13084
+ #
13085
+ # </note>
13086
+ #
13087
+ #
13088
+ #
13089
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html
13090
+ #
12191
13091
  # @!attribute [rw] s3_tables_destination_result
12192
13092
  # The destination information for the metadata table configuration.
12193
13093
  # The destination table bucket must be in the same Region and Amazon
@@ -12204,6 +13104,34 @@ module Aws::S3
12204
13104
  include Aws::Structure
12205
13105
  end
12206
13106
 
13107
+ # The encryption settings for an S3 Metadata journal table or inventory
13108
+ # table configuration.
13109
+ #
13110
+ # @!attribute [rw] sse_algorithm
13111
+ # The encryption type specified for a metadata table. To specify
13112
+ # server-side encryption with Key Management Service (KMS) keys
13113
+ # (SSE-KMS), use the `aws:kms` value. To specify server-side
13114
+ # encryption with Amazon S3 managed keys (SSE-S3), use the `AES256`
13115
+ # value.
13116
+ # @return [String]
13117
+ #
13118
+ # @!attribute [rw] kms_key_arn
13119
+ # If server-side encryption with Key Management Service (KMS) keys
13120
+ # (SSE-KMS) is specified, you must also specify the KMS key Amazon
13121
+ # Resource Name (ARN). You must specify a customer-managed KMS key
13122
+ # that's located in the same Region as the general purpose bucket
13123
+ # that corresponds to the metadata table configuration.
13124
+ # @return [String]
13125
+ #
13126
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/MetadataTableEncryptionConfiguration AWS API Documentation
13127
+ #
13128
+ class MetadataTableEncryptionConfiguration < Struct.new(
13129
+ :sse_algorithm,
13130
+ :kms_key_arn)
13131
+ SENSITIVE = []
13132
+ include Aws::Structure
13133
+ end
13134
+
12207
13135
  # A container specifying replication metrics-related settings enabling
12208
13136
  # replication metrics and events.
12209
13137
  #
@@ -13055,6 +13983,19 @@ module Aws::S3
13055
13983
  include Aws::Structure
13056
13984
  end
13057
13985
 
13986
+ # End of support notice: Beginning November 21, 2025, Amazon S3 will
13987
+ # stop returning `DisplayName`. Update your applications to use
13988
+ # canonical IDs (unique identifier for Amazon Web Services accounts),
13989
+ # Amazon Web Services account ID (12 digit identifier) or IAM ARNs (full
13990
+ # resource naming) as a direct replacement of `DisplayName`.
13991
+ #
13992
+ # This change affects the following Amazon Web Services Regions: US
13993
+ # East
13994
+ # (N. Virginia) Region, US West (N. California) Region, US West (Oregon)
13995
+ # Region, Asia Pacific (Singapore) Region, Asia Pacific (Sydney) Region,
13996
+ # Asia Pacific (Tokyo) Region, Europe (Ireland) Region, and South
13997
+ # America (São Paulo) Region.
13998
+ #
13058
13999
  # Container for the owner's display name and ID.
13059
14000
  #
13060
14001
  # @!attribute [rw] display_name
@@ -13408,6 +14349,58 @@ module Aws::S3
13408
14349
  include Aws::Structure
13409
14350
  end
13410
14351
 
14352
+ # @!attribute [rw] bucket
14353
+ # The name of the general purpose bucket.
14354
+ # @return [String]
14355
+ #
14356
+ # @!attribute [rw] content_md5
14357
+ # The MD5 hash of the `PutBucketAbac` request body.
14358
+ #
14359
+ # For requests made using the Amazon Web Services Command Line
14360
+ # Interface (CLI) or Amazon Web Services SDKs, this field is
14361
+ # calculated automatically.
14362
+ # @return [String]
14363
+ #
14364
+ # @!attribute [rw] checksum_algorithm
14365
+ # Indicates the algorithm that you want Amazon S3 to use to create the
14366
+ # checksum. For more information, see [ Checking object integrity][1]
14367
+ # in the *Amazon S3 User Guide*.
14368
+ #
14369
+ #
14370
+ #
14371
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
14372
+ # @return [String]
14373
+ #
14374
+ # @!attribute [rw] expected_bucket_owner
14375
+ # The Amazon Web Services account ID of the general purpose bucket's
14376
+ # owner.
14377
+ # @return [String]
14378
+ #
14379
+ # @!attribute [rw] abac_status
14380
+ # The ABAC status of the general purpose bucket. When ABAC is enabled
14381
+ # for the general purpose bucket, you can use tags to manage access to
14382
+ # the general purpose buckets as well as for cost tracking purposes.
14383
+ # When ABAC is disabled for the general purpose buckets, you can only
14384
+ # use tags for cost tracking purposes. For more information, see
14385
+ # [Using tags with S3 general purpose buckets][1].
14386
+ #
14387
+ #
14388
+ #
14389
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/buckets-tagging.html
14390
+ # @return [Types::AbacStatus]
14391
+ #
14392
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAbacRequest AWS API Documentation
14393
+ #
14394
+ class PutBucketAbacRequest < Struct.new(
14395
+ :bucket,
14396
+ :content_md5,
14397
+ :checksum_algorithm,
14398
+ :expected_bucket_owner,
14399
+ :abac_status)
14400
+ SENSITIVE = []
14401
+ include Aws::Structure
14402
+ end
14403
+
13411
14404
  # @!attribute [rw] bucket
13412
14405
  # The name of the bucket for which the accelerate configuration is
13413
14406
  # set.
@@ -13736,6 +14729,13 @@ module Aws::S3
13736
14729
  # The ID used to identify the S3 Intelligent-Tiering configuration.
13737
14730
  # @return [String]
13738
14731
  #
14732
+ # @!attribute [rw] expected_bucket_owner
14733
+ # The account ID of the expected bucket owner. If the account ID that
14734
+ # you provide does not match the actual owner of the bucket, the
14735
+ # request fails with the HTTP status code `403 Forbidden` (access
14736
+ # denied).
14737
+ # @return [String]
14738
+ #
13739
14739
  # @!attribute [rw] intelligent_tiering_configuration
13740
14740
  # Container for S3 Intelligent-Tiering configuration.
13741
14741
  # @return [Types::IntelligentTieringConfiguration]
@@ -13745,6 +14745,7 @@ module Aws::S3
13745
14745
  class PutBucketIntelligentTieringConfigurationRequest < Struct.new(
13746
14746
  :bucket,
13747
14747
  :id,
14748
+ :expected_bucket_owner,
13748
14749
  :intelligent_tiering_configuration)
13749
14750
  SENSITIVE = []
13750
14751
  include Aws::Structure
@@ -14490,7 +15491,17 @@ module Aws::S3
14490
15491
  # @!attribute [rw] mfa
14491
15492
  # The concatenation of the authentication device's serial number, a
14492
15493
  # space, and the value that is displayed on your authentication
14493
- # device.
15494
+ # device. The serial number is the number that uniquely identifies the
15495
+ # MFA device. For physical MFA devices, this is the unique serial
15496
+ # number that's provided with the device. For virtual MFA devices,
15497
+ # the serial number is the device ARN. For more information, see
15498
+ # [Enabling versioning on buckets][1] and [Configuring MFA delete][2]
15499
+ # in the *Amazon Simple Storage Service User Guide*.
15500
+ #
15501
+ #
15502
+ #
15503
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-versioning-examples.html
15504
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/MultiFactorAuthenticationDelete.html
14494
15505
  # @return [String]
14495
15506
  #
14496
15507
  # @!attribute [rw] versioning_configuration
@@ -15026,7 +16037,7 @@ module Aws::S3
15026
16037
  #
15027
16038
  # @!attribute [rw] checksum_crc32
15028
16039
  # The Base64 encoded, 32-bit `CRC32 checksum` of the object. This
15029
- # checksum is only be present if the checksum was uploaded with the
16040
+ # checksum is only present if the checksum was uploaded with the
15030
16041
  # object. When you use an API operation on an object that was uploaded
15031
16042
  # using multipart uploads, this value may not be a direct checksum
15032
16043
  # value of the full object. Instead, it's a calculation based on the
@@ -15069,14 +16080,15 @@ module Aws::S3
15069
16080
  # @return [String]
15070
16081
  #
15071
16082
  # @!attribute [rw] checksum_sha1
15072
- # The Base64 encoded, 160-bit `SHA1` digest of the object. This will
15073
- # only be present if the object was uploaded with the object. When you
15074
- # use the API operation on an object that was uploaded using multipart
15075
- # uploads, this value may not be a direct checksum value of the full
15076
- # object. Instead, it's a calculation based on the checksum values of
15077
- # each individual part. For more information about how checksums are
15078
- # calculated with multipart uploads, see [ Checking object
15079
- # integrity][1] in the *Amazon S3 User Guide*.
16083
+ # The Base64 encoded, 160-bit `SHA1` digest of the object. This
16084
+ # checksum is only present if the checksum was uploaded with the
16085
+ # object. When you use the API operation on an object that was
16086
+ # uploaded using multipart uploads, this value may not be a direct
16087
+ # checksum value of the full object. Instead, it's a calculation
16088
+ # based on the checksum values of each individual part. For more
16089
+ # information about how checksums are calculated with multipart
16090
+ # uploads, see [ Checking object integrity][1] in the *Amazon S3 User
16091
+ # Guide*.
15080
16092
  #
15081
16093
  #
15082
16094
  #
@@ -15084,14 +16096,14 @@ module Aws::S3
15084
16096
  # @return [String]
15085
16097
  #
15086
16098
  # @!attribute [rw] checksum_sha256
15087
- # The Base64 encoded, 256-bit `SHA256` digest of the object. This will
15088
- # only be present if the object was uploaded with the object. When you
15089
- # use an API operation on an object that was uploaded using multipart
15090
- # uploads, this value may not be a direct checksum value of the full
15091
- # object. Instead, it's a calculation based on the checksum values of
15092
- # each individual part. For more information about how checksums are
15093
- # calculated with multipart uploads, see [ Checking object
15094
- # integrity][1] in the *Amazon S3 User Guide*.
16099
+ # The Base64 encoded, 256-bit `SHA256` digest of the object. This
16100
+ # checksum is only present if the checksum was uploaded with the
16101
+ # object. When you use an API operation on an object that was uploaded
16102
+ # using multipart uploads, this value may not be a direct checksum
16103
+ # value of the full object. Instead, it's a calculation based on the
16104
+ # checksum values of each individual part. For more information about
16105
+ # how checksums are calculated with multipart uploads, see [ Checking
16106
+ # object integrity][1] in the *Amazon S3 User Guide*.
15095
16107
  #
15096
16108
  #
15097
16109
  #
@@ -15115,7 +16127,13 @@ module Aws::S3
15115
16127
  #
15116
16128
  # @!attribute [rw] server_side_encryption
15117
16129
  # The server-side encryption algorithm used when you store this object
15118
- # in Amazon S3.
16130
+ # in Amazon S3 or Amazon FSx.
16131
+ #
16132
+ # <note markdown="1"> When accessing data stored in Amazon FSx file systems using S3
16133
+ # access points, the only valid server side encryption option is
16134
+ # `aws:fsx`.
16135
+ #
16136
+ # </note>
15119
16137
  # @return [String]
15120
16138
  #
15121
16139
  # @!attribute [rw] version_id
@@ -15627,8 +16645,7 @@ module Aws::S3
15627
16645
  #
15628
16646
  # @!attribute [rw] server_side_encryption
15629
16647
  # The server-side encryption algorithm that was used when you store
15630
- # this object in Amazon S3 (for example, `AES256`, `aws:kms`,
15631
- # `aws:kms:dsse`).
16648
+ # this object in Amazon S3 or Amazon FSx.
15632
16649
  #
15633
16650
  # * <b>General purpose buckets </b> - You have four mutually exclusive
15634
16651
  # options to protect data using server-side encryption in Amazon S3,
@@ -15683,6 +16700,14 @@ module Aws::S3
15683
16700
  #
15684
16701
  # </note>
15685
16702
  #
16703
+ # * <b>S3 access points for Amazon FSx </b> - When accessing data
16704
+ # stored in Amazon FSx file systems using S3 access points, the only
16705
+ # valid server side encryption option is `aws:fsx`. All Amazon FSx
16706
+ # file systems have encryption configured by default and are
16707
+ # encrypted at rest. Data is automatically encrypted before being
16708
+ # written to the file system, and automatically decrypted as it is
16709
+ # read. These processes are handled transparently by Amazon FSx.
16710
+ #
15686
16711
  #
15687
16712
  #
15688
16713
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
@@ -16194,21 +17219,9 @@ module Aws::S3
16194
17219
  # @return [String]
16195
17220
  #
16196
17221
  # @!attribute [rw] request_payer
16197
- # Confirms that the requester knows that they will be charged for the
16198
- # request. Bucket owners need not specify this parameter in their
16199
- # requests. If either the source or destination S3 bucket has
16200
- # Requester Pays enabled, the requester will pay for corresponding
16201
- # charges to copy the object. For information about downloading
16202
- # objects from Requester Pays buckets, see [Downloading Objects in
16203
- # Requester Pays Buckets][1] in the *Amazon S3 User Guide*.
16204
- #
16205
- # <note markdown="1"> This functionality is not supported for directory buckets.
16206
- #
16207
- # </note>
16208
- #
16209
- #
16210
- #
16211
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
17222
+ # Confirms that the requester knows that she or he will be charged for
17223
+ # the tagging object request. Bucket owners need not specify this
17224
+ # parameter in their requests.
16212
17225
  # @return [String]
16213
17226
  #
16214
17227
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectTaggingRequest AWS API Documentation
@@ -16368,6 +17381,32 @@ module Aws::S3
16368
17381
  include Aws::Structure
16369
17382
  end
16370
17383
 
17384
+ # The journal table record expiration settings for a journal table in an
17385
+ # S3 Metadata configuration.
17386
+ #
17387
+ # @!attribute [rw] expiration
17388
+ # Specifies whether journal table record expiration is enabled or
17389
+ # disabled.
17390
+ # @return [String]
17391
+ #
17392
+ # @!attribute [rw] days
17393
+ # If you enable journal table record expiration, you can set the
17394
+ # number of days to retain your journal table records. Journal table
17395
+ # records must be retained for a minimum of 7 days. To set this value,
17396
+ # specify any whole number from `7` to `2147483647`. For example, to
17397
+ # retain your journal table records for one year, set this value to
17398
+ # `365`.
17399
+ # @return [Integer]
17400
+ #
17401
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RecordExpiration AWS API Documentation
17402
+ #
17403
+ class RecordExpiration < Struct.new(
17404
+ :expiration,
17405
+ :days)
17406
+ SENSITIVE = []
17407
+ include Aws::Structure
17408
+ end
17409
+
16371
17410
  # The container for the records event.
16372
17411
  #
16373
17412
  # @!attribute [rw] payload
@@ -16376,7 +17415,7 @@ module Aws::S3
16376
17415
  # record frame. To ensure continuous streaming of data, S3 Select
16377
17416
  # might split the same record across multiple record frames instead of
16378
17417
  # aggregating the results in memory. Some S3 clients (for example, the
16379
- # SDKforJava) handle this behavior by creating a `ByteStream` out of
17418
+ # SDK for Java) handle this behavior by creating a `ByteStream` out of
16380
17419
  # the response by default. Other clients might not handle this
16381
17420
  # behavior by default. In those cases, you must aggregate the results
16382
17421
  # on the client side and parse the response.
@@ -16474,6 +17513,129 @@ module Aws::S3
16474
17513
  include Aws::Structure
16475
17514
  end
16476
17515
 
17516
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RenameObjectOutput AWS API Documentation
17517
+ #
17518
+ class RenameObjectOutput < Aws::EmptyStructure; end
17519
+
17520
+ # @!attribute [rw] bucket
17521
+ # The bucket name of the directory bucket containing the object.
17522
+ #
17523
+ # You must use virtual-hosted-style requests in the format
17524
+ # `Bucket-name.s3express-zone-id.region-code.amazonaws.com`.
17525
+ # Path-style requests are not supported. Directory bucket names must
17526
+ # be unique in the chosen Availability Zone. Bucket names must follow
17527
+ # the format `bucket-base-name--zone-id--x-s3 ` (for example,
17528
+ # `amzn-s3-demo-bucket--usw2-az1--x-s3`). For information about bucket
17529
+ # naming restrictions, see [Directory bucket naming rules][1] in the
17530
+ # *Amazon S3 User Guide*.
17531
+ #
17532
+ #
17533
+ #
17534
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html
17535
+ # @return [String]
17536
+ #
17537
+ # @!attribute [rw] key
17538
+ # Key name of the object to rename.
17539
+ # @return [String]
17540
+ #
17541
+ # @!attribute [rw] rename_source
17542
+ # Specifies the source for the rename operation. The value must be URL
17543
+ # encoded.
17544
+ # @return [String]
17545
+ #
17546
+ # @!attribute [rw] destination_if_match
17547
+ # Renames the object only if the ETag (entity tag) value provided
17548
+ # during the operation matches the ETag of the object in S3. The
17549
+ # `If-Match` header field makes the request method conditional on
17550
+ # ETags. If the ETag values do not match, the operation returns a `412
17551
+ # Precondition Failed` error.
17552
+ #
17553
+ # Expects the ETag value as a string.
17554
+ # @return [String]
17555
+ #
17556
+ # @!attribute [rw] destination_if_none_match
17557
+ # Renames the object only if the destination does not already exist in
17558
+ # the specified directory bucket. If the object does exist when you
17559
+ # send a request with `If-None-Match:*`, the S3 API will return a `412
17560
+ # Precondition Failed` error, preventing an overwrite. The
17561
+ # `If-None-Match` header prevents overwrites of existing data by
17562
+ # validating that there's not an object with the same key name
17563
+ # already in your directory bucket.
17564
+ #
17565
+ # Expects the `*` character (asterisk).
17566
+ # @return [String]
17567
+ #
17568
+ # @!attribute [rw] destination_if_modified_since
17569
+ # Renames the object if the destination exists and if it has been
17570
+ # modified since the specified time.
17571
+ # @return [Time]
17572
+ #
17573
+ # @!attribute [rw] destination_if_unmodified_since
17574
+ # Renames the object if it hasn't been modified since the specified
17575
+ # time.
17576
+ # @return [Time]
17577
+ #
17578
+ # @!attribute [rw] source_if_match
17579
+ # Renames the object if the source exists and if its entity tag (ETag)
17580
+ # matches the specified ETag.
17581
+ # @return [String]
17582
+ #
17583
+ # @!attribute [rw] source_if_none_match
17584
+ # Renames the object if the source exists and if its entity tag (ETag)
17585
+ # is different than the specified ETag. If an asterisk (`*`) character
17586
+ # is provided, the operation will fail and return a `412 Precondition
17587
+ # Failed` error.
17588
+ # @return [String]
17589
+ #
17590
+ # @!attribute [rw] source_if_modified_since
17591
+ # Renames the object if the source exists and if it has been modified
17592
+ # since the specified time.
17593
+ # @return [Time]
17594
+ #
17595
+ # @!attribute [rw] source_if_unmodified_since
17596
+ # Renames the object if the source exists and hasn't been modified
17597
+ # since the specified time.
17598
+ # @return [Time]
17599
+ #
17600
+ # @!attribute [rw] client_token
17601
+ # A unique string with a max of 64 ASCII characters in the ASCII range
17602
+ # of 33 - 126.
17603
+ #
17604
+ # <note markdown="1"> `RenameObject` supports idempotency using a client token. To make an
17605
+ # idempotent API request using `RenameObject`, specify a client token
17606
+ # in the request. You should not reuse the same client token for other
17607
+ # API requests. If you retry a request that completed successfully
17608
+ # using the same client token and the same parameters, the retry
17609
+ # succeeds without performing any further actions. If you retry a
17610
+ # successful request using the same client token, but one or more of
17611
+ # the parameters are different, the retry fails and an
17612
+ # `IdempotentParameterMismatch` error is returned.
17613
+ #
17614
+ # </note>
17615
+ #
17616
+ # **A suitable default value is auto-generated.** You should normally
17617
+ # not need to pass this option.
17618
+ # @return [String]
17619
+ #
17620
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RenameObjectRequest AWS API Documentation
17621
+ #
17622
+ class RenameObjectRequest < Struct.new(
17623
+ :bucket,
17624
+ :key,
17625
+ :rename_source,
17626
+ :destination_if_match,
17627
+ :destination_if_none_match,
17628
+ :destination_if_modified_since,
17629
+ :destination_if_unmodified_since,
17630
+ :source_if_match,
17631
+ :source_if_none_match,
17632
+ :source_if_modified_since,
17633
+ :source_if_unmodified_since,
17634
+ :client_token)
17635
+ SENSITIVE = []
17636
+ include Aws::Structure
17637
+ end
17638
+
16477
17639
  # A filter that you can specify for selection for modifications on
16478
17640
  # replicas. Amazon S3 doesn't replicate replica modifications by
16479
17641
  # default. In the latest version of replication configuration (when
@@ -17233,12 +18395,23 @@ module Aws::S3
17233
18395
  include Aws::Structure
17234
18396
  end
17235
18397
 
17236
- # The destination information for the metadata table configuration. The
18398
+ # The destination information for a V1 S3 Metadata configuration. The
17237
18399
  # destination table bucket must be in the same Region and Amazon Web
17238
18400
  # Services account as the general purpose bucket. The specified metadata
17239
18401
  # table name must be unique within the `aws_s3_metadata` namespace in
17240
18402
  # the destination table bucket.
17241
18403
  #
18404
+ # <note markdown="1"> If you created your S3 Metadata configuration before July 15, 2025, we
18405
+ # recommend that you delete and re-create your configuration by using
18406
+ # [CreateBucketMetadataConfiguration][1] so that you can expire journal
18407
+ # table records and create a live inventory table.
18408
+ #
18409
+ # </note>
18410
+ #
18411
+ #
18412
+ #
18413
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html
18414
+ #
17242
18415
  # @!attribute [rw] table_bucket_arn
17243
18416
  # The Amazon Resource Name (ARN) for the table bucket that's
17244
18417
  # specified as the destination in the metadata table configuration.
@@ -17262,12 +18435,23 @@ module Aws::S3
17262
18435
  include Aws::Structure
17263
18436
  end
17264
18437
 
17265
- # The destination information for the metadata table configuration. The
18438
+ # The destination information for a V1 S3 Metadata configuration. The
17266
18439
  # destination table bucket must be in the same Region and Amazon Web
17267
18440
  # Services account as the general purpose bucket. The specified metadata
17268
18441
  # table name must be unique within the `aws_s3_metadata` namespace in
17269
18442
  # the destination table bucket.
17270
18443
  #
18444
+ # <note markdown="1"> If you created your S3 Metadata configuration before July 15, 2025, we
18445
+ # recommend that you delete and re-create your configuration by using
18446
+ # [CreateBucketMetadataConfiguration][1] so that you can expire journal
18447
+ # table records and create a live inventory table.
18448
+ #
18449
+ # </note>
18450
+ #
18451
+ #
18452
+ #
18453
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html
18454
+ #
17271
18455
  # @!attribute [rw] table_bucket_arn
17272
18456
  # The Amazon Resource Name (ARN) for the table bucket that's
17273
18457
  # specified as the destination in the metadata table configuration.
@@ -17723,11 +18907,36 @@ module Aws::S3
17723
18907
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job
17724
18908
  # @return [Boolean]
17725
18909
  #
18910
+ # @!attribute [rw] blocked_encryption_types
18911
+ # A bucket-level setting for Amazon S3 general purpose buckets used to
18912
+ # prevent the upload of new objects encrypted with the specified
18913
+ # server-side encryption type. For example, blocking an encryption
18914
+ # type will block `PutObject`, `CopyObject`, `PostObject`, multipart
18915
+ # upload, and replication requests to the bucket for objects with the
18916
+ # specified encryption type. However, you can continue to read and
18917
+ # list any pre-existing objects already encrypted with the specified
18918
+ # encryption type. For more information, see [Blocking an encryption
18919
+ # type for a general purpose bucket][1].
18920
+ #
18921
+ # <note markdown="1"> Currently, this parameter only supports blocking or unblocking
18922
+ # Server Side Encryption with Customer Provided Keys (SSE-C). For more
18923
+ # information about SSE-C, see [Using server-side encryption with
18924
+ # customer-provided keys (SSE-C)][2].
18925
+ #
18926
+ # </note>
18927
+ #
18928
+ #
18929
+ #
18930
+ # [1]: https://docs.aws.amazon.com/AmazonS3/userguide/block-encryption-type.html
18931
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html
18932
+ # @return [Types::BlockedEncryptionTypes]
18933
+ #
17726
18934
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ServerSideEncryptionRule AWS API Documentation
17727
18935
  #
17728
18936
  class ServerSideEncryptionRule < Struct.new(
17729
18937
  :apply_server_side_encryption_by_default,
17730
- :bucket_key_enabled)
18938
+ :bucket_key_enabled,
18939
+ :blocked_encryption_types)
17731
18940
  SENSITIVE = []
17732
18941
  include Aws::Structure
17733
18942
  end
@@ -18173,6 +19382,79 @@ module Aws::S3
18173
19382
  include Aws::Structure
18174
19383
  end
18175
19384
 
19385
+ # @!attribute [rw] bucket
19386
+ # The general purpose bucket that corresponds to the metadata
19387
+ # configuration that you want to enable or disable an inventory table
19388
+ # for.
19389
+ # @return [String]
19390
+ #
19391
+ # @!attribute [rw] content_md5
19392
+ # The `Content-MD5` header for the inventory table configuration.
19393
+ # @return [String]
19394
+ #
19395
+ # @!attribute [rw] checksum_algorithm
19396
+ # The checksum algorithm to use with your inventory table
19397
+ # configuration.
19398
+ # @return [String]
19399
+ #
19400
+ # @!attribute [rw] inventory_table_configuration
19401
+ # The contents of your inventory table configuration.
19402
+ # @return [Types::InventoryTableConfigurationUpdates]
19403
+ #
19404
+ # @!attribute [rw] expected_bucket_owner
19405
+ # The expected owner of the general purpose bucket that corresponds to
19406
+ # the metadata table configuration that you want to enable or disable
19407
+ # an inventory table for.
19408
+ # @return [String]
19409
+ #
19410
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UpdateBucketMetadataInventoryTableConfigurationRequest AWS API Documentation
19411
+ #
19412
+ class UpdateBucketMetadataInventoryTableConfigurationRequest < Struct.new(
19413
+ :bucket,
19414
+ :content_md5,
19415
+ :checksum_algorithm,
19416
+ :inventory_table_configuration,
19417
+ :expected_bucket_owner)
19418
+ SENSITIVE = []
19419
+ include Aws::Structure
19420
+ end
19421
+
19422
+ # @!attribute [rw] bucket
19423
+ # The general purpose bucket that corresponds to the metadata
19424
+ # configuration that you want to enable or disable journal table
19425
+ # record expiration for.
19426
+ # @return [String]
19427
+ #
19428
+ # @!attribute [rw] content_md5
19429
+ # The `Content-MD5` header for the journal table configuration.
19430
+ # @return [String]
19431
+ #
19432
+ # @!attribute [rw] checksum_algorithm
19433
+ # The checksum algorithm to use with your journal table configuration.
19434
+ # @return [String]
19435
+ #
19436
+ # @!attribute [rw] journal_table_configuration
19437
+ # The contents of your journal table configuration.
19438
+ # @return [Types::JournalTableConfigurationUpdates]
19439
+ #
19440
+ # @!attribute [rw] expected_bucket_owner
19441
+ # The expected owner of the general purpose bucket that corresponds to
19442
+ # the metadata table configuration that you want to enable or disable
19443
+ # journal table record expiration for.
19444
+ # @return [String]
19445
+ #
19446
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UpdateBucketMetadataJournalTableConfigurationRequest AWS API Documentation
19447
+ #
19448
+ class UpdateBucketMetadataJournalTableConfigurationRequest < Struct.new(
19449
+ :bucket,
19450
+ :content_md5,
19451
+ :checksum_algorithm,
19452
+ :journal_table_configuration,
19453
+ :expected_bucket_owner)
19454
+ SENSITIVE = []
19455
+ include Aws::Structure
19456
+ end
19457
+
18176
19458
  # @!attribute [rw] copy_source_version_id
18177
19459
  # The version of the source object that was copied, if you have
18178
19460
  # enabled versioning on the source bucket.
@@ -18189,7 +19471,13 @@ module Aws::S3
18189
19471
  #
18190
19472
  # @!attribute [rw] server_side_encryption
18191
19473
  # The server-side encryption algorithm used when you store this object
18192
- # in Amazon S3 (for example, `AES256`, `aws:kms`).
19474
+ # in Amazon S3 or Amazon FSx.
19475
+ #
19476
+ # <note markdown="1"> When accessing data stored in Amazon FSx file systems using S3
19477
+ # access points, the only valid server side encryption option is
19478
+ # `aws:fsx`.
19479
+ #
19480
+ # </note>
18193
19481
  # @return [String]
18194
19482
  #
18195
19483
  # @!attribute [rw] sse_customer_algorithm
@@ -18587,7 +19875,13 @@ module Aws::S3
18587
19875
 
18588
19876
  # @!attribute [rw] server_side_encryption
18589
19877
  # The server-side encryption algorithm used when you store this object
18590
- # in Amazon S3 (for example, `AES256`, `aws:kms`).
19878
+ # in Amazon S3 or Amazon FSx.
19879
+ #
19880
+ # <note markdown="1"> When accessing data stored in Amazon FSx file systems using S3
19881
+ # access points, the only valid server side encryption option is
19882
+ # `aws:fsx`.
19883
+ #
19884
+ # </note>
18591
19885
  # @return [String]
18592
19886
  #
18593
19887
  # @!attribute [rw] etag
@@ -18596,7 +19890,7 @@ module Aws::S3
18596
19890
  #
18597
19891
  # @!attribute [rw] checksum_crc32
18598
19892
  # The Base64 encoded, 32-bit `CRC32 checksum` of the object. This
18599
- # checksum is only be present if the checksum was uploaded with the
19893
+ # checksum is only present if the checksum was uploaded with the
18600
19894
  # object. When you use an API operation on an object that was uploaded
18601
19895
  # using multipart uploads, this value may not be a direct checksum
18602
19896
  # value of the full object. Instead, it's a calculation based on the
@@ -18637,14 +19931,15 @@ module Aws::S3
18637
19931
  # @return [String]
18638
19932
  #
18639
19933
  # @!attribute [rw] checksum_sha1
18640
- # The Base64 encoded, 160-bit `SHA1` digest of the object. This will
18641
- # only be present if the object was uploaded with the object. When you
18642
- # use the API operation on an object that was uploaded using multipart
18643
- # uploads, this value may not be a direct checksum value of the full
18644
- # object. Instead, it's a calculation based on the checksum values of
18645
- # each individual part. For more information about how checksums are
18646
- # calculated with multipart uploads, see [ Checking object
18647
- # integrity][1] in the *Amazon S3 User Guide*.
19934
+ # The Base64 encoded, 160-bit `SHA1` digest of the object. This
19935
+ # checksum is only present if the checksum was uploaded with the
19936
+ # object. When you use the API operation on an object that was
19937
+ # uploaded using multipart uploads, this value may not be a direct
19938
+ # checksum value of the full object. Instead, it's a calculation
19939
+ # based on the checksum values of each individual part. For more
19940
+ # information about how checksums are calculated with multipart
19941
+ # uploads, see [ Checking object integrity][1] in the *Amazon S3 User
19942
+ # Guide*.
18648
19943
  #
18649
19944
  #
18650
19945
  #
@@ -18652,14 +19947,14 @@ module Aws::S3
18652
19947
  # @return [String]
18653
19948
  #
18654
19949
  # @!attribute [rw] checksum_sha256
18655
- # The Base64 encoded, 256-bit `SHA256` digest of the object. This will
18656
- # only be present if the object was uploaded with the object. When you
18657
- # use an API operation on an object that was uploaded using multipart
18658
- # uploads, this value may not be a direct checksum value of the full
18659
- # object. Instead, it's a calculation based on the checksum values of
18660
- # each individual part. For more information about how checksums are
18661
- # calculated with multipart uploads, see [ Checking object
18662
- # integrity][1] in the *Amazon S3 User Guide*.
19950
+ # The Base64 encoded, 256-bit `SHA256` digest of the object. This
19951
+ # checksum is only present if the checksum was uploaded with the
19952
+ # object. When you use an API operation on an object that was uploaded
19953
+ # using multipart uploads, this value may not be a direct checksum
19954
+ # value of the full object. Instead, it's a calculation based on the
19955
+ # checksum values of each individual part. For more information about
19956
+ # how checksums are calculated with multipart uploads, see [ Checking
19957
+ # object integrity][1] in the *Amazon S3 User Guide*.
18663
19958
  #
18664
19959
  #
18665
19960
  #
@@ -19320,7 +20615,13 @@ module Aws::S3
19320
20615
  #
19321
20616
  # @!attribute [rw] server_side_encryption
19322
20617
  # The server-side encryption algorithm used when storing requested
19323
- # object in Amazon S3 (for example, AES256, `aws:kms`).
20618
+ # object in Amazon S3 or Amazon FSx.
20619
+ #
20620
+ # <note markdown="1"> When accessing data stored in Amazon FSx file systems using S3
20621
+ # access points, the only valid server side encryption option is
20622
+ # `aws:fsx`.
20623
+ #
20624
+ # </note>
19324
20625
  # @return [String]
19325
20626
  #
19326
20627
  # @!attribute [rw] sse_customer_algorithm