aws-sdk-s3 1.79.0 → 1.82.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aws-sdk-s3.rb +2 -1
  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 +34 -3
  6. data/lib/aws-sdk-s3/bucket_acl.rb +5 -0
  7. data/lib/aws-sdk-s3/bucket_cors.rb +12 -1
  8. data/lib/aws-sdk-s3/bucket_lifecycle.rb +12 -1
  9. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +12 -1
  10. data/lib/aws-sdk-s3/bucket_logging.rb +5 -0
  11. data/lib/aws-sdk-s3/bucket_notification.rb +5 -0
  12. data/lib/aws-sdk-s3/bucket_policy.rb +12 -1
  13. data/lib/aws-sdk-s3/bucket_request_payment.rb +5 -0
  14. data/lib/aws-sdk-s3/bucket_tagging.rb +12 -1
  15. data/lib/aws-sdk-s3/bucket_versioning.rb +15 -0
  16. data/lib/aws-sdk-s3/bucket_website.rb +12 -1
  17. data/lib/aws-sdk-s3/client.rb +1753 -555
  18. data/lib/aws-sdk-s3/client_api.rb +87 -0
  19. data/lib/aws-sdk-s3/customizations/bucket.rb +7 -4
  20. data/lib/aws-sdk-s3/multipart_upload.rb +15 -0
  21. data/lib/aws-sdk-s3/multipart_upload_part.rb +63 -6
  22. data/lib/aws-sdk-s3/object.rb +97 -14
  23. data/lib/aws-sdk-s3/object_acl.rb +5 -0
  24. data/lib/aws-sdk-s3/object_summary.rb +92 -10
  25. data/lib/aws-sdk-s3/object_version.rb +22 -2
  26. data/lib/aws-sdk-s3/plugins/arn.rb +187 -0
  27. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +0 -2
  28. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +1 -1
  29. data/lib/aws-sdk-s3/plugins/s3_signer.rb +29 -7
  30. data/lib/aws-sdk-s3/presigned_post.rb +1 -0
  31. data/lib/aws-sdk-s3/presigner.rb +1 -0
  32. data/lib/aws-sdk-s3/types.rb +1296 -147
  33. metadata +7 -5
  34. data/lib/aws-sdk-s3/plugins/bucket_arn.rb +0 -212
@@ -12,13 +12,12 @@ module Aws
12
12
  # Define a new initialize method that extracts out a bucket ARN.
13
13
  define_method(:initialize) do |*args|
14
14
  old_initialize.bind(self).call(*args)
