aws-sdk-s3 1.220.0 → 1.232.1

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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +84 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/bucket.rb +26 -2
  5. data/lib/aws-sdk-s3/bucket_notification.rb +3 -3
  6. data/lib/aws-sdk-s3/client.rb +869 -62
  7. data/lib/aws-sdk-s3/client_api.rb +301 -0
  8. data/lib/aws-sdk-s3/customizations/object.rb +21 -0
  9. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +14 -1
  10. data/lib/aws-sdk-s3/encryptionV3/kms_cipher_provider.rb +13 -1
  11. data/lib/aws-sdk-s3/endpoint_provider.rb +6 -3
  12. data/lib/aws-sdk-s3/endpoints.rb +68 -0
  13. data/lib/aws-sdk-s3/errors.rb +66 -0
  14. data/lib/aws-sdk-s3/file_downloader.rb +3 -1
  15. data/lib/aws-sdk-s3/multipart_file_uploader.rb +1 -1
  16. data/lib/aws-sdk-s3/object.rb +150 -8
  17. data/lib/aws-sdk-s3/object_copier.rb +11 -22
  18. data/lib/aws-sdk-s3/object_multipart_copier.rb +177 -84
  19. data/lib/aws-sdk-s3/object_summary.rb +117 -8
  20. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +1 -1
  21. data/lib/aws-sdk-s3/types.rb +1162 -46
  22. data/lib/aws-sdk-s3.rb +1 -1
  23. data/sig/bucket.rbs +7 -4
  24. data/sig/bucket_acl.rbs +1 -1
  25. data/sig/bucket_cors.rbs +1 -1
  26. data/sig/bucket_lifecycle.rbs +1 -1
  27. data/sig/bucket_lifecycle_configuration.rbs +4 -4
  28. data/sig/bucket_logging.rbs +1 -1
  29. data/sig/bucket_notification.rbs +9 -9
  30. data/sig/bucket_tagging.rbs +1 -1
  31. data/sig/bucket_website.rbs +1 -1
  32. data/sig/client.rbs +246 -198
  33. data/sig/errors.rbs +12 -0
  34. data/sig/multipart_upload.rbs +2 -2
  35. data/sig/object.rbs +32 -13
  36. data/sig/object_acl.rbs +1 -1
  37. data/sig/object_summary.rbs +22 -12
  38. data/sig/params.rbs +78 -0
  39. data/sig/resource.rbs +1 -1
  40. data/sig/types.rbs +249 -39
  41. metadata +4 -3
@@ -255,7 +255,7 @@ module Aws::S3
255
255
  # the required types.
256
256
  #
257
257
  # @option options [Boolean] :correct_clock_skew (true)
258
- # Used only in `standard` and adaptive retry modes. Specifies whether to apply
258
+ # Used only in `standard` and `adaptive` retry modes. Specifies whether to apply
259
259
  # a clock skew correction and retry requests with skewed client clocks.
260
260
  #
261
261
  # @option options [String] :defaults_mode ("legacy")
@@ -408,17 +408,15 @@ module Aws::S3
408
408
  # @option options [String] :retry_mode ("legacy")
409
409
  # Specifies which retry algorithm to use. Values are:
410
410
  #
411
- # * `legacy` - The pre-existing retry behavior. This is default value if
412
- # no retry mode is provided.
411
+ # * `legacy` - The pre-existing retry behavior. This is the default
412
+ # value if no retry mode is provided.
413
413
  #
414
414
  # * `standard` - A standardized set of retry rules across the AWS SDKs.
415
415
  # This includes support for retry quotas, which limit the number of
416
416
  # unsuccessful retries a client can make.
417
417
  #
418
- # * `adaptive` - An experimental retry mode that includes all the
419
- # functionality of `standard` mode along with automatic client side
420
- # throttling. This is a provisional mode that may change behavior
421
- # in the future.
418
+ # * `adaptive` - A retry mode that includes all the functionality of
419
+ # `standard` mode along with automatic client side throttling.
422
420
  #
423
421
  # @option options [Boolean] :s3_disable_multiregion_access_points (false)
424
422
  # When set to `false` this will option will raise errors when multi-region
@@ -1354,7 +1352,7 @@ module Aws::S3
1354
1352
  # resp.checksum_xxhash3 #=> String
1355
1353
  # resp.checksum_xxhash128 #=> String
1356
1354
  # resp.checksum_type #=> String, one of "COMPOSITE", "FULL_OBJECT"
1357
- # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
1355
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:backup", "aws:kms", "aws:kms:dsse"
1358
1356
  # resp.version_id #=> String
1359
1357
  # resp.ssekms_key_id #=> String
1360
1358
  # resp.bucket_key_enabled #=> Boolean
@@ -1984,6 +1982,43 @@ module Aws::S3
1984
1982
  #
1985
1983
  # </note>
1986
1984
  #
1985
+ # @option params [String] :annotation_directive
1986
+ # Specifies whether you want to copy annotations from the source object
1987
+ # or exclude them. If this header isn't specified, `COPY` is the
1988
+ # default behavior.
1989
+ #
1990
+ # Valid Values: `COPY | EXCLUDE`
1991
+ #
1992
+ # You can specify this directive as either an HTTP header
1993
+ # (`x-amz-object-annotation-directive`) or as a query string parameter.
1994
+ # Use the query string form when generating presigned URLs that need to
1995
+ # control annotation copy behavior.
1996
+ #
1997
+ # When set to `COPY`, you must have `s3:GetObjectAnnotation` permission
1998
+ # on the source object and `s3:PutObjectAnnotation` permission on the
1999
+ # destination. Each annotation copied is billed as a separate PUT
2000
+ # request. If annotations on the source are modified during the copy,
2001
+ # Amazon S3 returns a retryable error.
2002
+ #
2003
+ # <note markdown="1"> For directory buckets, annotations are not supported. Use `EXCLUDE` to
2004
+ # copy objects to directory buckets without errors. If you specify
2005
+ # `COPY` for a directory bucket, the request returns HTTP 501 (Not
2006
+ # Implemented).
2007
+ #
2008
+ # </note>
2009
+ #
2010
+ # <note markdown="1"> When you copy objects using multipart upload (for example, when the
2011
+ # Amazon Web Services CLI or Amazon Web Services SDKs use Transfer
2012
+ # Manager for objects larger than approximately 8 MB), annotations are
2013
+ # not copied by default. To include annotations, specify `--copy-props
2014
+ # default` in the Amazon Web Services CLI or the equivalent SDK
2015
+ # configuration. With this opt-in, the SDK reads source annotations,
2016
+ # completes the multipart upload, and then writes each annotation to the
2017
+ # destination. Between the upload completion and the last annotation
2018
+ # write, the destination object exists without all its annotations.
2019
+ #
2020
+ # </note>
2021
+ #
1987
2022
  # @option params [String] :server_side_encryption
1988
2023
  # The server-side encryption algorithm used when storing this object in
1989
2024
  # Amazon S3. Unrecognized or unsupported values won’t write a
@@ -2373,6 +2408,30 @@ module Aws::S3
2373
2408
  #
2374
2409
  # </note>
2375
2410
  #
2411
+ # @option params [String] :object_lock_event_hold
2412
+ # The event hold status to apply to the object copy. Set to `ON` to
2413
+ # enable or `OFF` to disable.
2414
+ #
2415
+ # <note markdown="1"> This functionality is not supported for directory buckets.
2416
+ #
2417
+ # </note>
2418
+ #
2419
+ # @option params [Integer] :object_lock_event_hold_duration_days
2420
+ # The event hold duration in days to apply to the object copy. You
2421
+ # cannot specify a duration in both days and years.
2422
+ #
2423
+ # <note markdown="1"> This functionality is not supported for directory buckets.
2424
+ #
2425
+ # </note>
2426
+ #
2427
+ # @option params [Integer] :object_lock_event_hold_duration_years
2428
+ # The event hold duration in years to apply to the object copy. You
2429
+ # cannot specify a duration in both days and years.
2430
+ #
2431
+ # <note markdown="1"> This functionality is not supported for directory buckets.
2432
+ #
2433
+ # </note>
2434
+ #
2376
2435
  # @option params [String] :expected_bucket_owner
2377
2436
  # The account ID of the expected destination bucket owner. If the
2378
2437
  # account ID that you provide does not match the actual owner of the
@@ -2447,8 +2506,9 @@ module Aws::S3
2447
2506
  # },
2448
2507
  # metadata_directive: "COPY", # accepts COPY, REPLACE
2449
2508
  # tagging_directive: "COPY", # accepts COPY, REPLACE
2450
- # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
2451
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
2509
+ # annotation_directive: "COPY", # accepts COPY, EXCLUDE
2510
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:backup, aws:kms, aws:kms:dsse
2511
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP, AWS_BACKUP_WARM, AWS_BACKUP_LOW_COST_WARM
2452
2512
  # website_redirect_location: "WebsiteRedirectLocation",
2453
2513
  # sse_customer_algorithm: "SSECustomerAlgorithm",
2454
2514
  # sse_customer_key: "SSECustomerKey",
@@ -2464,6 +2524,9 @@ module Aws::S3
2464
2524
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
2465
2525
  # object_lock_retain_until_date: Time.now,
2466
2526
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
2527
+ # object_lock_event_hold: "ON", # accepts ON, OFF
2528
+ # object_lock_event_hold_duration_days: 1,
2529
+ # object_lock_event_hold_duration_years: 1,
2467
2530
  # expected_bucket_owner: "AccountId",
2468
2531
  # expected_source_bucket_owner: "AccountId",
2469
2532
  # })
@@ -2486,7 +2549,7 @@ module Aws::S3
2486
2549
  # resp.expiration #=> String
2487
2550
  # resp.copy_source_version_id #=> String
2488
2551
  # resp.version_id #=> String
2489
- # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
2552
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:backup", "aws:kms", "aws:kms:dsse"
2490
2553
  # resp.sse_customer_algorithm #=> String
2491
2554
  # resp.sse_customer_key_md5 #=> String
2492
2555
  # resp.ssekms_key_id #=> String
@@ -2926,10 +2989,15 @@ module Aws::S3
2926
2989
  #
2927
2990
  # * `s3tables:PutTablePolicy`
2928
2991
  #
2992
+ # * `s3tables:PutTableBucketPolicy`
2993
+ #
2929
2994
  # * `s3tables:PutTableEncryption`
2930
2995
  #
2931
2996
  # * `kms:DescribeKey`
2932
2997
  #
2998
+ # * `iam:PassRole` - required if you include an
2999
+ # `AnnotationTableConfiguration` with an IAM role.
3000
+ #
2933
3001
  # The following operations are related to
