aws-sdk-s3 1.80.0 → 1.114.0

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 +903 -0
  3. data/LICENSE.txt +202 -0
  4. data/VERSION +1 -0
  5. data/lib/aws-sdk-s3/arn/access_point_arn.rb +69 -0
  6. data/lib/aws-sdk-s3/arn/multi_region_access_point_arn.rb +68 -0
  7. data/lib/aws-sdk-s3/arn/object_lambda_arn.rb +69 -0
  8. data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +74 -0
  9. data/lib/aws-sdk-s3/bucket.rb +172 -46
  10. data/lib/aws-sdk-s3/bucket_acl.rb +28 -6
  11. data/lib/aws-sdk-s3/bucket_cors.rb +29 -9
  12. data/lib/aws-sdk-s3/bucket_lifecycle.rb +30 -9
  13. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +31 -9
  14. data/lib/aws-sdk-s3/bucket_logging.rb +25 -6
  15. data/lib/aws-sdk-s3/bucket_notification.rb +21 -9
  16. data/lib/aws-sdk-s3/bucket_policy.rb +27 -7
  17. data/lib/aws-sdk-s3/bucket_request_payment.rb +27 -8
  18. data/lib/aws-sdk-s3/bucket_tagging.rb +27 -7
  19. data/lib/aws-sdk-s3/bucket_versioning.rb +70 -10
  20. data/lib/aws-sdk-s3/bucket_website.rb +27 -7
  21. data/lib/aws-sdk-s3/client.rb +4415 -1650
  22. data/lib/aws-sdk-s3/client_api.rb +661 -41
  23. data/lib/aws-sdk-s3/customizations/bucket.rb +15 -7
  24. data/lib/aws-sdk-s3/customizations/object.rb +120 -21
  25. data/lib/aws-sdk-s3/customizations.rb +1 -1
  26. data/lib/aws-sdk-s3/encryption/client.rb +1 -1
  27. data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +0 -4
  28. data/lib/aws-sdk-s3/encryptionV2/client.rb +1 -1
  29. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +0 -4
  30. data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +3 -3
  31. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +0 -4
  32. data/lib/aws-sdk-s3/errors.rb +22 -1
  33. data/lib/aws-sdk-s3/event_streams.rb +1 -1
  34. data/lib/aws-sdk-s3/file_downloader.rb +7 -2
  35. data/lib/aws-sdk-s3/file_uploader.rb +9 -4
  36. data/lib/aws-sdk-s3/legacy_signer.rb +15 -25
  37. data/lib/aws-sdk-s3/multipart_file_uploader.rb +26 -7
  38. data/lib/aws-sdk-s3/multipart_upload.rb +133 -19
  39. data/lib/aws-sdk-s3/multipart_upload_part.rb +152 -23
  40. data/lib/aws-sdk-s3/object.rb +501 -126
  41. data/lib/aws-sdk-s3/object_acl.rb +39 -9
  42. data/lib/aws-sdk-s3/object_summary.rb +330 -110
  43. data/lib/aws-sdk-s3/object_version.rb +80 -49
  44. data/lib/aws-sdk-s3/plugins/accelerate.rb +13 -4
  45. data/lib/aws-sdk-s3/plugins/arn.rb +254 -0
  46. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +1 -3
  47. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +1 -1
  48. data/lib/aws-sdk-s3/plugins/dualstack.rb +33 -32
  49. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +2 -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 +18 -7
  52. data/lib/aws-sdk-s3/plugins/md5s.rb +5 -3
  53. data/lib/aws-sdk-s3/plugins/object_lambda_endpoint.rb +25 -0
  54. data/lib/aws-sdk-s3/plugins/s3_signer.rb +66 -17
  55. data/lib/aws-sdk-s3/plugins/skip_whole_multipart_get_checksums.rb +31 -0
  56. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +23 -2
  57. data/lib/aws-sdk-s3/presigned_post.rb +38 -19
  58. data/lib/aws-sdk-s3/presigner.rb +34 -17
  59. data/lib/aws-sdk-s3/resource.rb +23 -3
  60. data/lib/aws-sdk-s3/types.rb +4792 -1089
  61. data/lib/aws-sdk-s3/waiters.rb +1 -1
  62. data/lib/aws-sdk-s3.rb +3 -2
  63. metadata +21 -13
  64. data/lib/aws-sdk-s3/plugins/bucket_arn.rb +0 -212
