aws-sdk-s3 1.78.0 → 1.87.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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aws-sdk-s3.rb +3 -2
  3. data/lib/aws-sdk-s3/arn/access_point_arn.rb +62 -0
  4. data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +71 -0
  5. data/lib/aws-sdk-s3/bucket.rb +65 -6
  6. data/lib/aws-sdk-s3/bucket_acl.rb +8 -0
  7. data/lib/aws-sdk-s3/bucket_cors.rb +15 -1
  8. data/lib/aws-sdk-s3/bucket_lifecycle.rb +14 -1
  9. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +12 -1
  10. data/lib/aws-sdk-s3/bucket_logging.rb +8 -0
  11. data/lib/aws-sdk-s3/bucket_notification.rb +5 -0
  12. data/lib/aws-sdk-s3/bucket_policy.rb +15 -1
  13. data/lib/aws-sdk-s3/bucket_request_payment.rb +8 -0
  14. data/lib/aws-sdk-s3/bucket_tagging.rb +15 -1
  15. data/lib/aws-sdk-s3/bucket_versioning.rb +24 -0
  16. data/lib/aws-sdk-s3/bucket_website.rb +15 -1
  17. data/lib/aws-sdk-s3/client.rb +2659 -778
  18. data/lib/aws-sdk-s3/client_api.rb +297 -20
  19. data/lib/aws-sdk-s3/customizations.rb +1 -1
  20. data/lib/aws-sdk-s3/customizations/bucket.rb +7 -4
  21. data/lib/aws-sdk-s3/customizations/object.rb +4 -3
  22. data/lib/aws-sdk-s3/errors.rb +21 -0
  23. data/lib/aws-sdk-s3/file_uploader.rb +1 -1
  24. data/lib/aws-sdk-s3/legacy_signer.rb +15 -25
  25. data/lib/aws-sdk-s3/multipart_upload.rb +15 -0
  26. data/lib/aws-sdk-s3/multipart_upload_part.rb +63 -6
  27. data/lib/aws-sdk-s3/object.rb +212 -24
  28. data/lib/aws-sdk-s3/object_acl.rb +16 -0
  29. data/lib/aws-sdk-s3/object_summary.rb +179 -14
  30. data/lib/aws-sdk-s3/object_version.rb +27 -3
  31. data/lib/aws-sdk-s3/plugins/arn.rb +187 -0
  32. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +0 -2
  33. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +1 -1
  34. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +7 -2
  35. data/lib/aws-sdk-s3/plugins/s3_signer.rb +29 -7
  36. data/lib/aws-sdk-s3/presigned_post.rb +1 -0
  37. data/lib/aws-sdk-s3/presigner.rb +19 -5
  38. data/lib/aws-sdk-s3/types.rb +2301 -287
  39. metadata +7 -5
  40. data/lib/aws-sdk-s3/plugins/bucket_arn.rb +0 -212
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 12869c75a61c6e62eb981846c9cac525962300fae8ca08cf87d5c6fde2824f5f
4
- data.tar.gz: 6a29b43d4e3453c63ed50e7a18c06af16064e3db761dd2f784923bd20abba0c4
3
+ metadata.gz: 11cd48be59fc8922aabfe4d29d601706183fc5d5ce0b1fb201ae2f59c6f281ab
4
+ data.tar.gz: 546d8a92a9a561d94d205908d52c005edb5a49d336751ee7954936f9449d7138
5
5
  SHA512:
6
- metadata.gz: b331ecb2c04da30961f53906e6811ba52f6b2f5a74f1c32153a03d7c1900392a61c6a7af8b33daa296e1cc7632514a86b99ec6af6d4b1851b9379c9a3894221b
7
- data.tar.gz: 61ef696b6a90673f1a89f3ac5d31ccc1e8f2350e8d492b67974a3861f9cfcfc1d509d81608d96d8ee68312e5462eb64f644b415fb5fd6f79d0587b272803b136
6
+ metadata.gz: 16a5af91aba1ce6e9b4f3d121cbc427e1534a2fb80edb553a7e5e62e5a937877174581ad169c4abd46dd3d32dfdf765d9161f7bc4c907b5f0cf158d44dbd81e3
7
+ data.tar.gz: 995720b6753b4add059e235f37dea7fe49dbe19038e495260023aa380bfe2544cdb9873dafab1a2c685d9eae3f1eeeacb290480ac149d6624f475ba584519c57
@@ -7,6 +7,7 @@
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
10
+
10
11
  require 'aws-sdk-kms'
