aws-sdk-s3 1.96.2 → 1.113.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +105 -0
  3. data/VERSION +1 -1
  4. data/lib/aws-sdk-s3/arn/access_point_arn.rb +6 -6
  5. data/lib/aws-sdk-s3/arn/multi_region_access_point_arn.rb +68 -0
  6. data/lib/aws-sdk-s3/arn/object_lambda_arn.rb +6 -6
  7. data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +7 -6
  8. data/lib/aws-sdk-s3/bucket.rb +126 -29
  9. data/lib/aws-sdk-s3/bucket_acl.rb +21 -4
  10. data/lib/aws-sdk-s3/bucket_cors.rb +23 -6
  11. data/lib/aws-sdk-s3/bucket_lifecycle.rb +27 -8
  12. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +28 -6
  13. data/lib/aws-sdk-s3/bucket_logging.rb +21 -4
  14. data/lib/aws-sdk-s3/bucket_notification.rb +19 -7
  15. data/lib/aws-sdk-s3/bucket_policy.rb +23 -6
  16. data/lib/aws-sdk-s3/bucket_request_payment.rb +21 -4
  17. data/lib/aws-sdk-s3/bucket_tagging.rb +23 -6
  18. data/lib/aws-sdk-s3/bucket_versioning.rb +63 -12
  19. data/lib/aws-sdk-s3/bucket_website.rb +23 -6
  20. data/lib/aws-sdk-s3/client.rb +2691 -1278
  21. data/lib/aws-sdk-s3/client_api.rb +390 -21
  22. data/lib/aws-sdk-s3/customizations/object.rb +78 -5
  23. data/lib/aws-sdk-s3/encryption/client.rb +1 -1
  24. data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +0 -4
  25. data/lib/aws-sdk-s3/encryptionV2/client.rb +1 -1
  26. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +0 -4
  27. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +0 -4
  28. data/lib/aws-sdk-s3/file_downloader.rb +1 -1
  29. data/lib/aws-sdk-s3/file_uploader.rb +6 -1
  30. data/lib/aws-sdk-s3/multipart_file_uploader.rb +26 -7
  31. data/lib/aws-sdk-s3/multipart_upload.rb +126 -12
  32. data/lib/aws-sdk-s3/multipart_upload_part.rb +134 -14
  33. data/lib/aws-sdk-s3/object.rb +291 -115
  34. data/lib/aws-sdk-s3/object_acl.rb +23 -6
  35. data/lib/aws-sdk-s3/object_summary.rb +207 -80
  36. data/lib/aws-sdk-s3/object_version.rb +66 -39
  37. data/lib/aws-sdk-s3/plugins/accelerate.rb +7 -1
  38. data/lib/aws-sdk-s3/plugins/arn.rb +59 -33
  39. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +1 -1
  40. data/lib/aws-sdk-s3/plugins/dualstack.rb +25 -31
  41. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +6 -0
  42. data/lib/aws-sdk-s3/plugins/md5s.rb +5 -3
  43. data/lib/aws-sdk-s3/plugins/s3_signer.rb +29 -5
  44. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +31 -0
  45. data/lib/aws-sdk-s3/presigned_post.rb +38 -19
  46. data/lib/aws-sdk-s3/presigner.rb +6 -0
  47. data/lib/aws-sdk-s3/resource.rb +18 -0
  48. data/lib/aws-sdk-s3/types.rb +2928 -920
  49. data/lib/aws-sdk-s3.rb +1 -1
  50. metadata +9 -7
@@ -57,9 +57,9 @@ module Aws::S3
57
57
  end
58
58
 
59
59
  # If the object expiration is configured (see PUT Bucket lifecycle), the
60
- # response includes this header. It includes the expiry-date and rule-id
61
- # key-value pairs providing object expiration information. The value of
62
- # the rule-id is URL encoded.
60
+ # response includes this header. It includes the `expiry-date` and
61
+ # `rule-id` key-value pairs providing object expiration information. The
62
+ # value of the `rule-id` is URL-encoded.
63
63
  # @return [String]
64
64
  def expiration
65
65
  data[:expiration]
@@ -109,8 +109,64 @@ module Aws::S3
109
109
  data[:content_length]
110
110
  end
111
111
 
