aws-sdk-s3 1.83.2 → 1.84.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -38,6 +38,7 @@ module Aws::S3
38
38
  AnalyticsId = Shapes::StringShape.new(name: 'AnalyticsId')
39
39
  AnalyticsS3BucketDestination = Shapes::StructureShape.new(name: 'AnalyticsS3BucketDestination')
40
40
  AnalyticsS3ExportFileFormat = Shapes::StringShape.new(name: 'AnalyticsS3ExportFileFormat')
41
+ ArchiveStatus = Shapes::StringShape.new(name: 'ArchiveStatus')
41
42
  Body = Shapes::BlobShape.new(name: 'Body')
42
43
  Bucket = Shapes::StructureShape.new(name: 'Bucket')
43
44
  BucketAccelerateStatus = Shapes::StringShape.new(name: 'BucketAccelerateStatus')
@@ -112,6 +113,7 @@ module Aws::S3
112
113
  DeleteBucketAnalyticsConfigurationRequest = Shapes::StructureShape.new(name: 'DeleteBucketAnalyticsConfigurationRequest')
113
114
  DeleteBucketCorsRequest = Shapes::StructureShape.new(name: 'DeleteBucketCorsRequest')
114
115
  DeleteBucketEncryptionRequest = Shapes::StructureShape.new(name: 'DeleteBucketEncryptionRequest')
116
+ DeleteBucketIntelligentTieringConfigurationRequest = Shapes::StructureShape.new(name: 'DeleteBucketIntelligentTieringConfigurationRequest')
115
117
  DeleteBucketInventoryConfigurationRequest = Shapes::StructureShape.new(name: 'DeleteBucketInventoryConfigurationRequest')
116
118
  DeleteBucketLifecycleRequest = Shapes::StructureShape.new(name: 'DeleteBucketLifecycleRequest')
117
119
  DeleteBucketMetricsConfigurationRequest = Shapes::StructureShape.new(name: 'DeleteBucketMetricsConfigurationRequest')
@@ -181,6 +183,8 @@ module Aws::S3
181
183
  GetBucketCorsRequest = Shapes::StructureShape.new(name: 'GetBucketCorsRequest')
182
184
  GetBucketEncryptionOutput = Shapes::StructureShape.new(name: 'GetBucketEncryptionOutput')
183
185
  GetBucketEncryptionRequest = Shapes::StructureShape.new(name: 'GetBucketEncryptionRequest')
186
+ GetBucketIntelligentTieringConfigurationOutput = Shapes::StructureShape.new(name: 'GetBucketIntelligentTieringConfigurationOutput')
187
+ GetBucketIntelligentTieringConfigurationRequest = Shapes::StructureShape.new(name: 'GetBucketIntelligentTieringConfigurationRequest')
184
188
  GetBucketInventoryConfigurationOutput = Shapes::StructureShape.new(name: 'GetBucketInventoryConfigurationOutput')
185
189
  GetBucketInventoryConfigurationRequest = Shapes::StructureShape.new(name: 'GetBucketInventoryConfigurationRequest')
186
190
  GetBucketLifecycleConfigurationOutput = Shapes::StructureShape.new(name: 'GetBucketLifecycleConfigurationOutput')
@@ -250,6 +254,15 @@ module Aws::S3
250
254
  Initiated = Shapes::TimestampShape.new(name: 'Initiated')
251
255
  Initiator = Shapes::StructureShape.new(name: 'Initiator')
252
256
  InputSerialization = Shapes::StructureShape.new(name: 'InputSerialization')
257
+ IntelligentTieringAccessTier = Shapes::StringShape.new(name: 'IntelligentTieringAccessTier')
258
+ IntelligentTieringAndOperator = Shapes::StructureShape.new(name: 'IntelligentTieringAndOperator')
259
+ IntelligentTieringConfiguration = Shapes::StructureShape.new(name: 'IntelligentTieringConfiguration')
260
+ IntelligentTieringConfigurationList = Shapes::ListShape.new(name: 'IntelligentTieringConfigurationList', flattened: true)
261
+ IntelligentTieringDays = Shapes::IntegerShape.new(name: 'IntelligentTieringDays')
262
+ IntelligentTieringFilter = Shapes::StructureShape.new(name: 'IntelligentTieringFilter')
263
+ IntelligentTieringId = Shapes::StringShape.new(name: 'IntelligentTieringId')
264
+ IntelligentTieringStatus = Shapes::StringShape.new(name: 'IntelligentTieringStatus')
265
+ InvalidObjectState = Shapes::StructureShape.new(name: 'InvalidObjectState')
253
266
  InventoryConfiguration = Shapes::StructureShape.new(name: 'InventoryConfiguration')
254
267
  InventoryConfigurationList = Shapes::ListShape.new(name: 'InventoryConfigurationList', flattened: true)
255
268
  InventoryDestination = Shapes::StructureShape.new(name: 'InventoryDestination')
@@ -286,6 +299,8 @@ module Aws::S3
286
299
  LifecycleRules = Shapes::ListShape.new(name: 'LifecycleRules', flattened: true)
287
300
  ListBucketAnalyticsConfigurationsOutput = Shapes::StructureShape.new(name: 'ListBucketAnalyticsConfigurationsOutput')
288
301
  ListBucketAnalyticsConfigurationsRequest = Shapes::StructureShape.new(name: 'ListBucketAnalyticsConfigurationsRequest')
302
+ ListBucketIntelligentTieringConfigurationsOutput = Shapes::StructureShape.new(name: 'ListBucketIntelligentTieringConfigurationsOutput')
303
+ ListBucketIntelligentTieringConfigurationsRequest = Shapes::StructureShape.new(name: 'ListBucketIntelligentTieringConfigurationsRequest')
289
304
  ListBucketInventoryConfigurationsOutput = Shapes::StructureShape.new(name: 'ListBucketInventoryConfigurationsOutput')
290
305
  ListBucketInventoryConfigurationsRequest = Shapes::StructureShape.new(name: 'ListBucketInventoryConfigurationsRequest')
291
306
  ListBucketMetricsConfigurationsOutput = Shapes::StructureShape.new(name: 'ListBucketMetricsConfigurationsOutput')
@@ -399,6 +414,7 @@ module Aws::S3
399
414
  PutBucketAnalyticsConfigurationRequest = Shapes::StructureShape.new(name: 'PutBucketAnalyticsConfigurationRequest')
400
415
  PutBucketCorsRequest = Shapes::StructureShape.new(name: 'PutBucketCorsRequest')
401
416
  PutBucketEncryptionRequest = Shapes::StructureShape.new(name: 'PutBucketEncryptionRequest')
417
+ PutBucketIntelligentTieringConfigurationRequest = Shapes::StructureShape.new(name: 'PutBucketIntelligentTieringConfigurationRequest')
402
418
  PutBucketInventoryConfigurationRequest = Shapes::StructureShape.new(name: 'PutBucketInventoryConfigurationRequest')
403
419
  PutBucketLifecycleConfigurationRequest = Shapes::StructureShape.new(name: 'PutBucketLifecycleConfigurationRequest')
404
420
  PutBucketLifecycleRequest = Shapes::StructureShape.new(name: 'PutBucketLifecycleRequest')
