aws-sdk-s3 1.24.1 → 1.36.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -16,6 +16,7 @@ require 'aws-sdk-core/plugins/retry_errors.rb'
16
16
  require 'aws-sdk-core/plugins/global_configuration.rb'
17
17
  require 'aws-sdk-core/plugins/regional_endpoint.rb'
18
18
  require 'aws-sdk-core/plugins/endpoint_discovery.rb'
19
+ require 'aws-sdk-core/plugins/endpoint_pattern.rb'
19
20
  require 'aws-sdk-core/plugins/response_paging.rb'
20
21
  require 'aws-sdk-core/plugins/stub_responses.rb'
21
22
  require 'aws-sdk-core/plugins/idempotency_token.rb'
@@ -61,6 +62,7 @@ module Aws::S3
61
62
  add_plugin(Aws::Plugins::GlobalConfiguration)
62
63
  add_plugin(Aws::Plugins::RegionalEndpoint)
63
64
  add_plugin(Aws::Plugins::EndpointDiscovery)
65
+ add_plugin(Aws::Plugins::EndpointPattern)
64
66
  add_plugin(Aws::Plugins::ResponsePaging)
65
67
  add_plugin(Aws::Plugins::StubResponses)
66
68
  add_plugin(Aws::Plugins::IdempotencyToken)
@@ -158,6 +160,10 @@ module Aws::S3
158
160
  # When `true`, an attempt is made to coerce request parameters into
159
161
  # the required types.
160
162
  #
163
+ # @option options [Boolean] :disable_host_prefix_injection (false)
164
+ # Set to true to disable SDK automatically adding host prefix
165
+ # to default service endpoint when available.
166
+ #
161
167
  # @option options [String] :endpoint
162
168
  # The client endpoint is normally constructed from the `:region`
163
169
  # option. You should only configure an `:endpoint` when connecting
@@ -189,6 +195,9 @@ module Aws::S3
189
195
  # When set to `true`, the bucket name is always left in the
190
196
  # request URI and never moved to the host as a sub-domain.
191
197
  #
198
+ # @option options [Proc] :input_event_stream_handler
199
+ # When an EventStream or Proc object is provided, it can be used for sending events for the event stream.
200
+ #
192
201
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
193
202
  # The log formatter.
194
203
  #
@@ -199,6 +208,9 @@ module Aws::S3
199
208
  # The Logger instance to send log messages to. If this option
200
209
  # is not set, logging will be disabled.
201
210
  #
211
+ # @option options [Proc] :output_event_stream_handler
212
+ # When an EventStream or Proc object is provided, it will be used as callback for each chunk of event stream response received along the way.
213
+ #
202
214
  # @option options [String] :profile ("default")
203
215
  # Used when loading credentials from the shared credentials file
204
216
  # at HOME/.aws/credentials. When not specified, 'default' is used.
@@ -252,6 +264,49 @@ module Aws::S3
252
264
  # When `true`, request parameters are validated before
253
265
  # sending the request.
254
266
  #
267
+ # @option options [URI::HTTP,String] :http_proxy A proxy to send
268
+ # requests through. Formatted like 'http://proxy.com:123'.
269
+ #
270
+ # @option options [Float] :http_open_timeout (15) The number of
271
+ # seconds to wait when opening a HTTP session before rasing a
272
+ # `Timeout::Error`.
273
+ #
274
+ # @option options [Integer] :http_read_timeout (60) The default
275
+ # number of seconds to wait for response data. This value can
276
+ # safely be set
277
+ # per-request on the session yeidled by {#session_for}.
278
+ #
279
+ # @option options [Float] :http_idle_timeout (5) The number of
280
+ # seconds a connection is allowed to sit idble before it is
281
+ # considered stale. Stale connections are closed and removed
282
+ # from the pool before making a request.
283
+ #
284
+ # @option options [Float] :http_continue_timeout (1) The number of
285
+ # seconds to wait for a 100-continue response before sending the
286
+ # request body. This option has no effect unless the request has
287
+ # "Expect" header set to "100-continue". Defaults to `nil` which
288
+ # disables this behaviour. This value can safely be set per
289
+ # request on the session yeidled by {#session_for}.
290
+ #
291
+ # @option options [Boolean] :http_wire_trace (false) When `true`,
292
+ # HTTP debug output will be sent to the `:logger`.
293
+ #
294
+ # @option options [Boolean] :ssl_verify_peer (true) When `true`,
295
+ # SSL peer certificates are verified when establishing a
296
+ # connection.
297
+ #
298
+ # @option options [String] :ssl_ca_bundle Full path to the SSL
299
+ # certificate authority bundle file that should be used when
300
+ # verifying peer certificates. If you do not pass
301
+ # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
302
+ # will be used if available.
303
+ #
304
+ # @option options [String] :ssl_ca_directory Full path of the
305
+ # directory that contains the unbundled SSL certificate
306
+ # authority files for verifying peer certificates. If you do
307
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
308
+ # system default will be used if available.
309
+ #
255
310
  def initialize(*args)
256
311
  super
257
312
  end
@@ -548,6 +603,16 @@ module Aws::S3
548
603
  # in conjunction with the TaggingDirective. The tag-set must be encoded
549
604
  # as URL Query parameters
550
605
  #
606
+ # @option params [String] :object_lock_mode
607
+ # The Object Lock mode that you want to apply to the copied object.
608
+ #
609
+ # @option params [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
610
+ # The date and time when you want the copied object's Object Lock to
611
+ # expire.
612
+ #
613
+ # @option params [String] :object_lock_legal_hold_status
614
+ # Specifies whether you want to apply a Legal Hold to the copied object.
615
+ #
551
616
  # @return [Types::CopyObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
552
617
  #
553
618
  # * {Types::CopyObjectOutput#copy_object_result #copy_object_result} => Types::CopyObjectResult
@@ -606,7 +671,7 @@ module Aws::S3
606
671
  # metadata_directive: "COPY", # accepts COPY, REPLACE
607
672
  # tagging_directive: "COPY", # accepts COPY, REPLACE
608
673
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
609
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
674
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
610
675
  # website_redirect_location: "WebsiteRedirectLocation",
611
676
  # sse_customer_algorithm: "SSECustomerAlgorithm",
612
677
  # sse_customer_key: "SSECustomerKey",
@@ -617,6 +682,9 @@ module Aws::S3
617
682
  # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5",
618
683
  # request_payer: "requester", # accepts requester
619
684
  # tagging: "TaggingHeader",
685
+ # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
686
+ # object_lock_retain_until_date: Time.now,
687
+ # object_lock_legal_hold_status: "ON", # accepts ON, OFF
620
688
  # })
621
689
  #
622
690
  # @example Response structure
@@ -667,6 +735,10 @@ module Aws::S3
667
735
  # @option params [String] :grant_write_acp
668
736
  # Allows grantee to write the ACL for the applicable bucket.
669
737
  #
738
+ # @option params [Boolean] :object_lock_enabled_for_bucket
739
+ # Specifies whether you want S3 Object Lock to be enabled for the new
740
+ # bucket.
741
+ #
670
742
  # @return [Types::CreateBucketOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
671
743
  #
672
744
  # * {Types::CreateBucketOutput#location #location} => String
@@ -714,6 +786,7 @@ module Aws::S3
714
786
  # grant_read_acp: "GrantReadACP",
715
787
  # grant_write: "GrantWrite",
716
788
  # grant_write_acp: "GrantWriteACP",
789
+ # object_lock_enabled_for_bucket: false,
717
790
  # })
718
791
  #
719
792
  # @example Response structure
@@ -826,6 +899,17 @@ module Aws::S3
826
899
  # The tag-set for the object. The tag-set must be encoded as URL Query
827
900
  # parameters
828
901
  #
902
+ # @option params [String] :object_lock_mode
903
+ # Specifies the Object Lock mode that you want to apply to the uploaded
904
+ # object.
905
+ #
906
+ # @option params [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
907
+ # Specifies the date and time when you want the Object Lock to expire.
908
+ #
909
+ # @option params [String] :object_lock_legal_hold_status
910
+ # Specifies whether you want to apply a Legal Hold to the uploaded
911
+ # object.
912
+ #
829
913
  # @return [Types::CreateMultipartUploadOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