112
- # An ETag is an opaque identifier assigned by a web server to a specific
113
- # version of a resource found at a URL.
112
+ # The base64-encoded, 32-bit CRC32 checksum of the object. This will
113
+ # only be present if it was uploaded with the object. With multipart
114
+ # uploads, this may not be a checksum value of the object. For more
115
+ # information about how checksums are calculated with multipart uploads,
116
+ # see [ Checking object integrity][1] in the *Amazon S3 User Guide*.
117
+ #
118
+ #
119
+ #
120
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums
121
+ # @return [String]
122
+ def checksum_crc32
123
+ data[:checksum_crc32]
124
+ end
125
+
126
+ # The base64-encoded, 32-bit CRC32C checksum of the object. This will
127
+ # only be present if it was uploaded with the object. With multipart
128
+ # uploads, this may not be a checksum value of the object. For more
129
+ # information about how checksums are calculated with multipart uploads,
130
+ # see [ Checking object integrity][1] in the *Amazon S3 User Guide*.
131
+ #
132
+ #
133
+ #
134
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums
135
+ # @return [String]
136
+ def checksum_crc32c
137
+ data[:checksum_crc32c]
138
+ end
139
+
140
+ # The base64-encoded, 160-bit SHA-1 digest of the object. This will only
141
+ # be present if it was uploaded with the object. With multipart uploads,
142
+ # this may not be a checksum value of the object. For more information
143
+ # about how checksums are calculated with multipart uploads, see [
144
+ # Checking object integrity][1] in the *Amazon S3 User Guide*.
145
+ #
146
+ #
147
+ #
148
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums
149
+ # @return [String]
150
+ def checksum_sha1
151
+ data[:checksum_sha1]
152
+ end
153
+
154
+ # The base64-encoded, 256-bit SHA-256 digest of the object. This will
155
+ # only be present if it was uploaded with the object. With multipart
156
+ # uploads, this may not be a checksum value of the object. For more
157
+ # information about how checksums are calculated with multipart uploads,
158
+ # see [ Checking object integrity][1] in the *Amazon S3 User Guide*.
159
+ #
160
+ #
161
+ #
162
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html#large-object-checksums
163
+ # @return [String]
164
+ def checksum_sha256
165
+ data[:checksum_sha256]
166
+ end
167
+
168
+ # An entity tag (ETag) is an opaque identifier assigned by a web server
169
+ # to a specific version of a resource found at a URL.
114
170
  # @return [String]
115
171
  def etag
116
172
  data[:etag]
@@ -184,10 +240,10 @@ module Aws::S3
184
240
  end
185
241
 
186
242
  # If the object is stored using server-side encryption either with an
187
- # AWS KMS customer master key (CMK) or an Amazon S3-managed encryption
188
- # key, the response includes this header with the value of the
189
- # server-side encryption algorithm used when storing this object in
190
- # Amazon S3 (for example, AES256, aws:kms).
243
+ # Amazon Web Services KMS key or an Amazon S3-managed encryption key,
244
+ # the response includes this header with the value of the server-side
245
+ # encryption algorithm used when storing this object in Amazon S3 (for
246
+ # example, AES256, aws:kms).
191
247
  # @return [String]
192
248
  def server_side_encryption
193
249
  data[:server_side_encryption]
@@ -216,16 +272,16 @@ module Aws::S3
216
272
  data[:sse_customer_key_md5]
217
273
  end
218
274
 
219
- # If present, specifies the ID of the AWS Key Management Service (AWS
220
- # KMS) symmetric customer managed customer master key (CMK) that was
221
- # used for the object.
275
+ # If present, specifies the ID of the Amazon Web Services Key Management
276
+ # Service (Amazon Web Services KMS) symmetric customer managed key that
277
+ # was used for the object.
222
278
  # @return [String]
223
279
  def ssekms_key_id
224
280
  data[:ssekms_key_id]
225
281
  end
226
282
 
227
283
  # Indicates whether the object uses an S3 Bucket Key for server-side
228
- # encryption with AWS KMS (SSE-KMS).
284
+ # encryption with Amazon Web Services KMS (SSE-KMS).
229
285
  # @return [Boolean]
230
286
  def bucket_key_enabled
231
287
  data[:bucket_key_enabled]
@@ -261,7 +317,7 @@ module Aws::S3
261
317
  # metadata (`HeadObject`) from these buckets, Amazon S3 will return the
262
318
  # `x-amz-replication-status` header in the response as follows:
263
319
  #
264
- # * If requesting an object from the source bucket Amazon S3 will
320
+ # * **If requesting an object from the source bucket**, Amazon S3 will
265
321
  # return the `x-amz-replication-status` header if the object in your
266
322
  # request is eligible for replication.
267
323
  #
@@ -274,12 +330,12 @@ module Aws::S3
274
330
  # value PENDING, COMPLETED or FAILED indicating object replication
275
331
  # status.
276
332
  #
277
- # * If requesting an object from a destination bucket Amazon S3 will
278
- # return the `x-amz-replication-status` header with value REPLICA if
279
- # the object in your request is a replica that Amazon S3 created and
280
- # there is no replica modification replication in progress.
333
+ # * **If requesting an object from a destination bucket**, Amazon S3
334
+ # will return the `x-amz-replication-status` header with value REPLICA
335
+ # if the object in your request is a replica that Amazon S3 created
336
+ # and there is no replica modification replication in progress.
281
337
  #
282
- # * When replicating objects to multiple destination buckets the
338
+ # * **When replicating objects to multiple destination buckets**, the
283
339
  # `x-amz-replication-status` header acts differently. The header of
284
340
  # the source object will only return a value of COMPLETED when
285
341
  # replication is successful to all destinations. The header will
@@ -297,7 +353,9 @@ module Aws::S3
297
353
  data[:replication_status]
