aws-sdk-s3 1.84.1 → 1.117.2

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 (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|