aws-sdk-s3 1.220.0 → 1.232.2

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +89 -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 +55 -25
  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/transfer_manager.rb +44 -31
  22. data/lib/aws-sdk-s3/types.rb +1162 -46
  23. data/lib/aws-sdk-s3.rb +1 -1
  24. data/sig/bucket.rbs +7 -4
  25. data/sig/bucket_acl.rbs +1 -1
  26. data/sig/bucket_cors.rbs +1 -1
  27. data/sig/bucket_lifecycle.rbs +1 -1
  28. data/sig/bucket_lifecycle_configuration.rbs +4 -4
  29. data/sig/bucket_logging.rbs +1 -1
  30. data/sig/bucket_notification.rbs +9 -9
  31. data/sig/bucket_tagging.rbs +1 -1
  32. data/sig/bucket_website.rbs +1 -1
  33. data/sig/client.rbs +246 -198
  34. data/sig/errors.rbs +12 -0
  35. data/sig/multipart_upload.rbs +2 -2
  36. data/sig/object.rbs +32 -13
  37. data/sig/object_acl.rbs +1 -1
  38. data/sig/object_summary.rbs +22 -12
  39. data/sig/params.rbs +78 -0
  40. data/sig/resource.rbs +1 -1
  41. data/sig/types.rbs +249 -39
  42. metadata +4 -3
@@ -385,6 +385,173 @@ module Aws::S3
385
385
  include Aws::Structure
386
386
  end
387
387
 
388
+ # Describes a single annotation attached to an object, including its
389
+ # name, last modified time, size, ETag, checksum algorithm, and
390
+ # replication status. Returned in the response from
391
+ # `ListObjectAnnotations`.
392
+ #
393
+ # @!attribute [rw] annotation_name
394
+ # The name of the annotation.
395
+ # @return [String]
396
+ #
397
+ # @!attribute [rw] last_modified
398
+ # The date and time the annotation was last modified.
399
+ # @return [Time]
400
+ #
401
+ # @!attribute [rw] etag
402
+ # The entity tag of the annotation.
403
+ # @return [String]
404
+ #
405
+ # @!attribute [rw] checksum_algorithm
406
+ # The checksum algorithm used for the annotation.
407
+ # @return [Array<String>]
408
+ #
409
+ # @!attribute [rw] size
410
+ # The size of the annotation payload, in bytes.
411
+ # @return [Integer]
412
+ #
413
+ # @!attribute [rw] replication_status
414
+ # The replication status of the annotation.
415
+ # @return [String]
416
+ #
417
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AnnotationEntry AWS API Documentation
418
+ #
419
+ class AnnotationEntry < Struct.new(
420
+ :annotation_name,
421
+ :last_modified,
422
+ :etag,
423
+ :checksum_algorithm,
424
+ :size,
425
+ :replication_status)
426
+ SENSITIVE = []
427
+ include Aws::Structure
428
+ end
429
+
430
+ # The request would exceed the maximum number of annotations allowed per
431
+ # object.
432
+ #
433
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AnnotationLimitExceeded AWS API Documentation
434
+ #
435
+ class AnnotationLimitExceeded < Aws::EmptyStructure; end
436
+
437
+ # The annotation name exceeds 512 bytes.
438
+ #
439
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AnnotationNameTooLong AWS API Documentation
440
+ #
441
+ class AnnotationNameTooLong < Aws::EmptyStructure; end
442
+
443
+ # Specifies the configuration for the annotation table associated with a
444
+ # bucket's Amazon S3 Metadata configuration. The annotation table is an
445
+ # Iceberg table that records annotation events for objects in the
446
+ # bucket.
447
+ #
448
+ # @!attribute [rw] configuration_state
449
+ # The state of the annotation table. Valid values are `ENABLED` and
450
+ # `DISABLED`.
451
+ # @return [String]
452
+ #
453
+ # @!attribute [rw] encryption_configuration
454
+ # The encryption settings for an S3 Metadata journal table or
455
+ # inventory table configuration.
456
+ # @return [Types::MetadataTableEncryptionConfiguration]
457
+ #
458
+ # @!attribute [rw] role
459
+ # The ARN of the IAM role used to manage the annotation table.
460
+ # @return [String]
461
+ #
462
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AnnotationTableConfiguration AWS API Documentation
463
+ #
464
+ class AnnotationTableConfiguration < Struct.new(
465
+ :configuration_state,
466
+ :encryption_configuration,
467
+ :role)
468
+ SENSITIVE = []
469
+ include Aws::Structure
470
+ end
471
+
472
+ # Contains the current state of the annotation table associated with a
473
+ # bucket's Amazon S3 Metadata configuration, including its provisioning
474
+ # status and identifiers.
475
+ #
476
+ # @!attribute [rw] configuration_state
477
+ # The current configuration state of the annotation table.
478
+ # @return [String]
479
+ #
480
+ # @!attribute [rw] table_status
481
+ # The provisioning status of the annotation table. Possible values:
482
+ # `CREATING`, `BACKFILLING`, `ACTIVE`, `FAILED`.
483
+ # @return [String]
484
+ #
485
+ # @!attribute [rw] error
486
+ # If an S3 Metadata V1 `CreateBucketMetadataTableConfiguration` or V2
487
+ # `CreateBucketMetadataConfiguration` request succeeds, but S3
488
+ # Metadata was unable to create the table, this structure contains the
489
+ # error code and error message.
490
+ #
491
+ # <note markdown="1"> If you created your S3 Metadata configuration before July 15, 2025,
492
+ # we recommend that you delete and re-create your configuration by
493
+ # using [CreateBucketMetadataConfiguration][1] so that you can expire
494
+ # journal table records and create a live inventory table.
495
+ #
496
+ # </note>
497
+ #
498
+ #
499
+ #
500
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucketMetadataConfiguration.html
501
+ # @return [Types::ErrorDetails]
502
+ #
503
+ # @!attribute [rw] table_name
504
+ # The name of the annotation table.
505
+ # @return [String]
506
+ #
507
+ # @!attribute [rw] table_arn
508
+ # The ARN of the annotation table.
509
+ # @return [String]
510
+ #
511
+ # @!attribute [rw] role
512
+ # The ARN of the IAM role associated with the annotation table.
513
+ # @return [String]
514
+ #
515
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AnnotationTableConfigurationResult AWS API Documentation
516
+ #
517
+ class AnnotationTableConfigurationResult < Struct.new(
518
+ :configuration_state,
519
+ :table_status,
520
+ :error,
521
+ :table_name,
522
+ :table_arn,
523
+ :role)
524
+ SENSITIVE = []
525
+ include Aws::Structure
526
+ end
527
+
528
+ # Specifies updates to apply to the annotation table configuration. Used
529
+ # as the request body for
530
+ # `UpdateBucketMetadataAnnotationTableConfiguration`.
531
+ #
532
+ # @!attribute [rw] configuration_state
533
+ # The new configuration state to apply.
534
+ # @return [String]
535
+ #
536
+ # @!attribute [rw] encryption_configuration
537
+ # The encryption settings for an S3 Metadata journal table or
538
+ # inventory table configuration.
539
+ # @return [Types::MetadataTableEncryptionConfiguration]
540
+ #
541
+ # @!attribute [rw] role
542
+ # The new IAM role ARN to apply.
543
+ # @return [String]
544
+ #
545
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AnnotationTableConfigurationUpdates AWS API Documentation
546
+ #
547
+ class AnnotationTableConfigurationUpdates < Struct.new(
548
+ :configuration_state,
549
+ :encryption_configuration,
550
+ :role)
551
+ SENSITIVE = []
552
+ include Aws::Structure
553
+ end
554
+
388
555
  # A bucket-level setting for Amazon S3 general purpose buckets used to
