aws-sdk-s3 1.26.0 → 1.27.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -268,7 +268,7 @@ module Aws::S3
268
268
  # metadata_directive: "COPY", # accepts COPY, REPLACE
269
269
  # tagging_directive: "COPY", # accepts COPY, REPLACE
270
270
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
271
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
271
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
272
272
  # website_redirect_location: "WebsiteRedirectLocation",
273
273
  # sse_customer_algorithm: "SSECustomerAlgorithm",
274
274
  # sse_customer_key: "SSECustomerKey",
@@ -279,6 +279,9 @@ module Aws::S3
279
279
  # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5",
280
280
  # request_payer: "requester", # accepts requester
281
281
  # tagging: "TaggingHeader",
282
+ # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
283
+ # object_lock_retain_until_date: Time.now,
284
+ # object_lock_legal_hold_status: "ON", # accepts ON, OFF
282
285
  # })
283
286
  # @param [Hash] options ({})
284
287
  # @option options [String] :acl
@@ -376,6 +379,13 @@ module Aws::S3
376
379
  # The tag-set for the object destination object this value must be used
377
380
  # in conjunction with the TaggingDirective. The tag-set must be encoded
378
381
  # as URL Query parameters
382
+ # @option options [String] :object_lock_mode
383
+ # The Object Lock mode that you want to apply to the copied object.
384
+ # @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
385
+ # The date and time when you want the copied object's Object Lock to
386
+ # expire.
387
+ # @option options [String] :object_lock_legal_hold_status
388
+ # Specifies whether you want to apply a Legal Hold to the copied object.
379
389
  # @return [Types::CopyObjectOutput]
380
390
  def copy_from(options = {})