@@ -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
@@ -91,7 +91,13 @@ module Aws::S3
91
91
  data[:restore]
92
92
  end
93
93
 
94
- # Last modified date of the object
94
+ # The archive state of the head object.
95
+ # @return [String]
96
+ def archive_status
97
+ data[:archive_status]
98
+ end
99
+
100
+ # Creation date of the object.
95
101
  # @return [Time]
96
102
  def last_modified
97
103
  data[:last_modified]
@@ -103,8 +109,64 @@ module Aws::S3
103
109
  data[:content_length]
104
110
  end
105
111
 
106
- # An ETag is an opaque identifier assigned by a web server to a specific
107
- # 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.
108
170
  # @return [String]
109
171
  def etag
110
172
  data[:etag]
@@ -178,10 +240,10 @@ module Aws::S3
178
240
  end
179
241
 
180
242
  # If the object is stored using server-side encryption either with an
181
- # AWS KMS customer master key (CMK) or an Amazon S3-managed encryption
182
- # key, the response includes this header with the value of the
183
- # server-side encryption algorithm used when storing this object in
184
- # 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).
185
247
  # @return [String]
186
248
  def server_side_encryption
187
249
  data[:server_side_encryption]
@@ -210,14 +272,21 @@ module Aws::S3
210
272
  data[:sse_customer_key_md5]
211
273
  end
212
274
 
213
- # If present, specifies the ID of the AWS Key Management Service (AWS
214
- # KMS) symmetric customer managed customer master key (CMK) that was
215
- # 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.
216
278
  # @return [String]
217
279
  def ssekms_key_id
218
280
  data[:ssekms_key_id]
219
281
  end
220
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
+
221
290
  # Provides storage class information of the object. Amazon S3 returns
222
291
  # this header for all objects except for S3 Standard storage class
223
292
  # objects.
@@ -240,15 +309,15 @@ module Aws::S3
240
309
  end
241
310
 
242
311
  # Amazon S3 can return this header if your request involves a bucket
243
- # that is either a source or destination in a replication rule.
312
+ # that is either a source or a destination in a replication rule.
244
313
  #
245
314
  # In replication, you have a source bucket on which you configure
246
- # replication and destination bucket where Amazon S3 stores object
247
- # replicas. When you request an object (`GetObject`) or object metadata
248
- # (`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
249
318
  # `x-amz-replication-status` header in the response as follows:
250
319
  #
251
- # * If requesting an object from the source bucket Amazon S3 will
320
+ # * **If requesting an object from the source bucket**, Amazon S3 will
252
321
  # return the `x-amz-replication-status` header if the object in your
253
322
  # request is eligible for replication.
254
323
  #
@@ -261,9 +330,18 @@ module Aws::S3
261
330
  # value PENDING, COMPLETED or FAILED indicating object replication
262
331
  # status.
263
332
  #
264
- # * If requesting an object from the destination bucket Amazon S3 will
265
- # return the `x-amz-replication-status` header with value REPLICA if
266
- # 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.
267
345
  #
268
346
  # For more information, see [Replication][1].
269
347
  #
@@ -275,7 +353,9 @@ module Aws::S3
275
353
  data[:replication_status]
276
354
  end
277
355
 
278
- # 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.
279
359
  # @return [Integer]
280
360
  def parts_count
281
361
  data[:parts_count]
@@ -510,6 +590,7 @@ module Aws::S3
510
590
  # object.copy_from({
511
591
  # acl: "private", # accepts private, public-read, public-read-write, authenticated-read, aws-exec-read, bucket-owner-read, bucket-owner-full-control
512
592
  # cache_control: "CacheControl",
593
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
513
594
  # content_disposition: "ContentDisposition",
514
595
  # content_encoding: "ContentEncoding",
515
596
  # content_language: "ContentLanguage",
@@ -530,13 +611,14 @@ module Aws::S3
530
611
  # metadata_directive: "COPY", # accepts COPY, REPLACE
531
612
  # tagging_directive: "COPY", # accepts COPY, REPLACE
532
613
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
533
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
614
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
534
615
  # website_redirect_location: "WebsiteRedirectLocation",
