aws-sdk-s3 1.9.0 → 1.40.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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aws-sdk-s3/bucket.rb +22 -3
  3. data/lib/aws-sdk-s3/bucket_acl.rb +1 -0
  4. data/lib/aws-sdk-s3/bucket_cors.rb +1 -0
  5. data/lib/aws-sdk-s3/bucket_lifecycle.rb +3 -2
  6. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +3 -2
  7. data/lib/aws-sdk-s3/bucket_notification.rb +9 -5
  8. data/lib/aws-sdk-s3/bucket_tagging.rb +1 -0
  9. data/lib/aws-sdk-s3/bucket_website.rb +4 -0
  10. data/lib/aws-sdk-s3/client.rb +1303 -351
  11. data/lib/aws-sdk-s3/client_api.rb +352 -2
  12. data/lib/aws-sdk-s3/customizations/bucket.rb +2 -2
  13. data/lib/aws-sdk-s3/customizations/object.rb +60 -0
  14. data/lib/aws-sdk-s3/customizations/object_summary.rb +7 -0
  15. data/lib/aws-sdk-s3/customizations.rb +1 -0
  16. data/lib/aws-sdk-s3/encryption/client.rb +1 -1
  17. data/lib/aws-sdk-s3/encryption/io_auth_decrypter.rb +9 -3
  18. data/lib/aws-sdk-s3/event_streams.rb +62 -0
  19. data/lib/aws-sdk-s3/file_downloader.rb +10 -9
  20. data/lib/aws-sdk-s3/file_part.rb +5 -7
  21. data/lib/aws-sdk-s3/file_uploader.rb +1 -3
  22. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +162 -0
  23. data/lib/aws-sdk-s3/multipart_upload.rb +1 -0
  24. data/lib/aws-sdk-s3/multipart_upload_part.rb +2 -2
  25. data/lib/aws-sdk-s3/object.rb +71 -7
  26. data/lib/aws-sdk-s3/object_acl.rb +1 -0
  27. data/lib/aws-sdk-s3/object_summary.rb +54 -7
  28. data/lib/aws-sdk-s3/object_version.rb +11 -0
  29. data/lib/aws-sdk-s3/plugins/accelerate.rb +4 -0
  30. data/lib/aws-sdk-s3/plugins/md5s.rb +4 -1
  31. data/lib/aws-sdk-s3/plugins/redirects.rb +3 -1
  32. data/lib/aws-sdk-s3/plugins/s3_signer.rb +6 -1
  33. data/lib/aws-sdk-s3/presigner.rb +4 -0
  34. data/lib/aws-sdk-s3/resource.rb +4 -0
  35. data/lib/aws-sdk-s3/types.rb +1539 -227
  36. data/lib/aws-sdk-s3.rb +2 -1
  37. metadata +12 -4
@@ -135,7 +135,7 @@ module Aws::S3
135
135
  include Aws::Structure
136
136
  end
137
137
 
138
- # Container for information regarding the access control for replicas.
138
+ # A container for information about access control for replicas.
139
139
  #
140
140
  # @note When making an API call, you may pass AccessControlTranslation
141
141
  # data as a hash:
@@ -401,13 +401,13 @@ module Aws::S3
401
401
  # {
402
402
  # date: Time.now,
403
403
  # days: 1,
404
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
404
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
405
405
  # },
406
406
  # ],
407
407
  # noncurrent_version_transitions: [
408
408
  # {
409
409
  # noncurrent_days: 1,
410
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
410
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
411
411
  # },
412
412
  # ],
413
413
  # noncurrent_version_expiration: {
@@ -549,6 +549,7 @@ module Aws::S3
549
549
  # record_delimiter: "RecordDelimiter",
550
550
  # field_delimiter: "FieldDelimiter",
551
551
  # quote_character: "QuoteCharacter",
552
+ # allow_quoted_record_delimiter: false,
552
553
  # }
553
554
  #
554
555
  # @!attribute [rw] file_header_info
@@ -556,21 +557,21 @@ module Aws::S3
556
557
  # @return [String]
557
558
  #
558
559
  # @!attribute [rw] comments
559
- # Single character used to indicate a row should be ignored when
560
+ # The single character used to indicate a row should be ignored when
560
561
  # present at the start of a row.
561
562
  # @return [String]
562
563
  #
563
564
  # @!attribute [rw] quote_escape_character
564
- # Single character used for escaping the quote character inside an
565
+ # The single character used for escaping the quote character inside an
565
566
  # already escaped value.
566
567
  # @return [String]
567
568
  #
568
569
  # @!attribute [rw] record_delimiter
569
- # Value used to separate individual records.
570
+ # The value used to separate individual records.
570
571
  # @return [String]
571
572
  #
572
573
  # @!attribute [rw] field_delimiter
573
- # Value used to separate individual fields in a record.
574
+ # The value used to separate individual fields in a record.
574
575
  # @return [String]
575
576
  #
576
577
  # @!attribute [rw] quote_character
@@ -578,6 +579,12 @@ module Aws::S3
578
579
  # value.
579
580
  # @return [String]
580
581
  #
582
+ # @!attribute [rw] allow_quoted_record_delimiter
583
+ # Specifies that CSV field values may contain quoted record delimiters
584
+ # and such records should be allowed. Default value is FALSE. Setting
585
+ # this value to TRUE may lower performance.
586
+ # @return [Boolean]
587
+ #
581
588
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CSVInput AWS API Documentation
582
589
  #
583
590
  class CSVInput < Struct.new(
@@ -586,7 +593,8 @@ module Aws::S3
586
593
  :quote_escape_character,
587
594
  :record_delimiter,
588
595
  :field_delimiter,
589
- :quote_character)
596
+ :quote_character,
597
+ :allow_quoted_record_delimiter)
590
598
  include Aws::Structure
591
599
  end
592
600
 
@@ -608,20 +616,20 @@ module Aws::S3
608
616
  # @return [String]
609
617
  #
610
618
  # @!attribute [rw] quote_escape_character
611
- # Single character used for escaping the quote character inside an
619
+ # Th single character used for escaping the quote character inside an
612
620
  # already escaped value.
613
621
  # @return [String]
614
622
  #
615
623
  # @!attribute [rw] record_delimiter
616
- # Value used to separate individual records.
624
+ # The value used to separate individual records.
617
625
  # @return [String]
618
626
  #
619
627
  # @!attribute [rw] field_delimiter
620
- # Value used to separate individual fields in a record.
628
+ # The value used to separate individual fields in a record.
621
629
  # @return [String]
622
630
  #
623
631
  # @!attribute [rw] quote_character
624
- # Value used for escaping where the field delimiter is part of the
632
+ # The value used for escaping where the field delimiter is part of the
625
633
  # value.
626
634
  # @return [String]
627
635
  #
@@ -641,20 +649,20 @@ module Aws::S3
641
649
  #
642
650
  # {
643
651
  # id: "NotificationId",
644
- # 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
645
- # 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
646
654
  # cloud_function: "CloudFunction",
647
655
  # invocation_role: "CloudFunctionInvocationRole",
648
656
  # }
649
657
  #
650
658
  # @!attribute [rw] id
651
- # Optional unique identifier for configurations in a notification
659
+ # An optional unique identifier for configurations in a notification
652
660
  # configuration. If you don't provide one, Amazon S3 will assign an
653
661
  # ID.
654
662
  # @return [String]
655
663
  #
656
664
  # @!attribute [rw] event
657
- # Bucket event for which to send notifications.
665
+ # The bucket event for which to send notifications.
658
666
  # @return [String]
659
667
  #
660
668
  # @!attribute [rw] events
@@ -871,6 +879,13 @@ module Aws::S3
871
879
  include Aws::Structure
872
880
  end
873
881
 
882
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ContinuationEvent AWS API Documentation
883
+ #
884
+ class ContinuationEvent < Struct.new(
885
+ :event_type)
886
+ include Aws::Structure
887
+ end
888
+
874
889
  # @!attribute [rw] copy_object_result
875
890
  # @return [Types::CopyObjectResult]
876
891
  #
@@ -957,7 +972,7 @@ module Aws::S3
957
972
  # metadata_directive: "COPY", # accepts COPY, REPLACE
958
973
  # tagging_directive: "COPY", # accepts COPY, REPLACE
959
974
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
960
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
975
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
961
976
  # website_redirect_location: "WebsiteRedirectLocation",
962
977
  # sse_customer_algorithm: "SSECustomerAlgorithm",
963
978
  # sse_customer_key: "SSECustomerKey",
@@ -968,6 +983,9 @@ module Aws::S3
968
983
  # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5",
969
984
  # request_payer: "requester", # accepts requester
970
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
971
989
  # }
972
990
  #
973
991
  # @!attribute [rw] acl
@@ -1135,6 +1153,20 @@ module Aws::S3
1135
1153
  # encoded as URL Query parameters
1136
1154
  # @return [String]
1137
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
+ #
1138
1170
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyObjectRequest AWS API Documentation
1139
1171
  #
1140
1172
  class CopyObjectRequest < Struct.new(
@@ -1170,7 +1202,10 @@ module Aws::S3
1170
1202
  :copy_source_sse_customer_key,
1171
1203
  :copy_source_sse_customer_key_md5,
1172
1204
  :request_payer,
1173
- :tagging)
1205
+ :tagging,
1206
+ :object_lock_mode,
1207
+ :object_lock_retain_until_date,
1208
+ :object_lock_legal_hold_status)
1174
1209
  include Aws::Structure
1175
1210
  end
1176
1211
 
@@ -1213,7 +1248,8 @@ module Aws::S3
1213
1248
  #
1214
1249
  # @!attribute [rw] location_constraint
1215
1250
  # Specifies the region where the bucket will be created. If you don't
1216
- # specify a region, the bucket will be created in US Standard.
1251
+ # specify a region, the bucket is created in US East (N. Virginia)
1252
+ # Region (us-east-1).
1217
1253
  # @return [String]
1218
1254
  #
1219
1255
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucketConfiguration AWS API Documentation
@@ -1247,6 +1283,7 @@ module Aws::S3
1247
1283
  # grant_read_acp: "GrantReadACP",
1248
1284
  # grant_write: "GrantWrite",
1249
1285
  # grant_write_acp: "GrantWriteACP",
1286
+ # object_lock_enabled_for_bucket: false,
1250
1287
  # }
1251
1288
  #
1252
1289
  # @!attribute [rw] acl
@@ -1281,6 +1318,11 @@ module Aws::S3
1281
1318
  # Allows grantee to write the ACL for the applicable bucket.
1282
1319
  # @return [String]
1283
1320
  #
1321
+ # @!attribute [rw] object_lock_enabled_for_bucket
1322
+ # Specifies whether you want S3 Object Lock to be enabled for the new
1323
+ # bucket.
1324
+ # @return [Boolean]
1325
+ #
1284
1326
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucketRequest AWS API Documentation
1285
1327
  #
1286
1328
  class CreateBucketRequest < Struct.new(
@@ -1291,7 +1333,8 @@ module Aws::S3
1291
1333
  :grant_read,
1292
1334
  :grant_read_acp,
1293
1335
  :grant_write,
1294
- :grant_write_acp)
1336
+ :grant_write_acp,
1337
+ :object_lock_enabled_for_bucket)
1295
1338
  include Aws::Structure
1296
1339
  end
1297
1340
 
@@ -1382,7 +1425,7 @@ module Aws::S3
1382
1425
  # "MetadataKey" => "MetadataValue",
1383
1426
  # },
1384
1427
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
1385
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
1428
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
1386
1429
  # website_redirect_location: "WebsiteRedirectLocation",
1387
1430
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1388
1431
  # sse_customer_key: "SSECustomerKey",
@@ -1390,6 +1433,9 @@ module Aws::S3
1390
1433
  # ssekms_key_id: "SSEKMSKeyId",
1391
1434
  # request_payer: "requester", # accepts requester
1392
1435
  # tagging: "TaggingHeader",
1436
+ # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
1437
+ # object_lock_retain_until_date: Time.now,
1438
+ # object_lock_legal_hold_status: "ON", # accepts ON, OFF
1393
1439
  # }
1394
1440
  #
1395
1441
  # @!attribute [rw] acl
@@ -1505,6 +1551,20 @@ module Aws::S3
1505
1551
  # parameters
1506
1552
  # @return [String]
1507
1553
  #
1554
+ # @!attribute [rw] object_lock_mode
1555
+ # Specifies the Object Lock mode that you want to apply to the
1556
+ # uploaded object.
1557
+ # @return [String]
1558
+ #
1559
+ # @!attribute [rw] object_lock_retain_until_date
1560
+ # Specifies the date and time when you want the Object Lock to expire.
1561
+ # @return [Time]
1562
+ #
1563
+ # @!attribute [rw] object_lock_legal_hold_status
1564
+ # Specifies whether you want to apply a Legal Hold to the uploaded
1565
+ # object.
1566
+ # @return [String]
1567
+ #
1508
1568
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateMultipartUploadRequest AWS API Documentation
1509
1569
  #
1510
1570
  class CreateMultipartUploadRequest < Struct.new(
@@ -1530,7 +1590,46 @@ module Aws::S3
1530
1590
  :sse_customer_key_md5,
1531
1591
  :ssekms_key_id,
1532
1592
  :request_payer,
1533
- :tagging)
1593
+ :tagging,
1594
+ :object_lock_mode,
1595
+ :object_lock_retain_until_date,
1596
+ :object_lock_legal_hold_status)
1597
+ include Aws::Structure
1598
+ end
1599
+
1600
+ # The container element for specifying the default Object Lock retention
1601
+ # settings for new objects placed in the specified bucket.
1602
+ #
1603
+ # @note When making an API call, you may pass DefaultRetention
1604
+ # data as a hash:
1605
+ #
1606
+ # {
1607
+ # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
1608
+ # days: 1,
1609
+ # years: 1,
1610
+ # }
1611
+ #
1612
+ # @!attribute [rw] mode
1613
+ # The default Object Lock retention mode you want to apply to new
1614
+ # objects placed in the specified bucket.
1615
+ # @return [String]
1616
+ #
1617
+ # @!attribute [rw] days
1618
+ # The number of days that you want to specify for the default
1619
+ # retention period.
1620
+ # @return [Integer]
1621
+ #
1622
+ # @!attribute [rw] years
1623
+ # The number of years that you want to specify for the default
1624
+ # retention period.
1625
+ # @return [Integer]
1626
+ #
1627
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DefaultRetention AWS API Documentation
1628
+ #
1629
+ class DefaultRetention < Struct.new(
1630
+ :mode,
1631
+ :days,
1632
+ :years)
1534
1633
  include Aws::Structure
1535
1634
  end
1536
1635
 
@@ -1716,6 +1815,12 @@ module Aws::S3
1716
1815
  # }
1717
1816
  #
1718
1817
  # @!attribute [rw] bucket
1818
+ # The bucket name.
1819
+ #
1820
+ # <note markdown="1"> It can take a while to propagate the deletion of a replication
1821
+ # configuration to all Amazon S3 systems.
1822
+ #
1823
+ # </note>
1719
1824
  # @return [String]
1720
1825
  #
