aws-sdk-s3 1.9.0 → 1.40.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aws-sdk-s3/bucket.rb +22 -3
  3. data/lib/aws-sdk-s3/bucket_acl.rb +1 -0
  4. data/lib/aws-sdk-s3/bucket_cors.rb +1 -0
  5. data/lib/aws-sdk-s3/bucket_lifecycle.rb +3 -2
  6. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +3 -2
  7. data/lib/aws-sdk-s3/bucket_notification.rb +9 -5
  8. data/lib/aws-sdk-s3/bucket_tagging.rb +1 -0
  9. data/lib/aws-sdk-s3/bucket_website.rb +4 -0
  10. data/lib/aws-sdk-s3/client.rb +1303 -351
  11. data/lib/aws-sdk-s3/client_api.rb +352 -2
  12. data/lib/aws-sdk-s3/customizations/bucket.rb +2 -2
  13. data/lib/aws-sdk-s3/customizations/object.rb +60 -0
  14. data/lib/aws-sdk-s3/customizations/object_summary.rb +7 -0
  15. data/lib/aws-sdk-s3/customizations.rb +1 -0
  16. data/lib/aws-sdk-s3/encryption/client.rb +1 -1
  17. data/lib/aws-sdk-s3/encryption/io_auth_decrypter.rb +9 -3
  18. data/lib/aws-sdk-s3/event_streams.rb +62 -0
  19. data/lib/aws-sdk-s3/file_downloader.rb +10 -9
  20. data/lib/aws-sdk-s3/file_part.rb +5 -7
  21. data/lib/aws-sdk-s3/file_uploader.rb +1 -3
  22. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +162 -0
  23. data/lib/aws-sdk-s3/multipart_upload.rb +1 -0
  24. data/lib/aws-sdk-s3/multipart_upload_part.rb +2 -2
  25. data/lib/aws-sdk-s3/object.rb +71 -7
  26. data/lib/aws-sdk-s3/object_acl.rb +1 -0
  27. data/lib/aws-sdk-s3/object_summary.rb +54 -7
  28. data/lib/aws-sdk-s3/object_version.rb +11 -0
  29. data/lib/aws-sdk-s3/plugins/accelerate.rb +4 -0
  30. data/lib/aws-sdk-s3/plugins/md5s.rb +4 -1
  31. data/lib/aws-sdk-s3/plugins/redirects.rb +3 -1
  32. data/lib/aws-sdk-s3/plugins/s3_signer.rb +6 -1
  33. data/lib/aws-sdk-s3/presigner.rb +4 -0
  34. data/lib/aws-sdk-s3/resource.rb +4 -0
  35. data/lib/aws-sdk-s3/types.rb +1539 -227
  36. data/lib/aws-sdk-s3.rb +2 -1
  37. metadata +12 -4
@@ -15,10 +15,15 @@ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
15
15
  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
+ require 'aws-sdk-core/plugins/endpoint_discovery.rb'
19
+ require 'aws-sdk-core/plugins/endpoint_pattern.rb'
18
20
  require 'aws-sdk-core/plugins/response_paging.rb'
19
21
  require 'aws-sdk-core/plugins/stub_responses.rb'
20
22
  require 'aws-sdk-core/plugins/idempotency_token.rb'
21
23
  require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
24
+ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
25
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
26
+ require 'aws-sdk-core/plugins/transfer_encoding.rb'
22
27
  require 'aws-sdk-core/plugins/protocols/rest_xml.rb'
23
28
  require 'aws-sdk-s3/plugins/accelerate.rb'
24
29
  require 'aws-sdk-s3/plugins/dualstack.rb'
@@ -34,6 +39,7 @@ require 'aws-sdk-s3/plugins/sse_cpk.rb'
34
39
  require 'aws-sdk-s3/plugins/url_encoded_keys.rb'
35
40
  require 'aws-sdk-s3/plugins/s3_signer.rb'
36
41
  require 'aws-sdk-s3/plugins/bucket_name_restrictions.rb'
42
+ require 'aws-sdk-core/plugins/event_stream_configuration.rb'
37
43
 
38
44
  Aws::Plugins::GlobalConfiguration.add_identifier(:s3)
39
45
 
@@ -56,10 +62,15 @@ module Aws::S3
56
62
  add_plugin(Aws::Plugins::RetryErrors)
57
63
  add_plugin(Aws::Plugins::GlobalConfiguration)
58
64
  add_plugin(Aws::Plugins::RegionalEndpoint)
65
+ add_plugin(Aws::Plugins::EndpointDiscovery)
66
+ add_plugin(Aws::Plugins::EndpointPattern)
59
67
  add_plugin(Aws::Plugins::ResponsePaging)
60
68
  add_plugin(Aws::Plugins::StubResponses)
61
69
  add_plugin(Aws::Plugins::IdempotencyToken)
62
70
  add_plugin(Aws::Plugins::JsonvalueConverter)
71
+ add_plugin(Aws::Plugins::ClientMetricsPlugin)
72
+ add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
73
+ add_plugin(Aws::Plugins::TransferEncoding)
63
74
  add_plugin(Aws::Plugins::Protocols::RestXml)
64
75
  add_plugin(Aws::S3::Plugins::Accelerate)
65
76
  add_plugin(Aws::S3::Plugins::Dualstack)
@@ -75,123 +86,228 @@ module Aws::S3
75
86
  add_plugin(Aws::S3::Plugins::UrlEncodedKeys)
76
87
  add_plugin(Aws::S3::Plugins::S3Signer)
77
88
  add_plugin(Aws::S3::Plugins::BucketNameRestrictions)
89
+ add_plugin(Aws::Plugins::EventStreamConfiguration)
78
90
 
79
- # @option options [required, Aws::CredentialProvider] :credentials
80
- # Your AWS credentials. This can be an instance of any one of the
81
- # following classes:
82
- #
83
- # * `Aws::Credentials` - Used for configuring static, non-refreshing
84
- # credentials.
85
- #
86
- # * `Aws::InstanceProfileCredentials` - Used for loading credentials
87
- # from an EC2 IMDS on an EC2 instance.
88
- #
89
- # * `Aws::SharedCredentials` - Used for loading credentials from a
90
- # shared file, such as `~/.aws/config`.
91
- #
92
- # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
93
- #
94
- # When `:credentials` are not configured directly, the following
95
- # locations will be searched for credentials:
96
- #
97
- # * `Aws.config[:credentials]`
98
- # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
99
- # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
100
- # * `~/.aws/credentials`
101
- # * `~/.aws/config`
102
- # * EC2 IMDS instance profile - When used by default, the timeouts are
103
- # very aggressive. Construct and pass an instance of
104
- # `Aws::InstanceProfileCredentails` to enable retries and extended
105
- # timeouts.
106
- #
107
- # @option options [required, String] :region
108
- # The AWS region to connect to. The configured `:region` is
109
- # used to determine the service `:endpoint`. When not passed,
110
- # a default `:region` is search for in the following locations:
111
- #
112
- # * `Aws.config[:region]`
113
- # * `ENV['AWS_REGION']`
114
- # * `ENV['AMAZON_REGION']`
115
- # * `ENV['AWS_DEFAULT_REGION']`
116
- # * `~/.aws/credentials`
117
- # * `~/.aws/config`
118
- #
119
- # @option options [String] :access_key_id
120
- #
121
- # @option options [Boolean] :compute_checksums (true)
122
- # When `true` a MD5 checksum will be computed for every request that
123
- # sends a body. When `false`, MD5 checksums will only be computed
124
- # for operations that require them. Checksum errors returned by Amazon
125
- # S3 are automatically retried up to `:retry_limit` times.
126
- #
127
- # @option options [Boolean] :convert_params (true)
128
- # When `true`, an attempt is made to coerce request parameters into
129
- # the required types.
130
- #
131
- # @option options [String] :endpoint
132
- # The client endpoint is normally constructed from the `:region`
133
- # option. You should only configure an `:endpoint` when connecting
134
- # to test endpoints. This should be avalid HTTP(S) URI.
135
- #
136
- # @option options [Boolean] :follow_redirects (true)
137
- # When `true`, this client will follow 307 redirects returned
138
- # by Amazon S3.
139
- #
140
- # @option options [Boolean] :force_path_style (false)
141
- # When set to `true`, the bucket name is always left in the
142
- # request URI and never moved to the host as a sub-domain.
143
- #
144
- # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
145
- # The log formatter.
146
- #
147
- # @option options [Symbol] :log_level (:info)
148
- # The log level to send messages to the `:logger` at.
149
- #
150
- # @option options [Logger] :logger
151
- # The Logger instance to send log messages to. If this option
152
- # is not set, logging will be disabled.
153
- #
154
- # @option options [String] :profile ("default")
155
- # Used when loading credentials from the shared credentials file
156
- # at HOME/.aws/credentials. When not specified, 'default' is used.
157
- #
158
- # @option options [Boolean] :require_https_for_sse_cpk (true)
159
- # When `true`, the endpoint **must** be HTTPS for all operations
160
- # where server-side-encryption is used with customer-provided keys.
161
- # This should only be disabled for local testing.
162
- #
163
- # @option options [Integer] :retry_limit (3)
164
- # The maximum number of times to retry failed requests. Only
165
- # ~ 500 level server errors and certain ~ 400 level client errors
166
- # are retried. Generally, these are throttling errors, data
167
- # checksum errors, networking errors, timeout errors and auth
168
- # errors from expired credentials.
169
- #
170
- # @option options [String] :secret_access_key
171
- #
172
- # @option options [String] :session_token
173
- #
174
- # @option options [Boolean] :stub_responses (false)
175
- # Causes the client to return stubbed responses. By default
176
- # fake responses are generated and returned. You can specify
177
- # the response data to return or errors to raise by calling
178
- # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
179
- #
180
- # ** Please note ** When response stubbing is enabled, no HTTP
181
- # requests are made, and retries are disabled.
91
+ # @overload initialize(options)
92
+ # @param [Hash] options
93
+ # @option options [required, Aws::CredentialProvider] :credentials
94
+ # Your AWS credentials. This can be an instance of any one of the
95
+ # following classes:
96
+ #
97
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
98
+ # credentials.
99
+ #
100
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
101
+ # from an EC2 IMDS on an EC2 instance.
102
+ #
103
+ # * `Aws::SharedCredentials` - Used for loading credentials from a
104
+ # shared file, such as `~/.aws/config`.
182
105
  #