535
616
  # sse_customer_algorithm: "SSECustomerAlgorithm",
536
617
  # sse_customer_key: "SSECustomerKey",
537
618
  # sse_customer_key_md5: "SSECustomerKeyMD5",
538
619
  # ssekms_key_id: "SSEKMSKeyId",
539
620
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
621
+ # bucket_key_enabled: false,
540
622
  # copy_source_sse_customer_algorithm: "CopySourceSSECustomerAlgorithm",
541
623
  # copy_source_sse_customer_key: "CopySourceSSECustomerKey",
542
624
  # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5",
@@ -551,8 +633,18 @@ module Aws::S3
551
633
  # @param [Hash] options ({})
552
634
  # @option options [String] :acl
553
635
  # The canned ACL to apply to the object.
636
+ #
637
+ # This action is not supported by Amazon S3 on Outposts.
554
638
  # @option options [String] :cache_control
555
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
556
648
  # @option options [String] :content_disposition
557
649
  # Specifies presentational information for the object.
558
650
  # @option options [String] :content_encoding
@@ -572,8 +664,8 @@ module Aws::S3
572
664
  # of the source bucket and the key of the source object, separated by
573
665
  # a slash (/). For example, to copy the object `reports/january.pdf`
574
666
  # from the bucket `awsexamplebucket`, use
575
- # `awsexamplebucket/reports/january.pdf`. The value must be URL
576
- # encoded.
667
+ # `awsexamplebucket/reports/january.pdf`. The value must be
668
+ # URL-encoded.
577
669
  #
578
670
  # * For objects accessed through access points, specify the Amazon
579
671
  # Resource Name (ARN) of the object as accessed through the access
@@ -586,10 +678,20 @@ module Aws::S3
586
678
  # The value must be URL encoded.
587
679
  #
588
680
  # <note markdown="1"> Amazon S3 supports copy operations using access points only when the
589
- # source and destination buckets are in the same AWS Region.
681
+ # source and destination buckets are in the same Amazon Web Services
682
+ # Region.
590
683
  #
591
684
  # </note>
592
685
  #
686
+ # Alternatively, for objects accessed through Amazon S3 on Outposts,
687
+ # specify the ARN of the object as accessed in the format
688
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/object/<key>`.
689
+ # For example, to copy the object `reports/january.pdf` through
690
+ # outpost `my-outpost` owned by account `123456789012` in Region
691
+ # `us-west-2`, use the URL encoding of
692
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
693
+ # The value must be URL-encoded.
694
+ #
593
695
  # To copy a specific version of an object, append
594
696
  # `?versionId=<version-id>` to the value (for example,
595
697
  # `awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
@@ -598,7 +700,7 @@ module Aws::S3
598
700
  #
599
701
  #
600
702
  #
601
- # [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
602
704
  # @option options [String] :copy_source_if_match
603
705
  # Copies the object if its entity tag (ETag) matches the specified tag.
604
706
  # @option options [Time,DateTime,Date,Integer,String] :copy_source_if_modified_since
@@ -614,12 +716,20 @@ module Aws::S3
614
716
  # @option options [String] :grant_full_control
615
717
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
616
718
  # object.
719
+ #
720
+ # This action is not supported by Amazon S3 on Outposts.
617
721
  # @option options [String] :grant_read
618
722
  # Allows grantee to read the object data and its metadata.
723
+ #
724
+ # This action is not supported by Amazon S3 on Outposts.
619
725
  # @option options [String] :grant_read_acp
620
726
  # Allows grantee to read the object ACL.
727
+ #
728
+ # This action is not supported by Amazon S3 on Outposts.
621
729
  # @option options [String] :grant_write_acp
622
730
  # Allows grantee to write the ACL for the applicable object.
731
+ #
732
+ # This action is not supported by Amazon S3 on Outposts.
623
733
  # @option options [Hash<String,String>] :metadata
624
734
  # A map of metadata to store with the object in S3.
625
735
  # @option options [String] :metadata_directive
@@ -632,7 +742,16 @@ module Aws::S3
632
742
  # The server-side encryption algorithm used when storing this object in
633
743
  # Amazon S3 (for example, AES256, aws:kms).
634
744
  # @option options [String] :storage_class