2934
3002
  # `CreateBucketMetadataConfiguration`:
2935
3003
  #
@@ -2941,6 +3009,15 @@ module Aws::S3
2941
3009
  #
2942
3010
  # * [UpdateBucketMetadataJournalTableConfiguration][8]
2943
3011
  #
3012
+ # * [UpdateBucketMetadataAnnotationTableConfiguration][9]
3013
+ #
3014
+ # If you include an `AnnotationTableConfiguration` with an IAM role, the
3015
+ # role must have a trust policy that allows the Amazon S3 metadata
3016
+ # service to assume it, and a permissions policy that grants the actions
3017
+ # needed to read annotations from your bucket. The following examples
3018
+ # show a trust policy and a permissions policy that you can adapt for
3019
+ # your bucket and account.
3020
+ #
2944
3021
  # You must URL encode any signed header values that contain spaces. For
2945
3022
  # example, if your header value is `my file.txt`, containing two spaces
2946
3023
  # after `my`, you must URL encode this value to `my%20%20file.txt`.
@@ -2955,6 +3032,7 @@ module Aws::S3
2955
3032
  # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html
2956
3033
  # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataInventoryTableConfiguration.html
2957
3034
  # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataJournalTableConfiguration.html
3035
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UpdateBucketMetadataAnnotationTableConfiguration.html
2958
3036
  #
2959
3037
  # @option params [required, String] :bucket
2960
3038
  # The general purpose bucket that you want to create the metadata
@@ -2999,6 +3077,14 @@ module Aws::S3
2999
3077
  # kms_key_arn: "KmsKeyArn",
3000
3078
  # },
3001
3079
  # },
3080
+ # annotation_table_configuration: {
3081
+ # configuration_state: "ENABLED", # required, accepts ENABLED, DISABLED
3082
+ # encryption_configuration: {
3083
+ # sse_algorithm: "aws:kms", # required, accepts aws:kms, AES256
3084
+ # kms_key_arn: "KmsKeyArn",
3085
+ # },
3086
+ # role: "Role",
3087
+ # },
3002
3088
  # },
3003
3089
  # expected_bucket_owner: "AccountId",
3004
3090
  # })
@@ -3981,6 +4067,30 @@ module Aws::S3
3981
4067
  #
3982
4068
  # </note>
3983
4069
  #
4070
+ # @option params [String] :object_lock_event_hold
4071
+ # Specifies the event hold status to apply to the uploaded object. Set
4072
+ # to `ON` to enable or `OFF` to disable.
4073
+ #
4074
+ # <note markdown="1"> This functionality is not supported for directory buckets.
4075
+ #
4076
+ # </note>
4077
+ #
4078
+ # @option params [Integer] :object_lock_event_hold_duration_days
4079
+ # Specifies the event hold duration in days to apply to the uploaded
4080
+ # object. You cannot specify a duration in both days and years.
4081
+ #
4082
+ # <note markdown="1"> This functionality is not supported for directory buckets.
4083
+ #
4084
+ # </note>
4085
+ #
4086
+ # @option params [Integer] :object_lock_event_hold_duration_years
4087
+ # Specifies the event hold duration in years to apply to the uploaded
4088
+ # object. You cannot specify a duration in both days and years.
4089
+ #
4090
+ # <note markdown="1"> This functionality is not supported for directory buckets.
4091
+ #
4092
+ # </note>
4093
+ #
3984
4094
  # @option params [String] :expected_bucket_owner
3985
4095
  # The account ID of the expected bucket owner. If the account ID that
3986
4096
  # you provide does not match the actual owner of the bucket, the request
@@ -4057,8 +4167,8 @@ module Aws::S3
4057
4167
  # metadata: {
4058
4168
  # "MetadataKey" => "MetadataValue",
4059
4169
  # },
4060
- # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
4061
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
4170
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:backup, aws:kms, aws:kms:dsse
4171
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP, AWS_BACKUP_WARM, AWS_BACKUP_LOW_COST_WARM
4062
4172
  # website_redirect_location: "WebsiteRedirectLocation",
4063
4173
  # sse_customer_algorithm: "SSECustomerAlgorithm",
4064
4174
  # sse_customer_key: "SSECustomerKey",
@@ -4071,6 +4181,9 @@ module Aws::S3
4071
4181
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
4072
4182
  # object_lock_retain_until_date: Time.now,
4073
4183
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
4184
+ # object_lock_event_hold: "ON", # accepts ON, OFF
4185
+ # object_lock_event_hold_duration_days: 1,
4186
+ # object_lock_event_hold_duration_years: 1,
4074
4187
  # expected_bucket_owner: "AccountId",
4075
4188
  # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME, SHA512, MD5, XXHASH64, XXHASH3, XXHASH128
4076
4189
  # checksum_type: "COMPOSITE", # accepts COMPOSITE, FULL_OBJECT
@@ -4083,7 +4196,7 @@ module Aws::S3
4083
4196
  # resp.bucket #=> String
4084
4197
  # resp.key #=> String
4085
4198
  # resp.upload_id #=> String
4086
- # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
4199
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:backup", "aws:kms", "aws:kms:dsse"
4087
4200
  # resp.sse_customer_algorithm #=> String
4088
4201
  # resp.sse_customer_key_md5 #=> String
4089
4202
  # resp.ssekms_key_id #=> String
@@ -4387,7 +4500,7 @@ module Aws::S3
4387
4500
  # resp = client.create_session({
4388
4501
  # session_mode: "ReadOnly", # accepts ReadOnly, ReadWrite
4389
4502
  # bucket: "BucketName", # required
4390
- # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
4503
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:backup, aws:kms, aws:kms:dsse
4391
4504
  # ssekms_key_id: "SSEKMSKeyId",
4392
4505
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
4393
4506
  # bucket_key_enabled: false,
@@ -4395,7 +4508,7 @@ module Aws::S3
4395
4508
  #
4396
4509
  # @example Response structure
4397
4510
  #
4398
- # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
4511
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:backup", "aws:kms", "aws:kms:dsse"
4399
4512
  # resp.ssekms_key_id #=> String
4400
4513
  # resp.ssekms_encryption_context #=> String
4401
4514
  # resp.bucket_key_enabled #=> Boolean
@@ -6107,6 +6220,110 @@ module Aws::S3
6107
6220
  req.send_request(options)
6108
6221
  end
6109
6222
 
6223
+ # Deletes a specific annotation from an Amazon S3 object. Use the
6224
+ # `x-amz-object-if-match` header to perform a conditional delete that
6225
+ # only succeeds if the object's ETag matches the provided value,
6226
+ # preventing race conditions during concurrent updates.
6227
+ #
6228
+ # Deleting an annotation is permanent. Annotations are not independently
6229
+ # versioned, so there is no delete marker or way to recover a deleted
6230
+ # annotation.
6231
+ #
6232
+ # To use this operation, you must have the `s3:DeleteObjectAnnotation`
6233
+ # permission. If the object is protected by Object Lock in governance
6234
+ # mode, you must also include the `x-amz-bypass-governance-retention`
6235
+ # header.
6236
+ #
6237
+ # <note markdown="1"> Annotations are not supported by the following features: S3 Inventory
6238
+ # Reports, API Gateway, S3 Storage Lens, Amazon S3 File Gateway, Amazon
6239
+ # FSx, S3 on Outposts, and S3 Express One Zone (directory buckets).
6240
+ #
6241
+ # </note>
6242
+ #
6243
+ # The following operations are related to `DeleteObjectAnnotation`:
6244
+ #
6245
+ # * [PutObjectAnnotation][1]
6246
+ #
6247
+ # * [GetObjectAnnotation][2]
6248
+ #
6249
+ # * [ListObjectAnnotations][3]
6250
+ #
6251
+ #
6252
+ #
6253
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAnnotation.html
6254
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAnnotation.html
6255
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectAnnotations.html
6256
+ #
6257
+ # @option params [required, String] :bucket
6258
+ # The name of the bucket that contains the object.
6259
+ #
6260
+ # @option params [required, String] :key
6261
+ # The object key.
6262
+ #
6263
+ # @option params [required, String] :annotation_name
6264
+ # The name of the annotation to delete. Annotation names are UTF-8
6265
+ # encoded and cannot start with `aws` or `s3` (case-insensitive).
6266
+ #
6267
+ # Length Constraints: Minimum length of 1. Maximum length of 512 bytes.
6268
+ #
6269
+ # @option params [String] :version_id
6270
+ # The version ID of the object.
6271
+ #
6272
+ # @option params [String] :request_payer
6273
+ # Confirms that the requester knows that they will be charged for the
6274
+ # request. Bucket owners need not specify this parameter in their
6275
+ # requests. If either the source or destination S3 bucket has Requester
6276
+ # Pays enabled, the requester will pay for the corresponding charges.
6277
+ # For information about downloading objects from Requester Pays buckets,
6278
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
6279
+ # S3 User Guide*.
6280
+ #
6281
+ # <note markdown="1"> This functionality is not supported for directory buckets.
6282
+ #
6283
+ # </note>
6284
+ #
6285
+ #
6286
+ #
6287
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
6288
+ #
6289
+ # @option params [String] :expected_bucket_owner
6290
+ # The account ID of the expected bucket owner.
6291
+ #
6292
+ # @option params [String] :object_if_match
6293
+ # If specified, the operation only succeeds if the object's ETag
6294
+ # matches the provided value.
6295
+ #
6296
+ # @return [Types::DeleteObjectAnnotationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6297
+ #
6298
+ # * {Types::DeleteObjectAnnotationOutput#object_version_id #object_version_id} => String
6299
+ # * {Types::DeleteObjectAnnotationOutput#request_charged #request_charged} => String
6300
+ #
6301
+ # @example Request syntax with placeholder values
6302
+ #
6303
+ # resp = client.delete_object_annotation({
6304
+ # bucket: "BucketName", # required
6305
+ # key: "ObjectKey", # required
6306
+ # annotation_name: "AnnotationName", # required
6307
+ # version_id: "ObjectVersionId",
6308
+ # request_payer: "requester", # accepts requester
6309
+ # expected_bucket_owner: "AccountId",
6310
+ # object_if_match: "ObjectIfMatch",
6311
+ # })
6312
+ #
6313
+ # @example Response structure
6314
+ #
6315
+ # resp.object_version_id #=> String
6316
+ # resp.request_charged #=> String, one of "requester"
6317
+ #
6318
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectAnnotation AWS API Documentation
6319
+ #
6320
+ # @overload delete_object_annotation(params = {})
6321
+ # @param [Hash] params ({})
6322
+ def delete_object_annotation(params = {}, options = {})
6323
+ req = build_request(:delete_object_annotation, params)
6324
+ req.send_request(options)
6325
+ end
6326
+
6110
6327
  # <note markdown="1"> This operation is not supported for directory buckets.