381
391
  options = options.merge(
@@ -392,6 +402,7 @@ module Aws::S3
392
402
  # mfa: "MFA",
393
403
  # version_id: "ObjectVersionId",
394
404
  # request_payer: "requester", # accepts requester
405
+ # bypass_governance_retention: false,
395
406
  # })
396
407
  # @param [Hash] options ({})
397
408
  # @option options [String] :mfa
@@ -405,6 +416,7 @@ module Aws::S3
405
416
  # requests. Documentation on downloading objects from requester pays
406
417
  # buckets can be found at
407
418
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
419
+ # @option options [Boolean] :bypass_governance_retention
408
420
  # @return [Types::DeleteObjectOutput]
409
421
  def delete(options = {})
410
422
  options = options.merge(
@@ -519,7 +531,7 @@ module Aws::S3
519
531
  # "MetadataKey" => "MetadataValue",
520
532
  # },
521
533
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
522
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
534
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
523
535
  # website_redirect_location: "WebsiteRedirectLocation",
524
536
  # sse_customer_algorithm: "SSECustomerAlgorithm",
525
537
  # sse_customer_key: "SSECustomerKey",
@@ -527,6 +539,9 @@ module Aws::S3
527
539
  # ssekms_key_id: "SSEKMSKeyId",
528
540
  # request_payer: "requester", # accepts requester
529
541
  # tagging: "TaggingHeader",
542
+ # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
543
+ # object_lock_retain_until_date: Time.now,
544
+ # object_lock_legal_hold_status: "ON", # accepts ON, OFF
530
545
  # })
531
546
  # @param [Hash] options ({})
532
547
  # @option options [String] :acl
@@ -593,6 +608,14 @@ module Aws::S3
593
608
  # @option options [String] :tagging
594
609
  # The tag-set for the object. The tag-set must be encoded as URL Query
595
610
  # parameters
611
+ # @option options [String] :object_lock_mode
612
+ # Specifies the Object Lock mode that you want to apply to the uploaded
613
+ # object.
614
+ # @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
615
+ # Specifies the date and time when you want the Object Lock to expire.
616
+ # @option options [String] :object_lock_legal_hold_status
617
+ # Specifies whether you want to apply a Legal Hold to the uploaded
618
+ # object.
596
619
  # @return [MultipartUpload]
597
620
  def initiate_multipart_upload(options = {})
598
621
  options = options.merge(
@@ -629,7 +652,7 @@ module Aws::S3
629
652
  # "MetadataKey" => "MetadataValue",
630
653
  # },
631
654
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
632
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
655
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
633
656
  # website_redirect_location: "WebsiteRedirectLocation",
634
657
  # sse_customer_algorithm: "SSECustomerAlgorithm",
635
658
  # sse_customer_key: "SSECustomerKey",
@@ -637,6 +660,9 @@ module Aws::S3
637
660
  # ssekms_key_id: "SSEKMSKeyId",
638
661
  # request_payer: "requester", # accepts requester
639
662
  # tagging: "TaggingHeader",
663
+ # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
664
+ # object_lock_retain_until_date: Time.now,
665
+ # object_lock_legal_hold_status: "ON", # accepts ON, OFF
640
666
  # })
641
667
  # @param [Hash] options ({})
642
668
  # @option options [String] :acl
@@ -710,6 +736,12 @@ module Aws::S3
710
736
  # @option options [String] :tagging
711
737
  # The tag-set for the object. The tag-set must be encoded as URL Query
712
738
  # parameters. (For example, "Key1=Value1")
739
+ # @option options [String] :object_lock_mode
740
+ # The Object Lock mode that you want to apply to this object.
741
+ # @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
742
+ # The date and time when you want this object's Object Lock to expire.
743
+ # @option options [String] :object_lock_legal_hold_status
744
+ # The Legal Hold status that you want to apply to the specified object.
713
745
  # @return [Types::PutObjectOutput]
714
746
  def put(options = {})
715
747
  options = options.merge(
@@ -801,7 +833,7 @@ module Aws::S3
801
833
  # value: "MetadataValue",
802
834
  # },
803
835
  # ],
804
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
836
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
805
837
  # },
806
838
  # },
807
839
  # },
@@ -945,6 +977,7 @@ module Aws::S3
945
977
  # object_summary.batch_delete!({
946
978
  # mfa: "MFA",
947
979
  # request_payer: "requester", # accepts requester
980
+ # bypass_governance_retention: false,
948
981
  # })
949
982
  # @param options ({})
950
983
  # @option options [String] :mfa
@@ -956,6 +989,10 @@ module Aws::S3
956
989
  # requests. Documentation on downloading objects from requester pays
957
990
  # buckets can be found at
958
991
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
992
+ # @option options [Boolean] :bypass_governance_retention
993
+ # Specifies whether you want to delete this object even if it has a
994
+ # Governance-type Object Lock in place. You must have sufficient
995
+ # permissions to perform this operation.
959
996
  # @return [void]
960
997
  def batch_delete!(options = {})
961
998
  batch_enum.each do |batch|
@@ -225,6 +225,7 @@ module Aws::S3
225
225
  # object_version.delete({
226
226
  # mfa: "MFA",
227
227
  # request_payer: "requester", # accepts requester
228
+ # bypass_governance_retention: false,
228
229
  # })
229
230
  # @param [Hash] options ({})
230
231
  # @option options [String] :mfa
@@ -236,6 +237,7 @@ module Aws::S3
236
237
  # requests. Documentation on downloading objects from requester pays
237
238
  # buckets can be found at
238
239
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
240
+ # @option options [Boolean] :bypass_governance_retention
239
241
  # @return [Types::DeleteObjectOutput]
240
242
  def delete(options = {})
241
243
  options = options.merge(
@@ -463,6 +465,7 @@ module Aws::S3
463
465
  # object_version.batch_delete!({
464
466
  # mfa: "MFA",
465
467
  # request_payer: "requester", # accepts requester
468
+ # bypass_governance_retention: false,
466
469
  # })
467
470
  # @param options ({})
468
471
  # @option options [String] :mfa
@@ -474,6 +477,10 @@ module Aws::S3
474
477
  # requests. Documentation on downloading objects from requester pays
475
478
  # buckets can be found at
476
479
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
480
+ # @option options [Boolean] :bypass_governance_retention
481
+ # Specifies whether you want to delete this object even if it has a
482
+ # Governance-type Object Lock in place. You must have sufficient
483
+ # permissions to perform this operation.
477
484
  # @return [void]
478
485
  def batch_delete!(options = {})
479
486
  batch_enum.each do |batch|
@@ -34,6 +34,7 @@ module Aws::S3
34
34
  # grant_read_acp: "GrantReadACP",
35
35
  # grant_write: "GrantWrite",
36
36
  # grant_write_acp: "GrantWriteACP",
37
+ # object_lock_enabled_for_bucket: false,
37
38
  # })
38
39
  # @param [Hash] options ({})
39
40
  # @option options [String] :acl
@@ -52,6 +53,9 @@ module Aws::S3
52
53
  # bucket.
53
54
  # @option options [String] :grant_write_acp
54
55
  # Allows grantee to write the ACL for the applicable bucket.
56
+ # @option options [Boolean] :object_lock_enabled_for_bucket
57
+ # Specifies whether you want S3 Object Lock to be enabled for the new
58
+ # bucket.
55
59
  # @return [Bucket]
56
60
  def create_bucket(options = {})
57
61
  resp = @client.create_bucket(options)
@@ -649,8 +649,8 @@ module Aws::S3
649
649
  #
650
650
  # {
651
651
  # id: "NotificationId",
652
- # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
653
- # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
652
+ # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
653
+ # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
654
654
  # cloud_function: "CloudFunction",
655
655
  # invocation_role: "CloudFunctionInvocationRole",
656
656
  # }
@@ -972,7 +972,7 @@ module Aws::S3
972
972
  # metadata_directive: "COPY", # accepts COPY, REPLACE
973
973
  # tagging_directive: "COPY", # accepts COPY, REPLACE
974
974
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
975
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
975
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
976
976
  # website_redirect_location: "WebsiteRedirectLocation",
977
977
  # sse_customer_algorithm: "SSECustomerAlgorithm",
978
978
  # sse_customer_key: "SSECustomerKey",
@@ -983,6 +983,9 @@ module Aws::S3
983
983
  # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5",
984
984
  # request_payer: "requester", # accepts requester
985
985
  # tagging: "TaggingHeader",
986
+ # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
987
+ # object_lock_retain_until_date: Time.now,
988
+ # object_lock_legal_hold_status: "ON", # accepts ON, OFF
986
989
  # }
987
990
  #
988
991
  # @!attribute [rw] acl
@@ -1150,6 +1153,20 @@ module Aws::S3
1150
1153
  # encoded as URL Query parameters
1151
1154
  # @return [String]
1152
1155
  #
1156
+ # @!attribute [rw] object_lock_mode
1157
+ # The Object Lock mode that you want to apply to the copied object.
1158
+ # @return [String]
1159
+ #
1160
+ # @!attribute [rw] object_lock_retain_until_date
1161
+ # The date and time when you want the copied object's Object Lock to
1162
+ # expire.
1163
+ # @return [Time]
1164
+ #
1165
+ # @!attribute [rw] object_lock_legal_hold_status
1166
+ # Specifies whether you want to apply a Legal Hold to the copied
1167
+ # object.
1168
+ # @return [String]
1169
+ #
1153
1170
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyObjectRequest AWS API Documentation
1154
1171
  #
1155
1172
  class CopyObjectRequest < Struct.new(
@@ -1185,7 +1202,10 @@ module Aws::S3
1185
1202
  :copy_source_sse_customer_key,
1186
1203
  :copy_source_sse_customer_key_md5,
1187
1204
  :request_payer,
1188
- :tagging)
1205
+ :tagging,
1206
+ :object_lock_mode,
1207
+ :object_lock_retain_until_date,
1208
+ :object_lock_legal_hold_status)
1189
1209
  include Aws::Structure
1190
1210
  end
1191
1211
 
@@ -1262,6 +1282,7 @@ module Aws::S3
1262
1282
  # grant_read_acp: "GrantReadACP",
1263
1283
  # grant_write: "GrantWrite",
1264
1284
  # grant_write_acp: "GrantWriteACP",
1285
+ # object_lock_enabled_for_bucket: false,
1265
1286
  # }
1266
1287
  #
1267
1288
  # @!attribute [rw] acl
@@ -1296,6 +1317,11 @@ module Aws::S3
1296
1317
  # Allows grantee to write the ACL for the applicable bucket.
1297
1318
  # @return [String]
1298
1319
  #
1320
+ # @!attribute [rw] object_lock_enabled_for_bucket
1321
+ # Specifies whether you want S3 Object Lock to be enabled for the new
1322
+ # bucket.
1323
+ # @return [Boolean]
1324
+ #
1299
1325
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucketRequest AWS API Documentation
1300
1326
  #
1301
1327
  class CreateBucketRequest < Struct.new(
@@ -1306,7 +1332,8 @@ module Aws::S3
1306
1332
  :grant_read,
1307
1333
  :grant_read_acp,
1308
1334
  :grant_write,
1309
- :grant_write_acp)
1335
+ :grant_write_acp,
1336
+ :object_lock_enabled_for_bucket)
1310
1337
  include Aws::Structure
1311
1338
  end
1312
1339
 
@@ -1397,7 +1424,7 @@ module Aws::S3
1397
1424
  # "MetadataKey" => "MetadataValue",
1398
1425
  # },
1399
1426
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
1400
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
1427
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
1401
1428
  # website_redirect_location: "WebsiteRedirectLocation",
1402
1429
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1403
1430
  # sse_customer_key: "SSECustomerKey",
@@ -1405,6 +1432,9 @@ module Aws::S3
1405
1432
  # ssekms_key_id: "SSEKMSKeyId",
1406
1433
  # request_payer: "requester", # accepts requester
1407
1434
  # tagging: "TaggingHeader",
1435
+ # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
1436
+ # object_lock_retain_until_date: Time.now,
1437
+ # object_lock_legal_hold_status: "ON", # accepts ON, OFF
1408
1438
  # }
1409
1439
  #
1410
1440
  # @!attribute [rw] acl
@@ -1520,6 +1550,20 @@ module Aws::S3
1520
1550
  # parameters
1521
1551
  # @return [String]
1522
1552
  #
1553
+ # @!attribute [rw] object_lock_mode
1554
+ # Specifies the Object Lock mode that you want to apply to the
1555
+ # uploaded object.
1556
+ # @return [String]
1557
+ #
1558
+ # @!attribute [rw] object_lock_retain_until_date
1559
+ # Specifies the date and time when you want the Object Lock to expire.
1560
+ # @return [Time]
1561
+ #
1562
+ # @!attribute [rw] object_lock_legal_hold_status
1563
+ # Specifies whether you want to apply a Legal Hold to the uploaded
1564
+ # object.
1565
+ # @return [String]
1566
+ #
1523
1567
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateMultipartUploadRequest AWS API Documentation
1524
1568
  #
1525
1569
  class CreateMultipartUploadRequest < Struct.new(
@@ -1545,7 +1589,46 @@ module Aws::S3
1545
1589
  :sse_customer_key_md5,
1546
1590
  :ssekms_key_id,
1547
1591
  :request_payer,
1548
- :tagging)
1592
+ :tagging,
1593
+ :object_lock_mode,
1594
+ :object_lock_retain_until_date,
1595
+ :object_lock_legal_hold_status)
1596
+ include Aws::Structure
1597
+ end
1598
+
1599
+ # The container element for specifying the default Object Lock retention
1600
+ # settings for new objects placed in the specified bucket.
1601
+ #
1602
+ # @note When making an API call, you may pass DefaultRetention
1603
+ # data as a hash:
1604
+ #
1605
+ # {
1606
+ # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
1607
+ # days: 1,
1608
+ # years: 1,
1609
+ # }
1610
+ #
1611
+ # @!attribute [rw] mode
1612
+ # The default Object Lock retention mode you want to apply to new
1613
+ # objects placed in the specified bucket.
1614
+ # @return [String]
1615
+ #
1616
+ # @!attribute [rw] days
1617
+ # The number of days that you want to specify for the default
1618
+ # retention period.
1619
+ # @return [Integer]
1620
+ #
1621
+ # @!attribute [rw] years
1622
+ # The number of years that you want to specify for the default
1623
+ # retention period.
1624
+ # @return [Integer]
1625
+ #
1626
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DefaultRetention AWS API Documentation
1627
+ #
1628
+ class DefaultRetention < Struct.new(
1629
+ :mode,
1630
+ :days,
1631
+ :years)
1549
1632
  include Aws::Structure
1550
1633
  end
1551
1634
 
@@ -1886,6 +1969,7 @@ module Aws::S3
1886
1969
  # mfa: "MFA",
1887
1970
  # version_id: "ObjectVersionId",
1888
1971
  # request_payer: "requester", # accepts requester
1972
+ # bypass_governance_retention: false,
1889
1973
  # }
1890
1974
  #
1891
1975
  # @!attribute [rw] bucket
@@ -1912,6 +1996,9 @@ module Aws::S3
1912
1996
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1913
1997
  # @return [String]
1914
1998
  #
1999
+ # @!attribute [rw] bypass_governance_retention
2000
+ # @return [Boolean]
2001
+ #
1915
2002
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectRequest AWS API Documentation
1916
2003
  #
1917
2004
  class DeleteObjectRequest < Struct.new(
@@ -1919,7 +2006,8 @@ module Aws::S3
1919
2006
  :key,
1920
2007
  :mfa,
1921
2008
  :version_id,
1922
- :request_payer)
2009
+ :request_payer,
2010
+ :bypass_governance_retention)
1923
2011
  include Aws::Structure
1924
2012
  end
1925
2013
 
@@ -1998,6 +2086,7 @@ module Aws::S3
1998
2086
  # },
1999
2087
  # mfa: "MFA",
2000
2088
  # request_payer: "requester", # accepts requester
2089
+ # bypass_governance_retention: false,
2001
2090
  # }
2002
2091
  #
2003
2092
  # @!attribute [rw] bucket
@@ -2020,13 +2109,20 @@ module Aws::S3
2020
2109
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
2021
2110
  # @return [String]
2022
2111
  #
2112
+ # @!attribute [rw] bypass_governance_retention
2113
+ # Specifies whether you want to delete this object even if it has a
2114
+ # Governance-type Object Lock in place. You must have sufficient
2115
+ # permissions to perform this operation.
2116
+ # @return [Boolean]
2117
+ #
2023
2118
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectsRequest AWS API Documentation
2024
2119
  #
2025
2120
  class DeleteObjectsRequest < Struct.new(
2026
2121
  :bucket,
2027
2122
  :delete,
2028
2123
  :mfa,
2029
- :request_payer)
2124
+ :request_payer,
2125
+ :bypass_governance_retention)
2030
2126
  include Aws::Structure
