aws-sdk-s3 1.61.2 → 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 (94) hide show
  1. checksums.yaml +5 -5
  2. data/lib/aws-sdk-s3.rb +5 -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 +61 -10
  6. data/lib/aws-sdk-s3/bucket_acl.rb +7 -0
  7. data/lib/aws-sdk-s3/bucket_cors.rb +15 -2
  8. data/lib/aws-sdk-s3/bucket_lifecycle.rb +14 -1
  9. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +14 -1
  10. data/lib/aws-sdk-s3/bucket_logging.rb +7 -0
  11. data/lib/aws-sdk-s3/bucket_notification.rb +7 -0
  12. data/lib/aws-sdk-s3/bucket_policy.rb +14 -1
  13. data/lib/aws-sdk-s3/bucket_region_cache.rb +2 -0
  14. data/lib/aws-sdk-s3/bucket_request_payment.rb +7 -0
  15. data/lib/aws-sdk-s3/bucket_tagging.rb +14 -1
  16. data/lib/aws-sdk-s3/bucket_versioning.rb +17 -0
  17. data/lib/aws-sdk-s3/bucket_website.rb +18 -3
  18. data/lib/aws-sdk-s3/client.rb +2521 -1187
  19. data/lib/aws-sdk-s3/client_api.rb +188 -18
  20. data/lib/aws-sdk-s3/customizations.rb +3 -0
  21. data/lib/aws-sdk-s3/customizations/bucket.rb +11 -4
  22. data/lib/aws-sdk-s3/customizations/multipart_upload.rb +2 -0
  23. data/lib/aws-sdk-s3/customizations/object.rb +23 -5
  24. data/lib/aws-sdk-s3/customizations/object_summary.rb +5 -0
  25. data/lib/aws-sdk-s3/customizations/types/list_object_versions_output.rb +2 -0
  26. data/lib/aws-sdk-s3/encryption.rb +4 -0
  27. data/lib/aws-sdk-s3/encryption/client.rb +18 -5
  28. data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +72 -26
  29. data/lib/aws-sdk-s3/encryption/default_cipher_provider.rb +43 -5
  30. data/lib/aws-sdk-s3/encryption/default_key_provider.rb +2 -0
  31. data/lib/aws-sdk-s3/encryption/encrypt_handler.rb +13 -2
  32. data/lib/aws-sdk-s3/encryption/errors.rb +2 -0
  33. data/lib/aws-sdk-s3/encryption/io_auth_decrypter.rb +2 -0
  34. data/lib/aws-sdk-s3/encryption/io_decrypter.rb +11 -3
  35. data/lib/aws-sdk-s3/encryption/io_encrypter.rb +2 -0
  36. data/lib/aws-sdk-s3/encryption/key_provider.rb +2 -0
  37. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +34 -3
  38. data/lib/aws-sdk-s3/encryption/materials.rb +8 -6
  39. data/lib/aws-sdk-s3/encryption/utils.rb +25 -0
  40. data/lib/aws-sdk-s3/encryptionV2/client.rb +566 -0
  41. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +226 -0
  42. data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +170 -0
  43. data/lib/aws-sdk-s3/encryptionV2/default_key_provider.rb +40 -0
  44. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +69 -0
  45. data/lib/aws-sdk-s3/encryptionV2/errors.rb +37 -0
  46. data/lib/aws-sdk-s3/encryptionV2/io_auth_decrypter.rb +58 -0
  47. data/lib/aws-sdk-s3/encryptionV2/io_decrypter.rb +37 -0
  48. data/lib/aws-sdk-s3/encryptionV2/io_encrypter.rb +73 -0
  49. data/lib/aws-sdk-s3/encryptionV2/key_provider.rb +31 -0
  50. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +169 -0
  51. data/lib/aws-sdk-s3/encryptionV2/materials.rb +60 -0
  52. data/lib/aws-sdk-s3/encryptionV2/utils.rb +103 -0
  53. data/lib/aws-sdk-s3/encryption_v2.rb +23 -0
  54. data/lib/aws-sdk-s3/errors.rb +2 -0
  55. data/lib/aws-sdk-s3/event_streams.rb +7 -0
  56. data/lib/aws-sdk-s3/file_downloader.rb +10 -8
  57. data/lib/aws-sdk-s3/file_part.rb +2 -0
  58. data/lib/aws-sdk-s3/file_uploader.rb +14 -1
  59. data/lib/aws-sdk-s3/legacy_signer.rb +2 -0
  60. data/lib/aws-sdk-s3/multipart_file_uploader.rb +39 -2
  61. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +3 -1
  62. data/lib/aws-sdk-s3/multipart_upload.rb +18 -1
  63. data/lib/aws-sdk-s3/multipart_upload_error.rb +2 -0
  64. data/lib/aws-sdk-s3/multipart_upload_part.rb +66 -7
  65. data/lib/aws-sdk-s3/object.rb +174 -23
  66. data/lib/aws-sdk-s3/object_acl.rb +15 -0
  67. data/lib/aws-sdk-s3/object_copier.rb +2 -0
  68. data/lib/aws-sdk-s3/object_multipart_copier.rb +2 -0
  69. data/lib/aws-sdk-s3/object_summary.rb +185 -20
  70. data/lib/aws-sdk-s3/object_version.rb +44 -4
  71. data/lib/aws-sdk-s3/plugins/accelerate.rb +29 -38
  72. data/lib/aws-sdk-s3/plugins/arn.rb +187 -0
  73. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +2 -2
  74. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +3 -1
  75. data/lib/aws-sdk-s3/plugins/dualstack.rb +5 -1
  76. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +3 -4
  77. data/lib/aws-sdk-s3/plugins/get_bucket_location_fix.rb +2 -0
  78. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +11 -3
  79. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +3 -1
  80. data/lib/aws-sdk-s3/plugins/location_constraint.rb +2 -0
  81. data/lib/aws-sdk-s3/plugins/md5s.rb +26 -25
  82. data/lib/aws-sdk-s3/plugins/redirects.rb +2 -0
  83. data/lib/aws-sdk-s3/plugins/s3_host_id.rb +2 -0
  84. data/lib/aws-sdk-s3/plugins/s3_signer.rb +31 -7
  85. data/lib/aws-sdk-s3/plugins/sse_cpk.rb +3 -1
  86. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +118 -0
  87. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -0
  88. data/lib/aws-sdk-s3/presigned_post.rb +68 -32
  89. data/lib/aws-sdk-s3/presigner.rb +102 -34
  90. data/lib/aws-sdk-s3/resource.rb +4 -2
  91. data/lib/aws-sdk-s3/types.rb +2016 -256
  92. data/lib/aws-sdk-s3/waiters.rb +2 -0
  93. metadata +23 -6
  94. data/lib/aws-sdk-s3/plugins/bucket_arn.rb +0 -211
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -65,8 +67,8 @@ module Aws::S3
65
67
 
