aws-sdk-s3 1.75.0 → 1.83.1

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 (59) 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 +56 -7
  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 +2127 -678
  18. data/lib/aws-sdk-s3/client_api.rb +148 -0
  19. data/lib/aws-sdk-s3/customizations/bucket.rb +7 -4
  20. data/lib/aws-sdk-s3/customizations/object.rb +4 -3
  21. data/lib/aws-sdk-s3/encryption.rb +2 -0
  22. data/lib/aws-sdk-s3/encryption/client.rb +11 -0
  23. data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +64 -29
  24. data/lib/aws-sdk-s3/encryption/default_cipher_provider.rb +41 -5
  25. data/lib/aws-sdk-s3/encryption/encrypt_handler.rb +5 -5
  26. data/lib/aws-sdk-s3/encryption/io_decrypter.rb +7 -6
  27. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +32 -3
  28. data/lib/aws-sdk-s3/encryption/utils.rb +23 -0
  29. data/lib/aws-sdk-s3/encryptionV2/client.rb +201 -23
  30. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +40 -12
  31. data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +77 -10
  32. data/lib/aws-sdk-s3/encryptionV2/default_key_provider.rb +2 -0
  33. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +7 -4
  34. data/lib/aws-sdk-s3/encryptionV2/errors.rb +24 -0
  35. data/lib/aws-sdk-s3/encryptionV2/io_auth_decrypter.rb +2 -0
  36. data/lib/aws-sdk-s3/encryptionV2/io_decrypter.rb +2 -0
  37. data/lib/aws-sdk-s3/encryptionV2/io_encrypter.rb +2 -0
  38. data/lib/aws-sdk-s3/encryptionV2/key_provider.rb +2 -0
  39. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +90 -20
  40. data/lib/aws-sdk-s3/encryptionV2/materials.rb +2 -0
  41. data/lib/aws-sdk-s3/encryptionV2/utils.rb +2 -15
  42. data/lib/aws-sdk-s3/encryption_v2.rb +4 -1
  43. data/lib/aws-sdk-s3/file_uploader.rb +1 -1
  44. data/lib/aws-sdk-s3/multipart_upload.rb +15 -0
  45. data/lib/aws-sdk-s3/multipart_upload_part.rb +64 -7
  46. data/lib/aws-sdk-s3/object.rb +158 -19
  47. data/lib/aws-sdk-s3/object_acl.rb +13 -0
  48. data/lib/aws-sdk-s3/object_summary.rb +171 -17
  49. data/lib/aws-sdk-s3/object_version.rb +27 -3
  50. data/lib/aws-sdk-s3/plugins/arn.rb +187 -0
  51. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +0 -2
  52. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +1 -1
  53. data/lib/aws-sdk-s3/plugins/s3_signer.rb +29 -7
  54. data/lib/aws-sdk-s3/presigned_post.rb +1 -0
  55. data/lib/aws-sdk-s3/presigner.rb +3 -2
  56. data/lib/aws-sdk-s3/resource.rb +1 -1
  57. data/lib/aws-sdk-s3/types.rb +1616 -222
  58. metadata +7 -5
  59. data/lib/aws-sdk-s3/plugins/bucket_arn.rb +0 -212
@@ -228,6 +228,7 @@ module Aws::S3
228
228
  # grant_write_acp: "GrantWriteACP",
229
229
  # request_payer: "requester", # accepts requester
230
230
  # version_id: "ObjectVersionId",
231
+ # expected_bucket_owner: "AccountId",
231
232
  # })
232
233
  # @param [Hash] options ({})
233
234
  # @option options [String] :acl
@@ -252,15 +253,23 @@ module Aws::S3
252
253
  # @option options [String] :grant_full_control
253
254
  # Allows grantee the read, write, read ACP, and write ACP permissions on
254
255
  # the bucket.
256
+ #
257
+ # This action is not supported by Amazon S3 on Outposts.
255
258
  # @option options [String] :grant_read
256
259
  # Allows grantee to list the objects in the bucket.
260
+ #
261
+ # This action is not supported by Amazon S3 on Outposts.
257
262
  # @option options [String] :grant_read_acp
258
263
  # Allows grantee to read the bucket ACL.
264
+ #
265
+ # This action is not supported by Amazon S3 on Outposts.
259
266
  # @option options [String] :grant_write
