aws-sdk-s3 1.86.2 → 1.116.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +913 -0
  3. data/LICENSE.txt +202 -0
  4. data/VERSION +1 -0
  5. data/lib/aws-sdk-s3/arn/access_point_arn.rb +19 -12
  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 +15 -12
  9. data/lib/aws-sdk-s3/bucket.rb +145 -47
  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 +3633 -1862
  22. data/lib/aws-sdk-s3/client_api.rb +546 -116
  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/default_cipher_provider.rb +3 -3
  30. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +0 -4
  31. data/lib/aws-sdk-s3/errors.rb +1 -1
  32. data/lib/aws-sdk-s3/event_streams.rb +1 -1
  33. data/lib/aws-sdk-s3/file_downloader.rb +7 -2
  34. data/lib/aws-sdk-s3/file_uploader.rb +8 -3
  35. data/lib/aws-sdk-s3/multipart_file_uploader.rb +26 -7
  36. data/lib/aws-sdk-s3/multipart_upload.rb +133 -19
  37. data/lib/aws-sdk-s3/multipart_upload_part.rb +141 -21
  38. data/lib/aws-sdk-s3/object.rb +391 -130
  39. data/lib/aws-sdk-s3/object_acl.rb +30 -11
  40. data/lib/aws-sdk-s3/object_summary.rb +243 -115
  41. data/lib/aws-sdk-s3/object_version.rb +80 -53
  42. data/lib/aws-sdk-s3/plugins/accelerate.rb +13 -4
  43. data/lib/aws-sdk-s3/plugins/arn.rb +125 -58
  44. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +1 -1
  45. data/lib/aws-sdk-s3/plugins/dualstack.rb +33 -32
  46. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +2 -1
  47. data/lib/aws-sdk-s3/plugins/get_bucket_location_fix.rb +1 -1
  48. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +17 -11
  49. data/lib/aws-sdk-s3/plugins/md5s.rb +5 -3
  50. data/lib/aws-sdk-s3/plugins/object_lambda_endpoint.rb +25 -0
  51. data/lib/aws-sdk-s3/plugins/s3_signer.rb +55 -28
  52. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +31 -0
  53. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +23 -2
  54. data/lib/aws-sdk-s3/presigned_post.rb +38 -19
  55. data/lib/aws-sdk-s3/presigner.rb +33 -30
  56. data/lib/aws-sdk-s3/resource.rb +24 -4
  57. data/lib/aws-sdk-s3/types.rb +3777 -1306
  58. data/lib/aws-sdk-s3/waiters.rb +1 -1
  59. data/lib/aws-sdk-s3.rb +2 -2
  60. metadata +20 -14
@@ -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|