1721
1826
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketReplicationRequest AWS API Documentation
@@ -1807,6 +1912,31 @@ module Aws::S3
1807
1912
  include Aws::Structure
1808
1913
  end
1809
1914
 
1915
+ # Specifies whether Amazon S3 should replicate delete makers.
1916
+ #
1917
+ # @note When making an API call, you may pass DeleteMarkerReplication
1918
+ # data as a hash:
1919
+ #
1920
+ # {
1921
+ # status: "Enabled", # accepts Enabled, Disabled
1922
+ # }
1923
+ #
1924
+ # @!attribute [rw] status
1925
+ # The status of the delete marker replication.
1926
+ #
1927
+ # <note markdown="1"> In the current implementation, Amazon S3 doesn't replicate the
1928
+ # delete markers. The status must be `Disabled`.
1929
+ #
1930
+ # </note>
1931
+ # @return [String]
1932
+ #
1933
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteMarkerReplication AWS API Documentation
1934
+ #
1935
+ class DeleteMarkerReplication < Struct.new(
1936
+ :status)
1937
+ include Aws::Structure
1938
+ end
1939
+
1810
1940
  # @!attribute [rw] delete_marker
1811
1941
  # Specifies whether the versioned object that was permanently deleted
1812
1942
  # was (true) or was not (false) a delete marker.
@@ -1840,6 +1970,7 @@ module Aws::S3
1840
1970
  # mfa: "MFA",
1841
1971
  # version_id: "ObjectVersionId",
1842
1972
  # request_payer: "requester", # accepts requester
1973
+ # bypass_governance_retention: false,
1843
1974
  # }
1844
1975
  #
1845
1976
  # @!attribute [rw] bucket
@@ -1866,6 +1997,11 @@ module Aws::S3
1866
1997
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1867
1998
  # @return [String]
1868
1999
  #
2000
+ # @!attribute [rw] bypass_governance_retention
2001
+ # Indicates whether S3 Object Lock should bypass Governance-mode
2002
+ # restrictions to process this operation.
2003
+ # @return [Boolean]
2004
+ #
1869
2005
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectRequest AWS API Documentation
1870
2006
  #
1871
2007
  class DeleteObjectRequest < Struct.new(
@@ -1873,7 +2009,8 @@ module Aws::S3
1873
2009
  :key,
1874
2010
  :mfa,
1875
2011
  :version_id,
1876
- :request_payer)
2012
+ :request_payer,
2013
+ :bypass_governance_retention)
1877
2014
  include Aws::Structure
1878
2015
  end
1879
2016
 
@@ -1952,6 +2089,7 @@ module Aws::S3
1952
2089
  # },
1953
2090
  # mfa: "MFA",
1954
2091
  # request_payer: "requester", # accepts requester
2092
+ # bypass_governance_retention: false,
1955
2093
  # }
1956
2094
  #
1957
2095
  # @!attribute [rw] bucket
@@ -1974,13 +2112,39 @@ module Aws::S3
1974
2112
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1975
2113
  # @return [String]
1976
2114
  #
2115
+ # @!attribute [rw] bypass_governance_retention
2116
+ # Specifies whether you want to delete this object even if it has a
2117
+ # Governance-type Object Lock in place. You must have sufficient
2118
+ # permissions to perform this operation.
2119
+ # @return [Boolean]
2120
+ #
1977
2121
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectsRequest AWS API Documentation
1978
2122
  #
1979
2123
  class DeleteObjectsRequest < Struct.new(
1980
2124
  :bucket,
1981
2125
  :delete,
1982
2126
  :mfa,
1983
- :request_payer)
2127
+ :request_payer,
2128
+ :bypass_governance_retention)
2129
+ include Aws::Structure
2130
+ end
2131
+
2132
+ # @note When making an API call, you may pass DeletePublicAccessBlockRequest
2133
+ # data as a hash:
2134
+ #
2135
+ # {
2136
+ # bucket: "BucketName", # required
2137
+ # }
2138
+ #
2139
+ # @!attribute [rw] bucket
2140
+ # The Amazon S3 bucket whose `PublicAccessBlock` configuration you
2141
+ # want to delete.
2142
+ # @return [String]
2143
+ #
2144
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeletePublicAccessBlockRequest AWS API Documentation
2145
+ #
2146
+ class DeletePublicAccessBlockRequest < Struct.new(
2147
+ :bucket)
1984
2148
  include Aws::Structure
1985
2149
  end
1986
2150
 
@@ -2006,7 +2170,7 @@ module Aws::S3
2006
2170
  include Aws::Structure
2007
2171
  end
2008
2172
 
2009
- # Container for replication destination information.
2173
+ # A container for information about the replication destination.
2010
2174
  #
2011
2175
  # @note When making an API call, you may pass Destination
2012
2176
  # data as a hash:
@@ -2014,7 +2178,7 @@ module Aws::S3
2014
2178
  # {
2015
2179
  # bucket: "BucketName", # required
2016
2180
  # account: "AccountId",
2017
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
2181
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
2018
2182
  # access_control_translation: {
2019
2183
  # owner: "Destination", # required, accepts Destination
2020
2184
  # },
@@ -2024,26 +2188,43 @@ module Aws::S3
2024
2188
  # }
2025
2189
  #
2026
2190
  # @!attribute [rw] bucket
2027
- # Amazon resource name (ARN) of the bucket where you want Amazon S3 to
2028
- # store replicas of the object identified by the rule.
2191
+ # The Amazon Resource Name (ARN) of the bucket where you want Amazon
2192
+ # S3 to store replicas of the object identified by the rule.
2193
+ #
2194
+ # If there are multiple rules in your replication configuration, all
2195
+ # rules must specify the same bucket as the destination. A replication
2196
+ # configuration can replicate objects to only one destination bucket.
2029
2197
  # @return [String]
2030
2198
  #
2031
2199
  # @!attribute [rw] account
2032
- # Account ID of the destination bucket. Currently this is only being
2033
- # verified if Access Control Translation is enabled
2200
+ # The account ID of the destination bucket. Currently, Amazon S3
2201
+ # verifies this value only if Access Control Translation is enabled.
2202
+ #
2203
+ # In a cross-account scenario, if you change replica ownership to the
2204
+ # AWS account that owns the destination bucket by adding the
2205
+ # `AccessControlTranslation` element, this is the account ID of the
2206
+ # owner of the destination bucket.
2034
2207
  # @return [String]
2035
2208
  #
2036
2209
  # @!attribute [rw] storage_class
2037
- # The class of storage used to store the object.
2210
+ # The class of storage used to store the object. By default Amazon S3
2211
+ # uses storage class of the source object when creating a replica.
2038
2212
  # @return [String]
2039
2213
  #
2040
2214
  # @!attribute [rw] access_control_translation
2041
- # Container for information regarding the access control for replicas.
2215
+ # A container for information about access control for replicas.
2216
+ #
2217
+ # Use this element only in a cross-account scenario where source and
2218
+ # destination bucket owners are not the same to change replica
2219
+ # ownership to the AWS account that owns the destination bucket. If
2220
+ # you don't add this element to the replication configuration, the
2221
+ # replicas are owned by same AWS account that owns the source object.
2042
2222
  # @return [Types::AccessControlTranslation]
2043
2223
  #
2044
2224
  # @!attribute [rw] encryption_configuration
2045
- # Container for information regarding encryption based configuration
2046
- # for replicas.
2225
+ # A container that provides information about encryption. If
2226
+ # `SourceSelectionCriteria` is specified, you must specify this
2227
+ # element.
2047
2228
  # @return [Types::EncryptionConfiguration]
2048
2229
  #
2049
2230
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Destination AWS API Documentation
@@ -2093,8 +2274,8 @@ module Aws::S3
2093
2274
  include Aws::Structure
2094
2275
  end
2095
2276
 
2096
- # Container for information regarding encryption based configuration for
2097
- # replicas.
2277
+ # A container for information about the encryption-based configuration
2278
+ # for replicas.
2098
2279
  #
2099
2280
  # @note When making an API call, you may pass EncryptionConfiguration
2100
2281
  # data as a hash:
@@ -2104,7 +2285,9 @@ module Aws::S3
2104
2285
  # }
2105
2286
  #
2106
2287
  # @!attribute [rw] replica_kms_key_id
2107
- # The id of the KMS key used to encrypt the replica object.
2288
+ # The ID of the AWS KMS key for the AWS Region where the destination
2289
+ # bucket resides. Amazon S3 uses this key to encrypt the replica
2290
+ # object.
2108
2291
  # @return [String]
2109
2292
  #
2110
2293
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/EncryptionConfiguration AWS API Documentation
@@ -2114,6 +2297,13 @@ module Aws::S3
2114
2297
  include Aws::Structure
2115
2298
  end
2116
2299
 
2300
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/EndEvent AWS API Documentation
2301
+ #
2302
+ class EndEvent < Struct.new(
2303
+ :event_type)
2304
+ include Aws::Structure
2305
+ end
2306
+
2117
2307
  # @!attribute [rw] key
2118
2308
  # @return [String]
2119
2309
  #
@@ -2154,8 +2344,8 @@ module Aws::S3
2154
2344
  include Aws::Structure
2155
2345
  end
2156
2346
 
2157
- # Container for key value pair that defines the criteria for the filter
2158
- # rule.
2347
+ # A container for a key value pair that defines the criteria for the
2348
+ # filter rule.
2159
2349
  #
2160
2350
  # @note When making an API call, you may pass FilterRule
2161
2351
  # data as a hash:
@@ -2166,16 +2356,16 @@ module Aws::S3
2166
2356
  # }
2167
2357
  #
2168
2358
  # @!attribute [rw] name
2169
- # Object key name prefix or suffix identifying one or more objects to
2170
- # which the filtering rule applies. Maximum prefix length can be up to
2359
+ # The object key name prefix or suffix identifying one or more objects
2360
+ # to which the filtering rule applies. The maximum prefix length is
2171
2361
  # 1,024 characters. Overlapping prefixes and suffixes are not
2172
- # supported. For more information, go to [Configuring Event
2173
- # Notifications][1] in the Amazon Simple Storage Service Developer
2174
- # Guide.
2362
+ # supported. For more information, see [Configuring Event
2363
+ # Notifications][1] in the *Amazon Simple Storage Service Developer
2364
+ # Guide*.
2175
2365
  #
2176
2366
  #
2177
2367
  #
2178
- # [1]: http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
2368
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
2179
2369
  # @return [String]
2180
2370
  #
2181
2371
  # @!attribute [rw] value
@@ -2574,9 +2764,39 @@ module Aws::S3
2574
2764
  include Aws::Structure
2575
2765
  end
2576
2766
 
2767
+ # @!attribute [rw] policy_status
2768
+ # The policy status for the specified bucket.
2769
+ # @return [Types::PolicyStatus]
2770
+ #
2771
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyStatusOutput AWS API Documentation
2772
+ #
2773
+ class GetBucketPolicyStatusOutput < Struct.new(
2774
+ :policy_status)
2775
+ include Aws::Structure
2776
+ end
2777
+
2778
+ # @note When making an API call, you may pass GetBucketPolicyStatusRequest
2779
+ # data as a hash:
2780
+ #
2781
+ # {
2782
+ # bucket: "BucketName", # required
2783
+ # }
2784
+ #
2785
+ # @!attribute [rw] bucket
2786
+ # The name of the Amazon S3 bucket whose policy status you want to
2787
+ # retrieve.
2788
+ # @return [String]
2789
+ #
2790
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyStatusRequest AWS API Documentation
2791
+ #
2792
+ class GetBucketPolicyStatusRequest < Struct.new(
2793
+ :bucket)
2794
+ include Aws::Structure
2795
+ end
2796
+
2577
2797
  # @!attribute [rw] replication_configuration
2578
- # Container for replication rules. You can add as many as 1,000 rules.
2579
- # Total replication configuration size can be up to 2 MB.
2798
+ # A container for replication rules. You can add up to 1,000 rules.
2799
+ # The maximum size of a replication configuration is 2 MB.
2580
2800
  # @return [Types::ReplicationConfiguration]
2581
2801
  #
2582
2802
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketReplicationOutput AWS API Documentation
@@ -2792,6 +3012,89 @@ module Aws::S3
2792
3012
  include Aws::Structure
2793
3013
  end
2794
3014
 
3015
+ # @!attribute [rw] legal_hold
3016
+ # The current Legal Hold status for the specified object.
3017
+ # @return [Types::ObjectLockLegalHold]
3018
+ #
3019
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHoldOutput AWS API Documentation
3020
+ #
3021
+ class GetObjectLegalHoldOutput < Struct.new(
3022
+ :legal_hold)
3023
+ include Aws::Structure
3024
+ end
3025
+
3026
+ # @note When making an API call, you may pass GetObjectLegalHoldRequest
3027
+ # data as a hash:
3028
+ #
3029
+ # {
3030
+ # bucket: "BucketName", # required
3031
+ # key: "ObjectKey", # required
3032
+ # version_id: "ObjectVersionId",
3033
+ # request_payer: "requester", # accepts requester
3034
+ # }
3035
+ #
3036
+ # @!attribute [rw] bucket
3037
+ # The bucket containing the object whose Legal Hold status you want to
3038
+ # retrieve.
3039
+ # @return [String]
3040
+ #
3041
+ # @!attribute [rw] key
3042
+ # The key name for the object whose Legal Hold status you want to
3043
+ # retrieve.
3044
+ # @return [String]
3045
+ #
3046
+ # @!attribute [rw] version_id
3047
+ # The version ID of the object whose Legal Hold status you want to
3048
+ # retrieve.
3049
+ # @return [String]
3050
+ #
3051
+ # @!attribute [rw] request_payer
3052
+ # Confirms that the requester knows that she or he will be charged for
3053
+ # the request. Bucket owners need not specify this parameter in their
3054
+ # requests. Documentation on downloading objects from requester pays
3055
+ # buckets can be found at
3056
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
3057
+ # @return [String]
3058
+ #
3059
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHoldRequest AWS API Documentation
3060
+ #
3061
+ class GetObjectLegalHoldRequest < Struct.new(
3062
+ :bucket,
3063
+ :key,
3064
+ :version_id,
3065
+ :request_payer)
3066
+ include Aws::Structure
3067
+ end
3068
+
3069
+ # @!attribute [rw] object_lock_configuration
3070
+ # The specified bucket's Object Lock configuration.
3071
+ # @return [Types::ObjectLockConfiguration]
3072
+ #
3073
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfigurationOutput AWS API Documentation
3074
+ #
3075
+ class GetObjectLockConfigurationOutput < Struct.new(
3076
+ :object_lock_configuration)
3077
+ include Aws::Structure
3078
+ end
3079
+
3080
+ # @note When making an API call, you may pass GetObjectLockConfigurationRequest
3081
+ # data as a hash:
3082
+ #
3083
+ # {
3084
+ # bucket: "BucketName", # required
3085
+ # }
3086
+ #
3087
+ # @!attribute [rw] bucket
3088
+ # The bucket whose Object Lock configuration you want to retrieve.
3089
+ # @return [String]
3090
+ #
3091
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfigurationRequest AWS API Documentation
3092
+ #
3093
+ class GetObjectLockConfigurationRequest < Struct.new(
3094
+ :bucket)
3095
+ include Aws::Structure
3096
+ end
3097
+
2795
3098
  # @!attribute [rw] body