11
12
  require 'aws-sigv4'
12
13
  require 'aws-sdk-core'
@@ -65,9 +66,9 @@ require_relative 'aws-sdk-s3/event_streams'
65
66
  #
66
67
  # See {Errors} for more information.
67
68
  #
68
- # @service
69
+ # @!group service
69
70
  module Aws::S3
70
71
 
71
- GEM_VERSION = '1.78.0'
72
+ GEM_VERSION = '1.87.0'
72
73
 
73
74
  end
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Aws
4
+ module S3
5
+ # @api private
6
+ class AccessPointARN < Aws::ARN
7
+ def initialize(options)
8
+ super(options)
9
+ @type, @access_point_name, @extra = @resource.split(/[:,\/]/)
10
+ end
11
+
12
+ attr_reader :access_point_name
13
+
14
+ def support_dualstack?
15
+ true
16
+ end
17
+
18
+ def support_fips?
19
+ true
20
+ end
21
+
22
+ def validate_arn!
23
+ unless @service == 's3'
24
+ raise ArgumentError, 'Must provide a valid S3 accesspoint ARN.'
25
+ end
26
+
27
+ if @region.empty? || @account_id.empty?
28
+ raise ArgumentError,
29
+ 'S3 accesspoint ARNs must contain both a region '\
30
+ 'and an account id.'
31
+ end
32
+
33
+ if @type != 'accesspoint'
34
+ raise ArgumentError, 'Invalid ARN, resource format is not correct'
35
+ end
36
+
37
+ if @access_point_name.nil? || @access_point_name.empty?
38
+ raise ArgumentError, 'Missing ARN accesspoint name.'
39
+ end
40
+
41
+ if @extra
42
+ raise ArgumentError,
43
+ 'ARN accesspoint resource must be a single value.'
44
+ end
45
+
46
+ unless Seahorse::Util.host_label?(
47
+ "#{@access_point_name}-#{@account_id}"
48
+ )
49
+ raise ArgumentError,
50
+ "#{@access_point_name}-#{@account_id} is not a valid "\
51
+ 'host label.'
52
+ end
53
+ end
54
+
55
+ def host_url(region, dualstack = false)
56
+ sfx = Aws::Partitions::EndpointProvider.dns_suffix_for(region)
57
+ "#{@access_point_name}-#{@account_id}"\
58
+ ".s3-accesspoint#{'.dualstack' if dualstack}.#{region}.#{sfx}"
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Aws
4
+ module S3
5
+ # @api private
6
+ class OutpostAccessPointARN < Aws::ARN
7
+ def initialize(options)
8
+ super(options)
9
+ @type, @outpost_id, @subtype, @access_point_name, @extra =
10
+ @resource.split(/[:,\/]/)
11
+ end
12
+
13
+ attr_reader :outpost_id, :access_point_name
14
+
15
+ def support_dualstack?
16
+ false
17
+ end
18
+
19
+ def support_fips?
20
+ false
21
+ end
22
+
23
+ def validate_arn!
24
+ unless @service == 's3-outposts'
25
+ raise ArgumentError, 'Must provide a valid S3 outposts ARN.'
26
+ end
27
+
28
+ if @region.empty? || @account_id.empty?
29
+ raise ArgumentError,
30
+ 'S3 accesspoint ARNs must contain both a region '\
31
+ 'and an account id.'
32
+ end
33
+
34
+ if @type != 'outpost' && @subtype != 'accesspoint'
35
+ raise ArgumentError, 'Invalid ARN, resource format is not correct'
36
+ end
37
+
38
+ if @outpost_id.nil? || @outpost_id.empty?
39
+ raise ArgumentError, 'Missing ARN outpost id.'
40
+ end
41
+
42
+ if @access_point_name.nil? || @access_point_name.empty?
43
+ raise ArgumentError, 'Missing ARN accesspoint name.'
44
+ end
45
+
46
+ if @extra
47
+ raise ArgumentError,
48
+ 'ARN accesspoint resource must be a single value.'
49
+ end
50
+
51
+ unless Seahorse::Util.host_label?(
52
+ "#{@access_point_name}-#{@account_id}"
53
+ )
54
+ raise ArgumentError,
55
+ "#{@access_point_name}-#{@account_id} is not a valid "\
56
+ 'host label.'
57
+ end
58
+
59
+ unless Seahorse::Util.host_label?(@outpost_id)
60
+ raise ArgumentError, "#{@outpost_id} is not a valid host label."
61
+ end
62
+ end
63
+
64
+ # Outpost ARNs currently do not support dualstack
65
+ def host_url(region, _dualstack = false)
66
+ "#{@access_point_name}-#{@account_id}.#{@outpost_id}"\
67
+ ".s3-outposts.#{region}.amazonaws.com"
68
+ end
69
+ end
70
+ end
71
+ end
@@ -34,7 +34,8 @@ module Aws::S3
34
34
  @name