260
267
  # Allows grantee to create, overwrite, and delete any object in the
261
268
  # bucket.
262
269
  # @option options [String] :grant_write_acp
263
270
  # Allows grantee to write the ACL for the applicable bucket.
271
+ #
272
+ # This action is not supported by Amazon S3 on Outposts.
264
273
  # @option options [String] :request_payer
265
274
  # Confirms that the requester knows that they will be charged for the
266
275
  # request. Bucket owners need not specify this parameter in their
@@ -273,6 +282,10 @@ module Aws::S3
273
282
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
274
283
  # @option options [String] :version_id
275
284
  # VersionId used to reference a specific version of the object.
285
+ # @option options [String] :expected_bucket_owner
286
+ # The account id of the expected bucket owner. If the bucket is owned by
287
+ # a different account, the request will fail with an HTTP `403 (Access
288
+ # Denied)` error.
276
289
  # @return [Types::PutObjectAclOutput]
277
290
  def put(options = {})
278
291
  options = options.merge(
@@ -48,8 +48,24 @@ module Aws::S3
48
48
  data[:last_modified]
49
49
  end
50
50
 
51
- # The entity tag is an MD5 hash of the object. ETag reflects only
52
- # changes to the contents of an object, not its metadata.
51
+ # The entity tag is a hash of the object. The ETag reflects changes only
52
+ # to the contents of an object, not its metadata. The ETag may or may
53
+ # not be an MD5 digest of the object data. Whether or not it is depends
54
+ # on how the object was created and how it is encrypted as described
55
+ # below:
56
+ #
57
+ # * Objects created by the PUT Object, POST Object, or Copy operation,
58
+ # or through the AWS Management Console, and are encrypted by SSE-S3
59
+ # or plaintext, have ETags that are an MD5 digest of their object
60
+ # data.
61
+ #
62
+ # * Objects created by the PUT Object, POST Object, or Copy operation,
63
+ # or through the AWS Management Console, and are encrypted by SSE-C or
64
+ # SSE-KMS, have ETags that are not an MD5 digest of their object data.
65
+ #
66
+ # * If an object is created by either the Multipart Upload or Part Copy
67
+ # operation, the ETag is not an MD5 digest, regardless of the method
68
+ # of encryption.
53
69
  # @return [String]
54
70
  def etag
55
71
  data[:etag]
@@ -279,7 +295,7 @@ module Aws::S3
279
295
  # metadata_directive: "COPY", # accepts COPY, REPLACE
280
296
  # tagging_directive: "COPY", # accepts COPY, REPLACE
281
297
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
282
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
298
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
283
299
  # website_redirect_location: "WebsiteRedirectLocation",
284
300
  # sse_customer_algorithm: "SSECustomerAlgorithm",
285
301
  # sse_customer_key: "SSECustomerKey",
@@ -294,10 +310,14 @@ module Aws::S3
294
310
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
295
311
  # object_lock_retain_until_date: Time.now,
296
312
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
313
+ # expected_bucket_owner: "AccountId",
314
+ # expected_source_bucket_owner: "AccountId",
297
315
  # })
298
316
  # @param [Hash] options ({})
299
317
  # @option options [String] :acl
300
318
  # The canned ACL to apply to the object.
319
+ #
320
+ # This action is not supported by Amazon S3 on Outposts.
301
321
  # @option options [String] :cache_control
302
322
  # Specifies caching behavior along the request/reply chain.
303
323
  # @option options [String] :content_disposition
@@ -311,8 +331,50 @@ module Aws::S3
311
331
  # @option options [String] :content_type
312
332
  # A standard MIME type describing the format of the object data.
313
333
  # @option options [required, String] :copy_source
314
- # The name of the source bucket and key name of the source object,
315
- # separated by a slash (/). Must be URL-encoded.
334
+ # Specifies the source object for the copy operation. You specify the
335
+ # value in one of two formats, depending on whether you want to access
336
+ # the source object through an [access point][1]\:
337
+ #
338
+ # * For objects not accessed through an access point, specify the name
339
+ # of the source bucket and the key of the source object, separated by
340
+ # a slash (/). For example, to copy the object `reports/january.pdf`
341
+ # from the bucket `awsexamplebucket`, use
342
+ # `awsexamplebucket/reports/january.pdf`. The value must be URL
343
+ # encoded.
344
+ #
345
+ # * For objects accessed through access points, specify the Amazon
346
+ # Resource Name (ARN) of the object as accessed through the access
347
+ # point, in the format
348
+ # `arn:aws:s3:<Region>:<account-id>:accesspoint/<access-point-name>/object/<key>`.
349
+ # For example, to copy the object `reports/january.pdf` through access
350
+ # point `my-access-point` owned by account `123456789012` in Region
351
+ # `us-west-2`, use the URL encoding of
352
+ # `arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf`.
353
+ # The value must be URL encoded.
354
+ #
355
+ # <note markdown="1"> Amazon S3 supports copy operations using access points only when the
356
+ # source and destination buckets are in the same AWS Region.
357
+ #
358
+ # </note>
359
+ #
360
+ # Alternatively, for objects accessed through Amazon S3 on Outposts,
361
+ # specify the ARN of the object as accessed in the format
362
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/object/<key>`.
363
+ # For example, to copy the object `reports/january.pdf` through
364
+ # outpost `my-outpost` owned by account `123456789012` in Region
365
+ # `us-west-2`, use the URL encoding of
366
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
367
+ # The value must be URL encoded.
368
+ #
369
+ # To copy a specific version of an object, append
370
+ # `?versionId=<version-id>` to the value (for example,
371
+ # `awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
372
+ # If you don't specify a version ID, Amazon S3 copies the latest
373
+ # version of the source object.
374
+ #
375
+ #
376
+ #
377
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html
316
378
  # @option options [String] :copy_source_if_match
317
379
  # Copies the object if its entity tag (ETag) matches the specified tag.
318
380
  # @option options [Time,DateTime,Date,Integer,String] :copy_source_if_modified_since
@@ -328,12 +390,20 @@ module Aws::S3
328
390
  # @option options [String] :grant_full_control
329
391
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
330
392
  # object.
393
+ #
394
+ # This action is not supported by Amazon S3 on Outposts.
331
395
  # @option options [String] :grant_read
332
396
  # Allows grantee to read the object data and its metadata.
397
+ #
398
+ # This action is not supported by Amazon S3 on Outposts.
333
399
  # @option options [String] :grant_read_acp
334
400
  # Allows grantee to read the object ACL.
401
+ #
402
+ # This action is not supported by Amazon S3 on Outposts.
335
403
  # @option options [String] :grant_write_acp
336
404
  # Allows grantee to write the ACL for the applicable object.
405
+ #
406
+ # This action is not supported by Amazon S3 on Outposts.
337
407
  # @option options [Hash<String,String>] :metadata
338
408
  # A map of metadata to store with the object in S3.
339
409
  # @option options [String] :metadata_directive
@@ -346,7 +416,16 @@ module Aws::S3
346
416
  # The server-side encryption algorithm used when storing this object in
347
417
  # Amazon S3 (for example, AES256, aws:kms).
348
418
  # @option options [String] :storage_class
349
- # The type of storage to use for the object. Defaults to 'STANDARD'.
419
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
420
+ # created objects. The STANDARD storage class provides high durability
421
+ # and high availability. Depending on performance needs, you can specify
422
+ # a different Storage Class. Amazon S3 on Outposts only uses the
423
+ # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
424
+ # in the *Amazon S3 Service Developer Guide*.
425
+ #
426
+ #
427
+ #
428
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
350
429
  # @option options [String] :website_redirect_location
351
430
  # If the bucket is configured as a website, redirects requests for this
352
431
  # object to another object in the same bucket or to an external URL.
@@ -359,7 +438,7 @@ module Aws::S3
359
438
  # encrypting data. This value is used to store the object and then it is
360
439
  # discarded; Amazon S3 does not store the encryption key. The key must
361
440
  # be appropriate for use with the algorithm specified in the
362
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
441
+ # `x-amz-server-side-encryption-customer-algorithm` header.
363
442
  # @option options [String] :sse_customer_key_md5
364
443
  # Specifies the 128-bit MD5 digest of the encryption key according to
365
444
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -411,6 +490,14 @@ module Aws::S3
411
490
  # expire.
412
491
  # @option options [String] :object_lock_legal_hold_status
413
492
  # Specifies whether you want to apply a Legal Hold to the copied object.
493
+ # @option options [String] :expected_bucket_owner
494
+ # The account id of the expected destination bucket owner. If the
495
+ # destination bucket is owned by a different account, the request will
496
+ # fail with an HTTP `403 (Access Denied)` error.
497
+ # @option options [String] :expected_source_bucket_owner
498
+ # The account id of the expected source bucket owner. If the source
499
+ # bucket is owned by a different account, the request will fail with an
500
+ # HTTP `403 (Access Denied)` error.
414
501
  # @return [Types::CopyObjectOutput]
415
502
  def copy_from(options = {})
416
503
  options = options.merge(
@@ -428,6 +515,7 @@ module Aws::S3
428
515
  # version_id: "ObjectVersionId",
429
516
  # request_payer: "requester", # accepts requester
430
517
  # bypass_governance_retention: false,
518
+ # expected_bucket_owner: "AccountId",
431
519
  # })
432
520
  # @param [Hash] options ({})
433
521
  # @option options [String] :mfa
@@ -450,6 +538,10 @@ module Aws::S3
450
538
  # @option options [Boolean] :bypass_governance_retention
451
539
  # Indicates whether S3 Object Lock should bypass Governance-mode
452
540
  # restrictions to process this operation.
541
+ # @option options [String] :expected_bucket_owner
542
+ # The account id of the expected bucket owner. If the bucket is owned by
543
+ # a different account, the request will fail with an HTTP `403 (Access
544
+ # Denied)` error.
453
545
  # @return [Types::DeleteObjectOutput]
454
546
  def delete(options = {})
455
547
  options = options.merge(
@@ -480,6 +572,7 @@ module Aws::S3
480
572
  # sse_customer_key_md5: "SSECustomerKeyMD5",
481
573
  # request_payer: "requester", # accepts requester
482
574
  # part_number: 1,
575
+ # expected_bucket_owner: "AccountId",
483
576
  # })
484
577
  # @param [Hash] options ({})
485
578
  # @option options [String] :if_match
@@ -529,7 +622,7 @@ module Aws::S3
529
622
  # encrypting data. This value is used to store the object and then it is
530
623
  # discarded; Amazon S3 does not store the encryption key. The key must
531
624
  # be appropriate for use with the algorithm specified in the
532
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
625
+ # `x-amz-server-side-encryption-customer-algorithm` header.
533
626
  # @option options [String] :sse_customer_key_md5
534
627
  # Specifies the 128-bit MD5 digest of the encryption key according to
535
628
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -549,6 +642,10 @@ module Aws::S3
549
642
  # between 1 and 10,000. Effectively performs a 'ranged' GET request
550
643
  # for the part specified. Useful for downloading just a part of an
551
644
  # object.
645
+ # @option options [String] :expected_bucket_owner
646
+ # The account id of the expected bucket owner. If the bucket is owned by
647
+ # a different account, the request will fail with an HTTP `403 (Access
648
+ # Denied)` error.
552
649
  # @return [Types::GetObjectOutput]
553
650
  def get(options = {}, &block)
554
651
  options = options.merge(
@@ -577,7 +674,7 @@ module Aws::S3
577
674
  # "MetadataKey" => "MetadataValue",
578
675
  # },
579
676
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
580
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
677
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
581
678
  # website_redirect_location: "WebsiteRedirectLocation",
582
679
  # sse_customer_algorithm: "SSECustomerAlgorithm",
583
680
  # sse_customer_key: "SSECustomerKey",
@@ -589,10 +686,13 @@ module Aws::S3
589
686
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
590
687
  # object_lock_retain_until_date: Time.now,
591
688
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
689
+ # expected_bucket_owner: "AccountId",
592
690
  # })
593
691
  # @param [Hash] options ({})
594
692
  # @option options [String] :acl
595
693
  # The canned ACL to apply to the object.
694
+ #
695
+ # This action is not supported by Amazon S3 on Outposts.
596
696
  # @option options [String] :cache_control
597
697
  # Specifies caching behavior along the request/reply chain.
598
698
  # @option options [String] :content_disposition
@@ -610,19 +710,36 @@ module Aws::S3
610
710
  # @option options [String] :grant_full_control
611
711
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
612
712
  # object.
713
+ #
714
+ # This action is not supported by Amazon S3 on Outposts.
613
715
  # @option options [String] :grant_read
614
716
  # Allows grantee to read the object data and its metadata.
717
+ #
718
+ # This action is not supported by Amazon S3 on Outposts.
615
719
  # @option options [String] :grant_read_acp
616
720
  # Allows grantee to read the object ACL.
721
+ #
722
+ # This action is not supported by Amazon S3 on Outposts.
617
723
  # @option options [String] :grant_write_acp
618
724
  # Allows grantee to write the ACL for the applicable object.
725
+ #
726
+ # This action is not supported by Amazon S3 on Outposts.
619
727
  # @option options [Hash<String,String>] :metadata
620
728
  # A map of metadata to store with the object in S3.
621
729
  # @option options [String] :server_side_encryption
622
730
  # The server-side encryption algorithm used when storing this object in
623
731
  # Amazon S3 (for example, AES256, aws:kms).
624
732
  # @option options [String] :storage_class
625
- # The type of storage to use for the object. Defaults to 'STANDARD'.
733
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
734
+ # created objects. The STANDARD storage class provides high durability
735
+ # and high availability. Depending on performance needs, you can specify
736
+ # a different Storage Class. Amazon S3 on Outposts only uses the
737
+ # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
738
+ # in the *Amazon S3 Service Developer Guide*.
739
+ #
740
+ #
741
+ #
742
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
626
743
  # @option options [String] :website_redirect_location
627
744
  # If the bucket is configured as a website, redirects requests for this
628
745
  # object to another object in the same bucket or to an external URL.
@@ -635,7 +752,7 @@ module Aws::S3
635
752
  # encrypting data. This value is used to store the object and then it is
636
753
  # discarded; Amazon S3 does not store the encryption key. The key must
637
754
  # be appropriate for use with the algorithm specified in the
638
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
755
+ # `x-amz-server-side-encryption-customer-algorithm` header.
639
756
  # @option options [String] :sse_customer_key_md5
640
757
  # Specifies the 128-bit MD5 digest of the encryption key according to
641
758
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -676,6 +793,10 @@ module Aws::S3
676
793
  # @option options [String] :object_lock_legal_hold_status
677
794
  # Specifies whether you want to apply a Legal Hold to the uploaded
678
795
  # object.
796
+ # @option options [String] :expected_bucket_owner
797
+ # The account id of the expected bucket owner. If the bucket is owned by
798
+ # a different account, the request will fail with an HTTP `403 (Access
799
+ # Denied)` error.
679
800
  # @return [MultipartUpload]
680
801
  def initiate_multipart_upload(options = {})
681
802
  options = options.merge(
@@ -712,7 +833,7 @@ module Aws::S3
712
833
  # "MetadataKey" => "MetadataValue",
713
834
  # },
714
835
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
715
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
836
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
716
837
  # website_redirect_location: "WebsiteRedirectLocation",
717
838
  # sse_customer_algorithm: "SSECustomerAlgorithm",
718
839
  # sse_customer_key: "SSECustomerKey",
@@ -724,16 +845,19 @@ module Aws::S3
724
845
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
725
846
  # object_lock_retain_until_date: Time.now,
726
847
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
848
+ # expected_bucket_owner: "AccountId",
727
849
  # })
728
850
  # @param [Hash] options ({})
729
851
  # @option options [String] :acl
730
852
  # The canned ACL to apply to the object. For more information, see
731
853
  # [Canned ACL][1].
732
854
  #
855
+ # This action is not supported by Amazon S3 on Outposts.
856
+ #
733
857
  #
734
858
  #
735
859
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
736
- # @option options [String, IO] :body
860
+ # @option options [String, StringIO, File] :body
737
861
  # Object data.
738
862
  # @option options [String] :cache_control
739
863
  # Can be used to specify caching behavior along the request/reply chain.
@@ -801,20 +925,36 @@ module Aws::S3
801
925
  # @option options [String] :grant_full_control
802
926
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
803
927
  # object.
928
+ #
929
+ # This action is not supported by Amazon S3 on Outposts.
804
930
  # @option options [String] :grant_read
805
931
  # Allows grantee to read the object data and its metadata.
932
+ #
933
+ # This action is not supported by Amazon S3 on Outposts.
806
934
  # @option options [String] :grant_read_acp
807
935
  # Allows grantee to read the object ACL.
936
+ #
937
+ # This action is not supported by Amazon S3 on Outposts.
808
938
  # @option options [String] :grant_write_acp
809
939
  # Allows grantee to write the ACL for the applicable object.
940
+ #
941
+ # This action is not supported by Amazon S3 on Outposts.
810
942
  # @option options [Hash<String,String>] :metadata
811
943
  # A map of metadata to store with the object in S3.
812
944
  # @option options [String] :server_side_encryption
813
945
  # The server-side encryption algorithm used when storing this object in
814
946
  # Amazon S3 (for example, AES256, aws:kms).
815
947
  # @option options [String] :storage_class
816
- # If you don't specify, S3 Standard is the default storage class.
817
- # Amazon S3 supports other storage classes.
948
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
949
+ # created objects. The STANDARD storage class provides high durability
950
+ # and high availability. Depending on performance needs, you can specify
951
+ # a different Storage Class. Amazon S3 on Outposts only uses the
952
+ # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
953
+ # in the *Amazon S3 Service Developer Guide*.
954
+ #
955
+ #
956
+ #
957
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
818
958
  # @option options [String] :website_redirect_location
819
959
  # If the bucket is configured as a website, redirects requests for this
820
960
  # object to another object in the same bucket or to an external URL.
@@ -848,7 +988,7 @@ module Aws::S3
848
988
  # encrypting data. This value is used to store the object and then it is
849
989
  # discarded; Amazon S3 does not store the encryption key. The key must
850
990
  # be appropriate for use with the algorithm specified in the
851
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
991
+ # `x-amz-server-side-encryption-customer-algorithm` header.
852
992
  # @option options [String] :sse_customer_key_md5
853
993
  # Specifies the 128-bit MD5 digest of the encryption key according to
854
994
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -893,6 +1033,10 @@ module Aws::S3
893
1033
  #
894
1034
  #
895
1035
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
1036
+ # @option options [String] :expected_bucket_owner
1037
+ # The account id of the expected bucket owner. If the bucket is owned by
1038
+ # a different account, the request will fail with an HTTP `403 (Access
1039
+ # Denied)` error.
896
1040
  # @return [Types::PutObjectOutput]
897
1041
  def put(options = {})
898
1042
  options = options.merge(
@@ -984,11 +1128,12 @@ module Aws::S3
984
1128
  # value: "MetadataValue",
985
1129
  # },
986
1130
  # ],
987
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
1131
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
988
1132
  # },
989
1133
  # },
990
1134
  # },
991
1135
  # request_payer: "requester", # accepts requester
1136
+ # expected_bucket_owner: "AccountId",
992
1137
  # })
993
1138
  # @param [Hash] options ({})
994
1139
  # @option options [String] :version_id
@@ -1005,6 +1150,10 @@ module Aws::S3
1005
1150
  #
1006
1151
  #
1007
1152
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1153
+ # @option options [String] :expected_bucket_owner
1154
+ # The account id of the expected bucket owner. If the bucket is owned by
1155
+ # a different account, the request will fail with an HTTP `403 (Access
1156
+ # Denied)` error.
1008
1157
  # @return [Types::RestoreObjectOutput]
1009
1158
  def restore_object(options = {})
1010
1159
  options = options.merge(
@@ -1136,6 +1285,7 @@ module Aws::S3
1136
1285
  # mfa: "MFA",
1137
1286
  # request_payer: "requester", # accepts requester
1138
1287
  # bypass_governance_retention: false,
1288
+ # expected_bucket_owner: "AccountId",
1139
1289
  # })
1140
1290
  # @param options ({})
1141
1291
  # @option options [String] :mfa
@@ -1157,6 +1307,10 @@ module Aws::S3
1157
1307
  # Specifies whether you want to delete this object even if it has a
1158
1308
  # Governance-type Object Lock in place. You must have sufficient
1159
1309
  # permissions to perform this operation.
1310
+ # @option options [String] :expected_bucket_owner
1311
+ # The account id of the expected bucket owner. If the bucket is owned by
1312
+ # a different account, the request will fail with an HTTP `403 (Access
1313
+ # Denied)` error.
1160
1314
  # @return [void]
1161
1315
  def batch_delete!(options = {})
1162
1316
  batch_enum.each do |batch|