2031
2127
  end
2032
2128
 
@@ -2079,7 +2175,7 @@ module Aws::S3
2079
2175
  # {
2080
2176
  # bucket: "BucketName", # required
2081
2177
  # account: "AccountId",
2082
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
2178
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
2083
2179
  # access_control_translation: {
2084
2180
  # owner: "Destination", # required, accepts Destination
2085
2181
  # },
@@ -2913,6 +3009,89 @@ module Aws::S3
2913
3009
  include Aws::Structure
2914
3010
  end
2915
3011
 
3012
+ # @!attribute [rw] legal_hold
3013
+ # The current Legal Hold status for the specified object.
3014
+ # @return [Types::ObjectLockLegalHold]
3015
+ #
3016
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHoldOutput AWS API Documentation
3017
+ #
3018
+ class GetObjectLegalHoldOutput < Struct.new(
3019
+ :legal_hold)
3020
+ include Aws::Structure
3021
+ end
3022
+
3023
+ # @note When making an API call, you may pass GetObjectLegalHoldRequest
3024
+ # data as a hash:
3025
+ #
3026
+ # {
3027
+ # bucket: "BucketName", # required
3028
+ # key: "ObjectKey", # required
3029
+ # version_id: "ObjectVersionId",
3030
+ # request_payer: "requester", # accepts requester
3031
+ # }
3032
+ #
3033
+ # @!attribute [rw] bucket
3034
+ # The bucket containing the object whose Legal Hold status you want to
3035
+ # retrieve.
3036
+ # @return [String]
3037
+ #
3038
+ # @!attribute [rw] key
3039
+ # The key name for the object whose Legal Hold status you want to
3040
+ # retrieve.
3041
+ # @return [String]
3042
+ #
3043
+ # @!attribute [rw] version_id
3044
+ # The version ID of the object whose Legal Hold status you want to
3045
+ # retrieve.
3046
+ # @return [String]
3047
+ #
3048
+ # @!attribute [rw] request_payer
3049
+ # Confirms that the requester knows that she or he will be charged for
3050
+ # the request. Bucket owners need not specify this parameter in their
3051
+ # requests. Documentation on downloading objects from requester pays
3052
+ # buckets can be found at
3053
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
3054
+ # @return [String]
3055
+ #
3056
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHoldRequest AWS API Documentation
3057
+ #
3058
+ class GetObjectLegalHoldRequest < Struct.new(
3059
+ :bucket,
3060
+ :key,
3061
+ :version_id,
3062
+ :request_payer)
3063
+ include Aws::Structure
3064
+ end
3065
+
3066
+ # @!attribute [rw] object_lock_configuration
3067
+ # The specified bucket's Object Lock configuration.
3068
+ # @return [Types::ObjectLockConfiguration]
3069
+ #
3070
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfigurationOutput AWS API Documentation
3071
+ #
3072
+ class GetObjectLockConfigurationOutput < Struct.new(
3073
+ :object_lock_configuration)
3074
+ include Aws::Structure
3075
+ end
3076
+
3077
+ # @note When making an API call, you may pass GetObjectLockConfigurationRequest
3078
+ # data as a hash:
3079
+ #
3080
+ # {
3081
+ # bucket: "BucketName", # required
3082
+ # }
3083
+ #
3084
+ # @!attribute [rw] bucket
3085
+ # The bucket whose Object Lock configuration you want to retrieve.
3086
+ # @return [String]
3087
+ #
3088
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfigurationRequest AWS API Documentation
3089
+ #
3090
+ class GetObjectLockConfigurationRequest < Struct.new(
3091
+ :bucket)
3092
+ include Aws::Structure
3093
+ end
3094
+
2916
3095
  # @!attribute [rw] body