298
354
  end
299
355
 
300
- # The count of parts this object has.
356
+ # The count of parts this object has. This value is only returned if you
357
+ # specify `partNumber` in your request and the object was uploaded as a
358
+ # multipart upload.
301
359
  # @return [Integer]
302
360
  def parts_count
303
361
  data[:parts_count]
@@ -532,6 +590,7 @@ module Aws::S3
532
590
  # object.copy_from({
533
591
  # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control
534
592
  # cache_control: "CacheControl",
593
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
535
594
  # content_disposition: "ContentDisposition",
536
595
  # content_encoding: "ContentEncoding",
537
596
  # content_language: "ContentLanguage",
@@ -552,7 +611,7 @@ module Aws::S3
552
611
  # metadata_directive: "COPY", # accepts COPY, REPLACE
553
612
  # tagging_directive: "COPY", # accepts COPY, REPLACE
554
613
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
555
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
614
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
556
615
  # website_redirect_location: "WebsiteRedirectLocation",
557
616
  # sse_customer_algorithm: "SSECustomerAlgorithm",
558
617
  # sse_customer_key: "SSECustomerKey",
@@ -578,6 +637,14 @@ module Aws::S3
578
637
  # This action is not supported by Amazon S3 on Outposts.
579
638
  # @option options [String] :cache_control
580
639
  # Specifies caching behavior along the request/reply chain.
640
+ # @option options [String] :checksum_algorithm
641
+ # Indicates the algorithm you want Amazon S3 to use to create the
642
+ # checksum for the object. For more information, see [Checking object
643
+ # integrity][1] in the *Amazon S3 User Guide*.
644
+ #
645
+ #
646
+ #
647
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
581
648
  # @option options [String] :content_disposition
582
649
  # Specifies presentational information for the object.
583
650
  # @option options [String] :content_encoding
@@ -597,8 +664,8 @@ module Aws::S3
597
664
  # of the source bucket and the key of the source object, separated by
598
665
  # a slash (/). For example, to copy the object `reports/january.pdf`
599
666
  # from the bucket `awsexamplebucket`, use
600
- # `awsexamplebucket/reports/january.pdf`. The value must be URL
601
- # encoded.
667
+ # `awsexamplebucket/reports/january.pdf`. The value must be
668
+ # URL-encoded.
602
669
  #
603
670
  # * For objects accessed through access points, specify the Amazon
604
671
  # Resource Name (ARN) of the object as accessed through the access
@@ -611,7 +678,8 @@ module Aws::S3
611
678
  # The value must be URL encoded.
612
679
  #
613
680
  # <note markdown="1"> Amazon S3 supports copy operations using access points only when the
614
- # source and destination buckets are in the same AWS Region.
681
+ # source and destination buckets are in the same Amazon Web Services
682
+ # Region.
615
683
  #
616
684
  # </note>
617
685
  #
@@ -622,7 +690,7 @@ module Aws::S3
622
690
  # outpost `my-outpost` owned by account `123456789012` in Region
623
691
  # `us-west-2`, use the URL encoding of
624
692
  # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
625
- # The value must be URL encoded.
693
+ # The value must be URL-encoded.
626
694
  #
627
695
  # To copy a specific version of an object, append
628
696
  # `?versionId=<version-id>` to the value (for example,
@@ -702,20 +770,21 @@ module Aws::S3
702
770
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
703
771
  # ensure that the encryption key was transmitted without error.
704
772
  # @option options [String] :ssekms_key_id
705
- # Specifies the AWS KMS key ID to use for object encryption. All GET and
706
- # PUT requests for an object protected by AWS KMS will fail if not made
707
- # via SSL or using SigV4. For information about configuring using any of
708
- # the officially supported AWS SDKs and AWS CLI, see [Specifying the
709
- # Signature Version in Request Authentication][1] in the *Amazon S3 User
710
- # Guide*.
773
+ # Specifies the Amazon Web Services KMS key ID to use for object
774
+ # encryption. All GET and PUT requests for an object protected by Amazon
775
+ # Web Services KMS will fail if not made via SSL or using SigV4. For
776
+ # information about configuring using any of the officially supported
777
+ # Amazon Web Services SDKs and Amazon Web Services CLI, see [Specifying
778
+ # the Signature Version in Request Authentication][1] in the *Amazon S3
779
+ # User Guide*.
711
780
  #
712
781
  #
713
782
  #
714
783
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
715
784
  # @option options [String] :ssekms_encryption_context
716
- # Specifies the AWS KMS Encryption Context to use for object encryption.
717
- # The value of this header is a base64-encoded UTF-8 string holding JSON
718
- # with the encryption context key-value pairs.
785
+ # Specifies the Amazon Web Services KMS Encryption Context to use for
786
+ # object encryption. The value of this header is a base64-encoded UTF-8
787
+ # string holding JSON with the encryption context key-value pairs.
719
788
  # @option options [Boolean] :bucket_key_enabled
720
789
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
721
790
  # encryption with server-side encryption using AWS KMS (SSE-KMS).