183
- # @option options [Boolean] :use_accelerate_endpoint (false)
184
- # When set to `true`, accelerated bucket endpoints will be used
185
- # for all object operations. You must first enable accelerate for
186
- # each bucket. [Go here for more information](http://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html).
187
- #
188
- # @option options [Boolean] :use_dualstack_endpoint (false)
189
- # When set to `true`, IPv6-compatible bucket endpoints will be used
190
- # for all operations.
191
- #
192
- # @option options [Boolean] :validate_params (true)
193
- # When `true`, request parameters are validated before
194
- # sending the request.
106
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
107
+ #
108
+ # When `:credentials` are not configured directly, the following
109
+ # locations will be searched for credentials:
110
+ #
111
+ # * `Aws.config[:credentials]`
112
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
113
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
114
+ # * `~/.aws/credentials`
115
+ # * `~/.aws/config`
116
+ # * EC2 IMDS instance profile - When used by default, the timeouts are
117
+ # very aggressive. Construct and pass an instance of
118
+ # `Aws::InstanceProfileCredentails` to enable retries and extended
119
+ # timeouts.
120
+ #
121
+ # @option options [required, String] :region
122
+ # The AWS region to connect to. The configured `:region` is
123
+ # used to determine the service `:endpoint`. When not passed,
124
+ # a default `:region` is search for in the following locations:
125
+ #
126
+ # * `Aws.config[:region]`
127
+ # * `ENV['AWS_REGION']`
128
+ # * `ENV['AMAZON_REGION']`
129
+ # * `ENV['AWS_DEFAULT_REGION']`
130
+ # * `~/.aws/credentials`
131
+ # * `~/.aws/config`
132
+ #
133
+ # @option options [String] :access_key_id
134
+ #
135
+ # @option options [Boolean] :active_endpoint_cache (false)
136
+ # When set to `true`, a thread polling for endpoints will be running in
137
+ # the background every 60 secs (default). Defaults to `false`.
138
+ #
139
+ # @option options [Boolean] :client_side_monitoring (false)
140
+ # When `true`, client-side metrics will be collected for all API requests from
141
+ # this client.
142
+ #
143
+ # @option options [String] :client_side_monitoring_client_id ("")
144
+ # Allows you to provide an identifier for this client which will be attached to
145
+ # all generated client side metrics. Defaults to an empty string.
146
+ #
147
+ # @option options [Integer] :client_side_monitoring_port (31000)
148
+ # Required for publishing client metrics. The port that the client side monitoring
149
+ # agent is running on, where client metrics will be published via UDP.
150
+ #
151
+ # @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
152
+ # Allows you to provide a custom client-side monitoring publisher class. By default,
153
+ # will use the Client Side Monitoring Agent Publisher.
154
+ #
155
+ # @option options [Boolean] :compute_checksums (true)
156
+ # When `true` a MD5 checksum will be computed for every request that
157
+ # sends a body. When `false`, MD5 checksums will only be computed
158
+ # for operations that require them. Checksum errors returned by Amazon
159
+ # S3 are automatically retried up to `:retry_limit` times.
160
+ #
161
+ # @option options [Boolean] :convert_params (true)
162
+ # When `true`, an attempt is made to coerce request parameters into
163
+ # the required types.
164
+ #
165
+ # @option options [Boolean] :disable_host_prefix_injection (false)
166
+ # Set to true to disable SDK automatically adding host prefix
167
+ # to default service endpoint when available.
168
+ #
169
+ # @option options [String] :endpoint
170
+ # The client endpoint is normally constructed from the `:region`
171
+ # option. You should only configure an `:endpoint` when connecting
172
+ # to test endpoints. This should be avalid HTTP(S) URI.
173
+ #
174
+ # @option options [Integer] :endpoint_cache_max_entries (1000)
175
+ # Used for the maximum size limit of the LRU cache storing endpoints data
176
+ # for endpoint discovery enabled operations. Defaults to 1000.
177
+ #
178
+ # @option options [Integer] :endpoint_cache_max_threads (10)
179
+ # Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
180
+ #
181
+ # @option options [Integer] :endpoint_cache_poll_interval (60)
182
+ # When :endpoint_discovery and :active_endpoint_cache is enabled,
183
+ # Use this option to config the time interval in seconds for making
184
+ # requests fetching endpoints information. Defaults to 60 sec.
185
+ #
186
+ # @option options [Boolean] :endpoint_discovery (false)
187
+ # When set to `true`, endpoint discovery will be enabled for operations when available. Defaults to `false`.
188
+ #
189
+ # @option options [Proc] :event_stream_handler
190
+ # 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.
191
+ #
192
+ # @option options [Boolean] :follow_redirects (true)
193
+ # When `true`, this client will follow 307 redirects returned
194
+ # by Amazon S3.
195
+ #
196
+ # @option options [Boolean] :force_path_style (false)
197
+ # When set to `true`, the bucket name is always left in the
198
+ # request URI and never moved to the host as a sub-domain.
199
+ #
200
+ # @option options [Proc] :input_event_stream_handler
201
+ # When an EventStream or Proc object is provided, it can be used for sending events for the event stream.
202
+ #
203
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
204
+ # The log formatter.
205
+ #
206
+ # @option options [Symbol] :log_level (:info)
207
+ # The log level to send messages to the `:logger` at.
208
+ #
209
+ # @option options [Logger] :logger
210
+ # The Logger instance to send log messages to. If this option
211
+ # is not set, logging will be disabled.
212
+ #
213
+ # @option options [Proc] :output_event_stream_handler
214
+ # 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.
215
+ #
216
+ # @option options [String] :profile ("default")
217
+ # Used when loading credentials from the shared credentials file
218
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
219
+ #
220
+ # @option options [Boolean] :require_https_for_sse_cpk (true)
221
+ # When `true`, the endpoint **must** be HTTPS for all operations
222
+ # where server-side-encryption is used with customer-provided keys.
223
+ # This should only be disabled for local testing.
224
+ #
225
+ # @option options [Float] :retry_base_delay (0.3)
226
+ # The base delay in seconds used by the default backoff function.
227
+ #
228
+ # @option options [Symbol] :retry_jitter (:none)
229
+ # A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number.
230
+ #
231
+ # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
232
+ #
233
+ # @option options [Integer] :retry_limit (3)
234
+ # The maximum number of times to retry failed requests. Only
235
+ # ~ 500 level server errors and certain ~ 400 level client errors
236
+ # are retried. Generally, these are throttling errors, data
237
+ # checksum errors, networking errors, timeout errors and auth
238
+ # errors from expired credentials.
239
+ #
240
+ # @option options [Integer] :retry_max_delay (0)
241
+ # The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function.
242
+ #
243
+ # @option options [String] :secret_access_key
244
+ #
245
+ # @option options [String] :session_token
246
+ #
247
+ # @option options [Boolean] :stub_responses (false)
248
+ # Causes the client to return stubbed responses. By default
249
+ # fake responses are generated and returned. You can specify
250
+ # the response data to return or errors to raise by calling
251
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
252
+ #
253
+ # ** Please note ** When response stubbing is enabled, no HTTP
254
+ # requests are made, and retries are disabled.
255
+ #
256
+ # @option options [Boolean] :use_accelerate_endpoint (false)
257
+ # When set to `true`, accelerated bucket endpoints will be used
258
+ # for all object operations. You must first enable accelerate for
259
+ # each bucket. [Go here for more information](http://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html).
260
+ #
261
+ # @option options [Boolean] :use_dualstack_endpoint (false)
262
+ # When set to `true`, IPv6-compatible bucket endpoints will be used
263
+ # for all operations.
264
+ #
265
+ # @option options [Boolean] :validate_params (true)
266
+ # When `true`, request parameters are validated before
267
+ # sending the request.
268
+ #
269
+ # @option options [URI::HTTP,String] :http_proxy A proxy to send
270
+ # requests through. Formatted like 'http://proxy.com:123'.
271
+ #
272
+ # @option options [Float] :http_open_timeout (15) The number of
273
+ # seconds to wait when opening a HTTP session before rasing a
274
+ # `Timeout::Error`.
275
+ #
276
+ # @option options [Integer] :http_read_timeout (60) The default
277
+ # number of seconds to wait for response data. This value can
278
+ # safely be set
279
+ # per-request on the session yeidled by {#session_for}.
280
+ #
281
+ # @option options [Float] :http_idle_timeout (5) The number of
282
+ # seconds a connection is allowed to sit idble before it is
283
+ # considered stale. Stale connections are closed and removed
284
+ # from the pool before making a request.
285
+ #
286
+ # @option options [Float] :http_continue_timeout (1) The number of
287
+ # seconds to wait for a 100-continue response before sending the
288
+ # request body. This option has no effect unless the request has
289
+ # "Expect" header set to "100-continue". Defaults to `nil` which
290
+ # disables this behaviour. This value can safely be set per
291
+ # request on the session yeidled by {#session_for}.
292
+ #
293
+ # @option options [Boolean] :http_wire_trace (false) When `true`,
294
+ # HTTP debug output will be sent to the `:logger`.
295
+ #
296
+ # @option options [Boolean] :ssl_verify_peer (true) When `true`,
297
+ # SSL peer certificates are verified when establishing a
298
+ # connection.
299
+ #
300
+ # @option options [String] :ssl_ca_bundle Full path to the SSL
301
+ # certificate authority bundle file that should be used when
302
+ # verifying peer certificates. If you do not pass
303
+ # `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
304
+ # will be used if available.
305
+ #
306
+ # @option options [String] :ssl_ca_directory Full path of the
307
+ # directory that contains the unbundled SSL certificate
308
+ # authority files for verifying peer certificates. If you do
309
+ # not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
310
+ # system default will be used if available.
195
311
  #
196
312
  def initialize(*args)
197
313
  super
@@ -489,6 +605,16 @@ module Aws::S3
489
605
  # in conjunction with the TaggingDirective. The tag-set must be encoded
490
606
  # as URL Query parameters
491
607
  #
608
+ # @option params [String] :object_lock_mode
609
+ # The Object Lock mode that you want to apply to the copied object.
610
+ #
611
+ # @option params [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
612
+ # The date and time when you want the copied object's Object Lock to
613
+ # expire.
614
+ #
615
+ # @option params [String] :object_lock_legal_hold_status
616
+ # Specifies whether you want to apply a Legal Hold to the copied object.
617
+ #
492
618
  # @return [Types::CopyObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
493
619
  #
494
620
  # * {Types::CopyObjectOutput#copy_object_result #copy_object_result} => Types::CopyObjectResult
@@ -547,7 +673,7 @@ module Aws::S3
547
673
  # metadata_directive: "COPY", # accepts COPY, REPLACE
548
674
  # tagging_directive: "COPY", # accepts COPY, REPLACE
549
675
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
550
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
676
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
551
677
  # website_redirect_location: "WebsiteRedirectLocation",
552
678
  # sse_customer_algorithm: "SSECustomerAlgorithm",
553
679
  # sse_customer_key: "SSECustomerKey",
@@ -558,6 +684,9 @@ module Aws::S3
558
684
  # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5",
559
685
  # request_payer: "requester", # accepts requester
560
686
  # tagging: "TaggingHeader",
687
+ # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
688
+ # object_lock_retain_until_date: Time.now,
689
+ # object_lock_legal_hold_status: "ON", # accepts ON, OFF
561
690
  # })
562
691
  #
563
692
  # @example Response structure
@@ -608,38 +737,42 @@ module Aws::S3
608
737
  # @option params [String] :grant_write_acp
609
738
  # Allows grantee to write the ACL for the applicable bucket.
610
739
  #
740
+ # @option params [Boolean] :object_lock_enabled_for_bucket
741
+ # Specifies whether you want S3 Object Lock to be enabled for the new
742
+ # bucket.
743
+ #
611
744
  # @return [Types::CreateBucketOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
612
745
  #
613
746
  # * {Types::CreateBucketOutput#location #location} => String
614
747
  #
615
748
  #
616
- # @example Example: To create a bucket in a specific region
749
+ # @example Example: To create a bucket
617
750
  #
618
- # # The following example creates a bucket. The request specifies an AWS region where to create the bucket.
751
+ # # The following example creates a bucket.
619
752
  #
620
753
  # resp = client.create_bucket({
621
754
  # bucket: "examplebucket",
622
- # create_bucket_configuration: {
623
- # location_constraint: "eu-west-1",
624
- # },
625
755
  # })
626
756
  #
627
757
  # resp.to_h outputs the following:
628
758
  # {
629
- # location: "http://examplebucket.s3.amazonaws.com/",
759
+ # location: "/examplebucket",
630
760
  # }
631
761
  #
632
- # @example Example: To create a bucket
762
+ # @example Example: To create a bucket in a specific region
633
763
  #
634
- # # The following example creates a bucket.
764
+ # # The following example creates a bucket. The request specifies an AWS region where to create the bucket.
635
765
  #
636
766
  # resp = client.create_bucket({
637
767
  # bucket: "examplebucket",
768
+ # create_bucket_configuration: {
769
+ # location_constraint: "eu-west-1",
770
+ # },
638
771
  # })
639
772
  #
640
773
  # resp.to_h outputs the following:
641
774
  # {
642
- # location: "/examplebucket",
775
+ # location: "http://examplebucket.s3.amazonaws.com/",
643
776
  # }
644
777
  #
645
778
  # @example Request syntax with placeholder values
@@ -655,6 +788,7 @@ module Aws::S3
655
788
  # grant_read_acp: "GrantReadACP",
656
789
  # grant_write: "GrantWrite",
657
790
  # grant_write_acp: "GrantWriteACP",
791
+ # object_lock_enabled_for_bucket: false,
658
792
  # })
659
793
  #
660
794
  # @example Response structure
@@ -767,6 +901,17 @@ module Aws::S3
767
901
  # The tag-set for the object. The tag-set must be encoded as URL Query
768
902
  # parameters
769
903
  #
904
+ # @option params [String] :object_lock_mode
905
+ # Specifies the Object Lock mode that you want to apply to the uploaded
906
+ # object.
907
+ #
908
+ # @option params [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
909
+ # Specifies the date and time when you want the Object Lock to expire.
910
+ #
911
+ # @option params [String] :object_lock_legal_hold_status
912
+ # Specifies whether you want to apply a Legal Hold to the uploaded
913
+ # object.
914
+ #
770
915
  # @return [Types::CreateMultipartUploadOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
771
916
  #
772
917
  # * {Types::CreateMultipartUploadOutput#abort_date #abort_date} => Time
@@ -817,7 +962,7 @@ module Aws::S3
817
962
  # "MetadataKey" => "MetadataValue",
818
963
  # },
819
964
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
820
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
965
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
821
966
  # website_redirect_location: "WebsiteRedirectLocation",
822
967
  # sse_customer_algorithm: "SSECustomerAlgorithm",
823
968
  # sse_customer_key: "SSECustomerKey",
@@ -825,6 +970,9 @@ module Aws::S3
825
970
  # ssekms_key_id: "SSEKMSKeyId",
826
971
  # request_payer: "requester", # accepts requester
827
972
  # tagging: "TaggingHeader",
973
+ # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
974
+ # object_lock_retain_until_date: Time.now,
975
+ # object_lock_legal_hold_status: "ON", # accepts ON, OFF
828
976
  # })
829
977
  #
830
978
  # @example Response structure
@@ -909,7 +1057,7 @@ module Aws::S3
909
1057
  req.send_request(options)
910
1058
  end
911
1059
 
912
- # Deletes the cors configuration information set for the bucket.
1060
+ # Deletes the CORS configuration information set for the bucket.
913
1061
  #
914
1062
  # @option params [required, String] :bucket
915
1063
  #
@@ -1077,9 +1225,18 @@ module Aws::S3
1077
1225
  req.send_request(options)
1078
1226
  end
1079
1227
 
1080
- # Deletes the replication configuration from the bucket.
1228
+ # Deletes the replication configuration from the bucket. For information
1229
+ # about replication configuration, see [Cross-Region Replication (CRR)](
1230
+ # https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) in the
1231
+ # *Amazon S3 Developer Guide*.
1081
1232
  #
1082
1233
  # @option params [required, String] :bucket
1234
+ # The bucket name.
1235
+ #
1236
+ # <note markdown="1"> It can take a while to propagate the deletion of a replication
1237
+ # configuration to all Amazon S3 systems.
1238
+ #
1239
+ # </note>
1083
1240
  #
1084
1241
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1085
1242
  #
@@ -1189,6 +1346,10 @@ module Aws::S3
1189
1346
  # buckets can be found at
1190
1347
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1191
1348
  #
1349
+ # @option params [Boolean] :bypass_governance_retention
1350
+ # Indicates whether S3 Object Lock should bypass Governance-mode
1351
+ # restrictions to process this operation.
1352
+ #
1192
1353
  # @return [Types::DeleteObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1193
1354
  #
1194
1355
  # * {Types::DeleteObjectOutput#delete_marker #delete_marker} => Boolean
@@ -1196,15 +1357,6 @@ module Aws::S3
1196
1357
  # * {Types::DeleteObjectOutput#request_charged #request_charged} => String
1197
1358
  #
1198
1359
  #
1199
- # @example Example: To delete an object (from a non-versioned bucket)
1200
- #
1201
- # # The following example deletes an object from a non-versioned bucket.
1202
- #
1203
- # resp = client.delete_object({
1204
- # bucket: "ExampleBucket",
1205
- # key: "HappyFace.jpg",
1206
- # })
1207
- #
1208
1360
  # @example Example: To delete an object
1209
1361
  #
1210
1362
  # # The following example deletes an object from an S3 bucket.
@@ -1218,6 +1370,15 @@ module Aws::S3
1218
1370
  # {
1219
1371
  # }
1220
1372
  #
1373
+ # @example Example: To delete an object (from a non-versioned bucket)
1374
+ #
1375
+ # # The following example deletes an object from a non-versioned bucket.
1376
+ #
1377
+ # resp = client.delete_object({
1378
+ # bucket: "ExampleBucket",
1379
+ # key: "HappyFace.jpg",
1380
+ # })
1381
+ #
1221
1382
  # @example Request syntax with placeholder values
1222
1383
  #
1223
1384
  # resp = client.delete_object({
@@ -1226,6 +1387,7 @@ module Aws::S3
1226
1387
  # mfa: "MFA",
1227
1388
  # version_id: "ObjectVersionId",
1228
1389
  # request_payer: "requester", # accepts requester
1390
+ # bypass_governance_retention: false,
1229
1391
  # })
1230
1392
  #
1231
1393
  # @example Response structure