@@ -517,6 +533,8 @@ module Aws::S3
517
533
  TargetGrants = Shapes::ListShape.new(name: 'TargetGrants')
518
534
  TargetPrefix = Shapes::StringShape.new(name: 'TargetPrefix')
519
535
  Tier = Shapes::StringShape.new(name: 'Tier')
536
+ Tiering = Shapes::StructureShape.new(name: 'Tiering')
537
+ TieringList = Shapes::ListShape.new(name: 'TieringList', flattened: true)
520
538
  Token = Shapes::StringShape.new(name: 'Token')
521
539
  TopicArn = Shapes::StringShape.new(name: 'TopicArn')
522
540
  TopicConfiguration = Shapes::StructureShape.new(name: 'TopicConfiguration')
@@ -833,6 +851,10 @@ module Aws::S3
833
851
  DeleteBucketEncryptionRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
834
852
  DeleteBucketEncryptionRequest.struct_class = Types::DeleteBucketEncryptionRequest
835
853
 
854
+ DeleteBucketIntelligentTieringConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
855
+ DeleteBucketIntelligentTieringConfigurationRequest.add_member(:id, Shapes::ShapeRef.new(shape: IntelligentTieringId, required: true, location: "querystring", location_name: "id"))
856
+ DeleteBucketIntelligentTieringConfigurationRequest.struct_class = Types::DeleteBucketIntelligentTieringConfigurationRequest
857
+
836
858
  DeleteBucketInventoryConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
837
859
  DeleteBucketInventoryConfigurationRequest.add_member(:id, Shapes::ShapeRef.new(shape: InventoryId, required: true, location: "querystring", location_name: "id"))
838
860
  DeleteBucketInventoryConfigurationRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
@@ -1017,6 +1039,15 @@ module Aws::S3
1017
1039
  GetBucketEncryptionRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
1018
1040
  GetBucketEncryptionRequest.struct_class = Types::GetBucketEncryptionRequest
1019
1041
 
1042
+ GetBucketIntelligentTieringConfigurationOutput.add_member(:intelligent_tiering_configuration, Shapes::ShapeRef.new(shape: IntelligentTieringConfiguration, location_name: "IntelligentTieringConfiguration"))
1043
+ GetBucketIntelligentTieringConfigurationOutput.struct_class = Types::GetBucketIntelligentTieringConfigurationOutput
1044
+ GetBucketIntelligentTieringConfigurationOutput[:payload] = :intelligent_tiering_configuration
1045
+ GetBucketIntelligentTieringConfigurationOutput[:payload_member] = GetBucketIntelligentTieringConfigurationOutput.member(:intelligent_tiering_configuration)
1046
+
1047
+ GetBucketIntelligentTieringConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
1048
+ GetBucketIntelligentTieringConfigurationRequest.add_member(:id, Shapes::ShapeRef.new(shape: IntelligentTieringId, required: true, location: "querystring", location_name: "id"))
1049
+ GetBucketIntelligentTieringConfigurationRequest.struct_class = Types::GetBucketIntelligentTieringConfigurationRequest
1050
+
1020
1051
  GetBucketInventoryConfigurationOutput.add_member(:inventory_configuration, Shapes::ShapeRef.new(shape: InventoryConfiguration, location_name: "InventoryConfiguration"))
1021
1052
  GetBucketInventoryConfigurationOutput.struct_class = Types::GetBucketInventoryConfigurationOutput
1022
1053
  GetBucketInventoryConfigurationOutput[:payload] = :inventory_configuration
@@ -1295,6 +1326,7 @@ module Aws::S3
1295
1326
  HeadObjectOutput.add_member(:accept_ranges, Shapes::ShapeRef.new(shape: AcceptRanges, location: "header", location_name: "accept-ranges"))
1296
1327
  HeadObjectOutput.add_member(:expiration, Shapes::ShapeRef.new(shape: Expiration, location: "header", location_name: "x-amz-expiration"))
1297
1328
  HeadObjectOutput.add_member(:restore, Shapes::ShapeRef.new(shape: Restore, location: "header", location_name: "x-amz-restore"))
1329
+ HeadObjectOutput.add_member(:archive_status, Shapes::ShapeRef.new(shape: ArchiveStatus, location: "header", location_name: "x-amz-archive-status"))
1298
1330
  HeadObjectOutput.add_member(:last_modified, Shapes::ShapeRef.new(shape: LastModified, location: "header", location_name: "Last-Modified"))
1299
1331
  HeadObjectOutput.add_member(:content_length, Shapes::ShapeRef.new(shape: ContentLength, location: "header", location_name: "Content-Length"))
1300
1332
  HeadObjectOutput.add_member(:etag, Shapes::ShapeRef.new(shape: ETag, location: "header", location_name: "ETag"))
@@ -1351,6 +1383,27 @@ module Aws::S3
1351
1383
  InputSerialization.add_member(:parquet, Shapes::ShapeRef.new(shape: ParquetInput, location_name: "Parquet"))
1352
1384
  InputSerialization.struct_class = Types::InputSerialization
1353
1385
 
1386
+ IntelligentTieringAndOperator.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, location_name: "Prefix"))
1387
+ IntelligentTieringAndOperator.add_member(:tags, Shapes::ShapeRef.new(shape: TagSet, location_name: "Tag", metadata: {"flattened"=>true}))
1388
+ IntelligentTieringAndOperator.struct_class = Types::IntelligentTieringAndOperator
1389
+
1390
+ IntelligentTieringConfiguration.add_member(:id, Shapes::ShapeRef.new(shape: IntelligentTieringId, required: true, location_name: "Id"))
1391
+ IntelligentTieringConfiguration.add_member(:filter, Shapes::ShapeRef.new(shape: IntelligentTieringFilter, location_name: "Filter"))
1392
+ IntelligentTieringConfiguration.add_member(:status, Shapes::ShapeRef.new(shape: IntelligentTieringStatus, required: true, location_name: "Status"))
1393
+ IntelligentTieringConfiguration.add_member(:tierings, Shapes::ShapeRef.new(shape: TieringList, required: true, location_name: "Tiering"))
1394
+ IntelligentTieringConfiguration.struct_class = Types::IntelligentTieringConfiguration
1395
+
1396
+ IntelligentTieringConfigurationList.member = Shapes::ShapeRef.new(shape: IntelligentTieringConfiguration)
1397
+
1398
+ IntelligentTieringFilter.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, location_name: "Prefix"))
1399
+ IntelligentTieringFilter.add_member(:tag, Shapes::ShapeRef.new(shape: Tag, location_name: "Tag"))
1400
+ IntelligentTieringFilter.add_member(:and, Shapes::ShapeRef.new(shape: IntelligentTieringAndOperator, location_name: "And"))
1401
+ IntelligentTieringFilter.struct_class = Types::IntelligentTieringFilter
1402
+
1403
+ InvalidObjectState.add_member(:storage_class, Shapes::ShapeRef.new(shape: StorageClass, location_name: "StorageClass"))
1404
+ InvalidObjectState.add_member(:access_tier, Shapes::ShapeRef.new(shape: IntelligentTieringAccessTier, location_name: "AccessTier"))
1405
+ InvalidObjectState.struct_class = Types::InvalidObjectState
1406
+
1354
1407
  InventoryConfiguration.add_member(:destination, Shapes::ShapeRef.new(shape: InventoryDestination, required: true, location_name: "Destination"))