830
914
  #
831
915
  # * {Types::CreateMultipartUploadOutput#abort_date #abort_date} => Time
@@ -876,7 +960,7 @@ module Aws::S3
876
960
  # "MetadataKey" => "MetadataValue",
877
961
  # },
878
962
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
879
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
963
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
880
964
  # website_redirect_location: "WebsiteRedirectLocation",
881
965
  # sse_customer_algorithm: "SSECustomerAlgorithm",
882
966
  # sse_customer_key: "SSECustomerKey",
@@ -884,6 +968,9 @@ module Aws::S3
884
968
  # ssekms_key_id: "SSEKMSKeyId",
885
969
  # request_payer: "requester", # accepts requester
886
970
  # tagging: "TaggingHeader",
971
+ # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
972
+ # object_lock_retain_until_date: Time.now,
973
+ # object_lock_legal_hold_status: "ON", # accepts ON, OFF
887
974
  # })
888
975
  #
889
976
  # @example Response structure
@@ -1257,6 +1344,10 @@ module Aws::S3
1257
1344
  # buckets can be found at
1258
1345
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1259
1346
  #
1347
+ # @option params [Boolean] :bypass_governance_retention
1348
+ # Indicates whether S3 Object Lock should bypass Governance-mode
1349
+ # restrictions to process this operation.
1350
+ #
1260
1351
  # @return [Types::DeleteObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1261
1352
  #
1262
1353
  # * {Types::DeleteObjectOutput#delete_marker #delete_marker} => Boolean
@@ -1294,6 +1385,7 @@ module Aws::S3
1294
1385
  # mfa: "MFA",
1295
1386
  # version_id: "ObjectVersionId",
1296
1387
  # request_payer: "requester", # accepts requester
1388
+ # bypass_governance_retention: false,
1297
1389
  # })
1298
1390
  #
1299
1391
  # @example Response structure
@@ -1395,6 +1487,11 @@ module Aws::S3
1395
1487
  # buckets can be found at
1396
1488
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1397
1489
  #
1490
+ # @option params [Boolean] :bypass_governance_retention
1491
+ # Specifies whether you want to delete this object even if it has a
1492
+ # Governance-type Object Lock in place. You must have sufficient
1493
+ # permissions to perform this operation.
1494
+ #
1398
1495
  # @return [Types::DeleteObjectsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1399
1496
  #
1400
1497
  # * {Types::DeleteObjectsOutput#deleted #deleted} => Array<Types::DeletedObject>
@@ -1489,6 +1586,7 @@ module Aws::S3
1489
1586
  # },
1490
1587
  # mfa: "MFA",
1491
1588
  # request_payer: "requester", # accepts requester
1589
+ # bypass_governance_retention: false,
1492
1590
  # })
1493
1591
  #
1494
1592
  # @example Response structure
@@ -1514,10 +1612,11 @@ module Aws::S3
1514
1612
  req.send_request(options)
1515
1613
  end
1516
1614
 
1517
- # Removes the Public Access Block configuration for an Amazon S3 bucket.
1615
+ # Removes the `PublicAccessBlock` configuration from an Amazon S3
1616
+ # bucket.
1518
1617
  #
1519
1618
  # @option params [required, String] :bucket
1520
- # The Amazon S3 bucket whose Public Access Block configuration you want
1619
+ # The Amazon S3 bucket whose `PublicAccessBlock` configuration you want
1521
1620
  # to delete.
1522
1621
  #
1523
1622
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
@@ -1767,7 +1866,7 @@ module Aws::S3
1767
1866
  #
1768
1867
  # resp.inventory_configuration.destination.s3_bucket_destination.account_id #=> String
1769
1868
  # resp.inventory_configuration.destination.s3_bucket_destination.bucket #=> String
1770
- # resp.inventory_configuration.destination.s3_bucket_destination.format #=> String, one of "CSV", "ORC"
1869
+ # resp.inventory_configuration.destination.s3_bucket_destination.format #=> String, one of "CSV", "ORC", "Parquet"
1771
1870
  # resp.inventory_configuration.destination.s3_bucket_destination.prefix #=> String
1772
1871
  # resp.inventory_configuration.destination.s3_bucket_destination.encryption.ssekms.key_id #=> String
1773
1872
  # resp.inventory_configuration.is_enabled #=> Boolean
@@ -1775,7 +1874,7 @@ module Aws::S3
1775
1874
  # resp.inventory_configuration.id #=> String
1776
1875
  # resp.inventory_configuration.included_object_versions #=> String, one of "All", "Current"
1777
1876
  # resp.inventory_configuration.optional_fields #=> Array
1778
- # resp.inventory_configuration.optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus"
1877
+ # resp.inventory_configuration.optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus", "ObjectLockRetainUntilDate", "ObjectLockMode", "ObjectLockLegalHoldStatus"
1779
1878
  # resp.inventory_configuration.schedule.frequency #=> String, one of "Daily", "Weekly"
1780
1879
  #
1781
1880
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketInventoryConfiguration AWS API Documentation
@@ -1787,7 +1886,7 @@ module Aws::S3
1787
1886
  req.send_request(options)
1788
1887
  end
1789
1888
 
1790
- # Deprecated, see the GetBucketLifecycleConfiguration operation.
1889
+ # No longer used, see the GetBucketLifecycleConfiguration operation.
1791
1890
  #
1792
1891
  # @option params [required, String] :bucket
1793
1892
  #
@@ -1835,9 +1934,9 @@ module Aws::S3
1835
1934
  # resp.rules[0].status #=> String, one of "Enabled", "Disabled"
1836
1935
  # resp.rules[0].transition.date #=> Time
1837
1936
  # resp.rules[0].transition.days #=> Integer
1838
- # resp.rules[0].transition.storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA"
1937
+ # resp.rules[0].transition.storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE"
1839
1938
  # resp.rules[0].noncurrent_version_transition.noncurrent_days #=> Integer
1840
- # resp.rules[0].noncurrent_version_transition.storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA"
1939
+ # resp.rules[0].noncurrent_version_transition.storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE"
1841
1940
  # resp.rules[0].noncurrent_version_expiration.noncurrent_days #=> Integer
1842
1941
  # resp.rules[0].abort_incomplete_multipart_upload.days_after_initiation #=> Integer
1843
1942
  #
@@ -1909,10 +2008,10 @@ module Aws::S3
1909
2008
  # resp.rules[0].transitions #=> Array
1910
2009
  # resp.rules[0].transitions[0].date #=> Time
1911
2010
  # resp.rules[0].transitions[0].days #=> Integer
1912
- # resp.rules[0].transitions[0].storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA"
2011
+ # resp.rules[0].transitions[0].storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE"
1913
2012
  # resp.rules[0].noncurrent_version_transitions #=> Array
1914
2013
  # resp.rules[0].noncurrent_version_transitions[0].noncurrent_days #=> Integer
1915
- # resp.rules[0].noncurrent_version_transitions[0].storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA"
2014
+ # resp.rules[0].noncurrent_version_transitions[0].storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE"
1916
2015
  # resp.rules[0].noncurrent_version_expiration.noncurrent_days #=> Integer
1917
2016
  # resp.rules[0].abort_incomplete_multipart_upload.days_after_initiation #=> Integer
1918
2017
  #
@@ -2044,7 +2143,7 @@ module Aws::S3
2044
2143
  req.send_request(options)
2045
2144
  end
2046
2145
 
2047
- # Deprecated, see the GetBucketNotificationConfiguration operation.
2146
+ # No longer used, see the GetBucketNotificationConfiguration operation.
2048
2147
  #
2049
2148
  # @option params [required, String] :bucket
2050
2149
  # Name of the bucket to get the notification configuration for.
@@ -2122,18 +2221,18 @@ module Aws::S3
2122
2221
  #