@@ -1257,35 +1419,35 @@ module Aws::S3
1257
1419
  # * {Types::DeleteObjectTaggingOutput#version_id #version_id} => String
1258
1420
  #
1259
1421
  #
1260
- # @example Example: To remove tag set from an object version
1422
+ # @example Example: To remove tag set from an object
1261
1423
  #
1262
- # # The following example removes tag set associated with the specified object version. The request specifies both the
1263
- # # object key and object version.
1424
+ # # The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the
1425
+ # # operation removes tag set from the latest object version.
1264
1426
  #
1265
1427
  # resp = client.delete_object_tagging({
1266
1428
  # bucket: "examplebucket",
1267
1429
  # key: "HappyFace.jpg",
1268
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
1269
1430
  # })
1270
1431
  #
1271
1432
  # resp.to_h outputs the following:
1272
1433
  # {
1273
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
1434
+ # version_id: "null",
1274
1435
  # }
1275
1436
  #
1276
- # @example Example: To remove tag set from an object
1437
+ # @example Example: To remove tag set from an object version
1277
1438
  #
1278
- # # The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the
1279
- # # operation removes tag set from the latest object version.
1439
+ # # The following example removes tag set associated with the specified object version. The request specifies both the
1440
+ # # object key and object version.
1280
1441
  #
1281
1442
  # resp = client.delete_object_tagging({
1282
1443
  # bucket: "examplebucket",
1283
1444
  # key: "HappyFace.jpg",
1445
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
1284
1446
  # })
1285
1447
  #
1286
1448
  # resp.to_h outputs the following:
1287
1449
  # {
1288
- # version_id: "null",
1450
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
1289
1451
  # }
1290
1452
  #
1291
1453
  # @example Request syntax with placeholder values
@@ -1327,6 +1489,11 @@ module Aws::S3
1327
1489
  # buckets can be found at
1328
1490
  # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1329
1491
  #
1492
+ # @option params [Boolean] :bypass_governance_retention
1493
+ # Specifies whether you want to delete this object even if it has a
1494
+ # Governance-type Object Lock in place. You must have sufficient
1495
+ # permissions to perform this operation.
1496
+ #
1330
1497
  # @return [Types::DeleteObjectsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1331
1498
  #
1332
1499
  # * {Types::DeleteObjectsOutput#deleted #deleted} => Array&lt;Types::DeletedObject&gt;
@@ -1334,22 +1501,20 @@ module Aws::S3
1334
1501
  # * {Types::DeleteObjectsOutput#errors #errors} => Array&lt;Types::Error&gt;
1335
1502
  #
1336
1503
  #
1337
- # @example Example: To delete multiple object versions from a versioned bucket
1504
+ # @example Example: To delete multiple objects from a versioned bucket
1338
1505
  #
1339
- # # The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object
1340
- # # versions and returns the key and versions of deleted objects in the response.
1506
+ # # The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the
1507
+ # # object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.
1341
1508
  #
1342
1509
  # resp = client.delete_objects({
1343
1510
  # bucket: "examplebucket",
1344
1511
  # delete: {
1345
1512
  # objects: [
1346
1513
  # {
1347
- # key: "HappyFace.jpg",
1348
- # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
1514
+ # key: "objectkey1",
1349
1515
  # },
1350
1516
  # {
1351
- # key: "HappyFace.jpg",
1352
- # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
1517
+ # key: "objectkey2",
1353
1518
  # },
1354
1519
  # ],
1355
1520
  # quiet: false,
@@ -1360,30 +1525,34 @@ module Aws::S3
1360
1525
  # {
1361
1526
  # deleted: [
1362
1527
  # {
1363
- # key: "HappyFace.jpg",
1364
- # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
1528
+ # delete_marker: true,
1529
+ # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
1530
+ # key: "objectkey1",
1365
1531
  # },
1366
1532
  # {
1367
- # key: "HappyFace.jpg",
1368
- # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
1533
+ # delete_marker: true,
1534
+ # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
1535
+ # key: "objectkey2",
1369
1536
  # },
1370
1537
  # ],
1371
1538
  # }
1372
1539
  #
1373
- # @example Example: To delete multiple objects from a versioned bucket
1540
+ # @example Example: To delete multiple object versions from a versioned bucket
1374
1541
  #
1375
- # # The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the
1376
- # # object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.
1542
+ # # The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object
1543
+ # # versions and returns the key and versions of deleted objects in the response.
1377
1544
  #
1378
1545
  # resp = client.delete_objects({
1379
1546
  # bucket: "examplebucket",
1380
1547
  # delete: {
1381
1548
  # objects: [
1382
1549
  # {
1383
- # key: "objectkey1",
1550
+ # key: "HappyFace.jpg",
1551
+ # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
1384
1552
  # },
1385
1553
  # {
1386
- # key: "objectkey2",
1554
+ # key: "HappyFace.jpg",
1555
+ # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
1387
1556
  # },
1388
1557
  # ],
1389
1558
  # quiet: false,
@@ -1394,14 +1563,12 @@ module Aws::S3
1394
1563
  # {
1395
1564
  # deleted: [
1396
1565
  # {
1397
- # delete_marker: true,
1398
- # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
1399
- # key: "objectkey1",
1566
+ # key: "HappyFace.jpg",
1567
+ # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
1400
1568
  # },
1401
1569
  # {
1402
- # delete_marker: true,
1403
- # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
1404
- # key: "objectkey2",
1570
+ # key: "HappyFace.jpg",
1571
+ # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
1405
1572
  # },
1406
1573
  # ],
1407
1574
  # }
@@ -1421,6 +1588,7 @@ module Aws::S3
1421
1588
  # },
1422
1589
  # mfa: "MFA",
1423
1590
  # request_payer: "requester", # accepts requester
1591
+ # bypass_governance_retention: false,
1424
1592
  # })
1425
1593
  #
1426
1594
  # @example Response structure
@@ -1446,6 +1614,30 @@ module Aws::S3
1446
1614
  req.send_request(options)
1447
1615
  end
1448
1616
 
1617
+ # Removes the `PublicAccessBlock` configuration from an Amazon S3
1618
+ # bucket.
1619
+ #
1620
+ # @option params [required, String] :bucket
1621
+ # The Amazon S3 bucket whose `PublicAccessBlock` configuration you want
1622
+ # to delete.
1623
+ #
1624
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1625
+ #
1626
+ # @example Request syntax with placeholder values
1627
+ #
1628
+ # resp = client.delete_public_access_block({
1629
+ # bucket: "BucketName", # required
1630
+ # })
1631
+ #
1632
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeletePublicAccessBlock AWS API Documentation
1633
+ #
1634
+ # @overload delete_public_access_block(params = {})
1635
+ # @param [Hash] params ({})
1636
+ def delete_public_access_block(params = {}, options = {})
1637
+ req = build_request(:delete_public_access_block, params)
1638
+ req.send_request(options)
1639
+ end
1640
+
1449
1641
  # Returns the accelerate configuration of a bucket.
1450
1642
  #
1451
1643
  # @option params [required, String] :bucket
@@ -1557,7 +1749,7 @@ module Aws::S3
1557
1749
  req.send_request(options)
1558
1750
  end
1559
1751
 
1560
- # Returns the cors configuration for the bucket.
1752
+ # Returns the CORS configuration for the bucket.
1561
1753
  #
1562
1754
  # @option params [required, String] :bucket
1563
1755
  #
@@ -1676,7 +1868,7 @@ module Aws::S3
1676
1868
  #
1677
1869
  # resp.inventory_configuration.destination.s3_bucket_destination.account_id #=> String
1678
1870
  # resp.inventory_configuration.destination.s3_bucket_destination.bucket #=> String
1679
- # resp.inventory_configuration.destination.s3_bucket_destination.format #=> String, one of "CSV", "ORC"
1871
+ # resp.inventory_configuration.destination.s3_bucket_destination.format #=> String, one of "CSV", "ORC", "Parquet"
1680
1872
  # resp.inventory_configuration.destination.s3_bucket_destination.prefix #=> String
1681
1873
  # resp.inventory_configuration.destination.s3_bucket_destination.encryption.ssekms.key_id #=> String
1682
1874
  # resp.inventory_configuration.is_enabled #=> Boolean
@@ -1684,7 +1876,7 @@ module Aws::S3
1684
1876
  # resp.inventory_configuration.id #=> String
1685
1877
  # resp.inventory_configuration.included_object_versions #=> String, one of "All", "Current"
1686
1878
  # resp.inventory_configuration.optional_fields #=> Array
1687
- # resp.inventory_configuration.optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus"
1879
+ # resp.inventory_configuration.optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus", "ObjectLockRetainUntilDate", "ObjectLockMode", "ObjectLockLegalHoldStatus"
1688
1880
  # resp.inventory_configuration.schedule.frequency #=> String, one of "Daily", "Weekly"
1689
1881
  #
1690
1882
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketInventoryConfiguration AWS API Documentation
@@ -1696,7 +1888,7 @@ module Aws::S3
1696
1888
  req.send_request(options)
1697
1889
  end
1698
1890
 
1699
- # Deprecated, see the GetBucketLifecycleConfiguration operation.
1891
+ # No longer used, see the GetBucketLifecycleConfiguration operation.
1700
1892
  #
1701
1893
  # @option params [required, String] :bucket
1702
1894
  #
@@ -1744,9 +1936,9 @@ module Aws::S3
1744
1936
  # resp.rules[0].status #=> String, one of "Enabled", "Disabled"
1745
1937
  # resp.rules[0].transition.date #=> Time
1746
1938
  # resp.rules[0].transition.days #=> Integer
1747
- # resp.rules[0].transition.storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA"
1939
+ # resp.rules[0].transition.storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE"
1748
1940
  # resp.rules[0].noncurrent_version_transition.noncurrent_days #=> Integer
1749
- # resp.rules[0].noncurrent_version_transition.storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA"
1941
+ # resp.rules[0].noncurrent_version_transition.storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE"
1750
1942
  # resp.rules[0].noncurrent_version_expiration.noncurrent_days #=> Integer
1751
1943
  # resp.rules[0].abort_incomplete_multipart_upload.days_after_initiation #=> Integer
1752
1944
  #
@@ -1818,10 +2010,10 @@ module Aws::S3
1818
2010
  # resp.rules[0].transitions #=> Array
1819
2011
  # resp.rules[0].transitions[0].date #=> Time
1820
2012
  # resp.rules[0].transitions[0].days #=> Integer
1821
- # resp.rules[0].transitions[0].storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA"
2013
+ # resp.rules[0].transitions[0].storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE"
1822
2014
  # resp.rules[0].noncurrent_version_transitions #=> Array
1823
2015
  # resp.rules[0].noncurrent_version_transitions[0].noncurrent_days #=> Integer
1824
- # resp.rules[0].noncurrent_version_transitions[0].storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA"
2016
+ # resp.rules[0].noncurrent_version_transitions[0].storage_class #=> String, one of "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE"
1825
2017
  # resp.rules[0].noncurrent_version_expiration.noncurrent_days #=> Integer
1826
2018
  # resp.rules[0].abort_incomplete_multipart_upload.days_after_initiation #=> Integer
1827
2019
  #
@@ -1953,7 +2145,7 @@ module Aws::S3
1953
2145
  req.send_request(options)
1954
2146
  end
1955
2147
 
1956
- # Deprecated, see the GetBucketNotificationConfiguration operation.
2148
+ # No longer used, see the GetBucketNotificationConfiguration operation.
1957
2149
  #
1958
2150
  # @option params [required, String] :bucket
1959
2151
  # Name of the bucket to get the notification configuration for.
@@ -2031,18 +2223,18 @@ module Aws::S3
2031
2223
  #
2032
2224
  # resp.topic_configuration.id #=> String
2033
2225
  # resp.topic_configuration.events #=> Array
2034
- # 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"
2035
- # 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"
2226
+ # 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"
2227
+ # 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"
2036
2228
  # resp.topic_configuration.topic #=> String
2037
2229
  # resp.queue_configuration.id #=> String
2038
- # 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"
2230
+ # 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"
2039
2231
  # resp.queue_configuration.events #=> Array
2040
- # 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"
2232
+ # 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"
2041
2233
  # resp.queue_configuration.queue #=> String
2042
2234
  # resp.cloud_function_configuration.id #=> String
2043
- # 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"
2235
+ # 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"
2044
2236
  # resp.cloud_function_configuration.events #=> Array
2045
- # 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"
2237
+ # 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"
2046
2238
  # resp.cloud_function_configuration.cloud_function #=> String
2047
2239
  # resp.cloud_function_configuration.invocation_role #=> String
2048
2240
  #
@@ -2078,7 +2270,7 @@ module Aws::S3
2078
2270
  # resp.topic_configurations[0].id #=> String
2079
2271
  # resp.topic_configurations[0].topic_arn #=> String
2080
2272
  # resp.topic_configurations[0].events #=> Array
2081
- # 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"
2273
+ # 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"
2082
2274
  # resp.topic_configurations[0].filter.key.filter_rules #=> Array
2083
2275
  # resp.topic_configurations[0].filter.key.filter_rules[0].name #=> String, one of "prefix", "suffix"
2084
2276
  # resp.topic_configurations[0].filter.key.filter_rules[0].value #=> String
@@ -2086,7 +2278,7 @@ module Aws::S3
2086
2278
  # resp.queue_configurations[0].id #=> String
2087
2279
  # resp.queue_configurations[0].queue_arn #=> String
2088
2280
  # resp.queue_configurations[0].events #=> Array
2089
- # 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"
2281
+ # 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"
2090
2282
  # resp.queue_configurations[0].filter.key.filter_rules #=> Array
2091
2283
  # resp.queue_configurations[0].filter.key.filter_rules[0].name #=> String, one of "prefix", "suffix"
2092
2284
  # resp.queue_configurations[0].filter.key.filter_rules[0].value #=> String
@@ -2094,7 +2286,7 @@ module Aws::S3
2094
2286
  # resp.lambda_function_configurations[0].id #=> String
2095
2287
  # resp.lambda_function_configurations[0].lambda_function_arn #=> String
2096
2288
  # resp.lambda_function_configurations[0].events #=> Array
2097
- # 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"
2289
+ # 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"
2098
2290
  # resp.lambda_function_configurations[0].filter.key.filter_rules #=> Array
2099
2291
  # resp.lambda_function_configurations[0].filter.key.filter_rules[0].name #=> String, one of "prefix", "suffix"
2100
2292
  # resp.lambda_function_configurations[0].filter.key.filter_rules[0].value #=> String
