aws-sdk-s3 1.26.0 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
  #