2796
3099
  # Object data.
2797
3100
  # @return [IO]
@@ -2928,6 +3231,20 @@ module Aws::S3
2928
3231
  # The number of tags, if any, on the object.
2929
3232
  # @return [Integer]
2930
3233
  #
3234
+ # @!attribute [rw] object_lock_mode
3235
+ # The Object Lock mode currently in place for this object.
3236
+ # @return [String]
3237
+ #
3238
+ # @!attribute [rw] object_lock_retain_until_date
3239
+ # The date and time when this object's Object Lock will expire.
3240
+ # @return [Time]
3241
+ #
3242
+ # @!attribute [rw] object_lock_legal_hold_status
3243
+ # Indicates whether this object has an active legal hold. This field
3244
+ # is only returned if you have permission to view an object's legal
3245
+ # hold status.
3246
+ # @return [String]
3247
+ #
2931
3248
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectOutput AWS API Documentation
2932
3249
  #
2933
3250
  class GetObjectOutput < Struct.new(
@@ -2959,7 +3276,10 @@ module Aws::S3
2959
3276
  :request_charged,
2960
3277
  :replication_status,
2961
3278
  :parts_count,
2962
- :tag_count)
3279
+ :tag_count,
3280
+ :object_lock_mode,
3281
+ :object_lock_retain_until_date,
3282
+ :object_lock_legal_hold_status)
2963
3283
  include Aws::Structure
2964
3284
  end
2965
3285
 
@@ -3107,6 +3427,60 @@ module Aws::S3
3107
3427
  include Aws::Structure
3108
3428
  end
3109
3429
 
3430
+ # @!attribute [rw] retention
3431
+ # The container element for an object's retention settings.
3432
+ # @return [Types::ObjectLockRetention]
3433
+ #
3434
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetentionOutput AWS API Documentation
3435
+ #
3436
+ class GetObjectRetentionOutput < Struct.new(
3437
+ :retention)
3438
+ include Aws::Structure
3439
+ end
3440
+
3441
+ # @note When making an API call, you may pass GetObjectRetentionRequest
3442
+ # data as a hash:
3443
+ #
3444
+ # {
3445
+ # bucket: "BucketName", # required
3446
+ # key: "ObjectKey", # required
3447
+ # version_id: "ObjectVersionId",
3448
+ # request_payer: "requester", # accepts requester
3449
+ # }
3450
+ #
3451
+ # @!attribute [rw] bucket
3452
+ # The bucket containing the object whose retention settings you want
3453
+ # to retrieve.
3454
+ # @return [String]
3455
+ #
3456
+ # @!attribute [rw] key
3457
+ # The key name for the object whose retention settings you want to
3458
+ # retrieve.
3459
+ # @return [String]
3460
+ #
3461
+ # @!attribute [rw] version_id
3462
+ # The version ID for the object whose retention settings you want to
3463
+ # retrieve.
3464
+ # @return [String]
3465
+ #
3466
+ # @!attribute [rw] request_payer
3467
+ # Confirms that the requester knows that she or he will be charged for
3468
+ # the request. Bucket owners need not specify this parameter in their
3469
+ # requests. Documentation on downloading objects from requester pays
3470
+ # buckets can be found at
3471
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
3472
+ # @return [String]
3473
+ #
3474
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetentionRequest AWS API Documentation
3475
+ #
3476
+ class GetObjectRetentionRequest < Struct.new(
3477
+ :bucket,
3478
+ :key,
3479
+ :version_id,
3480
+ :request_payer)
3481
+ include Aws::Structure
3482
+ end
3483
+
3110
3484
  # @!attribute [rw] version_id
3111
3485
  # @return [String]
3112
3486
  #
@@ -3196,6 +3570,37 @@ module Aws::S3
3196
3570
  include Aws::Structure
3197
3571
  end
3198
3572
 
3573
+ # @!attribute [rw] public_access_block_configuration
3574
+ # The `PublicAccessBlock` configuration currently in effect for this
3575
+ # Amazon S3 bucket.
3576
+ # @return [Types::PublicAccessBlockConfiguration]
3577
+ #
3578
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetPublicAccessBlockOutput AWS API Documentation
3579
+ #
3580
+ class GetPublicAccessBlockOutput < Struct.new(
3581
+ :public_access_block_configuration)
3582
+ include Aws::Structure
3583
+ end
3584
+
3585
+ # @note When making an API call, you may pass GetPublicAccessBlockRequest
3586
+ # data as a hash:
3587
+ #
3588
+ # {
3589
+ # bucket: "BucketName", # required
3590
+ # }
3591
+ #
3592
+ # @!attribute [rw] bucket
3593
+ # The name of the Amazon S3 bucket whose `PublicAccessBlock`
3594
+ # configuration you want to retrieve.
3595
+ # @return [String]
3596
+ #
3597
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetPublicAccessBlockRequest AWS API Documentation
3598
+ #
3599
+ class GetPublicAccessBlockRequest < Struct.new(
3600
+ :bucket)
3601
+ include Aws::Structure
3602
+ end
3603
+
3199
3604
  # @note When making an API call, you may pass GlacierJobParameters
3200
3605
  # data as a hash:
3201
3606
  #
@@ -3426,6 +3831,18 @@ module Aws::S3
3426
3831
  # The count of parts this object has.
3427
3832
  # @return [Integer]
3428
3833
  #
3834
+ # @!attribute [rw] object_lock_mode
3835
+ # The Object Lock mode currently in place for this object.
3836
+ # @return [String]
3837
+ #
3838
+ # @!attribute [rw] object_lock_retain_until_date
3839
+ # The date and time when this object's Object Lock will expire.
3840
+ # @return [Time]
3841
+ #
3842
+ # @!attribute [rw] object_lock_legal_hold_status
3843
+ # The Legal Hold status for the specified object.
3844
+ # @return [String]
3845
+ #
3429
3846
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObjectOutput AWS API Documentation
3430
3847
  #
3431
3848
  class HeadObjectOutput < Struct.new(
@@ -3454,7 +3871,10 @@ module Aws::S3
3454
3871
  :storage_class,
3455
3872
  :request_charged,
3456
3873
  :replication_status,
3457
- :parts_count)
3874
+ :parts_count,
3875
+ :object_lock_mode,
3876
+ :object_lock_retain_until_date,
3877
+ :object_lock_legal_hold_status)
3458
3878
  include Aws::Structure
3459
3879
  end
3460
3880
 
@@ -3618,11 +4038,14 @@ module Aws::S3
3618
4038
  # record_delimiter: "RecordDelimiter",
3619
4039
  # field_delimiter: "FieldDelimiter",
3620
4040
  # quote_character: "QuoteCharacter",
4041
+ # allow_quoted_record_delimiter: false,
3621
4042
  # },
3622
- # compression_type: "NONE", # accepts NONE, GZIP
4043
+ # compression_type: "NONE", # accepts NONE, GZIP, BZIP2
3623
4044
  # json: {
3624
4045
  # type: "DOCUMENT", # accepts DOCUMENT, LINES
3625
4046
  # },
4047
+ # parquet: {
4048
+ # },
3626
4049
  # }
3627
4050
  #
3628
4051
  # @!attribute [rw] csv
@@ -3630,20 +4053,25 @@ module Aws::S3
3630
4053
  # @return [Types::CSVInput]
3631
4054
  #
3632
4055
  # @!attribute [rw] compression_type
3633
- # Specifies object's compression format. Valid values: NONE, GZIP.
3634
- # Default Value: NONE.
4056
+ # Specifies object's compression format. Valid values: NONE, GZIP,
4057
+ # BZIP2. Default Value: NONE.
3635
4058
  # @return [String]
3636
4059
  #
3637
4060
  # @!attribute [rw] json
3638
4061
  # Specifies JSON as object's input serialization format.
3639
4062
  # @return [Types::JSONInput]
3640
4063
  #
4064
+ # @!attribute [rw] parquet
4065
+ # Specifies Parquet as object's input serialization format.
4066
+ # @return [Types::ParquetInput]
4067
+ #
3641
4068
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InputSerialization AWS API Documentation
3642
4069
  #
3643
4070
  class InputSerialization < Struct.new(
3644
4071
  :csv,
3645
4072
  :compression_type,
3646
- :json)
4073
+ :json,
4074
+ :parquet)
3647
4075
  include Aws::Structure
3648
4076
  end
3649
4077
 
@@ -3655,7 +4083,7 @@ module Aws::S3
3655
4083
  # s3_bucket_destination: { # required
3656
4084
  # account_id: "AccountId",
3657
4085
  # bucket: "BucketName", # required
3658
- # format: "CSV", # required, accepts CSV, ORC
4086
+ # format: "CSV", # required, accepts CSV, ORC, Parquet
3659
4087
  # prefix: "Prefix",
3660
4088
  # encryption: {
3661
4089
  # sses3: {
@@ -3672,7 +4100,7 @@ module Aws::S3
3672
4100
  # },
3673
4101
  # id: "InventoryId", # required
3674
4102
  # included_object_versions: "All", # required, accepts All, Current
3675
- # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus
4103
+ # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus, ObjectLockRetainUntilDate, ObjectLockMode, ObjectLockLegalHoldStatus
3676
4104
  # schedule: { # required
3677
4105
  # frequency: "Daily", # required, accepts Daily, Weekly
3678
4106
  # },
@@ -3729,7 +4157,7 @@ module Aws::S3
3729
4157
  # s3_bucket_destination: { # required
3730
4158
  # account_id: "AccountId",
3731
4159
  # bucket: "BucketName", # required
3732
- # format: "CSV", # required, accepts CSV, ORC
4160
+ # format: "CSV", # required, accepts CSV, ORC, Parquet
3733
4161
  # prefix: "Prefix",
3734
4162
  # encryption: {
3735
4163
  # sses3: {
@@ -3768,12 +4196,11 @@ module Aws::S3
3768
4196
  # }
3769
4197
  #
3770
4198
  # @!attribute [rw] sses3
3771
- # Specifies the use of SSE-S3 to encrypt delievered Inventory reports.
4199
+ # Specifies the use of SSE-S3 to encrypt delivered Inventory reports.
3772
4200
  # @return [Types::SSES3]
3773
4201
  #
3774
4202
  # @!attribute [rw] ssekms
3775
- # Specifies the use of SSE-KMS to encrypt delievered Inventory
3776
- # reports.
4203
+ # Specifies the use of SSE-KMS to encrypt delivered Inventory reports.
3777
4204
  # @return [Types::SSEKMS]
3778
4205
  #
3779
4206
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InventoryEncryption AWS API Documentation
@@ -3809,7 +4236,7 @@ module Aws::S3
3809
4236
  # {
3810
4237
  # account_id: "AccountId",
3811
4238
  # bucket: "BucketName", # required
3812
- # format: "CSV", # required, accepts CSV, ORC
4239
+ # format: "CSV", # required, accepts CSV, ORC, Parquet
3813
4240
  # prefix: "Prefix",
3814
4241
  # encryption: {
3815
4242
  # sses3: {
@@ -3907,7 +4334,8 @@ module Aws::S3
3907
4334
  include Aws::Structure
3908
4335
  end
3909
4336
 
3910
- # Container for specifying the AWS Lambda notification configuration.
4337
+ # A container for specifying the configuration for AWS Lambda
4338
+ # notifications.
3911
4339
  #
3912
4340
  # @note When making an API call, you may pass LambdaFunctionConfiguration
3913
4341
  # data as a hash:
@@ -3915,7 +4343,7 @@ module Aws::S3
3915
4343
  # {
3916
4344
  # id: "NotificationId",
3917
4345
  # lambda_function_arn: "LambdaFunctionArn", # required
3918
- # 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
4346
+ # 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
3919
4347
  # filter: {
3920
4348
  # key: {
3921
4349
  # filter_rules: [
@@ -3929,27 +4357,27 @@ module Aws::S3
3929
4357
  # }
3930
4358
  #
3931
4359
  # @!attribute [rw] id
3932
- # Optional unique identifier for configurations in a notification
4360
+ # An optional unique identifier for configurations in a notification
3933
4361
  # configuration. If you don't provide one, Amazon S3 will assign an
3934
4362
  # ID.
3935
4363
  # @return [String]
3936
4364
  #
3937
4365
  # @!attribute [rw] lambda_function_arn
3938
- # Lambda cloud function ARN that Amazon S3 can invoke when it detects
3939
- # events of the specified type.
4366
+ # The Amazon Resource Name (ARN) of the Lambda cloud function that
4367
+ # Amazon S3 can invoke when it detects events of the specified type.
3940
4368
  # @return [String]
3941
4369
  #
3942
4370
  # @!attribute [rw] events
3943
4371
  # @return [Array<String>]
3944
4372
  #
3945
4373
  # @!attribute [rw] filter
3946
- # Container for object key name filtering rules. For information about
3947
- # key name filtering, go to [Configuring Event Notifications][1] in
3948
- # the Amazon Simple Storage Service Developer Guide.
4374
+ # A container for object key name filtering rules. For information
4375
+ # about key name filtering, see [Configuring Event Notifications][1]
4376
+ # in the *Amazon Simple Storage Service Developer Guide*.
3949
4377
  #
3950
4378
  #
3951
4379
  #
3952
- # [1]: http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
4380
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
3953
4381
  # @return [Types::NotificationConfigurationFilter]
3954
4382
  #
3955
4383
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/LambdaFunctionConfiguration AWS API Documentation
@@ -3979,11 +4407,11 @@ module Aws::S3
3979
4407
  # transition: {
3980
4408
  # date: Time.now,
3981
4409
  # days: 1,
3982
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
4410
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
3983
4411
  # },
3984
4412
  # noncurrent_version_transition: {
3985
4413
  # noncurrent_days: 1,
3986
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
4414
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
3987
4415
  # },
3988
4416
  # noncurrent_version_expiration: {
3989
4417
  # noncurrent_days: 1,
@@ -4072,13 +4500,13 @@ module Aws::S3
4072
4500
  # {
4073
4501
  # date: Time.now,
4074
4502
  # days: 1,
4075
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
4503
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
4076
4504
  # },
4077
4505
  # ],
4078
4506
  # noncurrent_version_transitions: [
4079
4507
  # {
4080
4508
  # noncurrent_days: 1,
4081
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
4509
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
4082
4510
  # },
4083
4511
  # ],
4084
4512
  # noncurrent_version_expiration: {
@@ -4099,7 +4527,7 @@ module Aws::S3
4099
4527
  #
4100
4528
  # @!attribute [rw] prefix
4101
4529
  # Prefix identifying one or more objects to which the rule applies.
4102
- # This is deprecated; use Filter instead.
4530
+ # This is No longer used; use Filter instead.
4103
4531
  # @return [String]
4104
4532
  #
4105
4533
  # @!attribute [rw] filter
@@ -5342,7 +5770,7 @@ module Aws::S3
5342
5770
  #
5343
5771
  #