@@ -2149,8 +2341,44 @@ module Aws::S3
2149
2341
  req.send_request(options, &block)
2150
2342
  end
2151
2343
 
2344
+ # Retrieves the policy status for an Amazon S3 bucket, indicating
2345
+ # whether the bucket is public.
2346
+ #
2347
+ # @option params [required, String] :bucket
2348
+ # The name of the Amazon S3 bucket whose policy status you want to
2349
+ # retrieve.
2350
+ #
2351
+ # @return [Types::GetBucketPolicyStatusOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2352
+ #
2353
+ # * {Types::GetBucketPolicyStatusOutput#policy_status #policy_status} => Types::PolicyStatus
2354
+ #
2355
+ # @example Request syntax with placeholder values
2356
+ #
2357
+ # resp = client.get_bucket_policy_status({
2358
+ # bucket: "BucketName", # required
2359
+ # })
2360
+ #
2361
+ # @example Response structure
2362
+ #
2363
+ # resp.policy_status.is_public #=> Boolean
2364
+ #
2365
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyStatus AWS API Documentation
2366
+ #
2367
+ # @overload get_bucket_policy_status(params = {})
2368
+ # @param [Hash] params ({})
2369
+ def get_bucket_policy_status(params = {}, options = {})
2370
+ req = build_request(:get_bucket_policy_status, params)
2371
+ req.send_request(options)
2372
+ end
2373
+
2152
2374
  # Returns the replication configuration of a bucket.
2153
2375
  #
2376
+ # <note markdown="1"> It can take a while to propagate the put or delete a replication
2377
+ # configuration to all Amazon S3 systems. Therefore, a get request soon
2378
+ # after put or delete can return a wrong result.
2379
+ #
2380
+ # </note>
2381
+ #
2154
2382
  # @option params [required, String] :bucket
2155
2383
  #
2156
2384
  # @return [Types::GetBucketReplicationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
@@ -2194,14 +2422,23 @@ module Aws::S3
2194
2422
  # resp.replication_configuration.role #=> String
2195
2423
  # resp.replication_configuration.rules #=> Array
2196
2424
  # resp.replication_configuration.rules[0].id #=> String
2425
+ # resp.replication_configuration.rules[0].priority #=> Integer
2197
2426
  # resp.replication_configuration.rules[0].prefix #=> String
2427
+ # resp.replication_configuration.rules[0].filter.prefix #=> String
2428
+ # resp.replication_configuration.rules[0].filter.tag.key #=> String
2429
+ # resp.replication_configuration.rules[0].filter.tag.value #=> String
2430
+ # resp.replication_configuration.rules[0].filter.and.prefix #=> String
2431
+ # resp.replication_configuration.rules[0].filter.and.tags #=> Array
2432
+ # resp.replication_configuration.rules[0].filter.and.tags[0].key #=> String
2433
+ # resp.replication_configuration.rules[0].filter.and.tags[0].value #=> String
2198
2434
  # resp.replication_configuration.rules[0].status #=> String, one of "Enabled", "Disabled"
2199
2435
  # resp.replication_configuration.rules[0].source_selection_criteria.sse_kms_encrypted_objects.status #=> String, one of "Enabled", "Disabled"
2200
2436
  # resp.replication_configuration.rules[0].destination.bucket #=> String
2201
2437
  # resp.replication_configuration.rules[0].destination.account #=> String
2202
- # resp.replication_configuration.rules[0].destination.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA"
2438
+ # resp.replication_configuration.rules[0].destination.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE"
2203
2439
  # resp.replication_configuration.rules[0].destination.access_control_translation.owner #=> String, one of "Destination"
2204
2440
  # resp.replication_configuration.rules[0].destination.encryption_configuration.replica_kms_key_id #=> String
2441
+ # resp.replication_configuration.rules[0].delete_marker_replication.status #=> String, one of "Enabled", "Disabled"
2205
2442
  #
2206
2443
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketReplication AWS API Documentation
2207
2444
  #
@@ -2520,51 +2757,54 @@ module Aws::S3
2520
2757
  # * {Types::GetObjectOutput#replication_status #replication_status} => String
2521
2758
  # * {Types::GetObjectOutput#parts_count #parts_count} => Integer
2522
2759
  # * {Types::GetObjectOutput#tag_count #tag_count} => Integer
2760
+ # * {Types::GetObjectOutput#object_lock_mode #object_lock_mode} => String
2761
+ # * {Types::GetObjectOutput#object_lock_retain_until_date #object_lock_retain_until_date} => Time
2762
+ # * {Types::GetObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String
2523
2763
  #
2524
2764
  #
2525
- # @example Example: To retrieve an object
2765
+ # @example Example: To retrieve a byte range of an object
2526
2766
  #
2527
- # # The following example retrieves an object for an S3 bucket.
2767
+ # # The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a
2768
+ # # specific byte range.
2528
2769
  #
2529
2770
  # resp = client.get_object({
2530
2771
  # bucket: "examplebucket",
2531
- # key: "HappyFace.jpg",
2772
+ # key: "SampleFile.txt",
2773
+ # range: "bytes=0-9",
2532
2774
  # })
2533
2775
  #
2534
2776
  # resp.to_h outputs the following:
2535
2777
  # {
2536
2778
  # accept_ranges: "bytes",
2537
- # content_length: 3191,
2538
- # content_type: "image/jpeg",
2539
- # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
2540
- # last_modified: Time.parse("Thu, 15 Dec 2016 01:19:41 GMT"),
2779
+ # content_length: 10,
2780
+ # content_range: "bytes 0-9/43",
2781
+ # content_type: "text/plain",
2782
+ # etag: "\"0d94420ffd0bc68cd3d152506b97a9cc\"",
2783
+ # last_modified: Time.parse("Thu, 09 Oct 2014 22:57:28 GMT"),
2541
2784
  # metadata: {
2542
2785
  # },
2543
- # tag_count: 2,
2544
2786
  # version_id: "null",
2545
2787
  # }
2546
2788
  #
2547
- # @example Example: To retrieve a byte range of an object
2789
+ # @example Example: To retrieve an object
2548
2790
  #
2549
- # # The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a
2550
- # # specific byte range.
2791
+ # # The following example retrieves an object for an S3 bucket.
2551
2792
  #
2552
2793
  # resp = client.get_object({
2553
2794
  # bucket: "examplebucket",
2554
- # key: "SampleFile.txt",
2555
- # range: "bytes=0-9",
2795
+ # key: "HappyFace.jpg",
2556
2796
  # })
2557
2797
  #
2558
2798
  # resp.to_h outputs the following:
2559
2799
  # {
2560
2800
  # accept_ranges: "bytes",
2561
- # content_length: 10,
2562
- # content_range: "bytes 0-9/43",
2563
- # content_type: "text/plain",
2564
- # etag: "\"0d94420ffd0bc68cd3d152506b97a9cc\"",
2565
- # last_modified: Time.parse("Thu, 09 Oct 2014 22:57:28 GMT"),
2801
+ # content_length: 3191,
2802
+ # content_type: "image/jpeg",
2803
+ # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
2804
+ # last_modified: Time.parse("Thu, 15 Dec 2016 01:19:41 GMT"),
2566
2805
  # metadata: {
2567
2806
  # },
2807
+ # tag_count: 2,
2568
2808
  # version_id: "null",
2569
2809
  # }
2570
2810
  #
@@ -2646,11 +2886,14 @@ module Aws::S3
2646
2886
  # resp.sse_customer_algorithm #=> String
2647
2887
  # resp.sse_customer_key_md5 #=> String
2648
2888
  # resp.ssekms_key_id #=> String
2649
- # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA"
2889
+ # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE"
2650
2890
  # resp.request_charged #=> String, one of "requester"
2651
2891
  # resp.replication_status #=> String, one of "COMPLETE", "PENDING", "FAILED", "REPLICA"
2652
2892
  # resp.parts_count #=> Integer
2653
2893
  # resp.tag_count #=> Integer
2894
+ # resp.object_lock_mode #=> String, one of "GOVERNANCE", "COMPLIANCE"
2895
+ # resp.object_lock_retain_until_date #=> Time
2896
+ # resp.object_lock_legal_hold_status #=> String, one of "ON", "OFF"
2654
2897
  #
2655
2898
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObject AWS API Documentation
2656
2899
  #
@@ -2766,35 +3009,163 @@ module Aws::S3
2766
3009
  req.send_request(options)
2767
3010
  end
2768
3011
 
2769
- # Returns the tag-set of an object.
3012
+ # Gets an object's current Legal Hold status.
2770
3013
  #
2771
3014
  # @option params [required, String] :bucket
3015
+ # The bucket containing the object whose Legal Hold status you want to
3016
+ # retrieve.
2772
3017
  #
2773
3018
  # @option params [required, String] :key
3019
+ # The key name for the object whose Legal Hold status you want to
3020
+ # retrieve.
2774
3021
  #
2775
3022
  # @option params [String] :version_id
3023
+ # The version ID of the object whose Legal Hold status you want to
3024
+ # retrieve.
2776
3025
  #
2777
- # @return [Types::GetObjectTaggingOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2778
- #
2779
- # * {Types::GetObjectTaggingOutput#version_id #version_id} => String
2780
- # * {Types::GetObjectTaggingOutput#tag_set #tag_set} => Array&lt;Types::Tag&gt;
3026
+ # @option params [String] :request_payer
3027
+ # Confirms that the requester knows that she or he will be charged for
3028
+ # the request. Bucket owners need not specify this parameter in their
3029
+ # requests. Documentation on downloading objects from requester pays
3030
+ # buckets can be found at
3031
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
2781
3032
  #
3033
+ # @return [Types::GetObjectLegalHoldOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2782
3034
  #
2783
- # @example Example: To retrieve tag set of an object
3035
+ # * {Types::GetObjectLegalHoldOutput#legal_hold #legal_hold} => Types::ObjectLockLegalHold
2784
3036
  #
2785
- # # The following example retrieves tag set of an object.
3037
+ # @example Request syntax with placeholder values
2786
3038
  #
2787
- # resp = client.get_object_tagging({
2788
- # bucket: "examplebucket",
2789
- # key: "HappyFace.jpg",
3039
+ # resp = client.get_object_legal_hold({
3040
+ # bucket: "BucketName", # required
3041
+ # key: "ObjectKey", # required
3042
+ # version_id: "ObjectVersionId",
3043
+ # request_payer: "requester", # accepts requester
2790
3044
  # })
2791
3045
  #
2792
- # resp.to_h outputs the following:
2793
- # {
2794
- # tag_set: [
2795
- # {
2796
- # key: "Key4",
2797
- # value: "Value4",
3046
+ # @example Response structure
3047
+ #
3048
+ # resp.legal_hold.status #=> String, one of "ON", "OFF"
3049
+ #
3050
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLegalHold AWS API Documentation
3051
+ #
3052
+ # @overload get_object_legal_hold(params = {})
3053
+ # @param [Hash] params ({})
3054
+ def get_object_legal_hold(params = {}, options = {})
3055
+ req = build_request(:get_object_legal_hold, params)
3056
+ req.send_request(options)
3057
+ end
3058
+
3059
+ # Gets the Object Lock configuration for a bucket. The rule specified in
3060
+ # the Object Lock configuration will be applied by default to every new
3061
+ # object placed in the specified bucket.
3062
+ #
3063
+ # @option params [required, String] :bucket
3064
+ # The bucket whose Object Lock configuration you want to retrieve.
3065
+ #
3066
+ # @return [Types::GetObjectLockConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3067
+ #
3068
+ # * {Types::GetObjectLockConfigurationOutput#object_lock_configuration #object_lock_configuration} => Types::ObjectLockConfiguration
3069
+ #
3070
+ # @example Request syntax with placeholder values
3071
+ #
3072
+ # resp = client.get_object_lock_configuration({
3073
+ # bucket: "BucketName", # required
3074
+ # })
3075
+ #
3076
+ # @example Response structure
3077
+ #
3078
+ # resp.object_lock_configuration.object_lock_enabled #=> String, one of "Enabled"
3079
+ # resp.object_lock_configuration.rule.default_retention.mode #=> String, one of "GOVERNANCE", "COMPLIANCE"
3080
+ # resp.object_lock_configuration.rule.default_retention.days #=> Integer
3081
+ # resp.object_lock_configuration.rule.default_retention.years #=> Integer
3082
+ #
3083
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectLockConfiguration AWS API Documentation
3084
+ #
3085
+ # @overload get_object_lock_configuration(params = {})
3086
+ # @param [Hash] params ({})
3087
+ def get_object_lock_configuration(params = {}, options = {})
3088
+ req = build_request(:get_object_lock_configuration, params)
3089
+ req.send_request(options)
3090
+ end
3091
+
3092
+ # Retrieves an object's retention settings.
3093
+ #
3094
+ # @option params [required, String] :bucket
3095
+ # The bucket containing the object whose retention settings you want to
3096
+ # retrieve.
3097
+ #
3098
+ # @option params [required, String] :key
3099
+ # The key name for the object whose retention settings you want to
3100
+ # retrieve.
3101
+ #
3102
+ # @option params [String] :version_id
3103
+ # The version ID for the object whose retention settings you want to
3104
+ # retrieve.
3105
+ #
3106
+ # @option params [String] :request_payer
3107
+ # Confirms that the requester knows that she or he will be charged for
3108
+ # the request. Bucket owners need not specify this parameter in their
3109
+ # requests. Documentation on downloading objects from requester pays
3110
+ # buckets can be found at
3111
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
3112
+ #
3113
+ # @return [Types::GetObjectRetentionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3114
+ #
3115
+ # * {Types::GetObjectRetentionOutput#retention #retention} => Types::ObjectLockRetention
3116
+ #
3117
+ # @example Request syntax with placeholder values
3118
+ #
3119
+ # resp = client.get_object_retention({
3120
+ # bucket: "BucketName", # required
3121
+ # key: "ObjectKey", # required
3122
+ # version_id: "ObjectVersionId",
3123
+ # request_payer: "requester", # accepts requester
3124
+ # })
3125
+ #
3126
+ # @example Response structure
3127
+ #
3128
+ # resp.retention.mode #=> String, one of "GOVERNANCE", "COMPLIANCE"
3129
+ # resp.retention.retain_until_date #=> Time
3130
+ #
3131
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRetention AWS API Documentation
3132
+ #
3133
+ # @overload get_object_retention(params = {})
3134
+ # @param [Hash] params ({})
3135
+ def get_object_retention(params = {}, options = {})
3136
+ req = build_request(:get_object_retention, params)
3137
+ req.send_request(options)
3138
+ end
3139
+
3140
+ # Returns the tag-set of an object.
3141
+ #
3142
+ # @option params [required, String] :bucket
3143
+ #
3144
+ # @option params [required, String] :key
3145
+ #
3146
+ # @option params [String] :version_id
3147
+ #
3148
+ # @return [Types::GetObjectTaggingOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3149
+ #
3150
+ # * {Types::GetObjectTaggingOutput#version_id #version_id} => String
3151
+ # * {Types::GetObjectTaggingOutput#tag_set #tag_set} => Array&lt;Types::Tag&gt;
3152
+ #
3153
+ #
3154
+ # @example Example: To retrieve tag set of an object
3155
+ #
3156
+ # # The following example retrieves tag set of an object.
3157
+ #
3158
+ # resp = client.get_object_tagging({
3159
+ # bucket: "examplebucket",
3160
+ # key: "HappyFace.jpg",
3161
+ # })
3162
+ #
3163
+ # resp.to_h outputs the following:
3164
+ # {
3165
+ # tag_set: [
3166
+ # {
3167
+ # key: "Key4",
3168
+ # value: "Value4",
2798
3169
  # },