6111
6328
  #
6112
6329
  # </note>
@@ -7267,7 +7484,7 @@ module Aws::S3
7267
7484
  # @example Response structure
7268
7485
  #
7269
7486
  # resp.server_side_encryption_configuration.rules #=> Array
7270
- # resp.server_side_encryption_configuration.rules[0].apply_server_side_encryption_by_default.sse_algorithm #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
7487
+ # resp.server_side_encryption_configuration.rules[0].apply_server_side_encryption_by_default.sse_algorithm #=> String, one of "AES256", "aws:fsx", "aws:backup", "aws:kms", "aws:kms:dsse"
7271
7488
  # resp.server_side_encryption_configuration.rules[0].apply_server_side_encryption_by_default.kms_master_key_id #=> String
7272
7489
  # resp.server_side_encryption_configuration.rules[0].bucket_key_enabled #=> Boolean
7273
7490
  # resp.server_side_encryption_configuration.rules[0].blocked_encryption_types.encryption_type #=> Array
@@ -7506,7 +7723,7 @@ module Aws::S3
7506
7723
  # resp.inventory_configuration.id #=> String
7507
7724
  # resp.inventory_configuration.included_object_versions #=> String, one of "All", "Current"
7508
7725
  # resp.inventory_configuration.optional_fields #=> Array
7509
- # resp.inventory_configuration.optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus", "ObjectLockRetainUntilDate", "ObjectLockMode", "ObjectLockLegalHoldStatus", "IntelligentTieringAccessTier", "BucketKeyStatus", "ChecksumAlgorithm", "ObjectAccessControlList", "ObjectOwner", "LifecycleExpirationDate"
7726
+ # resp.inventory_configuration.optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus", "ObjectLockRetainUntilDate", "ObjectLockMode", "ObjectLockLegalHoldStatus", "ObjectLockEventHoldStatus", "ObjectLockEventHoldDuration", "IntelligentTieringAccessTier", "BucketKeyStatus", "ChecksumAlgorithm", "ObjectAccessControlList", "ObjectOwner", "LifecycleExpirationDate"
7510
7727
  # resp.inventory_configuration.schedule.frequency #=> String, one of "Daily", "Weekly"
7511
7728
  #
7512
7729
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketInventoryConfiguration AWS API Documentation
@@ -8089,6 +8306,13 @@ module Aws::S3
8089
8306
  # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.inventory_table_configuration_result.error.error_message #=> String
8090
8307
  # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.inventory_table_configuration_result.table_name #=> String
8091
8308
  # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.inventory_table_configuration_result.table_arn #=> String
8309
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.annotation_table_configuration_result.configuration_state #=> String, one of "ENABLED", "DISABLED"
8310
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.annotation_table_configuration_result.table_status #=> String
8311
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.annotation_table_configuration_result.error.error_code #=> String
8312
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.annotation_table_configuration_result.error.error_message #=> String
8313
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.annotation_table_configuration_result.table_name #=> String
8314
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.annotation_table_configuration_result.table_arn #=> String
8315
+ # resp.get_bucket_metadata_configuration_result.metadata_configuration_result.annotation_table_configuration_result.role #=> String
8092
8316
  #
8093
8317
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetadataConfiguration AWS API Documentation
8094
8318
  #
@@ -8446,18 +8670,18 @@ module Aws::S3
8446
8670
  #
8447
8671
  # resp.topic_configuration.id #=> String
8448
8672
  # resp.topic_configuration.events #=> Array
8449
- # resp.topic_configuration.events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete"
8450
- # resp.topic_configuration.event #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete"
8673
+ # resp.topic_configuration.events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete", "s3:ObjectAnnotation:*", "s3:ObjectAnnotation:Put", "s3:ObjectAnnotation:Delete", "s3:ObjectRetention:Put"
8674
+ # resp.topic_configuration.event #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete", "s3:ObjectAnnotation:*", "s3:ObjectAnnotation:Put", "s3:ObjectAnnotation:Delete", "s3:ObjectRetention:Put"
8451
8675
  # resp.topic_configuration.topic #=> String
8452
8676
  # resp.queue_configuration.id #=> String
8453
- # resp.queue_configuration.event #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete"
8677
+ # resp.queue_configuration.event #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete", "s3:ObjectAnnotation:*", "s3:ObjectAnnotation:Put", "s3:ObjectAnnotation:Delete", "s3:ObjectRetention:Put"
8454
8678
  # resp.queue_configuration.events #=> Array
8455
- # resp.queue_configuration.events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete"
8679
+ # resp.queue_configuration.events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete", "s3:ObjectAnnotation:*", "s3:ObjectAnnotation:Put", "s3:ObjectAnnotation:Delete", "s3:ObjectRetention:Put"
8456
8680
  # resp.queue_configuration.queue #=> String
8457
8681
  # resp.cloud_function_configuration.id #=> String
8458
- # resp.cloud_function_configuration.event #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete"
8682
+ # resp.cloud_function_configuration.event #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete", "s3:ObjectAnnotation:*", "s3:ObjectAnnotation:Put", "s3:ObjectAnnotation:Delete", "s3:ObjectRetention:Put"
8459
8683
  # resp.cloud_function_configuration.events #=> Array
8460
- # resp.cloud_function_configuration.events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete"
8684
+ # resp.cloud_function_configuration.events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete", "s3:ObjectAnnotation:*", "s3:ObjectAnnotation:Put", "s3:ObjectAnnotation:Delete", "s3:ObjectRetention:Put"
8461
8685
  # resp.cloud_function_configuration.cloud_function #=> String
8462
8686
  # resp.cloud_function_configuration.invocation_role #=> String
8463
8687
  #
@@ -8559,7 +8783,7 @@ module Aws::S3
8559
8783
  # resp.topic_configurations[0].id #=> String
8560
8784
  # resp.topic_configurations[0].topic_arn #=> String
8561
8785
  # resp.topic_configurations[0].events #=> Array
8562
- # resp.topic_configurations[0].events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete"
8786
+ # resp.topic_configurations[0].events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete", "s3:ObjectAnnotation:*", "s3:ObjectAnnotation:Put", "s3:ObjectAnnotation:Delete", "s3:ObjectRetention:Put"
8563
8787
  # resp.topic_configurations[0].filter.key.filter_rules #=> Array
8564
8788
  # resp.topic_configurations[0].filter.key.filter_rules[0].name #=> String, one of "prefix", "suffix"
8565
8789
  # resp.topic_configurations[0].filter.key.filter_rules[0].value #=> String
@@ -8567,7 +8791,7 @@ module Aws::S3
8567
8791
  # resp.queue_configurations[0].id #=> String
8568
8792
  # resp.queue_configurations[0].queue_arn #=> String
8569
8793
  # resp.queue_configurations[0].events #=> Array
8570
- # resp.queue_configurations[0].events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete"
8794
+ # resp.queue_configurations[0].events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete", "s3:ObjectAnnotation:*", "s3:ObjectAnnotation:Put", "s3:ObjectAnnotation:Delete", "s3:ObjectRetention:Put"
8571
8795
  # resp.queue_configurations[0].filter.key.filter_rules #=> Array
8572
8796
  # resp.queue_configurations[0].filter.key.filter_rules[0].name #=> String, one of "prefix", "suffix"
8573
8797
  # resp.queue_configurations[0].filter.key.filter_rules[0].value #=> String
@@ -8575,7 +8799,7 @@ module Aws::S3
8575
8799
  # resp.lambda_function_configurations[0].id #=> String
8576
8800
  # resp.lambda_function_configurations[0].lambda_function_arn #=> String
8577
8801
  # resp.lambda_function_configurations[0].events #=> Array
8578
- # resp.lambda_function_configurations[0].events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete"
8802
+ # resp.lambda_function_configurations[0].events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated", "s3:ObjectRestore:*", "s3:ObjectRestore:Post", "s3:ObjectRestore:Completed", "s3:Replication:*", "s3:Replication:OperationFailedReplication", "s3:Replication:OperationNotTracked", "s3:Replication:OperationMissedThreshold", "s3:Replication:OperationReplicatedAfterThreshold", "s3:ObjectRestore:Delete", "s3:LifecycleTransition", "s3:IntelligentTiering", "s3:ObjectAcl:Put", "s3:LifecycleExpiration:*", "s3:LifecycleExpiration:Delete", "s3:LifecycleExpiration:DeleteMarkerCreated", "s3:ObjectTagging:*", "s3:ObjectTagging:Put", "s3:ObjectTagging:Delete", "s3:ObjectAnnotation:*", "s3:ObjectAnnotation:Put", "s3:ObjectAnnotation:Delete", "s3:ObjectRetention:Put"
8579
8803
  # resp.lambda_function_configurations[0].filter.key.filter_rules #=> Array
8580
8804
  # resp.lambda_function_configurations[0].filter.key.filter_rules[0].name #=> String, one of "prefix", "suffix"
8581
8805
  # resp.lambda_function_configurations[0].filter.key.filter_rules[0].value #=> String
@@ -9012,7 +9236,7 @@ module Aws::S3
9012
9236
  # resp.replication_configuration.rules[0].existing_object_replication.status #=> String, one of "Enabled", "Disabled"
9013
9237
  # resp.replication_configuration.rules[0].destination.bucket #=> String
9014
9238
  # resp.replication_configuration.rules[0].destination.account #=> String
9015
- # resp.replication_configuration.rules[0].destination.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP"
9239
+ # resp.replication_configuration.rules[0].destination.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP", "AWS_BACKUP_WARM", "AWS_BACKUP_LOW_COST_WARM"
9016
9240
  # resp.replication_configuration.rules[0].destination.access_control_translation.owner #=> String, one of "Destination"
9017
9241
  # resp.replication_configuration.rules[0].destination.encryption_configuration.replica_kms_key_id #=> String
9018
9242
  # resp.replication_configuration.rules[0].destination.replication_time.status #=> String, one of "Enabled", "Disabled"
@@ -9889,6 +10113,9 @@ module Aws::S3
9889
10113
  # * {Types::GetObjectOutput#object_lock_mode #object_lock_mode} => String
9890
10114
  # * {Types::GetObjectOutput#object_lock_retain_until_date #object_lock_retain_until_date} => Time
9891
10115
  # * {Types::GetObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String