66
68
  # If the object is an archived object (an object whose storage class is
67
69
  # GLACIER), the response includes this header if either the archive
68
- # restoration is in progress (see RestoreObject or an archive copy is
69
- # already restored.
70
+ # restoration is in progress (see [RestoreObject][1] or an archive copy
71
+ # is already restored.
70
72
  #
71
73
  # If an archive copy is already restored, the header value indicates
72
74
  # when Amazon S3 is scheduled to delete the object copy. For example:
@@ -78,11 +80,12 @@ module Aws::S3
78
80
  # `ongoing-request="true"`.
79
81
  #
80
82
  # For more information about archiving objects, see [Transitioning
81
- # Objects: General Considerations][1].
83
+ # Objects: General Considerations][2].
82
84
  #
83
85
  #
84
86
  #
85
- # [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
86
89
  # @return [String]
87
90
  def restore
88
91
  data[:restore]
@@ -216,7 +219,8 @@ module Aws::S3
216
219
  end
217
220
 
218
221
  # Provides storage class information of the object. Amazon S3 returns
219
- # this header for all objects except for Standard storage class objects.
222
+ # this header for all objects except for S3 Standard storage class
223
+ # objects.
220
224
  #
221
225
  # For more information, see [Storage Classes][1].
222
226
  #