35
35
  end
36
36
 
37
- # Date the bucket was created.
37
+ # Date the bucket was created. This date can change when making changes
38
+ # to your bucket, such as editing its bucket policy.
38
39
  # @return [Time]
39
40
  def creation_date
40
41
  data[:creation_date]
@@ -260,8 +261,14 @@ module Aws::S3
260
261
 
261
262
  # @example Request syntax with placeholder values
262
263
  #
263
- # bucket.delete()
264
+ # bucket.delete({
265
+ # expected_bucket_owner: "AccountId",
266
+ # })
264
267
  # @param [Hash] options ({})
268
+ # @option options [String] :expected_bucket_owner
269
+ # The account id of the expected bucket owner. If the bucket is owned by
270
+ # a different account, the request will fail with an HTTP `403 (Access
271
+ # Denied)` error.
265
272
  # @return [EmptyStructure]
266
273
  def delete(options = {})
267
274
  options = options.merge(bucket: @name)
@@ -284,6 +291,7 @@ module Aws::S3
284
291
  # mfa: "MFA",
285
292
  # request_payer: "requester", # accepts requester
286
293
  # bypass_governance_retention: false,
294
+ # expected_bucket_owner: "AccountId",
287
295
  # })
288
296
  # @param [Hash] options ({})
289
297
  # @option options [required, Types::Delete] :delete
@@ -307,6 +315,10 @@ module Aws::S3
307
315
  # Specifies whether you want to delete this object even if it has a
308
316
  # Governance-type Object Lock in place. You must have sufficient
309
317
  # permissions to perform this operation.
318
+ # @option options [String] :expected_bucket_owner
319
+ # The account id of the expected bucket owner. If the bucket is owned by
320
+ # a different account, the request will fail with an HTTP `403 (Access
321
+ # Denied)` error.
310
322
  # @return [Types::DeleteObjectsOutput]
311
323
  def delete_objects(options = {})
312
324
  options = options.merge(bucket: @name)
@@ -336,24 +348,28 @@ module Aws::S3
336
348
  # "MetadataKey" => "MetadataValue",
337
349
  # },
338
350
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
339
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
351
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
340
352
  # website_redirect_location: "WebsiteRedirectLocation",
341
353
  # sse_customer_algorithm: "SSECustomerAlgorithm",
342
354
  # sse_customer_key: "SSECustomerKey",
343
355
  # sse_customer_key_md5: "SSECustomerKeyMD5",
344
356
  # ssekms_key_id: "SSEKMSKeyId",