1355
1408
  InventoryConfiguration.add_member(:is_enabled, Shapes::ShapeRef.new(shape: IsEnabled, required: true, location_name: "IsEnabled"))
1356
1409
  InventoryConfiguration.add_member(:filter, Shapes::ShapeRef.new(shape: InventoryFilter, location_name: "Filter"))
@@ -1439,6 +1492,16 @@ module Aws::S3
1439
1492
  ListBucketAnalyticsConfigurationsRequest.add_member(:expected_bucket_owner, Shapes::ShapeRef.new(shape: AccountId, location: "header", location_name: "x-amz-expected-bucket-owner"))
1440
1493
  ListBucketAnalyticsConfigurationsRequest.struct_class = Types::ListBucketAnalyticsConfigurationsRequest
1441
1494
 
1495
+ ListBucketIntelligentTieringConfigurationsOutput.add_member(:is_truncated, Shapes::ShapeRef.new(shape: IsTruncated, location_name: "IsTruncated"))
1496
+ ListBucketIntelligentTieringConfigurationsOutput.add_member(:continuation_token, Shapes::ShapeRef.new(shape: Token, location_name: "ContinuationToken"))
1497
+ ListBucketIntelligentTieringConfigurationsOutput.add_member(:next_continuation_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextContinuationToken"))
1498
+ ListBucketIntelligentTieringConfigurationsOutput.add_member(:intelligent_tiering_configuration_list, Shapes::ShapeRef.new(shape: IntelligentTieringConfigurationList, location_name: "IntelligentTieringConfiguration"))
1499
+ ListBucketIntelligentTieringConfigurationsOutput.struct_class = Types::ListBucketIntelligentTieringConfigurationsOutput
1500
+
1501
+ ListBucketIntelligentTieringConfigurationsRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
1502
+ ListBucketIntelligentTieringConfigurationsRequest.add_member(:continuation_token, Shapes::ShapeRef.new(shape: Token, location: "querystring", location_name: "continuation-token"))
1503
+ ListBucketIntelligentTieringConfigurationsRequest.struct_class = Types::ListBucketIntelligentTieringConfigurationsRequest
1504
+
1442
1505
  ListBucketInventoryConfigurationsOutput.add_member(:continuation_token, Shapes::ShapeRef.new(shape: Token, location_name: "ContinuationToken"))
1443
1506
  ListBucketInventoryConfigurationsOutput.add_member(:inventory_configuration_list, Shapes::ShapeRef.new(shape: InventoryConfigurationList, location_name: "InventoryConfiguration"))
1444
1507
  ListBucketInventoryConfigurationsOutput.add_member(:is_truncated, Shapes::ShapeRef.new(shape: IsTruncated, location_name: "IsTruncated"))
@@ -1600,7 +1663,7 @@ module Aws::S3
1600
1663
  MetadataEntry.struct_class = Types::MetadataEntry
1601
1664
 
1602
1665
  Metrics.add_member(:status, Shapes::ShapeRef.new(shape: MetricsStatus, required: true, location_name: "Status"))
1603
- Metrics.add_member(:event_threshold, Shapes::ShapeRef.new(shape: ReplicationTimeValue, required: true, location_name: "EventThreshold"))
1666
+ Metrics.add_member(:event_threshold, Shapes::ShapeRef.new(shape: ReplicationTimeValue, location_name: "EventThreshold"))
1604
1667
  Metrics.struct_class = Types::Metrics
1605
1668
 
1606
1669
  MetricsAndOperator.add_member(:prefix, Shapes::ShapeRef.new(shape: Prefix, location_name: "Prefix"))
@@ -1793,6 +1856,13 @@ module Aws::S3
1793
1856
  PutBucketEncryptionRequest[:payload] = :server_side_encryption_configuration
1794
1857
  PutBucketEncryptionRequest[:payload_member] = PutBucketEncryptionRequest.member(:server_side_encryption_configuration)
1795
1858
 
1859
+ PutBucketIntelligentTieringConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
1860
+ PutBucketIntelligentTieringConfigurationRequest.add_member(:id, Shapes::ShapeRef.new(shape: IntelligentTieringId, required: true, location: "querystring", location_name: "id"))
1861
+ PutBucketIntelligentTieringConfigurationRequest.add_member(:intelligent_tiering_configuration, Shapes::ShapeRef.new(shape: IntelligentTieringConfiguration, required: true, location_name: "IntelligentTieringConfiguration", metadata: {"xmlNamespace"=>{"uri"=>"http://s3.amazonaws.com/doc/2006-03-01/"}}))
1862
+ PutBucketIntelligentTieringConfigurationRequest.struct_class = Types::PutBucketIntelligentTieringConfigurationRequest
1863
+ PutBucketIntelligentTieringConfigurationRequest[:payload] = :intelligent_tiering_configuration
1864
+ PutBucketIntelligentTieringConfigurationRequest[:payload_member] = PutBucketIntelligentTieringConfigurationRequest.member(:intelligent_tiering_configuration)
1865
+
1796
1866
  PutBucketInventoryConfigurationRequest.add_member(:bucket, Shapes::ShapeRef.new(shape: BucketName, required: true, location: "uri", location_name: "Bucket"))
1797
1867
  PutBucketInventoryConfigurationRequest.add_member(:id, Shapes::ShapeRef.new(shape: InventoryId, required: true, location: "querystring", location_name: "id"))
1798
1868
  PutBucketInventoryConfigurationRequest.add_member(:inventory_configuration, Shapes::ShapeRef.new(shape: InventoryConfiguration, required: true, location_name: "InventoryConfiguration", metadata: {"xmlNamespace"=>{"uri"=>"http://s3.amazonaws.com/doc/2006-03-01/"}}))
@@ -2245,6 +2315,12 @@ module Aws::S3
2245
2315
 
2246
2316
  TargetGrants.member = Shapes::ShapeRef.new(shape: TargetGrant, location_name: "Grant")
2247
2317
 
2318
+ Tiering.add_member(:days, Shapes::ShapeRef.new(shape: IntelligentTieringDays, required: true, location_name: "Days"))
2319
+ Tiering.add_member(:access_tier, Shapes::ShapeRef.new(shape: IntelligentTieringAccessTier, required: true, location_name: "AccessTier"))
2320
+ Tiering.struct_class = Types::Tiering
2321
+
2322
+ TieringList.member = Shapes::ShapeRef.new(shape: Tiering)
2323
+
2248
2324
  TopicConfiguration.add_member(:id, Shapes::ShapeRef.new(shape: NotificationId, location_name: "Id"))
2249
2325
  TopicConfiguration.add_member(:topic_arn, Shapes::ShapeRef.new(shape: TopicArn, required: true, location_name: "Topic"))
2250
2326
  TopicConfiguration.add_member(:events, Shapes::ShapeRef.new(shape: EventList, required: true, location_name: "Event"))
@@ -2428,6 +2504,14 @@ module Aws::S3
2428
2504
  o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
2429
2505
  end)
2430
2506
 
