aws-sdk-s3 1.83.2 → 1.84.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.