2917
3096
  # Object data.
2918
3097
  # @return [IO]
@@ -3049,6 +3228,17 @@ module Aws::S3
3049
3228
  # The number of tags, if any, on the object.
3050
3229
  # @return [Integer]
3051
3230
  #
3231
+ # @!attribute [rw] object_lock_mode
3232
+ # The Object Lock mode currently in place for this object.
3233
+ # @return [String]
3234
+ #
3235
+ # @!attribute [rw] object_lock_retain_until_date
3236
+ # The date and time when this object's Object Lock will expire.
3237
+ # @return [Time]
3238
+ #
3239
+ # @!attribute [rw] object_lock_legal_hold_status
3240
+ # @return [String]
3241
+ #
3052
3242
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectOutput AWS API Documentation
3053
3243
  #
3054
3244
  class GetObjectOutput < Struct.new(
@@ -3080,7 +3270,10 @@ module Aws::S3
3080
3270
  :request_charged,
3081
3271
  :replication_status,
3082
3272
  :parts_count,
3083
- :tag_count)
3273
+ :tag_count,
3274
+ :object_lock_mode,
3275
+ :object_lock_retain_until_date,
3276
+ :object_lock_legal_hold_status)
3084
3277
  include Aws::Structure
3085
3278
  end
3086
3279
 
@@ -3228,6 +3421,60 @@ module Aws::S3
3228
3421
  include Aws::Structure
3229
3422
  end
3230
3423
 
3424
+ # @!attribute [rw] retention
3425
+ # The container element for an object's retention settings.
3426
+ # @return [Types::ObjectLockRetention]
3427
+ #
3428
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetentionOutput AWS API Documentation
3429
+ #
3430
+ class GetObjectRetentionOutput < Struct.new(
3431
+ :retention)
3432
+ include Aws::Structure
3433
+ end
3434
+
3435
+ # @note When making an API call, you may pass GetObjectRetentionRequest
3436
+ # data as a hash:
3437
+ #
3438
+ # {
3439
+ # bucket: "BucketName", # required
3440
+ # key: "ObjectKey", # required
3441
+ # version_id: "ObjectVersionId",
3442
+ # request_payer: "requester", # accepts requester
3443
+ # }
3444
+ #
3445
+ # @!attribute [rw] bucket
3446
+ # The bucket containing the object whose retention settings you want
3447
+ # to retrieve.
3448
+ # @return [String]
3449
+ #
3450
+ # @!attribute [rw] key
3451
+ # The key name for the object whose retention settings you want to
3452
+ # retrieve.
3453
+ # @return [String]
3454
+ #
3455
+ # @!attribute [rw] version_id
3456
+ # The version ID for the object whose retention settings you want to
3457
+ # retrieve.
3458
+ # @return [String]
3459
+ #
3460
+ # @!attribute [rw] request_payer
3461
+ # Confirms that the requester knows that she or he will be charged for
3462
+ # the request. Bucket owners need not specify this parameter in their
3463
+ # requests. Documentation on downloading objects from requester pays
3464
+ # buckets can be found at
3465
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
3466
+ # @return [String]
3467
+ #
3468
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetentionRequest AWS API Documentation
3469
+ #
3470
+ class GetObjectRetentionRequest < Struct.new(
3471
+ :bucket,
3472
+ :key,
3473
+ :version_id,
3474
+ :request_payer)
3475
+ include Aws::Structure
3476
+ end
3477
+
3231
3478
  # @!attribute [rw] version_id