15
- bucket_name, region, arn = Plugins::BucketARN.resolve_arn!(
15
+ resolved_region, arn = Plugins::ARN.resolve_arn!(
16
16
  name,
17
17
  client.config.region,
18
18
  client.config.s3_use_arn_region
19
19
  )
20
- @name = bucket_name
21
- @client.config.region = region
20
+ @resolved_region = resolved_region
22
21
  @arn = arn
23
22
  end
24
23
 
@@ -102,7 +101,11 @@ module Aws
102
101
  if options[:virtual_host]
103
102
  "http://#{name}"
104
103
  elsif @arn
105
- Plugins::BucketARN.resolve_url!(URI.parse(s3_bucket_url), @arn).to_s
104
+ Plugins::ARN.resolve_url!(
105
+ client.config.endpoint.dup,
106
+ @arn,
107
+ @resolved_region
108
+ ).to_s
106
109
  else
107
110
  s3_bucket_url
108
111
  end
@@ -220,6 +220,7 @@ module Aws::S3
220
220
  #
221
221
  # multipart_upload.abort({
222
222
  # request_payer: "requester", # accepts requester
223
+ # expected_bucket_owner: "AccountId",
223
224
  # })
224
225
  # @param [Hash] options ({})
225
226
  # @option options [String] :request_payer
@@ -232,6 +233,10 @@ module Aws::S3
232
233
  #
233
234
  #
234
235
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
236
+ # @option options [String] :expected_bucket_owner
237
+ # The account id of the expected bucket owner. If the bucket is owned by
238
+ # a different account, the request will fail with an HTTP `403 (Access
239
+ # Denied)` error.
235
240
  # @return [Types::AbortMultipartUploadOutput]
236
241
  def abort(options = {})
237
242
  options = options.merge(
@@ -255,6 +260,7 @@ module Aws::S3
255
260
  # ],
256
261
  # },
257
262
  # request_payer: "requester", # accepts requester
263
+ # expected_bucket_owner: "AccountId",
258
264
  # })
259
265
  # @param [Hash] options ({})
260
266
  # @option options [Types::CompletedMultipartUpload] :multipart_upload
@@ -269,6 +275,10 @@ module Aws::S3
269
275
  #
270
276
  #
271
277
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
278
+ # @option options [String] :expected_bucket_owner
279
+ # The account id of the expected bucket owner. If the bucket is owned by
280
+ # a different account, the request will fail with an HTTP `403 (Access
281
+ # Denied)` error.
272
282
  # @return [Object]
273
283
  def complete(options = {})
274
284
  options = options.merge(
@@ -311,6 +321,7 @@ module Aws::S3
311
321
  #
312
322
  # parts = multipart_upload.parts({
313
323
  # request_payer: "requester", # accepts requester
324
+ # expected_bucket_owner: "AccountId",
314
325
  # })
315
326
  # @param [Hash] options ({})
316
327
  # @option options [String] :request_payer
@@ -323,6 +334,10 @@ module Aws::S3
323
334
  #
324
335
  #
325
336
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
337
+ # @option options [String] :expected_bucket_owner
338
+ # The account id of the expected bucket owner. If the bucket is owned by
339
+ # a different account, the request will fail with an HTTP `403 (Access
340
+ # Denied)` error.
326
341
  # @return [MultipartUploadPart::Collection]
327
342
  def parts(options = {})
328
343
  batches = Enumerator.new do |y|
@@ -221,11 +221,55 @@ module Aws::S3
221
221
  # copy_source_sse_customer_key: "CopySourceSSECustomerKey",
222
222
  # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5",
223
223
  # request_payer: "requester", # accepts requester
224
+ # expected_bucket_owner: "AccountId",
225
+ # expected_source_bucket_owner: "AccountId",
224
226
  # })
225
227
  # @param [Hash] options ({})
226
228
  # @option options [required, String] :copy_source
227
- # The name of the source bucket and key name of the source object,
228
- # separated by a slash (/). Must be URL-encoded.
229
+ # Specifies the source object for the copy operation. You specify the
230
+ # value in one of two formats, depending on whether you want to access
231
+ # the source object through an [access point][1]\:
232
+ #
233
+ # * For objects not accessed through an access point, specify the name
234
+ # of the source bucket and key of the source object, separated by a
235
+ # slash (/). For example, to copy the object `reports/january.pdf`
236
+ # from the bucket `awsexamplebucket`, use
237
+ # `awsexamplebucket/reports/january.pdf`. The value must be URL
238
+ # encoded.
239
+ #
240
+ # * For objects accessed through access points, specify the Amazon
241
+ # Resource Name (ARN) of the object as accessed through the access
242
+ # point, in the format
243
+ # `arn:aws:s3:<Region>:<account-id>:accesspoint/<access-point-name>/object/<key>`.
244
+ # For example, to copy the object `reports/january.pdf` through access
245
+ # point `my-access-point` owned by account `123456789012` in Region
246
+ # `us-west-2`, use the URL encoding of
247
+ # `arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf`.
248
+ # The value must be URL encoded.
249
+ #
250
+ # <note markdown="1"> Amazon S3 supports copy operations using access points only when the
251
+ # source and destination buckets are in the same AWS Region.
252
+ #
253
+ # </note>
254
+ #
255
+ # Alternatively, for objects accessed through Amazon S3 on Outposts,
256
+ # specify the ARN of the object as accessed in the format
257
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/object/<key>`.
258
+ # For example, to copy the object `reports/january.pdf` through
259
+ # outpost `my-outpost` owned by account `123456789012` in Region
260
+ # `us-west-2`, use the URL encoding of
261
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
262
+ # The value must be URL encoded.
263
+ #
264
+ # To copy a specific version of an object, append
265
+ # `?versionId=<version-id>` to the value (for example,
266
+ # `awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
267
+ # If you don't specify a version ID, Amazon S3 copies the latest
268
+ # version of the source object.
269
+ #
270
+ #
271
+ #
272
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html
229
273
  # @option options [String] :copy_source_if_match
230
274
  # Copies the object if its entity tag (ETag) matches the specified tag.
231
275
  # @option options [Time,DateTime,Date,Integer,String] :copy_source_if_modified_since
@@ -250,8 +294,8 @@ module Aws::S3
250
294
  # encrypting data. This value is used to store the object and then it is
251
295
  # discarded; Amazon S3 does not store the encryption key. The key must
252
296
  # be appropriate for use with the algorithm specified in the
253
- # `x-amz-server-side​-encryption​-customer-algorithm` header. This must
254
- # be the same encryption key specified in the initiate multipart upload
297
+ # `x-amz-server-side-encryption-customer-algorithm` header. This must be
298
+ # the same encryption key specified in the initiate multipart upload
255
299
  # request.
256
300
  # @option options [String] :sse_customer_key_md5
257
301
  # Specifies the 128-bit MD5 digest of the encryption key according to
@@ -278,6 +322,14 @@ module Aws::S3
278
322
  #
279
323
  #
280
324
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
325
+ # @option options [String] :expected_bucket_owner
326
+ # The account id of the expected destination bucket owner. If the
327
+ # destination bucket is owned by a different account, the request will
328
+ # fail with an HTTP `403 (Access Denied)` error.
329
+ # @option options [String] :expected_source_bucket_owner
330
+ # The account id of the expected source bucket owner. If the source
331
+ # bucket is owned by a different account, the request will fail with an
332
+ # HTTP `403 (Access Denied)` error.
281
333
  # @return [Types::UploadPartCopyOutput]
282
334
  def copy_from(options = {})
283
335
  options = options.merge(
@@ -300,6 +352,7 @@ module Aws::S3
300
352
  # sse_customer_key: "SSECustomerKey",
301
353
  # sse_customer_key_md5: "SSECustomerKeyMD5",
302
354
  # request_payer: "requester", # accepts requester
355
+ # expected_bucket_owner: "AccountId",
303
356
  # })
304
357
  # @param [Hash] options ({})
305
358
  # @option options [String, StringIO, File] :body
@@ -319,8 +372,8 @@ module Aws::S3
319
372
  # encrypting data. This value is used to store the object and then it is
320
373
  # discarded; Amazon S3 does not store the encryption key. The key must
321
374
  # be appropriate for use with the algorithm specified in the
322
- # `x-amz-server-side​-encryption​-customer-algorithm header`. This must
323
- # be the same encryption key specified in the initiate multipart upload
375
+ # `x-amz-server-side-encryption-customer-algorithm header`. This must be
376
+ # the same encryption key specified in the initiate multipart upload
324
377
  # request.
325
378
  # @option options [String] :sse_customer_key_md5
326
379
  # Specifies the 128-bit MD5 digest of the encryption key according to
@@ -336,6 +389,10 @@ module Aws::S3
336
389
  #
337
390
  #
338
391
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
392
+ # @option options [String] :expected_bucket_owner
393
+ # The account id of the expected bucket owner. If the bucket is owned by
394
+ # a different account, the request will fail with an HTTP `403 (Access
395
+ # Denied)` error.
339
396
  # @return [Types::UploadPartOutput]
340
397
  def upload(options = {})
341
398
  options = options.merge(
@@ -67,8 +67,8 @@ module Aws::S3
67
67
 
68
68
  # If the object is an archived object (an object whose storage class is
69
69
  # GLACIER), the response includes this header if either the archive
70
- # restoration is in progress (see RestoreObject or an archive copy is
71
- # already restored.
70
+ # restoration is in progress (see [RestoreObject][1] or an archive copy
71
+ # is already restored.
72
72
  #
73
73
  # If an archive copy is already restored, the header value indicates
74
74
  # when Amazon S3 is scheduled to delete the object copy. For example:
@@ -80,11 +80,12 @@ module Aws::S3
80
80
  # `ongoing-request="true"`.
81
81
  #
82
82
  # For more information about archiving objects, see [Transitioning
83
- # Objects: General Considerations][1].
83
+ # Objects: General Considerations][2].
84
84
  #
85
85
  #
86
86
  #
87
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-transition-general-considerations
87
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html
88
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-transition-general-considerations
88
89
  # @return [String]
89
90
  def restore
90
91
  data[:restore]
@@ -529,7 +530,7 @@ module Aws::S3
529
530
  # metadata_directive: "COPY", # accepts COPY, REPLACE
530
531
  # tagging_directive: "COPY", # accepts COPY, REPLACE
531
532
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
532
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
533
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
533
534
  # website_redirect_location: "WebsiteRedirectLocation",
534
535
  # sse_customer_algorithm: "SSECustomerAlgorithm",
535
536
  # sse_customer_key: "SSECustomerKey",
@@ -544,6 +545,8 @@ module Aws::S3
544
545
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
545
546
  # object_lock_retain_until_date: Time.now,
546
547
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
548
+ # expected_bucket_owner: "AccountId",
549
+ # expected_source_bucket_owner: "AccountId",
547
550
  # })
548
551
  # @param [Hash] options ({})
549
552
  # @option options [String] :acl
@@ -561,8 +564,50 @@ module Aws::S3
561
564
  # @option options [String] :content_type
562
565
  # A standard MIME type describing the format of the object data.
563
566
  # @option options [required, String] :copy_source
564
- # The name of the source bucket and key name of the source object,
565
- # separated by a slash (/). Must be URL-encoded.
567
+ # Specifies the source object for the copy operation. You specify the
568
+ # value in one of two formats, depending on whether you want to access
569
+ # the source object through an [access point][1]\:
570
+ #
571
+ # * For objects not accessed through an access point, specify the name
572
+ # of the source bucket and the key of the source object, separated by
573
+ # a slash (/). For example, to copy the object `reports/january.pdf`
574
+ # from the bucket `awsexamplebucket`, use
575
+ # `awsexamplebucket/reports/january.pdf`. The value must be URL
576
+ # encoded.
577
+ #
578
+ # * For objects accessed through access points, specify the Amazon
579
+ # Resource Name (ARN) of the object as accessed through the access
580
+ # point, in the format
581
+ # `arn:aws:s3:<Region>:<account-id>:accesspoint/<access-point-name>/object/<key>`.
582
+ # For example, to copy the object `reports/january.pdf` through access
583
+ # point `my-access-point` owned by account `123456789012` in Region
584
+ # `us-west-2`, use the URL encoding of
585
+ # `arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf`.
586
+ # The value must be URL encoded.
587
+ #
588
+ # <note markdown="1"> Amazon S3 supports copy operations using access points only when the
589
+ # source and destination buckets are in the same AWS Region.
590
+ #
591
+ # </note>
592
+ #
593
+ # Alternatively, for objects accessed through Amazon S3 on Outposts,
594
+ # specify the ARN of the object as accessed in the format
595
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/object/<key>`.
596
+ # For example, to copy the object `reports/january.pdf` through
597
+ # outpost `my-outpost` owned by account `123456789012` in Region
598
+ # `us-west-2`, use the URL encoding of
599
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
600
+ # The value must be URL encoded.
601
+ #
602
+ # To copy a specific version of an object, append
603
+ # `?versionId=<version-id>` to the value (for example,
604
+ # `awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
605
+ # If you don't specify a version ID, Amazon S3 copies the latest
606
+ # version of the source object.
607
+ #
608
+ #
609
+ #
610
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html
566
611
  # @option options [String] :copy_source_if_match
567
612
  # Copies the object if its entity tag (ETag) matches the specified tag.
568
613
  # @option options [Time,DateTime,Date,Integer,String] :copy_source_if_modified_since
@@ -609,7 +654,7 @@ module Aws::S3
609
654
  # encrypting data. This value is used to store the object and then it is
610
655
  # discarded; Amazon S3 does not store the encryption key. The key must
611
656
  # be appropriate for use with the algorithm specified in the
612
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
657
+ # `x-amz-server-side-encryption-customer-algorithm` header.
613
658
  # @option options [String] :sse_customer_key_md5
614
659
  # Specifies the 128-bit MD5 digest of the encryption key according to
615
660
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -661,6 +706,14 @@ module Aws::S3
661
706
  # expire.
662
707
  # @option options [String] :object_lock_legal_hold_status
663
708
  # Specifies whether you want to apply a Legal Hold to the copied object.
709
+ # @option options [String] :expected_bucket_owner
710
+ # The account id of the expected destination bucket owner. If the
711
+ # destination bucket is owned by a different account, the request will
712
+ # fail with an HTTP `403 (Access Denied)` error.
713
+ # @option options [String] :expected_source_bucket_owner
714
+ # The account id of the expected source bucket owner. If the source
715
+ # bucket is owned by a different account, the request will fail with an
716
+ # HTTP `403 (Access Denied)` error.
664
717
  # @return [Types::CopyObjectOutput]
665
718
  def copy_from(options = {})
666
719
  options = options.merge(
@@ -678,6 +731,7 @@ module Aws::S3
678
731
  # version_id: "ObjectVersionId",
679
732
  # request_payer: "requester", # accepts requester
680
733
  # bypass_governance_retention: false,
734
+ # expected_bucket_owner: "AccountId",
681
735
  # })
682
736
  # @param [Hash] options ({})
683
737
  # @option options [String] :mfa
@@ -700,6 +754,10 @@ module Aws::S3
700
754
  # @option options [Boolean] :bypass_governance_retention
701
755
  # Indicates whether S3 Object Lock should bypass Governance-mode
702
756
  # restrictions to process this operation.
757
+ # @option options [String] :expected_bucket_owner
758
+ # The account id of the expected bucket owner. If the bucket is owned by
759
+ # a different account, the request will fail with an HTTP `403 (Access
760
+ # Denied)` error.
703
761
  # @return [Types::DeleteObjectOutput]
704
762
  def delete(options = {})
705
763
  options = options.merge(
@@ -730,6 +788,7 @@ module Aws::S3
730
788
  # sse_customer_key_md5: "SSECustomerKeyMD5",
731
789
  # request_payer: "requester", # accepts requester
732
790
  # part_number: 1,
791
+ # expected_bucket_owner: "AccountId",
733
792
  # })
734
793
  # @param [Hash] options ({})
735
794
  # @option options [String] :if_match
@@ -779,7 +838,7 @@ module Aws::S3
779
838
  # encrypting data. This value is used to store the object and then it is
780
839
  # discarded; Amazon S3 does not store the encryption key. The key must
781
840
  # be appropriate for use with the algorithm specified in the
782
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
841
+ # `x-amz-server-side-encryption-customer-algorithm` header.
783
842
  # @option options [String] :sse_customer_key_md5
784
843
  # Specifies the 128-bit MD5 digest of the encryption key according to
785
844
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -799,6 +858,10 @@ module Aws::S3
799
858
  # between 1 and 10,000. Effectively performs a 'ranged' GET request
800
859
  # for the part specified. Useful for downloading just a part of an
801
860
  # object.
861
+ # @option options [String] :expected_bucket_owner
862
+ # The account id of the expected bucket owner. If the bucket is owned by
863
+ # a different account, the request will fail with an HTTP `403 (Access
864
+ # Denied)` error.
802
865
  # @return [Types::GetObjectOutput]
803
866
  def get(options = {}, &block)
804
867
  options = options.merge(
@@ -827,7 +890,7 @@ module Aws::S3
827
890
  # "MetadataKey" => "MetadataValue",
828
891
  # },
829
892
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
830
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
893
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
831
894
  # website_redirect_location: "WebsiteRedirectLocation",
832
895
  # sse_customer_algorithm: "SSECustomerAlgorithm",
833
896
  # sse_customer_key: "SSECustomerKey",
@@ -839,6 +902,7 @@ module Aws::S3
839
902
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
840
903
  # object_lock_retain_until_date: Time.now,
841
904
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
905
+ # expected_bucket_owner: "AccountId",
842
906
  # })
843
907
  # @param [Hash] options ({})
844
908
  # @option options [String] :acl
@@ -885,7 +949,7 @@ module Aws::S3
885
949
  # encrypting data. This value is used to store the object and then it is
886
950
  # discarded; Amazon S3 does not store the encryption key. The key must
887
951
  # be appropriate for use with the algorithm specified in the
888
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
952
+ # `x-amz-server-side-encryption-customer-algorithm` header.
889
953
  # @option options [String] :sse_customer_key_md5
890
954
  # Specifies the 128-bit MD5 digest of the encryption key according to
891
955
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -926,6 +990,10 @@ module Aws::S3
926
990
  # @option options [String] :object_lock_legal_hold_status
927
991
  # Specifies whether you want to apply a Legal Hold to the uploaded
928
992
  # object.
993
+ # @option options [String] :expected_bucket_owner
994
+ # The account id of the expected bucket owner. If the bucket is owned by
995
+ # a different account, the request will fail with an HTTP `403 (Access
996
+ # Denied)` error.
929
997
  # @return [MultipartUpload]
930
998
  def initiate_multipart_upload(options = {})
931
999
  options = options.merge(
@@ -962,7 +1030,7 @@ module Aws::S3
962
1030
  # "MetadataKey" => "MetadataValue",
963
1031
  # },
964
1032
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
965
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
1033
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
966
1034
  # website_redirect_location: "WebsiteRedirectLocation",
967
1035
  # sse_customer_algorithm: "SSECustomerAlgorithm",
968
1036
  # sse_customer_key: "SSECustomerKey",
@@ -974,6 +1042,7 @@ module Aws::S3
974
1042
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
975
1043
  # object_lock_retain_until_date: Time.now,
976
1044
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
1045
+ # expected_bucket_owner: "AccountId",
977
1046
  # })
978
1047
  # @param [Hash] options ({})
979
1048
  # @option options [String] :acl
@@ -1098,7 +1167,7 @@ module Aws::S3
1098
1167
  # encrypting data. This value is used to store the object and then it is
1099
1168
  # discarded; Amazon S3 does not store the encryption key. The key must
1100
1169
  # be appropriate for use with the algorithm specified in the
1101
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
1170
+ # `x-amz-server-side-encryption-customer-algorithm` header.
1102
1171
  # @option options [String] :sse_customer_key_md5
1103
1172
  # Specifies the 128-bit MD5 digest of the encryption key according to
1104
1173
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -1143,6 +1212,10 @@ module Aws::S3
1143
1212
  #
1144
1213
  #
1145
1214
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
1215
+ # @option options [String] :expected_bucket_owner
1216
+ # The account id of the expected bucket owner. If the bucket is owned by
1217
+ # a different account, the request will fail with an HTTP `403 (Access
1218
+ # Denied)` error.
1146
1219
  # @return [Types::PutObjectOutput]
1147
1220
  def put(options = {})
1148
1221
  options = options.merge(
@@ -1234,11 +1307,12 @@ module Aws::S3
1234
1307
  # value: "MetadataValue",
1235
1308
  # },
1236
1309
  # ],
1237
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
1310
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
1238
1311
  # },
1239
1312
  # },
1240
1313
  # },
1241
1314
  # request_payer: "requester", # accepts requester
1315
+ # expected_bucket_owner: "AccountId",
1242
1316
  # })
1243
1317
  # @param [Hash] options ({})
1244
1318
  # @option options [String] :version_id
@@ -1255,6 +1329,10 @@ module Aws::S3
1255
1329
  #
1256
1330
  #
1257
1331
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1332
+ # @option options [String] :expected_bucket_owner
1333
+ # The account id of the expected bucket owner. If the bucket is owned by
1334
+ # a different account, the request will fail with an HTTP `403 (Access
1335
+ # Denied)` error.
1258
1336
  # @return [Types::RestoreObjectOutput]
1259
1337
  def restore_object(options = {})
1260
1338
  options = options.merge(
@@ -1377,6 +1455,7 @@ module Aws::S3
1377
1455
  # mfa: "MFA",
1378
1456
  # request_payer: "requester", # accepts requester
1379
1457
  # bypass_governance_retention: false,
1458
+ # expected_bucket_owner: "AccountId",
1380
1459
  # })
1381
1460
  # @param options ({})
1382
1461
  # @option options [String] :mfa
@@ -1398,6 +1477,10 @@ module Aws::S3
1398
1477
  # Specifies whether you want to delete this object even if it has a
1399
1478
  # Governance-type Object Lock in place. You must have sufficient
1400
1479
  # permissions to perform this operation.
1480
+ # @option options [String] :expected_bucket_owner
1481
+ # The account id of the expected bucket owner. If the bucket is owned by
1482
+ # a different account, the request will fail with an HTTP `403 (Access
1483
+ # Denied)` error.
1401
1484
  # @return [void]
1402
1485
  def batch_delete!(options = {})
1403
1486
  batch_enum.each do |batch|