2799
3170
  # {
2800
3171
  # key: "Key3",
@@ -2906,6 +3277,39 @@ module Aws::S3
2906
3277
  req.send_request(options, &block)
2907
3278
  end
2908
3279
 
3280
+ # Retrieves the `PublicAccessBlock` configuration for an Amazon S3
3281
+ # bucket.
3282
+ #
3283
+ # @option params [required, String] :bucket
3284
+ # The name of the Amazon S3 bucket whose `PublicAccessBlock`
3285
+ # configuration you want to retrieve.
3286
+ #
3287
+ # @return [Types::GetPublicAccessBlockOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3288
+ #
3289
+ # * {Types::GetPublicAccessBlockOutput#public_access_block_configuration #public_access_block_configuration} => Types::PublicAccessBlockConfiguration
3290
+ #
3291
+ # @example Request syntax with placeholder values
3292
+ #
3293
+ # resp = client.get_public_access_block({
3294
+ # bucket: "BucketName", # required
3295
+ # })
3296
+ #
3297
+ # @example Response structure
3298
+ #
3299
+ # resp.public_access_block_configuration.block_public_acls #=> Boolean
3300
+ # resp.public_access_block_configuration.ignore_public_acls #=> Boolean
3301
+ # resp.public_access_block_configuration.block_public_policy #=> Boolean
3302
+ # resp.public_access_block_configuration.restrict_public_buckets #=> Boolean
3303
+ #
3304
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetPublicAccessBlock AWS API Documentation
3305
+ #
3306
+ # @overload get_public_access_block(params = {})
3307
+ # @param [Hash] params ({})
3308
+ def get_public_access_block(params = {}, options = {})
3309
+ req = build_request(:get_public_access_block, params)
3310
+ req.send_request(options)
3311
+ end
3312
+
2909
3313
  # This operation is useful to determine if a bucket exists and you have
2910
3314
  # permission to access it.
2911
3315
  #
@@ -3027,6 +3431,9 @@ module Aws::S3
3027
3431
  # * {Types::HeadObjectOutput#request_charged #request_charged} => String
3028
3432
  # * {Types::HeadObjectOutput#replication_status #replication_status} => String
3029
3433
  # * {Types::HeadObjectOutput#parts_count #parts_count} => Integer
3434
+ # * {Types::HeadObjectOutput#object_lock_mode #object_lock_mode} => String
3435
+ # * {Types::HeadObjectOutput#object_lock_retain_until_date #object_lock_retain_until_date} => Time
3436
+ # * {Types::HeadObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String
3030
3437
  #
3031
3438
  #
3032
3439
  # @example Example: To retrieve metadata of an object without returning the object itself
@@ -3093,10 +3500,13 @@ module Aws::S3
3093
3500
  # resp.sse_customer_algorithm #=> String
3094
3501
  # resp.sse_customer_key_md5 #=> String
3095
3502
  # resp.ssekms_key_id #=> String
3096
- # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA"
3503
+ # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE"
3097
3504
  # resp.request_charged #=> String, one of "requester"
3098
3505
  # resp.replication_status #=> String, one of "COMPLETE", "PENDING", "FAILED", "REPLICA"
3099
3506
  # resp.parts_count #=> Integer
3507
+ # resp.object_lock_mode #=> String, one of "GOVERNANCE", "COMPLIANCE"
3508
+ # resp.object_lock_retain_until_date #=> Time
3509
+ # resp.object_lock_legal_hold_status #=> String, one of "ON", "OFF"
3100
3510
  #
3101
3511
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObject AWS API Documentation
3102
3512
  #
@@ -3192,7 +3602,7 @@ module Aws::S3
3192
3602
  # resp.inventory_configuration_list #=> Array
3193
3603
  # resp.inventory_configuration_list[0].destination.s3_bucket_destination.account_id #=> String
3194
3604
  # resp.inventory_configuration_list[0].destination.s3_bucket_destination.bucket #=> String
3195
- # resp.inventory_configuration_list[0].destination.s3_bucket_destination.format #=> String, one of "CSV", "ORC"
3605
+ # resp.inventory_configuration_list[0].destination.s3_bucket_destination.format #=> String, one of "CSV", "ORC", "Parquet"
3196
3606
  # resp.inventory_configuration_list[0].destination.s3_bucket_destination.prefix #=> String
3197
3607
  # resp.inventory_configuration_list[0].destination.s3_bucket_destination.encryption.ssekms.key_id #=> String
3198
3608
  # resp.inventory_configuration_list[0].is_enabled #=> Boolean
@@ -3200,7 +3610,7 @@ module Aws::S3
3200
3610
  # resp.inventory_configuration_list[0].id #=> String
3201
3611
  # resp.inventory_configuration_list[0].included_object_versions #=> String, one of "All", "Current"
3202
3612
  # resp.inventory_configuration_list[0].optional_fields #=> Array
3203
- # resp.inventory_configuration_list[0].optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus"
3613
+ # resp.inventory_configuration_list[0].optional_fields[0] #=> String, one of "Size", "LastModifiedDate", "StorageClass", "ETag", "IsMultipartUploaded", "ReplicationStatus", "EncryptionStatus", "ObjectLockRetainUntilDate", "ObjectLockMode", "ObjectLockLegalHoldStatus"
3204
3614
  # resp.inventory_configuration_list[0].schedule.frequency #=> String, one of "Daily", "Weekly"
3205
3615
  # resp.is_truncated #=> Boolean
3206
3616
  # resp.next_continuation_token #=> String
@@ -3370,97 +3780,97 @@ module Aws::S3
3370
3780
  # * {Types::ListMultipartUploadsOutput#encoding_type #encoding_type} => String
3371
3781
  #
3372
3782
  #
3373
- # @example Example: To list in-progress multipart uploads on a bucket
3783
+ # @example Example: List next set of multipart uploads when previous result is truncated
3374
3784
  #
3375
- # # The following example lists in-progress multipart uploads on a specific bucket.
3785
+ # # The following example specifies the upload-id-marker and key-marker from previous truncated response to retrieve next
3786
+ # # setup of multipart uploads.
3376
3787
  #
3377
3788
  # resp = client.list_multipart_uploads({
3378
3789
  # bucket: "examplebucket",
3790
+ # key_marker: "nextkeyfrompreviousresponse",
3791
+ # max_uploads: 2,
3792
+ # upload_id_marker: "valuefrompreviousresponse",
3379
3793
  # })
3380
3794
  #
3381
3795
  # resp.to_h outputs the following:
3382
3796
  # {
3797
+ # bucket: "acl1",
3798
+ # is_truncated: true,
3799
+ # key_marker: "",
3800
+ # max_uploads: 2,
3801
+ # next_key_marker: "someobjectkey",
3802
+ # next_upload_id_marker: "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--",
3803
+ # upload_id_marker: "",
3383
3804
  # uploads: [
3384
3805
  # {
3385
3806
  # initiated: Time.parse("2014-05-01T05:40:58.000Z"),
3386
3807
  # initiator: {
3387
- # display_name: "display-name",
3808
+ # display_name: "ownder-display-name",
3388
3809
  # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc",
3389
3810
  # },
3390
3811
  # key: "JavaFile",
3391
3812
  # owner: {
3392
- # display_name: "display-name",
3393
- # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc",
3813
+ # display_name: "mohanataws",
3814
+ # id: "852b113e7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc",
3394
3815
  # },
3395
3816
  # storage_class: "STANDARD",
3396
- # upload_id: "examplelUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--",
3817
+ # upload_id: "gZ30jIqlUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--",
3397
3818
  # },
3398
3819
  # {
3399
3820
  # initiated: Time.parse("2014-05-01T05:41:27.000Z"),
3400
3821
  # initiator: {
3401
- # display_name: "display-name",
3822
+ # display_name: "ownder-display-name",
3402
3823
  # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc",
3403
3824
  # },
3404
3825
  # key: "JavaFile",
3405
3826
  # owner: {
3406
- # display_name: "display-name",
3827
+ # display_name: "ownder-display-name",
3407
3828
  # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc",
3408
3829
  # },
3409
3830
  # storage_class: "STANDARD",
3410
- # upload_id: "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--",
3831
+ # upload_id: "b7tZSqIlo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--",
3411
3832
  # },
3412
3833
  # ],
3413
3834
  # }
3414
3835
  #
3415
- # @example Example: List next set of multipart uploads when previous result is truncated
3836
+ # @example Example: To list in-progress multipart uploads on a bucket
3416
3837
  #
3417
- # # The following example specifies the upload-id-marker and key-marker from previous truncated response to retrieve next
3418
- # # setup of multipart uploads.
3838
+ # # The following example lists in-progress multipart uploads on a specific bucket.
3419
3839
  #
3420
3840
  # resp = client.list_multipart_uploads({
3421
3841
  # bucket: "examplebucket",
3422
- # key_marker: "nextkeyfrompreviousresponse",
3423
- # max_uploads: 2,
3424
- # upload_id_marker: "valuefrompreviousresponse",
3425
3842
  # })
3426
3843
  #
3427
3844
  # resp.to_h outputs the following:
3428
3845
  # {
3429
- # bucket: "acl1",
3430
- # is_truncated: true,
3431
- # key_marker: "",
3432
- # max_uploads: 2,
3433
- # next_key_marker: "someobjectkey",
3434
- # next_upload_id_marker: "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--",
3435
- # upload_id_marker: "",
3436
3846
  # uploads: [
3437
3847
  # {
3438
3848
  # initiated: Time.parse("2014-05-01T05:40:58.000Z"),
3439
3849
  # initiator: {
3440
- # display_name: "ownder-display-name",
3850
+ # display_name: "display-name",
3441
3851
  # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc",
3442
3852
  # },
3443
3853
  # key: "JavaFile",
3444
3854
  # owner: {
3445
- # display_name: "mohanataws",
3446
- # id: "852b113e7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc",
3855
+ # display_name: "display-name",
3856
+ # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc",
3447
3857
  # },
3448
3858
  # storage_class: "STANDARD",
3449
- # upload_id: "gZ30jIqlUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--",
3859
+ # upload_id: "examplelUa.CInXklLQtSMJITdUnoZ1Y5GACB5UckOtspm5zbDMCkPF_qkfZzMiFZ6dksmcnqxJyIBvQMG9X9Q--",
3450
3860
  # },
3451
3861
  # {
3452
3862
  # initiated: Time.parse("2014-05-01T05:41:27.000Z"),
3453
3863
  # initiator: {
3454
- # display_name: "ownder-display-name",
3864
+ # display_name: "display-name",
3455
3865
  # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc",
3456
3866
  # },
3457
3867
  # key: "JavaFile",
3458
3868
  # owner: {
3459
- # display_name: "ownder-display-name",
3869
+ # display_name: "display-name",
3460
3870
  # id: "examplee7a2f25102679df27bb0ae12b3f85be6f290b936c4393484be31bebcc",
3461
3871
  # },
3462
3872
  # storage_class: "STANDARD",
3463
- # upload_id: "b7tZSqIlo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--",
3873
+ # upload_id: "examplelo91lv1iwvWpvCiJWugw2xXLPAD7Z8cJyX9.WiIRgNrdG6Ldsn.9FtS63TCl1Uf5faTB.1U5Ckcbmdw--",
3464
3874
  # },
3465
3875
  # ],
3466
3876
  # }
@@ -3492,7 +3902,7 @@ module Aws::S3
3492
3902
  # resp.uploads[0].upload_id #=> String
3493
3903
  # resp.uploads[0].key #=> String
3494
3904
  # resp.uploads[0].initiated #=> Time
3495
- # resp.uploads[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA"
3905
+ # resp.uploads[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE"
3496
3906
  # resp.uploads[0].owner.display_name #=> String
3497
3907
  # resp.uploads[0].owner.id #=> String
3498
3908
  # resp.uploads[0].initiator.id #=> String
@@ -3757,7 +4167,7 @@ module Aws::S3
3757
4167
  # resp.contents[0].last_modified #=> Time
3758
4168
  # resp.contents[0].etag #=> String
3759
4169
  # resp.contents[0].size #=> Integer
3760
- # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA"
4170
+ # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE"
3761
4171
  # resp.contents[0].owner.display_name #=> String
3762
4172
  # resp.contents[0].owner.id #=> String
3763
4173
  # resp.name #=> String
@@ -3893,7 +4303,7 @@ module Aws::S3
3893
4303
  # resp.contents[0].last_modified #=> Time
3894
4304
  # resp.contents[0].etag #=> String
3895
4305
  # resp.contents[0].size #=> Integer
3896
- # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA"
4306
+ # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE"
3897
4307
  # resp.contents[0].owner.display_name #=> String
3898
4308
  # resp.contents[0].owner.id #=> String
3899
4309
  # resp.name #=> String
@@ -4028,7 +4438,7 @@ module Aws::S3
4028
4438
  # resp.initiator.display_name #=> String
4029
4439
  # resp.owner.display_name #=> String
4030
4440
  # resp.owner.id #=> String
4031
- # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA"
4441
+ # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE"
4032
4442
  # resp.request_charged #=> String, one of "requester"
4033
4443
  #
4034
4444
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListParts AWS API Documentation
@@ -4213,7 +4623,7 @@ module Aws::S3
4213
4623
  req.send_request(options)
4214
4624
  end
4215
4625
 
4216
- # Sets the cors configuration for a bucket.
4626
+ # Sets the CORS configuration for a bucket.
4217
4627
  #