5344
5772
  #
5345
- # [1]: http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html
5773
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#non-current-days-calculations
5346
5774
  # @return [Integer]
5347
5775
  #
5348
5776
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NoncurrentVersionExpiration AWS API Documentation
@@ -5353,19 +5781,20 @@ module Aws::S3
5353
5781
  end
5354
5782
 
5355
5783
  # Container for the transition rule that describes when noncurrent
5356
- # objects transition to the STANDARD\_IA, ONEZONE\_IA or GLACIER storage
5357
- # class. If your bucket is versioning-enabled (or versioning is
5358
- # suspended), you can set this action to request that Amazon S3
5359
- # transition noncurrent object versions to the STANDARD\_IA, ONEZONE\_IA
5360
- # or GLACIER storage class at a specific period in the object's
5361
- # lifetime.
5784
+ # objects transition to the STANDARD\_IA, ONEZONE\_IA,
5785
+ # INTELLIGENT\_TIERING, GLACIER or DEEP\_ARCHIVE storage class. If your
5786
+ # bucket is versioning-enabled (or versioning is suspended), you can set
5787
+ # this action to request that Amazon S3 transition noncurrent object
5788
+ # versions to the STANDARD\_IA, ONEZONE\_IA, INTELLIGENT\_TIERING,
5789
+ # GLACIER or DEEP\_ARCHIVE storage class at a specific period in the
5790
+ # object's lifetime.
5362
5791
  #
5363
5792
  # @note When making an API call, you may pass NoncurrentVersionTransition
5364
5793
  # data as a hash:
5365
5794
  #
5366
5795
  # {
5367
5796
  # noncurrent_days: 1,
5368
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
5797
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
5369
5798
  # }
5370
5799
  #
5371
5800
  # @!attribute [rw] noncurrent_days
@@ -5377,7 +5806,7 @@ module Aws::S3
5377
5806
  #
5378
5807
  #
5379
5808
  #
5380
- # [1]: http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html
5809
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html
5381
5810
  # @return [Integer]
5382
5811
  #
5383
5812
  # @!attribute [rw] storage_class
@@ -5392,8 +5821,9 @@ module Aws::S3
5392
5821
  include Aws::Structure
5393
5822
  end
5394
5823
 
5395
- # Container for specifying the notification configuration of the bucket.
5396
- # If this element is empty, notifications are turned off on the bucket.
5824
+ # A container for specifying the notification configuration of the
5825
+ # bucket. If this element is empty, notifications are turned off for the
5826
+ # bucket.
5397
5827
  #
5398
5828
  # @note When making an API call, you may pass NotificationConfiguration
5399
5829
  # data as a hash:
@@ -5403,7 +5833,7 @@ module Aws::S3
5403
5833
  # {
5404
5834
  # id: "NotificationId",
5405
5835
  # topic_arn: "TopicArn", # required
5406
- # 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
5836
+ # 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
5407
5837
  # filter: {
5408
5838
  # key: {
5409
5839
  # filter_rules: [
@@ -5420,7 +5850,7 @@ module Aws::S3
5420
5850
  # {
5421
5851
  # id: "NotificationId",
5422
5852
  # queue_arn: "QueueArn", # required
5423
- # 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
5853
+ # 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
5424
5854
  # filter: {
5425
5855
  # key: {
5426
5856
  # filter_rules: [
@@ -5437,7 +5867,7 @@ module Aws::S3
5437
5867
  # {
5438
5868
  # id: "NotificationId",
5439
5869
  # lambda_function_arn: "LambdaFunctionArn", # required
5440
- # 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
5870
+ # 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
5441
5871
  # filter: {
5442
5872
  # key: {
5443
5873
  # filter_rules: [
@@ -5476,20 +5906,20 @@ module Aws::S3
5476
5906
  # {
5477
5907
  # topic_configuration: {
5478
5908
  # id: "NotificationId",
5479
- # 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
5480
- # 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
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
5910
+ # 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
5481
5911
  # topic: "TopicArn",
5482
5912
  # },
5483
5913
  # queue_configuration: {
5484
5914
  # id: "NotificationId",
5485
- # 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
5486
- # 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
5915
+ # 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
5916
+ # 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
5487
5917
  # queue: "QueueArn",
5488
5918
  # },
5489
5919
  # cloud_function_configuration: {
5490
5920
  # id: "NotificationId",
5491
- # 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
5492
- # 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
5921
+ # 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
5922
+ # 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
5493
5923
  # cloud_function: "CloudFunction",
5494
5924
  # invocation_role: "CloudFunctionInvocationRole",
5495
5925
  # },
@@ -5513,13 +5943,13 @@ module Aws::S3
5513
5943
  include Aws::Structure
5514
5944
  end
5515
5945
 
5516
- # Container for object key name filtering rules. For information about
5517
- # key name filtering, go to [Configuring Event Notifications][1] in the
5518
- # Amazon Simple Storage Service Developer Guide.
5946
+ # A container for object key name filtering rules. For information about
5947
+ # key name filtering, see [Configuring Event Notifications][1] in the
5948
+ # *Amazon Simple Storage Service Developer Guide*.
5519
5949
  #
5520
5950
  #
5521
5951
  #
5522
- # [1]: http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
5952
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
5523
5953
  #
5524
5954
  # @note When making an API call, you may pass NotificationConfigurationFilter
5525
5955
  # data as a hash:
@@ -5536,7 +5966,7 @@ module Aws::S3
5536
5966
  # }
5537
5967
  #
5538
5968
  # @!attribute [rw] key
5539
- # Container for object key name prefix and suffix filtering rules.
5969
+ # A container for object key name prefix and suffix filtering rules.
5540
5970
  # @return [Types::S3KeyFilter]
5541
5971
  #
5542
5972
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NotificationConfigurationFilter AWS API Documentation
@@ -5601,6 +6031,110 @@ module Aws::S3
5601
6031
  include Aws::Structure
5602
6032
  end
5603
6033
 
6034
+ # The container element for Object Lock configuration parameters.
6035
+ #
6036
+ # @note When making an API call, you may pass ObjectLockConfiguration
6037
+ # data as a hash:
6038
+ #
6039
+ # {
6040
+ # object_lock_enabled: "Enabled", # accepts Enabled
6041
+ # rule: {
6042
+ # default_retention: {
6043
+ # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
6044
+ # days: 1,
6045
+ # years: 1,
6046
+ # },
6047
+ # },
6048
+ # }
6049
+ #
6050
+ # @!attribute [rw] object_lock_enabled
6051
+ # Indicates whether this bucket has an Object Lock configuration
6052
+ # enabled.
6053
+ # @return [String]
6054
+ #
6055
+ # @!attribute [rw] rule
6056
+ # The Object Lock rule in place for the specified object.
6057
+ # @return [Types::ObjectLockRule]
6058
+ #
6059
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectLockConfiguration AWS API Documentation
6060
+ #
6061
+ class ObjectLockConfiguration < Struct.new(
6062
+ :object_lock_enabled,
6063
+ :rule)
6064
+ include Aws::Structure
6065
+ end
6066
+
6067
+ # A Legal Hold configuration for an object.
6068
+ #
6069
+ # @note When making an API call, you may pass ObjectLockLegalHold
6070
+ # data as a hash:
6071
+ #
6072
+ # {
6073
+ # status: "ON", # accepts ON, OFF
6074
+ # }
6075
+ #
6076
+ # @!attribute [rw] status
6077
+ # Indicates whether the specified object has a Legal Hold in place.
6078
+ # @return [String]
6079
+ #
6080
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectLockLegalHold AWS API Documentation
6081
+ #
6082
+ class ObjectLockLegalHold < Struct.new(
6083
+ :status)
6084
+ include Aws::Structure
6085
+ end
6086
+
6087
+ # A Retention configuration for an object.
6088
+ #
6089
+ # @note When making an API call, you may pass ObjectLockRetention
6090
+ # data as a hash:
6091
+ #
6092
+ # {
6093
+ # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
6094
+ # retain_until_date: Time.now,
6095
+ # }
6096
+ #
6097
+ # @!attribute [rw] mode
6098
+ # Indicates the Retention mode for the specified object.
6099
+ # @return [String]
6100
+ #
6101
+ # @!attribute [rw] retain_until_date
6102
+ # The date on which this Object Lock Retention will expire.
6103
+ # @return [Time]
6104
+ #
6105
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectLockRetention AWS API Documentation
6106
+ #
6107
+ class ObjectLockRetention < Struct.new(
6108
+ :mode,
6109
+ :retain_until_date)
6110
+ include Aws::Structure
6111
+ end
6112
+
6113
+ # The container element for an Object Lock rule.
6114
+ #
6115
+ # @note When making an API call, you may pass ObjectLockRule
6116
+ # data as a hash:
6117
+ #
6118
+ # {
6119
+ # default_retention: {
6120
+ # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
6121
+ # days: 1,
6122
+ # years: 1,
6123
+ # },
6124
+ # }
6125
+ #
6126
+ # @!attribute [rw] default_retention
6127
+ # The default retention period that you want to apply to new objects
6128
+ # placed in the specified bucket.
6129
+ # @return [Types::DefaultRetention]
6130
+ #
6131
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectLockRule AWS API Documentation
6132
+ #
6133
+ class ObjectLockRule < Struct.new(
6134
+ :default_retention)
6135
+ include Aws::Structure
6136
+ end
6137
+
5604
6138
  # @!attribute [rw] etag
5605
6139
  # @return [String]
5606
6140
  #
@@ -5687,7 +6221,7 @@ module Aws::S3
5687
6221
  # value: "MetadataValue",
5688
6222
  # },
5689
6223
  # ],
5690
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
6224
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
5691
6225
  # },
5692
6226
  # }
5693
6227
  #
@@ -5759,6 +6293,12 @@ module Aws::S3
5759
6293
  include Aws::Structure
5760
6294
  end
5761
6295
 
6296
+ # @api private
6297
+ #
6298
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ParquetInput AWS API Documentation
6299
+ #
6300
+ class ParquetInput < Aws::EmptyStructure; end
6301
+
5762
6302
  # @!attribute [rw] part_number
5763
6303
  # Part number identifying the part. This is a positive integer between
5764
6304
  # 1 and 10,000.
@@ -5773,7 +6313,7 @@ module Aws::S3
5773
6313
  # @return [String]
5774
6314
  #
5775
6315
  # @!attribute [rw] size
5776
- # Size of the uploaded part data.
6316
+ # Size in bytes of the uploaded part data.
5777
6317
  # @return [Integer]
5778
6318
  #
5779
6319
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Part AWS API Documentation
@@ -5786,19 +6326,114 @@ module Aws::S3
5786
6326
  include Aws::Structure
5787
6327
  end
5788
6328
 
6329
+ # The container element for a bucket's policy status.
6330
+ #
6331
+ # @!attribute [rw] is_public
6332
+ # The policy status for this bucket. `TRUE` indicates that this bucket
6333
+ # is public. `FALSE` indicates that the bucket is not public.
6334
+ # @return [Boolean]
6335
+ #
6336
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PolicyStatus AWS API Documentation
6337
+ #
6338
+ class PolicyStatus < Struct.new(
6339
+ :is_public)
6340
+ include Aws::Structure
6341
+ end
6342
+
5789
6343
  # @!attribute [rw] bytes_scanned
5790
- # Current number of object bytes scanned.
6344
+ # The current number of object bytes scanned.
5791
6345
  # @return [Integer]
5792
6346
  #
5793
6347
  # @!attribute [rw] bytes_processed
5794
- # Current number of uncompressed object bytes processed.
6348
+ # The current number of uncompressed object bytes processed.
6349
+ # @return [Integer]
6350
+ #
6351
+ # @!attribute [rw] bytes_returned
6352
+ # The current number of bytes of records payload data returned.
5795
6353
  # @return [Integer]
5796
6354
  #
5797
6355
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Progress AWS API Documentation
5798
6356
  #
5799
6357
  class Progress < Struct.new(
5800
6358
  :bytes_scanned,
5801
- :bytes_processed)
6359
+ :bytes_processed,
6360
+ :bytes_returned)
6361
+ include Aws::Structure
6362
+ end
6363
+
6364
+ # @!attribute [rw] details
6365
+ # The Progress event details.
6366
+ # @return [Types::Progress]
6367
+ #
6368
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ProgressEvent AWS API Documentation
6369
+ #
6370
+ class ProgressEvent < Struct.new(
6371
+ :details,
6372
+ :event_type)
6373
+ include Aws::Structure
6374
+ end
6375
+
6376
+ # @note When making an API call, you may pass PublicAccessBlockConfiguration
6377
+ # data as a hash:
6378
+ #
6379
+ # {
6380
+ # block_public_acls: false,
6381
+ # ignore_public_acls: false,
6382
+ # block_public_policy: false,
6383
+ # restrict_public_buckets: false,
6384
+ # }
6385
+ #
6386
+ # @!attribute [rw] block_public_acls
6387
+ # Specifies whether Amazon S3 should block public access control lists
6388
+ # (ACLs) for this bucket and objects in this bucket. Setting this
6389
+ # element to `TRUE` causes the following behavior:
6390
+ #
6391
+ # * PUT Bucket acl and PUT Object acl calls fail if the specified ACL
6392
+ # is public.
6393
+ #
6394
+ # * PUT Object calls fail if the request includes a public ACL.
6395
+ #
6396
+ # Enabling this setting doesn't affect existing policies or ACLs.
6397
+ # @return [Boolean]
6398
+ #
6399
+ # @!attribute [rw] ignore_public_acls
6400
+ # Specifies whether Amazon S3 should ignore public ACLs for this
6401
+ # bucket and objects in this bucket. Setting this element to `TRUE`
6402
+ # causes Amazon S3 to ignore all public ACLs on this bucket and
6403
+ # objects in this bucket.
6404
+ #
6405
+ # Enabling this setting doesn't affect the persistence of any
6406
+ # existing ACLs and doesn't prevent new public ACLs from being set.
6407
+ # @return [Boolean]
6408
+ #
6409
+ # @!attribute [rw] block_public_policy
6410
+ # Specifies whether Amazon S3 should block public bucket policies for
6411
+ # this bucket. Setting this element to `TRUE` causes Amazon S3 to
6412
+ # reject calls to PUT Bucket policy if the specified bucket policy
6413
+ # allows public access.
6414
+ #
6415
+ # Enabling this setting doesn't affect existing bucket policies.
6416
+ # @return [Boolean]
6417
+ #
6418
+ # @!attribute [rw] restrict_public_buckets
6419
+ # Specifies whether Amazon S3 should restrict public bucket policies
6420
+ # for this bucket. Setting this element to `TRUE` restricts access to
6421
+ # this bucket to only AWS services and authorized users within this
6422
+ # account if the bucket has a public policy.
6423
+ #
6424
+ # Enabling this setting doesn't affect previously stored bucket
6425
+ # policies, except that public and cross-account access within any
6426
+ # public bucket policy, including non-public delegation to specific
6427
+ # accounts, is blocked.
6428
+ # @return [Boolean]
6429
+ #
6430
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PublicAccessBlockConfiguration AWS API Documentation
6431
+ #
6432
+ class PublicAccessBlockConfiguration < Struct.new(
6433
+ :block_public_acls,
6434
+ :ignore_public_acls,
6435
+ :block_public_policy,
6436
+ :restrict_public_buckets)
5802
6437
  include Aws::Structure