10116
+ # * {Types::GetObjectOutput#object_lock_event_hold #object_lock_event_hold} => String
10117
+ # * {Types::GetObjectOutput#object_lock_event_hold_duration_days #object_lock_event_hold_duration_days} => Integer
10118
+ # * {Types::GetObjectOutput#object_lock_event_hold_duration_years #object_lock_event_hold_duration_years} => Integer
9892
10119
  #
9893
10120
  #
9894
10121
  # @example Example: To retrieve a byte range of an object
@@ -10024,14 +10251,14 @@ module Aws::S3
10024
10251
  # resp.expires #=> Time
10025
10252
  # resp.expires_string #=> String
10026
10253
  # resp.website_redirect_location #=> String
10027
- # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
10254
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:backup", "aws:kms", "aws:kms:dsse"
10028
10255
  # resp.metadata #=> Hash
10029
10256
  # resp.metadata["MetadataKey"] #=> String
10030
10257
  # resp.sse_customer_algorithm #=> String
10031
10258
  # resp.sse_customer_key_md5 #=> String
10032
10259
  # resp.ssekms_key_id #=> String
10033
10260
  # resp.bucket_key_enabled #=> Boolean
10034
- # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP"
10261
+ # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP", "AWS_BACKUP_WARM", "AWS_BACKUP_LOW_COST_WARM"
10035
10262
  # resp.request_charged #=> String, one of "requester"
10036
10263
  # resp.replication_status #=> String, one of "COMPLETE", "PENDING", "FAILED", "REPLICA", "COMPLETED"
10037
10264
  # resp.parts_count #=> Integer
@@ -10039,6 +10266,9 @@ module Aws::S3
10039
10266
  # resp.object_lock_mode #=> String, one of "GOVERNANCE", "COMPLIANCE"
10040
10267
  # resp.object_lock_retain_until_date #=> Time
10041
10268
  # resp.object_lock_legal_hold_status #=> String, one of "ON", "OFF"
10269
+ # resp.object_lock_event_hold #=> String, one of "ON", "OFF"
10270
+ # resp.object_lock_event_hold_duration_days #=> Integer
10271
+ # resp.object_lock_event_hold_duration_years #=> Integer
10042
10272
  #
10043
10273
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObject AWS API Documentation
10044
10274
  #
@@ -10239,6 +10469,141 @@ module Aws::S3
10239
10469
  req.send_request(options)
10240
10470
  end
10241
10471
 
10472
+ # Retrieves an annotation from an Amazon S3 object. To use this
10473
+ # operation, you must have the `s3:GetObjectAnnotation` permission.
10474
+ #
10475
+ # If checksum mode is enabled via the `x-amz-checksum-mode` header,
10476
+ # Amazon S3 returns the stored checksum in the response headers for
10477
+ # client-side validation.
10478
+ #
10479
+ # <note markdown="1"> Annotations are not supported by the following features: S3 Inventory
10480
+ # Reports, API Gateway, S3 Storage Lens, Amazon S3 File Gateway, Amazon
10481
+ # FSx, S3 on Outposts, and S3 Express One Zone (directory buckets).
10482
+ #
10483
+ # </note>
10484
+ #
10485
+ # The following operations are related to `GetObjectAnnotation`:
10486
+ #
10487
+ # * [PutObjectAnnotation][1]
10488
+ #
10489
+ # * [ListObjectAnnotations][2]
10490
+ #
10491
+ # * [DeleteObjectAnnotation][3]
10492
+ #
10493
+ #
10494
+ #
10495
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAnnotation.html
10496
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectAnnotations.html
10497
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectAnnotation.html
10498
+ #
10499
+ # @option params [String, IO] :response_target
10500
+ # Where to write response data, file path, or IO object.
10501
+ #
10502
+ # @option params [required, String] :bucket
10503
+ # The name of the bucket that contains the object.
10504
+ #
10505
+ # @option params [required, String] :key
10506
+ # The object key.
10507
+ #
10508
+ # @option params [required, String] :annotation_name
10509
+ # The name of the annotation to retrieve.
10510
+ #
10511
+ # Length Constraints: Minimum length of 1. Maximum length of 512 bytes.
10512
+ #
10513
+ # @option params [String] :version_id
10514
+ # The version ID of the object.
10515
+ #
10516
+ # @option params [String] :request_payer
10517
+ # Confirms that the requester knows that they will be charged for the
10518
+ # request. Bucket owners need not specify this parameter in their
10519
+ # requests. If either the source or destination S3 bucket has Requester
10520
+ # Pays enabled, the requester will pay for the corresponding charges.
10521
+ # For information about downloading objects from Requester Pays buckets,
10522
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
10523
+ # S3 User Guide*.
10524
+ #
10525
+ # <note markdown="1"> This functionality is not supported for directory buckets.
10526
+ #
10527
+ # </note>
10528
+ #
10529
+ #
10530
+ #
10531
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
10532
+ #
10533
+ # @option params [String] :expected_bucket_owner
10534
+ # The account ID of the expected bucket owner. If the bucket is owned by
10535
+ # a different account, the request fails with an HTTP 403 (Access
10536
+ # Denied) error.
10537
+ #
10538
+ # @option params [String] :checksum_mode
10539
+ # Set to `ENABLED` to validate the checksum of the annotation payload on
10540
+ # retrieval.
10541
+ #
10542
+ # @return [Types::GetObjectAnnotationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
10543
+ #
10544
+ # * {Types::GetObjectAnnotationOutput#annotation_payload #annotation_payload} => IO
10545
+ # * {Types::GetObjectAnnotationOutput#object_version_id #object_version_id} => String
10546
+ # * {Types::GetObjectAnnotationOutput#last_modified #last_modified} => Time
10547
+ # * {Types::GetObjectAnnotationOutput#content_length #content_length} => Integer
10548
+ # * {Types::GetObjectAnnotationOutput#etag #etag} => String
10549
+ # * {Types::GetObjectAnnotationOutput#checksum_crc32 #checksum_crc32} => String
10550
+ # * {Types::GetObjectAnnotationOutput#checksum_crc32c #checksum_crc32c} => String
10551
+ # * {Types::GetObjectAnnotationOutput#checksum_crc64nvme #checksum_crc64nvme} => String
10552
+ # * {Types::GetObjectAnnotationOutput#checksum_sha1 #checksum_sha1} => String
10553
+ # * {Types::GetObjectAnnotationOutput#checksum_sha256 #checksum_sha256} => String
10554
+ # * {Types::GetObjectAnnotationOutput#checksum_sha512 #checksum_sha512} => String
10555
+ # * {Types::GetObjectAnnotationOutput#checksum_md5 #checksum_md5} => String
10556
+ # * {Types::GetObjectAnnotationOutput#checksum_xxhash64 #checksum_xxhash64} => String
10557
+ # * {Types::GetObjectAnnotationOutput#checksum_xxhash3 #checksum_xxhash3} => String
10558
+ # * {Types::GetObjectAnnotationOutput#checksum_xxhash128 #checksum_xxhash128} => String
10559
+ # * {Types::GetObjectAnnotationOutput#checksum_type #checksum_type} => String
10560
+ # * {Types::GetObjectAnnotationOutput#server_side_encryption #server_side_encryption} => String
10561
+ # * {Types::GetObjectAnnotationOutput#request_charged #request_charged} => String
10562
+ # * {Types::GetObjectAnnotationOutput#replication_status #replication_status} => String
10563
+ #
10564
+ # @example Request syntax with placeholder values
10565
+ #
10566
+ # resp = client.get_object_annotation({
10567
+ # bucket: "BucketName", # required
10568
+ # key: "ObjectKey", # required
10569
+ # annotation_name: "AnnotationName", # required
10570
+ # version_id: "ObjectVersionId",
10571
+ # request_payer: "requester", # accepts requester
10572
+ # expected_bucket_owner: "AccountId",
10573
+ # checksum_mode: "ENABLED", # accepts ENABLED
10574
+ # })
10575
+ #
10576
+ # @example Response structure
10577
+ #
10578
+ # resp.annotation_payload #=> IO
10579
+ # resp.object_version_id #=> String
10580
+ # resp.last_modified #=> Time
10581
+ # resp.content_length #=> Integer
10582
+ # resp.etag #=> String
10583
+ # resp.checksum_crc32 #=> String
10584
+ # resp.checksum_crc32c #=> String
10585
+ # resp.checksum_crc64nvme #=> String
10586
+ # resp.checksum_sha1 #=> String
10587
+ # resp.checksum_sha256 #=> String
10588
+ # resp.checksum_sha512 #=> String
10589
+ # resp.checksum_md5 #=> String
10590
+ # resp.checksum_xxhash64 #=> String
10591
+ # resp.checksum_xxhash3 #=> String
10592
+ # resp.checksum_xxhash128 #=> String
10593
+ # resp.checksum_type #=> String, one of "COMPOSITE", "FULL_OBJECT"
10594
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:backup", "aws:kms", "aws:kms:dsse"
10595
+ # resp.request_charged #=> String, one of "requester"
10596
+ # resp.replication_status #=> String, one of "COMPLETE", "PENDING", "FAILED", "REPLICA", "COMPLETED"
10597
+ #
10598
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAnnotation AWS API Documentation
10599
+ #
10600
+ # @overload get_object_annotation(params = {})
10601
+ # @param [Hash] params ({})
10602
+ def get_object_annotation(params = {}, options = {}, &block)
10603
+ req = build_request(:get_object_annotation, params)
10604
+ req.send_request(options, &block)
10605
+ end
10606
+
10242
10607
  # Retrieves all of the metadata from an object without returning the
10243
10608
  # object itself. This operation is useful if you're interested only in
10244
10609
  # an object's metadata.
@@ -10628,7 +10993,7 @@ module Aws::S3
10628
10993
  # resp.object_parts.parts[0].checksum_xxhash64 #=> String
10629
10994
  # resp.object_parts.parts[0].checksum_xxhash3 #=> String
10630
10995
  # resp.object_parts.parts[0].checksum_xxhash128 #=> String
10631
- # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP"
10996
+ # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP", "AWS_BACKUP_WARM", "AWS_BACKUP_LOW_COST_WARM"
10632
10997
  # resp.object_size #=> Integer
10633
10998
  #
10634
10999
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAttributes AWS API Documentation
@@ -10808,6 +11173,8 @@ module Aws::S3
10808
11173
  # resp.object_lock_configuration.rule.default_retention.mode #=> String, one of "GOVERNANCE", "COMPLIANCE"
10809
11174
  # resp.object_lock_configuration.rule.default_retention.days #=> Integer
10810
11175
  # resp.object_lock_configuration.rule.default_retention.years #=> Integer
11176
+ # resp.object_lock_configuration.rule.default_retention.default_event_hold.days #=> Integer
11177
+ # resp.object_lock_configuration.rule.default_retention.default_event_hold.years #=> Integer
10811
11178
  #