@@ -526,7 +530,7 @@ module Aws::S3
526
530
  # metadata_directive: "COPY", # accepts COPY, REPLACE
527
531
  # tagging_directive: "COPY", # accepts COPY, REPLACE
528
532
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
529
- # 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
530
534
  # website_redirect_location: "WebsiteRedirectLocation",
531
535
  # sse_customer_algorithm: "SSECustomerAlgorithm",
532
536
  # sse_customer_key: "SSECustomerKey",
@@ -541,10 +545,14 @@ module Aws::S3
541
545
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
542
546
  # object_lock_retain_until_date: Time.now,
543
547
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
548
+ # expected_bucket_owner: "AccountId",
549
+ # expected_source_bucket_owner: "AccountId",
544
550
  # })
545
551
  # @param [Hash] options ({})
546
552
  # @option options [String] :acl
547
553
  # The canned ACL to apply to the object.
554
+ #
555
+ # This action is not supported by Amazon S3 on Outposts.
548
556
  # @option options [String] :cache_control
549
557
  # Specifies caching behavior along the request/reply chain.
550
558
  # @option options [String] :content_disposition
@@ -558,8 +566,50 @@ module Aws::S3
558
566
  # @option options [String] :content_type
559
567
  # A standard MIME type describing the format of the object data.
560
568
  # @option options [required, String] :copy_source
561
- # The name of the source bucket and key name of the source object,
562
- # separated by a slash (/). Must be URL-encoded.
569
+ # Specifies the source object for the copy operation. You specify the
570
+ # value in one of two formats, depending on whether you want to access
571
+ # the source object through an [access point][1]\:
572
+ #
573
+ # * For objects not accessed through an access point, specify the name
574
+ # of the source bucket and the key of the source object, separated by
575
+ # a slash (/). For example, to copy the object `reports/january.pdf`
576
+ # from the bucket `awsexamplebucket`, use
577
+ # `awsexamplebucket/reports/january.pdf`. The value must be URL
578
+ # encoded.
579
+ #
580
+ # * For objects accessed through access points, specify the Amazon
581
+ # Resource Name (ARN) of the object as accessed through the access
582
+ # point, in the format
583
+ # `arn:aws:s3:<Region>:<account-id>:accesspoint/<access-point-name>/object/<key>`.
584
+ # For example, to copy the object `reports/january.pdf` through access
585
+ # point `my-access-point` owned by account `123456789012` in Region
586
+ # `us-west-2`, use the URL encoding of
587
+ # `arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf`.
588
+ # The value must be URL encoded.
589
+ #
590
+ # <note markdown="1"> Amazon S3 supports copy operations using access points only when the
591
+ # source and destination buckets are in the same AWS Region.
592
+ #
593
+ # </note>
594
+ #
595
+ # Alternatively, for objects accessed through Amazon S3 on Outposts,
596
+ # specify the ARN of the object as accessed in the format
597
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/object/<key>`.
598
+ # For example, to copy the object `reports/january.pdf` through
599
+ # outpost `my-outpost` owned by account `123456789012` in Region
600
+ # `us-west-2`, use the URL encoding of
601
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
602
+ # The value must be URL encoded.
603
+ #
604
+ # To copy a specific version of an object, append
605
+ # `?versionId=<version-id>` to the value (for example,
606
+ # `awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
607
+ # If you don't specify a version ID, Amazon S3 copies the latest
608
+ # version of the source object.
609
+ #
610
+ #
611
+ #
612
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html
563
613
  # @option options [String] :copy_source_if_match
564
614
  # Copies the object if its entity tag (ETag) matches the specified tag.
565
615
  # @option options [Time,DateTime,Date,Integer,String] :copy_source_if_modified_since
@@ -575,12 +625,20 @@ module Aws::S3
575
625
  # @option options [String] :grant_full_control
576
626
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
577
627
  # object.
628
+ #
629
+ # This action is not supported by Amazon S3 on Outposts.
578
630
  # @option options [String] :grant_read
579
631
  # Allows grantee to read the object data and its metadata.
632
+ #
633
+ # This action is not supported by Amazon S3 on Outposts.
580
634
  # @option options [String] :grant_read_acp
