aws-sdk-s3 1.24.1 → 1.36.1

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