aws-sdk-s3 1.88.1 → 1.114.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +903 -0
  3. data/LICENSE.txt +202 -0
  4. data/VERSION +1 -0
  5. data/lib/aws-sdk-s3/arn/access_point_arn.rb +14 -11
  6. data/lib/aws-sdk-s3/arn/multi_region_access_point_arn.rb +68 -0
  7. data/lib/aws-sdk-s3/arn/object_lambda_arn.rb +69 -0
  8. data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +9 -10
  9. data/lib/aws-sdk-s3/bucket.rb +144 -46
  10. data/lib/aws-sdk-s3/bucket_acl.rb +27 -8
  11. data/lib/aws-sdk-s3/bucket_cors.rb +28 -11
  12. data/lib/aws-sdk-s3/bucket_lifecycle.rb +30 -11
  13. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +31 -9
  14. data/lib/aws-sdk-s3/bucket_logging.rb +24 -8
  15. data/lib/aws-sdk-s3/bucket_notification.rb +21 -9
  16. data/lib/aws-sdk-s3/bucket_policy.rb +26 -9
  17. data/lib/aws-sdk-s3/bucket_request_payment.rb +26 -10
  18. data/lib/aws-sdk-s3/bucket_tagging.rb +26 -9
  19. data/lib/aws-sdk-s3/bucket_versioning.rb +67 -16
  20. data/lib/aws-sdk-s3/bucket_website.rb +26 -9
  21. data/lib/aws-sdk-s3/client.rb +3624 -1853
  22. data/lib/aws-sdk-s3/client_api.rb +452 -22
  23. data/lib/aws-sdk-s3/customizations/bucket.rb +8 -3
  24. data/lib/aws-sdk-s3/customizations/object.rb +116 -18
  25. data/lib/aws-sdk-s3/encryption/client.rb +1 -1
  26. data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +0 -4
  27. data/lib/aws-sdk-s3/encryptionV2/client.rb +1 -1
  28. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +0 -4
  29. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +0 -4
  30. data/lib/aws-sdk-s3/errors.rb +1 -1
  31. data/lib/aws-sdk-s3/event_streams.rb +1 -1
  32. data/lib/aws-sdk-s3/file_downloader.rb +7 -2
  33. data/lib/aws-sdk-s3/file_uploader.rb +8 -3
  34. data/lib/aws-sdk-s3/multipart_file_uploader.rb +26 -7
  35. data/lib/aws-sdk-s3/multipart_upload.rb +133 -19
  36. data/lib/aws-sdk-s3/multipart_upload_part.rb +141 -21
  37. data/lib/aws-sdk-s3/object.rb +391 -130
  38. data/lib/aws-sdk-s3/object_acl.rb +30 -11
  39. data/lib/aws-sdk-s3/object_summary.rb +243 -115
  40. data/lib/aws-sdk-s3/object_version.rb +80 -53
  41. data/lib/aws-sdk-s3/plugins/accelerate.rb +7 -1
  42. data/lib/aws-sdk-s3/plugins/arn.rb +91 -42
  43. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +1 -1
  44. data/lib/aws-sdk-s3/plugins/dualstack.rb +25 -31
  45. data/lib/aws-sdk-s3/plugins/get_bucket_location_fix.rb +1 -1
  46. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +17 -10
  47. data/lib/aws-sdk-s3/plugins/md5s.rb +5 -3
  48. data/lib/aws-sdk-s3/plugins/object_lambda_endpoint.rb +25 -0
  49. data/lib/aws-sdk-s3/plugins/s3_signer.rb +41 -6
  50. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +31 -0
  51. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +23 -2
  52. data/lib/aws-sdk-s3/presigned_post.rb +38 -19
  53. data/lib/aws-sdk-s3/presigner.rb +19 -5
  54. data/lib/aws-sdk-s3/resource.rb +23 -3
  55. data/lib/aws-sdk-s3/types.rb +3775 -1304
  56. data/lib/aws-sdk-s3/waiters.rb +1 -1
  57. data/lib/aws-sdk-s3.rb +2 -2
  58. metadata +18 -12
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -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]
@@ -73,7 +73,7 @@ module Aws::S3
73
73
  # If an archive copy is already restored, the header value indicates