389
556
  # prevent the upload of new objects encrypted with the specified
390
557
  # server-side encryption type. For example, blocking an encryption type
@@ -2357,6 +2524,45 @@ module Aws::S3
2357
2524
  # </note>
2358
2525
  # @return [String]
2359
2526
  #
2527
+ # @!attribute [rw] annotation_directive
2528
+ # Specifies whether you want to copy annotations from the source
2529
+ # object or exclude them. If this header isn't specified, `COPY` is
2530
+ # the default behavior.
2531
+ #
2532
+ # Valid Values: `COPY | EXCLUDE`
2533
+ #
2534
+ # You can specify this directive as either an HTTP header
2535
+ # (`x-amz-object-annotation-directive`) or as a query string
2536
+ # parameter. Use the query string form when generating presigned URLs
2537
+ # that need to control annotation copy behavior.
2538
+ #
2539
+ # When set to `COPY`, you must have `s3:GetObjectAnnotation`
2540
+ # permission on the source object and `s3:PutObjectAnnotation`
2541
+ # permission on the destination. Each annotation copied is billed as a
2542
+ # separate PUT request. If annotations on the source are modified
2543
+ # during the copy, Amazon S3 returns a retryable error.
2544
+ #
2545
+ # <note markdown="1"> For directory buckets, annotations are not supported. Use `EXCLUDE`
2546
+ # to copy objects to directory buckets without errors. If you specify
2547
+ # `COPY` for a directory bucket, the request returns HTTP 501 (Not
2548
+ # Implemented).
2549
+ #
2550
+ # </note>
2551
+ #
2552
+ # <note markdown="1"> When you copy objects using multipart upload (for example, when the
2553
+ # Amazon Web Services CLI or Amazon Web Services SDKs use Transfer
2554
+ # Manager for objects larger than approximately 8 MB), annotations are
2555
+ # not copied by default. To include annotations, specify `--copy-props
2556
+ # default` in the Amazon Web Services CLI or the equivalent SDK
2557
+ # configuration. With this opt-in, the SDK reads source annotations,
2558
+ # completes the multipart upload, and then writes each annotation to
2559
+ # the destination. Between the upload completion and the last
2560
+ # annotation write, the destination object exists without all its
2561
+ # annotations.
2562
+ #
2563
+ # </note>
2564
+ # @return [String]
2565
+ #
2360
2566
  # @!attribute [rw] server_side_encryption
2361
2567
  # The server-side encryption algorithm used when storing this object
2362
2568
  # in Amazon S3. Unrecognized or unsupported values won’t write a
@@ -2768,6 +2974,33 @@ module Aws::S3
2768
2974
  # </note>
2769
2975
  # @return [String]
2770
2976
  #
2977
+ # @!attribute [rw] object_lock_event_hold
2978
+ # The event hold status to apply to the object copy. Set to `ON` to
2979
+ # enable or `OFF` to disable.
2980
+ #
2981
+ # <note markdown="1"> This functionality is not supported for directory buckets.
2982
+ #
2983
+ # </note>
2984
+ # @return [String]
2985
+ #
2986
+ # @!attribute [rw] object_lock_event_hold_duration_days
2987
+ # The event hold duration in days to apply to the object copy. You
2988
+ # cannot specify a duration in both days and years.
2989
+ #
2990
+ # <note markdown="1"> This functionality is not supported for directory buckets.
2991
+ #
2992
+ # </note>
2993
+ # @return [Integer]
2994
+ #
2995
+ # @!attribute [rw] object_lock_event_hold_duration_years
2996
+ # The event hold duration in years to apply to the object copy. You
2997
+ # cannot specify a duration in both days and years.
2998
+ #
2999
+ # <note markdown="1"> This functionality is not supported for directory buckets.
3000
+ #
3001
+ # </note>
3002
+ # @return [Integer]
3003
+ #
2771
3004
  # @!attribute [rw] expected_bucket_owner
2772
3005
  # The account ID of the expected destination bucket owner. If the
2773
3006
  # account ID that you provide does not match the actual owner of the
@@ -2809,6 +3042,7 @@ module Aws::S3
2809
3042
  :metadata,
2810
3043
  :metadata_directive,
2811
3044
  :tagging_directive,
3045
+ :annotation_directive,
2812
3046
  :server_side_encryption,
2813
3047
  :storage_class,
2814
3048
  :website_redirect_location,
@@ -2826,6 +3060,9 @@ module Aws::S3
2826
3060
  :object_lock_mode,
2827
3061
  :object_lock_retain_until_date,
2828
3062
  :object_lock_legal_hold_status,
3063
+ :object_lock_event_hold,
3064
+ :object_lock_event_hold_duration_days,
3065
+ :object_lock_event_hold_duration_years,
2829
3066
  :expected_bucket_owner,
2830
3067
  :expected_source_bucket_owner)
2831
3068
  SENSITIVE = [:sse_customer_key, :ssekms_key_id, :ssekms_encryption_context, :copy_source_sse_customer_key]
@@ -2855,9 +3092,9 @@ module Aws::S3
2855
3092
  #
2856
3093
  # @!attribute [rw] checksum_crc32
2857
3094
  # The Base64 encoded, 32-bit `CRC32` checksum of the object. This
2858
- # checksum is only present if the object was uploaded with the object.
2859
- # For more information, see [ Checking object integrity][1] in the
2860
- # *Amazon S3 User Guide*.
3095
+ # checksum is only present if the checksum was uploaded with the
3096
+ # object. For more information, see [ Checking object integrity][1] in
3097
+ # the *Amazon S3 User Guide*.
2861
3098
  #
2862
3099
  #
2863
3100
  #
@@ -3276,7 +3513,12 @@ module Aws::S3
3276
3513
  end
3277
3514
 
3278
3515
  # @!attribute [rw] location
3279
- # A forward slash followed by the name of the bucket.
3516
+ # A forward slash followed by the name of the bucket for all account
3517
+ # regional namespace buckets and all global general purpose buckets
3518
+ # created in us-east-1. For example, `/amzn-s3-demo-bucket`. For
3519
+ # global general purpose buckets created in other Amazon Web Services
3520
+ # Regions, the Location field is the global endpoint URL. For example,
3521
+ # `http://amzn-s3-demo-bucket.s3.amazonaws.com/`.
3280
3522
  # @return [String]
3281
3523
  #
3282
3524
  # @!attribute [rw] bucket_arn
@@ -4251,6 +4493,33 @@ module Aws::S3
4251
4493
  # </note>
4252
4494
  # @return [String]
4253
4495
  #
4496
+ # @!attribute [rw] object_lock_event_hold
4497
+ # Specifies the event hold status to apply to the uploaded object. Set
4498
+ # to `ON` to enable or `OFF` to disable.
4499
+ #
4500
+ # <note markdown="1"> This functionality is not supported for directory buckets.
4501
+ #
4502
+ # </note>
4503
+ # @return [String]
4504
+ #
4505
+ # @!attribute [rw] object_lock_event_hold_duration_days
4506
+ # Specifies the event hold duration in days to apply to the uploaded
4507
+ # object. You cannot specify a duration in both days and years.
4508
+ #
4509
+ # <note markdown="1"> This functionality is not supported for directory buckets.
4510
+ #
4511
+ # </note>
4512
+ # @return [Integer]
4513
+ #
4514
+ # @!attribute [rw] object_lock_event_hold_duration_years
4515
+ # Specifies the event hold duration in years to apply to the uploaded
4516
+ # object. You cannot specify a duration in both days and years.
4517
+ #
4518
+ # <note markdown="1"> This functionality is not supported for directory buckets.
4519
+ #
4520
+ # </note>
4521
+ # @return [Integer]
4522
+ #
4254
4523
  # @!attribute [rw] expected_bucket_owner