@@ -738,8 +807,8 @@ module Aws::S3
738
807
  # @option options [String] :request_payer
739
808
  # Confirms that the requester knows that they will be charged for the
740
809
  # request. Bucket owners need not specify this parameter in their
741
- # requests. For information about downloading objects from requester
742
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
810
+ # requests. For information about downloading objects from Requester
811
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
743
812
  # in the *Amazon S3 User Guide*.
744
813
  #
745
814
  #
@@ -755,15 +824,15 @@ module Aws::S3
755
824
  # The date and time when you want the copied object's Object Lock to
756
825
  # expire.
757
826
  # @option options [String] :object_lock_legal_hold_status
758
- # Specifies whether you want to apply a Legal Hold to the copied object.
827
+ # Specifies whether you want to apply a legal hold to the copied object.
759
828
  # @option options [String] :expected_bucket_owner
760
829
  # The account ID of the expected destination bucket owner. If the
761
- # destination bucket is owned by a different account, the request will
762
- # fail with an HTTP `403 (Access Denied)` error.
830
+ # destination bucket is owned by a different account, the request fails
831
+ # with the HTTP status code `403 Forbidden` (access denied).
763
832
  # @option options [String] :expected_source_bucket_owner
764
833
  # The account ID of the expected source bucket owner. If the source
765
- # bucket is owned by a different account, the request will fail with an
766
- # HTTP `403 (Access Denied)` error.
834
+ # bucket is owned by a different account, the request fails with the
835
+ # HTTP status code `403 Forbidden` (access denied).
767
836
  # @return [Types::CopyObjectOutput]
768
837
  def copy_from(options = {})