10812
11179
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfiguration AWS API Documentation
10813
11180
  #
@@ -10911,6 +11278,9 @@ module Aws::S3
10911
11278
  #
10912
11279
  # resp.retention.mode #=> String, one of "GOVERNANCE", "COMPLIANCE"
10913
11280
  # resp.retention.retain_until_date #=> Time
11281
+ # resp.retention.event_hold #=> String, one of "ON", "OFF"
11282
+ # resp.retention.event_hold_duration.days #=> Integer
11283
+ # resp.retention.event_hold_duration.years #=> Integer
10914
11284
  #
10915
11285
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetention AWS API Documentation
10916
11286
  #
@@ -11918,6 +12288,9 @@ module Aws::S3
11918
12288
  # * {Types::HeadObjectOutput#object_lock_mode #object_lock_mode} => String
11919
12289
  # * {Types::HeadObjectOutput#object_lock_retain_until_date #object_lock_retain_until_date} => Time
11920
12290
  # * {Types::HeadObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String
12291
+ # * {Types::HeadObjectOutput#object_lock_event_hold #object_lock_event_hold} => String
12292
+ # * {Types::HeadObjectOutput#object_lock_event_hold_duration_days #object_lock_event_hold_duration_days} => Integer
12293
+ # * {Types::HeadObjectOutput#object_lock_event_hold_duration_years #object_lock_event_hold_duration_years} => Integer
11921
12294
  #
11922
12295
  #
11923
12296
  # @example Example: To retrieve metadata of an object without returning the object itself
@@ -11999,14 +12372,14 @@ module Aws::S3
11999
12372
  # resp.expires #=> Time
12000
12373
  # resp.expires_string #=> String
12001
12374
  # resp.website_redirect_location #=> String
12002
- # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
12375
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:backup", "aws:kms", "aws:kms:dsse"
12003
12376
  # resp.metadata #=> Hash
12004
12377
  # resp.metadata["MetadataKey"] #=> String
12005
12378
  # resp.sse_customer_algorithm #=> String
12006
12379
  # resp.sse_customer_key_md5 #=> String
12007
12380
  # resp.ssekms_key_id #=> String
12008
12381
  # resp.bucket_key_enabled #=> Boolean
12009
- # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP"
12382
+ # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP", "AWS_BACKUP_WARM", "AWS_BACKUP_LOW_COST_WARM"
12010
12383
  # resp.request_charged #=> String, one of "requester"
12011
12384
  # resp.replication_status #=> String, one of "COMPLETE", "PENDING", "FAILED", "REPLICA", "COMPLETED"
12012
12385
  # resp.parts_count #=> Integer
@@ -12014,6 +12387,9 @@ module Aws::S3
12014
12387
  # resp.object_lock_mode #=> String, one of "GOVERNANCE", "COMPLIANCE"
12015
12388
  # resp.object_lock_retain_until_date #=> Time
12016
12389
  # resp.object_lock_legal_hold_status #=> String, one of "ON", "OFF"
12390
+ # resp.object_lock_event_hold #=> String, one of "ON", "OFF"
12391
+ # resp.object_lock_event_hold_duration_days #=> Integer
12392
+ # resp.object_lock_event_hold_duration_years #=> Integer
12017
12393
  #
12018
12394
  #
12019
12395
  # The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
@@ -12384,7 +12760,7 @@ module Aws::S3
12384
12760
  # resp.inventory_configuration_list[0].id #=> String
12385
12761
  # resp.inventory_configuration_list[0].included_object_versions #=> String, one of "All", "Current"
12386
12762
  # resp.inventory_configuration_list[0].optional_fields #=> Array
12387
- # resp.inventory_configuration_list[0].optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus", "ObjectLockRetainUntilDate", "ObjectLockMode", "ObjectLockLegalHoldStatus", "IntelligentTieringAccessTier", "BucketKeyStatus", "ChecksumAlgorithm", "ObjectAccessControlList", "ObjectOwner", "LifecycleExpirationDate"
12763
+ # resp.inventory_configuration_list[0].optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus", "ObjectLockRetainUntilDate", "ObjectLockMode", "ObjectLockLegalHoldStatus", "ObjectLockEventHoldStatus", "ObjectLockEventHoldDuration", "IntelligentTieringAccessTier", "BucketKeyStatus", "ChecksumAlgorithm", "ObjectAccessControlList", "ObjectOwner", "LifecycleExpirationDate"
12388
12764
  # resp.inventory_configuration_list[0].schedule.frequency #=> String, one of "Daily", "Weekly"
12389
12765
  # resp.is_truncated #=> Boolean
12390
12766
  # resp.next_continuation_token #=> String
@@ -13229,7 +13605,7 @@ module Aws::S3
13229
13605
  # resp.uploads[0].upload_id #=> String
13230
13606
  # resp.uploads[0].key #=> String
13231
13607
  # resp.uploads[0].initiated #=> Time
13232
- # resp.uploads[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP"
13608
+ # resp.uploads[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP", "AWS_BACKUP_WARM", "AWS_BACKUP_LOW_COST_WARM"
13233
13609
  # resp.uploads[0].owner.display_name #=> String
13234
13610
  # resp.uploads[0].owner.id #=> String
13235
13611
  # resp.uploads[0].initiator.id #=> String
@@ -13250,6 +13626,131 @@ module Aws::S3
13250
13626
  req.send_request(options)
13251
13627
  end
13252
13628
 
13629
+ # Lists the annotations attached to an Amazon S3 object. Results are
13630
+ # paginated, with a maximum of 1,000 annotations per object. Use the
13631
+ # `AnnotationPrefix` parameter to filter the results by name prefix.
13632
+ #
13633
+ # To use this operation, you must have the `s3:ListObjectAnnotations`
13634
+ # permission.
13635
+ #
13636
+ # <note markdown="1"> Annotations are not supported by the following features: S3 Inventory
13637
+ # Reports, API Gateway, S3 Storage Lens, Amazon S3 File Gateway, Amazon
13638
+ # FSx, S3 on Outposts, and S3 Express One Zone (directory buckets).
13639
+ #
13640
+ # </note>
13641
+ #
13642
+ # The following operations are related to `ListObjectAnnotations`:
13643
+ #
13644
+ # * [PutObjectAnnotation][1]
13645
+ #
13646
+ # * [GetObjectAnnotation][2]
13647
+ #
13648
+ # * [DeleteObjectAnnotation][3]
13649
+ #
13650
+ #
13651
+ #
13652
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectAnnotation.html
13653
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAnnotation.html
13654
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectAnnotation.html
13655
+ #
13656
+ # @option params [required, String] :bucket
13657
+ # The name of the bucket that contains the object.
13658
+ #
13659
+ # @option params [required, String] :key
13660
+ # The object key.
13661
+ #
13662
+ # @option params [String] :version_id
13663
+ # The version ID of the object.
13664
+ #
13665
+ # @option params [Integer] :max_annotation_results
13666
+ # The maximum number of annotations to return in the response. Maximum
13667
+ # is 1,000.
13668
+ #
13669
+ # @option params [String] :annotation_prefix
13670
+ # Filter results to annotations whose name begins with the specified
13671
+ # prefix.
13672
+ #
13673
+ # @option params [String] :continuation_token
13674
+ # Continuation token returned by a previous request to retrieve the next
13675
+ # page.
13676
+ #
13677
+ # @option params [String] :request_payer
13678
+ # Confirms that the requester knows that they will be charged for the
13679
+ # request. Bucket owners need not specify this parameter in their
13680
+ # requests. If either the source or destination S3 bucket has Requester
13681
+ # Pays enabled, the requester will pay for the corresponding charges.
13682
+ # For information about downloading objects from Requester Pays buckets,
13683
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
13684
+ # S3 User Guide*.
13685
+ #
13686
+ # <note markdown="1"> This functionality is not supported for directory buckets.
13687
+ #
13688
+ # </note>
13689
+ #
13690
+ #
13691
+ #
13692
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
13693
+ #
13694
+ # @option params [String] :expected_bucket_owner
13695
+ # The account ID of the expected bucket owner.
13696
+ #
13697
+ # @return [Types::ListObjectAnnotationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
13698
+ #
13699
+ # * {Types::ListObjectAnnotationsOutput#annotations #annotations} => Array&lt;Types::AnnotationEntry&gt;
13700
+ # * {Types::ListObjectAnnotationsOutput#bucket #bucket} => String
13701
+ # * {Types::ListObjectAnnotationsOutput#key #key} => String
13702
+ # * {Types::ListObjectAnnotationsOutput#object_version_id #object_version_id} => String
13703
+ # * {Types::ListObjectAnnotationsOutput#annotation_prefix #annotation_prefix} => String
13704
+ # * {Types::ListObjectAnnotationsOutput#max_annotation_results #max_annotation_results} => Integer
13705
+ # * {Types::ListObjectAnnotationsOutput#annotation_count #annotation_count} => Integer
13706
+ # * {Types::ListObjectAnnotationsOutput#continuation_token #continuation_token} => String
13707
+ # * {Types::ListObjectAnnotationsOutput#next_continuation_token #next_continuation_token} => String
13708
+ # * {Types::ListObjectAnnotationsOutput#request_charged #request_charged} => String
13709
+ #
13710
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
13711
+ #
13712
+ # @example Request syntax with placeholder values
13713
+ #
13714
+ # resp = client.list_object_annotations({
13715
+ # bucket: "BucketName", # required
13716
+ # key: "ObjectKey", # required
13717
+ # version_id: "ObjectVersionId",
13718
+ # max_annotation_results: 1,
13719
+ # annotation_prefix: "AnnotationPrefix",
13720
+ # continuation_token: "Token",
13721
+ # request_payer: "requester", # accepts requester
13722
+ # expected_bucket_owner: "AccountId",
13723
+ # })
13724
+ #
13725
+ # @example Response structure
13726
+ #
13727
+ # resp.annotations #=> Array
13728
+ # resp.annotations[0].annotation_name #=> String
13729
+ # resp.annotations[0].last_modified #=> Time
13730
+ # resp.annotations[0].etag #=> String
13731
+ # resp.annotations[0].checksum_algorithm #=> Array
13732
+ # resp.annotations[0].checksum_algorithm[0] #=> String, one of "CRC32", "CRC32C", "SHA1", "SHA256", "CRC64NVME", "SHA512", "MD5", "XXHASH64", "XXHASH3", "XXHASH128"
13733
+ # resp.annotations[0].size #=> Integer
13734
+ # resp.annotations[0].replication_status #=> String, one of "COMPLETE", "PENDING", "FAILED", "REPLICA", "COMPLETED"
13735
+ # resp.bucket #=> String
13736
+ # resp.key #=> String
13737
+ # resp.object_version_id #=> String
13738
+ # resp.annotation_prefix #=> String
13739
+ # resp.max_annotation_results #=> Integer
13740
+ # resp.annotation_count #=> Integer
13741
+ # resp.continuation_token #=> String
13742
+ # resp.next_continuation_token #=> String
13743
+ # resp.request_charged #=> String, one of "requester"
13744
+ #
13745
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectAnnotations AWS API Documentation
13746
+ #
13747
+ # @overload list_object_annotations(params = {})
13748
+ # @param [Hash] params ({})
13749
+ def list_object_annotations(params = {}, options = {})
13750
+ req = build_request(:list_object_annotations, params)
13751
+ req.send_request(options)
13752
+ end
13753
+
13253
13754
  # <note markdown="1"> This operation is not supported for directory buckets.