581
635
  # Allows grantee to read the object ACL.
636
+ #
637
+ # This action is not supported by Amazon S3 on Outposts.
582
638
  # @option options [String] :grant_write_acp
583
639
  # Allows grantee to write the ACL for the applicable object.
640
+ #
641
+ # This action is not supported by Amazon S3 on Outposts.
584
642
  # @option options [Hash<String,String>] :metadata
585
643
  # A map of metadata to store with the object in S3.
586
644
  # @option options [String] :metadata_directive
@@ -593,7 +651,16 @@ module Aws::S3
593
651
  # The server-side encryption algorithm used when storing this object in
594
652
  # Amazon S3 (for example, AES256, aws:kms).
595
653
  # @option options [String] :storage_class
596
- # The type of storage to use for the object. Defaults to 'STANDARD'.
654
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
655
+ # created objects. The STANDARD storage class provides high durability
656
+ # and high availability. Depending on performance needs, you can specify
657
+ # a different Storage Class. Amazon S3 on Outposts only uses the
658
+ # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
659
+ # in the *Amazon S3 Service Developer Guide*.
660
+ #
661
+ #
662
+ #
663
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
597
664
  # @option options [String] :website_redirect_location
598
665
  # If the bucket is configured as a website, redirects requests for this
599
666
  # object to another object in the same bucket or to an external URL.
@@ -606,7 +673,7 @@ module Aws::S3
606
673
  # encrypting data. This value is used to store the object and then it is
607
674
  # discarded; Amazon S3 does not store the encryption key. The key must
608
675
  # be appropriate for use with the algorithm specified in the
609
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
676
+ # `x-amz-server-side-encryption-customer-algorithm` header.
610
677
  # @option options [String] :sse_customer_key_md5
611
678
  # Specifies the 128-bit MD5 digest of the encryption key according to
612
679
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -658,6 +725,14 @@ module Aws::S3
658
725
  # expire.
659
726
  # @option options [String] :object_lock_legal_hold_status
660
727
  # Specifies whether you want to apply a Legal Hold to the copied object.
728
+ # @option options [String] :expected_bucket_owner
729
+ # The account id of the expected destination bucket owner. If the
730
+ # destination bucket is owned by a different account, the request will
731
+ # fail with an HTTP `403 (Access Denied)` error.
732
+ # @option options [String] :expected_source_bucket_owner
733
+ # The account id of the expected source bucket owner. If the source
734
+ # bucket is owned by a different account, the request will fail with an
735
+ # HTTP `403 (Access Denied)` error.
661
736
  # @return [Types::CopyObjectOutput]
662
737
  def copy_from(options = {})