4255
4524
  # The account ID of the expected bucket owner. If the account ID that
4256
4525
  # you provide does not match the actual owner of the bucket, the
@@ -4309,6 +4578,9 @@ module Aws::S3
4309
4578
  :object_lock_mode,
4310
4579
  :object_lock_retain_until_date,
4311
4580
  :object_lock_legal_hold_status,
4581
+ :object_lock_event_hold,
4582
+ :object_lock_event_hold_duration_days,
4583
+ :object_lock_event_hold_duration_years,
4312
4584
  :expected_bucket_owner,
4313
4585
  :checksum_algorithm,
4314
4586
  :checksum_type)
@@ -4514,12 +4786,19 @@ module Aws::S3
4514
4786
  # retention period. Must be used with `Mode`.
4515
4787
  # @return [Integer]
4516
4788
  #
4789
+ # @!attribute [rw] default_event_hold
4790
+ # The default event hold duration to be applied to new objects placed
4791
+ # in the specified bucket. When configured, new objects will
4792
+ # automatically have an event hold enabled with this duration.
4793
+ # @return [Types::EventHoldDuration]
4794
+ #
4517
4795
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DefaultRetention AWS API Documentation
4518
4796
  #
4519
4797
  class DefaultRetention < Struct.new(
4520
4798
  :mode,
4521
4799
  :days,
4522
- :years)
4800
+ :years,
4801
+ :default_event_hold)
4523
4802
  SENSITIVE = []
4524
4803
  include Aws::Structure
4525
4804
  end
@@ -5062,6 +5341,95 @@ module Aws::S3
5062
5341
  include Aws::Structure
5063
5342
  end
5064
5343
 
5344
+ # @!attribute [rw] object_version_id
5345
+ # The version ID of the object that the annotation was deleted from.
5346
+ # @return [String]
5347
+ #
5348
+ # @!attribute [rw] request_charged
5349
+ # If present, indicates that the requester was successfully charged
5350
+ # for the request. For more information, see [Using Requester Pays
5351
+ # buckets for storage transfers and usage][1] in the *Amazon Simple
5352
+ # Storage Service user guide*.
5353
+ #
5354
+ # <note markdown="1"> This functionality is not supported for directory buckets.
5355
+ #
5356
+ # </note>
5357
+ #
5358
+ #
5359
+ #
5360
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html
5361
+ # @return [String]
5362
+ #
5363
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectAnnotationOutput AWS API Documentation
5364
+ #
5365
+ class DeleteObjectAnnotationOutput < Struct.new(
5366
+ :object_version_id,
5367
+ :request_charged)
5368
+ SENSITIVE = []
5369
+ include Aws::Structure
5370
+ end
5371
+
5372
+ # @!attribute [rw] bucket
5373
+ # The name of the bucket that contains the object.
5374
+ # @return [String]
5375
+ #
5376
+ # @!attribute [rw] key
5377
+ # The object key.
5378
+ # @return [String]
5379
+ #
5380
+ # @!attribute [rw] annotation_name
5381
+ # The name of the annotation to delete. Annotation names are UTF-8
5382
+ # encoded and cannot start with `aws` or `s3` (case-insensitive).
5383
+ #
5384
+ # Length Constraints: Minimum length of 1. Maximum length of 512
5385
+ # bytes.
5386
+ # @return [String]
5387
+ #
5388
+ # @!attribute [rw] version_id
5389
+ # The version ID of the object.
5390
+ # @return [String]
5391
+ #
5392
+ # @!attribute [rw] request_payer
5393
+ # Confirms that the requester knows that they will be charged for the
5394
+ # request. Bucket owners need not specify this parameter in their
5395
+ # requests. If either the source or destination S3 bucket has
5396
+ # Requester Pays enabled, the requester will pay for the corresponding
5397
+ # charges. For information about downloading objects from Requester
5398
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
5399
+ # in the *Amazon S3 User Guide*.
5400
+ #
5401
+ # <note markdown="1"> This functionality is not supported for directory buckets.
5402
+ #
5403
+ # </note>
5404
+ #
5405
+ #
5406
+ #
5407
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
5408
+ # @return [String]
5409
+ #
5410
+ # @!attribute [rw] expected_bucket_owner
5411
+ # The account ID of the expected bucket owner.
5412
+ # @return [String]
5413
+ #
5414
+ # @!attribute [rw] object_if_match
5415
+ # If specified, the operation only succeeds if the object's ETag
5416
+ # matches the provided value.
5417
+ # @return [String]
5418
+ #
5419
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectAnnotationRequest AWS API Documentation
5420
+ #
5421
+ class DeleteObjectAnnotationRequest < Struct.new(
5422
+ :bucket,
5423
+ :key,
5424
+ :annotation_name,
5425
+ :version_id,
5426
+ :request_payer,
5427
+ :expected_bucket_owner,
5428
+ :object_if_match)
5429
+ SENSITIVE = []
5430
+ include Aws::Structure
5431
+ end
5432
+
5065
5433
  # @!attribute [rw] delete_marker
5066
5434
  # Indicates whether the specified object version that was permanently
5067
5435
  # deleted was (true) or was not (false) a delete marker before
@@ -5832,8 +6200,17 @@ module Aws::S3
5832
6200
  include Aws::Structure
5833
6201
  end
5834
6202
 
6203
+ # <note markdown="1"> For information about using the Amazon S3 API—including error
6204
+ # handling—see the [Amazon S3 Developer Guide][1].
6205
+ #
6206
+ # </note>
6207
+ #
5835
6208
  # Container for all error elements.
5836
6209
  #
6210
+ #
6211
+ #
6212
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/developerguide/Welcome.html
6213
+ #
5837
6214
  # @!attribute [rw] key
5838
6215
  # The error key.
5839
6216
  # @return [String]
@@ -6834,19 +7211,41 @@ module Aws::S3
6834
7211
  #
6835
7212
  class EventBridgeConfiguration < Aws::EmptyStructure; end
6836
7213
 
6837
- # Optional configuration to replicate existing source bucket objects.
6838
- #
6839
- # <note markdown="1"> This parameter is no longer supported. To replicate existing objects,
6840
- # see [Replicating existing objects with S3 Batch Replication][1] in the
6841
- # *Amazon S3 User Guide*.
6842
- #
6843
- # </note>
7214
+ # Contains the event hold duration configuration, specified in either
7215
+ # days or years.
6844
7216
  #
7217
+ # @!attribute [rw] days
7218
+ # The number of days for the event hold duration. The minimum value is
7219
+ # 1 and the maximum value is 36,500.
7220
+ # @return [Integer]
6845
7221
  #
7222
+ # @!attribute [rw] years
7223
+ # The number of years for the event hold duration. The minimum value
7224
+ # is 1 and the maximum value is 100.
7225
+ # @return [Integer]
6846
7226
  #
6847
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-batch-replication-batch.html
7227
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/EventHoldDuration AWS API Documentation
6848
7228
  #
6849
- # @!attribute [rw] status
7229
+ class EventHoldDuration < Struct.new(
7230
+ :days,
7231
+ :years)
7232
+ SENSITIVE = []
7233
+ include Aws::Structure
7234
+ end
7235
+
7236
+ # Optional configuration to replicate existing source bucket objects.
7237
+ #
7238
+ # <note markdown="1"> This parameter is no longer supported. To replicate existing objects,
7239
+ # see [Replicating existing objects with S3 Batch Replication][1] in the
7240
+ # *Amazon S3 User Guide*.
7241
+ #
7242
+ # </note>
7243
+ #
7244
+ #
7245
+ #
7246
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-batch-replication-batch.html
7247
+ #
7248
+ # @!attribute [rw] status
6850
7249
  # Specifies whether Amazon S3 replicates existing source bucket