635
- # The type of storage to use for the object. Defaults to 'STANDARD'.
745
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
746
+ # created objects. The STANDARD storage class provides high durability
747
+ # and high availability. Depending on performance needs, you can specify
748
+ # a different Storage Class. Amazon S3 on Outposts only uses the
749
+ # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
750
+ # in the *Amazon S3 User Guide*.
751
+ #
752
+ #
753
+ #
754
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
636
755
  # @option options [String] :website_redirect_location
637
756
  # If the bucket is configured as a website, redirects requests for this
638
757
  # object to another object in the same bucket or to an external URL.
@@ -651,20 +770,29 @@ module Aws::S3
651
770
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
652
771
  # ensure that the encryption key was transmitted without error.
653
772
  # @option options [String] :ssekms_key_id
654
- # Specifies the AWS KMS key ID to use for object encryption. All GET and
655
- # PUT requests for an object protected by AWS KMS will fail if not made
656
- # via SSL or using SigV4. For information about configuring using any of
657
- # the officially supported AWS SDKs and AWS CLI, see [Specifying the
658
- # Signature Version in Request Authentication][1] in the *Amazon S3
659
- # 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*.
660
780
  #
661
781
  #
662
782
  #
663
783
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
664
784
  # @option options [String] :ssekms_encryption_context
665
- # Specifies the AWS KMS Encryption Context to use for object encryption.
666
- # The value of this header is a base64-encoded UTF-8 string holding JSON
667
- # 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.
668
796
  # @option options [String] :copy_source_sse_customer_algorithm
669
797
  # Specifies the algorithm to use when decrypting the source object (for
670
798
  # example, AES256).
@@ -679,9 +807,9 @@ module Aws::S3
679
807
  # @option options [String] :request_payer
680
808
  # Confirms that the requester knows that they will be charged for the
681
809
  # request. Bucket owners need not specify this parameter in their
682
- # requests. For information about downloading objects from requester
683
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
684
- # 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*.
685
813
  #
686
814
  #
687
815
  #
@@ -696,15 +824,15 @@ module Aws::S3
696
824
  # The date and time when you want the copied object's Object Lock to
697
825
  # expire.
698
826
  # @option options [String] :object_lock_legal_hold_status
699
- # 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.
700
828
  # @option options [String] :expected_bucket_owner
701
- # The account id of the expected destination bucket owner. If the
702
- # destination bucket is owned by a different account, the request will
703
- # 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).
704
832
  # @option options [String] :expected_source_bucket_owner
705
- # The account id of the expected source bucket owner. If the source
706
- # bucket is owned by a different account, the request will fail with an
707
- # 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).
708
836
  # @return [Types::CopyObjectOutput]
709
837
  def copy_from(options = {})