345
357
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
358
+ # bucket_key_enabled: false,
346
359
  # request_payer: "requester", # accepts requester
347
360
  # tagging: "TaggingHeader",
348
361
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
349
362
  # object_lock_retain_until_date: Time.now,
350
363
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
364
+ # expected_bucket_owner: "AccountId",
351
365
  # })
352
366
  # @param [Hash] options ({})
353
367
  # @option options [String] :acl
354
368
  # The canned ACL to apply to the object. For more information, see
355
369
  # [Canned ACL][1].
356
370
  #
371
+ # This action is not supported by Amazon S3 on Outposts.
372
+ #
357
373
  #
358
374
  #
359
375
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
@@ -425,12 +441,20 @@ module Aws::S3
425
441
  # @option options [String] :grant_full_control
426
442
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
427
443
  # object.
444
+ #
445
+ # This action is not supported by Amazon S3 on Outposts.
428
446
  # @option options [String] :grant_read
429
447
  # Allows grantee to read the object data and its metadata.
448
+ #
449
+ # This action is not supported by Amazon S3 on Outposts.
430
450
  # @option options [String] :grant_read_acp
431
451
  # Allows grantee to read the object ACL.
452
+ #
453
+ # This action is not supported by Amazon S3 on Outposts.
432
454
  # @option options [String] :grant_write_acp
433
455
  # Allows grantee to write the ACL for the applicable object.
456
+ #
457
+ # This action is not supported by Amazon S3 on Outposts.
434
458
  # @option options [required, String] :key
435
459
  # Object key for which the PUT operation was initiated.
436
460
  # @option options [Hash<String,String>] :metadata
@@ -439,8 +463,16 @@ module Aws::S3
439
463
  # The server-side encryption algorithm used when storing this object in
440
464
  # Amazon S3 (for example, AES256, aws:kms).
441
465
  # @option options [String] :storage_class
442
- # If you don't specify, S3 Standard is the default storage class.
443
- # Amazon S3 supports other storage classes.
466
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
467
+ # created objects. The STANDARD storage class provides high durability
468
+ # and high availability. Depending on performance needs, you can specify
469
+ # a different Storage Class. Amazon S3 on Outposts only uses the
470
+ # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
471
+ # in the *Amazon S3 Service Developer Guide*.
472
+ #
473
+ #
474
+ #
475
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
444
476
  # @option options [String] :website_redirect_location
445
477
  # If the bucket is configured as a website, redirects requests for this
446
478
  # object to another object in the same bucket or to an external URL.
@@ -474,7 +506,7 @@ module Aws::S3
474
506
  # encrypting data. This value is used to store the object and then it is
475
507
  # discarded; Amazon S3 does not store the encryption key. The key must
476
508
  # be appropriate for use with the algorithm specified in the
477
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
509
+ # `x-amz-server-side-encryption-customer-algorithm` header.
478
510
  # @option options [String] :sse_customer_key_md5
479
511
  # Specifies the 128-bit MD5 digest of the encryption key according to
480
512
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -495,6 +527,14 @@ module Aws::S3
495
527
  # Specifies the AWS KMS Encryption Context to use for object encryption.
496
528
  # The value of this header is a base64-encoded UTF-8 string holding JSON
497
529
  # with the encryption context key-value pairs.
530
+ # @option options [Boolean] :bucket_key_enabled
531
+ # Specifies whether Amazon S3 should use an S3 Bucket Key for object
532
+ # encryption with server-side encryption using AWS KMS (SSE-KMS).
533
+ # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
534
+ # for object encryption with SSE-KMS.
535
+ #
536
+ # Specifying this header with a PUT operation doesn’t affect
537
+ # bucket-level settings for S3 Bucket Key.
498
538
  # @option options [String] :request_payer
499
539
  # Confirms that the requester knows that they will be charged for the
500
540
  # request. Bucket owners need not specify this parameter in their
@@ -519,6 +559,10 @@ module Aws::S3
519
559
  #
520
560
  #