74
74
  # when Amazon S3 is scheduled to delete the object copy. For example:
75
75
  #
76
- # `x-amz-restore: ongoing-request="false", expiry-date="Fri, 23 Dec 2012
76
+ # `x-amz-restore: ongoing-request="false", expiry-date="Fri, 21 Dec 2012
77
77
  # 00:00:00 GMT"`
78
78
  #
79
79
  # If the object restoration is in progress, the header returns the value
@@ -97,7 +97,7 @@ module Aws::S3
97
97
  data[:archive_status]
98
98
  end
99
99
 
100
- # Last modified date of the object
100
+ # Creation date of the object.
101
101
  # @return [Time]
102
102
  def last_modified
103
103
  data[:last_modified]
@@ -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,
@@ -632,7 +700,7 @@ module Aws::S3
632
700
  #
633
701
  #
634
702
  #
635
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html
703
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html
636
704
  # @option options [String] :copy_source_if_match
637
705
  # Copies the object if its entity tag (ETag) matches the specified tag.
638
706
  # @option options [Time,DateTime,Date,Integer,String] :copy_source_if_modified_since
@@ -679,7 +747,7 @@ module Aws::S3
679
747
  # and high availability. Depending on performance needs, you can specify
680
748
  # a different Storage Class. Amazon S3 on Outposts only uses the
681
749
  # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
682
- # in the *Amazon S3 Service Developer Guide*.
750
+ # in the *Amazon S3 User Guide*.
683
751
  #
684
752
  #
685
753
  #
@@ -702,28 +770,29 @@ 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
710
- # Developer 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).
722
791
  # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
723
792
  # for object encryption with SSE-KMS.
724
793
  #
725
- # Specifying this header with a COPY operation doesn’t affect
726
- # bucket-level settings for S3 Bucket Key.
794
+ # Specifying this header with a COPY action doesn’t affect bucket-level
795
+ # settings for S3 Bucket Key.
727
796
  # @option options [String] :copy_source_sse_customer_algorithm
728
797
  # Specifies the algorithm to use when decrypting the source object (for
729
798
  # example, AES256).
@@ -738,9 +807,9 @@ 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]
743
- # in the *Amazon S3 Developer Guide*.
810
+ # requests. For information about downloading objects from Requester
811
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
812
+ # in the *Amazon S3 User Guide*.
744
813
  #
745
814
  #
746
815
  #
@@ -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
- # 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.
829
+ # The account ID of the expected destination bucket owner. If the
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
- # 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.
833
+ # The account ID of the expected source bucket owner. If the source
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,20 +863,21 @@ 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]
799
- # in the *Amazon S3 Developer Guide*.
866
+ # requests. For information about downloading objects from Requester
867
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
868
+ # in the *Amazon S3 User Guide*.
800
869
  #
801
870
  #
802
871
  #
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
- # 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.
878
+ # The account ID of the expected bucket owner. If the bucket is owned by
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
@@ -881,13 +952,13 @@ module Aws::S3
881
952
  # @option options [String] :version_id
882
953
  # VersionId used to reference a specific version of the object.
883
954
  # @option options [String] :sse_customer_algorithm
884
- # Specifies the algorithm to use to when encrypting the object (for
955
+ # Specifies the algorithm to use to when decrypting the object (for
885
956
  # example, AES256).
886
957
  # @option options [String] :sse_customer_key
887
- # Specifies the customer-provided encryption key for Amazon S3 to use in
888
- # encrypting data. This value is used to store the object and then it is
889
- # discarded; Amazon S3 does not store the encryption key. The key must
890
- # be appropriate for use with the algorithm specified in the
958
+ # Specifies the customer-provided encryption key for Amazon S3 used to
959
+ # encrypt the data. This value is used to decrypt the object when
960
+ # recovering it and must match the one used when storing the data. The
961
+ # key must be appropriate for use with the algorithm specified in the
891
962
  # `x-amz-server-side-encryption-customer-algorithm` header.
892
963
  # @option options [String] :sse_customer_key_md5
893
964
  # Specifies the 128-bit MD5 digest of the encryption key according to