3232
3479
  # @return [String]
3233
3480
  #
@@ -3578,6 +3825,18 @@ module Aws::S3
3578
3825
  # The count of parts this object has.
3579
3826
  # @return [Integer]
3580
3827
  #
3828
+ # @!attribute [rw] object_lock_mode
3829
+ # The Object Lock mode currently in place for this object.
3830
+ # @return [String]
3831
+ #
3832
+ # @!attribute [rw] object_lock_retain_until_date
3833
+ # The date and time when this object's Object Lock will expire.
3834
+ # @return [Time]
3835
+ #
3836
+ # @!attribute [rw] object_lock_legal_hold_status
3837
+ # The Legal Hold status for the specified object.
3838
+ # @return [String]
3839
+ #
3581
3840
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObjectOutput AWS API Documentation
3582
3841
  #
3583
3842
  class HeadObjectOutput < Struct.new(
@@ -3606,7 +3865,10 @@ module Aws::S3
3606
3865
  :storage_class,
3607
3866
  :request_charged,
3608
3867
  :replication_status,
3609
- :parts_count)
3868
+ :parts_count,
3869
+ :object_lock_mode,
3870
+ :object_lock_retain_until_date,
3871
+ :object_lock_legal_hold_status)
3610
3872
  include Aws::Structure
3611
3873
  end
3612
3874
 
@@ -3832,7 +4094,7 @@ module Aws::S3
3832
4094
  # },
3833
4095
  # id: "InventoryId", # required
3834
4096
  # included_object_versions: "All", # required, accepts All, Current
3835
- # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus
4097
+ # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus, ObjectLockRetainUntilDate, ObjectLockMode, ObjectLockLegalHoldStatus
3836
4098
  # schedule: { # required
3837
4099
  # frequency: "Daily", # required, accepts Daily, Weekly
3838
4100
  # },
@@ -4075,7 +4337,7 @@ module Aws::S3
4075
4337
  # {
4076
4338
  # id: "NotificationId",
4077
4339
  # lambda_function_arn: "LambdaFunctionArn", # required
4078
- # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
4340
+ # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
4079
4341
  # filter: {
4080
4342
  # key: {
4081
4343
  # filter_rules: [
@@ -5564,7 +5826,7 @@ module Aws::S3
5564
5826
  # {
5565
5827
  # id: "NotificationId",
5566
5828
  # topic_arn: "TopicArn", # required
5567
- # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
5829
+ # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
5568
5830
  # filter: {
5569
5831
  # key: {
5570
5832
  # filter_rules: [
@@ -5581,7 +5843,7 @@ module Aws::S3
5581
5843
  # {
5582
5844
  # id: "NotificationId",
5583
5845
  # queue_arn: "QueueArn", # required
5584
- # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
5846
+ # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
5585
5847
  # filter: {
5586
5848
  # key: {
5587
5849
  # filter_rules: [
@@ -5598,7 +5860,7 @@ module Aws::S3
5598
5860
  # {
5599
5861
  # id: "NotificationId",
5600
5862
  # lambda_function_arn: "LambdaFunctionArn", # required
5601
- # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
5863
+ # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
5602
5864
  # filter: {
5603
5865
  # key: {
5604
5866
  # filter_rules: [
@@ -5637,20 +5899,20 @@ module Aws::S3
5637
5899
  # {
5638
5900
  # topic_configuration: {
5639
5901
  # id: "NotificationId",
5640
- # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
5641
- # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
5902
+ # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
5903
+ # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
5642
5904
  # topic: "TopicArn",
5643
5905
  # },
5644
5906
  # queue_configuration: {
5645
5907
  # id: "NotificationId",
5646
- # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
5647
- # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
5908
+ # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
5909
+ # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
5648
5910
  # queue: "QueueArn",
5649
5911
  # },
5650
5912
  # cloud_function_configuration: {
5651
5913
  # id: "NotificationId",
5652
- # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
5653
- # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
5914
+ # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
5915
+ # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
5654
5916
  # cloud_function: "CloudFunction",
5655
5917
  # invocation_role: "CloudFunctionInvocationRole",
5656
5918
  # },
@@ -5762,6 +6024,109 @@ module Aws::S3
5762
6024
  include Aws::Structure
5763
6025
  end
5764
6026
 
6027
+ # The container element for Object Lock configuration parameters.
6028
+ #
6029
+ # @note When making an API call, you may pass ObjectLockConfiguration
6030
+ # data as a hash:
6031
+ #
6032
+ # {
6033
+ # object_lock_enabled: "Enabled", # accepts Enabled
6034
+ # rule: {
6035
+ # default_retention: {
6036
+ # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
6037
+ # days: 1,
6038
+ # years: 1,
6039
+ # },
6040
+ # },
6041
+ # }
6042
+ #
6043
+ # @!attribute [rw] object_lock_enabled
6044
+ # Indicates whether this object has an Object Lock configuration
6045
+ # enabled.
6046
+ # @return [String]
6047
+ #
6048
+ # @!attribute [rw] rule
6049
+ # The Object Lock rule in place for the specified object.
6050
+ # @return [Types::ObjectLockRule]
6051
+ #
6052
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectLockConfiguration AWS API Documentation
6053
+ #
6054
+ class ObjectLockConfiguration < Struct.new(
6055
+ :object_lock_enabled,
6056
+ :rule)
6057
+ include Aws::Structure
6058
+ end
6059
+
6060
+ # A Legal Hold configuration for an object.
6061
+ #
6062
+ # @note When making an API call, you may pass ObjectLockLegalHold
6063
+ # data as a hash:
6064
+ #
6065
+ # {
6066
+ # status: "ON", # accepts ON, OFF
6067
+ # }
6068
+ #
6069
+ # @!attribute [rw] status
6070
+ # Indicates whether the specified object has a Legal Hold in place.
6071
+ # @return [String]
6072
+ #
6073
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectLockLegalHold AWS API Documentation
6074
+ #
6075
+ class ObjectLockLegalHold < Struct.new(
6076
+ :status)
6077
+ include Aws::Structure
6078
+ end
6079
+
6080
+ # A Retention configuration for an object.
6081
+ #
6082
+ # @note When making an API call, you may pass ObjectLockRetention
6083
+ # data as a hash:
6084
+ #
6085
+ # {
6086
+ # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
6087
+ # retain_until_date: Time.now,
6088
+ # }
6089
+ #
6090
+ # @!attribute [rw] mode
6091
+ # Indicates the Retention mode for the specified object.
6092
+ # @return [String]
6093
+ #
6094
+ # @!attribute [rw] retain_until_date
6095
+ # @return [Time]
6096
+ #
6097
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectLockRetention AWS API Documentation
6098
+ #
6099
+ class ObjectLockRetention < Struct.new(
6100
+ :mode,
6101
+ :retain_until_date)
6102
+ include Aws::Structure
6103
+ end
6104
+
6105
+ # The container element for an Object Lock rule.
6106
+ #
6107
+ # @note When making an API call, you may pass ObjectLockRule
6108
+ # data as a hash:
6109
+ #
6110
+ # {
6111
+ # default_retention: {
6112
+ # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
6113
+ # days: 1,
6114
+ # years: 1,
6115
+ # },
6116
+ # }
6117
+ #
6118
+ # @!attribute [rw] default_retention
6119
+ # The default retention period that you want to apply to new objects
6120
+ # placed in the specified bucket.
6121
+ # @return [Types::DefaultRetention]
6122
+ #
6123
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectLockRule AWS API Documentation
6124
+ #
6125
+ class ObjectLockRule < Struct.new(
6126
+ :default_retention)
6127
+ include Aws::Structure
6128
+ end
6129
+
5765
6130
  # @!attribute [rw] etag