6851
7250
  # objects.
6852
7251
  # @return [String]
@@ -8115,6 +8514,182 @@ module Aws::S3
8115
8514
  include Aws::Structure
8116
8515
  end
8117
8516
 
8517
+ # @!attribute [rw] annotation_payload
8518
+ # The annotation payload.
8519
+ # @return [IO]
8520
+ #
8521
+ # @!attribute [rw] object_version_id
8522
+ # The version ID of the object that the annotation is attached to.
8523
+ # @return [String]
8524
+ #
8525
+ # @!attribute [rw] last_modified
8526
+ # The date and time the annotation was last modified.
8527
+ # @return [Time]
8528
+ #
8529
+ # @!attribute [rw] content_length
8530
+ # The size of the annotation payload, in bytes.
8531
+ # @return [Integer]
8532
+ #
8533
+ # @!attribute [rw] etag
8534
+ # The entity tag of the annotation.
8535
+ # @return [String]
8536
+ #
8537
+ # @!attribute [rw] checksum_crc32
8538
+ # The CRC32 checksum of the annotation payload.
8539
+ # @return [String]
8540
+ #
8541
+ # @!attribute [rw] checksum_crc32c
8542
+ # The CRC32C checksum of the annotation payload.
8543
+ # @return [String]
8544
+ #
8545
+ # @!attribute [rw] checksum_crc64nvme
8546
+ # The CRC64NVME checksum of the annotation payload.
8547
+ # @return [String]
8548
+ #
8549
+ # @!attribute [rw] checksum_sha1
8550
+ # The SHA1 checksum of the annotation payload.
8551
+ # @return [String]
8552
+ #
8553
+ # @!attribute [rw] checksum_sha256
8554
+ # The SHA256 checksum of the annotation payload.
8555
+ # @return [String]
8556
+ #
8557
+ # @!attribute [rw] checksum_sha512
8558
+ # The SHA512 checksum of the annotation payload.
8559
+ # @return [String]
8560
+ #
8561
+ # @!attribute [rw] checksum_md5
8562
+ # The MD5 checksum of the annotation payload.
8563
+ # @return [String]
8564
+ #
8565
+ # @!attribute [rw] checksum_xxhash64
8566
+ # The XXHASH64 checksum of the annotation payload.
8567
+ # @return [String]
8568
+ #
8569
+ # @!attribute [rw] checksum_xxhash3
8570
+ # The XXHASH3 checksum of the annotation payload.
8571
+ # @return [String]
8572
+ #
8573
+ # @!attribute [rw] checksum_xxhash128
8574
+ # The XXHASH128 checksum of the annotation payload.
8575
+ # @return [String]
8576
+ #
8577
+ # @!attribute [rw] checksum_type
8578
+ # The type of checksum used.
8579
+ # @return [String]
8580
+ #
8581
+ # @!attribute [rw] server_side_encryption
8582
+ # The server-side encryption algorithm used.
8583
+ # @return [String]
8584
+ #
8585
+ # @!attribute [rw] request_charged
8586
+ # If present, indicates that the requester was successfully charged
8587
+ # for the request. For more information, see [Using Requester Pays
8588
+ # buckets for storage transfers and usage][1] in the *Amazon Simple
8589
+ # Storage Service user guide*.
8590
+ #
8591
+ # <note markdown="1"> This functionality is not supported for directory buckets.
8592
+ #
8593
+ # </note>
8594
+ #
8595
+ #
8596
+ #
8597
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html
8598
+ # @return [String]
8599
+ #
8600
+ # @!attribute [rw] replication_status
8601
+ # The replication status of the annotation. Possible values include
8602
+ # `PENDING`, `COMPLETED`, `FAILED`, and `REPLICA`.
8603
+ # @return [String]
8604
+ #
8605
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAnnotationOutput AWS API Documentation
8606
+ #
8607
+ class GetObjectAnnotationOutput < Struct.new(
8608
+ :annotation_payload,
8609
+ :object_version_id,
8610
+ :last_modified,
8611
+ :content_length,
8612
+ :etag,
8613
+ :checksum_crc32,
8614
+ :checksum_crc32c,
8615
+ :checksum_crc64nvme,
8616
+ :checksum_sha1,
8617
+ :checksum_sha256,
8618
+ :checksum_sha512,
8619
+ :checksum_md5,
8620
+ :checksum_xxhash64,
8621
+ :checksum_xxhash3,
8622
+ :checksum_xxhash128,
8623
+ :checksum_type,
8624
+ :server_side_encryption,
8625
+ :request_charged,
8626
+ :replication_status)
8627
+ SENSITIVE = []
8628
+ include Aws::Structure
8629
+ end
8630
+
8631
+ # @!attribute [rw] bucket
8632
+ # The name of the bucket that contains the object.
8633
+ # @return [String]
8634
+ #
8635
+ # @!attribute [rw] key
8636
+ # The object key.
8637
+ # @return [String]
8638
+ #
8639
+ # @!attribute [rw] annotation_name
8640
+ # The name of the annotation to retrieve.
8641
+ #
8642
+ # Length Constraints: Minimum length of 1. Maximum length of 512
8643
+ # bytes.
8644
+ # @return [String]
8645
+ #
8646
+ # @!attribute [rw] version_id
8647
+ # The version ID of the object.
8648
+ # @return [String]
8649
+ #
8650
+ # @!attribute [rw] request_payer
8651
+ # Confirms that the requester knows that they will be charged for the
8652
+ # request. Bucket owners need not specify this parameter in their
8653
+ # requests. If either the source or destination S3 bucket has
8654
+ # Requester Pays enabled, the requester will pay for the corresponding
8655
+ # charges. For information about downloading objects from Requester
8656
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
8657
+ # in the *Amazon S3 User Guide*.
8658
+ #
8659
+ # <note markdown="1"> This functionality is not supported for directory buckets.
8660
+ #
8661
+ # </note>
8662
+ #
8663
+ #
8664
+ #
8665
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
8666
+ # @return [String]
8667
+ #
8668
+ # @!attribute [rw] expected_bucket_owner
8669
+ # The account ID of the expected bucket owner. If the bucket is owned
8670
+ # by a different account, the request fails with an HTTP 403 (Access
8671
+ # Denied) error.
8672
+ # @return [String]
8673
+ #
8674
+ # @!attribute [rw] checksum_mode
8675
+ # Set to `ENABLED` to validate the checksum of the annotation payload
8676
+ # on retrieval.
8677
+ # @return [String]
8678
+ #
8679
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAnnotationRequest AWS API Documentation
8680
+ #
8681
+ class GetObjectAnnotationRequest < Struct.new(
8682
+ :bucket,
8683
+ :key,
8684
+ :annotation_name,
8685
+ :version_id,
8686
+ :request_payer,
8687
+ :expected_bucket_owner,
8688
+ :checksum_mode)
8689
+ SENSITIVE = []
8690
+ include Aws::Structure
8691
+ end
8692
+
8118
8693
  # @!attribute [rw] delete_marker
8119
8694
  # Specifies whether the object retrieved was (`true`) or was not
8120
8695
  # (`false`) a delete marker. If `false`, this response header does not
@@ -8634,9 +9209,9 @@ module Aws::S3
8634
9209
  #
8635
9210
  # @!attribute [rw] checksum_crc32
8636
9211
  # The Base64 encoded, 32-bit `CRC32` checksum of the object. This
