aws-sdk-s3 1.84.1 → 1.117.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +930 -0
  3. data/LICENSE.txt +202 -0
  4. data/VERSION +1 -0
  5. data/lib/aws-sdk-s3/bucket.rb +154 -46
  6. data/lib/aws-sdk-s3/bucket_acl.rb +28 -6
  7. data/lib/aws-sdk-s3/bucket_cors.rb +29 -9
  8. data/lib/aws-sdk-s3/bucket_lifecycle.rb +30 -9
  9. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +31 -9
  10. data/lib/aws-sdk-s3/bucket_logging.rb +25 -6
  11. data/lib/aws-sdk-s3/bucket_notification.rb +21 -9
  12. data/lib/aws-sdk-s3/bucket_policy.rb +27 -7
  13. data/lib/aws-sdk-s3/bucket_request_payment.rb +27 -8
  14. data/lib/aws-sdk-s3/bucket_tagging.rb +27 -7
  15. data/lib/aws-sdk-s3/bucket_versioning.rb +70 -10
  16. data/lib/aws-sdk-s3/bucket_website.rb +27 -7
  17. data/lib/aws-sdk-s3/client.rb +3747 -1848
  18. data/lib/aws-sdk-s3/client_api.rb +677 -227
  19. data/lib/aws-sdk-s3/customizations/bucket.rb +28 -49
  20. data/lib/aws-sdk-s3/customizations/object.rb +116 -18
  21. data/lib/aws-sdk-s3/encryption/client.rb +1 -1
  22. data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +0 -4
  23. data/lib/aws-sdk-s3/encryptionV2/client.rb +1 -1
  24. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +0 -4
  25. data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +3 -3
  26. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +0 -4
  27. data/lib/aws-sdk-s3/endpoint_parameters.rb +142 -0
  28. data/lib/aws-sdk-s3/endpoint_provider.rb +2020 -0
  29. data/lib/aws-sdk-s3/endpoints.rb +2149 -0
  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/legacy_signer.rb +15 -25
  35. data/lib/aws-sdk-s3/multipart_file_uploader.rb +26 -7
  36. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +36 -10
  37. data/lib/aws-sdk-s3/multipart_upload.rb +133 -19
  38. data/lib/aws-sdk-s3/multipart_upload_part.rb +141 -21
  39. data/lib/aws-sdk-s3/object.rb +430 -126
  40. data/lib/aws-sdk-s3/object_acl.rb +31 -9
  41. data/lib/aws-sdk-s3/object_summary.rb +265 -110
  42. data/lib/aws-sdk-s3/object_version.rb +80 -53
  43. data/lib/aws-sdk-s3/plugins/accelerate.rb +1 -39
  44. data/lib/aws-sdk-s3/plugins/arn.rb +25 -142
  45. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +3 -39
  46. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +1 -6
  47. data/lib/aws-sdk-s3/plugins/dualstack.rb +2 -49
  48. data/lib/aws-sdk-s3/plugins/endpoints.rb +262 -0
  49. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +3 -1
  50. data/lib/aws-sdk-s3/plugins/get_bucket_location_fix.rb +1 -1
  51. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +8 -31
  52. data/lib/aws-sdk-s3/plugins/md5s.rb +5 -3
  53. data/lib/aws-sdk-s3/plugins/s3_signer.rb +33 -102
  54. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +31 -0
  55. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +23 -2
  56. data/lib/aws-sdk-s3/presigned_post.rb +47 -35
  57. data/lib/aws-sdk-s3/presigner.rb +39 -49
  58. data/lib/aws-sdk-s3/resource.rb +24 -4
  59. data/lib/aws-sdk-s3/types.rb +3785 -4735
  60. data/lib/aws-sdk-s3/waiters.rb +1 -1
  61. data/lib/aws-sdk-s3.rb +6 -2
  62. metadata +19 -14
  63. data/lib/aws-sdk-s3/arn/access_point_arn.rb +0 -62
  64. data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +0 -71
@@ -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,14 +272,21 @@ 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
 