2507
+ api.add_operation(:delete_bucket_intelligent_tiering_configuration, Seahorse::Model::Operation.new.tap do |o|
2508
+ o.name = "DeleteBucketIntelligentTieringConfiguration"
2509
+ o.http_method = "DELETE"
2510
+ o.http_request_uri = "/{Bucket}?intelligent-tiering"
2511
+ o.input = Shapes::ShapeRef.new(shape: DeleteBucketIntelligentTieringConfigurationRequest)
2512
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
2513
+ end)
2514
+
2431
2515
  api.add_operation(:delete_bucket_inventory_configuration, Seahorse::Model::Operation.new.tap do |o|
2432
2516
  o.name = "DeleteBucketInventoryConfiguration"
2433
2517
  o.http_method = "DELETE"
@@ -2565,6 +2649,14 @@ module Aws::S3
2565
2649
  o.output = Shapes::ShapeRef.new(shape: GetBucketEncryptionOutput)
2566
2650
  end)
2567
2651
 
2652
+ api.add_operation(:get_bucket_intelligent_tiering_configuration, Seahorse::Model::Operation.new.tap do |o|
2653
+ o.name = "GetBucketIntelligentTieringConfiguration"
2654
+ o.http_method = "GET"
2655
+ o.http_request_uri = "/{Bucket}?intelligent-tiering"
2656
+ o.input = Shapes::ShapeRef.new(shape: GetBucketIntelligentTieringConfigurationRequest)
2657
+ o.output = Shapes::ShapeRef.new(shape: GetBucketIntelligentTieringConfigurationOutput)
2658
+ end)
2659
+
2568
2660
  api.add_operation(:get_bucket_inventory_configuration, Seahorse::Model::Operation.new.tap do |o|
2569
2661
  o.name = "GetBucketInventoryConfiguration"
2570
2662
  o.http_method = "GET"
@@ -2702,6 +2794,7 @@ module Aws::S3
2702
2794
  o.input = Shapes::ShapeRef.new(shape: GetObjectRequest)
2703
2795
  o.output = Shapes::ShapeRef.new(shape: GetObjectOutput)
2704
2796
  o.errors << Shapes::ShapeRef.new(shape: NoSuchKey)
2797
+ o.errors << Shapes::ShapeRef.new(shape: InvalidObjectState)
2705
2798
  end)
2706
2799
 
2707
2800
  api.add_operation(:get_object_acl, Seahorse::Model::Operation.new.tap do |o|
@@ -2787,6 +2880,14 @@ module Aws::S3
2787
2880
  o.output = Shapes::ShapeRef.new(shape: ListBucketAnalyticsConfigurationsOutput)
2788
2881
  end)
2789
2882
 
2883
+ api.add_operation(:list_bucket_intelligent_tiering_configurations, Seahorse::Model::Operation.new.tap do |o|
2884
+ o.name = "ListBucketIntelligentTieringConfigurations"
2885
+ o.http_method = "GET"
2886
+ o.http_request_uri = "/{Bucket}?intelligent-tiering"
2887
+ o.input = Shapes::ShapeRef.new(shape: ListBucketIntelligentTieringConfigurationsRequest)
2888
+ o.output = Shapes::ShapeRef.new(shape: ListBucketIntelligentTieringConfigurationsOutput)
2889
+ end)
2890
+
2790
2891
  api.add_operation(:list_bucket_inventory_configurations, Seahorse::Model::Operation.new.tap do |o|
2791
2892
  o.name = "ListBucketInventoryConfigurations"
2792
2893
  o.http_method = "GET"
@@ -2932,6 +3033,14 @@ module Aws::S3
2932
3033
  o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
2933
3034
  end)
2934
3035
 