521
561
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
562
+ # @option options [String] :expected_bucket_owner
563
+ # The account id of the expected bucket owner. If the bucket is owned by
564
+ # a different account, the request will fail with an HTTP `403 (Access
565
+ # Denied)` error.
522
566
  # @return [Object]
523
567
  def put_object(options = {})
524
568
  options = options.merge(bucket: @name)
@@ -580,6 +624,7 @@ module Aws::S3
580
624
  # key_marker: "KeyMarker",
581
625
  # prefix: "Prefix",
582
626
  # upload_id_marker: "UploadIdMarker",
627
+ # expected_bucket_owner: "AccountId",
583
628
  # })
584
629
  # @param [Hash] options ({})
585
630
  # @option options [String] :delimiter
@@ -622,6 +667,10 @@ module Aws::S3
622
667
  # uploads for a key equal to the key-marker might be included in the
623
668
  # list only if they have an upload ID lexicographically greater than the
624
669
  # specified `upload-id-marker`.
670
+ # @option options [String] :expected_bucket_owner
671
+ # The account id of the expected bucket owner. If the bucket is owned by
672
+ # a different account, the request will fail with an HTTP `403 (Access
673
+ # Denied)` error.
625
674
  # @return [MultipartUpload::Collection]
626
675
  def multipart_uploads(options = {})
627
676
  batches = Enumerator.new do |y|
@@ -670,6 +719,7 @@ module Aws::S3
670
719
  # key_marker: "KeyMarker",
671
720
  # prefix: "Prefix",
672
721
  # version_id_marker: "VersionIdMarker",
722
+ # expected_bucket_owner: "AccountId",
673
723
  # })
674
724
  # @param [Hash] options ({})
675
725
  # @option options [String] :delimiter
@@ -697,6 +747,10 @@ module Aws::S3
697
747
  # result under CommonPrefixes.
698
748
  # @option options [String] :version_id_marker
699
749
  # Specifies the object version you want to start listing from.
750
+ # @option options [String] :expected_bucket_owner
751
+ # The account id of the expected bucket owner. If the bucket is owned by
752
+ # a different account, the request will fail with an HTTP `403 (Access
753
+ # Denied)` error.
700
754
  # @return [ObjectVersion::Collection]
701
755
  def object_versions(options = {})
702
756
  batches = Enumerator.new do |y|
@@ -728,6 +782,7 @@ module Aws::S3
728
782
  # fetch_owner: false,
729
783
  # start_after: "StartAfter",
730
784
  # request_payer: "requester", # accepts requester
785
+ # expected_bucket_owner: "AccountId",
731
786
  # })
732
787
  # @param [Hash] options ({})
733
788
  # @option options [String] :delimiter
@@ -748,6 +803,10 @@ module Aws::S3
748
803
  # Confirms that the requester knows that she or he will be charged for
749
804
  # the list objects request in V2 style. Bucket owners need not specify
750
805
  # this parameter in their requests.
806
+ # @option options [String] :expected_bucket_owner
807
+ # The account id of the expected bucket owner. If the bucket is owned by
808
+ # a different account, the request will fail with an HTTP `403 (Access
809
+ # Denied)` error.
751
810
  # @return [ObjectSummary::Collection]
752
811
  def objects(options = {})
753
812
  batches = Enumerator.new do |y|
@@ -208,6 +208,7 @@ module Aws::S3
208
208
  # grant_read_acp: "GrantReadACP",
209
209
  # grant_write: "GrantWrite",
210
210
  # grant_write_acp: "GrantWriteACP",
211
+ # expected_bucket_owner: "AccountId",
211
212
  # })
212
213
  # @param [Hash] options ({})
213
214
  # @option options [String] :acl
@@ -220,6 +221,9 @@ module Aws::S3
220
221
  # used as a message integrity check to verify that the request body was
221
222
  # not corrupted in transit. For more information, go to [RFC 1864.][1]
222
223
  #
224
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
225
+ # SDKs, this field is calculated automatically.
226
+ #
223
227
  #
224
228
  #