2123
2222
  # resp.topic_configuration.id #=> String
2124
2223
  # resp.topic_configuration.events #=> Array
2125
- # resp.topic_configuration.events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated"
2126
- # resp.topic_configuration.event #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated"
2224
+ # resp.topic_configuration.events[0] #=> String, one of "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"
2225
+ # resp.topic_configuration.event #=> String, one of "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"
2127
2226
  # resp.topic_configuration.topic #=> String
2128
2227
  # resp.queue_configuration.id #=> String
2129
- # resp.queue_configuration.event #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated"
2228
+ # resp.queue_configuration.event #=> String, one of "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"
2130
2229
  # resp.queue_configuration.events #=> Array
2131
- # resp.queue_configuration.events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated"
2230
+ # resp.queue_configuration.events[0] #=> String, one of "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"
2132
2231
  # resp.queue_configuration.queue #=> String
2133
2232
  # resp.cloud_function_configuration.id #=> String
2134
- # resp.cloud_function_configuration.event #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated"
2233
+ # resp.cloud_function_configuration.event #=> String, one of "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"
2135
2234
  # resp.cloud_function_configuration.events #=> Array
2136
- # resp.cloud_function_configuration.events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated"
2235
+ # resp.cloud_function_configuration.events[0] #=> String, one of "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"
2137
2236
  # resp.cloud_function_configuration.cloud_function #=> String
2138
2237
  # resp.cloud_function_configuration.invocation_role #=> String
2139
2238
  #
@@ -2169,7 +2268,7 @@ module Aws::S3
2169
2268
  # resp.topic_configurations[0].id #=> String
2170
2269
  # resp.topic_configurations[0].topic_arn #=> String
2171
2270
  # resp.topic_configurations[0].events #=> Array
2172
- # resp.topic_configurations[0].events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated"
2271
+ # resp.topic_configurations[0].events[0] #=> String, one of "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"
2173
2272
  # resp.topic_configurations[0].filter.key.filter_rules #=> Array
2174
2273
  # resp.topic_configurations[0].filter.key.filter_rules[0].name #=> String, one of "prefix", "suffix"
2175
2274
  # resp.topic_configurations[0].filter.key.filter_rules[0].value #=> String
@@ -2177,7 +2276,7 @@ module Aws::S3
2177
2276
  # resp.queue_configurations[0].id #=> String
2178
2277
  # resp.queue_configurations[0].queue_arn #=> String
2179
2278
  # resp.queue_configurations[0].events #=> Array
2180
- # resp.queue_configurations[0].events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated"
2279
+ # resp.queue_configurations[0].events[0] #=> String, one of "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"
2181
2280
  # resp.queue_configurations[0].filter.key.filter_rules #=> Array
2182
2281
  # resp.queue_configurations[0].filter.key.filter_rules[0].name #=> String, one of "prefix", "suffix"
2183
2282
  # resp.queue_configurations[0].filter.key.filter_rules[0].value #=> String
@@ -2185,7 +2284,7 @@ module Aws::S3
2185
2284
  # resp.lambda_function_configurations[0].id #=> String
2186
2285
  # resp.lambda_function_configurations[0].lambda_function_arn #=> String
2187
2286
  # resp.lambda_function_configurations[0].events #=> Array
2188
- # resp.lambda_function_configurations[0].events[0] #=> String, one of "s3:ReducedRedundancyLostObject", "s3:ObjectCreated:*", "s3:ObjectCreated:Put", "s3:ObjectCreated:Post", "s3:ObjectCreated:Copy", "s3:ObjectCreated:CompleteMultipartUpload", "s3:ObjectRemoved:*", "s3:ObjectRemoved:Delete", "s3:ObjectRemoved:DeleteMarkerCreated"
2287
+ # resp.lambda_function_configurations[0].events[0] #=> String, one of "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"
2189
2288
  # resp.lambda_function_configurations[0].filter.key.filter_rules #=> Array
2190
2289
  # resp.lambda_function_configurations[0].filter.key.filter_rules[0].name #=> String, one of "prefix", "suffix"
2191
2290
  # resp.lambda_function_configurations[0].filter.key.filter_rules[0].value #=> String
@@ -2244,8 +2343,8 @@ module Aws::S3
2244
2343
  # whether the bucket is public.
2245
2344
  #
2246
2345
  # @option params [required, String] :bucket
2247
- # The name of the Amazon S3 bucket whose public-policy status you want
2248
- # to retrieve.
2346
+ # The name of the Amazon S3 bucket whose policy status you want to
2347
+ # retrieve.
2249
2348
  #
2250
2349
  # @return [Types::GetBucketPolicyStatusOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2251
2350
  #
@@ -2334,7 +2433,7 @@ module Aws::S3
2334
2433
  # resp.replication_configuration.rules[0].source_selection_criteria.sse_kms_encrypted_objects.status #=> String, one of "Enabled", "Disabled"
2335
2434
  # resp.replication_configuration.rules[0].destination.bucket #=> String
2336
2435
  # resp.replication_configuration.rules[0].destination.account #=> String
2337
- # resp.replication_configuration.rules[0].destination.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA"
2436
+ # resp.replication_configuration.rules[0].destination.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE"
2338
2437
  # resp.replication_configuration.rules[0].destination.access_control_translation.owner #=> String, one of "Destination"
2339
2438
  # resp.replication_configuration.rules[0].destination.encryption_configuration.replica_kms_key_id #=> String
2340
2439
  # resp.replication_configuration.rules[0].delete_marker_replication.status #=> String, one of "Enabled", "Disabled"
@@ -2656,6 +2755,9 @@ module Aws::S3
2656
2755
  # * {Types::GetObjectOutput#replication_status #replication_status} => String
2657
2756
  # * {Types::GetObjectOutput#parts_count #parts_count} => Integer
2658
2757
  # * {Types::GetObjectOutput#tag_count #tag_count} => Integer
2758
+ # * {Types::GetObjectOutput#object_lock_mode #object_lock_mode} => String
2759
+ # * {Types::GetObjectOutput#object_lock_retain_until_date #object_lock_retain_until_date} => Time
2760
+ # * {Types::GetObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String
2659
2761
  #
2660
2762
  #
2661
2763
  # @example Example: To retrieve an object
@@ -2782,11 +2884,14 @@ module Aws::S3
2782
2884
  # resp.sse_customer_algorithm #=> String
2783
2885
  # resp.sse_customer_key_md5 #=> String
2784
2886
  # resp.ssekms_key_id #=> String
2785
- # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA"
2887
+ # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE"
2786
2888
  # resp.request_charged #=> String, one of "requester"
2787
2889
  # resp.replication_status #=> String, one of "COMPLETE", "PENDING", "FAILED", "REPLICA"
2788
2890
  # resp.parts_count #=> Integer
2789
2891
  # resp.tag_count #=> Integer
2892
+ # resp.object_lock_mode #=> String, one of "GOVERNANCE", "COMPLIANCE"
2893
+ # resp.object_lock_retain_until_date #=> Time
2894
+ # resp.object_lock_legal_hold_status #=> String, one of "ON", "OFF"
2790
2895
  #
2791
2896
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObject AWS API Documentation
2792
2897
  #
@@ -2902,6 +3007,134 @@ module Aws::S3
2902
3007
  req.send_request(options)
2903
3008
  end
2904
3009
 