8637
- # checksum is only present if the object was uploaded with the object.
8638
- # For more information, see [ Checking object integrity][1] in the
8639
- # *Amazon S3 User Guide*.
9212
+ # checksum is only present if the checksum was uploaded with the
9213
+ # object. For more information, see [ Checking object integrity][1] in
9214
+ # the *Amazon S3 User Guide*.
8640
9215
  #
8641
9216
  #
8642
9217
  #
@@ -8944,6 +9519,33 @@ module Aws::S3
8944
9519
  # </note>
8945
9520
  # @return [String]
8946
9521
  #
9522
+ # @!attribute [rw] object_lock_event_hold
9523
+ # The event hold status for this object. This header is only returned
9524
+ # if the requester has the `s3:GetObjectRetention` permission.
9525
+ #
9526
+ # <note markdown="1"> This functionality is not supported for directory buckets.
9527
+ #
9528
+ # </note>
9529
+ # @return [String]
9530
+ #
9531
+ # @!attribute [rw] object_lock_event_hold_duration_days
9532
+ # The event hold duration in days for this object. Only returned when
9533
+ # the event hold is enabled.
9534
+ #
9535
+ # <note markdown="1"> This functionality is not supported for directory buckets.
9536
+ #
9537
+ # </note>
9538
+ # @return [Integer]
9539
+ #
9540
+ # @!attribute [rw] object_lock_event_hold_duration_years
9541
+ # The event hold duration in years for this object. Only returned when
9542
+ # the event hold is enabled.
9543
+ #
9544
+ # <note markdown="1"> This functionality is not supported for directory buckets.
9545
+ #
9546
+ # </note>
9547
+ # @return [Integer]
9548
+ #
8947
9549
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectOutput AWS API Documentation
8948
9550
  #
8949
9551
  class GetObjectOutput < Struct.new(
@@ -8990,7 +9592,10 @@ module Aws::S3
8990
9592
  :tag_count,
8991
9593
  :object_lock_mode,
8992
9594
  :object_lock_retain_until_date,
8993
- :object_lock_legal_hold_status)
9595
+ :object_lock_legal_hold_status,
9596
+ :object_lock_event_hold,
9597
+ :object_lock_event_hold_duration_days,
9598
+ :object_lock_event_hold_duration_years)
8994
9599
  SENSITIVE = [:ssekms_key_id]
8995
9600
  include Aws::Structure
8996
9601
  end
@@ -10300,6 +10905,33 @@ module Aws::S3
10300
10905
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
10301
10906
  # @return [String]
10302
10907
  #
10908
+ # @!attribute [rw] object_lock_event_hold
10909
+ # The event hold status for this object. This header is only returned
10910
+ # if the requester has the `s3:GetObjectRetention` permission.
10911
+ #
10912
+ # <note markdown="1"> This functionality is not supported for directory buckets.
10913
+ #
10914
+ # </note>
10915
+ # @return [String]
10916
+ #
10917
+ # @!attribute [rw] object_lock_event_hold_duration_days
10918
+ # The event hold duration in days for this object. Only returned when
10919
+ # the event hold is enabled.
10920
+ #
10921
+ # <note markdown="1"> This functionality is not supported for directory buckets.
10922
+ #
10923
+ # </note>
10924
+ # @return [Integer]
10925
+ #
10926
+ # @!attribute [rw] object_lock_event_hold_duration_years
10927
+ # The event hold duration in years for this object. Only returned when
10928
+ # the event hold is enabled.
10929
+ #
10930
+ # <note markdown="1"> This functionality is not supported for directory buckets.
10931
+ #
10932
+ # </note>
10933
+ # @return [Integer]
10934
+ #
10303
10935
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObjectOutput AWS API Documentation
10304
10936
  #
10305
10937
  class HeadObjectOutput < Struct.new(
@@ -10346,7 +10978,10 @@ module Aws::S3
10346
10978
  :tag_count,
10347
10979
  :object_lock_mode,
10348
10980
  :object_lock_retain_until_date,
10349
- :object_lock_legal_hold_status)
10981
+ :object_lock_legal_hold_status,
10982
+ :object_lock_event_hold,
10983
+ :object_lock_event_hold_duration_days,
10984
+ :object_lock_event_hold_duration_years)
10350
10985
  SENSITIVE = [:ssekms_key_id]
10351
10986
  include Aws::Structure
10352
10987
  end
@@ -10838,6 +11473,12 @@ module Aws::S3
10838
11473
  include Aws::Structure
10839
11474
  end
10840
11475
 
11476
+ # The annotation name you provided is invalid.
11477
+ #
11478
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InvalidAnnotationName AWS API Documentation
11479
+ #
11480
+ class InvalidAnnotationName < Aws::EmptyStructure; end
11481
+
10841
11482
  # Object is archived and inaccessible until restored.
10842
11483
  #
10843
11484
  # If the object you are retrieving is stored in the S3 Glacier Flexible
@@ -10869,6 +11510,12 @@ module Aws::S3
10869
11510
  include Aws::Structure
10870
11511
  end
10871
11512
 
11513
+ # The annotation prefix you provided is invalid.
11514
+ #
11515
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InvalidPrefix AWS API Documentation
11516
+ #
11517
+ class InvalidPrefix < Aws::EmptyStructure; end
11518
+
10872
11519
  # A parameter or header in your request isn't valid. For details, see
10873
11520
  # the description of this API operation.
10874
11521
  #
@@ -12349,18 +12996,150 @@ module Aws::S3
12349
12996
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
12350
12997
  # @return [String]
12351
12998
  #