5803
6438
  end
5804
6439
 
@@ -6035,7 +6670,8 @@ module Aws::S3
6035
6670
  #
6036
6671
  # @!attribute [rw] content_md5
6037
6672
  # The base64-encoded 128-bit MD5 digest of the server-side encryption
6038
- # configuration.
6673
+ # configuration. This parameter is auto-populated when using the
6674
+ # command from the CLI
6039
6675
  # @return [String]
6040
6676
  #
6041
6677
  # @!attribute [rw] server_side_encryption_configuration
@@ -6063,7 +6699,7 @@ module Aws::S3
6063
6699
  # s3_bucket_destination: { # required
6064
6700
  # account_id: "AccountId",
6065
6701
  # bucket: "BucketName", # required
6066
- # format: "CSV", # required, accepts CSV, ORC
6702
+ # format: "CSV", # required, accepts CSV, ORC, Parquet
6067
6703
  # prefix: "Prefix",
6068
6704
  # encryption: {
6069
6705
  # sses3: {
@@ -6080,7 +6716,7 @@ module Aws::S3
6080
6716
  # },
6081
6717
  # id: "InventoryId", # required
6082
6718
  # included_object_versions: "All", # required, accepts All, Current
6083
- # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus
6719
+ # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus, ObjectLockRetainUntilDate, ObjectLockMode, ObjectLockLegalHoldStatus
6084
6720
  # schedule: { # required
6085
6721
  # frequency: "Daily", # required, accepts Daily, Weekly
6086
6722
  # },
@@ -6145,13 +6781,13 @@ module Aws::S3
6145
6781
  # {
6146
6782
  # date: Time.now,
6147
6783
  # days: 1,
6148
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
6784
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
6149
6785
  # },
6150
6786
  # ],
6151
6787
  # noncurrent_version_transitions: [
6152
6788
  # {
6153
6789
  # noncurrent_days: 1,
6154
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
6790
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
6155
6791
  # },
6156
6792
  # ],
6157
6793
  # noncurrent_version_expiration: {
@@ -6199,11 +6835,11 @@ module Aws::S3
6199
6835
  # transition: {
6200
6836
  # date: Time.now,
6201
6837
  # days: 1,
6202
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
6838
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
6203
6839
  # },
6204
6840
  # noncurrent_version_transition: {
6205
6841
  # noncurrent_days: 1,
6206
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
6842
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
6207
6843
  # },
6208
6844
  # noncurrent_version_expiration: {
6209
6845
  # noncurrent_days: 1,
@@ -6336,7 +6972,7 @@ module Aws::S3
6336
6972
  # {
6337
6973
  # id: "NotificationId",
6338
6974
  # topic_arn: "TopicArn", # required
6339
- # 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
6975
+ # 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
6340
6976
  # filter: {
6341
6977
  # key: {
6342
6978
  # filter_rules: [
@@ -6353,7 +6989,7 @@ module Aws::S3
6353
6989
  # {
6354
6990
  # id: "NotificationId",
6355
6991
  # queue_arn: "QueueArn", # required
6356
- # 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
6992
+ # 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
6357
6993
  # filter: {
6358
6994
  # key: {
6359
6995
  # filter_rules: [
@@ -6370,7 +7006,7 @@ module Aws::S3
6370
7006
  # {
6371
7007
  # id: "NotificationId",
6372
7008
  # lambda_function_arn: "LambdaFunctionArn", # required
6373
- # 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
7009
+ # 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
6374
7010
  # filter: {
6375
7011
  # key: {
6376
7012
  # filter_rules: [
@@ -6390,8 +7026,8 @@ module Aws::S3
6390
7026
  # @return [String]
6391
7027
  #
6392
7028
  # @!attribute [rw] notification_configuration
6393
- # Container for specifying the notification configuration of the
6394
- # bucket. If this element is empty, notifications are turned off on
7029
+ # A container for specifying the notification configuration of the
7030
+ # bucket. If this element is empty, notifications are turned off for
6395
7031
  # the bucket.
6396
7032
  # @return [Types::NotificationConfiguration]
6397
7033
  #
@@ -6412,20 +7048,20 @@ module Aws::S3
6412
7048
  # notification_configuration: { # required
6413
7049
  # topic_configuration: {
6414
7050
  # id: "NotificationId",
6415
- # 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
6416
- # 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
7051
+ # 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
7052
+ # 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
6417
7053
  # topic: "TopicArn",
6418
7054
  # },
6419
7055
  # queue_configuration: {
6420
7056
  # id: "NotificationId",
6421
- # 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
6422
- # 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
7057
+ # 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
7058
+ # 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
6423
7059
  # queue: "QueueArn",
6424
7060
  # },
6425
7061
  # cloud_function_configuration: {
6426
7062
  # id: "NotificationId",
6427
- # 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
6428
- # 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
7063
+ # 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
7064
+ # 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
6429
7065
  # cloud_function: "CloudFunction",
6430
7066
  # invocation_role: "CloudFunctionInvocationRole",
6431
7067
  # },
@@ -6496,7 +7132,24 @@ module Aws::S3
6496
7132
  # rules: [ # required
6497
7133
  # {
6498
7134
  # id: "ID",
6499
- # prefix: "Prefix", # required
7135
+ # priority: 1,
7136
+ # prefix: "Prefix",
7137
+ # filter: {
7138
+ # prefix: "Prefix",
7139
+ # tag: {
7140
+ # key: "ObjectKey", # required
7141
+ # value: "Value", # required
7142
+ # },
7143
+ # and: {
7144
+ # prefix: "Prefix",
7145
+ # tags: [
7146
+ # {
7147
+ # key: "ObjectKey", # required
7148
+ # value: "Value", # required
7149
+ # },
7150
+ # ],
7151
+ # },
7152
+ # },
6500
7153
  # status: "Enabled", # required, accepts Enabled, Disabled
6501
7154
  # source_selection_criteria: {
6502
7155
  # sse_kms_encrypted_objects: {
@@ -6506,7 +7159,7 @@ module Aws::S3
6506
7159
  # destination: { # required
6507
7160
  # bucket: "BucketName", # required
6508
7161
  # account: "AccountId",
6509
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
7162
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
6510
7163
  # access_control_translation: {
6511
7164
  # owner: "Destination", # required, accepts Destination
6512
7165
  # },
@@ -6514,9 +7167,13 @@ module Aws::S3
6514
7167
  # replica_kms_key_id: "ReplicaKmsKeyID",
6515
7168
  # },
6516
7169
  # },
7170
+ # delete_marker_replication: {
7171
+ # status: "Enabled", # accepts Enabled, Disabled
7172
+ # },
6517
7173
  # },
6518
7174
  # ],
6519
7175
  # },
7176
+ # token: "ObjectLockToken",
6520
7177
  # }
6521
7178
  #
6522
7179
  # @!attribute [rw] bucket
@@ -6526,16 +7183,20 @@ module Aws::S3
6526
7183
  # @return [String]
6527
7184
  #
6528
7185
  # @!attribute [rw] replication_configuration
6529
- # Container for replication rules. You can add as many as 1,000 rules.
6530
- # Total replication configuration size can be up to 2 MB.
7186
+ # A container for replication rules. You can add up to 1,000 rules.
7187
+ # The maximum size of a replication configuration is 2 MB.
6531
7188
  # @return [Types::ReplicationConfiguration]
6532
7189
  #
7190
+ # @!attribute [rw] token
7191
+ # @return [String]
7192
+ #
6533
7193
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketReplicationRequest AWS API Documentation
6534
7194
  #
6535
7195
  class PutBucketReplicationRequest < Struct.new(
6536
7196
  :bucket,
6537
7197
  :content_md5,
6538
- :replication_configuration)
7198
+ :replication_configuration,
7199
+ :token)
6539
7200
  include Aws::Structure
6540
7201
  end
6541
7202
 
@@ -6808,6 +7469,143 @@ module Aws::S3
6808
7469
  include Aws::Structure
6809
7470
  end
6810
7471
 
7472
+ # @!attribute [rw] request_charged
7473
+ # If present, indicates that the requester was successfully charged
7474
+ # for the request.
7475
+ # @return [String]
7476
+ #
7477
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHoldOutput AWS API Documentation
7478
+ #
7479
+ class PutObjectLegalHoldOutput < Struct.new(
7480
+ :request_charged)
7481
+ include Aws::Structure
7482
+ end
7483
+
7484
+ # @note When making an API call, you may pass PutObjectLegalHoldRequest
7485
+ # data as a hash:
7486
+ #
7487
+ # {
7488
+ # bucket: "BucketName", # required
7489
+ # key: "ObjectKey", # required
7490
+ # legal_hold: {
7491
+ # status: "ON", # accepts ON, OFF
7492
+ # },
7493
+ # request_payer: "requester", # accepts requester
7494
+ # version_id: "ObjectVersionId",
7495
+ # content_md5: "ContentMD5",
7496
+ # }
7497
+ #
7498
+ # @!attribute [rw] bucket
7499
+ # The bucket containing the object that you want to place a Legal Hold
7500
+ # on.
7501
+ # @return [String]
7502
+ #
7503
+ # @!attribute [rw] key
7504
+ # The key name for the object that you want to place a Legal Hold on.
7505
+ # @return [String]
7506
+ #
7507
+ # @!attribute [rw] legal_hold
7508
+ # Container element for the Legal Hold configuration you want to apply
7509
+ # to the specified object.
7510
+ # @return [Types::ObjectLockLegalHold]
7511
+ #
7512
+ # @!attribute [rw] request_payer
7513
+ # Confirms that the requester knows that she or he will be charged for
7514
+ # the request. Bucket owners need not specify this parameter in their
7515
+ # requests. Documentation on downloading objects from requester pays
7516
+ # buckets can be found at
7517
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
7518
+ # @return [String]
7519
+ #
7520
+ # @!attribute [rw] version_id
7521
+ # The version ID of the object that you want to place a Legal Hold on.
7522
+ # @return [String]
7523
+ #
7524
+ # @!attribute [rw] content_md5
7525
+ # The MD5 hash for the request body.
7526
+ # @return [String]
7527
+ #
7528
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHoldRequest AWS API Documentation
7529
+ #
7530
+ class PutObjectLegalHoldRequest < Struct.new(
7531
+ :bucket,
7532
+ :key,
7533
+ :legal_hold,
7534
+ :request_payer,
7535
+ :version_id,
7536
+ :content_md5)
7537
+ include Aws::Structure
7538
+ end
7539
+
7540
+ # @!attribute [rw] request_charged
7541
+ # If present, indicates that the requester was successfully charged
7542
+ # for the request.
7543
+ # @return [String]
7544
+ #
7545
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfigurationOutput AWS API Documentation
7546
+ #
7547
+ class PutObjectLockConfigurationOutput < Struct.new(
7548
+ :request_charged)
7549
+ include Aws::Structure
7550
+ end
7551
+
7552
+ # @note When making an API call, you may pass PutObjectLockConfigurationRequest
7553
+ # data as a hash:
7554
+ #
7555
+ # {
7556
+ # bucket: "BucketName", # required
7557
+ # object_lock_configuration: {
7558
+ # object_lock_enabled: "Enabled", # accepts Enabled
7559
+ # rule: {
7560
+ # default_retention: {
7561
+ # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
7562
+ # days: 1,
7563
+ # years: 1,
7564
+ # },
7565
+ # },
7566
+ # },
7567
+ # request_payer: "requester", # accepts requester
7568
+ # token: "ObjectLockToken",
7569
+ # content_md5: "ContentMD5",
7570
+ # }
7571
+ #
7572
+ # @!attribute [rw] bucket
7573
+ # The bucket whose Object Lock configuration you want to create or
7574
+ # replace.
7575
+ # @return [String]
7576
+ #
7577
+ # @!attribute [rw] object_lock_configuration
7578
+ # The Object Lock configuration that you want to apply to the
7579
+ # specified bucket.
7580
+ # @return [Types::ObjectLockConfiguration]
7581
+ #
7582
+ # @!attribute [rw] request_payer
7583
+ # Confirms that the requester knows that she or he will be charged for
7584
+ # the request. Bucket owners need not specify this parameter in their
7585
+ # requests. Documentation on downloading objects from requester pays
7586
+ # buckets can be found at
7587
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
7588
+ # @return [String]
7589
+ #
7590
+ # @!attribute [rw] token
7591
+ # A token to allow Object Lock to be enabled for an existing bucket.
7592
+ # @return [String]
7593
+ #
7594
+ # @!attribute [rw] content_md5
7595
+ # The MD5 hash for the request body.
7596
+ # @return [String]
7597
+ #
7598
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfigurationRequest AWS API Documentation
7599
+ #
7600
+ class PutObjectLockConfigurationRequest < Struct.new(
7601
+ :bucket,
7602
+ :object_lock_configuration,
7603
+ :request_payer,
7604
+ :token,
7605
+ :content_md5)
7606
+ include Aws::Structure
7607
+ end
7608
+
6811
7609
  # @!attribute [rw] expiration
6812
7610
  # If the object expiration is configured, this will contain the
6813
7611
  # expiration date (expiry-date) and rule ID (rule-id). The value of
@@ -6888,7 +7686,7 @@ module Aws::S3
6888
7686
  # "MetadataKey" => "MetadataValue",
6889
7687
  # },
6890
7688
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
6891
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
7689
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
6892
7690
  # website_redirect_location: "WebsiteRedirectLocation",
6893
7691
  # sse_customer_algorithm: "SSECustomerAlgorithm",
6894
7692
  # sse_customer_key: "SSECustomerKey",
@@ -6896,6 +7694,9 @@ module Aws::S3
6896
7694
  # ssekms_key_id: "SSEKMSKeyId",
6897
7695
  # request_payer: "requester", # accepts requester
6898
7696
  # tagging: "TaggingHeader",
7697
+ # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
7698
+ # object_lock_retain_until_date: Time.now,
7699
+ # object_lock_legal_hold_status: "ON", # accepts ON, OFF
6899
7700
  # }
6900
7701
  #
6901
7702
  # @!attribute [rw] acl
@@ -6934,7 +7735,8 @@ module Aws::S3
6934
7735
  # @return [Integer]
6935
7736
  #
6936
7737
  # @!attribute [rw] content_md5
6937
- # The base64-encoded 128-bit MD5 digest of the part data.
7738
+ # The base64-encoded 128-bit MD5 digest of the part data. This
7739
+ # parameter is auto-populated when using the command from the CLI
6938
7740
  # @return [String]
6939
7741
  #
6940
7742
  # @!attribute [rw] content_type
@@ -7023,7 +7825,21 @@ module Aws::S3
7023
7825
  #
7024
7826
  # @!attribute [rw] tagging
7025
7827
  # The tag-set for the object. The tag-set must be encoded as URL Query