283
+ # Indicates whether the object uses an S3 Bucket Key for server-side
284
+ # encryption with Amazon Web Services KMS (SSE-KMS).
285
+ # @return [Boolean]
286
+ def bucket_key_enabled
287
+ data[:bucket_key_enabled]
288
+ end
289
+
227
290
  # Provides storage class information of the object. Amazon S3 returns
228
291
  # this header for all objects except for S3 Standard storage class
229
292
  # objects.
@@ -246,15 +309,15 @@ module Aws::S3
246
309
  end
247
310
 
248
311
  # Amazon S3 can return this header if your request involves a bucket
249
- # that is either a source or destination in a replication rule.
312
+ # that is either a source or a destination in a replication rule.
250
313
  #
251
314
  # In replication, you have a source bucket on which you configure
252
- # replication and destination bucket where Amazon S3 stores object
253
- # replicas. When you request an object (`GetObject`) or object metadata
254
- # (`HeadObject`) from these buckets, Amazon S3 will return the
315
+ # replication and destination bucket or buckets where Amazon S3 stores
316
+ # object replicas. When you request an object (`GetObject`) or object
317
+ # metadata (`HeadObject`) from these buckets, Amazon S3 will return the
255
318
  # `x-amz-replication-status` header in the response as follows:
256
319
  #
257
- # * If requesting an object from the source bucket Amazon S3 will
320
+ # * **If requesting an object from the source bucket**, Amazon S3 will
258
321
  # return the `x-amz-replication-status` header if the object in your
259
322
  # request is eligible for replication.
260
323
  #
@@ -267,9 +330,18 @@ module Aws::S3
267
330
  # value PENDING, COMPLETED or FAILED indicating object replication
268
331
  # status.
269
332
  #
270
- # * If requesting an object from the destination bucket Amazon S3 will
271
- # return the `x-amz-replication-status` header with value REPLICA if
272
- # the object in your request is a replica that Amazon S3 created.
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.
337
+ #
338
+ # * **When replicating objects to multiple destination buckets**, the
339
+ # `x-amz-replication-status` header acts differently. The header of
340
+ # the source object will only return a value of COMPLETED when
341
+ # replication is successful to all destinations. The header will
342
+ # remain at value PENDING until replication has completed for all
343
+ # destinations. If one or more destinations fails replication the
344
+ # header will return FAILED.
273
345
  #
274
346
  # For more information, see [Replication][1].
275
347
  #
@@ -281,7 +353,9 @@ module Aws::S3
281
353
  data[:replication_status]
282
354
  end
283
355
 
284
- # 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.
285
359
  # @return [Integer]
286
360
  def parts_count
287
361
  data[:parts_count]
@@ -516,6 +590,7 @@ module Aws::S3
516
590
  # object.copy_from({
517
591
  # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control
518
592
  # cache_control: "CacheControl",
593
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
519
594
  # content_disposition: "ContentDisposition",
520
595
  # content_encoding: "ContentEncoding",
521
596
  # content_language: "ContentLanguage",
@@ -536,13 +611,14 @@ module Aws::S3
536
611
  # metadata_directive: "COPY", # accepts COPY, REPLACE
537
612
  # tagging_directive: "COPY", # accepts COPY, REPLACE
538
613
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
539
- # 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
540
615
  # website_redirect_location: "WebsiteRedirectLocation",
541
616
  # sse_customer_algorithm: "SSECustomerAlgorithm",
542
617
  # sse_customer_key: "SSECustomerKey",
543
618
  # sse_customer_key_md5: "SSECustomerKeyMD5",
544
619
  # ssekms_key_id: "SSEKMSKeyId",
545
620
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
621
+ # bucket_key_enabled: false,
546
622
  # copy_source_sse_customer_algorithm: "CopySourceSSECustomerAlgorithm",
547
623
  # copy_source_sse_customer_key: "CopySourceSSECustomerKey",
548
624
  # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5",
@@ -561,6 +637,14 @@ module Aws::S3
561
637
  # This action is not supported by Amazon S3 on Outposts.
562
638
  # @option options [String] :cache_control
563
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
564
648
  # @option options [String] :content_disposition
565
649
  # Specifies presentational information for the object.
566
650
  # @option options [String] :content_encoding