13254
13755
  #
13255
13756
  # </note>
@@ -13717,7 +14218,7 @@ module Aws::S3
13717
14218
  # resp.contents[0].checksum_algorithm[0] #=> String, one of "CRC32", "CRC32C", "SHA1", "SHA256", "CRC64NVME", "SHA512", "MD5", "XXHASH64", "XXHASH3", "XXHASH128"
13718
14219
  # resp.contents[0].checksum_type #=> String, one of "COMPOSITE", "FULL_OBJECT"
13719
14220
  # resp.contents[0].size #=> Integer
13720
- # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP"
14221
+ # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP", "AWS_BACKUP_WARM", "AWS_BACKUP_LOW_COST_WARM"
13721
14222
  # resp.contents[0].owner.display_name #=> String
13722
14223
  # resp.contents[0].owner.id #=> String
13723
14224
  # resp.contents[0].restore_status.is_restore_in_progress #=> Boolean
@@ -14067,7 +14568,7 @@ module Aws::S3
14067
14568
  # resp.contents[0].checksum_algorithm[0] #=> String, one of "CRC32", "CRC32C", "SHA1", "SHA256", "CRC64NVME", "SHA512", "MD5", "XXHASH64", "XXHASH3", "XXHASH128"
14068
14569
  # resp.contents[0].checksum_type #=> String, one of "COMPOSITE", "FULL_OBJECT"
14069
14570
  # resp.contents[0].size #=> Integer
14070
- # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP"
14571
+ # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP", "AWS_BACKUP_WARM", "AWS_BACKUP_LOW_COST_WARM"
14071
14572
  # resp.contents[0].owner.display_name #=> String
14072
14573
  # resp.contents[0].owner.id #=> String
14073
14574
  # resp.contents[0].restore_status.is_restore_in_progress #=> Boolean
@@ -14418,7 +14919,7 @@ module Aws::S3
14418
14919
  # resp.initiator.display_name #=> String
14419
14920
  # resp.owner.display_name #=> String
14420
14921
  # resp.owner.id #=> String
14421
- # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP"
14922
+ # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS", "GLACIER_IR", "SNOW", "EXPRESS_ONEZONE", "FSX_OPENZFS", "FSX_ONTAP", "AWS_BACKUP_WARM", "AWS_BACKUP_LOW_COST_WARM"
14422
14923
  # resp.request_charged #=> String, one of "requester"
14423
14924
  # resp.checksum_algorithm #=> String, one of "CRC32", "CRC32C", "SHA1", "SHA256", "CRC64NVME", "SHA512", "MD5", "XXHASH64", "XXHASH3", "XXHASH128"
14424
14925
  # resp.checksum_type #=> String, one of "COMPOSITE", "FULL_OBJECT"
@@ -15469,7 +15970,7 @@ module Aws::S3
15469
15970
  # rules: [ # required
15470
15971
  # {
15471
15972
  # apply_server_side_encryption_by_default: {
15472
- # sse_algorithm: "AES256", # required, accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
15973
+ # sse_algorithm: "AES256", # required, accepts AES256, aws:fsx, aws:backup, aws:kms, aws:kms:dsse
15473
15974
  # kms_master_key_id: "SSEKMSKeyId",
15474
15975
  # },
15475
15976
  # bucket_key_enabled: false,
@@ -15818,7 +16319,7 @@ module Aws::S3
15818
16319
  # },
15819
16320
  # id: "InventoryId", # required
15820
16321
  # included_object_versions: "All", # required, accepts All, Current
15821
- # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus, ObjectLockRetainUntilDate, ObjectLockMode, ObjectLockLegalHoldStatus, IntelligentTieringAccessTier, BucketKeyStatus, ChecksumAlgorithm, ObjectAccessControlList, ObjectOwner, LifecycleExpirationDate
16322
+ # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus, ObjectLockRetainUntilDate, ObjectLockMode, ObjectLockLegalHoldStatus, ObjectLockEventHoldStatus, ObjectLockEventHoldDuration, IntelligentTieringAccessTier, BucketKeyStatus, ChecksumAlgorithm, ObjectAccessControlList, ObjectOwner, LifecycleExpirationDate
15822
16323
  # schedule: { # required
15823
16324
  # frequency: "Daily", # required, accepts Daily, Weekly
15824
16325
  # },
@@ -16718,20 +17219,20 @@ module Aws::S3
16718
17219
  # notification_configuration: { # required
16719
17220
  # topic_configuration: {
16720
17221
  # id: "NotificationId",
16721
- # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete
16722
- # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete
17222
+ # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete, s3:ObjectAnnotation:*, s3:ObjectAnnotation:Put, s3:ObjectAnnotation:Delete, s3:ObjectRetention:Put
17223
+ # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete, s3:ObjectAnnotation:*, s3:ObjectAnnotation:Put, s3:ObjectAnnotation:Delete, s3:ObjectRetention:Put
16723
17224
  # topic: "TopicArn",
16724
17225
  # },
16725
17226
  # queue_configuration: {
16726
17227
  # id: "NotificationId",
16727
- # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete
16728
- # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete
17228
+ # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete, s3:ObjectAnnotation:*, s3:ObjectAnnotation:Put, s3:ObjectAnnotation:Delete, s3:ObjectRetention:Put
17229
+ # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete, s3:ObjectAnnotation:*, s3:ObjectAnnotation:Put, s3:ObjectAnnotation:Delete, s3:ObjectRetention:Put
16729
17230
  # queue: "QueueArn",
16730
17231
  # },
16731
17232
  # cloud_function_configuration: {
16732
17233
  # id: "NotificationId",
16733
- # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete
16734
- # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete
17234
+ # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete, s3:ObjectAnnotation:*, s3:ObjectAnnotation:Put, s3:ObjectAnnotation:Delete, s3:ObjectRetention:Put
17235
+ # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete, s3:ObjectAnnotation:*, s3:ObjectAnnotation:Put, s3:ObjectAnnotation:Delete, s3:ObjectRetention:Put
16735
17236
  # cloud_function: "CloudFunction",
16736
17237
  # invocation_role: "CloudFunctionInvocationRole",
16737
17238
  # },
@@ -16873,7 +17374,7 @@ module Aws::S3
16873
17374
  # {
16874
17375
  # id: "NotificationId",
16875
17376
  # topic_arn: "TopicArn", # required
16876
- # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete
17377
+ # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete, s3:ObjectAnnotation:*, s3:ObjectAnnotation:Put, s3:ObjectAnnotation:Delete, s3:ObjectRetention:Put
16877
17378
  # filter: {
16878
17379
  # key: {
16879
17380
  # filter_rules: [
@@ -16890,7 +17391,7 @@ module Aws::S3
16890
17391
  # {
16891
17392
  # id: "NotificationId",
16892
17393
  # queue_arn: "QueueArn", # required
16893
- # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete
17394
+ # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete, s3:ObjectAnnotation:*, s3:ObjectAnnotation:Put, s3:ObjectAnnotation:Delete, s3:ObjectRetention:Put
16894
17395
  # filter: {
16895
17396
  # key: {
16896
17397
  # filter_rules: [
@@ -16907,7 +17408,7 @@ module Aws::S3
16907
17408
  # {
16908
17409
  # id: "NotificationId",
16909
17410
  # lambda_function_arn: "LambdaFunctionArn", # required
16910
- # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete
17411
+ # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:*, s3:ObjectRestore:Post, s3:ObjectRestore:Completed, s3:Replication:*, s3:Replication:OperationFailedReplication, s3:Replication:OperationNotTracked, s3:Replication:OperationMissedThreshold, s3:Replication:OperationReplicatedAfterThreshold, s3:ObjectRestore:Delete, s3:LifecycleTransition, s3:IntelligentTiering, s3:ObjectAcl:Put, s3:LifecycleExpiration:*, s3:LifecycleExpiration:Delete, s3:LifecycleExpiration:DeleteMarkerCreated, s3:ObjectTagging:*, s3:ObjectTagging:Put, s3:ObjectTagging:Delete, s3:ObjectAnnotation:*, s3:ObjectAnnotation:Put, s3:ObjectAnnotation:Delete, s3:ObjectRetention:Put
16911
17412
  # filter: {
16912
17413
  # key: {
16913
17414
  # filter_rules: [
@@ -17450,7 +17951,7 @@ module Aws::S3
17450
17951
  # destination: { # required
17451
17952
  # bucket: "BucketName", # required
17452
17953
  # account: "AccountId",
17453
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
17954
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP, AWS_BACKUP_WARM, AWS_BACKUP_LOW_COST_WARM
17454
17955
  # access_control_translation: {
17455
17956
  # owner: "Destination", # required, accepts Destination
17456
17957
  # },
@@ -18981,6 +19482,30 @@ module Aws::S3
18981
19482
  #
18982
19483
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
18983
19484
  #
19485
+ # @option params [String] :object_lock_event_hold
19486
+ # Specifies the event hold status to apply to this object. Set to `ON`
19487
+ # to enable or `OFF` to disable.
19488
+ #
19489
+ # <note markdown="1"> This functionality is not supported for directory buckets.
19490
+ #
19491
+ # </note>
19492
+ #
19493
+ # @option params [Integer] :object_lock_event_hold_duration_days
19494
+ # Specifies the event hold duration in days to apply to this object. You
19495
+ # cannot specify a duration in both days and years.
19496
+ #
19497
+ # <note markdown="1"> This functionality is not supported for directory buckets.
19498
+ #
19499
+ # </note>
19500
+ #
19501
+ # @option params [Integer] :object_lock_event_hold_duration_years
19502
+ # Specifies the event hold duration in years to apply to this object.
19503
+ # You cannot specify a duration in both days and years.
19504
+ #
19505
+ # <note markdown="1"> This functionality is not supported for directory buckets.
19506
+ #
19507
+ # </note>
19508
+ #
18984
19509
  # @option params [String] :expected_bucket_owner