7026
- # parameters
7828
+ # parameters. (For example, "Key1=Value1")
7829
+ # @return [String]
7830
+ #
7831
+ # @!attribute [rw] object_lock_mode
7832
+ # The Object Lock mode that you want to apply to this object.
7833
+ # @return [String]
7834
+ #
7835
+ # @!attribute [rw] object_lock_retain_until_date
7836
+ # The date and time when you want this object's Object Lock to
7837
+ # expire.
7838
+ # @return [Time]
7839
+ #
7840
+ # @!attribute [rw] object_lock_legal_hold_status
7841
+ # The Legal Hold status that you want to apply to the specified
7842
+ # object.
7027
7843
  # @return [String]
7028
7844
  #
7029
7845
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRequest AWS API Documentation
@@ -7054,45 +7870,125 @@ module Aws::S3
7054
7870
  :sse_customer_key_md5,
7055
7871
  :ssekms_key_id,
7056
7872
  :request_payer,
7057
- :tagging)
7873
+ :tagging,
7874
+ :object_lock_mode,
7875
+ :object_lock_retain_until_date,
7876
+ :object_lock_legal_hold_status)
7058
7877
  include Aws::Structure
7059
7878
  end
7060
7879
 
7061
- # @!attribute [rw] version_id
7880
+ # @!attribute [rw] request_charged
7881
+ # If present, indicates that the requester was successfully charged
7882
+ # for the request.
7062
7883
  # @return [String]
7063
7884
  #
7064
- # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectTaggingOutput AWS API Documentation
7885
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetentionOutput AWS API Documentation
7065
7886
  #
7066
- class PutObjectTaggingOutput < Struct.new(
7067
- :version_id)
7887
+ class PutObjectRetentionOutput < Struct.new(
7888
+ :request_charged)
7068
7889
  include Aws::Structure
7069
7890
  end
7070
7891
 
7071
- # @note When making an API call, you may pass PutObjectTaggingRequest
7892
+ # @note When making an API call, you may pass PutObjectRetentionRequest
7072
7893
  # data as a hash:
7073
7894
  #
7074
7895
  # {
7075
7896
  # bucket: "BucketName", # required
7076
7897
  # key: "ObjectKey", # required
7898
+ # retention: {
7899
+ # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
7900
+ # retain_until_date: Time.now,
7901
+ # },
7902
+ # request_payer: "requester", # accepts requester
7077
7903
  # version_id: "ObjectVersionId",
7904
+ # bypass_governance_retention: false,
7078
7905
  # content_md5: "ContentMD5",
7079
- # tagging: { # required
7080
- # tag_set: [ # required
7081
- # {
7082
- # key: "ObjectKey", # required
7083
- # value: "Value", # required
7084
- # },
7085
- # ],
7086
- # },
7087
7906
  # }
7088
7907
  #
7089
7908
  # @!attribute [rw] bucket
7909
+ # The bucket that contains the object you want to apply this Object
7910
+ # Retention configuration to.
7090
7911
  # @return [String]
7091
7912
  #
7092
7913
  # @!attribute [rw] key
7914
+ # The key name for the object that you want to apply this Object
7915
+ # Retention configuration to.
7093
7916
  # @return [String]
7094
7917
  #
7095
- # @!attribute [rw] version_id
7918
+ # @!attribute [rw] retention
7919
+ # The container element for the Object Retention configuration.
7920
+ # @return [Types::ObjectLockRetention]
7921
+ #
7922
+ # @!attribute [rw] request_payer
7923
+ # Confirms that the requester knows that she or he will be charged for
7924
+ # the request. Bucket owners need not specify this parameter in their
7925
+ # requests. Documentation on downloading objects from requester pays
7926
+ # buckets can be found at
7927
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
7928
+ # @return [String]
7929
+ #
7930
+ # @!attribute [rw] version_id
7931
+ # The version ID for the object that you want to apply this Object
7932
+ # Retention configuration to.
7933
+ # @return [String]
7934
+ #
7935
+ # @!attribute [rw] bypass_governance_retention
7936
+ # Indicates whether this operation should bypass Governance-mode
7937
+ # restrictions.j
7938
+ # @return [Boolean]
7939
+ #
7940
+ # @!attribute [rw] content_md5
7941
+ # The MD5 hash for the request body.
7942
+ # @return [String]
7943
+ #
7944
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetentionRequest AWS API Documentation
7945
+ #
7946
+ class PutObjectRetentionRequest < Struct.new(
7947
+ :bucket,
7948
+ :key,
7949
+ :retention,
7950
+ :request_payer,
7951
+ :version_id,
7952
+ :bypass_governance_retention,
7953
+ :content_md5)
7954
+ include Aws::Structure
7955
+ end
7956
+
7957
+ # @!attribute [rw] version_id
7958
+ # @return [String]
7959
+ #
7960
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectTaggingOutput AWS API Documentation
7961
+ #
7962
+ class PutObjectTaggingOutput < Struct.new(
7963
+ :version_id)
7964
+ include Aws::Structure
7965
+ end
7966
+
7967
+ # @note When making an API call, you may pass PutObjectTaggingRequest
7968
+ # data as a hash:
7969
+ #
7970
+ # {
7971
+ # bucket: "BucketName", # required
7972
+ # key: "ObjectKey", # required
7973
+ # version_id: "ObjectVersionId",
7974
+ # content_md5: "ContentMD5",
7975
+ # tagging: { # required
7976
+ # tag_set: [ # required
7977
+ # {
7978
+ # key: "ObjectKey", # required
7979
+ # value: "Value", # required
7980
+ # },
7981
+ # ],
7982
+ # },
7983
+ # }
7984
+ #
7985
+ # @!attribute [rw] bucket
7986
+ # @return [String]
7987
+ #
7988
+ # @!attribute [rw] key
7989
+ # @return [String]
7990
+ #
7991
+ # @!attribute [rw] version_id
7096
7992
  # @return [String]
7097
7993
  #
7098
7994
  # @!attribute [rw] content_md5
@@ -7112,8 +8008,53 @@ module Aws::S3
7112
8008
  include Aws::Structure
7113
8009
  end
7114
8010
 
7115
- # Container for specifying an configuration when you want Amazon S3 to
7116
- # publish events to an Amazon Simple Queue Service (Amazon SQS) queue.
8011
+ # @note When making an API call, you may pass PutPublicAccessBlockRequest
8012
+ # data as a hash:
8013
+ #
8014
+ # {
8015
+ # bucket: "BucketName", # required
8016
+ # content_md5: "ContentMD5",
8017
+ # public_access_block_configuration: { # required
8018
+ # block_public_acls: false,
8019
+ # ignore_public_acls: false,
8020
+ # block_public_policy: false,
8021
+ # restrict_public_buckets: false,
8022
+ # },
8023
+ # }
8024
+ #
8025
+ # @!attribute [rw] bucket
8026
+ # The name of the Amazon S3 bucket whose `PublicAccessBlock`
8027
+ # configuration you want to set.
8028
+ # @return [String]
8029
+ #
8030
+ # @!attribute [rw] content_md5
8031
+ # The MD5 hash of the `PutPublicAccessBlock` request body.
8032
+ # @return [String]
8033
+ #
8034
+ # @!attribute [rw] public_access_block_configuration
8035
+ # The `PublicAccessBlock` configuration that you want to apply to this
8036
+ # Amazon S3 bucket. You can enable the configuration options in any
8037
+ # combination. For more information about when Amazon S3 considers a
8038
+ # bucket or object public, see [The Meaning of "Public"][1] in the
8039
+ # *Amazon Simple Storage Service Developer Guide*.
8040
+ #
8041
+ #
8042
+ #
8043
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status
8044
+ # @return [Types::PublicAccessBlockConfiguration]
8045
+ #
8046
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutPublicAccessBlockRequest AWS API Documentation
8047
+ #
8048
+ class PutPublicAccessBlockRequest < Struct.new(
8049
+ :bucket,
8050
+ :content_md5,
8051
+ :public_access_block_configuration)
8052
+ include Aws::Structure
8053
+ end
8054
+
8055
+ # A container for specifying the configuration for publication of
8056
+ # messages to an Amazon Simple Queue Service (Amazon SQS) queue.when
8057
+ # Amazon S3 detects specified events.
7117
8058
  #
7118
8059
  # @note When making an API call, you may pass QueueConfiguration
7119
8060
  # data as a hash:
@@ -7121,7 +8062,7 @@ module Aws::S3
7121
8062
  # {
7122
8063
  # id: "NotificationId",
7123
8064
  # queue_arn: "QueueArn", # required
7124
- # 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
8065
+ # 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
7125
8066
  # filter: {
7126
8067
  # key: {
7127
8068
  # filter_rules: [
@@ -7135,27 +8076,28 @@ module Aws::S3
7135
8076
  # }
7136
8077
  #
7137
8078
  # @!attribute [rw] id
7138
- # Optional unique identifier for configurations in a notification
8079
+ # An optional unique identifier for configurations in a notification
7139
8080
  # configuration. If you don't provide one, Amazon S3 will assign an
7140
8081
  # ID.
7141
8082
  # @return [String]
7142
8083
  #
7143
8084
  # @!attribute [rw] queue_arn
7144
- # Amazon SQS queue ARN to which Amazon S3 will publish a message when
7145
- # it detects events of specified type.
8085
+ # The Amazon Resource Name (ARN) of the Amazon SQS queue to which
8086
+ # Amazon S3 will publish a message when it detects events of the
8087
+ # specified type.
7146
8088
  # @return [String]
7147
8089
  #
7148
8090
  # @!attribute [rw] events
7149
8091
  # @return [Array<String>]
7150
8092
  #
7151
8093
  # @!attribute [rw] filter
7152
- # Container for object key name filtering rules. For information about
7153
- # key name filtering, go to [Configuring Event Notifications][1] in
7154
- # the Amazon Simple Storage Service Developer Guide.
8094
+ # A container for object key name filtering rules. For information
8095
+ # about key name filtering, see [Configuring Event Notifications][1]
8096
+ # in the *Amazon Simple Storage Service Developer Guide*.
7155
8097
  #
7156
8098
  #
7157
8099
  #
7158
- # [1]: http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
8100
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
7159
8101
  # @return [Types::NotificationConfigurationFilter]
7160
8102
  #
7161
8103
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/QueueConfiguration AWS API Documentation
@@ -7173,19 +8115,19 @@ module Aws::S3
7173
8115
  #
7174
8116
  # {
7175
8117
  # id: "NotificationId",
7176
- # 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
7177
- # 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
8118
+ # 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
8119
+ # 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
7178
8120
  # queue: "QueueArn",
7179
8121
  # }
7180
8122
  #
7181
8123
  # @!attribute [rw] id
7182
- # Optional unique identifier for configurations in a notification
8124
+ # An optional unique identifier for configurations in a notification
7183
8125
  # configuration. If you don't provide one, Amazon S3 will assign an
7184
8126
  # ID.
7185
8127
  # @return [String]
7186
8128
  #
7187
8129
  # @!attribute [rw] event
7188
- # Bucket event for which to send notifications.
8130
+ # The bucket event for which to send notifications.
7189
8131
  # @return [String]
7190
8132
  #
7191
8133
  # @!attribute [rw] events
@@ -7204,6 +8146,18 @@ module Aws::S3
7204
8146
  include Aws::Structure
7205
8147
  end
7206
8148
 
8149
+ # @!attribute [rw] payload
8150
+ # The byte array of partial, one or more result records.
8151
+ # @return [String]
8152
+ #
8153
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RecordsEvent AWS API Documentation
8154
+ #
8155
+ class RecordsEvent < Struct.new(
8156
+ :payload,
8157
+ :event_type)
8158
+ include Aws::Structure
8159
+ end
8160
+
7207
8161
  # @note When making an API call, you may pass Redirect
7208
8162
  # data as a hash:
7209
8163
  #
@@ -7282,8 +8236,8 @@ module Aws::S3
7282
8236
  include Aws::Structure
7283
8237
  end
7284
8238
 
7285
- # Container for replication rules. You can add as many as 1,000 rules.
7286
- # Total replication configuration size can be up to 2 MB.
8239
+ # A container for replication rules. You can add up to 1,000 rules. The
8240
+ # maximum size of a replication configuration is 2 MB.
7287
8241
  #
7288
8242
  # @note When making an API call, you may pass ReplicationConfiguration
7289
8243
  # data as a hash:
@@ -7293,7 +8247,24 @@ module Aws::S3
7293
8247
  # rules: [ # required
7294
8248
  # {
7295
8249
  # id: "ID",
7296
- # prefix: "Prefix", # required
8250
+ # priority: 1,
8251
+ # prefix: "Prefix",
8252
+ # filter: {
8253
+ # prefix: "Prefix",
8254
+ # tag: {
8255
+ # key: "ObjectKey", # required
8256
+ # value: "Value", # required
8257
+ # },
8258
+ # and: {
8259
+ # prefix: "Prefix",
8260
+ # tags: [
8261
+ # {
8262
+ # key: "ObjectKey", # required
8263
+ # value: "Value", # required
8264
+ # },
8265
+ # ],
8266
+ # },
8267
+ # },
7297
8268
  # status: "Enabled", # required, accepts Enabled, Disabled
7298
8269
  # source_selection_criteria: {
7299
8270
  # sse_kms_encrypted_objects: {
@@ -7303,7 +8274,7 @@ module Aws::S3
7303
8274
  # destination: { # required
7304
8275
  # bucket: "BucketName", # required
7305
8276
  # account: "AccountId",
7306
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
8277
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
7307
8278
  # access_control_translation: {
7308
8279
  # owner: "Destination", # required, accepts Destination
7309
8280
  # },
@@ -7311,19 +8282,23 @@ module Aws::S3
7311
8282
  # replica_kms_key_id: "ReplicaKmsKeyID",
7312
8283
  # },
7313
8284
  # },
8285
+ # delete_marker_replication: {
8286
+ # status: "Enabled", # accepts Enabled, Disabled
8287
+ # },
7314
8288
  # },
7315
8289
  # ],
7316
8290
  # }
7317
8291
  #
7318
8292
  # @!attribute [rw] role
7319
- # Amazon Resource Name (ARN) of an IAM role for Amazon S3 to assume
7320
- # when replicating the objects.
8293
+ # The Amazon Resource Name (ARN) of the AWS Identity and Access
8294
+ # Management (IAM) role that Amazon S3 can assume when replicating the
8295
+ # objects.
7321
8296
  # @return [String]
7322
8297
  #
7323
8298
  # @!attribute [rw] rules
7324
- # Container for information about a particular replication rule.
7325
- # Replication configuration must have at least one rule and can
7326
- # contain up to 1,000 rules.
8299
+ # A container for one or more replication rules. A replication
8300
+ # configuration must have at least one rule and can contain a maximum
8301
+ # of 1,000 rules.
7327
8302
  # @return [Array<Types::ReplicationRule>]
7328
8303
  #
7329
8304
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ReplicationConfiguration AWS API Documentation
@@ -7334,14 +8309,31 @@ module Aws::S3
7334
8309
  include Aws::Structure
7335
8310
  end
7336
8311
 
7337
- # Container for information about a particular replication rule.
8312
+ # A container for information about a specific replication rule.
7338
8313
  #