3010
+ # Gets an object's current Legal Hold status.
3011
+ #
3012
+ # @option params [required, String] :bucket
3013
+ # The bucket containing the object whose Legal Hold status you want to
3014
+ # retrieve.
3015
+ #
3016
+ # @option params [required, String] :key
3017
+ # The key name for the object whose Legal Hold status you want to
3018
+ # retrieve.
3019
+ #
3020
+ # @option params [String] :version_id
3021
+ # The version ID of the object whose Legal Hold status you want to
3022
+ # retrieve.
3023
+ #
3024
+ # @option params [String] :request_payer
3025
+ # Confirms that the requester knows that she or he will be charged for
3026
+ # the request. Bucket owners need not specify this parameter in their
3027
+ # requests. Documentation on downloading objects from requester pays
3028
+ # buckets can be found at
3029
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
3030
+ #
3031
+ # @return [Types::GetObjectLegalHoldOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3032
+ #
3033
+ # * {Types::GetObjectLegalHoldOutput#legal_hold #legal_hold} => Types::ObjectLockLegalHold
3034
+ #
3035
+ # @example Request syntax with placeholder values
3036
+ #
3037
+ # resp = client.get_object_legal_hold({
3038
+ # bucket: "BucketName", # required
3039
+ # key: "ObjectKey", # required
3040
+ # version_id: "ObjectVersionId",
3041
+ # request_payer: "requester", # accepts requester
3042
+ # })
3043
+ #
3044
+ # @example Response structure
3045
+ #
3046
+ # resp.legal_hold.status #=> String, one of "ON", "OFF"
3047
+ #
3048
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHold AWS API Documentation
3049
+ #
3050
+ # @overload get_object_legal_hold(params = {})
3051
+ # @param [Hash] params ({})
3052
+ def get_object_legal_hold(params = {}, options = {})
3053
+ req = build_request(:get_object_legal_hold, params)
3054
+ req.send_request(options)
3055
+ end
3056
+
3057
+ # Gets the Object Lock configuration for a bucket. The rule specified in
3058
+ # the Object Lock configuration will be applied by default to every new
3059
+ # object placed in the specified bucket.
3060
+ #
3061
+ # @option params [required, String] :bucket
3062
+ # The bucket whose Object Lock configuration you want to retrieve.
3063
+ #
3064
+ # @return [Types::GetObjectLockConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3065
+ #
3066
+ # * {Types::GetObjectLockConfigurationOutput#object_lock_configuration #object_lock_configuration} => Types::ObjectLockConfiguration
3067
+ #
3068
+ # @example Request syntax with placeholder values
3069
+ #
3070
+ # resp = client.get_object_lock_configuration({
3071
+ # bucket: "BucketName", # required
3072
+ # })
3073
+ #
3074
+ # @example Response structure
3075
+ #
3076
+ # resp.object_lock_configuration.object_lock_enabled #=> String, one of "Enabled"
3077
+ # resp.object_lock_configuration.rule.default_retention.mode #=> String, one of "GOVERNANCE", "COMPLIANCE"
3078
+ # resp.object_lock_configuration.rule.default_retention.days #=> Integer
3079
+ # resp.object_lock_configuration.rule.default_retention.years #=> Integer
3080
+ #
3081
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfiguration AWS API Documentation
3082
+ #
3083
+ # @overload get_object_lock_configuration(params = {})
3084
+ # @param [Hash] params ({})
3085
+ def get_object_lock_configuration(params = {}, options = {})
3086
+ req = build_request(:get_object_lock_configuration, params)
3087
+ req.send_request(options)
3088
+ end
3089
+
3090
+ # Retrieves an object's retention settings.
3091
+ #
3092
+ # @option params [required, String] :bucket
3093
+ # The bucket containing the object whose retention settings you want to
3094
+ # retrieve.
3095
+ #
3096
+ # @option params [required, String] :key
3097
+ # The key name for the object whose retention settings you want to
3098
+ # retrieve.
3099
+ #
3100
+ # @option params [String] :version_id
3101
+ # The version ID for the object whose retention settings you want to
3102
+ # retrieve.
3103
+ #
3104
+ # @option params [String] :request_payer
3105
+ # Confirms that the requester knows that she or he will be charged for
3106
+ # the request. Bucket owners need not specify this parameter in their
3107
+ # requests. Documentation on downloading objects from requester pays
3108
+ # buckets can be found at
3109
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
3110
+ #
3111
+ # @return [Types::GetObjectRetentionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3112
+ #
3113
+ # * {Types::GetObjectRetentionOutput#retention #retention} => Types::ObjectLockRetention
3114
+ #
3115
+ # @example Request syntax with placeholder values
3116
+ #
3117
+ # resp = client.get_object_retention({
3118
+ # bucket: "BucketName", # required
3119
+ # key: "ObjectKey", # required
3120
+ # version_id: "ObjectVersionId",
3121
+ # request_payer: "requester", # accepts requester
3122
+ # })
3123
+ #
3124
+ # @example Response structure
3125
+ #
3126
+ # resp.retention.mode #=> String, one of "GOVERNANCE", "COMPLIANCE"
3127
+ # resp.retention.retain_until_date #=> Time
3128
+ #
3129
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetention AWS API Documentation
3130
+ #
3131
+ # @overload get_object_retention(params = {})
3132
+ # @param [Hash] params ({})
3133
+ def get_object_retention(params = {}, options = {})
3134
+ req = build_request(:get_object_retention, params)
3135
+ req.send_request(options)
3136
+ end
3137
+
2905
3138
  # Returns the tag-set of an object.
2906
3139
  #
2907
3140
  # @option params [required, String] :bucket
@@ -2916,49 +3149,49 @@ module Aws::S3
2916
3149
  # * {Types::GetObjectTaggingOutput#tag_set #tag_set} => Array<Types::Tag>
2917
3150
  #
2918
3151
  #
2919
- # @example Example: To retrieve tag set of an object
3152
+ # @example Example: To retrieve tag set of a specific object version
2920
3153
  #
2921
- # # The following example retrieves tag set of an object.
3154
+ # # The following example retrieves tag set of an object. The request specifies object version.
2922
3155
  #
2923
3156
  # resp = client.get_object_tagging({
2924
3157
  # bucket: "examplebucket",
2925
- # key: "HappyFace.jpg",
3158
+ # key: "exampleobject",
3159
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
2926
3160
  # })
2927
3161
  #
2928
3162
  # resp.to_h outputs the following:
2929
3163
  # {
2930
3164
  # tag_set: [
2931
3165
  # {
2932
- # key: "Key4",
2933
- # value: "Value4",
2934
- # },
2935
- # {
2936
- # key: "Key3",
2937
- # value: "Value3",
3166
+ # key: "Key1",
3167
+ # value: "Value1",
2938
3168
  # },
2939
3169
  # ],
2940
- # version_id: "null",
3170
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
2941
3171
  # }
2942
3172
  #
2943
- # @example Example: To retrieve tag set of a specific object version
3173
+ # @example Example: To retrieve tag set of an object
2944
3174
  #
2945
- # # The following example retrieves tag set of an object. The request specifies object version.
3175
+ # # The following example retrieves tag set of an object.
2946
3176
  #
2947
3177
  # resp = client.get_object_tagging({
2948
3178
  # bucket: "examplebucket",
2949
- # key: "exampleobject",
2950
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
3179
+ # key: "HappyFace.jpg",
2951
3180
  # })
2952
3181
  #
2953
3182
  # resp.to_h outputs the following:
2954
3183
  # {
2955
3184
  # tag_set: [
2956
3185
  # {
2957
- # key: "Key1",
2958
- # value: "Value1",
3186
+ # key: "Key4",
3187
+ # value: "Value4",
3188
+ # },
3189
+ # {
3190
+ # key: "Key3",
3191
+ # value: "Value3",
2959
3192
  # },
2960
3193
  # ],
2961
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
3194
+ # version_id: "null",
2962
3195
  # }
2963
3196
  #
2964
3197
  # @example Request syntax with placeholder values
@@ -3042,11 +3275,11 @@ module Aws::S3
3042
3275
  req.send_request(options, &block)
3043
3276
  end
3044
3277
 
3045
- # Retrieves the Public Access Block configuration for an Amazon S3
3278
+ # Retrieves the `PublicAccessBlock` configuration for an Amazon S3
3046
3279
  # bucket.
3047
3280
  #
3048
3281
  # @option params [required, String] :bucket
3049
- # The name of the Amazon S3 bucket whose Public Access Block
3282
+ # The name of the Amazon S3 bucket whose `PublicAccessBlock`
3050
3283
  # configuration you want to retrieve.
