aws-sdk-s3 1.9.0 → 1.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aws-sdk-s3/bucket.rb +22 -3
  3. data/lib/aws-sdk-s3/bucket_acl.rb +1 -0
  4. data/lib/aws-sdk-s3/bucket_cors.rb +1 -0
  5. data/lib/aws-sdk-s3/bucket_lifecycle.rb +3 -2
  6. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +3 -2
  7. data/lib/aws-sdk-s3/bucket_notification.rb +9 -5
  8. data/lib/aws-sdk-s3/bucket_tagging.rb +1 -0
  9. data/lib/aws-sdk-s3/bucket_website.rb +4 -0
  10. data/lib/aws-sdk-s3/client.rb +1303 -351
  11. data/lib/aws-sdk-s3/client_api.rb +352 -2
  12. data/lib/aws-sdk-s3/customizations/bucket.rb +2 -2
  13. data/lib/aws-sdk-s3/customizations/object.rb +60 -0
  14. data/lib/aws-sdk-s3/customizations/object_summary.rb +7 -0
  15. data/lib/aws-sdk-s3/customizations.rb +1 -0
  16. data/lib/aws-sdk-s3/encryption/client.rb +1 -1
  17. data/lib/aws-sdk-s3/encryption/io_auth_decrypter.rb +9 -3
  18. data/lib/aws-sdk-s3/event_streams.rb +62 -0
  19. data/lib/aws-sdk-s3/file_downloader.rb +10 -9
  20. data/lib/aws-sdk-s3/file_part.rb +5 -7
  21. data/lib/aws-sdk-s3/file_uploader.rb +1 -3
  22. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +162 -0
  23. data/lib/aws-sdk-s3/multipart_upload.rb +1 -0
  24. data/lib/aws-sdk-s3/multipart_upload_part.rb +2 -2
  25. data/lib/aws-sdk-s3/object.rb +71 -7
  26. data/lib/aws-sdk-s3/object_acl.rb +1 -0
  27. data/lib/aws-sdk-s3/object_summary.rb +54 -7
  28. data/lib/aws-sdk-s3/object_version.rb +11 -0
  29. data/lib/aws-sdk-s3/plugins/accelerate.rb +4 -0
  30. data/lib/aws-sdk-s3/plugins/md5s.rb +4 -1
  31. data/lib/aws-sdk-s3/plugins/redirects.rb +3 -1
  32. data/lib/aws-sdk-s3/plugins/s3_signer.rb +6 -1
  33. data/lib/aws-sdk-s3/presigner.rb +4 -0
  34. data/lib/aws-sdk-s3/resource.rb +4 -0
  35. data/lib/aws-sdk-s3/types.rb +1539 -227
  36. data/lib/aws-sdk-s3.rb +2 -1
  37. metadata +12 -4
@@ -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
  #