4218
4628
  # @option params [required, String] :bucket
4219
4629
  #
@@ -4303,7 +4713,8 @@ module Aws::S3
4303
4713
  #
4304
4714
  # @option params [String] :content_md5
4305
4715
  # The base64-encoded 128-bit MD5 digest of the server-side encryption
4306
- # configuration.
4716
+ # configuration. This parameter is auto-populated when using the command
4717
+ # from the CLI
4307
4718
  #
4308
4719
  # @option params [required, Types::ServerSideEncryptionConfiguration] :server_side_encryption_configuration
4309
4720
  # Container for server-side encryption configuration rules. Currently S3
@@ -4362,7 +4773,7 @@ module Aws::S3
4362
4773
  # s3_bucket_destination: { # required
4363
4774
  # account_id: "AccountId",
4364
4775
  # bucket: "BucketName", # required
4365
- # format: "CSV", # required, accepts CSV, ORC
4776
+ # format: "CSV", # required, accepts CSV, ORC, Parquet
4366
4777
  # prefix: "Prefix",
4367
4778
  # encryption: {
4368
4779
  # sses3: {
@@ -4379,7 +4790,7 @@ module Aws::S3
4379
4790
  # },
4380
4791
  # id: "InventoryId", # required
4381
4792
  # included_object_versions: "All", # required, accepts All, Current
4382
- # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus
4793
+ # optional_fields: ["Size"], # accepts Size, LastModifiedDate, StorageClass, ETag, IsMultipartUploaded, ReplicationStatus, EncryptionStatus, ObjectLockRetainUntilDate, ObjectLockMode, ObjectLockLegalHoldStatus
4383
4794
  # schedule: { # required
4384
4795
  # frequency: "Daily", # required, accepts Daily, Weekly
4385
4796
  # },
@@ -4395,7 +4806,7 @@ module Aws::S3
4395
4806
  req.send_request(options)
4396
4807
  end
4397
4808
 
4398
- # Deprecated, see the PutBucketLifecycleConfiguration operation.
4809
+ # No longer used, see the PutBucketLifecycleConfiguration operation.
4399
4810
  #
4400
4811
  # @option params [required, String] :bucket
4401
4812
  #
@@ -4424,11 +4835,11 @@ module Aws::S3
4424
4835
  # transition: {
4425
4836
  # date: Time.now,
4426
4837
  # days: 1,
4427
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
4838
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
4428
4839
  # },
4429
4840
  # noncurrent_version_transition: {
4430
4841
  # noncurrent_days: 1,
4431
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
4842
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
4432
4843
  # },
4433
4844
  # noncurrent_version_expiration: {
4434
4845
  # noncurrent_days: 1,
@@ -4523,13 +4934,13 @@ module Aws::S3
4523
4934
  # {
4524
4935
  # date: Time.now,
4525
4936
  # days: 1,
4526
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
4937
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
4527
4938
  # },
4528
4939
  # ],
4529
4940
  # noncurrent_version_transitions: [
4530
4941
  # {
4531
4942
  # noncurrent_days: 1,
4532
- # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA
4943
+ # storage_class: "GLACIER", # accepts GLACIER, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, DEEP_ARCHIVE
4533
4944
  # },
4534
4945
  # ],
4535
4946
  # noncurrent_version_expiration: {
@@ -4672,7 +5083,7 @@ module Aws::S3
4672
5083
  req.send_request(options)
4673
5084
  end
4674
5085
 
4675
- # Deprecated, see the PutBucketNotificationConfiguraiton operation.
5086
+ # No longer used, see the PutBucketNotificationConfiguration operation.
4676
5087
  #
4677
5088
  # @option params [required, String] :bucket
4678
5089
  #
@@ -4690,20 +5101,20 @@ module Aws::S3
4690
5101
  # notification_configuration: { # required
4691
5102
  # topic_configuration: {
4692
5103
  # id: "NotificationId",
4693
- # 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
4694
- # 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
5104
+ # 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
5105
+ # 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
4695
5106
  # topic: "TopicArn",
4696
5107
  # },
4697
5108
  # queue_configuration: {
4698
5109
  # id: "NotificationId",
4699
- # 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
4700
- # 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
5110
+ # 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
5111
+ # 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
4701
5112
  # queue: "QueueArn",
4702
5113
  # },
4703
5114
  # cloud_function_configuration: {
4704
5115
  # id: "NotificationId",
4705
- # 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
4706
- # 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
5116
+ # 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
5117
+ # 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
4707
5118
  # cloud_function: "CloudFunction",
4708
5119
  # invocation_role: "CloudFunctionInvocationRole",
4709
5120
  # },
@@ -4724,8 +5135,9 @@ module Aws::S3
4724
5135
  # @option params [required, String] :bucket
4725
5136
  #
4726
5137
  # @option params [required, Types::NotificationConfiguration] :notification_configuration
4727
- # Container for specifying the notification configuration of the bucket.
4728
- # If this element is empty, notifications are turned off on the bucket.
5138
+ # A container for specifying the notification configuration of the
5139
+ # bucket. If this element is empty, notifications are turned off for the
5140
+ # bucket.
4729
5141
  #
4730
5142
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
4731
5143
  #
@@ -4757,7 +5169,7 @@ module Aws::S3
4757
5169
  # {
4758
5170
  # id: "NotificationId",
4759
5171
  # topic_arn: "TopicArn", # required
4760
- # 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
5172
+ # 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
4761
5173
  # filter: {
4762
5174
  # key: {
4763
5175
  # filter_rules: [
@@ -4774,7 +5186,7 @@ module Aws::S3
4774
5186
  # {
4775
5187
  # id: "NotificationId",
4776
5188
  # queue_arn: "QueueArn", # required
4777
- # 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
5189
+ # 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
4778
5190
  # filter: {
4779
5191
  # key: {
4780
5192
  # filter_rules: [
@@ -4791,7 +5203,7 @@ module Aws::S3
4791
5203
  # {
4792
5204
  # id: "NotificationId",
4793
5205
  # lambda_function_arn: "LambdaFunctionArn", # required
4794
- # 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
5206
+ # 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
4795
5207
  # filter: {
4796
5208
  # key: {
4797
5209
  # filter_rules: [
@@ -4860,16 +5272,20 @@ module Aws::S3
4860
5272
  req.send_request(options)
4861
5273
  end
4862
5274
 
4863
- # Creates a new replication configuration (or replaces an existing one,
4864
- # if present).
5275
+ # Creates a replication configuration or replaces an existing one. For
5276
+ # more information, see [Cross-Region Replication (CRR)](
5277
+ # https://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html) in the
5278
+ # *Amazon S3 Developer Guide*.
4865
5279
  #
4866
5280
  # @option params [required, String] :bucket
4867
5281
  #
4868
5282
  # @option params [String] :content_md5
4869
5283
  #
4870
5284
  # @option params [required, Types::ReplicationConfiguration] :replication_configuration
4871
- # Container for replication rules. You can add as many as 1,000 rules.
4872
- # Total replication configuration size can be up to 2 MB.
5285
+ # A container for replication rules. You can add up to 1,000 rules. The
5286
+ # maximum size of a replication configuration is 2 MB.
5287
+ #
5288
+ # @option params [String] :token
4873
5289
  #
4874
5290
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
4875
5291
  #
@@ -4905,7 +5321,24 @@ module Aws::S3
4905
5321
  # rules: [ # required
4906
5322
  # {
4907
5323
  # id: "ID",
4908
- # prefix: "Prefix", # required
5324
+ # priority: 1,
5325
+ # prefix: "Prefix",
5326
+ # filter: {
5327
+ # prefix: "Prefix",
5328
+ # tag: {
5329
+ # key: "ObjectKey", # required
5330
+ # value: "Value", # required
5331
+ # },
5332
+ # and: {
5333
+ # prefix: "Prefix",
5334
+ # tags: [
5335
+ # {
5336
+ # key: "ObjectKey", # required
5337
+ # value: "Value", # required
5338
+ # },
5339
+ # ],
5340
+ # },
5341
+ # },
4909
5342
  # status: "Enabled", # required, accepts Enabled, Disabled
4910
5343
  # source_selection_criteria: {
4911
5344
  # sse_kms_encrypted_objects: {
@@ -4915,7 +5348,7 @@ module Aws::S3
4915
5348
  # destination: { # required
4916
5349
  # bucket: "BucketName", # required
4917
5350
  # account: "AccountId",
4918
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
5351
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
4919
5352
  # access_control_translation: {
4920
5353
  # owner: "Destination", # required, accepts Destination
4921
5354
  # },
@@ -4923,9 +5356,13 @@ module Aws::S3
4923
5356
  # replica_kms_key_id: "ReplicaKmsKeyID",
4924
5357
  # },
4925
5358
  # },
5359
+ # delete_marker_replication: {
5360
+ # status: "Enabled", # accepts Enabled, Disabled
5361
+ # },
4926
5362
  # },
4927
5363
  # ],
4928
5364
  # },
5365
+ # token: "ObjectLockToken",
4929
5366
  # })
4930
5367
  #
4931
5368
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketReplication AWS API Documentation
@@ -5188,7 +5625,8 @@ module Aws::S3
5188
5625
  # the body cannot be determined automatically.
5189
5626
  #
5190
5627
  # @option params [String] :content_md5
5191
- # The base64-encoded 128-bit MD5 digest of the part data.
5628
+ # The base64-encoded 128-bit MD5 digest of the part data. This parameter
5629
+ # is auto-populated when using the command from the CLI
5192
5630
  #
5193
5631
  # @option params [String] :content_type
5194
5632
  # A standard MIME type describing the format of the object data.
@@ -5259,7 +5697,16 @@ module Aws::S3
5259
5697
  #
5260
5698
  # @option params [String] :tagging
5261
5699
  # The tag-set for the object. The tag-set must be encoded as URL Query
5262
- # parameters
5700
+ # parameters. (For example, "Key1=Value1")
5701
+ #
5702
+ # @option params [String] :object_lock_mode
5703
+ # The Object Lock mode that you want to apply to this object.
5704
+ #
5705
+ # @option params [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
5706
+ # The date and time when you want this object's Object Lock to expire.
5707
+ #
5708
+ # @option params [String] :object_lock_legal_hold_status
5709
+ # The Legal Hold status that you want to apply to the specified object.
5263
5710
  #
5264
5711
  # @return [Types::PutObjectOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
5265
5712
  #
@@ -5293,73 +5740,55 @@ module Aws::S3
5293
5740
  # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
5294
5741
  # }
5295
5742
  #
5296
- # @example Example: To upload an object and specify canned ACL.
5743
+ # @example Example: To create an object.
5297
5744
  #
5298
- # # The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ
5299
- # # access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.
5745
+ # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
5300
5746
  #
5301
5747
  # resp = client.put_object({
5302
- # acl: "authenticated-read",
5303
5748
  # body: "filetoupload",
5304
5749
  # bucket: "examplebucket",
5305
- # key: "exampleobject",
5306
- # })
5307
- #
5308
- # resp.to_h outputs the following:
5309
- # {
5310
- # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
5311
- # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
5312
- # }
5313
- #
5314
- # @example Example: To upload an object
5315
- #
5316
- # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
5317
- # # syntax. S3 returns VersionId of the newly created object.
5318
- #
5319
- # resp = client.put_object({
5320
- # body: "HappyFace.jpg",
5321
- # bucket: "examplebucket",
5322
- # key: "HappyFace.jpg",
5750
+ # key: "objectkey",
5323
5751
  # })
5324
5752
  #
5325
5753
  # resp.to_h outputs the following:
5326
5754
  # {
5327
5755
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
5328
- # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
5756
+ # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
5329
5757
  # }
5330
5758
  #
5331
- # @example Example: To create an object.
5759
+ # @example Example: To upload an object and specify canned ACL.
5332
5760
  #
5333
- # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
5761
+ # # The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ
5762
+ # # access to authenticated users. If the bucket is versioning enabled, S3 returns version ID in response.
5334
5763
  #
5335
5764
  # resp = client.put_object({
5765
+ # acl: "authenticated-read",
5336
5766
  # body: "filetoupload",
5337
5767
  # bucket: "examplebucket",
5338
- # key: "objectkey",
5768
+ # key: "exampleobject",
5339
5769
  # })
5340
5770
  #
5341
5771
  # resp.to_h outputs the following:
5342
5772
  # {
5343
5773
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
5344
- # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
5774
+ # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
5345
5775
  # }
5346
5776
  #
5347
- # @example Example: To upload an object and specify optional tags
5777
+ # @example Example: To upload an object
5348
5778
  #
5349
- # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
5350
- # # S3 returns version ID of the newly created object.
5779
+ # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
5780
+ # # syntax. S3 returns VersionId of the newly created object.
5351
5781
  #
5352
5782
  # resp = client.put_object({
5353
- # body: "c:\\HappyFace.jpg",
5783
+ # body: "HappyFace.jpg",
5354
5784
  # bucket: "examplebucket",
5355
5785
  # key: "HappyFace.jpg",
5356
- # tagging: "key1=value1&key2=value2",
5357
5786
  # })
5358
5787
  #
5359
5788
  # resp.to_h outputs the following:
5360
5789
  # {
5361
5790
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
5362
- # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
5791
+ # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
5363
5792
  # }
5364
5793
  #
5365
5794
  # @example Example: To upload object and specify user-defined metadata
@@ -5403,22 +5832,40 @@ module Aws::S3
5403
5832
  # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
5404
5833
  # }
5405
5834
  #
5406
- # @example Streaming a file from disk
5407
- # # upload file from disk in a single request, may not exceed 5GB
5408
- # File.open('/source/file/path', 'rb') do |file|
5409
- # s3.put_object(bucket: 'bucket-name', key: 'object-key', body: file)
5410
- # end
5835
+ # @example Example: To upload an object and specify optional tags
5411
5836
  #
5412
- # @example Request syntax with placeholder values
5837
+ # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
5838
+ # # S3 returns version ID of the newly created object.
5413
5839
  #
5414
5840
  # resp = client.put_object({