3051
3284
  #
3052
3285
  # @return [Types::GetPublicAccessBlockOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
@@ -3196,6 +3429,9 @@ module Aws::S3
3196
3429
  # * {Types::HeadObjectOutput#request_charged #request_charged} => String
3197
3430
  # * {Types::HeadObjectOutput#replication_status #replication_status} => String
3198
3431
  # * {Types::HeadObjectOutput#parts_count #parts_count} => Integer
3432
+ # * {Types::HeadObjectOutput#object_lock_mode #object_lock_mode} => String
3433
+ # * {Types::HeadObjectOutput#object_lock_retain_until_date #object_lock_retain_until_date} => Time
3434
+ # * {Types::HeadObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String
3199
3435
  #
3200
3436
  #
3201
3437
  # @example Example: To retrieve metadata of an object without returning the object itself
@@ -3262,10 +3498,13 @@ module Aws::S3
3262
3498
  # resp.sse_customer_algorithm #=> String
3263
3499
  # resp.sse_customer_key_md5 #=> String
3264
3500
  # resp.ssekms_key_id #=> String
3265
- # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA"
3501
+ # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE"
3266
3502
  # resp.request_charged #=> String, one of "requester"
3267
3503
  # resp.replication_status #=> String, one of "COMPLETE", "PENDING", "FAILED", "REPLICA"
3268
3504
  # resp.parts_count #=> Integer
3505
+ # resp.object_lock_mode #=> String, one of "GOVERNANCE", "COMPLIANCE"
3506
+ # resp.object_lock_retain_until_date #=> Time
3507
+ # resp.object_lock_legal_hold_status #=> String, one of "ON", "OFF"
3269
3508
  #
3270
3509
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObject AWS API Documentation
3271
3510
  #
@@ -3361,7 +3600,7 @@ module Aws::S3
3361
3600
  # resp.inventory_configuration_list #=> Array
3362
3601
  # resp.inventory_configuration_list[0].destination.s3_bucket_destination.account_id #=> String
3363
3602
  # resp.inventory_configuration_list[0].destination.s3_bucket_destination.bucket #=> String
3364
- # resp.inventory_configuration_list[0].destination.s3_bucket_destination.format #=> String, one of "CSV", "ORC"
3603
+ # resp.inventory_configuration_list[0].destination.s3_bucket_destination.format #=> String, one of "CSV", "ORC", "Parquet"
3365
3604
  # resp.inventory_configuration_list[0].destination.s3_bucket_destination.prefix #=> String
3366
3605
  # resp.inventory_configuration_list[0].destination.s3_bucket_destination.encryption.ssekms.key_id #=> String
3367
3606
  # resp.inventory_configuration_list[0].is_enabled #=> Boolean
@@ -3369,7 +3608,7 @@ module Aws::S3
3369
3608
  # resp.inventory_configuration_list[0].id #=> String
3370
3609
  # resp.inventory_configuration_list[0].included_object_versions #=> String, one of "All", "Current"
3371
3610
  # resp.inventory_configuration_list[0].optional_fields #=> Array
3372
- # resp.inventory_configuration_list[0].optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus"
3611
+ # resp.inventory_configuration_list[0].optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus", "ObjectLockRetainUntilDate", "ObjectLockMode", "ObjectLockLegalHoldStatus"
3373
3612
  # resp.inventory_configuration_list[0].schedule.frequency #=> String, one of "Daily", "Weekly"
3374
3613
  # resp.is_truncated #=> Boolean
3375
3614
  # resp.next_continuation_token #=> String
@@ -3661,7 +3900,7 @@ module Aws::S3
3661
3900
  # resp.uploads[0].upload_id #=> String
3662
3901
  # resp.uploads[0].key #=> String
3663
3902
  # resp.uploads[0].initiated #=> Time
3664
- # resp.uploads[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA"
3903
+ # resp.uploads[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE"
3665
3904
  # resp.uploads[0].owner.display_name #=> String
3666
3905
  # resp.uploads[0].owner.id #=> String
3667
3906
  # resp.uploads[0].initiator.id #=> String
@@ -3926,7 +4165,7 @@ module Aws::S3
3926
4165
  # resp.contents[0].last_modified #=> Time
3927
4166
  # resp.contents[0].etag #=> String
3928
4167
  # resp.contents[0].size #=> Integer
3929
- # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA"
4168
+ # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE"
3930
4169
  # resp.contents[0].owner.display_name #=> String
3931
4170
  # resp.contents[0].owner.id #=> String
3932
4171
  # resp.name #=> String
@@ -4062,7 +4301,7 @@ module Aws::S3
4062
4301
  # resp.contents[0].last_modified #=> Time
4063
4302
  # resp.contents[0].etag #=> String
4064
4303
  # resp.contents[0].size #=> Integer
4065
- # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA"
4304
+ # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE"
4066
4305
  # resp.contents[0].owner.display_name #=> String
4067
4306
  # resp.contents[0].owner.id #=> String
4068
4307
  # resp.name #=> String
@@ -4197,7 +4436,7 @@ module Aws::S3
4197
4436
  # resp.initiator.display_name #=> String
4198
4437
  # resp.owner.display_name #=> String
4199
4438
  # resp.owner.id #=> String
4200
- # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA"
4439
+ # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE"
4201
4440
  # resp.request_charged #=> String, one of "requester"
4202
4441
  #
4203
4442
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListParts AWS API Documentation
@@ -4472,7 +4711,8 @@ module Aws::S3
4472
4711
  #
4473
4712
  # @option params [String] :content_md5
4474
4713
  # The base64-encoded 128-bit MD5 digest of the server-side encryption
4475
- # configuration.
4714
+ # configuration. This parameter is auto-populated when using the command
4715
+ # from the CLI
4476
4716
  #
4477
4717
  # @option params [required, Types::ServerSideEncryptionConfiguration] :server_side_encryption_configuration
4478
4718
  # Container for server-side encryption configuration rules. Currently S3
@@ -4531,7 +4771,7 @@ module Aws::S3
4531
4771
  # s3_bucket_destination: { # required
4532
4772
  # account_id: "AccountId",
4533
4773
  # bucket: "BucketName", # required
4534
- # format: "CSV", # required, accepts CSV, ORC
4774
+ # format: "CSV", # required, accepts CSV, ORC, Parquet
4535
4775
  # prefix: "Prefix",
4536
4776
  # encryption: {
4537
4777
  # sses3: {
@@ -4548,7 +4788,7 @@ module Aws::S3
4548
4788
  # },
4549
4789
  # id: "InventoryId", # required
4550
4790
  # included_object_versions: "All", # required, accepts All, Current
4551
- # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus
4791
+ # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus, ObjectLockRetainUntilDate, ObjectLockMode, ObjectLockLegalHoldStatus
4552
4792
  # schedule: { # required
4553
4793
  # frequency: "Daily", # required, accepts Daily, Weekly
4554
4794
  # },
@@ -4564,7 +4804,7 @@ module Aws::S3
4564
4804
  req.send_request(options)
4565
4805
  end
4566
4806
 
4567
- # Deprecated, see the PutBucketLifecycleConfiguration operation.
4807
+ # No longer used, see the PutBucketLifecycleConfiguration operation.
4568
4808
  #
4569
4809
  # @option params [required, String] :bucket
4570
4810
  #
@@ -4593,11 +4833,11 @@ module Aws::S3
4593
4833
  # transition: {
4594
4834
  # date: Time.now,
4595
4835
  # days: 1,
4596
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
4836
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
4597
4837
  # },
4598
4838
  # noncurrent_version_transition: {
4599
4839
  # noncurrent_days: 1,
4600
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
4840
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
4601
4841
  # },
4602
4842
  # noncurrent_version_expiration: {
4603
4843
  # noncurrent_days: 1,
@@ -4692,13 +4932,13 @@ module Aws::S3
4692
4932
  # {
4693
4933
  # date: Time.now,
4694
4934
  # days: 1,
4695
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
4935
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
4696
4936
  # },
