aws-sdk-s3 1.80.0 → 1.114.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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|