5415
- # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control
5416
- # body: source_file,
5417
- # bucket: "BucketName", # required
5418
- # cache_control: "CacheControl",
5419
- # content_disposition: "ContentDisposition",
5420
- # content_encoding: "ContentEncoding",
5421
- # content_language: "ContentLanguage",
5841
+ # body: "c:\\HappyFace.jpg",
5842
+ # bucket: "examplebucket",
5843
+ # key: "HappyFace.jpg",
5844
+ # tagging: "key1=value1&key2=value2",
5845
+ # })
5846
+ #
5847
+ # resp.to_h outputs the following:
5848
+ # {
5849
+ # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
5850
+ # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
5851
+ # }
5852
+ #
5853
+ # @example Streaming a file from disk
5854
+ # # upload file from disk in a single request, may not exceed 5GB
5855
+ # File.open('/source/file/path', 'rb') do |file|
5856
+ # s3.put_object(bucket: 'bucket-name', key: 'object-key', body: file)
5857
+ # end
5858
+ #
5859
+ # @example Request syntax with placeholder values
5860
+ #
5861
+ # resp = client.put_object({
5862
+ # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control
5863
+ # body: source_file,
5864
+ # bucket: "BucketName", # required
5865
+ # cache_control: "CacheControl",
5866
+ # content_disposition: "ContentDisposition",
5867
+ # content_encoding: "ContentEncoding",
5868
+ # content_language: "ContentLanguage",
5422
5869
  # content_length: 1,
5423
5870
  # content_md5: "ContentMD5",
5424
5871
  # content_type: "ContentType",
@@ -5432,7 +5879,7 @@ module Aws::S3
5432
5879
  # "MetadataKey" => "MetadataValue",
5433
5880
  # },
5434
5881
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
5435
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
5882
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
5436
5883
  # website_redirect_location: "WebsiteRedirectLocation",
5437
5884
  # sse_customer_algorithm: "SSECustomerAlgorithm",
5438
5885
  # sse_customer_key: "SSECustomerKey",
@@ -5440,6 +5887,9 @@ module Aws::S3
5440
5887
  # ssekms_key_id: "SSEKMSKeyId",
5441
5888
  # request_payer: "requester", # accepts requester
5442
5889
  # tagging: "TaggingHeader",
5890
+ # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
5891
+ # object_lock_retain_until_date: Time.now,
5892
+ # object_lock_legal_hold_status: "ON", # accepts ON, OFF
5443
5893
  # })
5444
5894
  #
5445
5895
  # @example Response structure
@@ -5573,6 +6023,186 @@ module Aws::S3
5573
6023
  req.send_request(options)
5574
6024
  end
5575
6025
 
6026
+ # Applies a Legal Hold configuration to the specified object.
6027
+ #
6028
+ # @option params [required, String] :bucket
6029
+ # The bucket containing the object that you want to place a Legal Hold
6030
+ # on.
6031
+ #
6032
+ # @option params [required, String] :key
6033
+ # The key name for the object that you want to place a Legal Hold on.
6034
+ #
6035
+ # @option params [Types::ObjectLockLegalHold] :legal_hold
6036
+ # Container element for the Legal Hold configuration you want to apply
6037
+ # to the specified object.
6038
+ #
6039
+ # @option params [String] :request_payer
6040
+ # Confirms that the requester knows that she or he will be charged for
6041
+ # the request. Bucket owners need not specify this parameter in their
6042
+ # requests. Documentation on downloading objects from requester pays
6043
+ # buckets can be found at
6044
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
6045
+ #
6046
+ # @option params [String] :version_id
6047
+ # The version ID of the object that you want to place a Legal Hold on.
6048
+ #
6049
+ # @option params [String] :content_md5
6050
+ # The MD5 hash for the request body.
6051
+ #
6052
+ # @return [Types::PutObjectLegalHoldOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6053
+ #
6054
+ # * {Types::PutObjectLegalHoldOutput#request_charged #request_charged} => String
6055
+ #
6056
+ # @example Request syntax with placeholder values
6057
+ #
6058
+ # resp = client.put_object_legal_hold({
6059
+ # bucket: "BucketName", # required
6060
+ # key: "ObjectKey", # required
6061
+ # legal_hold: {
6062
+ # status: "ON", # accepts ON, OFF
6063
+ # },
6064
+ # request_payer: "requester", # accepts requester
6065
+ # version_id: "ObjectVersionId",
6066
+ # content_md5: "ContentMD5",
6067
+ # })
6068
+ #
6069
+ # @example Response structure
6070
+ #
6071
+ # resp.request_charged #=> String, one of "requester"
6072
+ #
6073
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLegalHold AWS API Documentation
6074
+ #
6075
+ # @overload put_object_legal_hold(params = {})
6076
+ # @param [Hash] params ({})
6077
+ def put_object_legal_hold(params = {}, options = {})
6078
+ req = build_request(:put_object_legal_hold, params)
6079
+ req.send_request(options)
6080
+ end
6081
+
6082
+ # Places an Object Lock configuration on the specified bucket. The rule
6083
+ # specified in the Object Lock configuration will be applied by default
6084
+ # to every new object placed in the specified bucket.
6085
+ #
6086
+ # @option params [required, String] :bucket
6087
+ # The bucket whose Object Lock configuration you want to create or
6088
+ # replace.
6089
+ #
6090
+ # @option params [Types::ObjectLockConfiguration] :object_lock_configuration
6091
+ # The Object Lock configuration that you want to apply to the specified
6092
+ # bucket.
6093
+ #
6094
+ # @option params [String] :request_payer
6095
+ # Confirms that the requester knows that she or he will be charged for
6096
+ # the request. Bucket owners need not specify this parameter in their
6097
+ # requests. Documentation on downloading objects from requester pays
6098
+ # buckets can be found at
6099
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
6100
+ #
6101
+ # @option params [String] :token
6102
+ # A token to allow Object Lock to be enabled for an existing bucket.
6103
+ #
6104
+ # @option params [String] :content_md5
6105
+ # The MD5 hash for the request body.
6106
+ #
6107
+ # @return [Types::PutObjectLockConfigurationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6108
+ #
6109
+ # * {Types::PutObjectLockConfigurationOutput#request_charged #request_charged} => String
6110
+ #
6111
+ # @example Request syntax with placeholder values
6112
+ #
6113
+ # resp = client.put_object_lock_configuration({
6114
+ # bucket: "BucketName", # required
6115
+ # object_lock_configuration: {
6116
+ # object_lock_enabled: "Enabled", # accepts Enabled
6117
+ # rule: {
6118
+ # default_retention: {
6119
+ # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
6120
+ # days: 1,
6121
+ # years: 1,
6122
+ # },
6123
+ # },
6124
+ # },
6125
+ # request_payer: "requester", # accepts requester
6126
+ # token: "ObjectLockToken",
6127
+ # content_md5: "ContentMD5",
6128
+ # })
6129
+ #
6130
+ # @example Response structure
6131
+ #
6132
+ # resp.request_charged #=> String, one of "requester"
6133
+ #
6134
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectLockConfiguration AWS API Documentation
6135
+ #
6136
+ # @overload put_object_lock_configuration(params = {})
6137
+ # @param [Hash] params ({})
6138
+ def put_object_lock_configuration(params = {}, options = {})
6139
+ req = build_request(:put_object_lock_configuration, params)
6140
+ req.send_request(options)
6141
+ end
6142
+
6143
+ # Places an Object Retention configuration on an object.
6144
+ #
6145
+ # @option params [required, String] :bucket
6146
+ # The bucket that contains the object you want to apply this Object
6147
+ # Retention configuration to.
6148
+ #
6149
+ # @option params [required, String] :key
6150
+ # The key name for the object that you want to apply this Object
6151
+ # Retention configuration to.
6152
+ #
6153
+ # @option params [Types::ObjectLockRetention] :retention
6154
+ # The container element for the Object Retention configuration.
6155
+ #
6156
+ # @option params [String] :request_payer
6157
+ # Confirms that the requester knows that she or he will be charged for
6158
+ # the request. Bucket owners need not specify this parameter in their
6159
+ # requests. Documentation on downloading objects from requester pays
6160
+ # buckets can be found at
6161
+ # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
6162
+ #
6163
+ # @option params [String] :version_id
6164
+ # The version ID for the object that you want to apply this Object
6165
+ # Retention configuration to.
6166
+ #
6167
+ # @option params [Boolean] :bypass_governance_retention
6168
+ # Indicates whether this operation should bypass Governance-mode
6169
+ # restrictions.j
6170
+ #
6171
+ # @option params [String] :content_md5
6172
+ # The MD5 hash for the request body.
6173
+ #
6174
+ # @return [Types::PutObjectRetentionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6175
+ #
6176
+ # * {Types::PutObjectRetentionOutput#request_charged #request_charged} => String
6177
+ #
6178
+ # @example Request syntax with placeholder values
6179
+ #
6180
+ # resp = client.put_object_retention({
6181
+ # bucket: "BucketName", # required
6182
+ # key: "ObjectKey", # required
6183
+ # retention: {
6184
+ # mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
6185
+ # retain_until_date: Time.now,
6186
+ # },
6187
+ # request_payer: "requester", # accepts requester
6188
+ # version_id: "ObjectVersionId",
6189
+ # bypass_governance_retention: false,
6190
+ # content_md5: "ContentMD5",
6191
+ # })
6192
+ #
6193
+ # @example Response structure
6194
+ #
6195
+ # resp.request_charged #=> String, one of "requester"
6196
+ #
6197
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRetention AWS API Documentation
6198
+ #
6199
+ # @overload put_object_retention(params = {})
6200
+ # @param [Hash] params ({})
6201
+ def put_object_retention(params = {}, options = {})
6202
+ req = build_request(:put_object_retention, params)
6203
+ req.send_request(options)
6204
+ end
6205
+
5576
6206
  # Sets the supplied tag-set to an object that already exists in a bucket
5577
6207
  #
5578
6208
  # @option params [required, String] :bucket
@@ -5646,6 +6276,51 @@ module Aws::S3
5646
6276
  req.send_request(options)
5647
6277
  end
5648
6278
 
6279
+ # Creates or modifies the `PublicAccessBlock` configuration for an
6280
+ # Amazon S3 bucket.
6281
+ #
6282
+ # @option params [required, String] :bucket
6283
+ # The name of the Amazon S3 bucket whose `PublicAccessBlock`
6284
+ # configuration you want to set.
6285
+ #
6286
+ # @option params [String] :content_md5
6287
+ # The MD5 hash of the `PutPublicAccessBlock` request body.
6288
+ #
6289
+ # @option params [required, Types::PublicAccessBlockConfiguration] :public_access_block_configuration
6290
+ # The `PublicAccessBlock` configuration that you want to apply to this
6291
+ # Amazon S3 bucket. You can enable the configuration options in any
6292
+ # combination. For more information about when Amazon S3 considers a
6293
+ # bucket or object public, see [The Meaning of "Public"][1] in the
6294
+ # *Amazon Simple Storage Service Developer Guide*.
6295
+ #
6296
+ #
6297
+ #
6298
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status
6299
+ #
6300
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
6301
+ #
6302
+ # @example Request syntax with placeholder values
6303
+ #
6304
+ # resp = client.put_public_access_block({
6305
+ # bucket: "BucketName", # required
6306
+ # content_md5: "ContentMD5",
6307
+ # public_access_block_configuration: { # required
6308
+ # block_public_acls: false,
6309
+ # ignore_public_acls: false,
6310
+ # block_public_policy: false,
6311
+ # restrict_public_buckets: false,
6312
+ # },
6313
+ # })
6314
+ #
6315
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutPublicAccessBlock AWS API Documentation
6316
+ #
6317
+ # @overload put_public_access_block(params = {})
6318
+ # @param [Hash] params ({})
6319
+ def put_public_access_block(params = {}, options = {})
6320
+ req = build_request(:put_public_access_block, params)
6321
+ req.send_request(options)
6322
+ end
6323
+
5649
6324
  # Restores an archived copy of an object back into Amazon S3
5650
6325
  #
5651
6326
  # @option params [required, String] :bucket
@@ -5712,11 +6387,14 @@ module Aws::S3
5712
6387
  # record_delimiter: "RecordDelimiter",
5713
6388
  # field_delimiter: "FieldDelimiter",
5714
6389
  # quote_character: "QuoteCharacter",
6390
+ # allow_quoted_record_delimiter: false,
5715
6391
  # },
5716
- # compression_type: "NONE", # accepts NONE, GZIP
6392
+ # compression_type: "NONE", # accepts NONE, GZIP, BZIP2
5717
6393
  # json: {
5718
6394
  # type: "DOCUMENT", # accepts DOCUMENT, LINES
5719
6395
  # },
6396
+ # parquet: {
6397
+ # },
5720
6398
  # },
5721
6399
  # expression_type: "SQL", # required, accepts SQL
5722
6400
  # expression: "Expression", # required
@@ -5769,7 +6447,7 @@ module Aws::S3
5769
6447
  # value: "MetadataValue",
5770
6448
  # },
5771
6449
  # ],
5772
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA
6450
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
5773
6451
  # },
5774
6452
  # },
5775
6453
  # },
@@ -5790,6 +6468,280 @@ module Aws::S3
5790
6468
  req.send_request(options)
5791
6469
  end
5792
6470
 