12352
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListMultipartUploadsRequest AWS API Documentation
12999
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListMultipartUploadsRequest AWS API Documentation
13000
+ #
13001
+ class ListMultipartUploadsRequest < Struct.new(
13002
+ :bucket,
13003
+ :delimiter,
13004
+ :encoding_type,
13005
+ :key_marker,
13006
+ :max_uploads,
13007
+ :prefix,
13008
+ :upload_id_marker,
13009
+ :expected_bucket_owner,
13010
+ :request_payer)
13011
+ SENSITIVE = []
13012
+ include Aws::Structure
13013
+ end
13014
+
13015
+ # @!attribute [rw] annotations
13016
+ # The list of annotations attached to the object.
13017
+ # @return [Array<Types::AnnotationEntry>]
13018
+ #
13019
+ # @!attribute [rw] bucket
13020
+ # The bucket name.
13021
+ # @return [String]
13022
+ #
13023
+ # @!attribute [rw] key
13024
+ # The object key.
13025
+ # @return [String]
13026
+ #
13027
+ # @!attribute [rw] object_version_id
13028
+ # The version ID of the object.
13029
+ # @return [String]
13030
+ #
13031
+ # @!attribute [rw] annotation_prefix
13032
+ # The prefix used to filter the response.
13033
+ # @return [String]
13034
+ #
13035
+ # @!attribute [rw] max_annotation_results
13036
+ # The maximum number of annotations returned in the response.
13037
+ # @return [Integer]
13038
+ #
13039
+ # @!attribute [rw] annotation_count
13040
+ # The number of annotations returned.
13041
+ # @return [Integer]
13042
+ #
13043
+ # @!attribute [rw] continuation_token
13044
+ # The continuation token used in this request.
13045
+ # @return [String]
13046
+ #
13047
+ # @!attribute [rw] next_continuation_token
13048
+ # The continuation token to use to retrieve the next page of results.
13049
+ # @return [String]
13050
+ #
13051
+ # @!attribute [rw] request_charged
13052
+ # If present, indicates that the requester was successfully charged
13053
+ # for the request. For more information, see [Using Requester Pays
13054
+ # buckets for storage transfers and usage][1] in the *Amazon Simple
13055
+ # Storage Service user guide*.
13056
+ #
13057
+ # <note markdown="1"> This functionality is not supported for directory buckets.
13058
+ #
13059
+ # </note>
13060
+ #
13061
+ #
13062
+ #
13063
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html
13064
+ # @return [String]
13065
+ #
13066
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectAnnotationsOutput AWS API Documentation
13067
+ #
13068
+ class ListObjectAnnotationsOutput < Struct.new(
13069
+ :annotations,
13070
+ :bucket,
13071
+ :key,
13072
+ :object_version_id,
13073
+ :annotation_prefix,
13074
+ :max_annotation_results,
13075
+ :annotation_count,
13076
+ :continuation_token,
13077
+ :next_continuation_token,
13078
+ :request_charged)
13079
+ SENSITIVE = []
13080
+ include Aws::Structure
13081
+ end
13082
+
13083
+ # @!attribute [rw] bucket
13084
+ # The name of the bucket that contains the object.
13085
+ # @return [String]
13086
+ #
13087
+ # @!attribute [rw] key
13088
+ # The object key.
13089
+ # @return [String]
13090
+ #
13091
+ # @!attribute [rw] version_id
13092
+ # The version ID of the object.
13093
+ # @return [String]
13094
+ #
13095
+ # @!attribute [rw] max_annotation_results
13096
+ # The maximum number of annotations to return in the response. Maximum
13097
+ # is 1,000.
13098
+ # @return [Integer]
13099
+ #
13100
+ # @!attribute [rw] annotation_prefix
13101
+ # Filter results to annotations whose name begins with the specified
13102
+ # prefix.
13103
+ # @return [String]
13104
+ #
13105
+ # @!attribute [rw] continuation_token
13106
+ # Continuation token returned by a previous request to retrieve the
13107
+ # next page.
13108
+ # @return [String]
13109
+ #
13110
+ # @!attribute [rw] request_payer
13111
+ # Confirms that the requester knows that they will be charged for the
13112
+ # request. Bucket owners need not specify this parameter in their
13113
+ # requests. If either the source or destination S3 bucket has
13114
+ # Requester Pays enabled, the requester will pay for the corresponding
13115
+ # charges. For information about downloading objects from Requester
13116
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
13117
+ # in the *Amazon S3 User Guide*.
13118
+ #
13119
+ # <note markdown="1"> This functionality is not supported for directory buckets.
13120
+ #
13121
+ # </note>
13122
+ #
13123
+ #
13124
+ #
13125
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
13126
+ # @return [String]
13127
+ #
13128
+ # @!attribute [rw] expected_bucket_owner
13129
+ # The account ID of the expected bucket owner.
13130
+ # @return [String]
12353
13131
  #
12354
- class ListMultipartUploadsRequest < Struct.new(
13132
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectAnnotationsRequest AWS API Documentation
13133
+ #
13134
+ class ListObjectAnnotationsRequest < Struct.new(
12355
13135
  :bucket,
12356
- :delimiter,
12357
- :encoding_type,
12358
- :key_marker,
12359
- :max_uploads,
12360
- :prefix,
12361
- :upload_id_marker,
12362
- :expected_bucket_owner,
12363
- :request_payer)
13136
+ :key,
13137
+ :version_id,
13138
+ :max_annotation_results,
13139
+ :annotation_prefix,
13140
+ :continuation_token,
13141
+ :request_payer,
13142
+ :expected_bucket_owner)
12364
13143
  SENSITIVE = []
12365
13144
  include Aws::Structure
12366
13145
  end
@@ -13587,11 +14366,17 @@ module Aws::S3
13587
14366
  # The inventory table configuration for a metadata configuration.
13588
14367
  # @return [Types::InventoryTableConfiguration]
13589
14368
  #
14369
+ # @!attribute [rw] annotation_table_configuration
14370
+ # Optional annotation table configuration to include with the metadata
14371
+ # configuration.
14372
+ # @return [Types::AnnotationTableConfiguration]
14373
+ #
13590
14374
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/MetadataConfiguration AWS API Documentation
13591
14375
  #
13592
14376
  class MetadataConfiguration < Struct.new(
13593
14377
  :journal_table_configuration,
13594
- :inventory_table_configuration)
14378
+ :inventory_table_configuration,
14379
+ :annotation_table_configuration)
13595
14380
  SENSITIVE = []
13596
14381
  include Aws::Structure
13597
14382
  end
@@ -13610,12 +14395,18 @@ module Aws::S3
13610
14395
  # The inventory table configuration for a metadata configuration.
13611
14396
  # @return [Types::InventoryTableConfigurationResult]
13612
14397
  #
14398
+ # @!attribute [rw] annotation_table_configuration_result
14399
+ # The annotation table configuration result, if an annotation table is
14400
+ # configured.
14401
+ # @return [Types::AnnotationTableConfigurationResult]
14402
+ #
13613
14403
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/MetadataConfigurationResult AWS API Documentation
13614
14404
  #
13615
14405
  class MetadataConfigurationResult < Struct.new(
13616
14406
  :destination_result,
13617
14407
  :journal_table_configuration_result,
13618
- :inventory_table_configuration_result)
14408
+ :inventory_table_configuration_result,
14409
+ :annotation_table_configuration_result)
13619
14410
  SENSITIVE = []
13620
14411
  include Aws::Structure
13621
14412
  end
@@ -13931,6 +14722,12 @@ module Aws::S3
13931
14722
  include Aws::Structure
13932
14723
  end
13933
14724
 
14725
+ # The specified annotation does not exist on this object.
14726
+ #
14727
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NoSuchAnnotation AWS API Documentation
14728
+ #
14729
+ class NoSuchAnnotation < Aws::EmptyStructure; end
14730
+
13934
14731
  # The specified bucket does not exist.
13935
14732
  #
13936
14733
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NoSuchBucket AWS API Documentation
@@ -14390,11 +15187,23 @@ module Aws::S3
14390
15187
  # The date on which this Object Lock Retention will expire.
14391
15188
  # @return [Time]
14392
15189
  #
15190
+ # @!attribute [rw] event_hold
15191
+ # The event hold status for the object. Set to `ON` to enable an event
15192
+ # hold or `OFF` to disable it.
15193
+ # @return [String]
15194
+ #
15195
+ # @!attribute [rw] event_hold_duration
15196
+ # The event hold duration for the object. Specifies how long the
15197
+ # object remains protected after the event hold is released.
15198
+ # @return [Types::EventHoldDuration]
15199
+ #
14393
15200
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectLockRetention AWS API Documentation
14394
15201
  #
14395
15202
  class ObjectLockRetention < Struct.new(
14396
15203
  :mode,
14397
- :retain_until_date)
15204
+ :retain_until_date,
15205
+ :event_hold,
15206
+ :event_hold_duration)
14398
15207
  SENSITIVE = []
14399
15208
  include Aws::Structure
14400
15209
  end
@@ -14402,11 +15211,16 @@ module Aws::S3
14402
15211
  # The container element for an Object Lock rule.
14403
15212
  #
14404
15213
  # @!attribute [rw] default_retention
14405
- # The default Object Lock retention mode and period that you want to
14406
- # apply to new objects placed in the specified bucket. Bucket settings
14407
- # require both a mode and a period. The period can be either `Days` or
14408
- # `Years` but you must select one. You cannot specify `Days` and
14409
- # `Years` at the same time.
15214
+ # The default Object Lock retention settings for new objects in this
15215
+ # bucket. You can specify:
15216
+ #
15217
+ # * A default retention period, by using `Days` or `Years`.
15218
+ #
15219
+ # * A default event hold duration, by using `DefaultEventHold`. This
15220
+ # setting also uses days or years.
15221
+ #
15222
+ # You can set one or both. You cannot use days and years in the same
15223
+ # setting.
14410
15224
  # @return [Types::DefaultRetention]