18985
19510
  # The account ID of the expected bucket owner. If the account ID that
18986
19511
  # you provide does not match the actual owner of the bucket, the request
@@ -19184,8 +19709,8 @@ module Aws::S3
19184
19709
  # metadata: {
19185
19710
  # "MetadataKey" => "MetadataValue",
19186
19711
  # },
19187
- # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
19188
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
19712
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:backup, aws:kms, aws:kms:dsse
19713
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP, AWS_BACKUP_WARM, AWS_BACKUP_LOW_COST_WARM
19189
19714
  # website_redirect_location: "WebsiteRedirectLocation",
19190
19715
  # sse_customer_algorithm: "SSECustomerAlgorithm",
19191
19716
  # sse_customer_key: "SSECustomerKey",
@@ -19198,6 +19723,9 @@ module Aws::S3
19198
19723
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
19199
19724
  # object_lock_retain_until_date: Time.now,
19200
19725
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
19726
+ # object_lock_event_hold: "ON", # accepts ON, OFF
19727
+ # object_lock_event_hold_duration_days: 1,
19728
+ # object_lock_event_hold_duration_years: 1,
19201
19729
  # expected_bucket_owner: "AccountId",
19202
19730
  # })
19203
19731
  #
@@ -19216,7 +19744,7 @@ module Aws::S3
19216
19744
  # resp.checksum_xxhash3 #=> String
19217
19745
  # resp.checksum_xxhash128 #=> String
19218
19746
  # resp.checksum_type #=> String, one of "COMPOSITE", "FULL_OBJECT"
19219
- # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
19747
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:backup", "aws:kms", "aws:kms:dsse"
19220
19748
  # resp.version_id #=> String
19221
19749
  # resp.sse_customer_algorithm #=> String
19222
19750
  # resp.sse_customer_key_md5 #=> String
@@ -19626,6 +20154,203 @@ module Aws::S3
19626
20154
  req.send_request(options)
19627
20155
  end
19628
20156
 
20157
+ # Attaches an annotation to an Amazon S3 object. An annotation is a
20158
+ # named payload of 1 byte to 1 MiB that you can associate with a
20159
+ # specific object or object version. Each object can have up to 1,000
20160
+ # annotations.
20161
+ #
20162
+ # For annotation naming rules and restrictions, see [Annotation naming
20163
+ # guidelines][1] in the *Amazon S3 User Guide*.
20164
+ #
20165
+ # Annotations inherit the encryption of their parent object. For objects
20166
+ # without server-side encryption, annotations are encrypted with SSE-S3
20167
+ # (the default for new objects). Objects encrypted with SSE-C cannot
20168
+ # have annotations.
20169
+ #
20170
+ # To use this operation, you must have the `s3:PutObjectAnnotation`
20171
+ # permission. If the bucket has Requester Pays enabled, you must include
20172
+ # the `x-amz-request-payer` header.
20173
+ #
20174
+ # <note markdown="1"> Annotations are not supported by the following features: S3 Inventory
20175
+ # Reports, API Gateway, S3 Storage Lens, Amazon S3 File Gateway, Amazon
20176
+ # FSx, S3 on Outposts, and S3 Express One Zone (directory buckets).
20177
+ #
20178
+ # </note>
20179
+ #
20180
+ # The following operations are related to `PutObjectAnnotation`:
20181
+ #
20182
+ # * [GetObjectAnnotation][2]
20183
+ #
20184
+ # * [ListObjectAnnotations][3]
20185
+ #
20186
+ # * [DeleteObjectAnnotation][4]
20187
+ #
20188
+ #
20189
+ #
20190
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/annotations-overview.html
20191
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAnnotation.html
20192
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectAnnotations.html
20193
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjectAnnotation.html
20194
+ #
20195
+ # @option params [required, String] :bucket
20196
+ # The name of the bucket that contains the object.
20197
+ #
20198
+ # @option params [required, String] :key
20199
+ # The object key.
20200
+ #
20201
+ # @option params [String] :version_id
20202
+ # The version ID of the object to attach the annotation to.
20203
+ #
20204
+ # @option params [required, String] :annotation_name
20205
+ # The name of the annotation.
20206
+ #
20207
+ # Length Constraints: Minimum length of 1. Maximum length of 512 bytes.
20208
+ #
20209
+ # @option params [required, String, StringIO, File] :annotation_payload
20210
+ # The annotation payload. Must be between 1 byte and 1 MiB in size, and
20211
+ # must be valid UTF-8 encoded text. If the payload contains invalid
20212
+ # UTF-8 bytes, the request fails with HTTP 415 (Unsupported Media Type).
20213
+ # To store binary data, encode the payload using Base64 before
20214
+ # uploading.
20215
+ #
20216
+ # @option params [String] :object_if_match
20217
+ # If specified, the operation only succeeds if the object's ETag
20218
+ # matches the provided value.
20219
+ #
20220
+ # @option params [String] :checksum_algorithm
20221
+ # The checksum algorithm to use. Supported values: `CRC32`, `CRC32C`,
20222
+ # `CRC64NVME`, `SHA1`, `SHA256`, `SHA512`, `MD5`, `XXHASH64`, `XXHASH3`,
20223
+ # `XXHASH128`.
20224
+ #
20225
+ # @option params [String] :checksum_crc32
20226
+ # Base64-encoded CRC32 checksum of the annotation payload.
20227
+ #
20228
+ # @option params [String] :checksum_crc32c
20229
+ # Base64-encoded CRC32C checksum of the annotation payload.
20230
+ #
20231
+ # @option params [String] :checksum_crc64nvme
20232
+ # Base64-encoded CRC64NVME checksum of the annotation payload.
20233
+ #
20234
+ # @option params [String] :checksum_sha1
20235
+ # Base64-encoded SHA1 checksum of the annotation payload.
20236
+ #
20237
+ # @option params [String] :checksum_sha256
20238
+ # Base64-encoded SHA256 checksum of the annotation payload.
20239
+ #
20240
+ # @option params [String] :checksum_sha512
20241
+ # Base64-encoded SHA512 checksum of the annotation payload.
20242
+ #
20243
+ # @option params [String] :checksum_md5
20244
+ # Base64-encoded MD5 checksum of the annotation payload.
20245
+ #
20246
+ # @option params [String] :checksum_xxhash64
20247
+ # Base64-encoded XXHASH64 checksum of the annotation payload.
20248
+ #
20249
+ # @option params [String] :checksum_xxhash3
20250
+ # Base64-encoded XXHASH3 checksum of the annotation payload.
20251
+ #
20252
+ # @option params [String] :checksum_xxhash128
20253
+ # Base64-encoded XXHASH128 checksum of the annotation payload.
20254
+ #
20255
+ # @option params [String] :content_md5
20256
+ # Base64-encoded MD5 digest of the message.
20257
+ #
20258
+ # @option params [String] :request_payer
20259
+ # Confirms that the requester knows that they will be charged for the
20260
+ # request. Bucket owners need not specify this parameter in their
20261
+ # requests. If either the source or destination S3 bucket has Requester
20262
+ # Pays enabled, the requester will pay for the corresponding charges.
20263
+ # For information about downloading objects from Requester Pays buckets,
20264
+ # see [Downloading Objects in Requester Pays Buckets][1] in the *Amazon
20265
+ # S3 User Guide*.
20266
+ #
20267
+ # <note markdown="1"> This functionality is not supported for directory buckets.
20268
+ #
20269
+ # </note>
20270
+ #
20271
+ #
20272
+ #
20273
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
20274
+ #
20275
+ # @option params [String] :expected_bucket_owner
20276
+ # The account ID of the expected bucket owner. If the bucket is owned by
20277
+ # a different account, the request fails with an HTTP 403 (Access
20278
+ # Denied) error.
20279
+ #
20280
+ # @return [Types::PutObjectAnnotationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
20281
+ #
20282
+ # * {Types::PutObjectAnnotationOutput#key #key} => String
20283
+ # * {Types::PutObjectAnnotationOutput#annotation_name #annotation_name} => String
20284
+ # * {Types::PutObjectAnnotationOutput#object_version_id #object_version_id} => String
20285
+ # * {Types::PutObjectAnnotationOutput#etag #etag} => String
20286
+ # * {Types::PutObjectAnnotationOutput#checksum_crc32 #checksum_crc32} => String
20287
+ # * {Types::PutObjectAnnotationOutput#checksum_crc32c #checksum_crc32c} => String
20288
+ # * {Types::PutObjectAnnotationOutput#checksum_crc64nvme #checksum_crc64nvme} => String
20289
+ # * {Types::PutObjectAnnotationOutput#checksum_sha1 #checksum_sha1} => String
20290
+ # * {Types::PutObjectAnnotationOutput#checksum_sha256 #checksum_sha256} => String
20291
+ # * {Types::PutObjectAnnotationOutput#checksum_sha512 #checksum_sha512} => String
20292
+ # * {Types::PutObjectAnnotationOutput#checksum_md5 #checksum_md5} => String
20293
+ # * {Types::PutObjectAnnotationOutput#checksum_xxhash64 #checksum_xxhash64} => String
20294
+ # * {Types::PutObjectAnnotationOutput#checksum_xxhash3 #checksum_xxhash3} => String
20295
+ # * {Types::PutObjectAnnotationOutput#checksum_xxhash128 #checksum_xxhash128} => String
20296
+ # * {Types::PutObjectAnnotationOutput#checksum_type #checksum_type} => String
20297
+ # * {Types::PutObjectAnnotationOutput#server_side_encryption #server_side_encryption} => String
20298
+ # * {Types::PutObjectAnnotationOutput#request_charged #request_charged} => String
20299
+ #
20300
+ # @example Request syntax with placeholder values
20301
+ #
20302
+ # resp = client.put_object_annotation({
20303
+ # bucket: "BucketName", # required
20304
+ # key: "ObjectKey", # required
20305
+ # version_id: "ObjectVersionId",
20306
+ # annotation_name: "AnnotationName", # required
20307
+ # annotation_payload: source_file, # required
20308
+ # object_if_match: "ObjectIfMatch",
20309
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME, SHA512, MD5, XXHASH64, XXHASH3, XXHASH128
20310
+ # checksum_crc32: "ChecksumCRC32",
20311
+ # checksum_crc32c: "ChecksumCRC32C",
20312
+ # checksum_crc64nvme: "ChecksumCRC64NVME",
20313
+ # checksum_sha1: "ChecksumSHA1",
20314
+ # checksum_sha256: "ChecksumSHA256",
20315
+ # checksum_sha512: "ChecksumSHA512",
20316
+ # checksum_md5: "ChecksumMD5",
20317
+ # checksum_xxhash64: "ChecksumXXHASH64",
20318
+ # checksum_xxhash3: "ChecksumXXHASH3",
20319
+ # checksum_xxhash128: "ChecksumXXHASH128",
20320
+ # content_md5: "ContentMD5",
20321
+ # request_payer: "requester", # accepts requester
20322
+ # expected_bucket_owner: "AccountId",
20323
+ # })
20324
+ #
20325
+ # @example Response structure
20326
+ #
20327
+ # resp.key #=> String
20328
+ # resp.annotation_name #=> String
20329
+ # resp.object_version_id #=> String
20330
+ # resp.etag #=> String
20331
+ # resp.checksum_crc32 #=> String
20332
+ # resp.checksum_crc32c #=> String
20333
+ # resp.checksum_crc64nvme #=> String
20334
+ # resp.checksum_sha1 #=> String
20335
+ # resp.checksum_sha256 #=> String
20336
+ # resp.checksum_sha512 #=> String
20337
+ # resp.checksum_md5 #=> String
20338
+ # resp.checksum_xxhash64 #=> String
20339
+ # resp.checksum_xxhash3 #=> String
20340
+ # resp.checksum_xxhash128 #=> String
20341
+ # resp.checksum_type #=> String, one of "COMPOSITE", "FULL_OBJECT"
20342
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:backup", "aws:kms", "aws:kms:dsse"
20343
+ # resp.request_charged #=> String, one of "requester"
20344
+ #
20345
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectAnnotation AWS API Documentation
20346
+ #
20347
+ # @overload put_object_annotation(params = {})
20348
+ # @param [Hash] params ({})
20349
+ def put_object_annotation(params = {}, options = {})
20350
+ req = build_request(:put_object_annotation, params)
20351
+ req.send_request(options)
20352
+ end
20353
+
19629
20354
  # <note markdown="1"> This operation is not supported for directory buckets.