4697
4937
  # ],
4698
4938
  # noncurrent_version_transitions: [
4699
4939
  # {
4700
4940
  # noncurrent_days: 1,
4701
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
4941
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
4702
4942
  # },
4703
4943
  # ],
4704
4944
  # noncurrent_version_expiration: {
@@ -4841,7 +5081,7 @@ module Aws::S3
4841
5081
  req.send_request(options)
4842
5082
  end
4843
5083
 
4844
- # Deprecated, see the PutBucketNotificationConfiguraiton operation.
5084
+ # No longer used, see the PutBucketNotificationConfiguration operation.
4845
5085
  #
4846
5086
  # @option params [required, String] :bucket
4847
5087
  #
@@ -4859,20 +5099,20 @@ module Aws::S3
4859
5099
  # notification_configuration: { # required
4860
5100
  # topic_configuration: {
4861
5101
  # id: "NotificationId",
4862
- # 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
4863
- # 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
5102
+ # 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
5103
+ # 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
4864
5104
  # topic: "TopicArn",
4865
5105
  # },
4866
5106
  # queue_configuration: {
4867
5107
  # id: "NotificationId",
4868
- # 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
4869
- # 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
5108
+ # 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
5109
+ # 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
4870
5110
  # queue: "QueueArn",
4871
5111
  # },
4872
5112
  # cloud_function_configuration: {
4873
5113
  # id: "NotificationId",
4874
- # 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
4875
- # 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
5114
+ # 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
5115
+ # 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
4876
5116
  # cloud_function: "CloudFunction",
4877
5117
  # invocation_role: "CloudFunctionInvocationRole",
4878
5118
  # },
@@ -4927,7 +5167,7 @@ module Aws::S3
4927
5167
  # {
4928
5168
  # id: "NotificationId",
4929
5169
  # topic_arn: "TopicArn", # required
4930
- # 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
5170
+ # 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
4931
5171
  # filter: {
4932
5172
  # key: {
4933
5173
  # filter_rules: [
@@ -4944,7 +5184,7 @@ module Aws::S3
4944
5184
  # {
4945
5185
  # id: "NotificationId",
4946
5186
  # queue_arn: "QueueArn", # required
4947
- # 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
5187
+ # 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
4948
5188
  # filter: {
4949
5189
  # key: {
4950
5190
  # filter_rules: [
@@ -4961,7 +5201,7 @@ module Aws::S3
4961
5201
  # {
4962
5202
  # id: "NotificationId",
4963
5203
  # lambda_function_arn: "LambdaFunctionArn", # required
4964
- # 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
5204
+ # 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
4965
5205
  # filter: {
4966
5206
  # key: {
4967
5207
  # filter_rules: [
@@ -5104,7 +5344,7 @@ module Aws::S3
5104
5344
  # destination: { # required
5105
5345
  # bucket: "BucketName", # required
5106
5346
  # account: "AccountId",
5107
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
5347
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
5108
5348
  # access_control_translation: {
5109
5349
  # owner: "Destination", # required, accepts Destination
5110
5350
  # },
@@ -5380,7 +5620,8 @@ module Aws::S3
5380
5620
  # the body cannot be determined automatically.
5381
5621
  #
5382
5622
  # @option params [String] :content_md5
5383
- # The base64-encoded 128-bit MD5 digest of the part data.
5623
+ # The base64-encoded 128-bit MD5 digest of the part data. This parameter
5624
+ # is auto-populated when using the command from the CLI
5384
5625
  #
5385
5626
  # @option params [String] :content_type
5386
5627
  # A standard MIME type describing the format of the object data.
@@ -5453,6 +5694,15 @@ module Aws::S3
5453
5694
  # The tag-set for the object. The tag-set must be encoded as URL Query
5454
5695
  # parameters. (For example, "Key1=Value1")
5455
5696
  #
5697
+ # @option params [String] :object_lock_mode
5698
+ # The Object Lock mode that you want to apply to this object.
5699
+ #
5700
+ # @option params [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
5701
+ # The date and time when you want this object's Object Lock to expire.
5702
+ #
5703
+ # @option params [String] :object_lock_legal_hold_status
5704
+ # The Legal Hold status that you want to apply to the specified object.
5705
+ #
5456
5706
  # @return [Types::PutObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5457
5707
  #
5458
5708
  # * {Types::PutObjectOutput#expiration #expiration} => String
@@ -5465,114 +5715,114 @@ module Aws::S3
5465
5715
  # * {Types::PutObjectOutput#request_charged #request_charged} => String
5466
5716
  #
5467
5717
  #
5468
- # @example Example: To create an object.
5718
+ # @example Example: To upload an object and specify optional tags
5469
5719
  #
5470
- # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
5720
+ # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
5721
+ # # S3 returns version ID of the newly created object.
5471
5722
  #
5472
5723
  # resp = client.put_object({
5473
- # body: "filetoupload",
5724
+ # body: "c:\\HappyFace.jpg",
5474
5725
  # bucket: "examplebucket",
5475
- # key: "objectkey",
5726
+ # key: "HappyFace.jpg",
5727
+ # tagging: "key1=value1&key2=value2",
5476
5728
  # })
5477
5729
  #
5478
5730
  # resp.to_h outputs the following:
5479
5731
  # {
5480
5732
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
5481
- # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
5733
+ # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
5482
5734
  # }
5483
5735
  #
5484
- # @example Example: To upload object and specify user-defined metadata
5736
+ # @example Example: To upload an object and specify canned ACL.
5485
5737
  #
5486
- # # The following example creates an object. The request also specifies optional metadata. If the bucket is versioning
5487
- # # enabled, S3 returns version ID in response.
5738
+ # # The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ
5739
+ # # access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.
5488
5740
  #
5489
5741
  # resp = client.put_object({
5742
+ # acl: "authenticated-read",
5490
5743
  # body: "filetoupload",
5491
5744
  # bucket: "examplebucket",
5492
5745
  # key: "exampleobject",
5493
- # metadata: {
5494
- # "metadata1" => "value1",
5495
- # "metadata2" => "value2",
5496
- # },
5497
5746
  # })
5498
5747
  #
5499
5748
  # resp.to_h outputs the following:
5500
5749
  # {
5501
5750
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
5502
- # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
5751
+ # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
5503
5752
  # }
5504
5753
  #
5505
- # @example Example: To upload an object and specify optional tags
5754
+ # @example Example: To create an object.
5506
5755
  #
5507
- # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
5508
- # # S3 returns version ID of the newly created object.
5756
+ # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
5509
5757
  #
5510
5758
  # resp = client.put_object({
5511
- # body: "c:\\HappyFace.jpg",
5759
+ # body: "filetoupload",
5512
5760
  # bucket: "examplebucket",
5513
- # key: "HappyFace.jpg",
5514
- # tagging: "key1=value1&key2=value2",
5761
+ # key: "objectkey",
5515
5762
  # })
5516
5763
  #
5517
5764
  # resp.to_h outputs the following:
5518
5765
  # {
5519
5766
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
5520
- # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
5767
+ # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
5521
5768
  # }
5522
5769
  #
5523
- # @example Example: To upload an object
5770
+ # @example Example: To upload an object (specify optional headers)
5524
5771
  #
5525
- # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
5526
- # # syntax. S3 returns VersionId of the newly created object.
5772
+ # # The following example uploads an object. The request specifies optional request headers to directs S3 to use specific
5773
+ # # storage class and use server-side encryption.
5527
5774
  #
5528
5775
  # resp = client.put_object({
5529
5776
  # body: "HappyFace.jpg",
5530
5777
  # bucket: "examplebucket",
5531
5778
  # key: "HappyFace.jpg",
5779
+ # server_side_encryption: "AES256",
5780
+ # storage_class: "STANDARD_IA",
5532
5781
  # })
5533
5782
  #
5534
5783
  # resp.to_h outputs the following:
5535
5784
  # {
5536
5785
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
5537
- # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
5786
+ # server_side_encryption: "AES256",
5787
+ # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
5538
5788
  # }