5766
6131
  # @return [String]
5767
6132
  #
@@ -5848,7 +6213,7 @@ module Aws::S3
5848
6213
  # value: "MetadataValue",
5849
6214
  # },
5850
6215
  # ],
5851
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
6216
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
5852
6217
  # },
5853
6218
  # }
5854
6219
  #
@@ -6342,7 +6707,7 @@ module Aws::S3
6342
6707
  # },
6343
6708
  # id: "InventoryId", # required
6344
6709
  # included_object_versions: "All", # required, accepts All, Current
6345
- # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus
6710
+ # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus, ObjectLockRetainUntilDate, ObjectLockMode, ObjectLockLegalHoldStatus
6346
6711
  # schedule: { # required
6347
6712
  # frequency: "Daily", # required, accepts Daily, Weekly
6348
6713
  # },
@@ -6598,7 +6963,7 @@ module Aws::S3
6598
6963
  # {
6599
6964
  # id: "NotificationId",
6600
6965
  # topic_arn: "TopicArn", # required
6601
- # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
6966
+ # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
6602
6967
  # filter: {
6603
6968
  # key: {
6604
6969
  # filter_rules: [
@@ -6615,7 +6980,7 @@ module Aws::S3
6615
6980
  # {
6616
6981
  # id: "NotificationId",
6617
6982
  # queue_arn: "QueueArn", # required
6618
- # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
6983
+ # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
6619
6984
  # filter: {
6620
6985
  # key: {
6621
6986
  # filter_rules: [
@@ -6632,7 +6997,7 @@ module Aws::S3
6632
6997
  # {
6633
6998
  # id: "NotificationId",
6634
6999
  # lambda_function_arn: "LambdaFunctionArn", # required
6635
- # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
7000
+ # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
6636
7001
  # filter: {
6637
7002
  # key: {
6638
7003
  # filter_rules: [
@@ -6674,20 +7039,20 @@ module Aws::S3
6674
7039
  # notification_configuration: { # required
6675
7040
  # topic_configuration: {
6676
7041
  # id: "NotificationId",
6677
- # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
6678
- # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
7042
+ # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
7043
+ # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
6679
7044
  # topic: "TopicArn",
6680
7045
  # },
6681
7046
  # queue_configuration: {
6682
7047
  # id: "NotificationId",
6683
- # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
6684
- # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
7048
+ # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
7049
+ # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
6685
7050
  # queue: "QueueArn",
6686
7051
  # },
6687
7052
  # cloud_function_configuration: {
6688
7053
  # id: "NotificationId",
6689
- # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
6690
- # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
7054
+ # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
7055
+ # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
6691
7056
  # cloud_function: "CloudFunction",
6692
7057
  # invocation_role: "CloudFunctionInvocationRole",
6693
7058
  # },
@@ -6785,7 +7150,7 @@ module Aws::S3
6785
7150
  # destination: { # required
6786
7151
  # bucket: "BucketName", # required
6787
7152
  # account: "AccountId",
6788
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
7153
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
6789
7154
  # access_control_translation: {
6790
7155
  # owner: "Destination", # required, accepts Destination
6791
7156
  # },
@@ -7090,6 +7455,142 @@ module Aws::S3
7090
7455
  include Aws::Structure
7091
7456
  end
7092
7457
 