14411
15225
  #
14412
15226
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectLockRule AWS API Documentation
@@ -16554,6 +17368,242 @@ module Aws::S3
16554
17368
  include Aws::Structure
16555
17369
  end
16556
17370
 
17371
+ # @!attribute [rw] key
17372
+ # The object key.
17373
+ # @return [String]
17374
+ #
17375
+ # @!attribute [rw] annotation_name
17376
+ # The name of the annotation.
17377
+ # @return [String]
17378
+ #
17379
+ # @!attribute [rw] object_version_id
17380
+ # The version ID of the object that the annotation was attached to.
17381
+ # @return [String]
17382
+ #
17383
+ # @!attribute [rw] etag
17384
+ # The entity tag of the annotation.
17385
+ # @return [String]
17386
+ #
17387
+ # @!attribute [rw] checksum_crc32
17388
+ # The CRC32 checksum of the stored annotation.
17389
+ # @return [String]
17390
+ #
17391
+ # @!attribute [rw] checksum_crc32c
17392
+ # The CRC32C checksum of the stored annotation.
17393
+ # @return [String]
17394
+ #
17395
+ # @!attribute [rw] checksum_crc64nvme
17396
+ # The CRC64NVME checksum of the stored annotation.
17397
+ # @return [String]
17398
+ #
17399
+ # @!attribute [rw] checksum_sha1
17400
+ # The SHA1 checksum of the stored annotation.
17401
+ # @return [String]
17402
+ #
17403
+ # @!attribute [rw] checksum_sha256
17404
+ # The SHA256 checksum of the stored annotation.
17405
+ # @return [String]
17406
+ #
17407
+ # @!attribute [rw] checksum_sha512
17408
+ # The SHA512 checksum of the stored annotation.
17409
+ # @return [String]
17410
+ #
17411
+ # @!attribute [rw] checksum_md5
17412
+ # The MD5 checksum of the stored annotation.
17413
+ # @return [String]
17414
+ #
17415
+ # @!attribute [rw] checksum_xxhash64
17416
+ # The XXHASH64 checksum of the stored annotation.
17417
+ # @return [String]
17418
+ #
17419
+ # @!attribute [rw] checksum_xxhash3
17420
+ # The XXHASH3 checksum of the stored annotation.
17421
+ # @return [String]
17422
+ #
17423
+ # @!attribute [rw] checksum_xxhash128
17424
+ # The XXHASH128 checksum of the stored annotation.
17425
+ # @return [String]
17426
+ #
17427
+ # @!attribute [rw] checksum_type
17428
+ # The type of checksum used.
17429
+ # @return [String]
17430
+ #
17431
+ # @!attribute [rw] server_side_encryption
17432
+ # The server-side encryption algorithm used to encrypt the annotation.
17433
+ # @return [String]
17434
+ #
17435
+ # @!attribute [rw] request_charged
17436
+ # If present, indicates that the requester was successfully charged
17437
+ # for the request. For more information, see [Using Requester Pays
17438
+ # buckets for storage transfers and usage][1] in the *Amazon Simple
17439
+ # Storage Service user guide*.
17440
+ #
17441
+ # <note markdown="1"> This functionality is not supported for directory buckets.
17442
+ #
17443
+ # </note>
17444
+ #
17445
+ #
17446
+ #
17447
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html
17448
+ # @return [String]
17449
+ #
17450
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectAnnotationOutput AWS API Documentation
17451
+ #
17452
+ class PutObjectAnnotationOutput < Struct.new(
17453
+ :key,
17454
+ :annotation_name,
17455
+ :object_version_id,
17456
+ :etag,
17457
+ :checksum_crc32,
17458
+ :checksum_crc32c,
17459
+ :checksum_crc64nvme,
17460
+ :checksum_sha1,
17461
+ :checksum_sha256,
17462
+ :checksum_sha512,
17463
+ :checksum_md5,
17464
+ :checksum_xxhash64,
17465
+ :checksum_xxhash3,
17466
+ :checksum_xxhash128,
17467
+ :checksum_type,
17468
+ :server_side_encryption,
17469
+ :request_charged)
17470
+ SENSITIVE = []
17471
+ include Aws::Structure
17472
+ end
17473
+
17474
+ # @!attribute [rw] bucket
17475
+ # The name of the bucket that contains the object.
17476
+ # @return [String]
17477
+ #
17478
+ # @!attribute [rw] key
17479
+ # The object key.
17480
+ # @return [String]
17481
+ #
17482
+ # @!attribute [rw] version_id
17483
+ # The version ID of the object to attach the annotation to.
17484
+ # @return [String]
17485
+ #
17486
+ # @!attribute [rw] annotation_name
17487
+ # The name of the annotation.
17488
+ #
17489
+ # Length Constraints: Minimum length of 1. Maximum length of 512
17490
+ # bytes.
17491
+ # @return [String]
17492
+ #
17493
+ # @!attribute [rw] annotation_payload
17494
+ # The annotation payload. Must be between 1 byte and 1 MiB in size,
17495
+ # and must be valid UTF-8 encoded text. If the payload contains
17496
+ # invalid UTF-8 bytes, the request fails with HTTP 415 (Unsupported
17497
+ # Media Type). To store binary data, encode the payload using Base64
17498
+ # before uploading.
17499
+ # @return [IO]
17500
+ #
17501
+ # @!attribute [rw] object_if_match
17502
+ # If specified, the operation only succeeds if the object's ETag
17503
+ # matches the provided value.
17504
+ # @return [String]
17505
+ #
17506
+ # @!attribute [rw] checksum_algorithm
17507
+ # The checksum algorithm to use. Supported values: `CRC32`, `CRC32C`,
17508
+ # `CRC64NVME`, `SHA1`, `SHA256`, `SHA512`, `MD5`, `XXHASH64`,
17509
+ # `XXHASH3`, `XXHASH128`.
17510
+ # @return [String]
17511
+ #
17512
+ # @!attribute [rw] checksum_crc32
17513
+ # Base64-encoded CRC32 checksum of the annotation payload.
17514
+ # @return [String]
17515
+ #
17516
+ # @!attribute [rw] checksum_crc32c
17517
+ # Base64-encoded CRC32C checksum of the annotation payload.
17518
+ # @return [String]
17519
+ #
17520
+ # @!attribute [rw] checksum_crc64nvme
17521
+ # Base64-encoded CRC64NVME checksum of the annotation payload.
17522
+ # @return [String]
17523
+ #
17524
+ # @!attribute [rw] checksum_sha1
17525
+ # Base64-encoded SHA1 checksum of the annotation payload.
17526
+ # @return [String]
17527
+ #
17528
+ # @!attribute [rw] checksum_sha256
17529
+ # Base64-encoded SHA256 checksum of the annotation payload.
17530
+ # @return [String]
17531
+ #
17532
+ # @!attribute [rw] checksum_sha512
17533
+ # Base64-encoded SHA512 checksum of the annotation payload.
17534
+ # @return [String]
17535
+ #
17536
+ # @!attribute [rw] checksum_md5
17537
+ # Base64-encoded MD5 checksum of the annotation payload.
17538
+ # @return [String]
17539
+ #
17540
+ # @!attribute [rw] checksum_xxhash64
17541
+ # Base64-encoded XXHASH64 checksum of the annotation payload.
17542
+ # @return [String]
17543
+ #
17544
+ # @!attribute [rw] checksum_xxhash3
17545
+ # Base64-encoded XXHASH3 checksum of the annotation payload.
17546
+ # @return [String]
17547
+ #
17548
+ # @!attribute [rw] checksum_xxhash128
17549
+ # Base64-encoded XXHASH128 checksum of the annotation payload.
17550
+ # @return [String]
17551
+ #
17552
+ # @!attribute [rw] content_md5
17553
+ # Base64-encoded MD5 digest of the message.
17554
+ # @return [String]
17555
+ #
17556
+ # @!attribute [rw] request_payer
17557
+ # Confirms that the requester knows that they will be charged for the
17558
+ # request. Bucket owners need not specify this parameter in their
17559
+ # requests. If either the source or destination S3 bucket has
17560
+ # Requester Pays enabled, the requester will pay for the corresponding
17561
+ # charges. For information about downloading objects from Requester
17562
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
17563
+ # in the *Amazon S3 User Guide*.
17564
+ #
17565
+ # <note markdown="1"> This functionality is not supported for directory buckets.
17566
+ #
17567
+ # </note>
17568
+ #
17569
+ #
17570
+ #
17571
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
17572
+ # @return [String]
17573
+ #
17574
+ # @!attribute [rw] expected_bucket_owner
17575
+ # The account ID of the expected bucket owner. If the bucket is owned
17576
+ # by a different account, the request fails with an HTTP 403 (Access
17577
+ # Denied) error.
17578
+ # @return [String]
17579
+ #
17580
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectAnnotationRequest AWS API Documentation
17581
+ #
17582
+ class PutObjectAnnotationRequest < Struct.new(
17583
+ :bucket,
17584
+ :key,
17585
+ :version_id,
17586
+ :annotation_name,
17587
+ :annotation_payload,
17588
+ :object_if_match,
17589
+ :checksum_algorithm,
17590
+ :checksum_crc32,
17591
+ :checksum_crc32c,
17592
+ :checksum_crc64nvme,
17593
+ :checksum_sha1,
17594
+ :checksum_sha256,
17595
+ :checksum_sha512,
17596
+ :checksum_md5,
17597
+ :checksum_xxhash64,
17598
+ :checksum_xxhash3,
17599
+ :checksum_xxhash128,
17600
+ :content_md5,
17601
+ :request_payer,
17602
+ :expected_bucket_owner)
17603
+ SENSITIVE = []
17604
+ include Aws::Structure
17605
+ end
17606
+
16557
17607
  # @!attribute [rw] request_charged