@@ -896,9 +967,9 @@ 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]
901
- # in the *Amazon S3 Developer Guide*.
970
+ # requests. For information about downloading objects from Requester
971
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
972
+ # in the *Amazon S3 User Guide*.
902
973
  #
903
974
  #
904
975
  #
@@ -909,9 +980,11 @@ module Aws::S3
909
980
  # for the part specified. Useful for downloading just a part of an
910
981
  # object.
911
982
  # @option options [String] :expected_bucket_owner
912
- # 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.
983
+ # The account ID of the expected bucket owner. If the bucket is owned by
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
@@ -1002,7 +1076,7 @@ module Aws::S3
1002
1076
  # and high availability. Depending on performance needs, you can specify
1003
1077
  # a different Storage Class. Amazon S3 on Outposts only uses the
1004
1078
  # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
1005
- # in the *Amazon S3 Service Developer Guide*.
1079
+ # in the *Amazon S3 User Guide*.
1006
1080
  #
1007
1081
  #
1008
1082
  #
@@ -1025,34 +1099,35 @@ 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 Developer 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
- # [1]: https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
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).
1045
1120
  # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
1046
1121
  # for object encryption with SSE-KMS.
1047
1122
  #
1048
- # Specifying this header with an object operation doesn’t affect
1123
+ # Specifying this header with an object action doesn’t affect
1049
1124
  # bucket-level settings for S3 Bucket Key.
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]
1055
- # in the *Amazon S3 Developer Guide*.
1128
+ # requests. For information about downloading objects from Requester
1129
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1130
+ # in the *Amazon S3 User Guide*.
1056
1131
  #
1057
1132
  #
1058
1133
  #
@@ -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
- # 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.
1147
+ # The account ID of the expected bucket owner. If the bucket is owned by
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
@@ -1226,7 +1369,7 @@ module Aws::S3
1226
1369
  # and high availability. Depending on performance needs, you can specify
1227
1370
  # a different Storage Class. Amazon S3 on Outposts only uses the
1228
1371
  # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
1229
- # in the *Amazon S3 Service Developer Guide*.
1372
+ # in the *Amazon S3 User Guide*.
1230
1373
  #
1231
1374
  #
1232
1375
  #
@@ -1271,34 +1414,32 @@ 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.
1277
- #
1278
- # If the value of `x-amz-server-side-encryption` is `aws:kms`, this
1279
- # header specifies the ID of the symmetric customer managed AWS KMS CMK
1280
- # that will be 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
1281
1420
  # `x-amz-server-side-encryption:aws:kms`, but do not provide`
1282
- # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the AWS
1283
- # managed CMK in AWS to protect the data.
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.
1284
1425
  # @option options [String] :ssekms_encryption_context
1285
- # Specifies the AWS KMS Encryption Context to use for object encryption.
1286
- # The value of this header is a base64-encoded UTF-8 string holding JSON
1287
- # 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.
1288
1429
  # @option options [Boolean] :bucket_key_enabled
1289
1430
  # Specifies whether Amazon S3 should use an S3 Bucket Key for object
1290
1431
  # encryption with server-side encryption using AWS KMS (SSE-KMS).
1291
1432
  # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
1292
1433
  # for object encryption with SSE-KMS.
1293
1434
  #
1294
- # Specifying this header with a PUT operation doesn’t affect
1295
- # bucket-level settings for S3 Bucket Key.
1435
+ # Specifying this header with a PUT action doesn’t affect bucket-level
1436
+ # settings for S3 Bucket Key.
1296
1437
  # @option options [String] :request_payer
1297
1438
  # Confirms that the requester knows that they will be charged for the
1298
1439
  # request. Bucket owners need not specify this parameter in their
1299
- # requests. For information about downloading objects from requester
1300
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1301
- # in the *Amazon S3 Developer Guide*.
1440
+ # requests. For information about downloading objects from Requester
1441
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1442
+ # in the *Amazon S3 User Guide*.
1302
1443
  #
1303
1444
  #
1304
1445
  #
@@ -1310,6 +1451,7 @@ module Aws::S3
1310
1451
  # The Object Lock mode that you want to apply to this object.
1311
1452
  # @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
1312
1453
  # The date and time when you want this object's Object Lock to expire.
1454
+ # Must be formatted as a timestamp parameter.
1313
1455
  # @option options [String] :object_lock_legal_hold_status