7339
8314
  # @note When making an API call, you may pass ReplicationRule
7340
8315
  # data as a hash:
7341
8316
  #
7342
8317
  # {
7343
8318
  # id: "ID",
7344
- # prefix: "Prefix", # required
8319
+ # priority: 1,
8320
+ # prefix: "Prefix",
8321
+ # filter: {
8322
+ # prefix: "Prefix",
8323
+ # tag: {
8324
+ # key: "ObjectKey", # required
8325
+ # value: "Value", # required
8326
+ # },
8327
+ # and: {
8328
+ # prefix: "Prefix",
8329
+ # tags: [
8330
+ # {
8331
+ # key: "ObjectKey", # required
8332
+ # value: "Value", # required
8333
+ # },
8334
+ # ],
8335
+ # },
8336
+ # },
7345
8337
  # status: "Enabled", # required, accepts Enabled, Disabled
7346
8338
  # source_selection_criteria: {
7347
8339
  # sse_kms_encrypted_objects: {
@@ -7351,7 +8343,7 @@ module Aws::S3
7351
8343
  # destination: { # required
7352
8344
  # bucket: "BucketName", # required
7353
8345
  # account: "AccountId",
7354
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
8346
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
7355
8347
  # access_control_translation: {
7356
8348
  # owner: "Destination", # required, accepts Destination
7357
8349
  # },
@@ -7359,40 +8351,163 @@ module Aws::S3
7359
8351
  # replica_kms_key_id: "ReplicaKmsKeyID",
7360
8352
  # },
7361
8353
  # },
8354
+ # delete_marker_replication: {
8355
+ # status: "Enabled", # accepts Enabled, Disabled
8356
+ # },
7362
8357
  # }
7363
8358
  #
7364
8359
  # @!attribute [rw] id
7365
- # Unique identifier for the rule. The value cannot be longer than 255
8360
+ # A unique identifier for the rule. The maximum value is 255
7366
8361
  # characters.
7367
8362
  # @return [String]
7368
8363
  #
8364
+ # @!attribute [rw] priority
8365
+ # The priority associated with the rule. If you specify multiple rules
8366
+ # in a replication configuration, Amazon S3 prioritizes the rules to
8367
+ # prevent conflicts when filtering. If two or more rules identify the
8368
+ # same object based on a specified filter, the rule with higher
8369
+ # priority takes precedence. For example:
8370
+ #
8371
+ # * Same object quality prefix based filter criteria If prefixes you
8372
+ # specified in multiple rules overlap
8373
+ #
8374
+ # * Same object qualify tag based filter criteria specified in
8375
+ # multiple rules
8376
+ #
8377
+ # For more information, see [Cross-Region Replication (CRR)](
8378
+ # https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) in the
8379
+ # *Amazon S3 Developer Guide*.
8380
+ # @return [Integer]
8381
+ #
7369
8382
  # @!attribute [rw] prefix
7370
- # Object keyname prefix identifying one or more objects to which the
7371
- # rule applies. Maximum prefix length can be up to 1,024 characters.
7372
- # Overlapping prefixes are not supported.
8383
+ # An object keyname prefix that identifies the object or objects to
8384
+ # which the rule applies. The maximum prefix length is 1,024
8385
+ # characters.
7373
8386
  # @return [String]
7374
8387
  #
8388
+ # @!attribute [rw] filter
8389
+ # A filter that identifies the subset of objects to which the
8390
+ # replication rule applies. A `Filter` must specify exactly one
8391
+ # `Prefix`, `Tag`, or an `And` child element.
8392
+ # @return [Types::ReplicationRuleFilter]
8393
+ #
7375
8394
  # @!attribute [rw] status
7376
- # The rule is ignored if status is not Enabled.
8395
+ # If status isn't enabled, the rule is ignored.
7377
8396
  # @return [String]
7378
8397
  #
7379
8398
  # @!attribute [rw] source_selection_criteria
7380
- # Container for filters that define which source objects should be
7381
- # replicated.
8399
+ # A container that describes additional filters for identifying the
8400
+ # source objects that you want to replicate. You can choose to enable
8401
+ # or disable the replication of these objects. Currently, Amazon S3
8402
+ # supports only the filter that you can specify for objects created
8403
+ # with server-side encryption using an AWS KMS-Managed Key (SSE-KMS).
8404
+ #
8405
+ # If you want Amazon S3 to replicate objects created with server-side
8406
+ # encryption using AWS KMS-Managed Keys.
7382
8407
  # @return [Types::SourceSelectionCriteria]
7383
8408
  #
7384
8409
  # @!attribute [rw] destination
7385
- # Container for replication destination information.
8410
+ # A container for information about the replication destination.
7386
8411
  # @return [Types::Destination]
7387
8412
  #
8413
+ # @!attribute [rw] delete_marker_replication
8414
+ # Specifies whether Amazon S3 should replicate delete makers.
8415
+ # @return [Types::DeleteMarkerReplication]
8416
+ #
7388
8417
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ReplicationRule AWS API Documentation
7389
8418
  #
7390
8419
  class ReplicationRule < Struct.new(
7391
8420
  :id,
8421
+ :priority,
7392
8422
  :prefix,
8423
+ :filter,
7393
8424
  :status,
7394
8425
  :source_selection_criteria,
7395
- :destination)
8426
+ :destination,
8427
+ :delete_marker_replication)
8428
+ include Aws::Structure
8429
+ end
8430
+
8431
+ # @note When making an API call, you may pass ReplicationRuleAndOperator
8432
+ # data as a hash:
8433
+ #
8434
+ # {
8435
+ # prefix: "Prefix",
8436
+ # tags: [
8437
+ # {
8438
+ # key: "ObjectKey", # required
8439
+ # value: "Value", # required
8440
+ # },
8441
+ # ],
8442
+ # }
8443
+ #
8444
+ # @!attribute [rw] prefix
8445
+ # @return [String]
8446
+ #
8447
+ # @!attribute [rw] tags
8448
+ # @return [Array<Types::Tag>]
8449
+ #
8450
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ReplicationRuleAndOperator AWS API Documentation
8451
+ #
8452
+ class ReplicationRuleAndOperator < Struct.new(
8453
+ :prefix,
8454
+ :tags)
8455
+ include Aws::Structure
8456
+ end
8457
+
8458
+ # A filter that identifies the subset of objects to which the
8459
+ # replication rule applies. A `Filter` must specify exactly one
8460
+ # `Prefix`, `Tag`, or an `And` child element.
8461
+ #
8462
+ # @note When making an API call, you may pass ReplicationRuleFilter
8463
+ # data as a hash:
8464
+ #
8465
+ # {
8466
+ # prefix: "Prefix",
8467
+ # tag: {
8468
+ # key: "ObjectKey", # required
8469
+ # value: "Value", # required
8470
+ # },
8471
+ # and: {
8472
+ # prefix: "Prefix",
8473
+ # tags: [
8474
+ # {
8475
+ # key: "ObjectKey", # required
8476
+ # value: "Value", # required
8477
+ # },
8478
+ # ],
8479
+ # },
8480
+ # }
8481
+ #
8482
+ # @!attribute [rw] prefix
8483
+ # An object keyname prefix that identifies the subset of objects to
8484
+ # which the rule applies.
8485
+ # @return [String]
8486
+ #
8487
+ # @!attribute [rw] tag
8488
+ # A container for specifying a tag key and value.
8489
+ #
8490
+ # The rule applies only to objects that have the tag in their tag set.
8491
+ # @return [Types::Tag]
8492
+ #
8493
+ # @!attribute [rw] and
8494
+ # A container for specifying rule filters. The filters determine the
8495
+ # subset of objects to which the rule applies. This element is
8496
+ # required only if you specify more than one filter. For example:
8497
+ #
8498
+ # * If you specify both a `Prefix` and a `Tag` filter, wrap these
8499
+ # filters in an `And` tag.
8500
+ #
8501
+ # * If you specify a filter based on multiple tags, wrap the `Tag`
8502
+ # elements in an `And` tag.
8503
+ # @return [Types::ReplicationRuleAndOperator]
8504
+ #
8505
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ReplicationRuleFilter AWS API Documentation
8506
+ #
8507
+ class ReplicationRuleFilter < Struct.new(
8508
+ :prefix,
8509
+ :tag,
8510
+ :and)
7396
8511
  include Aws::Structure
7397
8512
  end
7398
8513
 
@@ -7414,6 +8529,13 @@ module Aws::S3
7414
8529
  include Aws::Structure
7415
8530
  end
7416
8531
 
8532
+ # @note When making an API call, you may pass RequestProgress
8533
+ # data as a hash:
8534
+ #
8535
+ # {
8536
+ # enabled: false,
8537
+ # }
8538
+ #
7417
8539
  # @!attribute [rw] enabled
7418
8540
  # Specifies whether periodic QueryProgress frames should be sent.
7419
8541
  # Valid values: TRUE, FALSE. Default value: FALSE.
@@ -7468,11 +8590,14 @@ module Aws::S3
7468
8590
  # record_delimiter: "RecordDelimiter",
7469
8591
  # field_delimiter: "FieldDelimiter",
7470
8592
  # quote_character: "QuoteCharacter",
8593
+ # allow_quoted_record_delimiter: false,
7471
8594
  # },
7472
- # compression_type: "NONE", # accepts NONE, GZIP
8595
+ # compression_type: "NONE", # accepts NONE, GZIP, BZIP2
7473
8596
  # json: {
7474
8597
  # type: "DOCUMENT", # accepts DOCUMENT, LINES
7475
8598
  # },
8599
+ # parquet: {
8600
+ # },
7476
8601
  # },
7477
8602
  # expression_type: "SQL", # required, accepts SQL
7478
8603
  # expression: "Expression", # required
@@ -7525,7 +8650,7 @@ module Aws::S3
7525
8650
  # value: "MetadataValue",
7526
8651
  # },
7527
8652
  # ],
7528
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
8653
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
7529
8654
  # },
7530
8655
  # },
7531
8656
  # },
@@ -7586,11 +8711,14 @@ module Aws::S3
7586
8711
  # record_delimiter: "RecordDelimiter",
7587
8712
  # field_delimiter: "FieldDelimiter",
7588
8713
  # quote_character: "QuoteCharacter",
8714
+ # allow_quoted_record_delimiter: false,
7589
8715
  # },
7590
- # compression_type: "NONE", # accepts NONE, GZIP
8716
+ # compression_type: "NONE", # accepts NONE, GZIP, BZIP2
7591
8717
  # json: {
7592
8718
  # type: "DOCUMENT", # accepts DOCUMENT, LINES
7593
8719
  # },
8720
+ # parquet: {
8721
+ # },
7594
8722
  # },
7595
8723
  # expression_type: "SQL", # required, accepts SQL
7596
8724
  # expression: "Expression", # required
@@ -7643,7 +8771,7 @@ module Aws::S3
7643
8771
  # value: "MetadataValue",
7644
8772
  # },
7645
8773
  # ],
7646
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
8774
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
7647
8775
  # },
7648
8776
  # },
7649
8777
  # }
@@ -7719,8 +8847,7 @@ module Aws::S3
7719
8847
  # @!attribute [rw] redirect
7720
8848
  # Container for redirect information. You can redirect requests to
7721
8849
  # another host, to another page, or with another protocol. In the
7722
- # event of an error, you can can specify a different error code to
7723
- # return.
8850
+ # event of an error, you can specify a different error code to return.
7724
8851
  # @return [Types::Redirect]
7725
8852
  #
7726
8853
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RoutingRule AWS API Documentation
@@ -7746,11 +8873,11 @@ module Aws::S3
7746
8873
  # transition: {
7747
8874
  # date: Time.now,
7748
8875
  # days: 1,
7749
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
8876
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
7750
8877
  # },
7751
8878
  # noncurrent_version_transition: {
7752
8879
  # noncurrent_days: 1,
7753
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
8880
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
7754
8881
  # },
7755
8882
  # noncurrent_version_expiration: {
7756
8883
  # noncurrent_days: 1,
@@ -7782,12 +8909,13 @@ module Aws::S3
7782
8909
  #
7783
8910
  # @!attribute [rw] noncurrent_version_transition
7784
8911
  # Container for the transition rule that describes when noncurrent
7785
- # objects transition to the STANDARD\_IA, ONEZONE\_IA or GLACIER
7786
- # storage class. If your bucket is versioning-enabled (or versioning
7787
- # is suspended), you can set this action to request that Amazon S3
7788
- # transition noncurrent object versions to the STANDARD\_IA,
7789
- # ONEZONE\_IA or GLACIER storage class at a specific period in the
7790
- # object's lifetime.
8912
+ # objects transition to the STANDARD\_IA, ONEZONE\_IA,
8913
+ # INTELLIGENT\_TIERING, GLACIER or DEEP\_ARCHIVE storage class. If
8914
+ # your bucket is versioning-enabled (or versioning is suspended), you
8915
+ # can set this action to request that Amazon S3 transition noncurrent
8916
+ # object versions to the STANDARD\_IA, ONEZONE\_IA,
8917
+ # INTELLIGENT\_TIERING, GLACIER or DEEP\_ARCHIVE storage class at a
8918
+ # specific period in the object's lifetime.
7791
8919
  # @return [Types::NoncurrentVersionTransition]
7792
8920
  #
7793
8921
  # @!attribute [rw] noncurrent_version_expiration
@@ -7819,7 +8947,7 @@ module Aws::S3
7819
8947
  include Aws::Structure
7820
8948
  end
7821
8949
 
7822
- # Container for object key name prefix and suffix filtering rules.
8950
+ # A container for object key name prefix and suffix filtering rules.
7823
8951
  #
7824
8952
  # @note When making an API call, you may pass S3KeyFilter
7825
8953
  # data as a hash:
@@ -7834,8 +8962,8 @@ module Aws::S3
7834
8962
  # }
7835
8963
  #
7836
8964
  # @!attribute [rw] filter_rules
7837
- # A list of containers for key value pair that defines the criteria
7838
- # for the filter rule.
8965
+ # A list of containers for the key value pair that defines the
8966
+ # criteria for the filter rule.
7839
8967
  # @return [Array<Types::FilterRule>]
7840
8968
  #
7841
8969
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/S3KeyFilter AWS API Documentation
@@ -7886,7 +9014,7 @@ module Aws::S3
7886
9014
  # value: "MetadataValue",
7887
9015
  # },
7888
9016
  # ],
7889
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
9017
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
7890
9018
  # }
7891
9019
  #
7892
9020
  # @!attribute [rw] bucket_name
@@ -7937,7 +9065,7 @@ module Aws::S3
7937
9065
  include Aws::Structure
7938
9066
  end
7939
9067
 
7940
- # Specifies the use of SSE-KMS to encrypt delievered Inventory reports.
9068
+ # Specifies the use of SSE-KMS to encrypt delivered Inventory reports.
7941
9069
  #
7942
9070
  # @note When making an API call, you may pass SSEKMS
7943
9071
  # data as a hash:
@@ -7958,7 +9086,7 @@ module Aws::S3
7958
9086
  include Aws::Structure
7959
9087
  end
7960
9088
 