5539
5789
  #
5540
- # @example Example: To upload an object and specify canned ACL.
5790
+ # @example Example: To upload an object
5541
5791
  #
5542
- # # The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ
5543
- # # access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.
5792
+ # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
5793
+ # # syntax. S3 returns VersionId of the newly created object.
5544
5794
  #
5545
5795
  # resp = client.put_object({
5546
- # acl: "authenticated-read",
5547
- # body: "filetoupload",
5796
+ # body: "HappyFace.jpg",
5548
5797
  # bucket: "examplebucket",
5549
- # key: "exampleobject",
5798
+ # key: "HappyFace.jpg",
5550
5799
  # })
5551
5800
  #
5552
5801
  # resp.to_h outputs the following:
5553
5802
  # {
5554
5803
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
5555
- # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
5804
+ # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
5556
5805
  # }
5557
5806
  #
5558
- # @example Example: To upload an object (specify optional headers)
5807
+ # @example Example: To upload object and specify user-defined metadata
5559
5808
  #
5560
- # # The following example uploads an object. The request specifies optional request headers to directs S3 to use specific
5561
- # # storage class and use server-side encryption.
5809
+ # # The following example creates an object. The request also specifies optional metadata. If the bucket is versioning
5810
+ # # enabled, S3 returns version ID in response.
5562
5811
  #
5563
5812
  # resp = client.put_object({
5564
- # body: "HappyFace.jpg",
5813
+ # body: "filetoupload",
5565
5814
  # bucket: "examplebucket",
5566
- # key: "HappyFace.jpg",
5567
- # server_side_encryption: "AES256",
5568
- # storage_class: "STANDARD_IA",
5815
+ # key: "exampleobject",
5816
+ # metadata: {
5817
+ # "metadata1" => "value1",
5818
+ # "metadata2" => "value2",
5819
+ # },
5569
5820
  # })
5570
5821
  #
5571
5822
  # resp.to_h outputs the following:
5572
5823
  # {
5573
5824
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
5574
- # server_side_encryption: "AES256",
5575
- # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
5825
+ # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
5576
5826
  # }
5577
5827
  #
5578
5828
  # @example Example: To upload an object and specify server-side encryption and object tags
@@ -5624,7 +5874,7 @@ module Aws::S3
5624
5874
  # "MetadataKey" => "MetadataValue",
5625
5875
  # },
5626
5876
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
5627
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
5877
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
5628
5878
  # website_redirect_location: "WebsiteRedirectLocation",
5629
5879
  # sse_customer_algorithm: "SSECustomerAlgorithm",
5630
5880
  # sse_customer_key: "SSECustomerKey",
@@ -5632,6 +5882,9 @@ module Aws::S3
5632
5882
  # ssekms_key_id: "SSEKMSKeyId",
5633
5883
  # request_payer: "requester", # accepts requester
5634
5884
  # tagging: "TaggingHeader",
5885
+ # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
5886
+ # object_lock_retain_until_date: Time.now,
5887
+ # object_lock_legal_hold_status: "ON", # accepts ON, OFF
5635
5888
  # })
5636
5889
  #
5637
5890
  # @example Response structure
@@ -5765,6 +6018,186 @@ module Aws::S3
5765
6018
  req.send_request(options)
5766
6019
  end
5767
6020
 
6021
+ # Applies a Legal Hold configuration to the specified object.
6022
+ #
6023
+ # @option params [required, String] :bucket
6024
+ # The bucket containing the object that you want to place a Legal Hold
6025
+ # on.
6026
+ #
6027
+ # @option params [required, String] :key
6028
+ # The key name for the object that you want to place a Legal Hold on.
6029
+ #
6030
+ # @option params [Types::ObjectLockLegalHold] :legal_hold
6031
+ # Container element for the Legal Hold configuration you want to apply
6032
+ # to the specified object.
6033
+ #
6034
+ # @option params [String] :request_payer
6035
+ # Confirms that the requester knows that she or he will be charged for
6036
+ # the request. Bucket owners need not specify this parameter in their
6037
+ # requests. Documentation on downloading objects from requester pays
6038
+ # buckets can be found at
6039
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
6040
+ #
6041
+ # @option params [String] :version_id
6042
+ # The version ID of the object that you want to place a Legal Hold on.
6043
+ #
6044
+ # @option params [String] :content_md5
6045
+ # The MD5 hash for the request body.
6046
+ #
6047
+ # @return [Types::PutObjectLegalHoldOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6048
+ #
6049
+ # * {Types::PutObjectLegalHoldOutput#request_charged #request_charged} => String
6050
+ #
6051
+ # @example Request syntax with placeholder values
6052
+ #
6053
+ # resp = client.put_object_legal_hold({
6054
+ # bucket: "BucketName", # required
6055
+ # key: "ObjectKey", # required
6056
+ # legal_hold: {
6057
+ # status: "ON", # accepts ON, OFF
6058
+ # },
6059
+ # request_payer: "requester", # accepts requester
6060
+ # version_id: "ObjectVersionId",
6061
+ # content_md5: "ContentMD5",
6062
+ # })
6063
+ #
6064
+ # @example Response structure
6065
+ #
6066
+ # resp.request_charged #=> String, one of "requester"
6067
+ #
6068
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHold AWS API Documentation
6069
+ #
6070
+ # @overload put_object_legal_hold(params = {})
6071
+ # @param [Hash] params ({})
6072
+ def put_object_legal_hold(params = {}, options = {})
6073
+ req = build_request(:put_object_legal_hold, params)
6074
+ req.send_request(options)
6075
+ end
6076
+
6077
+ # Places an Object Lock configuration on the specified bucket. The rule
6078
+ # specified in the Object Lock configuration will be applied by default
6079
+ # to every new object placed in the specified bucket.
6080
+ #
6081
+ # @option params [required, String] :bucket
6082
+ # The bucket whose Object Lock configuration you want to create or
6083
+ # replace.
6084
+ #
6085
+ # @option params [Types::ObjectLockConfiguration] :object_lock_configuration
6086
+ # The Object Lock configuration that you want to apply to the specified
6087
+ # bucket.
6088
+ #
6089
+ # @option params [String] :request_payer
6090
+ # Confirms that the requester knows that she or he will be charged for
6091
+ # the request. Bucket owners need not specify this parameter in their
6092
+ # requests. Documentation on downloading objects from requester pays
6093
+ # buckets can be found at
6094
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
6095
+ #
6096
+ # @option params [String] :token
6097
+ # A token to allow Object Lock to be enabled for an existing bucket.
6098
+ #
6099
+ # @option params [String] :content_md5
6100
+ # The MD5 hash for the request body.
6101
+ #
6102
+ # @return [Types::PutObjectLockConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6103
+ #
6104
+ # * {Types::PutObjectLockConfigurationOutput#request_charged #request_charged} => String
6105
+ #
6106
+ # @example Request syntax with placeholder values
6107
+ #
6108
+ # resp = client.put_object_lock_configuration({
6109
+ # bucket: "BucketName", # required
6110
+ # object_lock_configuration: {
6111
+ # object_lock_enabled: "Enabled", # accepts Enabled
6112
+ # rule: {
6113
+ # default_retention: {
6114
+ # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
6115
+ # days: 1,
6116
+ # years: 1,
6117
+ # },
6118
+ # },
6119
+ # },
6120
+ # request_payer: "requester", # accepts requester
6121
+ # token: "ObjectLockToken",
6122
+ # content_md5: "ContentMD5",
6123
+ # })
6124
+ #
6125
+ # @example Response structure
6126
+ #
6127
+ # resp.request_charged #=> String, one of "requester"
6128
+ #
6129
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfiguration AWS API Documentation
6130
+ #
6131
+ # @overload put_object_lock_configuration(params = {})
6132
+ # @param [Hash] params ({})
6133
+ def put_object_lock_configuration(params = {}, options = {})
6134
+ req = build_request(:put_object_lock_configuration, params)
6135
+ req.send_request(options)
6136
+ end
6137
+
6138
+ # Places an Object Retention configuration on an object.
6139
+ #
6140
+ # @option params [required, String] :bucket
6141
+ # The bucket that contains the object you want to apply this Object
6142
+ # Retention configuration to.
6143
+ #
6144
+ # @option params [required, String] :key
6145
+ # The key name for the object that you want to apply this Object
6146
+ # Retention configuration to.
6147
+ #
6148
+ # @option params [Types::ObjectLockRetention] :retention
6149
+ # The container element for the Object Retention configuration.
6150
+ #
6151
+ # @option params [String] :request_payer
6152
+ # Confirms that the requester knows that she or he will be charged for
6153
+ # the request. Bucket owners need not specify this parameter in their
6154
+ # requests. Documentation on downloading objects from requester pays
6155
+ # buckets can be found at
6156
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
6157
+ #
6158
+ # @option params [String] :version_id
6159
+ # The version ID for the object that you want to apply this Object
6160
+ # Retention configuration to.
6161
+ #
6162
+ # @option params [Boolean] :bypass_governance_retention
6163
+ # Indicates whether this operation should bypass Governance-mode
6164
+ # restrictions.j
6165
+ #
6166
+ # @option params [String] :content_md5
6167
+ # The MD5 hash for the request body.
6168
+ #
6169
+ # @return [Types::PutObjectRetentionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6170
+ #
6171
+ # * {Types::PutObjectRetentionOutput#request_charged #request_charged} => String
6172
+ #
6173
+ # @example Request syntax with placeholder values
6174
+ #
6175
+ # resp = client.put_object_retention({
6176
+ # bucket: "BucketName", # required
6177
+ # key: "ObjectKey", # required
6178
+ # retention: {
6179
+ # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
6180
+ # retain_until_date: Time.now,
6181
+ # },
6182
+ # request_payer: "requester", # accepts requester
6183
+ # version_id: "ObjectVersionId",
6184
+ # bypass_governance_retention: false,
6185
+ # content_md5: "ContentMD5",
6186
+ # })
6187
+ #
6188
+ # @example Response structure
6189
+ #
6190
+ # resp.request_charged #=> String, one of "requester"
6191
+ #
6192
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetention AWS API Documentation
6193
+ #
6194
+ # @overload put_object_retention(params = {})
6195
+ # @param [Hash] params ({})
6196
+ def put_object_retention(params = {}, options = {})
6197
+ req = build_request(:put_object_retention, params)
6198
+ req.send_request(options)
6199
+ end
6200
+
5768
6201
  # Sets the supplied tag-set to an object that already exists in a bucket