@@ -580,8 +664,8 @@ module Aws::S3
580
664
  # of the source bucket and the key of the source object, separated by
581
665
  # a slash (/). For example, to copy the object `reports/january.pdf`
582
666
  # from the bucket `awsexamplebucket`, use
583
- # `awsexamplebucket/reports/january.pdf`. The value must be URL
584
- # encoded.
667
+ # `awsexamplebucket/reports/january.pdf`. The value must be
668
+ # URL-encoded.
585
669
  #
586
670
  # * For objects accessed through access points, specify the Amazon
587
671
  # Resource Name (ARN) of the object as accessed through the access
@@ -594,7 +678,8 @@ module Aws::S3
594
678
  # The value must be URL encoded.
595
679
  #
596
680
  # <note markdown="1"> Amazon S3 supports copy operations using access points only when the
597
- # source and destination buckets are in the same AWS Region.
681
+ # source and destination buckets are in the same Amazon Web Services
682
+ # Region.
598
683
  #
599
684
  # </note>
600
685
  #
@@ -605,7 +690,7 @@ module Aws::S3
605
690
  # outpost `my-outpost` owned by account `123456789012` in Region
606
691
  # `us-west-2`, use the URL encoding of
607
692
  # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
608
- # The value must be URL encoded.
693
+ # The value must be URL-encoded.
609
694
  #
610
695
  # To copy a specific version of an object, append
611
696
  # `?versionId=<version-id>` to the value (for example,
@@ -615,7 +700,7 @@ module Aws::S3
615
700
  #
616
701
  #
617
702
  #
618
- # [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
619
704
  # @option options [String] :copy_source_if_match
620
705
  # Copies the object if its entity tag (ETag) matches the specified tag.
621
706
  # @option options [Time,DateTime,Date,Integer,String] :copy_source_if_modified_since
@@ -662,7 +747,7 @@ module Aws::S3
662
747
  # and high availability. Depending on performance needs, you can specify
663
748
  # a different Storage Class. Amazon S3 on Outposts only uses the
664
749
  # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
665
- # in the *Amazon S3 Service Developer Guide*.
750
+ # in the *Amazon S3 User Guide*.
666
751
  #
667
752
  #
668
753
  #
@@ -685,20 +770,29 @@ module Aws::S3
685
770
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
686
771
  # ensure that the encryption key was transmitted without error.
687
772
  # @option options [String] :ssekms_key_id
688
- # Specifies the AWS KMS key ID to use for object encryption. All GET and
689
- # PUT requests for an object protected by AWS KMS will fail if not made
690
- # via SSL or using SigV4. For information about configuring using any of
691
- # the officially supported AWS SDKs and AWS CLI, see [Specifying the
692
- # Signature Version in Request Authentication][1] in the *Amazon S3
693
- # 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*.
694
780
  #
695
781
  #
696
782
  #
697
783
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
698
784
  # @option options [String] :ssekms_encryption_context
699
- # Specifies the AWS KMS Encryption Context to use for object encryption.
700
- # The value of this header is a base64-encoded UTF-8 string holding JSON
701
- # 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.
788
+ # @option options [Boolean] :bucket_key_enabled
789
+ # Specifies whether Amazon S3 should use an S3 Bucket Key for object
790
+ # encryption with server-side encryption using AWS KMS (SSE-KMS).
791
+ # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
792
+ # for object encryption with SSE-KMS.
793
+ #
794
+ # Specifying this header with a COPY action doesn’t affect bucket-level
795
+ # settings for S3 Bucket Key.
702
796
  # @option options [String] :copy_source_sse_customer_algorithm
703
797
  # Specifies the algorithm to use when decrypting the source object (for
704
798
  # example, AES256).
@@ -713,9 +807,9 @@ module Aws::S3
713
807
  # @option options [String] :request_payer
714
808
  # Confirms that the requester knows that they will be charged for the
715
809
  # request. Bucket owners need not specify this parameter in their
716
- # requests. For information about downloading objects from requester
717
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
718
- # 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*.
719
813
  #
720
814
  #
721
815
  #
@@ -730,15 +824,15 @@ module Aws::S3
730
824
  # The date and time when you want the copied object's Object Lock to