6471
+ # This operation filters the contents of an Amazon S3 object based on a
6472
+ # simple Structured Query Language (SQL) statement. In the request,
6473
+ # along with the SQL expression, you must also specify a data
6474
+ # serialization format (JSON or CSV) of the object. Amazon S3 uses this
6475
+ # to parse object data into records, and returns only records that match
6476
+ # the specified SQL expression. You must also specify the data
6477
+ # serialization format for the response.
6478
+ #
6479
+ # @option params [required, String] :bucket
6480
+ # The S3 bucket.
6481
+ #
6482
+ # @option params [required, String] :key
6483
+ # The object key.
6484
+ #
6485
+ # @option params [String] :sse_customer_algorithm
6486
+ # The SSE Algorithm used to encrypt the object. For more information,
6487
+ # see [ Server-Side Encryption (Using Customer-Provided Encryption
6488
+ # Keys][1].
6489
+ #
6490
+ #
6491
+ #
6492
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
6493
+ #
6494
+ # @option params [String] :sse_customer_key
6495
+ # The SSE Customer Key. For more information, see [ Server-Side
6496
+ # Encryption (Using Customer-Provided Encryption Keys][1].
6497
+ #
6498
+ #
6499
+ #
6500
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
6501
+ #
6502
+ # @option params [String] :sse_customer_key_md5
6503
+ # The SSE Customer Key MD5. For more information, see [ Server-Side
6504
+ # Encryption (Using Customer-Provided Encryption Keys][1].
6505
+ #
6506
+ #
6507
+ #
6508
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
6509
+ #
6510
+ # @option params [required, String] :expression
6511
+ # The expression that is used to query the object.
6512
+ #
6513
+ # @option params [required, String] :expression_type
6514
+ # The type of the provided expression (for example., SQL).
6515
+ #
6516
+ # @option params [Types::RequestProgress] :request_progress
6517
+ # Specifies if periodic request progress information should be enabled.
6518
+ #
6519
+ # @option params [required, Types::InputSerialization] :input_serialization
6520
+ # Describes the format of the data in the object that is being queried.
6521
+ #
6522
+ # @option params [required, Types::OutputSerialization] :output_serialization
6523
+ # Describes the format of the data that you want Amazon S3 to return in
6524
+ # response.
6525
+ #
6526
+ # @return [Types::SelectObjectContentOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
6527
+ #
6528
+ # * {Types::SelectObjectContentOutput#payload #payload} => Types::SelectObjectContentEventStream
6529
+ #
6530
+ # @example EventStream Operation Example
6531
+ #
6532
+ # You can process event once it arrives immediately, or wait until
6533
+ # full response complete and iterate through eventstream enumerator.
6534
+ #
6535
+ # To interact with event immediately, you need to register #select_object_content
6536
+ # with callbacks, callbacks can be register for specifc events or for all events,
6537
+ # callback for errors in the event stream is also available for register.
6538
+ #
6539
+ # Callbacks can be passed in by `:event_stream_handler` option or within block
6540
+ # statement attached to #select_object_content call directly. Hybrid pattern of both
6541
+ # is also supported.
6542
+ #
6543
+ # `:event_stream_handler` option takes in either Proc object or
6544
+ # Aws::S3::EventStreams::SelectObjectContentEventStream object.
6545
+ #
6546
+ # Usage pattern a): callbacks with a block attached to #select_object_content
6547
+ # Example for registering callbacks for all event types and error event
6548
+ #
6549
+ # client.select_object_content( # params input# ) do |stream|
6550
+ # stream.on_error_event do |event|
6551
+ # # catch unmodeled error event in the stream
6552
+ # raise event
6553
+ # # => Aws::Errors::EventError
6554
+ # # event.event_type => :error
6555
+ # # event.error_code => String
6556
+ # # event.error_message => String
6557
+ # end
6558
+ #
6559
+ # stream.on_event do |event|
6560
+ # # process all events arrive
6561
+ # puts event.event_type
6562
+ # ...
6563
+ # end
6564
+ #
6565
+ # end
6566
+ #
6567
+ # Usage pattern b): pass in `:event_stream_handler` for #select_object_content
6568
+ #
6569
+ # 1) create a Aws::S3::EventStreams::SelectObjectContentEventStream object
6570
+ # Example for registering callbacks with specific events
6571
+ #
6572
+ # handler = Aws::S3::EventStreams::SelectObjectContentEventStream.new
6573
+ # handler.on_records_event do |event|
6574
+ # event # => Aws::S3::Types::Records
6575
+ # end
6576
+ # handler.on_stats_event do |event|
6577
+ # event # => Aws::S3::Types::Stats
6578
+ # end
6579
+ # handler.on_progress_event do |event|
6580
+ # event # => Aws::S3::Types::Progress
6581
+ # end
6582
+ # handler.on_cont_event do |event|
6583
+ # event # => Aws::S3::Types::Cont
6584
+ # end
6585
+ # handler.on_end_event do |event|
6586
+ # event # => Aws::S3::Types::End
6587
+ # end
6588
+ #
6589
+ # client.select_object_content( # params input #, event_stream_handler: handler)
6590
+ #
6591
+ # 2) use a Ruby Proc object
6592
+ # Example for registering callbacks with specific events
6593
+ #
6594
+ # handler = Proc.new do |stream|
6595
+ # stream.on_records_event do |event|
6596
+ # event # => Aws::S3::Types::Records
6597
+ # end
6598
+ # stream.on_stats_event do |event|
6599
+ # event # => Aws::S3::Types::Stats
6600
+ # end
6601
+ # stream.on_progress_event do |event|
6602
+ # event # => Aws::S3::Types::Progress
6603
+ # end
6604
+ # stream.on_cont_event do |event|
6605
+ # event # => Aws::S3::Types::Cont
6606
+ # end
6607
+ # stream.on_end_event do |event|
6608
+ # event # => Aws::S3::Types::End
6609
+ # end
6610
+ # end
6611
+ #
6612
+ # client.select_object_content( # params input #, event_stream_handler: handler)
6613
+ #
6614
+ # Usage pattern c): hybird pattern of a) and b)
6615
+ #
6616
+ # handler = Aws::S3::EventStreams::SelectObjectContentEventStream.new
6617
+ # handler.on_records_event do |event|
6618
+ # event # => Aws::S3::Types::Records
6619
+ # end
6620
+ # handler.on_stats_event do |event|
6621
+ # event # => Aws::S3::Types::Stats
6622
+ # end
6623
+ # handler.on_progress_event do |event|
6624
+ # event # => Aws::S3::Types::Progress
6625
+ # end
6626
+ # handler.on_cont_event do |event|
6627
+ # event # => Aws::S3::Types::Cont
6628
+ # end
6629
+ # handler.on_end_event do |event|
6630
+ # event # => Aws::S3::Types::End
6631
+ # end
6632
+ #
6633
+ # client.select_object_content( # params input #, event_stream_handler: handler) do |stream|
6634
+ # stream.on_error_event do |event|
6635
+ # # catch unmodeled error event in the stream
6636
+ # raise event
6637
+ # # => Aws::Errors::EventError
6638
+ # # event.event_type => :error
6639
+ # # event.error_code => String
6640
+ # # event.error_message => String
6641
+ # end
6642
+ # end
6643
+ #
6644
+ # Besides above usage patterns for process events when they arrive immediately, you can also
6645
+ # iterate through events after response complete.
6646
+ #
6647
+ # Events are available at resp.payload # => Enumerator
6648
+ # For parameter input example, please refer to following request syntax
6649
+ #
6650
+ # @example Request syntax with placeholder values
6651
+ #
6652
+ # resp = client.select_object_content({
6653
+ # bucket: "BucketName", # required
6654
+ # key: "ObjectKey", # required
6655
+ # sse_customer_algorithm: "SSECustomerAlgorithm",
6656
+ # sse_customer_key: "SSECustomerKey",
6657
+ # sse_customer_key_md5: "SSECustomerKeyMD5",
6658
+ # expression: "Expression", # required
6659
+ # expression_type: "SQL", # required, accepts SQL
6660
+ # request_progress: {
6661
+ # enabled: false,
6662
+ # },
6663
+ # input_serialization: { # required
6664
+ # csv: {
6665
+ # file_header_info: "USE", # accepts USE, IGNORE, NONE
6666
+ # comments: "Comments",
6667
+ # quote_escape_character: "QuoteEscapeCharacter",
6668
+ # record_delimiter: "RecordDelimiter",
6669
+ # field_delimiter: "FieldDelimiter",
6670
+ # quote_character: "QuoteCharacter",
6671
+ # allow_quoted_record_delimiter: false,
6672
+ # },
6673
+ # compression_type: "NONE", # accepts NONE, GZIP, BZIP2
6674
+ # json: {
6675
+ # type: "DOCUMENT", # accepts DOCUMENT, LINES
6676
+ # },
6677
+ # parquet: {
6678
+ # },
6679
+ # },
6680
+ # output_serialization: { # required
6681
+ # csv: {
6682
+ # quote_fields: "ALWAYS", # accepts ALWAYS, ASNEEDED
6683
+ # quote_escape_character: "QuoteEscapeCharacter",
6684
+ # record_delimiter: "RecordDelimiter",
6685
+ # field_delimiter: "FieldDelimiter",
6686
+ # quote_character: "QuoteCharacter",
6687
+ # },
6688
+ # json: {
6689
+ # record_delimiter: "RecordDelimiter",
6690
+ # },
6691
+ # },
6692
+ # })
6693
+ #
6694
+ # @example Response structure
6695
+ #
6696
+ # All events are available at resp.payload:
6697
+ # resp.payload #=> Enumerator
6698
+ # resp.payload.event_types #=> [:records, :stats, :progress, :cont, :end]
6699
+ #
6700
+ # For :records event available at #on_records_event callback and response eventstream enumerator:
6701
+ # event.payload #=> IO
6702
+ #
6703
+ # For :stats event available at #on_stats_event callback and response eventstream enumerator:
6704
+ # event.details.bytes_scanned #=> Integer
6705
+ # event.details.bytes_processed #=> Integer
6706
+ # event.details.bytes_returned #=> Integer
6707
+ #
6708
+ # For :progress event available at #on_progress_event callback and response eventstream enumerator:
6709
+ # event.details.bytes_scanned #=> Integer
6710
+ # event.details.bytes_processed #=> Integer
6711
+ # event.details.bytes_returned #=> Integer
6712
+ #
6713
+ # For :cont event available at #on_cont_event callback and response eventstream enumerator:
6714
+ # #=> EmptyStruct
6715
+ # For :end event available at #on_end_event callback and response eventstream enumerator:
6716
+ # #=> EmptyStruct
6717
+ #
6718
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectObjectContent AWS API Documentation
6719
+ #
6720
+ # @overload select_object_content(params = {})
6721
+ # @param [Hash] params ({})
6722
+ def select_object_content(params = {}, options = {}, &block)
6723
+ params = params.dup
6724
+ event_stream_handler = case handler = params.delete(:event_stream_handler)
6725
+ when EventStreams::SelectObjectContentEventStream then handler
6726
+ when Proc then EventStreams::SelectObjectContentEventStream.new.tap(&handler)
6727
+ when nil then EventStreams::SelectObjectContentEventStream.new
6728
+ else
6729
+ msg = "expected :event_stream_handler to be a block or "\
6730
+ "instance of Aws::S3::EventStreams::SelectObjectContentEventStream"\
6731
+ ", got `#{handler.inspect}` instead"
6732
+ raise ArgumentError, msg
6733
+ end
6734
+
6735
+ yield(event_stream_handler) if block_given?
6736
+
6737
+ req = build_request(:select_object_content, params)
6738
+
6739
+ req.context[:event_stream_handler] = event_stream_handler
6740
+ req.handlers.add(Aws::Binary::DecodeHandler, priority: 95)
6741
+
6742
+ req.send_request(options, &block)
6743
+ end
6744
+
5793
6745
  # Uploads a part in a multipart upload.
5794
6746
  #
5795
6747
  # **Note:** After you initiate multipart upload and upload one or more
@@ -5936,7 +6888,7 @@ module Aws::S3
5936
6888
  # must use the form bytes=first-last, where the first and last are the
5937
6889
  # zero-based byte offsets to copy. For example, bytes=0-9 indicates that
5938
6890
  # you want to copy the first ten bytes of the source. You can copy a
5939
- # range only if the source object is greater than 5 GB.
6891
+ # range only if the source object is greater than 5 MB.
5940
6892
  #
5941
6893
  # @option params [required, String] :key
5942
6894
  #
@@ -5997,45 +6949,45 @@ module Aws::S3
5997
6949
  # * {Types::UploadPartCopyOutput#request_charged #request_charged} => String
5998
6950
  #
5999
6951
  #
6000
- # @example Example: To upload a part by copying byte range from an existing object as data source
6952
+ # @example Example: To upload a part by copying data from an existing object as data source
6001
6953
  #
6002
- # # The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as
6003
- # # data source.
6954
+ # # The following example uploads a part of a multipart upload by copying data from an existing object as data source.
6004
6955
  #
6005
6956
  # resp = client.upload_part_copy({
6006
6957
  # bucket: "examplebucket",
6007
6958
  # copy_source: "/bucketname/sourceobjectkey",
6008
- # copy_source_range: "bytes=1-100000",
6009
6959
  # key: "examplelargeobject",
6010
- # part_number: 2,
6960
+ # part_number: 1,
6011
6961
  # upload_id: "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--",
6012
6962
  # })
6013
6963
  #
6014
6964
  # resp.to_h outputs the following:
6015
6965
  # {
6016
6966
  # copy_part_result: {
6017
- # etag: "\"65d16d19e65a7508a51f043180edcc36\"",
6018
- # last_modified: Time.parse("2016-12-29T21:44:28.000Z"),
6967
+ # etag: "\"b0c6f0e7e054ab8fa2536a2677f8734d\"",
6968
+ # last_modified: Time.parse("2016-12-29T21:24:43.000Z"),
6019
6969
  # },
6020
6970
  # }
6021
6971
  #
6022
- # @example Example: To upload a part by copying data from an existing object as data source
6972
+ # @example Example: To upload a part by copying byte range from an existing object as data source
6023
6973
  #
6024
- # # The following example uploads a part of a multipart upload by copying data from an existing object as data source.
6974
+ # # The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as
6975
+ # # data source.
6025
6976
  #
6026
6977
  # resp = client.upload_part_copy({
6027
6978
  # bucket: "examplebucket",
6028
6979
  # copy_source: "/bucketname/sourceobjectkey",
6980
+ # copy_source_range: "bytes=1-100000",
6029
6981
  # key: "examplelargeobject",
6030
- # part_number: 1,
6982
+ # part_number: 2,
6031
6983
  # upload_id: "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--",
6032
6984
  # })
6033
6985
  #
6034
6986
  # resp.to_h outputs the following:
6035
6987
  # {
6036
6988
  # copy_part_result: {
6037
- # etag: "\"b0c6f0e7e054ab8fa2536a2677f8734d\"",
6038
- # last_modified: Time.parse("2016-12-29T21:24:43.000Z"),
6989
+ # etag: "\"65d16d19e65a7508a51f043180edcc36\"",
6990
+ # last_modified: Time.parse("2016-12-29T21:44:28.000Z"),
6039
6991
  # },
6040
6992
  # }
6041
6993
  #
@@ -6094,7 +7046,7 @@ module Aws::S3
6094
7046
  params: params,
6095
7047
  config: config)
6096
7048
  context[:gem_name] = 'aws-sdk-s3'
6097
- context[:gem_version] = '1.9.0'
7049
+ context[:gem_version] = '1.40.0'
6098
7050
  Seahorse::Client::Request.new(handlers, context)
6099
7051
  end
6100
7052
 
@@ -6111,7 +7063,7 @@ module Aws::S3
6111
7063
  # In between attempts, the waiter will sleep.
6112
7064
  #
6113
7065
  # # polls in a loop, sleeping between attempts
6114
- # client.waiter_until(waiter_name, params)
7066
+ # client.wait_until(waiter_name, params)
6115
7067
  #
6116
7068
  # ## Configuration
6117
7069
  #