7961
- # Specifies the use of SSE-S3 to encrypt delievered Inventory reports.
9089
+ # Specifies the use of SSE-S3 to encrypt delivered Inventory reports.
7962
9090
  #
7963
9091
  # @api private
7964
9092
  #
@@ -7966,6 +9094,149 @@ module Aws::S3
7966
9094
  #
7967
9095
  class SSES3 < Aws::EmptyStructure; end
7968
9096
 
9097
+ # @!attribute [rw] payload
9098
+ # @return [Types::SelectObjectContentEventStream]
9099
+ #
9100
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectObjectContentOutput AWS API Documentation
9101
+ #
9102
+ class SelectObjectContentOutput < Struct.new(
9103
+ :payload)
9104
+ include Aws::Structure
9105
+ end
9106
+
9107
+ # Request to filter the contents of an Amazon S3 object based on a
9108
+ # simple Structured Query Language (SQL) statement. In the request,
9109
+ # along with the SQL expression, you must specify a data serialization
9110
+ # format (JSON or CSV) of the object. Amazon S3 uses this to parse
9111
+ # object data into records. It returns only records that match the
9112
+ # specified SQL expression. You must also specify the data serialization
9113
+ # format for the response. For more information, see [S3Select API
9114
+ # Documentation][1].
9115
+ #
9116
+ #
9117
+ #
9118
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectSELECTContent.html
9119
+ #
9120
+ # @note When making an API call, you may pass SelectObjectContentRequest
9121
+ # data as a hash:
9122
+ #
9123
+ # {
9124
+ # bucket: "BucketName", # required
9125
+ # key: "ObjectKey", # required
9126
+ # sse_customer_algorithm: "SSECustomerAlgorithm",
9127
+ # sse_customer_key: "SSECustomerKey",
9128
+ # sse_customer_key_md5: "SSECustomerKeyMD5",
9129
+ # expression: "Expression", # required
9130
+ # expression_type: "SQL", # required, accepts SQL
9131
+ # request_progress: {
9132
+ # enabled: false,
9133
+ # },
9134
+ # input_serialization: { # required
9135
+ # csv: {
9136
+ # file_header_info: "USE", # accepts USE, IGNORE, NONE
9137
+ # comments: "Comments",
9138
+ # quote_escape_character: "QuoteEscapeCharacter",
9139
+ # record_delimiter: "RecordDelimiter",
9140
+ # field_delimiter: "FieldDelimiter",
9141
+ # quote_character: "QuoteCharacter",
9142
+ # allow_quoted_record_delimiter: false,
9143
+ # },
9144
+ # compression_type: "NONE", # accepts NONE, GZIP, BZIP2
9145
+ # json: {
9146
+ # type: "DOCUMENT", # accepts DOCUMENT, LINES
9147
+ # },
9148
+ # parquet: {
9149
+ # },
9150
+ # },
9151
+ # output_serialization: { # required
9152
+ # csv: {
9153
+ # quote_fields: "ALWAYS", # accepts ALWAYS, ASNEEDED
9154
+ # quote_escape_character: "QuoteEscapeCharacter",
9155
+ # record_delimiter: "RecordDelimiter",
9156
+ # field_delimiter: "FieldDelimiter",
9157
+ # quote_character: "QuoteCharacter",
9158
+ # },
9159
+ # json: {
9160
+ # record_delimiter: "RecordDelimiter",
9161
+ # },
9162
+ # },
9163
+ # }
9164
+ #
9165
+ # @!attribute [rw] bucket
9166
+ # The S3 bucket.
9167
+ # @return [String]
9168
+ #
9169
+ # @!attribute [rw] key
9170
+ # The object key.
9171
+ # @return [String]
9172
+ #
9173
+ # @!attribute [rw] sse_customer_algorithm
9174
+ # The SSE Algorithm used to encrypt the object. For more information,
9175
+ # see [ Server-Side Encryption (Using Customer-Provided Encryption
9176
+ # Keys][1].
9177
+ #
9178
+ #
9179
+ #
9180
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
9181
+ # @return [String]
9182
+ #
9183
+ # @!attribute [rw] sse_customer_key
9184
+ # The SSE Customer Key. For more information, see [ Server-Side
9185
+ # Encryption (Using Customer-Provided Encryption Keys][1].
9186
+ #
9187
+ #
9188
+ #
9189
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
9190
+ # @return [String]
9191
+ #
9192
+ # @!attribute [rw] sse_customer_key_md5
9193
+ # The SSE Customer Key MD5. For more information, see [ Server-Side
9194
+ # Encryption (Using Customer-Provided Encryption Keys][1].
9195
+ #
9196
+ #
9197
+ #
9198
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
9199
+ # @return [String]
9200
+ #
9201
+ # @!attribute [rw] expression
9202
+ # The expression that is used to query the object.
9203
+ # @return [String]
9204
+ #
9205
+ # @!attribute [rw] expression_type
9206
+ # The type of the provided expression (for example., SQL).
9207
+ # @return [String]
9208
+ #
9209
+ # @!attribute [rw] request_progress
9210
+ # Specifies if periodic request progress information should be
9211
+ # enabled.
9212
+ # @return [Types::RequestProgress]
9213
+ #
9214
+ # @!attribute [rw] input_serialization
9215
+ # Describes the format of the data in the object that is being
9216
+ # queried.
9217
+ # @return [Types::InputSerialization]
9218
+ #
9219
+ # @!attribute [rw] output_serialization
9220
+ # Describes the format of the data that you want Amazon S3 to return
9221
+ # in response.
9222
+ # @return [Types::OutputSerialization]
9223
+ #
9224
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectObjectContentRequest AWS API Documentation
9225
+ #
9226
+ class SelectObjectContentRequest < Struct.new(
9227
+ :bucket,
9228
+ :key,
9229
+ :sse_customer_algorithm,
9230
+ :sse_customer_key,
9231
+ :sse_customer_key_md5,
9232
+ :expression,
9233
+ :expression_type,
9234
+ :request_progress,
9235
+ :input_serialization,
9236
+ :output_serialization)
9237
+ include Aws::Structure
9238
+ end
9239
+
7969
9240
  # Describes the parameters for Select job types.
7970
9241
  #
7971
9242
  # @note When making an API call, you may pass SelectParameters
@@ -7980,11 +9251,14 @@ module Aws::S3
7980
9251
  # record_delimiter: "RecordDelimiter",
7981
9252
  # field_delimiter: "FieldDelimiter",
7982
9253
  # quote_character: "QuoteCharacter",
9254
+ # allow_quoted_record_delimiter: false,
7983
9255
  # },
7984
- # compression_type: "NONE", # accepts NONE, GZIP
9256
+ # compression_type: "NONE", # accepts NONE, GZIP, BZIP2
7985
9257
  # json: {
7986
9258
  # type: "DOCUMENT", # accepts DOCUMENT, LINES
7987
9259
  # },
9260
+ # parquet: {
9261
+ # },
7988
9262
  # },
7989
9263
  # expression_type: "SQL", # required, accepts SQL
7990
9264
  # expression: "Expression", # required
@@ -8112,7 +9386,7 @@ module Aws::S3
8112
9386
  include Aws::Structure
8113
9387
  end
8114
9388
 
8115
- # Container for filters that define which source objects should be
9389
+ # A container for filters that define which source objects should be
8116
9390
  # replicated.
8117
9391
  #
8118
9392
  # @note When making an API call, you may pass SourceSelectionCriteria
@@ -8125,8 +9399,9 @@ module Aws::S3
8125
9399
  # }
8126
9400
  #
8127
9401
  # @!attribute [rw] sse_kms_encrypted_objects
8128
- # Container for filter information of selection of KMS Encrypted S3
8129
- # objects.
9402
+ # A container for filter information for the selection of S3 objects
9403
+ # encrypted with AWS KMS. If you include `SourceSelectionCriteria` in
9404
+ # the replication configuration, this element is required.
8130
9405
  # @return [Types::SseKmsEncryptedObjects]
8131
9406
  #
8132
9407
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SourceSelectionCriteria AWS API Documentation
@@ -8136,8 +9411,8 @@ module Aws::S3
8136
9411
  include Aws::Structure
8137
9412
  end
8138
9413
 
8139
- # Container for filter information of selection of KMS Encrypted S3
8140
- # objects.
9414
+ # A container for filter information for the selection of S3 objects
9415
+ # encrypted with AWS KMS.
8141
9416
  #
8142
9417
  # @note When making an API call, you may pass SseKmsEncryptedObjects
8143
9418
  # data as a hash:
@@ -8147,8 +9422,8 @@ module Aws::S3
8147
9422
  # }
8148
9423
  #
8149
9424
  # @!attribute [rw] status
8150
- # The replication for KMS encrypted S3 objects is disabled if status
8151
- # is not Enabled.
9425
+ # If the status is not `Enabled`, replication for S3 objects encrypted
9426
+ # with AWS KMS is disabled.
8152
9427
  # @return [String]
8153
9428
  #
8154
9429
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SseKmsEncryptedObjects AWS API Documentation
@@ -8159,18 +9434,35 @@ module Aws::S3
8159
9434
  end
8160
9435
 
8161
9436
  # @!attribute [rw] bytes_scanned
8162
- # Total number of object bytes scanned.
9437
+ # The total number of object bytes scanned.
8163
9438
  # @return [Integer]
8164
9439
  #
8165
9440
  # @!attribute [rw] bytes_processed
8166
- # Total number of uncompressed object bytes processed.
9441
+ # The total number of uncompressed object bytes processed.
9442
+ # @return [Integer]
9443
+ #
9444
+ # @!attribute [rw] bytes_returned
9445
+ # The total number of bytes of records payload data returned.
8167
9446
  # @return [Integer]
8168
9447
  #
8169
9448
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Stats AWS API Documentation
8170
9449
  #
8171
9450
  class Stats < Struct.new(
8172
9451
  :bytes_scanned,
8173
- :bytes_processed)
9452
+ :bytes_processed,
9453
+ :bytes_returned)
9454
+ include Aws::Structure
9455
+ end
9456
+
9457
+ # @!attribute [rw] details
9458
+ # The Stats event details.
9459
+ # @return [Types::Stats]
9460
+ #
9461
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/StatsEvent AWS API Documentation
9462
+ #
9463
+ class StatsEvent < Struct.new(
9464
+ :details,
9465
+ :event_type)
8174
9466
  include Aws::Structure
8175
9467
  end
8176
9468
 
@@ -8310,9 +9602,9 @@ module Aws::S3
8310
9602
  include Aws::Structure
8311
9603
  end
8312
9604
 
8313
- # Container for specifying the configuration when you want Amazon S3 to
8314
- # publish events to an Amazon Simple Notification Service (Amazon SNS)
8315
- # topic.
9605
+ # A container for specifying the configuration for publication of
9606
+ # messages to an Amazon Simple Notification Service (Amazon SNS)
9607
+ # topic.when Amazon S3 detects specified events.
8316
9608
  #
8317
9609
  # @note When making an API call, you may pass TopicConfiguration
8318
9610
  # data as a hash:
@@ -8320,7 +9612,7 @@ module Aws::S3
8320
9612
  # {
8321
9613
  # id: "NotificationId",
8322
9614
  # topic_arn: "TopicArn", # required
8323
- # 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
9615
+ # 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
8324
9616
  # filter: {
8325
9617
  # key: {
8326
9618
  # filter_rules: [
@@ -8334,27 +9626,28 @@ module Aws::S3
8334
9626
  # }
8335
9627
  #
8336
9628
  # @!attribute [rw] id
8337
- # Optional unique identifier for configurations in a notification
9629
+ # An optional unique identifier for configurations in a notification
8338
9630
  # configuration. If you don't provide one, Amazon S3 will assign an
8339
9631
  # ID.
8340
9632
  # @return [String]
8341
9633
  #
8342
9634
  # @!attribute [rw] topic_arn
8343
- # Amazon SNS topic ARN to which Amazon S3 will publish a message when
8344
- # it detects events of specified type.
9635
+ # The Amazon Resource Name (ARN) of the Amazon SNS topic to which
9636
+ # Amazon S3 will publish a message when it detects events of the
9637
+ # specified type.
8345
9638
  # @return [String]
8346
9639
  #
8347
9640
  # @!attribute [rw] events
8348
9641
  # @return [Array<String>]
8349
9642
  #
8350
9643
  # @!attribute [rw] filter
8351
- # Container for object key name filtering rules. For information about
8352
- # key name filtering, go to [Configuring Event Notifications][1] in
8353
- # the Amazon Simple Storage Service Developer Guide.
9644
+ # A container for object key name filtering rules. For information
9645
+ # about key name filtering, see [Configuring Event Notifications][1]
9646
+ # in the *Amazon Simple Storage Service Developer Guide*.
8354
9647
  #
8355
9648
  #
8356
9649
  #
8357
- # [1]: http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
9650
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
8358
9651
  # @return [Types::NotificationConfigurationFilter]
8359
9652
  #
8360
9653
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/TopicConfiguration AWS API Documentation
@@ -8372,13 +9665,13 @@ module Aws::S3
8372
9665
  #
8373
9666
  # {
8374
9667
  # id: "NotificationId",
8375
- # 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
8376
- # 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
9668
+ # 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
9669
+ # 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
8377
9670
  # topic: "TopicArn",
8378
9671
  # }
8379
9672
  #
8380
9673
  # @!attribute [rw] id
8381
- # Optional unique identifier for configurations in a notification
9674
+ # An optional unique identifier for configurations in a notification
8382
9675
  # configuration. If you don't provide one, Amazon S3 will assign an
8383
9676
  # ID.
8384
9677
  # @return [String]
@@ -8411,7 +9704,7 @@ module Aws::S3
8411
9704
  # {
8412
9705
  # date: Time.now,
8413
9706
  # days: 1,
8414
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
9707
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
8415
9708
  # }
8416
9709
  #
8417
9710
  # @!attribute [rw] date
@@ -8541,7 +9834,7 @@ module Aws::S3
8541
9834
  # must use the form bytes=first-last, where the first and last are the
8542
9835
  # zero-based byte offsets to copy. For example, bytes=0-9 indicates
8543
9836
  # that you want to copy the first ten bytes of the source. You can
8544
- # copy a range only if the source object is greater than 5 GB.
9837
+ # copy a range only if the source object is greater than 5 MB.
8545
9838
  # @return [String]
8546
9839
  #
8547
9840
  # @!attribute [rw] key
@@ -8844,5 +10137,24 @@ module Aws::S3
8844
10137
  include Aws::Structure
8845
10138
  end
8846
10139
 
10140
+ # EventStream is an Enumerator of Events.
10141
+ # #event_types #=> Array, returns all modeled event types in the stream
10142
+ #
10143
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectObjectContentEventStream AWS API Documentation
10144
+ #
10145
+ class SelectObjectContentEventStream < Enumerator
10146
+
10147
+ def event_types
10148
+ [
10149
+ :records,
10150
+ :stats,
10151
+ :progress,
10152
+ :cont,
10153
+ :end
10154
+ ]
10155
+ end
10156
+
10157
+ end
10158
+
8847
10159
  end
8848
10160
  end