710
838
  options = options.merge(
@@ -735,20 +863,21 @@ module Aws::S3
735
863
  # @option options [String] :request_payer
736
864
  # Confirms that the requester knows that they will be charged for the
737
865
  # request. Bucket owners need not specify this parameter in their
738
- # requests. For information about downloading objects from requester
739
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
740
- # 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*.
741
869
  #
742
870
  #
743
871
  #
744
872
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
745
873
  # @option options [Boolean] :bypass_governance_retention
746
874
  # Indicates whether S3 Object Lock should bypass Governance-mode
747
- # restrictions to process this operation.
875
+ # restrictions to process this operation. To use this header, you must
876
+ # have the `s3:BypassGovernanceRetention` permission.
748
877
  # @option options [String] :expected_bucket_owner
749
- # The account id of the expected bucket owner. If the bucket is owned by
750
- # a different account, the request will fail with an HTTP `403 (Access
751
- # 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).
752
881
  # @return [Types::DeleteObjectOutput]
753
882
  def delete(options = {})
754
883
  options = options.merge(
@@ -780,20 +909,21 @@ module Aws::S3
780
909
  # request_payer: "requester", # accepts requester
781
910
  # part_number: 1,
782
911
  # expected_bucket_owner: "AccountId",
912
+ # checksum_mode: "ENABLED", # accepts ENABLED
783
913
  # })
784
914
  # @param [Hash] options ({})
785
915
  # @option options [String] :if_match
786
916
  # Return the object only if its entity tag (ETag) is the same as the one
787
- # specified, otherwise return a 412 (precondition failed).
917
+ # specified; otherwise, return a 412 (precondition failed) error.
788
918
  # @option options [Time,DateTime,Date,Integer,String] :if_modified_since
789
919
  # Return the object only if it has been modified since the specified
790
- # time, otherwise return a 304 (not modified).
920
+ # time; otherwise, return a 304 (not modified) error.
791
921
  # @option options [String] :if_none_match
792
922
  # Return the object only if its entity tag (ETag) is different from the
793
- # one specified, otherwise return a 304 (not modified).
923
+ # one specified; otherwise, return a 304 (not modified) error.
794
924
  # @option options [Time,DateTime,Date,Integer,String] :if_unmodified_since
795
925
  # Return the object only if it has not been modified since the specified
796
- # time, otherwise return a 412 (precondition failed).
926
+ # time; otherwise, return a 412 (precondition failed) error.
797
927
  # @option options [String] :range
798
928
  # Downloads the specified range bytes of an object. For more information
799
929
  # about the HTTP Range header, see
@@ -822,13 +952,13 @@ module Aws::S3
822
952
  # @option options [String] :version_id
823
953
  # VersionId used to reference a specific version of the object.
824
954
  # @option options [String] :sse_customer_algorithm
825
- # Specifies the algorithm to use to when encrypting the object (for
955
+ # Specifies the algorithm to use to when decrypting the object (for
826
956
  # example, AES256).
827
957
  # @option options [String] :sse_customer_key
828
- # Specifies the customer-provided encryption key for Amazon S3 to use in
829
- # encrypting data. This value is used to store the object and then it is
830
- # discarded; Amazon S3 does not store the encryption key. The key must
831
- # 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
832
962
  # `x-amz-server-side-encryption-customer-algorithm` header.
833
963
  # @option options [String] :sse_customer_key_md5
834
964
  # Specifies the 128-bit MD5 digest of the encryption key according to
@@ -837,9 +967,9 @@ module Aws::S3
837
967
  # @option options [String] :request_payer
838
968
  # Confirms that the requester knows that they will be charged for the
839
969
  # request. Bucket owners need not specify this parameter in their
840
- # requests. For information about downloading objects from requester
841
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
842
- # 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*.
843
973
  #
844
974
  #
845
975
  #
@@ -850,9 +980,11 @@ module Aws::S3
850
980
  # for the part specified. Useful for downloading just a part of an
851
981
  # object.
852
982
  # @option options [String] :expected_bucket_owner
853
- # The account id of the expected bucket owner. If the bucket is owned by
854
- # a different account, the request will fail with an HTTP `403 (Access
855
- # 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.
856
988
  # @return [Types::GetObjectOutput]
857
989
  def get(options = {}, &block)
858
990
  options = options.merge(
@@ -881,23 +1013,27 @@ module Aws::S3
881
1013
  # "MetadataKey" => "MetadataValue",
882
1014
  # },
883
1015
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
884
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
1016
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
885
1017
  # website_redirect_location: "WebsiteRedirectLocation",
886
1018
  # sse_customer_algorithm: "SSECustomerAlgorithm",
887
1019
  # sse_customer_key: "SSECustomerKey",
888
1020
  # sse_customer_key_md5: "SSECustomerKeyMD5",
889
1021
  # ssekms_key_id: "SSEKMSKeyId",
890
1022
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
1023
+ # bucket_key_enabled: false,
891
1024
  # request_payer: "requester", # accepts requester
892
1025
  # tagging: "TaggingHeader",
893
1026
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
894
1027
  # object_lock_retain_until_date: Time.now,
895
1028
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
896
1029
  # expected_bucket_owner: "AccountId",
1030
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
897
1031
  # })
898
1032
  # @param [Hash] options ({})
899
1033
  # @option options [String] :acl
900
1034
  # The canned ACL to apply to the object.
1035
+ #
1036
+ # This action is not supported by Amazon S3 on Outposts.
901
1037
  # @option options [String] :cache_control
902
1038
  # Specifies caching behavior along the request/reply chain.
903
1039
  # @option options [String] :content_disposition
@@ -915,19 +1051,36 @@ module Aws::S3
915
1051
  # @option options [String] :grant_full_control
916
1052
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
917
1053
  # object.
1054
+ #
1055
+ # This action is not supported by Amazon S3 on Outposts.
918
1056
  # @option options [String] :grant_read
919
1057
  # Allows grantee to read the object data and its metadata.
1058
+ #
1059
+ # This action is not supported by Amazon S3 on Outposts.
920
1060
  # @option options [String] :grant_read_acp
921
1061
  # Allows grantee to read the object ACL.
1062
+ #
1063
+ # This action is not supported by Amazon S3 on Outposts.
922
1064
  # @option options [String] :grant_write_acp
923
1065
  # Allows grantee to write the ACL for the applicable object.
1066
+ #
1067
+ # This action is not supported by Amazon S3 on Outposts.
924
1068
  # @option options [Hash<String,String>] :metadata
925
1069
  # A map of metadata to store with the object in S3.
926
1070
  # @option options [String] :server_side_encryption
927
1071
  # The server-side encryption algorithm used when storing this object in
928
1072
  # Amazon S3 (for example, AES256, aws:kms).
929
1073
  # @option options [String] :storage_class
930
- # The type of storage to use for the object. Defaults to 'STANDARD'.
1074
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
1075
+ # created objects. The STANDARD storage class provides high durability
1076
+ # and high availability. Depending on performance needs, you can specify
1077
+ # a different Storage Class. Amazon S3 on Outposts only uses the
1078
+ # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
1079
+ # in the *Amazon S3 User Guide*.
1080
+ #
1081
+ #
1082
+ #
1083
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
931
1084
  # @option options [String] :website_redirect_location
932
1085
  # If the bucket is configured as a website, redirects requests for this
933
1086
  # object to another object in the same bucket or to an external URL.
@@ -946,26 +1099,35 @@ module Aws::S3
946
1099
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
947
1100
  # ensure that the encryption key was transmitted without error.
948
1101
  # @option options [String] :ssekms_key_id
949
- # Specifies the ID of the symmetric customer managed AWS KMS CMK to use
950
- # for object encryption. All GET and PUT requests for an object
951
- # protected by AWS KMS will fail if not made via SSL or using SigV4. For
952
- # information about configuring using any of the officially supported
953
- # AWS SDKs and AWS CLI, see [Specifying the Signature Version in Request
954
- # 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*.
955
1109
  #
956
1110
  #
957
1111
  #
958
- # [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
959
1113
  # @option options [String] :ssekms_encryption_context
960
- # Specifies the AWS KMS Encryption Context to use for object encryption.
961
- # The value of this header is a base64-encoded UTF-8 string holding JSON
962
- # 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.
963
1125
  # @option options [String] :request_payer
964
1126
  # Confirms that the requester knows that they will be charged for the
965
1127
  # request. Bucket owners need not specify this parameter in their
966
- # requests. For information about downloading objects from requester
967
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
968
- # 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*.
969
1131
  #
970
1132
  #
971
1133
  #
@@ -979,12 +1141,20 @@ module Aws::S3
979
1141
  # @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
980
1142
  # Specifies the date and time when you want the Object Lock to expire.
981
1143
  # @option options [String] :object_lock_legal_hold_status
982
- # 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
983
1145
  # object.
984
1146
  # @option options [String] :expected_bucket_owner
985
- # The account id of the expected bucket owner. If the bucket is owned by
986
- # a different account, the request will fail with an HTTP `403 (Access
987
- # 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
988
1158
  # @return [MultipartUpload]
989
1159
  def initiate_multipart_upload(options = {})
990
1160
  options = options.merge(
@@ -1012,6 +1182,11 @@ module Aws::S3
1012
1182
  # content_length: 1,
1013
1183
  # content_md5: "ContentMD5",
1014
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",
1015
1190
  # expires: Time.now,
1016
1191
  # grant_full_control: "GrantFullControl",
1017
1192
  # grant_read: "GrantRead",
@@ -1021,13 +1196,14 @@ module Aws::S3
1021
1196
  # "MetadataKey" => "MetadataValue",
1022
1197
  # },
1023
1198
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
1024
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
1199
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
1025
1200
  # website_redirect_location: "WebsiteRedirectLocation",
1026
1201
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1027
1202
  # sse_customer_key: "SSECustomerKey",
1028
1203
  # sse_customer_key_md5: "SSECustomerKeyMD5",
1029
1204
  # ssekms_key_id: "SSEKMSKeyId",
1030
1205
  # ssekms_encryption_context: "SSEKMSEncryptionContext",
1206
+ # bucket_key_enabled: false,
1031
1207
  # request_payer: "requester", # accepts requester
1032
1208
  # tagging: "TaggingHeader",
1033
1209
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
@@ -1040,6 +1216,8 @@ module Aws::S3
1040
1216
  # The canned ACL to apply to the object. For more information, see
1041
1217
  # [Canned ACL][1].
1042
1218
  #
1219
+ # This action is not supported by Amazon S3 on Outposts.
1220
+ #
1043
1221
  #
1044
1222
  #
1045
1223
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
@@ -1100,6 +1278,61 @@ module Aws::S3
1100
1278
  #
1101
1279
  #
1102
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
1103
1336
  # @option options [Time,DateTime,Date,Integer,String] :expires
1104
1337
  # The date and time at which the object is no longer cacheable. For more
1105
1338
  # information, see
@@ -1111,20 +1344,36 @@ module Aws::S3
1111
1344
  # @option options [String] :grant_full_control
1112
1345
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
1113
1346
  # object.
1347
+ #
1348
+ # This action is not supported by Amazon S3 on Outposts.
1114
1349
  # @option options [String] :grant_read
1115
1350
  # Allows grantee to read the object data and its metadata.
1351
+ #
1352
+ # This action is not supported by Amazon S3 on Outposts.
1116
1353
  # @option options [String] :grant_read_acp
1117
1354
  # Allows grantee to read the object ACL.
1355
+ #
1356
+ # This action is not supported by Amazon S3 on Outposts.
1118
1357
  # @option options [String] :grant_write_acp
1119
1358
  # Allows grantee to write the ACL for the applicable object.
1359
+ #
1360
+ # This action is not supported by Amazon S3 on Outposts.
1120
1361
  # @option options [Hash<String,String>] :metadata
1121
1362
  # A map of metadata to store with the object in S3.
1122
1363
  # @option options [String] :server_side_encryption
1123
1364
  # The server-side encryption algorithm used when storing this object in
1124
1365
  # Amazon S3 (for example, AES256, aws:kms).
1125
1366
  # @option options [String] :storage_class
1126
- # If you don't specify, S3 Standard is the default storage class.
1127
- # Amazon S3 supports other storage classes.
1367
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
1368
+ # created objects. The STANDARD storage class provides high durability
1369
+ # and high availability. Depending on performance needs, you can specify
1370
+ # a different Storage Class. Amazon S3 on Outposts only uses the
1371
+ # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
1372
+ # in the *Amazon S3 User Guide*.
1373
+ #
1374
+ #
1375
+ #
1376
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
1128
1377
  # @option options [String] :website_redirect_location
1129
1378
  # If the bucket is configured as a website, redirects requests for this
1130
1379
  # object to another object in the same bucket or to an external URL.
@@ -1165,26 +1414,32 @@ module Aws::S3
1165
1414
  # ensure that the encryption key was transmitted without error.
1166
1415
  # @option options [String] :ssekms_key_id
1167
1416
  # If `x-amz-server-side-encryption` is present and has the value of
1168
- # `aws:kms`, this header specifies the ID of the AWS Key Management
1169
- # Service (AWS KMS) symmetrical customer managed customer master key
1170
- # (CMK) that was used for the object.
1171
- #
1172
- # If the value of `x-amz-server-side-encryption` is `aws:kms`, this
1173
- # header specifies the ID of the symmetric customer managed AWS KMS CMK
1174
- # 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
1175
1420
  # `x-amz-server-side-encryption:aws:kms`, but do not provide`
1176
- # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the AWS
1177
- # 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.
1178
1425
  # @option options [String] :ssekms_encryption_context
1179
- # Specifies the AWS KMS Encryption Context to use for object encryption.
1180
- # The value of this header is a base64-encoded UTF-8 string holding JSON
1181
- # 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.
1182
1437
  # @option options [String] :request_payer
1183
1438
  # Confirms that the requester knows that they will be charged for the
1184
1439
  # request. Bucket owners need not specify this parameter in their
1185
- # requests. For information about downloading objects from requester
1186
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1187
- # 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*.
1188
1443
  #
1189
1444
  #
1190
1445
  #
@@ -1196,6 +1451,7 @@ module Aws::S3
1196
1451
  # The Object Lock mode that you want to apply to this object.
1197
1452
  # @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
1198
1453
  # The date and time when you want this object's Object Lock to expire.
1454
+ # Must be formatted as a timestamp parameter.
1199
1455
  # @option options [String] :object_lock_legal_hold_status
1200
1456
  # Specifies whether a legal hold will be applied to this object. For
1201
1457
  # more information about S3 Object Lock, see [Object Lock][1].
@@ -1204,9 +1460,9 @@ module Aws::S3
1204
1460
  #
1205
1461
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
1206
1462
  # @option options [String] :expected_bucket_owner
1207
- # The account id of the expected bucket owner. If the bucket is owned by
1208
- # a different account, the request will fail with an HTTP `403 (Access
1209
- # 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).
1210
1466
  # @return [Types::PutObjectOutput]
1211
1467
  def put(options = {})
1212
1468
  options = options.merge(
@@ -1298,11 +1554,12 @@ module Aws::S3
1298
1554
  # value: "MetadataValue",
1299
1555
  # },
1300
1556
  # ],
1301
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
1557
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS, GLACIER_IR
1302
1558
  # },
1303
1559
  # },
1304
1560
  # },
1305
1561
  # request_payer: "requester", # accepts requester
1562
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
1306
1563
  # expected_bucket_owner: "AccountId",
1307
1564
  # })
1308
1565
  # @param [Hash] options ({})
@@ -1313,17 +1570,32 @@ module Aws::S3
1313
1570
  # @option options [String] :request_payer
1314
1571
  # Confirms that the requester knows that they will be charged for the
1315
1572
  # request. Bucket owners need not specify this parameter in their
1316
- # requests. For information about downloading objects from requester
1317
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1318
- # 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*.
1319
1576
  #
1320
1577
  #
1321
1578
  #
1322
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
1323
1595
  # @option options [String] :expected_bucket_owner
1324
- # The account id of the expected bucket owner. If the bucket is owned by
1325
- # a different account, the request will fail with an HTTP `403 (Access
1326
- # 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).
1327
1599
  # @return [Types::RestoreObjectOutput]
1328
1600
  def restore_object(options = {})
1329
1601
  options = options.merge(
@@ -1334,6 +1606,90 @@ module Aws::S3
1334
1606
  resp.data
1335
1607
  end
1336
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
+
1337
1693
  # @!group Associations
1338
1694
 
1339
1695
  # @return [ObjectAcl]
@@ -1447,6 +1803,7 @@ module Aws::S3
1447
1803
  # request_payer: "requester", # accepts requester
1448
1804
  # bypass_governance_retention: false,
1449
1805
  # expected_bucket_owner: "AccountId",
1806
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256
1450
1807
  # })
1451
1808
  # @param options ({})
1452
1809
  # @option options [String] :mfa
@@ -1457,21 +1814,39 @@ module Aws::S3
1457
1814
  # @option options [String] :request_payer
1458
1815
  # Confirms that the requester knows that they will be charged for the
1459
1816
  # request. Bucket owners need not specify this parameter in their
1460
- # requests. For information about downloading objects from requester
1461
- # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1462
- # 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*.
1463
1820
  #
1464
1821
  #
1465
1822
  #
1466
1823
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1467
1824
  # @option options [Boolean] :bypass_governance_retention
1468
1825
  # Specifies whether you want to delete this object even if it has a
1469
- # Governance-type Object Lock in place. You must have sufficient
1470
- # permissions to perform this operation.
1826
+ # Governance-type Object Lock in place. To use this header, you must
1827
+ # have the `s3:BypassGovernanceRetention` permission.
1471
1828
  # @option options [String] :expected_bucket_owner
1472
- # The account id of the expected bucket owner. If the bucket is owned by
1473
- # a different account, the request will fail with an HTTP `403 (Access
1474
- # 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
1475
1850
  # @return [void]
1476
1851
  def batch_delete!(options = {})
1477
1852
  batch_enum.each do |batch|