3036
+ api.add_operation(:put_bucket_intelligent_tiering_configuration, Seahorse::Model::Operation.new.tap do |o|
3037
+ o.name = "PutBucketIntelligentTieringConfiguration"
3038
+ o.http_method = "PUT"
3039
+ o.http_request_uri = "/{Bucket}?intelligent-tiering"
3040
+ o.input = Shapes::ShapeRef.new(shape: PutBucketIntelligentTieringConfigurationRequest)
3041
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
3042
+ end)
3043
+
2935
3044
  api.add_operation(:put_bucket_inventory_configuration, Seahorse::Model::Operation.new.tap do |o|
2936
3045
  o.name = "PutBucketInventoryConfiguration"
2937
3046
  o.http_method = "PUT"
@@ -29,6 +29,7 @@ module Aws::S3
29
29
  # ## Error Classes
30
30
  # * {BucketAlreadyExists}
31
31
  # * {BucketAlreadyOwnedByYou}
32
+ # * {InvalidObjectState}
32
33
  # * {NoSuchBucket}
33
34
  # * {NoSuchKey}
34
35
  # * {NoSuchUpload}
@@ -61,6 +62,26 @@ module Aws::S3
61
62
  end
62
63
  end
63
64
 
65
+ class InvalidObjectState < ServiceError
66
+
67
+ # @param [Seahorse::Client::RequestContext] context
68
+ # @param [String] message
69
+ # @param [Aws::S3::Types::InvalidObjectState] data
70
+ def initialize(context, message, data = Aws::EmptyStructure.new)
71
+ super(context, message, data)
72
+ end
73
+
74
+ # @return [String]
75
+ def storage_class
76
+ @data[:storage_class]
77
+ end
78
+
79
+ # @return [String]
80
+ def access_tier
81
+ @data[:access_tier]
82
+ end
83
+ end
84
+
64
85
  class NoSuchBucket < ServiceError
65
86
 
66
87
  # @param [Seahorse::Client::RequestContext] context
@@ -91,6 +91,12 @@ module Aws::S3
91
91
  data[:restore]
92
92
  end
93
93
 
94
+ # The archive state of the head object.
95
+ # @return [String]
96
+ def archive_status
97
+ data[:archive_status]
98
+ end
99
+
94
100
  # Last modified date of the object
95
101
  # @return [Time]
96
102
  def last_modified
@@ -2305,6 +2305,32 @@ module Aws::S3
2305
2305
  include Aws::Structure
2306
2306
  end
2307
2307
 
2308
+ # @note When making an API call, you may pass DeleteBucketIntelligentTieringConfigurationRequest
2309
+ # data as a hash:
2310
+ #
2311
+ # {
2312
+ # bucket: "BucketName", # required
2313
+ # id: "IntelligentTieringId", # required
2314
+ # }
2315
+ #
2316
+ # @!attribute [rw] bucket
2317
+ # The name of the Amazon S3 bucket whose configuration you want to
2318
+ # modify or retrieve.
2319
+ # @return [String]
2320
+ #
2321
+ # @!attribute [rw] id
2322
+ # The ID used to identify the S3 Intelligent-Tiering configuration.
2323
+ # @return [String]
2324
+ #
2325
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketIntelligentTieringConfigurationRequest AWS API Documentation
2326
+ #
2327
+ class DeleteBucketIntelligentTieringConfigurationRequest < Struct.new(
2328
+ :bucket,
2329
+ :id)
2330
+ SENSITIVE = []
2331
+ include Aws::Structure
2332
+ end
2333
+
2308
2334
  # @note When making an API call, you may pass DeleteBucketInventoryConfigurationRequest
2309
2335
  # data as a hash:
2310
2336
  #
@@ -2413,6 +2439,9 @@ module Aws::S3
2413
2439
  # @return [String]
2414
2440
  #
2415
2441
  # @!attribute [rw] expected_bucket_owner
2442
+ # The account id of the expected bucket owner. If the bucket is owned
2443
+ # by a different account, the request will fail with an HTTP `403
2444
+ # (Access Denied)` error.
2416
2445
  # @return [String]
2417
2446
  #
2418
2447
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketOwnershipControlsRequest AWS API Documentation
@@ -2595,25 +2624,28 @@ module Aws::S3
2595
2624
  include Aws::Structure
2596
2625
  end
2597
2626
 
2598
- # Specifies whether Amazon S3 replicates the delete markers. If you
2599
- # specify a `Filter`, you must specify this element. However, in the
2600
- # latest version of replication configuration (when `Filter` is
2601
- # specified), Amazon S3 doesn't replicate delete markers. Therefore,
2602
- # the `DeleteMarkerReplication` element can contain only
2603
- # &lt;Status&gt;Disabled&lt;/Status&gt;. For an example configuration,
2604
- # see [Basic Rule Configuration][1].
2627
+ # Specifies whether Amazon S3 replicates delete markers. If you specify
2628
+ # a `Filter` in your replication configuration, you must also include a
2629
+ # `DeleteMarkerReplication` element. If your `Filter` includes a `Tag`
2630
+ # element, the `DeleteMarkerReplication` `Status` must be set to
2631
+ # Disabled, because Amazon S3 does not support replicating delete
2632
+ # markers for tag-based rules. For an example configuration, see [Basic
2633
+ # Rule Configuration][1].
2634
+ #
2635
+ # For more information about delete marker replication, see [Basic Rule
2636
+ # Configuration][2].
2605
2637
  #
2606
- # <note markdown="1"> If you don't specify the `Filter` element, Amazon S3 assumes that the
2607
- # replication configuration is the earlier version, V1. In the earlier
2608
- # version, Amazon S3 handled replication of delete markers differently.
2609
- # For more information, see [Backward Compatibility][2].
2638
+ # <note markdown="1"> If you are using an earlier version of the replication configuration,
2639
+ # Amazon S3 handles replication of delete markers differently. For more
2640
+ # information, see [Backward Compatibility][3].
2610
2641
  #
2611
2642
  # </note>
2612
2643
  #
2613
2644
  #
2614
2645
  #
2615
2646
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config
2616
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations
2647
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html
2648
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations
2617
2649
  #
2618
2650
  # @note When making an API call, you may pass DeleteMarkerReplication
2619
2651
  # data as a hash:
@@ -2625,8 +2657,7 @@ module Aws::S3
2625
2657
  # @!attribute [rw] status
2626
2658
  # Indicates whether to replicate delete markers.
2627
2659
  #
2628
- # <note markdown="1"> In the current implementation, Amazon S3 doesn't replicate the
2629
- # delete markers. The status must be `Disabled`.
2660
+ # <note markdown="1"> Indicates whether to replicate delete markers.
2630
2661
  #
2631
2662
  # </note>
2632
2663
  # @return [String]
@@ -3039,7 +3070,7 @@ module Aws::S3
3039
3070
  # },
3040
3071
  # metrics: {
3041
3072
  # status: "Enabled", # required, accepts Enabled, Disabled
3042
- # event_threshold: { # required
3073
+ # event_threshold: {
3043
3074
  # minutes: 1,
3044
3075
  # },
3045
3076
  # },
@@ -3102,8 +3133,7 @@ module Aws::S3
3102
3133
  #
3103
3134
  # @!attribute [rw] metrics
3104
3135
  # A container specifying replication metrics-related settings enabling
3105
- # metrics and Amazon S3 events for S3 Replication Time Control (S3
3106
- # RTC). Must be specified together with a `ReplicationTime` block.
3136
+ # replication metrics and events.
3107
3137
  # @return [Types::Metrics]
3108
3138
  #
3109
3139
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Destination AWS API Documentation
@@ -4326,6 +4356,44 @@ module Aws::S3
4326
4356
  include Aws::Structure
4327
4357
  end
4328
4358
 
4359
+ # @!attribute [rw] intelligent_tiering_configuration
4360
+ # Container for S3 Intelligent-Tiering configuration.
4361
+ # @return [Types::IntelligentTieringConfiguration]
4362
+ #
4363
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketIntelligentTieringConfigurationOutput AWS API Documentation
4364
+ #
4365
+ class GetBucketIntelligentTieringConfigurationOutput < Struct.new(
4366
+ :intelligent_tiering_configuration)
4367
+ SENSITIVE = []
4368
+ include Aws::Structure
4369
+ end
4370
+
4371
+ # @note When making an API call, you may pass GetBucketIntelligentTieringConfigurationRequest
4372
+ # data as a hash:
4373
+ #
4374
+ # {
4375
+ # bucket: "BucketName", # required
4376
+ # id: "IntelligentTieringId", # required
4377
+ # }
4378
+ #
4379
+ # @!attribute [rw] bucket
4380
+ # The name of the Amazon S3 bucket whose configuration you want to
4381
+ # modify or retrieve.
4382
+ # @return [String]
4383
+ #
4384
+ # @!attribute [rw] id
4385
+ # The ID used to identify the S3 Intelligent-Tiering configuration.
4386
+ # @return [String]
4387
+ #
4388
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketIntelligentTieringConfigurationRequest AWS API Documentation
4389
+ #
4390
+ class GetBucketIntelligentTieringConfigurationRequest < Struct.new(
4391
+ :bucket,
4392
+ :id)
4393
+ SENSITIVE = []
4394
+ include Aws::Structure
4395
+ end
4396
+
4329
4397
  # @!attribute [rw] inventory_configuration
4330
4398
  # Specifies the inventory configuration.
4331
4399
  # @return [Types::InventoryConfiguration]
@@ -4643,6 +4711,9 @@ module Aws::S3
4643
4711
  # @return [String]
4644
4712
  #
4645
4713
  # @!attribute [rw] expected_bucket_owner
4714
+ # The account id of the expected bucket owner. If the bucket is owned
4715
+ # by a different account, the request will fail with an HTTP `403
4716
+ # (Access Denied)` error.
4646
4717
  # @return [String]
4647
4718
  #
4648
4719
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControlsRequest AWS API Documentation
@@ -5847,7 +5918,7 @@ module Aws::S3
5847
5918
  # }
5848
5919
  #
5849
5920
  # @!attribute [rw] tier
5850
- # S3 Glacier retrieval tier at which the restore will be processed.
5921
+ # Retrieval tier at which the restore will be processed.
5851
5922
  # @return [String]
5852
5923
  #
5853
5924
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GlacierJobParameters AWS API Documentation
@@ -6055,6 +6126,10 @@ module Aws::S3
6055
6126
  # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-transition-general-considerations
6056
6127
  # @return [String]
6057
6128
  #
6129
+ # @!attribute [rw] archive_status
6130
+ # The archive state of the head object.
6131
+ # @return [String]
6132
+ #
6058
6133
  # @!attribute [rw] last_modified
6059
6134
  # Last modified date of the object
6060
6135
  # @return [Time]
@@ -6240,6 +6315,7 @@ module Aws::S3
6240
6315
  :accept_ranges,
6241
6316
  :expiration,
6242
6317
  :restore,
6318
+ :archive_status,
6243
6319
  :last_modified,
6244
6320
  :content_length,
6245
6321
  :etag,
@@ -6520,6 +6596,177 @@ module Aws::S3
6520
6596
  include Aws::Structure
6521
6597
  end
6522
6598
 
6599
+ # A container for specifying S3 Intelligent-Tiering filters. The filters
6600
+ # determine the subset of objects to which the rule applies.
6601
+ #
6602
+ # @note When making an API call, you may pass IntelligentTieringAndOperator
6603
+ # data as a hash:
6604
+ #
6605
+ # {
6606
+ # prefix: "Prefix",
6607
+ # tags: [
6608
+ # {
6609
+ # key: "ObjectKey", # required
6610
+ # value: "Value", # required
6611
+ # },
6612
+ # ],
6613
+ # }
6614
+ #
6615
+ # @!attribute [rw] prefix
6616
+ # An object key name prefix that identifies the subset of objects to
6617
+ # which the configuration applies.
6618
+ # @return [String]
6619
+ #
6620
+ # @!attribute [rw] tags
6621
+ # All of these tags must exist in the object's tag set in order for
6622
+ # the configuration to apply.
6623
+ # @return [Array<Types::Tag>]
6624
+ #
6625
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/IntelligentTieringAndOperator AWS API Documentation
6626
+ #
6627
+ class IntelligentTieringAndOperator < Struct.new(
6628
+ :prefix,
6629
+ :tags)
6630
+ SENSITIVE = []
6631
+ include Aws::Structure
6632
+ end
6633
+
6634
+ # Specifies the S3 Intelligent-Tiering configuration for an Amazon S3
6635
+ # bucket.
6636
+ #
6637
+ # For information about the S3 Intelligent-Tiering storage class, see
6638
+ # [Storage class for automatically optimizing frequently and
6639
+ # infrequently accessed objects][1].
6640
+ #
6641
+ #
6642
+ #
6643
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access
6644
+ #
6645
+ # @note When making an API call, you may pass IntelligentTieringConfiguration
6646
+ # data as a hash:
6647
+ #
6648
+ # {
6649
+ # id: "IntelligentTieringId", # required
6650
+ # filter: {
6651
+ # prefix: "Prefix",
6652
+ # tag: {
6653
+ # key: "ObjectKey", # required
6654
+ # value: "Value", # required
6655
+ # },
6656
+ # and: {
6657
+ # prefix: "Prefix",
6658
+ # tags: [
6659
+ # {
6660
+ # key: "ObjectKey", # required
6661
+ # value: "Value", # required
6662
+ # },
6663
+ # ],
6664
+ # },
6665
+ # },
6666
+ # status: "Enabled", # required, accepts Enabled, Disabled
6667
+ # tierings: [ # required
6668
+ # {
6669
+ # days: 1, # required
6670
+ # access_tier: "ARCHIVE_ACCESS", # required, accepts ARCHIVE_ACCESS, DEEP_ARCHIVE_ACCESS
6671
+ # },
6672
+ # ],
6673
+ # }
6674
+ #
6675
+ # @!attribute [rw] id
6676
+ # The ID used to identify the S3 Intelligent-Tiering configuration.
6677
+ # @return [String]
6678
+ #
6679
+ # @!attribute [rw] filter
6680
+ # Specifies a bucket filter. The configuration only includes objects
6681
+ # that meet the filter's criteria.
6682
+ # @return [Types::IntelligentTieringFilter]
6683
+ #
6684
+ # @!attribute [rw] status
6685
+ # Specifies the status of the configuration.
6686
+ # @return [String]
6687
+ #
6688
+ # @!attribute [rw] tierings
6689
+ # Specifies the S3 Intelligent-Tiering storage class tier of the
6690
+ # configuration.
6691
+ # @return [Array<Types::Tiering>]
6692
+ #
6693
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/IntelligentTieringConfiguration AWS API Documentation
6694
+ #
6695
+ class IntelligentTieringConfiguration < Struct.new(
6696
+ :id,
6697
+ :filter,
6698
+ :status,
6699
+ :tierings)
6700
+ SENSITIVE = []
6701
+ include Aws::Structure
6702
+ end
6703
+
6704
+ # The `Filter` is used to identify objects that the S3
6705
+ # Intelligent-Tiering configuration applies to.
6706
+ #
6707
+ # @note When making an API call, you may pass IntelligentTieringFilter
6708
+ # data as a hash:
6709
+ #
6710
+ # {
6711
+ # prefix: "Prefix",
6712
+ # tag: {
6713
+ # key: "ObjectKey", # required
6714
+ # value: "Value", # required
6715
+ # },
6716
+ # and: {
6717
+ # prefix: "Prefix",
6718
+ # tags: [
6719
+ # {
6720
+ # key: "ObjectKey", # required
6721
+ # value: "Value", # required
6722
+ # },
6723
+ # ],
6724
+ # },
6725
+ # }
6726
+ #
6727
+ # @!attribute [rw] prefix
6728
+ # An object key name prefix that identifies the subset of objects to
6729
+ # which the rule applies.
6730
+ # @return [String]
6731
+ #
6732
+ # @!attribute [rw] tag
6733
+ # A container of a key value name pair.
6734
+ # @return [Types::Tag]
6735
+ #
6736
+ # @!attribute [rw] and
6737
+ # A conjunction (logical AND) of predicates, which is used in
6738
+ # evaluating a metrics filter. The operator must have at least two
6739
+ # predicates, and an object must match all of the predicates in order
6740
+ # for the filter to apply.
6741
+ # @return [Types::IntelligentTieringAndOperator]
6742
+ #
6743
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/IntelligentTieringFilter AWS API Documentation
6744
+ #
6745
+ class IntelligentTieringFilter < Struct.new(
6746
+ :prefix,
6747
+ :tag,
6748
+ :and)
6749
+ SENSITIVE = []
6750
+ include Aws::Structure
6751
+ end
6752
+
6753
+ # Object is archived and inaccessible until restored.
6754
+ #
6755
+ # @!attribute [rw] storage_class
6756
+ # @return [String]
6757
+ #
6758
+ # @!attribute [rw] access_tier
6759
+ # @return [String]
6760
+ #
6761
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InvalidObjectState AWS API Documentation
6762
+ #
6763
+ class InvalidObjectState < Struct.new(
6764
+ :storage_class,
6765
+ :access_tier)
6766
+ SENSITIVE = []
6767
+ include Aws::Structure
6768
+ end
6769
+
6523
6770
  # Specifies the inventory configuration for an Amazon S3 bucket. For
6524
6771
  # more information, see [GET Bucket inventory][1] in the *Amazon Simple
6525
6772
  # Storage Service API Reference*.
@@ -7253,6 +7500,67 @@ module Aws::S3
7253
7500
  include Aws::Structure
7254
7501
  end
7255
7502
 
7503
+ # @!attribute [rw] is_truncated
7504
+ # Indicates whether the returned list of analytics configurations is
7505
+ # complete. A value of true indicates that the list is not complete
7506
+ # and the NextContinuationToken will be provided for a subsequent
7507
+ # request.
7508
+ # @return [Boolean]
7509
+ #
7510
+ # @!attribute [rw] continuation_token
7511
+ # The ContinuationToken that represents a placeholder from where this
7512
+ # request should begin.
7513
+ # @return [String]
7514
+ #
7515
+ # @!attribute [rw] next_continuation_token
7516
+ # The marker used to continue this inventory configuration listing.
7517
+ # Use the `NextContinuationToken` from this response to continue the
7518
+ # listing in a subsequent request. The continuation token is an opaque
7519
+ # value that Amazon S3 understands.
7520
+ # @return [String]
7521
+ #
7522
+ # @!attribute [rw] intelligent_tiering_configuration_list
7523
+ # The list of S3 Intelligent-Tiering configurations for a bucket.
7524
+ # @return [Array<Types::IntelligentTieringConfiguration>]
7525
+ #
7526
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketIntelligentTieringConfigurationsOutput AWS API Documentation
7527
+ #
7528
+ class ListBucketIntelligentTieringConfigurationsOutput < Struct.new(
7529
+ :is_truncated,
7530
+ :continuation_token,
7531
+ :next_continuation_token,
7532
+ :intelligent_tiering_configuration_list)
7533
+ SENSITIVE = []
7534
+ include Aws::Structure
7535
+ end
7536
+
7537
+ # @note When making an API call, you may pass ListBucketIntelligentTieringConfigurationsRequest
7538
+ # data as a hash:
7539
+ #
7540
+ # {
7541
+ # bucket: "BucketName", # required
7542
+ # continuation_token: "Token",
7543
+ # }
7544
+ #
7545
+ # @!attribute [rw] bucket
7546
+ # The name of the Amazon S3 bucket whose configuration you want to
7547
+ # modify or retrieve.
7548
+ # @return [String]
7549
+ #
7550
+ # @!attribute [rw] continuation_token
7551
+ # The ContinuationToken that represents a placeholder from where this
7552
+ # request should begin.
7553
+ # @return [String]
7554
+ #
7555
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketIntelligentTieringConfigurationsRequest AWS API Documentation
7556
+ #
7557
+ class ListBucketIntelligentTieringConfigurationsRequest < Struct.new(
7558
+ :bucket,
7559
+ :continuation_token)
7560
+ SENSITIVE = []
7561
+ include Aws::Structure
7562
+ end
7563
+
7256
7564
  # @!attribute [rw] continuation_token
7257
7565
  # If sent in the request, the marker that is used as a starting point
7258
7566
  # for this inventory configuration list response.
@@ -8506,15 +8814,14 @@ module Aws::S3
8506
8814
  end
8507
8815
 
8508
8816
  # A container specifying replication metrics-related settings enabling
8509
- # metrics and Amazon S3 events for S3 Replication Time Control (S3 RTC).
8510
- # Must be specified together with a `ReplicationTime` block.
8817
+ # replication metrics and events.
8511
8818
  #
8512
8819
  # @note When making an API call, you may pass Metrics
8513
8820
  # data as a hash:
8514
8821
  #
8515
8822
  # {
8516
8823
  # status: "Enabled", # required, accepts Enabled, Disabled
8517
- # event_threshold: { # required
8824
+ # event_threshold: {
8518
8825
  # minutes: 1,
8519
8826
  # },
8520
8827
  # }
@@ -9560,8 +9867,8 @@ module Aws::S3
9560
9867
  # @!attribute [rw] restrict_public_buckets
9561
9868
  # Specifies whether Amazon S3 should restrict public bucket policies
9562
9869
  # for this bucket. Setting this element to `TRUE` restricts access to
9563
- # this bucket to only AWS services and authorized users within this
9564
- # account if the bucket has a public policy.
9870
+ # this bucket to only AWS service principals and authorized users
9871
+ # within this account if the bucket has a public policy.
9565
9872
  #
9566
9873
  # Enabling this setting doesn't affect previously stored bucket
9567
9874
  # policies, except that public and cross-account access within any
@@ -9911,6 +10218,63 @@ module Aws::S3
9911
10218
  include Aws::Structure
9912
10219
  end
9913
10220
 
10221
+ # @note When making an API call, you may pass PutBucketIntelligentTieringConfigurationRequest
10222
+ # data as a hash:
10223
+ #
10224
+ # {
10225
+ # bucket: "BucketName", # required
10226
+ # id: "IntelligentTieringId", # required
10227
+ # intelligent_tiering_configuration: { # required
10228
+ # id: "IntelligentTieringId", # required
10229
+ # filter: {
10230
+ # prefix: "Prefix",
10231
+ # tag: {
10232
+ # key: "ObjectKey", # required
10233
+ # value: "Value", # required
10234
+ # },
10235
+ # and: {
10236
+ # prefix: "Prefix",
10237
+ # tags: [
10238
+ # {
10239
+ # key: "ObjectKey", # required
10240
+ # value: "Value", # required
10241
+ # },
10242
+ # ],
10243
+ # },
10244
+ # },
10245
+ # status: "Enabled", # required, accepts Enabled, Disabled
10246
+ # tierings: [ # required
10247
+ # {
10248
+ # days: 1, # required
10249
+ # access_tier: "ARCHIVE_ACCESS", # required, accepts ARCHIVE_ACCESS, DEEP_ARCHIVE_ACCESS
10250
+ # },
10251
+ # ],
10252
+ # },
10253
+ # }
10254
+ #
10255
+ # @!attribute [rw] bucket
10256
+ # The name of the Amazon S3 bucket whose configuration you want to
10257
+ # modify or retrieve.
10258
+ # @return [String]
10259
+ #
10260
+ # @!attribute [rw] id
10261
+ # The ID used to identify the S3 Intelligent-Tiering configuration.
10262
+ # @return [String]
10263
+ #
10264
+ # @!attribute [rw] intelligent_tiering_configuration
10265
+ # Container for S3 Intelligent-Tiering configuration.
10266
+ # @return [Types::IntelligentTieringConfiguration]
10267
+ #
10268
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketIntelligentTieringConfigurationRequest AWS API Documentation
10269
+ #
10270
+ class PutBucketIntelligentTieringConfigurationRequest < Struct.new(
10271
+ :bucket,
10272
+ :id,
10273
+ :intelligent_tiering_configuration)
10274
+ SENSITIVE = []
10275
+ include Aws::Structure
10276
+ end
10277
+
9914
10278
  # @note When making an API call, you may pass PutBucketInventoryConfigurationRequest
9915
10279
  # data as a hash:
9916
10280
  #
@@ -10407,6 +10771,9 @@ module Aws::S3
10407
10771
  # @return [String]
10408
10772
  #
10409
10773
  # @!attribute [rw] expected_bucket_owner
10774
+ # The account id of the expected bucket owner. If the bucket is owned
10775
+ # by a different account, the request will fail with an HTTP `403
10776
+ # (Access Denied)` error.
10410
10777
  # @return [String]
10411
10778
  #
10412
10779
  # @!attribute [rw] ownership_controls
@@ -10527,7 +10894,7 @@ module Aws::S3
10527
10894
  # },
10528
10895
  # metrics: {
10529
10896
  # status: "Enabled", # required, accepts Enabled, Disabled
10530
- # event_threshold: { # required
10897
+ # event_threshold: {
10531
10898
  # minutes: 1,
10532
10899
  # },
10533
10900
  # },
@@ -10563,6 +10930,7 @@ module Aws::S3
10563
10930
  # @return [Types::ReplicationConfiguration]
10564
10931
  #
10565
10932
  # @!attribute [rw] token
10933
+ # A token to allow Object Lock to be enabled for an existing bucket.
10566
10934
  # @return [String]
10567
10935
  #
10568
10936
  # @!attribute [rw] expected_bucket_owner
@@ -12133,7 +12501,7 @@ module Aws::S3
12133
12501
  # },
12134
12502
  # metrics: {
12135
12503
  # status: "Enabled", # required, accepts Enabled, Disabled
12136
- # event_threshold: { # required
12504
+ # event_threshold: {
12137
12505
  # minutes: 1,
12138
12506
  # },
12139
12507
  # },
@@ -12224,7 +12592,7 @@ module Aws::S3
12224
12592
  # },
12225
12593
  # metrics: {
12226
12594
  # status: "Enabled", # required, accepts Enabled, Disabled
12227
- # event_threshold: { # required
12595
+ # event_threshold: {
12228
12596
  # minutes: 1,
12229
12597
  # },
12230
12598
  # },
@@ -12252,9 +12620,12 @@ module Aws::S3
12252
12620
  # * Same object qualify tag-based filter criteria specified in
12253
12621
  # multiple rules
12254
12622
  #
12255
- # For more information, see [Replication](
12256
- # https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html) in
12257
- # the *Amazon Simple Storage Service Developer Guide*.
12623
+ # For more information, see [Replication][1] in the *Amazon Simple
12624
+ # Storage Service Developer Guide*.
12625
+ #
12626
+ #
12627
+ #
12628
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication.html
12258
12629
  # @return [Integer]
12259
12630
  #
12260
12631
  # @!attribute [rw] prefix
@@ -12293,25 +12664,28 @@ module Aws::S3
12293
12664
  # @return [Types::Destination]
12294
12665
  #
12295
12666
  # @!attribute [rw] delete_marker_replication
12296
- # Specifies whether Amazon S3 replicates the delete markers. If you
12297
- # specify a `Filter`, you must specify this element. However, in the
12298
- # latest version of replication configuration (when `Filter` is
12299
- # specified), Amazon S3 doesn't replicate delete markers. Therefore,
12300
- # the `DeleteMarkerReplication` element can contain only
12301
- # &lt;Status&gt;Disabled&lt;/Status&gt;. For an example configuration,
12302
- # see [Basic Rule Configuration][1].
12303
- #
12304
- # <note markdown="1"> If you don't specify the `Filter` element, Amazon S3 assumes that
12305
- # the replication configuration is the earlier version, V1. In the
12306
- # earlier version, Amazon S3 handled replication of delete markers
12307
- # differently. For more information, see [Backward Compatibility][2].
12667
+ # Specifies whether Amazon S3 replicates delete markers. If you
12668
+ # specify a `Filter` in your replication configuration, you must also
12669
+ # include a `DeleteMarkerReplication` element. If your `Filter`
12670
+ # includes a `Tag` element, the `DeleteMarkerReplication` `Status`
12671
+ # must be set to Disabled, because Amazon S3 does not support
12672
+ # replicating delete markers for tag-based rules. For an example
12673
+ # configuration, see [Basic Rule Configuration][1].
12674
+ #
12675
+ # For more information about delete marker replication, see [Basic
12676
+ # Rule Configuration][2].
12677
+ #
12678
+ # <note markdown="1"> If you are using an earlier version of the replication
12679
+ # configuration, Amazon S3 handles replication of delete markers
12680
+ # differently. For more information, see [Backward Compatibility][3].
12308
12681
  #
12309
12682
  # </note>
12310
12683
  #
12311
12684
  #
12312
12685
  #
12313
12686
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-config-min-rule-config
12314
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations
12687
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/delete-marker-replication.html
12688
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/replication-add-config.html#replication-backward-compat-considerations
12315
12689
  # @return [Types::DeleteMarkerReplication]
12316
12690
  #
12317
12691
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ReplicationRule AWS API Documentation
@@ -12643,7 +13017,7 @@ module Aws::S3
12643
13017
  # }
12644
13018
  #
12645
13019
  # @!attribute [rw] bucket
12646
- # The bucket name or containing the object to restore.
13020
+ # The bucket name containing the object to restore.
12647
13021
  #
12648
13022
  # When using this API with an access point, you must direct requests
12649
13023
  # to the access point hostname. The access point hostname takes the
@@ -12802,6 +13176,9 @@ module Aws::S3
12802
13176
  # @!attribute [rw] days
12803
13177
  # Lifetime of the active copy in days. Do not use with restores that
12804
13178
  # specify `OutputLocation`.
13179
+ #
13180
+ # The Days element is required for regular restores, and must not be
13181
+ # provided for select requests.
12805
13182
  # @return [Integer]
12806
13183
  #
12807
13184
  # @!attribute [rw] glacier_job_parameters
@@ -12814,7 +13191,7 @@ module Aws::S3
12814
13191
  # @return [String]
12815
13192
  #
12816
13193
  # @!attribute [rw] tier
12817
- # S3 Glacier retrieval tier at which the restore will be processed.
13194
+ # Retrieval tier at which the restore will be processed.
12818
13195
  # @return [String]
12819
13196
  #
12820
13197
  # @!attribute [rw] description
@@ -13806,6 +14183,45 @@ module Aws::S3
13806
14183
  include Aws::Structure
13807
14184
  end
13808
14185
 
14186
+ # The S3 Intelligent-Tiering storage class is designed to optimize
14187
+ # storage costs by automatically moving data to the most cost-effective
14188
+ # storage access tier, without additional operational overhead.
14189
+ #
14190
+ # @note When making an API call, you may pass Tiering
14191
+ # data as a hash:
14192
+ #
14193
+ # {
14194
+ # days: 1, # required
14195
+ # access_tier: "ARCHIVE_ACCESS", # required, accepts ARCHIVE_ACCESS, DEEP_ARCHIVE_ACCESS
14196
+ # }
14197
+ #
14198
+ # @!attribute [rw] days
14199
+ # The number of days that you want your archived data to be
14200
+ # accessible. The minimum number of days specified in the restore
14201
+ # request must be at least 90 days. If a smaller value is specifed it
14202
+ # will be ignored.
14203
+ # @return [Integer]
14204
+ #
14205
+ # @!attribute [rw] access_tier
14206
+ # S3 Intelligent-Tiering access tier. See [Storage class for
14207
+ # automatically optimizing frequently and infrequently accessed
14208
+ # objects][1] for a list of access tiers in the S3 Intelligent-Tiering
14209
+ # storage class.
14210
+ #
14211
+ #
14212
+ #
14213
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html#sc-dynamic-data-access
14214
+ # @return [String]
14215
+ #
14216
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Tiering AWS API Documentation
14217
+ #
14218
+ class Tiering < Struct.new(
14219
+ :days,
14220
+ :access_tier)
14221
+ SENSITIVE = []
14222
+ include Aws::Structure
14223
+ end
14224
+
13809
14225
  # A container for specifying the configuration for publication of
13810
14226
  # messages to an Amazon Simple Notification Service (Amazon SNS) topic
13811
14227
  # when Amazon S3 detects specified events.