5769
6202
  #
5770
6203
  # @option params [required, String] :bucket
@@ -5838,19 +6271,26 @@ module Aws::S3
5838
6271
  req.send_request(options)
5839
6272
  end
5840
6273
 
5841
- # Creates or modifies the Public Access Block configuration for an
6274
+ # Creates or modifies the `PublicAccessBlock` configuration for an
5842
6275
  # Amazon S3 bucket.
5843
6276
  #
5844
6277
  # @option params [required, String] :bucket
5845
- # The name of the Amazon S3 bucket whose Public Access Block
6278
+ # The name of the Amazon S3 bucket whose `PublicAccessBlock`
5846
6279
  # configuration you want to set.
5847
6280
  #
5848
6281
  # @option params [String] :content_md5
5849
- # The MD5 hash of the `PutPublicBlock` request body.
6282
+ # The MD5 hash of the `PutPublicAccessBlock` request body.
5850
6283
  #
5851
6284
  # @option params [required, Types::PublicAccessBlockConfiguration] :public_access_block_configuration
5852
- # The Public Access Block configuration that you want to apply to this
5853
- # Amazon S3 bucket.
6285
+ # The `PublicAccessBlock` configuration that you want to apply to this
6286
+ # Amazon S3 bucket. You can enable the configuration options in any
6287
+ # combination. For more information about when Amazon S3 considers a
6288
+ # bucket or object public, see [The Meaning of "Public"][1] in the
6289
+ # *Amazon Simple Storage Service Developer Guide*.
6290
+ #
6291
+ #
6292
+ #
6293
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status
5854
6294
  #
5855
6295
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
5856
6296
  #
@@ -6002,7 +6442,7 @@ module Aws::S3
6002
6442
  # value: "MetadataValue",
6003
6443
  # },
6004
6444
  # ],
6005
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
6445
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
6006
6446
  # },
6007
6447
  # },
6008
6448
  # },
@@ -6044,7 +6484,7 @@ module Aws::S3
6044
6484
  #
6045
6485
  #
6046
6486
  #
6047
- # [1]: http://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
6487
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
6048
6488
  #
6049
6489
  # @option params [String] :sse_customer_key
6050
6490
  # The SSE Customer Key. For more information, see [ Server-Side
@@ -6052,7 +6492,7 @@ module Aws::S3
6052
6492
  #
6053
6493
  #
6054
6494
  #
6055
- # [1]: http://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
6495
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
6056
6496
  #
6057
6497
  # @option params [String] :sse_customer_key_md5
6058
6498
  # The SSE Customer Key MD5. For more information, see [ Server-Side
@@ -6060,7 +6500,7 @@ module Aws::S3
6060
6500
  #
6061
6501
  #
6062
6502
  #
6063
- # [1]: http://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
6503
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
6064
6504
  #
6065
6505
  # @option params [required, String] :expression
6066
6506
  # The expression that is used to query the object.
@@ -6096,13 +6536,12 @@ module Aws::S3
6096
6536
  # is also supported.
6097
6537
  #
6098
6538
  # `:event_stream_handler` option takes in either Proc object or
6099
- # EventStreams::SelectObjectContentEventStream object.
6539
+ # Aws::S3::EventStreams::SelectObjectContentEventStream object.
6100
6540
  #
6101
6541
  # Usage pattern a): callbacks with a block attached to #select_object_content
6102
6542
  # Example for registering callbacks for all event types and error event
6103
6543
  #
6104
6544
  # client.select_object_content( # params input# ) do |stream|
6105
- #
6106
6545
  # stream.on_error_event do |event|
6107
6546
  # # catch unmodeled error event in the stream
6108
6547
  # raise event
@@ -6122,7 +6561,7 @@ module Aws::S3
6122
6561
  #
6123
6562
  # Usage pattern b): pass in `:event_stream_handler` for #select_object_content
6124
6563
  #
6125
- # 1) create a EventStreams::SelectObjectContentEventStream object
6564
+ # 1) create a Aws::S3::EventStreams::SelectObjectContentEventStream object
6126
6565
  # Example for registering callbacks with specific events
6127
6566
  #
6128
6567
  # handler = Aws::S3::EventStreams::SelectObjectContentEventStream.new
@@ -6444,7 +6883,7 @@ module Aws::S3
6444
6883
  # must use the form bytes=first-last, where the first and last are the
6445
6884
  # zero-based byte offsets to copy. For example, bytes=0-9 indicates that
6446
6885
  # you want to copy the first ten bytes of the source. You can copy a
6447
- # range only if the source object is greater than 5 GB.
6886
+ # range only if the source object is greater than 5 MB.
6448
6887
  #
6449
6888
  # @option params [required, String] :key
6450
6889
  #
@@ -6602,7 +7041,7 @@ module Aws::S3
6602
7041
  params: params,
6603
7042
  config: config)
6604
7043
  context[:gem_name] = 'aws-sdk-s3'
6605
- context[:gem_version] = '1.24.1'
7044
+ context[:gem_version] = '1.36.1'
6606
7045
  Seahorse::Client::Request.new(handlers, context)
6607
7046
  end
6608
7047
 
@@ -6619,7 +7058,7 @@ module Aws::S3
6619
7058
  # In between attempts, the waiter will sleep.
6620
7059
  #
6621
7060
  # # polls in a loop, sleeping between attempts
6622
- # client.waiter_until(waiter_name, params)
7061
+ # client.wait_until(waiter_name, params)
6623
7062
  #
6624
7063
  # ## Configuration
6625
7064
  #