1314
1456
  # Specifies whether a legal hold will be applied to this object. For
1315
1457
  # more information about S3 Object Lock, see [Object Lock][1].
@@ -1318,9 +1460,9 @@ module Aws::S3
1318
1460
  #
1319
1461
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
1320
1462
  # @option options [String] :expected_bucket_owner
1321
- # The account id of the expected bucket owner. If the bucket is owned by
1322
- # a different account, the request will fail with an HTTP `403 (Access
1323
- # Denied)` error.
1463
+ # The account ID of the expected bucket owner. If the bucket is owned by
1464
+ # a different account, the request fails with the HTTP status code `403
1465
+ # Forbidden` (access denied).
1324
1466
  # @return [Types::PutObjectOutput]
1325
1467
  def put(options = {})
1326
1468
  options = options.merge(
@@ -1412,11 +1554,12 @@ module Aws::S3
1412
1554
  # value: "MetadataValue",
1413
1555
  # },
1414
1556
  # ],
1415
- # 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
1416
1558
  # },
1417
1559
  # },
1418
1560
  # },
1419
1561
  # request_payer: "requester", # accepts requester
1562
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
1420
1563
  # expected_bucket_owner: "AccountId",
1421
1564
  # })
1422
1565
  # @param [Hash] options ({})
@@ -1427,17 +1570,32 @@ module Aws::S3
1427
1570
  # @option options [String] :request_payer
1428
1571
  # Confirms that the requester knows that they will be charged for the
1429
1572
  # request. Bucket owners need not specify this parameter in their
1430
- # requests. For information about downloading objects from requester
1431
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1432
- # in the *Amazon S3 Developer Guide*.
1573
+ # requests. For information about downloading objects from Requester
1574
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1575
+ # in the *Amazon S3 User Guide*.
1433
1576
  #
1434
1577
  #
1435
1578
  #
1436
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
1437
1595
  # @option options [String] :expected_bucket_owner
1438
- # The account id of the expected bucket owner. If the bucket is owned by
1439
- # a different account, the request will fail with an HTTP `403 (Access
1440
- # Denied)` error.
1596
+ # The account ID of the expected bucket owner. If the bucket is owned by
1597
+ # a different account, the request fails with the HTTP status code `403
1598
+ # Forbidden` (access denied).
1441
1599
  # @return [Types::RestoreObjectOutput]
1442
1600
  def restore_object(options = {})
1443
1601
  options = options.merge(
@@ -1448,6 +1606,90 @@ module Aws::S3
1448
1606
  resp.data
1449
1607
  end
1450
1608
 
1609
+ # @example Request syntax with placeholder values
1610
+ #
1611
+ # object.head({
1612
+ # if_match: "IfMatch",
1613
+ # if_modified_since: Time.now,
1614
+ # if_none_match: "IfNoneMatch",
1615
+ # if_unmodified_since: Time.now,
1616
+ # range: "Range",
1617
+ # version_id: "ObjectVersionId",
1618
+ # sse_customer_algorithm: "SSECustomerAlgorithm",
1619
+ # sse_customer_key: "SSECustomerKey",
1620
+ # sse_customer_key_md5: "SSECustomerKeyMD5",
1621
+ # request_payer: "requester", # accepts requester
1622
+ # part_number: 1,
1623
+ # expected_bucket_owner: "AccountId",
1624
+ # checksum_mode: "ENABLED", # accepts ENABLED
1625
+ # })
1626
+ # @param [Hash] options ({})
1627
+ # @option options [String] :if_match
1628
+ # Return the object only if its entity tag (ETag) is the same as the one
1629
+ # specified; otherwise, return a 412 (precondition failed) error.
1630
+ # @option options [Time,DateTime,Date,Integer,String] :if_modified_since
1631
+ # Return the object only if it has been modified since the specified
1632
+ # time; otherwise, return a 304 (not modified) error.
1633
+ # @option options [String] :if_none_match
1634
+ # Return the object only if its entity tag (ETag) is different from the
1635
+ # one specified; otherwise, return a 304 (not modified) error.
1636
+ # @option options [Time,DateTime,Date,Integer,String] :if_unmodified_since
1637
+ # Return the object only if it has not been modified since the specified
1638
+ # time; otherwise, return a 412 (precondition failed) error.
1639
+ # @option options [String] :range
1640
+ # Because `HeadObject` returns only the metadata for an object, this
1641
+ # parameter has no effect.
1642
+ # @option options [String] :version_id
1643
+ # VersionId used to reference a specific version of the object.
1644
+ # @option options [String] :sse_customer_algorithm
1645
+ # Specifies the algorithm to use to when encrypting the object (for
1646
+ # example, AES256).
1647
+ # @option options [String] :sse_customer_key
1648
+ # Specifies the customer-provided encryption key for Amazon S3 to use in
1649
+ # encrypting data. This value is used to store the object and then it is
1650
+ # discarded; Amazon S3 does not store the encryption key. The key must
1651
+ # be appropriate for use with the algorithm specified in the
1652
+ # `x-amz-server-side-encryption-customer-algorithm` header.
1653
+ # @option options [String] :sse_customer_key_md5
1654
+ # Specifies the 128-bit MD5 digest of the encryption key according to
1655
+ # RFC 1321. Amazon S3 uses this header for a message integrity check to
1656
+ # ensure that the encryption key was transmitted without error.
1657
+ # @option options [String] :request_payer
1658
+ # Confirms that the requester knows that they will be charged for the
1659
+ # request. Bucket owners need not specify this parameter in their
1660
+ # requests. For information about downloading objects from Requester
1661
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1662
+ # in the *Amazon S3 User Guide*.
1663
+ #
1664
+ #
1665
+ #
1666
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1667
+ # @option options [Integer] :part_number
1668
+ # Part number of the object being read. This is a positive integer
1669
+ # between 1 and 10,000. Effectively performs a 'ranged' HEAD request
1670
+ # for the part specified. Useful querying about the size of the part and
1671
+ # the number of parts in this object.
1672
+ # @option options [String] :expected_bucket_owner
1673
+ # The account ID of the expected bucket owner. If the bucket is owned by
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.
1683
+ # @return [Types::HeadObjectOutput]
1684
+ def head(options = {})
1685
+ options = options.merge(
1686
+ bucket: @bucket_name,
1687
+ key: @key
1688
+ )
1689
+ resp = @client.head_object(options)
1690
+ resp.data
1691
+ end
1692
+
1451
1693
  # @!group Associations
1452
1694
 
1453
1695
  # @return [ObjectAcl]
@@ -1561,6 +1803,7 @@ module Aws::S3
1561
1803
  # request_payer: "requester", # accepts requester
1562
1804
  # bypass_governance_retention: false,
1563
1805
  # expected_bucket_owner: "AccountId",
1806
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
1564
1807
  # })
1565
1808
  # @param options ({})
1566
1809
  # @option options [String] :mfa
@@ -1571,21 +1814,39 @@ module Aws::S3
1571
1814
  # @option options [String] :request_payer
1572
1815
  # Confirms that the requester knows that they will be charged for the
1573
1816
  # request. Bucket owners need not specify this parameter in their
1574
- # requests. For information about downloading objects from requester
1575
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1576
- # in the *Amazon S3 Developer Guide*.
1817
+ # requests. For information about downloading objects from Requester
1818
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
1819
+ # in the *Amazon S3 User Guide*.
1577
1820
  #
1578
1821
  #
1579
1822
  #
1580
1823
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1581
1824
  # @option options [Boolean] :bypass_governance_retention
1582
1825
  # Specifies whether you want to delete this object even if it has a
1583
- # Governance-type Object Lock in place. You must have sufficient
1584
- # permissions to perform this operation.
1826
+ # Governance-type Object Lock in place. To use this header, you must
1827
+ # have the `s3:BypassGovernanceRetention` permission.
1585
1828
  # @option options [String] :expected_bucket_owner
1586
- # The account id of the expected bucket owner. If the bucket is owned by
1587
- # a different account, the request will fail with an HTTP `403 (Access
1588
- # Denied)` error.
1829
+ # The account ID of the expected bucket owner. If the bucket is owned by
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
1589
1850
  # @return [void]
1590
1851
  def batch_delete!(options = {})
1591
1852
  batch_enum.each do |batch|