16558
17608
  # If present, indicates that the requester was successfully charged
16559
17609
  # for the request. For more information, see [Using Requester Pays
@@ -17849,6 +18899,33 @@ module Aws::S3
17849
18899
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
17850
18900
  # @return [String]
17851
18901
  #
18902
+ # @!attribute [rw] object_lock_event_hold
18903
+ # Specifies the event hold status to apply to this object. Set to `ON`
18904
+ # to enable or `OFF` to disable.
18905
+ #
18906
+ # <note markdown="1"> This functionality is not supported for directory buckets.
18907
+ #
18908
+ # </note>
18909
+ # @return [String]
18910
+ #
18911
+ # @!attribute [rw] object_lock_event_hold_duration_days
18912
+ # Specifies the event hold duration in days to apply to this object.
18913
+ # You cannot specify a duration in both days and years.
18914
+ #
18915
+ # <note markdown="1"> This functionality is not supported for directory buckets.
18916
+ #
18917
+ # </note>
18918
+ # @return [Integer]
18919
+ #
18920
+ # @!attribute [rw] object_lock_event_hold_duration_years
18921
+ # Specifies the event hold duration in years to apply to this object.
18922
+ # You cannot specify a duration in both days and years.
18923
+ #
18924
+ # <note markdown="1"> This functionality is not supported for directory buckets.
18925
+ #
18926
+ # </note>
18927
+ # @return [Integer]
18928
+ #
17852
18929
  # @!attribute [rw] expected_bucket_owner
17853
18930
  # The account ID of the expected bucket owner. If the account ID that
17854
18931
  # you provide does not match the actual owner of the bucket, the
@@ -17904,6 +18981,9 @@ module Aws::S3
17904
18981
  :object_lock_mode,
17905
18982
  :object_lock_retain_until_date,
17906
18983
  :object_lock_legal_hold_status,
18984
+ :object_lock_event_hold,
18985
+ :object_lock_event_hold_duration_days,
18986
+ :object_lock_event_hold_duration_years,
17907
18987
  :expected_bucket_owner)
17908
18988
  SENSITIVE = [:sse_customer_key, :ssekms_key_id, :ssekms_encryption_context]
17909
18989
  include Aws::Structure
@@ -20305,15 +21385,12 @@ module Aws::S3
20305
21385
  #
20306
21386
  # @!attribute [rw] days
20307
21387
  # Indicates the number of days after creation when objects are
20308
- # transitioned to the specified storage class. If the specified
20309
- # storage class is `INTELLIGENT_TIERING`, `GLACIER_IR`, `GLACIER`, or
20310
- # `DEEP_ARCHIVE`, valid values are `0` or positive integers. If the
20311
- # specified storage class is `STANDARD_IA` or `ONEZONE_IA`, valid
20312
- # values are positive integers greater than `30`. Be aware that some
20313
- # storage classes have a minimum storage duration and that you're
20314
- # charged for transitioning objects before their minimum storage
20315
- # duration. For more information, see [ Constraints and considerations
20316
- # for transitions][1] in the *Amazon S3 User Guide*.
21388
+ # transitioned to the specified storage class. The value can be `0` or
21389
+ # any positive integer. Be aware that some storage classes have a
21390
+ # minimum storage duration and that you're charged for transitioning
21391
+ # objects before their minimum storage duration. For more information,
21392
+ # see [ Constraints and considerations for transitions][1] in the
21393
+ # *Amazon S3 User Guide*.
20317
21394
  #
20318
21395
  #
20319
21396
  #
@@ -20334,6 +21411,45 @@ module Aws::S3
20334
21411
  include Aws::Structure
20335
21412
  end
20336
21413
 
21414
+ # The annotation payload is not valid UTF-8 encoded text.
21415
+ #
21416
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UnsupportedMediaType AWS API Documentation
21417
+ #
21418
+ class UnsupportedMediaType < Aws::EmptyStructure; end
21419
+
21420
+ # @!attribute [rw] bucket
21421
+ # The name of the bucket whose annotation table configuration to
21422
+ # update.
21423
+ # @return [String]
21424
+ #
21425
+ # @!attribute [rw] content_md5
21426
+ # Base64-encoded MD5 digest of the message body.
21427
+ # @return [String]
21428
+ #
21429
+ # @!attribute [rw] checksum_algorithm
21430
+ # Checksum algorithm for the request payload.
21431
+ # @return [String]
21432
+ #
21433
+ # @!attribute [rw] annotation_table_configuration
21434
+ # The annotation table configuration updates to apply.
21435
+ # @return [Types::AnnotationTableConfigurationUpdates]
21436
+ #
21437
+ # @!attribute [rw] expected_bucket_owner
21438
+ # The account ID of the expected bucket owner.
21439
+ # @return [String]
21440
+ #
21441
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UpdateBucketMetadataAnnotationTableConfigurationRequest AWS API Documentation
21442
+ #
21443
+ class UpdateBucketMetadataAnnotationTableConfigurationRequest < Struct.new(
21444
+ :bucket,
21445
+ :content_md5,
21446
+ :checksum_algorithm,
21447
+ :annotation_table_configuration,
21448
+ :expected_bucket_owner)
21449
+ SENSITIVE = []
21450
+ include Aws::Structure
21451
+ end
21452
+
20337
21453
  # @!attribute [rw] bucket
20338
21454
  # The general purpose bucket that corresponds to the metadata
20339
21455
  # configuration that you want to enable or disable an inventory table