aws-sdk-s3 1.79.0 → 1.82.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 (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|