769
838
  options = options.merge(
@@ -794,8 +863,8 @@ module Aws::S3
794
863
  # @option options [String] :request_payer
795
864
  # Confirms that the requester knows that they will be charged for the
796
865
  # request. Bucket owners need not specify this parameter in their
797
- # requests. For information about downloading objects from requester
798
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
866
+ # requests. For information about downloading objects from Requester
867
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
799
868
  # in the *Amazon S3 User Guide*.
800
869
  #
801
870
  #
@@ -803,11 +872,12 @@ module Aws::S3
803
872
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
804
873
  # @option options [Boolean] :bypass_governance_retention
805
874
  # Indicates whether S3 Object Lock should bypass Governance-mode
806
- # restrictions to process this operation.
875
+ # restrictions to process this operation. To use this header, you must
876
+ # have the `s3:BypassGovernanceRetention` permission.
807
877
  # @option options [String] :expected_bucket_owner
808
878
  # The account ID of the expected bucket owner. If the bucket is owned by
809
- # a different account, the request will fail with an HTTP `403 (Access
810
- # Denied)` error.
879
+ # a different account, the request fails with the HTTP status code `403
880
+ # Forbidden` (access denied).
811
881
  # @return [Types::DeleteObjectOutput]
812
882
  def delete(options = {})
813
883
  options = options.merge(
@@ -839,20 +909,21 @@ module Aws::S3
839
909
  # request_payer: "requester", # accepts requester
840
910
  # part_number: 1,
841
911
  # expected_bucket_owner: "AccountId",
912
+ # checksum_mode: "ENABLED", # accepts ENABLED
842
913
  # })
843
914
  # @param [Hash] options ({})
844
915
  # @option options [String] :if_match
845
916
  # Return the object only if its entity tag (ETag) is the same as the one
846
- # specified, otherwise return a 412 (precondition failed).
917
+ # specified; otherwise, return a 412 (precondition failed) error.
847
918
  # @option options [Time,DateTime,Date,Integer,String] :if_modified_since
848
919
  # Return the object only if it has been modified since the specified
849
- # time, otherwise return a 304 (not modified).
920
+ # time; otherwise, return a 304 (not modified) error.
850
921
  # @option options [String] :if_none_match
851
922
  # Return the object only if its entity tag (ETag) is different from the
852
- # one specified, otherwise return a 304 (not modified).
923
+ # one specified; otherwise, return a 304 (not modified) error.
853
924
  # @option options [Time,DateTime,Date,Integer,String] :if_unmodified_since
854
925
  # Return the object only if it has not been modified since the specified
855
- # time, otherwise return a 412 (precondition failed).
926
+ # time; otherwise, return a 412 (precondition failed) error.
856
927
  # @option options [String] :range
857
928
  # Downloads the specified range bytes of an object. For more information
858
929
  # about the HTTP Range header, see
@@ -896,8 +967,8 @@ module Aws::S3
896
967
  # @option options [String] :request_payer
897
968
  # Confirms that the requester knows that they will be charged for the
898
969
  # request. Bucket owners need not specify this parameter in their
899
- # requests. For information about downloading objects from requester
900
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
970
+ # requests. For information about downloading objects from Requester
971
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
901
972
  # in the *Amazon S3 User Guide*.
902
973
  #
903
974
  #
@@ -910,8 +981,10 @@ module Aws::S3
910
981
  # object.
911
982
  # @option options [String] :expected_bucket_owner
912
983
  # The account ID of the expected bucket owner. If the bucket is owned by
913
- # a different account, the request will fail with an HTTP `403 (Access
914
- # Denied)` error.
984
+ # a different account, the request fails with the HTTP status code `403
985
+ # Forbidden` (access denied).
986
+ # @option options [String] :checksum_mode
987
+ # To retrieve the checksum, this mode must be enabled.
915
988
  # @return [Types::GetObjectOutput]
916
989
  def get(options = {}, &block)
917
990
  options = options.merge(
@@ -940,7 +1013,7 @@ module Aws::S3
940
1013
  # "MetadataKey" => "MetadataValue",
941
1014
  # },
942
1015
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
943
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
1016
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
944
1017
  # website_redirect_location: "WebsiteRedirectLocation",
945
1018
  # sse_customer_algorithm: "SSECustomerAlgorithm",
946
1019
  # sse_customer_key: "SSECustomerKey",
@@ -954,6 +1027,7 @@ module Aws::S3
954
1027
  # object_lock_retain_until_date: Time.now,
955
1028
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
956
1029
  # expected_bucket_owner: "AccountId",
1030
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
957
1031
  # })
958
1032
  # @param [Hash] options ({})
959
1033
  # @option options [String] :acl
@@ -1025,20 +1099,21 @@ module Aws::S3
1025
1099
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
1026
1100
  # ensure that the encryption key was transmitted without error.
1027
1101
  # @option options [String] :ssekms_key_id
1028
- # Specifies the ID of the symmetric customer managed AWS KMS CMK to use
1029
- # for object encryption. All GET and PUT requests for an object
1030
- # protected by AWS KMS will fail if not made via SSL or using SigV4. For
1031
- # information about configuring using any of the officially supported
1032
- # AWS SDKs and AWS CLI, see [Specifying the Signature Version in Request
1033
- # Authentication][1] in the *Amazon S3 User Guide*.
1102
+ # Specifies the ID of the symmetric customer managed key to use for
1103
+ # object encryption. All GET and PUT requests for an object protected by
1104
+ # Amazon Web Services KMS will fail if not made via SSL or using SigV4.
1105
+ # For information about configuring using any of the officially
1106
+ # supported Amazon Web Services SDKs and Amazon Web Services CLI, see
1107
+ # [Specifying the Signature Version in Request Authentication][1] in the
1108
+ # *Amazon S3 User Guide*.
1034
1109
  #
1035
1110
  #
1036
1111
  #
1037
1112
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
1038
1113
  # @option options [String] :ssekms_encryption_context
1039
- # Specifies the AWS KMS Encryption Context to use for object encryption.
1040
- # The value of this header is a base64-encoded UTF-8 string holding JSON
1041
- # with the encryption context key-value pairs.
1114
+ # Specifies the Amazon Web Services KMS Encryption Context to use for
1115
+ # object encryption. The value of this header is a base64-encoded UTF-8
1116
+ # string holding JSON with the encryption context key-value pairs.
1042
1117
  # @option options [Boolean] :bucket_key_enabled
1043
1118
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
1044
1119
  # encryption with server-side encryption using AWS KMS (SSE-KMS).
@@ -1050,8 +1125,8 @@ module Aws::S3
1050
1125
  # @option options [String] :request_payer
1051
1126
  # Confirms that the requester knows that they will be charged for the
1052
1127
  # request. Bucket owners need not specify this parameter in their
1053
- # requests. For information about downloading objects from requester
1054
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1128
+ # requests. For information about downloading objects from Requester
1129
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1055
1130
  # in the *Amazon S3 User Guide*.
1056
1131
  #
1057
1132
  #
@@ -1066,12 +1141,20 @@ module Aws::S3
1066
1141
  # @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
1067
1142
  # Specifies the date and time when you want the Object Lock to expire.
1068
1143
  # @option options [String] :object_lock_legal_hold_status
1069
- # Specifies whether you want to apply a Legal Hold to the uploaded
1144
+ # Specifies whether you want to apply a legal hold to the uploaded
1070
1145
  # object.
1071
1146
  # @option options [String] :expected_bucket_owner
1072
1147
  # The account ID of the expected bucket owner. If the bucket is owned by
1073
- # a different account, the request will fail with an HTTP `403 (Access
1074
- # Denied)` error.
1148
+ # a different account, the request fails with the HTTP status code `403
1149
+ # Forbidden` (access denied).
1150
+ # @option options [String] :checksum_algorithm
1151
+ # Indicates the algorithm you want Amazon S3 to use to create the
1152
+ # checksum for the object. For more information, see [Checking object
1153
+ # integrity][1] in the *Amazon S3 User Guide*.
1154
+ #
1155
+ #
1156
+ #
1157
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1075
1158
  # @return [MultipartUpload]
1076
1159
  def initiate_multipart_upload(options = {})
1077
1160
  options = options.merge(
@@ -1099,6 +1182,11 @@ module Aws::S3
1099
1182
  # content_length: 1,
1100
1183
  # content_md5: "ContentMD5",
1101
1184
  # content_type: "ContentType",
1185
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
1186
+ # checksum_crc32: "ChecksumCRC32",
1187
+ # checksum_crc32c: "ChecksumCRC32C",
1188
+ # checksum_sha1: "ChecksumSHA1",
1189
+ # checksum_sha256: "ChecksumSHA256",
1102
1190
  # expires: Time.now,
1103
1191
  # grant_full_control: "GrantFullControl",
1104
1192
  # grant_read: "GrantRead",
@@ -1108,7 +1196,7 @@ module Aws::S3
1108
1196
  # "MetadataKey" => "MetadataValue",
1109
1197
  # },
1110
1198
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
1111
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
1199
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
1112
1200
  # website_redirect_location: "WebsiteRedirectLocation",
1113
1201
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1114
1202
  # sse_customer_key: "SSECustomerKey",
@@ -1190,6 +1278,61 @@ module Aws::S3
1190
1278
  #
1191
1279
  #
1192
1280
  # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17
1281
+ # @option options [String] :checksum_algorithm
1282
+ # Indicates the algorithm used to create the checksum for the object
1283
+ # when using the SDK. This header will not provide any additional
1284
+ # functionality if not using the SDK. When sending this header, there
1285
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
1286
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
1287
+ # `400 Bad Request`. For more information, see [Checking object
1288
+ # integrity][1] in the *Amazon S3 User Guide*.
1289
+ #
1290
+ # If you provide an individual checksum, Amazon S3 ignores any provided
1291
+ # `ChecksumAlgorithm` parameter.
1292
+ #
1293
+ #
1294
+ #
1295
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1296
+ # @option options [String] :checksum_crc32
1297
+ # This header can be used as a data integrity check to verify that the
1298
+ # data received is the same data that was originally sent. This header
1299
+ # specifies the base64-encoded, 32-bit CRC32 checksum of the object. For
1300
+ # more information, see [Checking object integrity][1] in the *Amazon S3
1301
+ # User Guide*.
1302
+ #
1303
+ #
1304
+ #
1305
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1306
+ # @option options [String] :checksum_crc32c
1307
+ # This header can be used as a data integrity check to verify that the
1308
+ # data received is the same data that was originally sent. This header
1309
+ # specifies the base64-encoded, 32-bit CRC32C checksum of the object.
1310
+ # For more information, see [Checking object integrity][1] in the
1311
+ # *Amazon S3 User Guide*.
1312
+ #
1313
+ #
1314
+ #
1315
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1316
+ # @option options [String] :checksum_sha1
1317
+ # This header can be used as a data integrity check to verify that the
1318
+ # data received is the same data that was originally sent. This header
1319
+ # specifies the base64-encoded, 160-bit SHA-1 digest of the object. For
1320
+ # more information, see [Checking object integrity][1] in the *Amazon S3
1321
+ # User Guide*.
1322
+ #
1323
+ #
1324
+ #
1325
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1326
+ # @option options [String] :checksum_sha256
1327
+ # This header can be used as a data integrity check to verify that the
1328
+ # data received is the same data that was originally sent. This header
1329
+ # specifies the base64-encoded, 256-bit SHA-256 digest of the object.
1330
+ # For more information, see [Checking object integrity][1] in the
1331
+ # *Amazon S3 User Guide*.
1332
+ #
1333
+ #
1334
+ #
1335
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1193
1336
  # @option options [Time,DateTime,Date,Integer,String] :expires
1194
1337
  # The date and time at which the object is no longer cacheable. For more
1195
1338
  # information, see
@@ -1271,18 +1414,18 @@ module Aws::S3
1271
1414
  # ensure that the encryption key was transmitted without error.
1272
1415
  # @option options [String] :ssekms_key_id
1273
1416
  # If `x-amz-server-side-encryption` is present and has the value of
1274
- # `aws:kms`, this header specifies the ID of the AWS Key Management
1275
- # Service (AWS KMS) symmetrical customer managed customer master key
1276
- # (CMK) that was used for the object. If you specify
1417
+ # `aws:kms`, this header specifies the ID of the Amazon Web Services Key
1418
+ # Management Service (Amazon Web Services KMS) symmetrical customer
1419
+ # managed key that was used for the object. If you specify
1277
1420
  # `x-amz-server-side-encryption:aws:kms`, but do not provide`
1278
- # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the AWS
1279
- # managed CMK in AWS to protect the data. If the KMS key does not exist
1280
- # in the same account issuing the command, you must use the full ARN and
1281
- # not just the ID.
1421
+ # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the
1422
+ # Amazon Web Services managed key to protect the data. If the KMS key
1423
+ # does not exist in the same account issuing the command, you must use
1424
+ # the full ARN and not just the ID.
1282
1425
  # @option options [String] :ssekms_encryption_context
1283
- # Specifies the AWS KMS Encryption Context to use for object encryption.
1284
- # The value of this header is a base64-encoded UTF-8 string holding JSON
1285
- # with the encryption context key-value pairs.
1426
+ # Specifies the Amazon Web Services KMS Encryption Context to use for
1427
+ # object encryption. The value of this header is a base64-encoded UTF-8
1428
+ # string holding JSON with the encryption context key-value pairs.
1286
1429
  # @option options [Boolean] :bucket_key_enabled
1287
1430
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
1288
1431
  # encryption with server-side encryption using AWS KMS (SSE-KMS).
@@ -1294,8 +1437,8 @@ module Aws::S3
1294
1437
  # @option options [String] :request_payer
1295
1438
  # Confirms that the requester knows that they will be charged for the
1296
1439
  # request. Bucket owners need not specify this parameter in their
1297
- # requests. For information about downloading objects from requester
1298
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1440
+ # requests. For information about downloading objects from Requester
1441
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1299
1442
  # in the *Amazon S3 User Guide*.
1300
1443
  #
1301
1444
  #
@@ -1318,8 +1461,8 @@ module Aws::S3
1318
1461
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
1319
1462
  # @option options [String] :expected_bucket_owner
1320
1463
  # The account ID of the expected bucket owner. If the bucket is owned by
1321
- # a different account, the request will fail with an HTTP `403 (Access
1322
- # Denied)` error.
1464
+ # a different account, the request fails with the HTTP status code `403
1465
+ # Forbidden` (access denied).
1323
1466
  # @return [Types::PutObjectOutput]
1324
1467
  def put(options = {})
1325
1468
  options = options.merge(
@@ -1411,11 +1554,12 @@ module Aws::S3
1411
1554
  # value: "MetadataValue",
1412
1555
  # },
1413
1556
  # ],
1414
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
1557
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
1415
1558
  # },
1416
1559
  # },
1417
1560
  # },
1418
1561
  # request_payer: "requester", # accepts requester
1562
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
1419
1563
  # expected_bucket_owner: "AccountId",
1420
1564
  # })
1421
1565
  # @param [Hash] options ({})
@@ -1426,17 +1570,32 @@ module Aws::S3
1426
1570
  # @option options [String] :request_payer
1427
1571
  # Confirms that the requester knows that they will be charged for the
1428
1572
  # request. Bucket owners need not specify this parameter in their
1429
- # requests. For information about downloading objects from requester
1430
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1573
+ # requests. For information about downloading objects from Requester
1574
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1431
1575
  # in the *Amazon S3 User Guide*.
1432
1576
  #
1433
1577
  #
1434
1578
  #
1435
1579
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1580
+ # @option options [String] :checksum_algorithm
1581
+ # Indicates the algorithm used to create the checksum for the object
1582
+ # when using the SDK. This header will not provide any additional
1583
+ # functionality if not using the SDK. When sending this header, there
1584
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
1585
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
1586
+ # `400 Bad Request`. For more information, see [Checking object
1587
+ # integrity][1] in the *Amazon S3 User Guide*.
1588
+ #
1589
+ # If you provide an individual checksum, Amazon S3 ignores any provided
1590
+ # `ChecksumAlgorithm` parameter.
1591
+ #
1592
+ #
1593
+ #
1594
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1436
1595
  # @option options [String] :expected_bucket_owner
1437
1596
  # The account ID of the expected bucket owner. If the bucket is owned by
1438
- # a different account, the request will fail with an HTTP `403 (Access
1439
- # Denied)` error.
1597
+ # a different account, the request fails with the HTTP status code `403
1598
+ # Forbidden` (access denied).
1440
1599
  # @return [Types::RestoreObjectOutput]
1441
1600
  def restore_object(options = {})
1442
1601
  options = options.merge(
@@ -1462,33 +1621,24 @@ module Aws::S3
1462
1621
  # request_payer: "requester", # accepts requester
1463
1622
  # part_number: 1,
1464
1623
  # expected_bucket_owner: "AccountId",
1624
+ # checksum_mode: "ENABLED", # accepts ENABLED
1465
1625
  # })
1466
1626
  # @param [Hash] options ({})
1467
1627
  # @option options [String] :if_match
1468
1628
  # Return the object only if its entity tag (ETag) is the same as the one
1469
- # specified, otherwise return a 412 (precondition failed).
1629
+ # specified; otherwise, return a 412 (precondition failed) error.
1470
1630
  # @option options [Time,DateTime,Date,Integer,String] :if_modified_since
1471
1631
  # Return the object only if it has been modified since the specified
1472
- # time, otherwise return a 304 (not modified).
1632
+ # time; otherwise, return a 304 (not modified) error.
1473
1633
  # @option options [String] :if_none_match
1474
1634
  # Return the object only if its entity tag (ETag) is different from the
1475
- # one specified, otherwise return a 304 (not modified).
1635
+ # one specified; otherwise, return a 304 (not modified) error.
1476
1636
  # @option options [Time,DateTime,Date,Integer,String] :if_unmodified_since
1477
1637
  # Return the object only if it has not been modified since the specified
1478
- # time, otherwise return a 412 (precondition failed).
1638
+ # time; otherwise, return a 412 (precondition failed) error.
1479
1639
  # @option options [String] :range
1480
- # Downloads the specified range bytes of an object. For more information
1481
- # about the HTTP Range header, see
1482
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35][1].
1483
- #
1484
- # <note markdown="1"> Amazon S3 doesn't support retrieving multiple ranges of data per
1485
- # `GET` request.
1486
- #
1487
- # </note>
1488
- #
1489
- #
1490
- #
1491
- # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35
1640
+ # Because `HeadObject` returns only the metadata for an object, this
1641
+ # parameter has no effect.
1492
1642
  # @option options [String] :version_id
1493
1643
  # VersionId used to reference a specific version of the object.
1494
1644
  # @option options [String] :sse_customer_algorithm
@@ -1507,8 +1657,8 @@ module Aws::S3
1507
1657
  # @option options [String] :request_payer
1508
1658
  # Confirms that the requester knows that they will be charged for the
1509
1659
  # request. Bucket owners need not specify this parameter in their
1510
- # requests. For information about downloading objects from requester
1511
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1660
+ # requests. For information about downloading objects from Requester
1661
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1512
1662
  # in the *Amazon S3 User Guide*.
1513
1663
  #
1514
1664
  #
@@ -1521,8 +1671,15 @@ module Aws::S3
1521
1671
  # the number of parts in this object.
1522
1672
  # @option options [String] :expected_bucket_owner
1523
1673
  # The account ID of the expected bucket owner. If the bucket is owned by
1524
- # a different account, the request will fail with an HTTP `403 (Access
1525
- # Denied)` error.
1674
+ # a different account, the request fails with the HTTP status code `403
1675
+ # Forbidden` (access denied).
1676
+ # @option options [String] :checksum_mode
1677
+ # To retrieve the checksum, this parameter must be enabled.
1678
+ #
1679
+ # In addition, if you enable `ChecksumMode` and the object is encrypted
1680
+ # with Amazon Web Services Key Management Service (Amazon Web Services
1681
+ # KMS), you must have permission to use the `kms:Decrypt` action for the
1682
+ # request to succeed.
1526
1683
  # @return [Types::HeadObjectOutput]
1527
1684
  def head(options = {})
1528
1685
  options = options.merge(
@@ -1646,6 +1803,7 @@ module Aws::S3
1646
1803
  # request_payer: "requester", # accepts requester
1647
1804
  # bypass_governance_retention: false,
1648
1805
  # expected_bucket_owner: "AccountId",
1806
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
1649
1807
  # })
1650
1808
  # @param options ({})
1651
1809
  # @option options [String] :mfa
@@ -1656,8 +1814,8 @@ module Aws::S3
1656
1814
  # @option options [String] :request_payer
1657
1815
  # Confirms that the requester knows that they will be charged for the
1658
1816
  # request. Bucket owners need not specify this parameter in their
1659
- # requests. For information about downloading objects from requester
1660
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1817
+ # requests. For information about downloading objects from Requester
1818
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1661
1819
  # in the *Amazon S3 User Guide*.
1662
1820
  #
1663
1821
  #
@@ -1665,12 +1823,30 @@ module Aws::S3
1665
1823
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1666
1824
  # @option options [Boolean] :bypass_governance_retention
1667
1825
  # Specifies whether you want to delete this object even if it has a
1668
- # Governance-type Object Lock in place. You must have sufficient
1669
- # permissions to perform this operation.
1826
+ # Governance-type Object Lock in place. To use this header, you must
1827
+ # have the `s3:BypassGovernanceRetention` permission.
1670
1828
  # @option options [String] :expected_bucket_owner
1671
1829
  # The account ID of the expected bucket owner. If the bucket is owned by
1672
- # a different account, the request will fail with an HTTP `403 (Access
1673
- # Denied)` error.
1830
+ # a different account, the request fails with the HTTP status code `403
1831
+ # Forbidden` (access denied).
1832
+ # @option options [String] :checksum_algorithm
1833
+ # Indicates the algorithm used to create the checksum for the object
1834
+ # when using the SDK. This header will not provide any additional
1835
+ # functionality if not using the SDK. When sending this header, there
1836
+ # must be a corresponding `x-amz-checksum` or `x-amz-trailer` header
1837
+ # sent. Otherwise, Amazon S3 fails the request with the HTTP status code
1838
+ # `400 Bad Request`. For more information, see [Checking object
1839
+ # integrity][1] in the *Amazon S3 User Guide*.
1840
+ #
1841
+ # If you provide an individual checksum, Amazon S3 ignores any provided
1842
+ # `ChecksumAlgorithm` parameter.
1843
+ #
1844
+ # This checksum algorithm must be the same for all parts and it match
1845
+ # the checksum value supplied in the `CreateMultipartUpload` request.
1846
+ #
1847
+ #
1848
+ #
1849
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
1674
1850
  # @return [void]
1675
1851
  def batch_delete!(options = {})
1676
1852
  batch_enum.each do |batch|