731
825
  # expire.
732
826
  # @option options [String] :object_lock_legal_hold_status
733
- # 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.
734
828
  # @option options [String] :expected_bucket_owner
735
- # The account id of the expected destination bucket owner. If the
736
- # destination bucket is owned by a different account, the request will
737
- # 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).
738
832
  # @option options [String] :expected_source_bucket_owner
739
- # The account id of the expected source bucket owner. If the source
740
- # bucket is owned by a different account, the request will fail with an
741
- # 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).
742
836
  # @return [Types::CopyObjectOutput]
743
837
  def copy_from(options = {})
744
838
  options = options.merge(
@@ -769,20 +863,21 @@ module Aws::S3
769
863
  # @option options [String] :request_payer
770
864
  # Confirms that the requester knows that they will be charged for the
771
865
  # request. Bucket owners need not specify this parameter in their
772
- # requests. For information about downloading objects from requester
773
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
774
- # 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*.
775
869
  #
776
870
  #
777
871
  #
778
872
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
779
873
  # @option options [Boolean] :bypass_governance_retention
780
874
  # Indicates whether S3 Object Lock should bypass Governance-mode
781
- # restrictions to process this operation.
875
+ # restrictions to process this operation. To use this header, you must
876
+ # have the `s3:BypassGovernanceRetention` permission.
782
877
  # @option options [String] :expected_bucket_owner
783
- # The account id of the expected bucket owner. If the bucket is owned by
784
- # a different account, the request will fail with an HTTP `403 (Access
785
- # 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).
786
881
  # @return [Types::DeleteObjectOutput]
787
882
  def delete(options = {})
788
883
  options = options.merge(
@@ -814,20 +909,21 @@ module Aws::S3
814
909
  # request_payer: "requester", # accepts requester
815
910
  # part_number: 1,
816
911
  # expected_bucket_owner: "AccountId",
912
+ # checksum_mode: "ENABLED", # accepts ENABLED
817
913
  # })
818
914
  # @param [Hash] options ({})
819
915
  # @option options [String] :if_match
820
916
  # Return the object only if its entity tag (ETag) is the same as the one
821
- # specified, otherwise return a 412 (precondition failed).
917
+ # specified; otherwise, return a 412 (precondition failed) error.
822
918
  # @option options [Time,DateTime,Date,Integer,String] :if_modified_since
823
919
  # Return the object only if it has been modified since the specified
824
- # time, otherwise return a 304 (not modified).
920
+ # time; otherwise, return a 304 (not modified) error.
825
921
  # @option options [String] :if_none_match
826
922
  # Return the object only if its entity tag (ETag) is different from the
827
- # one specified, otherwise return a 304 (not modified).
923
+ # one specified; otherwise, return a 304 (not modified) error.
828
924
  # @option options [Time,DateTime,Date,Integer,String] :if_unmodified_since
829
925
  # Return the object only if it has not been modified since the specified
830
- # time, otherwise return a 412 (precondition failed).
926
+ # time; otherwise, return a 412 (precondition failed) error.
831
927
  # @option options [String] :range
832
928
  # Downloads the specified range bytes of an object. For more information
833
929
  # about the HTTP Range header, see
@@ -856,13 +952,13 @@ module Aws::S3
856
952
  # @option options [String] :version_id
857
953
  # VersionId used to reference a specific version of the object.
858
954
  # @option options [String] :sse_customer_algorithm
859
- # Specifies the algorithm to use to when encrypting the object (for
955
+ # Specifies the algorithm to use to when decrypting the object (for
860
956
  # example, AES256).
861
957
  # @option options [String] :sse_customer_key
862
- # Specifies the customer-provided encryption key for Amazon S3 to use in
863
- # encrypting data. This value is used to store the object and then it is
864
- # discarded; Amazon S3 does not store the encryption key. The key must
865
- # 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
866
962
  # `x-amz-server-side-encryption-customer-algorithm` header.
867
963
  # @option options [String] :sse_customer_key_md5
868
964
  # Specifies the 128-bit MD5 digest of the encryption key according to
@@ -871,9 +967,9 @@ module Aws::S3
871
967
  # @option options [String] :request_payer
872
968
  # Confirms that the requester knows that they will be charged for the
873
969
  # request. Bucket owners need not specify this parameter in their
874
- # requests. For information about downloading objects from requester
875
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
876
- # 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*.
877
973
  #
878
974
  #
879
975
  #
@@ -884,9 +980,11 @@ module Aws::S3
884
980
  # for the part specified. Useful for downloading just a part of an
885
981
  # object.
886
982
  # @option options [String] :expected_bucket_owner
887
- # The account id of the expected bucket owner. If the bucket is owned by
888
- # a different account, the request will fail with an HTTP `403 (Access
889
- # 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.
890
988
  # @return [Types::GetObjectOutput]
891
989
  def get(options = {}, &block)
892
990
  options = options.merge(
@@ -915,19 +1013,21 @@ module Aws::S3
915
1013
  # "MetadataKey" => "MetadataValue",
916
1014
  # },
917
1015
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
918
- # 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
919
1017
  # website_redirect_location: "WebsiteRedirectLocation",
920
1018
  # sse_customer_algorithm: "SSECustomerAlgorithm",
921
1019
  # sse_customer_key: "SSECustomerKey",
922
1020
  # sse_customer_key_md5: "SSECustomerKeyMD5",
923
1021
  # ssekms_key_id: "SSEKMSKeyId",
924
1022
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
1023
+ # bucket_key_enabled: false,
925
1024
  # request_payer: "requester", # accepts requester
926
1025
  # tagging: "TaggingHeader",
927
1026
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
928
1027
  # object_lock_retain_until_date: Time.now,
929
1028
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
930
1029
  # expected_bucket_owner: "AccountId",
1030
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
931
1031
  # })
932
1032
  # @param [Hash] options ({})
933
1033
  # @option options [String] :acl
@@ -976,7 +1076,7 @@ module Aws::S3
976
1076
  # and high availability. Depending on performance needs, you can specify
977
1077
  # a different Storage Class. Amazon S3 on Outposts only uses the
978
1078
  # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
979
- # in the *Amazon S3 Service Developer Guide*.
1079
+ # in the *Amazon S3 User Guide*.
980
1080
  #
981
1081
  #
982
1082
  #
@@ -999,26 +1099,35 @@ module Aws::S3
999
1099
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
1000
1100
  # ensure that the encryption key was transmitted without error.
1001
1101
  # @option options [String] :ssekms_key_id
1002
- # Specifies the ID of the symmetric customer managed AWS KMS CMK to use
1003
- # for object encryption. All GET and PUT requests for an object
1004
- # protected by AWS KMS will fail if not made via SSL or using SigV4. For
1005
- # information about configuring using any of the officially supported
1006
- # AWS SDKs and AWS CLI, see [Specifying the Signature Version in Request
1007
- # 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*.
1008
1109
  #
1009
1110
  #
1010
1111
  #
1011
- # [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
1012
1113
  # @option options [String] :ssekms_encryption_context
1013
- # Specifies the AWS KMS Encryption Context to use for object encryption.
1014
- # The value of this header is a base64-encoded UTF-8 string holding JSON
1015
- # 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.
1117
+ # @option options [Boolean] :bucket_key_enabled
1118
+ # Specifies whether Amazon S3 should use an S3 Bucket Key for object
1119
+ # encryption with server-side encryption using AWS KMS (SSE-KMS).
1120
+ # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
1121
+ # for object encryption with SSE-KMS.
1122
+ #
1123
+ # Specifying this header with an object action doesn’t affect
1124
+ # bucket-level settings for S3 Bucket Key.
1016
1125
  # @option options [String] :request_payer
1017
1126
  # Confirms that the requester knows that they will be charged for the
1018
1127
  # request. Bucket owners need not specify this parameter in their
1019
- # requests. For information about downloading objects from requester
1020
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1021
- # 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*.
1022
1131
  #
1023
1132
  #
1024
1133
  #
@@ -1032,12 +1141,20 @@ module Aws::S3
1032
1141
  # @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
1033
1142
  # Specifies the date and time when you want the Object Lock to expire.
1034
1143
  # @option options [String] :object_lock_legal_hold_status
1035
- # 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
1036
1145
  # object.
1037
1146
  # @option options [String] :expected_bucket_owner
1038
- # The account id of the expected bucket owner. If the bucket is owned by
1039
- # a different account, the request will fail with an HTTP `403 (Access
1040
- # 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
1041
1158
  # @return [MultipartUpload]
1042
1159
  def initiate_multipart_upload(options = {})
1043
1160
  options = options.merge(
@@ -1065,6 +1182,11 @@ module Aws::S3
1065
1182
  # content_length: 1,
1066
1183
  # content_md5: "ContentMD5",
1067
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",
1068
1190
  # expires: Time.now,
1069
1191
  # grant_full_control: "GrantFullControl",
1070
1192
  # grant_read: "GrantRead",
@@ -1074,13 +1196,14 @@ module Aws::S3
1074
1196
  # "MetadataKey" => "MetadataValue",
1075
1197
  # },
1076
1198
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
1077
- # 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
1078
1200
  # website_redirect_location: "WebsiteRedirectLocation",
1079
1201
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1080
1202
  # sse_customer_key: "SSECustomerKey",
1081
1203
  # sse_customer_key_md5: "SSECustomerKeyMD5",
1082
1204
  # ssekms_key_id: "SSEKMSKeyId",
1083
1205
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
1206
+ # bucket_key_enabled: false,
1084
1207
  # request_payer: "requester", # accepts requester
1085
1208
  # tagging: "TaggingHeader",
1086
1209
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
@@ -1155,6 +1278,61 @@ module Aws::S3
1155
1278
  #
1156
1279
  #
1157
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
1158
1336
  # @option options [Time,DateTime,Date,Integer,String] :expires
1159
1337
  # The date and time at which the object is no longer cacheable. For more
1160
1338
  # information, see
@@ -1191,7 +1369,7 @@ module Aws::S3
1191
1369
  # and high availability. Depending on performance needs, you can specify
1192
1370
  # a different Storage Class. Amazon S3 on Outposts only uses the
1193
1371
  # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
1194
- # in the *Amazon S3 Service Developer Guide*.
1372
+ # in the *Amazon S3 User Guide*.
1195
1373
  #
1196
1374
  #
1197
1375
  #
@@ -1236,26 +1414,32 @@ module Aws::S3
1236
1414
  # ensure that the encryption key was transmitted without error.
1237
1415
  # @option options [String] :ssekms_key_id
1238
1416
  # If `x-amz-server-side-encryption` is present and has the value of
1239
- # `aws:kms`, this header specifies the ID of the AWS Key Management
1240
- # Service (AWS KMS) symmetrical customer managed customer master key
1241
- # (CMK) that was used for the object.
1242
- #
1243
- # If the value of `x-amz-server-side-encryption` is `aws:kms`, this
1244
- # header specifies the ID of the symmetric customer managed AWS KMS CMK
1245
- # 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
1246
1420
  # `x-amz-server-side-encryption:aws:kms`, but do not provide`
1247
- # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the AWS
1248
- # 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.
1249
1425
  # @option options [String] :ssekms_encryption_context
1250
- # Specifies the AWS KMS Encryption Context to use for object encryption.
1251
- # The value of this header is a base64-encoded UTF-8 string holding JSON
1252
- # 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.
1429
+ # @option options [Boolean] :bucket_key_enabled
1430
+ # Specifies whether Amazon S3 should use an S3 Bucket Key for object
1431
+ # encryption with server-side encryption using AWS KMS (SSE-KMS).
1432
+ # Setting this header to `true` causes Amazon S3 to use an S3 Bucket Key
1433
+ # for object encryption with SSE-KMS.
1434
+ #
1435
+ # Specifying this header with a PUT action doesn’t affect bucket-level
1436
+ # settings for S3 Bucket Key.
1253
1437
  # @option options [String] :request_payer
1254
1438
  # Confirms that the requester knows that they will be charged for the
1255
1439
  # request. Bucket owners need not specify this parameter in their
1256
- # requests. For information about downloading objects from requester
1257
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1258
- # 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*.
1259
1443
  #
1260
1444
  #
1261
1445
  #
@@ -1267,6 +1451,7 @@ module Aws::S3
1267
1451
  # The Object Lock mode that you want to apply to this object.
1268
1452
  # @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
1269
1453
  # The date and time when you want this object's Object Lock to expire.
1454
+ # Must be formatted as a timestamp parameter.
1270
1455
  # @option options [String] :object_lock_legal_hold_status
1271
1456
  # Specifies whether a legal hold will be applied to this object. For
1272
1457
  # more information about S3 Object Lock, see [Object Lock][1].
@@ -1275,9 +1460,9 @@ module Aws::S3
1275
1460
  #
1276
1461
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
1277
1462
  # @option options [String] :expected_bucket_owner
1278
- # The account id of the expected bucket owner. If the bucket is owned by
1279
- # a different account, the request will fail with an HTTP `403 (Access
1280
- # 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).
1281
1466
  # @return [Types::PutObjectOutput]
1282
1467
  def put(options = {})
1283
1468
  options = options.merge(
@@ -1369,11 +1554,12 @@ module Aws::S3
1369
1554
  # value: "MetadataValue",
1370
1555
  # },
1371
1556
  # ],
1372
- # 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
1373
1558
  # },
1374
1559
  # },
1375
1560
  # },
1376
1561
  # request_payer: "requester", # accepts requester
1562
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
1377
1563
  # expected_bucket_owner: "AccountId",
1378
1564
  # })
1379
1565
  # @param [Hash] options ({})
@@ -1384,17 +1570,32 @@ module Aws::S3
1384
1570
  # @option options [String] :request_payer
1385
1571
  # Confirms that the requester knows that they will be charged for the
1386
1572
  # request. Bucket owners need not specify this parameter in their
1387
- # requests. For information about downloading objects from requester
1388
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1389
- # 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*.
1390
1576
  #
1391
1577
  #
1392
1578
  #
1393
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
1394
1595
  # @option options [String] :expected_bucket_owner
1395
- # The account id of the expected bucket owner. If the bucket is owned by
1396
- # a different account, the request will fail with an HTTP `403 (Access
1397
- # 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).
1398
1599
  # @return [Types::RestoreObjectOutput]
1399
1600
  def restore_object(options = {})
1400
1601
  options = options.merge(
@@ -1405,6 +1606,90 @@ module Aws::S3
1405
1606
  resp.data
1406
1607
  end
1407
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
+
1408
1693
  # @!group Associations
1409
1694
 
1410
1695
  # @return [ObjectAcl]
@@ -1518,6 +1803,7 @@ module Aws::S3
1518
1803
  # request_payer: "requester", # accepts requester
1519
1804
  # bypass_governance_retention: false,
1520
1805
  # expected_bucket_owner: "AccountId",
1806
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
1521
1807
  # })
1522
1808
  # @param options ({})
1523
1809
  # @option options [String] :mfa
@@ -1528,21 +1814,39 @@ module Aws::S3
1528
1814
  # @option options [String] :request_payer
1529
1815
  # Confirms that the requester knows that they will be charged for the
1530
1816
  # request. Bucket owners need not specify this parameter in their
1531
- # requests. For information about downloading objects from requester
1532
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1533
- # 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*.
1534
1820
  #
1535
1821
  #
1536
1822
  #
1537
1823
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1538
1824
  # @option options [Boolean] :bypass_governance_retention
1539
1825
  # Specifies whether you want to delete this object even if it has a
1540
- # Governance-type Object Lock in place. You must have sufficient
1541
- # permissions to perform this operation.
1826
+ # Governance-type Object Lock in place. To use this header, you must
1827
+ # have the `s3:BypassGovernanceRetention` permission.
1542
1828
  # @option options [String] :expected_bucket_owner
1543
- # The account id of the expected bucket owner. If the bucket is owned by
1544
- # a different account, the request will fail with an HTTP `403 (Access
1545
- # 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
1546
1850
  # @return [void]
1547
1851
  def batch_delete!(options = {})
1548
1852
  batch_enum.each do |batch|