aws-sdk-s3 1.78.0 → 1.87.0

Sign up to get free protection for your applications and to get access to all the features.
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)