19630
20355
  #
19631
20356
  # </note>
@@ -19851,6 +20576,10 @@ module Aws::S3
19851
20576
  # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
19852
20577
  # days: 1,
19853
20578
  # years: 1,
20579
+ # default_event_hold: {
20580
+ # days: 1,
20581
+ # years: 1,
20582
+ # },
19854
20583
  # },
19855
20584
  # },
19856
20585
  # },
@@ -19987,6 +20716,11 @@ module Aws::S3
19987
20716
  # retention: {
19988
20717
  # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
19989
20718
  # retain_until_date: Time.now,
20719
+ # event_hold: "ON", # accepts ON, OFF
20720
+ # event_hold_duration: {
20721
+ # days: 1,
20722
+ # years: 1,
20723
+ # },
19990
20724
  # },
19991
20725
  # request_payer: "requester", # accepts requester
19992
20726
  # version_id: "ObjectVersionId",
@@ -20826,7 +21560,7 @@ module Aws::S3
20826
21560
  # bucket_name: "BucketName", # required
20827
21561
  # prefix: "LocationPrefix", # required
20828
21562
  # encryption: {
20829
- # encryption_type: "AES256", # required, accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
21563
+ # encryption_type: "AES256", # required, accepts AES256, aws:fsx, aws:backup, aws:kms, aws:kms:dsse
20830
21564
  # kms_key_id: "SSEKMSKeyId",
20831
21565
  # kms_context: "KMSContext",
20832
21566
  # },
@@ -20857,7 +21591,7 @@ module Aws::S3
20857
21591
  # value: "MetadataValue",
20858
21592
  # },
20859
21593
  # ],
20860
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
21594
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP, AWS_BACKUP_WARM, AWS_BACKUP_LOW_COST_WARM
20861
21595
  # },
20862
21596
  # },
20863
21597
  # },
@@ -21305,6 +22039,81 @@ module Aws::S3
21305
22039
  req.send_request(options, &block)
21306
22040
  end
21307
22041
 
22042
+ # Updates the annotation table configuration for an Amazon S3 bucket's
22043
+ # metadata configuration. Use this operation to enable or disable the
22044
+ # annotation table, or to update its associated IAM role.
22045
+ #
22046
+ # An annotation table is a queryable Iceberg table that contains records
22047
+ # of all annotations attached to objects in the bucket. To use this
22048
+ # operation, the bucket must have an existing Amazon S3 Metadata
22049
+ # configuration.
22050
+ #
22051
+ # To use this operation, you must have the
22052
+ # `s3:UpdateBucketMetadataAnnotationTableConfiguration` permission. If
22053
+ # you are specifying or changing the IAM role, you must also have
22054
+ # `iam:PassRole` permission for the role.
22055
+ #
22056
+ # The IAM role must have a trust policy that allows the Amazon S3
22057
+ # metadata service to assume it, and a permissions policy that grants
22058
+ # the actions needed to read annotations from your bucket. The following
22059
+ # examples show a trust policy and a permissions policy that you can
22060
+ # adapt for your bucket and account.
22061
+ #
22062
+ # The following operations are related to
22063
+ # `UpdateBucketMetadataAnnotationTableConfiguration`:
22064
+ #
22065
+ # * [CreateBucketMetadataConfiguration][1]
22066
+ #
22067
+ # * [GetBucketMetadataConfiguration][2]
22068
+ #
22069
+ #
22070
+ #
22071
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html
22072
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketMetadataConfiguration.html
22073
+ #
22074
+ # @option params [required, String] :bucket
22075
+ # The name of the bucket whose annotation table configuration to update.
22076
+ #
22077
+ # @option params [String] :content_md5
22078
+ # Base64-encoded MD5 digest of the message body.
22079
+ #
22080
+ # @option params [String] :checksum_algorithm
22081
+ # Checksum algorithm for the request payload.
22082
+ #
22083
+ # @option params [required, Types::AnnotationTableConfigurationUpdates] :annotation_table_configuration
22084
+ # The annotation table configuration updates to apply.
22085
+ #
22086
+ # @option params [String] :expected_bucket_owner
22087
+ # The account ID of the expected bucket owner.
22088
+ #
22089
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
22090
+ #
22091
+ # @example Request syntax with placeholder values
22092
+ #
22093
+ # resp = client.update_bucket_metadata_annotation_table_configuration({
22094
+ # bucket: "BucketName", # required
22095
+ # content_md5: "ContentMD5",
22096
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME, SHA512, MD5, XXHASH64, XXHASH3, XXHASH128
22097
+ # annotation_table_configuration: { # required
22098
+ # configuration_state: "ENABLED", # required, accepts ENABLED, DISABLED
22099
+ # encryption_configuration: {
22100
+ # sse_algorithm: "aws:kms", # required, accepts aws:kms, AES256
22101
+ # kms_key_arn: "KmsKeyArn",
22102
+ # },
22103
+ # role: "Role",
22104
+ # },
22105
+ # expected_bucket_owner: "AccountId",
22106
+ # })
22107
+ #
22108
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UpdateBucketMetadataAnnotationTableConfiguration AWS API Documentation
22109
+ #
22110
+ # @overload update_bucket_metadata_annotation_table_configuration(params = {})
22111
+ # @param [Hash] params ({})
22112
+ def update_bucket_metadata_annotation_table_configuration(params = {}, options = {})
22113
+ req = build_request(:update_bucket_metadata_annotation_table_configuration, params)
22114
+ req.send_request(options)
22115
+ end
22116
+
21308
22117
  # Enables or disables a live inventory table for an S3 Metadata
21309
22118
  # configuration on a general purpose bucket. For more information, see
21310
22119
  # [Accelerating data discovery with S3 Metadata][1] in the *Amazon S3
@@ -21540,8 +22349,6 @@ module Aws::S3
21540
22349
  # : * To use the `UpdateObjectEncryption` operation, you must have the
21541
22350
  # following permissions:
21542
22351
  #
21543
- # * `s3:PutObject`
21544
- #
21545
22352
  # * `s3:UpdateObjectEncryption`
21546
22353
  #
21547
22354
  # * `kms:Encrypt`
@@ -22271,7 +23078,7 @@ module Aws::S3
22271
23078
  #
22272
23079
  # @example Response structure
22273
23080
  #
22274
- # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
23081
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:backup", "aws:kms", "aws:kms:dsse"
22275
23082
  # resp.etag #=> String
22276
23083
  # resp.checksum_crc32 #=> String
22277
23084
  # resp.checksum_crc32c #=> String
@@ -22885,7 +23692,7 @@ module Aws::S3
22885
23692
  # resp.copy_part_result.checksum_xxhash64 #=> String
22886
23693
  # resp.copy_part_result.checksum_xxhash3 #=> String
22887
23694
  # resp.copy_part_result.checksum_xxhash128 #=> String
22888
- # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:kms", "aws:kms:dsse"
23695
+ # resp.server_side_encryption #=> String, one of "AES256", "aws:fsx", "aws:backup", "aws:kms", "aws:kms:dsse"
22889
23696
  # resp.sse_customer_algorithm #=> String
22890
23697
  # resp.sse_customer_key_md5 #=> String
22891
23698
  # resp.ssekms_key_id #=> String
@@ -23365,11 +24172,11 @@ module Aws::S3
23365
24172
  # replication_status: "COMPLETE", # accepts COMPLETE, PENDING, FAILED, REPLICA, COMPLETED
23366
24173
  # request_charged: "requester", # accepts requester
23367
24174
  # restore: "Restore",
23368
- # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:kms, aws:kms:dsse
24175
+ # server_side_encryption: "AES256", # accepts AES256, aws:fsx, aws:backup, aws:kms, aws:kms:dsse
23369
24176
  # sse_customer_algorithm: "SSECustomerAlgorithm",
23370
24177
  # ssekms_key_id: "SSEKMSKeyId",
23371
24178
  # sse_customer_key_md5: "SSECustomerKeyMD5",
23372
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP
24179
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR, SNOW, EXPRESS_ONEZONE, FSX_OPENZFS, FSX_ONTAP, AWS_BACKUP_WARM, AWS_BACKUP_LOW_COST_WARM
23373
24180
  # tag_count: 1,
23374
24181
  # version_id: "ObjectVersionId",
23375
24182
  # bucket_key_enabled: false,
@@ -23402,7 +24209,7 @@ module Aws::S3
23402
24209
  tracer: tracer
23403
24210
  )
23404
24211
  context[:gem_name] = 'aws-sdk-s3'
23405
- context[:gem_version] = '1.220.0'
24212
+ context[:gem_version] = '1.232.1'
23406
24213
  Seahorse::Client::Request.new(handlers, context)
23407
24214
  end
23408
24215