aws-sdk-s3 1.9.0 → 1.40.0

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