225
229
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
@@ -235,6 +239,10 @@ module Aws::S3
235
239
  # bucket.
236
240
  # @option options [String] :grant_write_acp
237
241
  # Allows grantee to write the ACL for the applicable bucket.
242
+ # @option options [String] :expected_bucket_owner
243
+ # The account id of the expected bucket owner. If the bucket is owned by
244
+ # a different account, the request will fail with an HTTP `403 (Access
245
+ # Denied)` error.
238
246
  # @return [EmptyStructure]
239
247
  def put(options = {})
240
248
  options = options.merge(bucket: @bucket_name)
@@ -177,8 +177,14 @@ module Aws::S3
177
177
 
178
178
  # @example Request syntax with placeholder values
179
179
  #
180
- # bucket_cors.delete()
180
+ # bucket_cors.delete({
181
+ # expected_bucket_owner: "AccountId",
182
+ # })
181
183
  # @param [Hash] options ({})
184
+ # @option options [String] :expected_bucket_owner
185
+ # The account id of the expected bucket owner. If the bucket is owned by
186
+ # a different account, the request will fail with an HTTP `403 (Access
187
+ # Denied)` error.
182
188
  # @return [EmptyStructure]
183
189
  def delete(options = {})
184
190
  options = options.merge(bucket: @bucket_name)
@@ -201,6 +207,7 @@ module Aws::S3
201
207
  # ],
202
208
  # },
203
209
  # content_md5: "ContentMD5",
210
+ # expected_bucket_owner: "AccountId",
204
211
  # })
205
212
  # @param [Hash] options ({})
206
213
  # @option options [required, Types::CORSConfiguration] :cors_configuration
@@ -217,9 +224,16 @@ module Aws::S3
217
224
  # used as a message integrity check to verify that the request body was
218
225
  # not corrupted in transit. For more information, go to [RFC 1864.][1]
219
226
  #
227
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
228
+ # SDKs, this field is calculated automatically.
229
+ #
220
230
  #
221
231
  #
222
232
  # [1]: http://www.ietf.org/rfc/rfc1864.txt
233
+ # @option options [String] :expected_bucket_owner
234
+ # The account id of the expected bucket owner. If the bucket is owned by
235
+ # a different account, the request will fail with an HTTP `403 (Access
236
+ # Denied)` error.
223
237
  # @return [EmptyStructure]
224
238
  def put(options = {})
225
239
  options = options.merge(bucket: @bucket_name)
@@ -176,8 +176,14 @@ module Aws::S3
176
176
 
177
177
  # @example Request syntax with placeholder values
178
178
  #
179
- # bucket_lifecycle.delete()
179
+ # bucket_lifecycle.delete({
180
+ # expected_bucket_owner: "AccountId",
181
+ # })
180
182
  # @param [Hash] options ({})
183
+ # @option options [String] :expected_bucket_owner
184
+ # The account id of the expected bucket owner. If the bucket is owned by
185
+ # a different account, the request will fail with an HTTP `403 (Access
186
+ # Denied)` error.
181
187
  # @return [EmptyStructure]
182
188
  def delete(options = {})
183
189
  options = options.merge(bucket: @bucket_name)
@@ -218,10 +224,17 @@ module Aws::S3
218
224
  # },
219
225
  # ],
220
226
  # },
227
+ # expected_bucket_owner: "AccountId",
221
228
  # })
222
229
  # @param [Hash] options ({})
223
230
  # @option options [String] :content_md5
231
+ # For requests made using the AWS Command Line Interface (CLI) or AWS
232
+ # SDKs, this field is calculated automatically.
224
233
  # @option options [Types::LifecycleConfiguration] :lifecycle_configuration
234
+ # @option options [String] :expected_bucket_owner
235
+ # The account id of the expected bucket owner. If the bucket is owned by
236
+ # a different account, the request will fail with an HTTP `403 (Access
237
+ # Denied)` error.
225
238
  # @return [EmptyStructure]
226
239
  def put(options = {})
227
240
  options = options.merge(bucket: @bucket_name)