7458
+ # @!attribute [rw] request_charged
7459
+ # If present, indicates that the requester was successfully charged
7460
+ # for the request.
7461
+ # @return [String]
7462
+ #
7463
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHoldOutput AWS API Documentation
7464
+ #
7465
+ class PutObjectLegalHoldOutput < Struct.new(
7466
+ :request_charged)
7467
+ include Aws::Structure
7468
+ end
7469
+
7470
+ # @note When making an API call, you may pass PutObjectLegalHoldRequest
7471
+ # data as a hash:
7472
+ #
7473
+ # {
7474
+ # bucket: "BucketName", # required
7475
+ # key: "ObjectKey", # required
7476
+ # legal_hold: {
7477
+ # status: "ON", # accepts ON, OFF
7478
+ # },
7479
+ # request_payer: "requester", # accepts requester
7480
+ # version_id: "ObjectVersionId",
7481
+ # content_md5: "ContentMD5",
7482
+ # }
7483
+ #
7484
+ # @!attribute [rw] bucket
7485
+ # The bucket containing the object that you want to place a Legal Hold
7486
+ # on.
7487
+ # @return [String]
7488
+ #
7489
+ # @!attribute [rw] key
7490
+ # The key name for the object that you want to place a Legal Hold on.
7491
+ # @return [String]
7492
+ #
7493
+ # @!attribute [rw] legal_hold
7494
+ # Container element for the Legal Hold configuration you want to apply
7495
+ # to the specified object.
7496
+ # @return [Types::ObjectLockLegalHold]
7497
+ #
7498
+ # @!attribute [rw] request_payer
7499
+ # Confirms that the requester knows that she or he will be charged for
7500
+ # the request. Bucket owners need not specify this parameter in their
7501
+ # requests. Documentation on downloading objects from requester pays
7502
+ # buckets can be found at
7503
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
7504
+ # @return [String]
7505
+ #
7506
+ # @!attribute [rw] version_id
7507
+ # The version ID of the object that you want to place a Legal Hold on.
7508
+ # @return [String]
7509
+ #
7510
+ # @!attribute [rw] content_md5
7511
+ # The MD5 signature for the configuration included in your request.
7512
+ # @return [String]
7513
+ #
7514
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHoldRequest AWS API Documentation
7515
+ #
7516
+ class PutObjectLegalHoldRequest < Struct.new(
7517
+ :bucket,
7518
+ :key,
7519
+ :legal_hold,
7520
+ :request_payer,
7521
+ :version_id,
7522
+ :content_md5)
7523
+ include Aws::Structure
7524
+ end
7525
+
7526
+ # @!attribute [rw] request_charged
7527
+ # If present, indicates that the requester was successfully charged
7528
+ # for the request.
7529
+ # @return [String]
7530
+ #
7531
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfigurationOutput AWS API Documentation
7532
+ #
7533
+ class PutObjectLockConfigurationOutput < Struct.new(
7534
+ :request_charged)
7535
+ include Aws::Structure
7536
+ end
7537
+
7538
+ # @note When making an API call, you may pass PutObjectLockConfigurationRequest
7539
+ # data as a hash:
7540
+ #
7541
+ # {
7542
+ # bucket: "BucketName", # required
7543
+ # object_lock_configuration: {
7544
+ # object_lock_enabled: "Enabled", # accepts Enabled
7545
+ # rule: {
7546
+ # default_retention: {
7547
+ # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
7548
+ # days: 1,
7549
+ # years: 1,
7550
+ # },
7551
+ # },
7552
+ # },
7553
+ # request_payer: "requester", # accepts requester
7554
+ # token: "ObjectLockToken",
7555
+ # content_md5: "ContentMD5",
7556
+ # }
7557
+ #
7558
+ # @!attribute [rw] bucket
7559
+ # The bucket whose Object Lock configuration you want to create or
7560
+ # replace.
7561
+ # @return [String]
7562
+ #
7563
+ # @!attribute [rw] object_lock_configuration
7564
+ # The Object Lock configuration that you want to apply to the
7565
+ # specified bucket.
7566
+ # @return [Types::ObjectLockConfiguration]
7567
+ #
7568
+ # @!attribute [rw] request_payer
7569
+ # Confirms that the requester knows that she or he will be charged for
7570
+ # the request. Bucket owners need not specify this parameter in their
7571
+ # requests. Documentation on downloading objects from requester pays
7572
+ # buckets can be found at
7573
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
7574
+ # @return [String]
7575
+ #
7576
+ # @!attribute [rw] token
7577
+ # @return [String]
7578
+ #
7579
+ # @!attribute [rw] content_md5
7580
+ # The MD5 signature for the configuration included in your request.
7581
+ # @return [String]
7582
+ #
7583
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfigurationRequest AWS API Documentation
7584
+ #
7585
+ class PutObjectLockConfigurationRequest < Struct.new(
7586
+ :bucket,
7587
+ :object_lock_configuration,
7588
+ :request_payer,
7589
+ :token,
7590
+ :content_md5)
7591
+ include Aws::Structure
7592
+ end
7593
+
7093
7594
  # @!attribute [rw] expiration
7094
7595
  # If the object expiration is configured, this will contain the
7095
7596
  # expiration date (expiry-date) and rule ID (rule-id). The value of
@@ -7170,7 +7671,7 @@ module Aws::S3
7170
7671
  # "MetadataKey" => "MetadataValue",
7171
7672
  # },
7172
7673
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
7173
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
7674
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
7174
7675
  # website_redirect_location: "WebsiteRedirectLocation",
7175
7676
  # sse_customer_algorithm: "SSECustomerAlgorithm",
7176
7677
  # sse_customer_key: "SSECustomerKey",
@@ -7178,6 +7679,9 @@ module Aws::S3
7178
7679
  # ssekms_key_id: "SSEKMSKeyId",
7179
7680
  # request_payer: "requester", # accepts requester
7180
7681
  # tagging: "TaggingHeader",
7682
+ # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
7683
+ # object_lock_retain_until_date: Time.now,
7684
+ # object_lock_legal_hold_status: "ON", # accepts ON, OFF
7181
7685
  # }
7182
7686
  #
7183
7687
  # @!attribute [rw] acl
@@ -7308,6 +7812,20 @@ module Aws::S3
7308
7812
  # parameters. (For example, "Key1=Value1")
7309
7813
  # @return [String]
7310
7814
  #
7815
+ # @!attribute [rw] object_lock_mode
7816
+ # The Object Lock mode that you want to apply to this object.
7817
+ # @return [String]
7818
+ #
7819
+ # @!attribute [rw] object_lock_retain_until_date
7820
+ # The date and time when you want this object's Object Lock to
7821
+ # expire.
7822
+ # @return [Time]
7823
+ #
7824
+ # @!attribute [rw] object_lock_legal_hold_status
7825
+ # The Legal Hold status that you want to apply to the specified
7826
+ # object.
7827
+ # @return [String]
7828
+ #
7311
7829
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRequest AWS API Documentation
7312
7830
  #