663
738
  options = options.merge(
@@ -675,6 +750,7 @@ module Aws::S3
675
750
  # version_id: "ObjectVersionId",
676
751
  # request_payer: "requester", # accepts requester
677
752
  # bypass_governance_retention: false,
753
+ # expected_bucket_owner: "AccountId",
678
754
  # })
679
755
  # @param [Hash] options ({})
680
756
  # @option options [String] :mfa
@@ -697,6 +773,10 @@ module Aws::S3
697
773
  # @option options [Boolean] :bypass_governance_retention
698
774
  # Indicates whether S3 Object Lock should bypass Governance-mode
699
775
  # restrictions to process this operation.
776
+ # @option options [String] :expected_bucket_owner
777
+ # The account id of the expected bucket owner. If the bucket is owned by
778
+ # a different account, the request will fail with an HTTP `403 (Access
779
+ # Denied)` error.
700
780
  # @return [Types::DeleteObjectOutput]
701
781
  def delete(options = {})
702
782
  options = options.merge(
@@ -727,6 +807,7 @@ module Aws::S3
727
807
  # sse_customer_key_md5: "SSECustomerKeyMD5",
728
808
  # request_payer: "requester", # accepts requester
729
809
  # part_number: 1,
810
+ # expected_bucket_owner: "AccountId",
730
811
  # })
731
812
  # @param [Hash] options ({})
732
813
  # @option options [String] :if_match
@@ -744,7 +825,16 @@ module Aws::S3
744
825
  # @option options [String] :range
745
826
  # Downloads the specified range bytes of an object. For more information
746
827
  # about the HTTP Range header, see
747
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35]().
828
+ # [https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35][1].
829
+ #
830
+ # <note markdown="1"> Amazon S3 doesn't support retrieving multiple ranges of data per
831
+ # `GET` request.
832
+ #
833
+ # </note>
834
+ #
835
+ #
836
+ #
837
+ # [1]: https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35
748
838
  # @option options [String] :response_cache_control
749
839
  # Sets the `Cache-Control` header of the response.
750
840
  # @option options [String] :response_content_disposition
@@ -767,7 +857,7 @@ module Aws::S3
767
857
  # encrypting data. This value is used to store the object and then it is
768
858
  # discarded; Amazon S3 does not store the encryption key. The key must
769
859
  # be appropriate for use with the algorithm specified in the
770
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
860
+ # `x-amz-server-side-encryption-customer-algorithm` header.
771
861
  # @option options [String] :sse_customer_key_md5
772
862
  # Specifies the 128-bit MD5 digest of the encryption key according to
773
863
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -787,6 +877,10 @@ module Aws::S3
787
877
  # between 1 and 10,000. Effectively performs a 'ranged' GET request
788
878
  # for the part specified. Useful for downloading just a part of an
789
879
  # object.
880
+ # @option options [String] :expected_bucket_owner
881
+ # The account id of the expected bucket owner. If the bucket is owned by
882
+ # a different account, the request will fail with an HTTP `403 (Access
883
+ # Denied)` error.
790
884
  # @return [Types::GetObjectOutput]
791
885
  def get(options = {}, &block)
792
886
  options = options.merge(
@@ -815,7 +909,7 @@ module Aws::S3
815
909
  # "MetadataKey" => "MetadataValue",
816
910
  # },
817
911
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
818
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
912
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
819
913
  # website_redirect_location: "WebsiteRedirectLocation",
820
914
  # sse_customer_algorithm: "SSECustomerAlgorithm",
821
915
  # sse_customer_key: "SSECustomerKey",
@@ -827,10 +921,13 @@ module Aws::S3
827
921
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
828
922
  # object_lock_retain_until_date: Time.now,
829
923
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
924
+ # expected_bucket_owner: "AccountId",
830
925
  # })
831
926
  # @param [Hash] options ({})
832
927
  # @option options [String] :acl
833
928
  # The canned ACL to apply to the object.
929
+ #
930
+ # This action is not supported by Amazon S3 on Outposts.
834
931
  # @option options [String] :cache_control
835
932
  # Specifies caching behavior along the request/reply chain.
836
933
  # @option options [String] :content_disposition
@@ -848,19 +945,36 @@ module Aws::S3
848
945
  # @option options [String] :grant_full_control
849
946
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
850
947
  # object.
948
+ #
949
+ # This action is not supported by Amazon S3 on Outposts.
851
950
  # @option options [String] :grant_read
852
951
  # Allows grantee to read the object data and its metadata.
952
+ #
953
+ # This action is not supported by Amazon S3 on Outposts.
853
954
  # @option options [String] :grant_read_acp
854
955
  # Allows grantee to read the object ACL.
956
+ #
957
+ # This action is not supported by Amazon S3 on Outposts.
855
958
  # @option options [String] :grant_write_acp
856
959
  # Allows grantee to write the ACL for the applicable object.
960
+ #
961
+ # This action is not supported by Amazon S3 on Outposts.
857
962
  # @option options [Hash<String,String>] :metadata
858
963
  # A map of metadata to store with the object in S3.
859
964
  # @option options [String] :server_side_encryption
860
965
  # The server-side encryption algorithm used when storing this object in
861
966
  # Amazon S3 (for example, AES256, aws:kms).
862
967
  # @option options [String] :storage_class
863
- # The type of storage to use for the object. Defaults to 'STANDARD'.
968
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
969
+ # created objects. The STANDARD storage class provides high durability
970
+ # and high availability. Depending on performance needs, you can specify
971
+ # a different Storage Class. Amazon S3 on Outposts only uses the
972
+ # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
973
+ # in the *Amazon S3 Service Developer Guide*.
974
+ #
975
+ #
976
+ #
977
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
864
978
  # @option options [String] :website_redirect_location
865
979
  # If the bucket is configured as a website, redirects requests for this
866
980
  # object to another object in the same bucket or to an external URL.
@@ -873,7 +987,7 @@ module Aws::S3
873
987
  # encrypting data. This value is used to store the object and then it is
874
988
  # discarded; Amazon S3 does not store the encryption key. The key must
875
989
  # be appropriate for use with the algorithm specified in the
876
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
990
+ # `x-amz-server-side-encryption-customer-algorithm` header.
877
991
  # @option options [String] :sse_customer_key_md5
878
992
  # Specifies the 128-bit MD5 digest of the encryption key according to
879
993
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -914,6 +1028,10 @@ module Aws::S3
914
1028
  # @option options [String] :object_lock_legal_hold_status
915
1029
  # Specifies whether you want to apply a Legal Hold to the uploaded
916
1030
  # object.
1031
+ # @option options [String] :expected_bucket_owner
1032
+ # The account id of the expected bucket owner. If the bucket is owned by
1033
+ # a different account, the request will fail with an HTTP `403 (Access
1034
+ # Denied)` error.
917
1035
  # @return [MultipartUpload]
918
1036
  def initiate_multipart_upload(options = {})
919
1037
  options = options.merge(
@@ -950,7 +1068,7 @@ module Aws::S3
950
1068
  # "MetadataKey" => "MetadataValue",
951
1069
  # },
952
1070
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
953
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
1071
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
954
1072
  # website_redirect_location: "WebsiteRedirectLocation",
955
1073
  # sse_customer_algorithm: "SSECustomerAlgorithm",
956
1074
  # sse_customer_key: "SSECustomerKey",
@@ -962,16 +1080,19 @@ module Aws::S3
962
1080
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
963
1081
  # object_lock_retain_until_date: Time.now,
964
1082
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
1083
+ # expected_bucket_owner: "AccountId",
965
1084
  # })
966
1085
  # @param [Hash] options ({})
967
1086
  # @option options [String] :acl
968
1087
  # The canned ACL to apply to the object. For more information, see
969
1088
  # [Canned ACL][1].
970
1089
  #
1090
+ # This action is not supported by Amazon S3 on Outposts.
1091
+ #
971
1092
  #
972
1093
  #
973
1094
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
974
- # @option options [String, IO] :body
1095
+ # @option options [String, StringIO, File] :body
975
1096
  # Object data.
976
1097
  # @option options [String] :cache_control
977
1098
  # Can be used to specify caching behavior along the request/reply chain.
@@ -1039,20 +1160,36 @@ module Aws::S3
1039
1160
  # @option options [String] :grant_full_control
1040
1161
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
1041
1162
  # object.
1163
+ #
1164
+ # This action is not supported by Amazon S3 on Outposts.
1042
1165
  # @option options [String] :grant_read
1043
1166
  # Allows grantee to read the object data and its metadata.
1167
+ #
1168
+ # This action is not supported by Amazon S3 on Outposts.
1044
1169
  # @option options [String] :grant_read_acp
1045
1170
  # Allows grantee to read the object ACL.
1171
+ #
1172
+ # This action is not supported by Amazon S3 on Outposts.
1046
1173
  # @option options [String] :grant_write_acp
1047
1174
  # Allows grantee to write the ACL for the applicable object.
1175
+ #
1176
+ # This action is not supported by Amazon S3 on Outposts.
1048
1177
  # @option options [Hash<String,String>] :metadata
1049
1178
  # A map of metadata to store with the object in S3.
1050
1179
  # @option options [String] :server_side_encryption
1051
1180
  # The server-side encryption algorithm used when storing this object in
1052
1181
  # Amazon S3 (for example, AES256, aws:kms).
1053
1182
  # @option options [String] :storage_class
1054
- # If you don't specify, Standard is the default storage class. Amazon
1055
- # S3 supports other storage classes.
1183
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
1184
+ # created objects. The STANDARD storage class provides high durability
1185
+ # and high availability. Depending on performance needs, you can specify
1186
+ # a different Storage Class. Amazon S3 on Outposts only uses the
1187
+ # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
1188
+ # in the *Amazon S3 Service Developer Guide*.
1189
+ #
1190
+ #
1191
+ #
1192
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
1056
1193
  # @option options [String] :website_redirect_location
1057
1194
  # If the bucket is configured as a website, redirects requests for this
1058
1195
  # object to another object in the same bucket or to an external URL.
@@ -1086,7 +1223,7 @@ module Aws::S3
1086
1223
  # encrypting data. This value is used to store the object and then it is
1087
1224
  # discarded; Amazon S3 does not store the encryption key. The key must
1088
1225
  # be appropriate for use with the algorithm specified in the
1089
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
1226
+ # `x-amz-server-side-encryption-customer-algorithm` header.
1090
1227
  # @option options [String] :sse_customer_key_md5
1091
1228
  # Specifies the 128-bit MD5 digest of the encryption key according to
1092
1229
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -1131,6 +1268,10 @@ module Aws::S3
1131
1268
  #
1132
1269
  #
1133
1270
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
1271
+ # @option options [String] :expected_bucket_owner
1272
+ # The account id of the expected bucket owner. If the bucket is owned by
1273
+ # a different account, the request will fail with an HTTP `403 (Access
1274
+ # Denied)` error.
1134
1275
  # @return [Types::PutObjectOutput]
1135
1276
  def put(options = {})
1136
1277
  options = options.merge(
@@ -1222,11 +1363,12 @@ module Aws::S3
1222
1363
  # value: "MetadataValue",
1223
1364
  # },
1224
1365
  # ],
1225
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
1366
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
1226
1367
  # },
1227
1368
  # },
1228
1369
  # },
1229
1370
  # request_payer: "requester", # accepts requester
1371
+ # expected_bucket_owner: "AccountId",
1230
1372
  # })
1231
1373
  # @param [Hash] options ({})
1232
1374
  # @option options [String] :version_id
@@ -1243,6 +1385,10 @@ module Aws::S3
1243
1385
  #
1244
1386
  #
1245
1387
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1388
+ # @option options [String] :expected_bucket_owner
1389
+ # The account id of the expected bucket owner. If the bucket is owned by
1390
+ # a different account, the request will fail with an HTTP `403 (Access
1391
+ # Denied)` error.
1246
1392
  # @return [Types::RestoreObjectOutput]
1247
1393
  def restore_object(options = {})
1248
1394
  options = options.merge(
@@ -1330,8 +1476,8 @@ module Aws::S3
1330
1476
 
1331
1477
  def yield_waiter_and_warn(waiter, &block)
1332
1478
  if !@waiter_block_warned
1333
- msg = "pass options to configure the waiter; "
1334
- msg << "yielding the waiter is deprecated"
1479
+ msg = "pass options to configure the waiter; "\
1480
+ "yielding the waiter is deprecated"
1335
1481
  warn(msg)
1336
1482
  @waiter_block_warned = true
1337
1483
  end
@@ -1365,6 +1511,7 @@ module Aws::S3
1365
1511
  # mfa: "MFA",
1366
1512
  # request_payer: "requester", # accepts requester
1367
1513
  # bypass_governance_retention: false,
1514
+ # expected_bucket_owner: "AccountId",
1368
1515
  # })
1369
1516
  # @param options ({})
1370
1517
  # @option options [String] :mfa
@@ -1386,6 +1533,10 @@ module Aws::S3
1386
1533
  # Specifies whether you want to delete this object even if it has a
1387
1534
  # Governance-type Object Lock in place. You must have sufficient
1388
1535
  # permissions to perform this operation.
1536
+ # @option options [String] :expected_bucket_owner
1537
+ # The account id of the expected bucket owner. If the bucket is owned by
1538
+ # a different account, the request will fail with an HTTP `403 (Access
1539
+ # Denied)` error.
1389
1540
  # @return [void]
1390
1541
  def batch_delete!(options = {})
1391
1542
  batch_enum.each do |batch|