7313
7831
  class PutObjectRequest < Struct.new(
@@ -7336,7 +7854,85 @@ module Aws::S3
7336
7854
  :sse_customer_key_md5,
7337
7855
  :ssekms_key_id,
7338
7856
  :request_payer,
7339
- :tagging)
7857
+ :tagging,
7858
+ :object_lock_mode,
7859
+ :object_lock_retain_until_date,
7860
+ :object_lock_legal_hold_status)
7861
+ include Aws::Structure
7862
+ end
7863
+
7864
+ # @!attribute [rw] request_charged
7865
+ # If present, indicates that the requester was successfully charged
7866
+ # for the request.
7867
+ # @return [String]
7868
+ #
7869
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetentionOutput AWS API Documentation
7870
+ #
7871
+ class PutObjectRetentionOutput < Struct.new(
7872
+ :request_charged)
7873
+ include Aws::Structure
7874
+ end
7875
+
7876
+ # @note When making an API call, you may pass PutObjectRetentionRequest
7877
+ # data as a hash:
7878
+ #
7879
+ # {
7880
+ # bucket: "BucketName", # required
7881
+ # key: "ObjectKey", # required
7882
+ # retention: {
7883
+ # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
7884
+ # retain_until_date: Time.now,
7885
+ # },
7886
+ # request_payer: "requester", # accepts requester
7887
+ # version_id: "ObjectVersionId",
7888
+ # bypass_governance_retention: false,
7889
+ # content_md5: "ContentMD5",
7890
+ # }
7891
+ #
7892
+ # @!attribute [rw] bucket
7893
+ # The bucket that contains the object you want to apply this Object
7894
+ # Retention configuration to.
7895
+ # @return [String]
7896
+ #
7897
+ # @!attribute [rw] key
7898
+ # The key name for the object that you want to apply this Object
7899
+ # Retention configuration to.
7900
+ # @return [String]
7901
+ #
7902
+ # @!attribute [rw] retention
7903
+ # The container element for the Object Retention configuration.
7904
+ # @return [Types::ObjectLockRetention]
7905
+ #
7906
+ # @!attribute [rw] request_payer
7907
+ # Confirms that the requester knows that she or he will be charged for
7908
+ # the request. Bucket owners need not specify this parameter in their
7909
+ # requests. Documentation on downloading objects from requester pays
7910
+ # buckets can be found at
7911
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
7912
+ # @return [String]
7913
+ #
7914
+ # @!attribute [rw] version_id
7915
+ # The version ID for the object that you want to apply this Object
7916
+ # Retention configuration to.
7917
+ # @return [String]
7918
+ #
7919
+ # @!attribute [rw] bypass_governance_retention
7920
+ # @return [Boolean]
7921
+ #
7922
+ # @!attribute [rw] content_md5
7923
+ # The MD5 signature for the configuration included in your request.
7924
+ # @return [String]
7925
+ #
7926
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetentionRequest AWS API Documentation
7927
+ #
7928
+ class PutObjectRetentionRequest < Struct.new(
7929
+ :bucket,
7930
+ :key,
7931
+ :retention,
7932
+ :request_payer,
7933
+ :version_id,
7934
+ :bypass_governance_retention,
7935
+ :content_md5)
7340
7936
  include Aws::Structure
7341
7937
  end
7342
7938
 
@@ -7420,10 +8016,9 @@ module Aws::S3
7420
8016
  # @!attribute [rw] public_access_block_configuration
7421
8017
  # The `PublicAccessBlock` configuration that you want to apply to this
7422
8018
  # Amazon S3 bucket. You can enable the configuration options in any
7423
- # combination. For more information about when &amp;S3; considers a
7424
- # bucket or object public, see For more information about when Amazon
7425
- # S3 considers a bucket or object public, see [The Meaning of
7426
- # "Public"][1] in the Amazon Simple Storage Service Developer Guide.
8019
+ # combination. For more information about when Amazon S3 considers a
8020
+ # bucket or object public, see [The Meaning of "Public"][1] in the
8021
+ # *Amazon Simple Storage Service Developer Guide*.
7427
8022
  #
7428
8023
  #
7429
8024
  #
@@ -7449,7 +8044,7 @@ module Aws::S3
7449
8044
  # {
7450
8045
  # id: "NotificationId",
7451
8046
  # queue_arn: "QueueArn", # required
7452
- # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
8047
+ # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
7453
8048
  # filter: {
7454
8049
  # key: {
7455
8050
  # filter_rules: [
@@ -7502,8 +8097,8 @@ module Aws::S3
7502
8097
  #
7503
8098
  # {
7504
8099
  # id: "NotificationId",
7505
- # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
7506
- # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
8100
+ # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
8101
+ # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
7507
8102
  # queue: "QueueArn",
7508
8103
  # }
7509
8104
  #
@@ -7661,7 +8256,7 @@ module Aws::S3
7661
8256
  # destination: { # required
7662
8257
  # bucket: "BucketName", # required
7663
8258
  # account: "AccountId",
7664
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
8259
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
7665
8260
  # access_control_translation: {
7666
8261
  # owner: "Destination", # required, accepts Destination
7667
8262
  # },
@@ -7730,7 +8325,7 @@ module Aws::S3
7730
8325
  # destination: { # required
7731
8326
  # bucket: "BucketName", # required
7732
8327
  # account: "AccountId",
7733
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
8328
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
7734
8329
  # access_control_translation: {
7735
8330
  # owner: "Destination", # required, accepts Destination
7736
8331
  # },
@@ -8037,7 +8632,7 @@ module Aws::S3
8037
8632
  # value: "MetadataValue",
8038
8633
  # },
8039
8634
  # ],
8040
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
8635
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
8041
8636
  # },
8042
8637
  # },
8043
8638
  # },
@@ -8158,7 +8753,7 @@ module Aws::S3
8158
8753
  # value: "MetadataValue",
8159
8754
  # },
8160
8755
  # ],
8161
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
8756
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
8162
8757
  # },
8163
8758
  # },
8164
8759
  # }
@@ -8401,7 +8996,7 @@ module Aws::S3
8401
8996
  # value: "MetadataValue",
8402
8997
  # },
8403
8998
  # ],
8404
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING
8999
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER
8405
9000
  # }
8406
9001
  #
8407
9002
  # @!attribute [rw] bucket_name
@@ -8999,7 +9594,7 @@ module Aws::S3
8999
9594
  # {
9000
9595
  # id: "NotificationId",
9001
9596
  # topic_arn: "TopicArn", # required
9002
- # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
9597
+ # events: ["s3:ReducedRedundancyLostObject"], # required, accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
9003
9598
  # filter: {
9004
9599
  # key: {
9005
9600
  # filter_rules: [
@@ -9052,8 +9647,8 @@ module Aws::S3
9052
9647
  #
9053
9648
  # {
9054
9649
  # id: "NotificationId",
9055
- # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
9056
- # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated
9650
+ # events: ["s3:ReducedRedundancyLostObject"], # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
9651
+ # event: "s3:ReducedRedundancyLostObject", # accepts s3:ReducedRedundancyLostObject, s3:ObjectCreated:*, s3:ObjectCreated:Put, s3:ObjectCreated:Post, s3:ObjectCreated:Copy, s3:ObjectCreated:CompleteMultipartUpload, s3:ObjectRemoved:*, s3:ObjectRemoved:Delete, s3:ObjectRemoved:DeleteMarkerCreated, s3:ObjectRestore:Post, s3:ObjectRestore:Completed
9057
9652
  # topic: "TopicArn",
9058
9653
  # }
9059
9654
  #