aws-sdk-s3 1.48.0 → 1.60.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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aws-sdk-s3/bucket.rb +183 -54
  3. data/lib/aws-sdk-s3/bucket_acl.rb +9 -1
  4. data/lib/aws-sdk-s3/bucket_cors.rb +18 -1
  5. data/lib/aws-sdk-s3/bucket_lifecycle.rb +2 -1
  6. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +3 -1
  7. data/lib/aws-sdk-s3/bucket_logging.rb +11 -1
  8. data/lib/aws-sdk-s3/bucket_notification.rb +7 -3
  9. data/lib/aws-sdk-s3/bucket_policy.rb +2 -0
  10. data/lib/aws-sdk-s3/bucket_request_payment.rb +10 -0
  11. data/lib/aws-sdk-s3/bucket_tagging.rb +10 -1
  12. data/lib/aws-sdk-s3/bucket_versioning.rb +26 -0
  13. data/lib/aws-sdk-s3/bucket_website.rb +15 -4
  14. data/lib/aws-sdk-s3/client.rb +5133 -519
  15. data/lib/aws-sdk-s3/client_api.rb +33 -0
  16. data/lib/aws-sdk-s3/customizations/bucket.rb +44 -13
  17. data/lib/aws-sdk-s3/customizations/object.rb +65 -43
  18. data/lib/aws-sdk-s3/encryption/client.rb +4 -0
  19. data/lib/aws-sdk-s3/file_part.rb +9 -6
  20. data/lib/aws-sdk-s3/file_uploader.rb +13 -12
  21. data/lib/aws-sdk-s3/multipart_file_uploader.rb +14 -11
  22. data/lib/aws-sdk-s3/multipart_upload.rb +31 -16
  23. data/lib/aws-sdk-s3/multipart_upload_part.rb +38 -29
  24. data/lib/aws-sdk-s3/object.rb +330 -129
  25. data/lib/aws-sdk-s3/object_acl.rb +25 -7
  26. data/lib/aws-sdk-s3/object_summary.rb +243 -117
  27. data/lib/aws-sdk-s3/object_version.rb +67 -46
  28. data/lib/aws-sdk-s3/plugins/bucket_arn.rb +211 -0
  29. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +7 -7
  30. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +23 -3
  31. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +59 -0
  32. data/lib/aws-sdk-s3/plugins/md5s.rb +3 -4
  33. data/lib/aws-sdk-s3/plugins/s3_signer.rb +16 -6
  34. data/lib/aws-sdk-s3/presigned_post.rb +4 -0
  35. data/lib/aws-sdk-s3/presigner.rb +6 -2
  36. data/lib/aws-sdk-s3/resource.rb +4 -2
  37. data/lib/aws-sdk-s3/types.rb +3027 -635
  38. data/lib/aws-sdk-s3.rb +1 -1
  39. metadata +6 -4
@@ -24,6 +24,7 @@ module Aws::S3
24
24
  @key = extract_key(args, options)
25
25
  @data = options.delete(:data)
26
26
  @client = options.delete(:client) || Client.new(options)
27
+ @waiter_block_warned = false
27
28
  end
28
29
 
29
30
  # @!group Read-Only Attributes
@@ -46,7 +47,7 @@ module Aws::S3
46
47
  data[:delete_marker]
47
48
  end
48
49
 
49
-
50
+ # Indicates that a range of bytes was specified.
50
51
  # @return [String]
51
52
  def accept_ranges
52
53
  data[:accept_ranges]
@@ -54,15 +55,33 @@ module Aws::S3
54
55
 
55
56
  # If the object expiration is configured (see PUT Bucket lifecycle), the
56
57
  # response includes this header. It includes the expiry-date and rule-id
57
- # key value pairs providing object expiration information. The value of
58
+ # key-value pairs providing object expiration information. The value of
58
59
  # the rule-id is URL encoded.
59
60
  # @return [String]
60
61
  def expiration
61
62
  data[:expiration]
62
63
  end
63
64
 
64
- # Provides information about object restoration operation and expiration
65
- # time of the restored object copy.
65
+ # If the object is an archived object (an object whose storage class is
66
+ # GLACIER), the response includes this header if either the archive
67
+ # restoration is in progress (see RestoreObject or an archive copy is
68
+ # already restored.
69
+ #
70
+ # If an archive copy is already restored, the header value indicates
71
+ # when Amazon S3 is scheduled to delete the object copy. For example:
72
+ #
73
+ # `x-amz-restore: ongoing-request="false", expiry-date="Fri, 23 Dec 2012
74
+ # 00:00:00 GMT"`
75
+ #
76
+ # If the object restoration is in progress, the header returns the value
77
+ # `ongoing-request="true"`.
78
+ #
79
+ # For more information about archiving objects, see [Transitioning
80
+ # Objects: General Considerations][1].
81
+ #
82
+ #
83
+ #
84
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-transition-general-considerations
66
85
  # @return [String]
67
86
  def restore
68
87
  data[:restore]
@@ -81,14 +100,14 @@ module Aws::S3
81
100
  end
82
101
 
83
102
  # An ETag is an opaque identifier assigned by a web server to a specific
84
- # version of a resource found at a URL
103
+ # version of a resource found at a URL.
85
104
  # @return [String]
86
105
  def etag
87
106
  data[:etag]
88
107
  end
89
108
 
90
109
  # This is set to the number of metadata entries not returned in
91
- # x-amz-meta headers. This can happen if you create metadata using an
110
+ # `x-amz-meta` headers. This can happen if you create metadata using an
92
111
  # API like SOAP that supports more flexible metadata than the REST API.
93
112
  # For example, using SOAP, you can create metadata whose values are not
94
113
  # legal HTTP headers.
@@ -154,8 +173,11 @@ module Aws::S3
154
173
  data[:website_redirect_location]
155
174
  end
156
175
 
157
- # The Server-side encryption algorithm used when storing this object in
158
- # S3 (e.g., AES256, aws:kms).
176
+ # If the object is stored using server-side encryption either with an
177
+ # AWS KMS customer master key (CMK) or an Amazon S3-managed encryption
178
+ # key, the response includes this header with the value of the
179
+ # server-side encryption algorithm used when storing this object in
180
+ # Amazon S3 (for example, AES256, aws:kms).
159
181
  # @return [String]
160
182
  def server_side_encryption
161
183
  data[:server_side_encryption]
@@ -176,7 +198,7 @@ module Aws::S3
176
198
  end
177
199
 
178
200
  # If server-side encryption with a customer-provided encryption key was
179
- # requested, the response will include this header to provide round trip
201
+ # requested, the response will include this header to provide round-trip
180
202
  # message integrity verification of the customer-provided encryption
181
203
  # key.
182
204
  # @return [String]
@@ -184,14 +206,22 @@ module Aws::S3
184
206
  data[:sse_customer_key_md5]
185
207
  end
186
208
 
187
- # If present, specifies the ID of the AWS Key Management Service (KMS)
188
- # master encryption key that was used for the object.
209
+ # If present, specifies the ID of the AWS Key Management Service (AWS
210
+ # KMS) symmetric customer managed customer master key (CMK) that was
211
+ # used for the object.
189
212
  # @return [String]
190
213
  def ssekms_key_id
191
214
  data[:ssekms_key_id]
192
215
  end
193
216
 
194
-
217
+ # Provides storage class information of the object. Amazon S3 returns
218
+ # this header for all objects except for Standard storage class objects.
219
+ #
220
+ # For more information, see [Storage Classes][1].
221
+ #
222
+ #
223
+ #
224
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
195
225
  # @return [String]
196
226
  def storage_class
197
227
  data[:storage_class]
@@ -204,7 +234,37 @@ module Aws::S3
204
234
  data[:request_charged]
205
235
  end
206
236
 
207
-
237
+ # Amazon S3 can return this header if your request involves a bucket
238
+ # that is either a source or destination in a replication rule.
239
+ #
240
+ # In replication, you have a source bucket on which you configure
241
+ # replication and destination bucket where Amazon S3 stores object
242
+ # replicas. When you request an object (`GetObject`) or object metadata
243
+ # (`HeadObject`) from these buckets, Amazon S3 will return the
244
+ # `x-amz-replication-status` header in the response as follows:
245
+ #
246
+ # * If requesting an object from the source bucket — Amazon S3 will
247
+ # return the `x-amz-replication-status` header if the object in your
248
+ # request is eligible for replication.
249
+ #
250
+ # For example, suppose that in your replication configuration, you
251
+ # specify object prefix `TaxDocs` requesting Amazon S3 to replicate
252
+ # objects with key prefix `TaxDocs`. Any objects you upload with this
253
+ # key name prefix, for example `TaxDocs/document1.pdf`, are eligible
254
+ # for replication. For any object request with this key name prefix,
255
+ # Amazon S3 will return the `x-amz-replication-status` header with
256
+ # value PENDING, COMPLETED or FAILED indicating object replication
257
+ # status.
258
+ #
259
+ # * If requesting an object from the destination bucket — Amazon S3 will
260
+ # return the `x-amz-replication-status` header with value REPLICA if
261
+ # the object in your request is a replica that Amazon S3 created.
262
+ #
263
+ # For more information, see [Replication][1].
264
+ #
265
+ #
266
+ #
267
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html
208
268
  # @return [String]
209
269
  def replication_status
210
270
  data[:replication_status]
@@ -216,19 +276,36 @@ module Aws::S3
216
276
  data[:parts_count]
217
277
  end
218
278
 
219
- # The object lock mode currently in place for this object.
279
+ # The Object Lock mode, if any, that's in effect for this object. This
280
+ # header is only returned if the requester has the
281
+ # `s3:GetObjectRetention` permission. For more information about S3
282
+ # Object Lock, see [Object Lock][1].
283
+ #
284
+ #
285
+ #
286
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
220
287
  # @return [String]
221
288
  def object_lock_mode
222
289
  data[:object_lock_mode]
223
290
  end
224
291
 
225
- # The date and time when this object's object lock expires.
292
+ # The date and time when the Object Lock retention period expires. This
293
+ # header is only returned if the requester has the
294
+ # `s3:GetObjectRetention` permission.
226
295
  # @return [Time]
227
296
  def object_lock_retain_until_date
228
297
  data[:object_lock_retain_until_date]
229
298
  end
230
299
 
231
- # The Legal Hold status for the specified object.
300
+ # Specifies whether a legal hold is in effect for this object. This
301
+ # header is only returned if the requester has the
302
+ # `s3:GetObjectLegalHold` permission. This header is not returned if the
303
+ # specified version of this object has never had a legal hold applied.
304
+ # For more information about S3 Object Lock, see [Object Lock][1].
305
+ #
306
+ #
307
+ #
308
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
232
309
  # @return [String]
233
310
  def object_lock_legal_hold_status
234
311
  data[:object_lock_legal_hold_status]
@@ -510,8 +587,8 @@ module Aws::S3
510
587
  # Specifies whether the object tag-set are copied from the source object
511
588
  # or replaced with tag-set provided in the request.
512
589
  # @option options [String] :server_side_encryption
513
- # The Server-side encryption algorithm used when storing this object in
514
- # S3 (e.g., AES256, aws:kms).
590
+ # The server-side encryption algorithm used when storing this object in
591
+ # Amazon S3 (for example, AES256, aws:kms).
515
592
  # @option options [String] :storage_class
516
593
  # The type of storage to use for the object. Defaults to 'STANDARD'.
517
594
  # @option options [String] :website_redirect_location
@@ -519,31 +596,36 @@ module Aws::S3
519
596
  # object to another object in the same bucket or to an external URL.
520
597
  # Amazon S3 stores the value of this header in the object metadata.
521
598
  # @option options [String] :sse_customer_algorithm
522
- # Specifies the algorithm to use to when encrypting the object (e.g.,
523
- # AES256).
599
+ # Specifies the algorithm to use to when encrypting the object (for
600
+ # example, AES256).
524
601
  # @option options [String] :sse_customer_key
525
602
  # Specifies the customer-provided encryption key for Amazon S3 to use in
526
603
  # encrypting data. This value is used to store the object and then it is
527
- # discarded; Amazon does not store the encryption key. The key must be
528
- # appropriate for use with the algorithm specified in the
529
- # x-amz-server-side​-encryption​-customer-algorithm header.
604
+ # discarded; Amazon S3 does not store the encryption key. The key must
605
+ # be appropriate for use with the algorithm specified in the
606
+ # `x-amz-server-side​-encryption​-customer-algorithm` header.
530
607
  # @option options [String] :sse_customer_key_md5
531
608
  # Specifies the 128-bit MD5 digest of the encryption key according to
532
609
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
533
- # ensure the encryption key was transmitted without error.
610
+ # ensure that the encryption key was transmitted without error.
534
611
  # @option options [String] :ssekms_key_id
535
612
  # Specifies the AWS KMS key ID to use for object encryption. All GET and
536
613
  # PUT requests for an object protected by AWS KMS will fail if not made
537
- # via SSL or using SigV4. Documentation on configuring any of the
538
- # officially supported AWS SDKs and CLI can be found at
539
- # http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
614
+ # via SSL or using SigV4. For information about configuring using any of
615
+ # the officially supported AWS SDKs and AWS CLI, see [Specifying the
616
+ # Signature Version in Request Authentication][1] in the *Amazon S3
617
+ # Developer Guide*.
618
+ #
619
+ #
620
+ #
621
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
540
622
  # @option options [String] :ssekms_encryption_context
541
623
  # Specifies the AWS KMS Encryption Context to use for object encryption.
542
624
  # The value of this header is a base64-encoded UTF-8 string holding JSON
543
625
  # with the encryption context key-value pairs.
544
626
  # @option options [String] :copy_source_sse_customer_algorithm
545
- # Specifies the algorithm to use when decrypting the source object
546
- # (e.g., AES256).
627
+ # Specifies the algorithm to use when decrypting the source object (for
628
+ # example, AES256).
547
629
  # @option options [String] :copy_source_sse_customer_key
548
630
  # Specifies the customer-provided encryption key for Amazon S3 to use to
549
631
  # decrypt the source object. The encryption key provided in this header
@@ -551,21 +633,25 @@ module Aws::S3
551
633
  # @option options [String] :copy_source_sse_customer_key_md5
552
634
  # Specifies the 128-bit MD5 digest of the encryption key according to
553
635
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
554
- # ensure the encryption key was transmitted without error.
636
+ # ensure that the encryption key was transmitted without error.
555
637
  # @option options [String] :request_payer
556
- # Confirms that the requester knows that she or he will be charged for
557
- # the request. Bucket owners need not specify this parameter in their
558
- # requests. Documentation on downloading objects from requester pays
559
- # buckets can be found at
560
- # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
638
+ # Confirms that the requester knows that they will be charged for the
639
+ # request. Bucket owners need not specify this parameter in their
640
+ # requests. For information about downloading objects from requester
641
+ # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
642
+ # in the *Amazon S3 Developer Guide*.
643
+ #
644
+ #
645
+ #
646
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
561
647
  # @option options [String] :tagging
562
648
  # The tag-set for the object destination object this value must be used
563
- # in conjunction with the TaggingDirective. The tag-set must be encoded
564
- # as URL Query parameters
649
+ # in conjunction with the `TaggingDirective`. The tag-set must be
650
+ # encoded as URL Query parameters.
565
651
  # @option options [String] :object_lock_mode
566
- # The object lock mode that you want to apply to the copied object.
652
+ # The Object Lock mode that you want to apply to the copied object.
567
653
  # @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
568
- # The date and time when you want the copied object's object lock to
654
+ # The date and time when you want the copied object's Object Lock to
569
655
  # expire.
570
656
  # @option options [String] :object_lock_legal_hold_status
571
657
  # Specifies whether you want to apply a Legal Hold to the copied object.
@@ -591,16 +677,22 @@ module Aws::S3
591
677
  # @option options [String] :mfa
592
678
  # The concatenation of the authentication device's serial number, a
593
679
  # space, and the value that is displayed on your authentication device.
680
+ # Required to permanently delete a versioned object if versioning is
681
+ # configured with MFA delete enabled.
594
682
  # @option options [String] :version_id
595
683
  # VersionId used to reference a specific version of the object.
596
684
  # @option options [String] :request_payer
597
- # Confirms that the requester knows that she or he will be charged for
598
- # the request. Bucket owners need not specify this parameter in their
599
- # requests. Documentation on downloading objects from requester pays
600
- # buckets can be found at
601
- # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
685
+ # Confirms that the requester knows that they will be charged for the
686
+ # request. Bucket owners need not specify this parameter in their
687
+ # requests. For information about downloading objects from requester
688
+ # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
689
+ # in the *Amazon S3 Developer Guide*.
690
+ #
691
+ #
692
+ #
693
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
602
694
  # @option options [Boolean] :bypass_governance_retention
603
- # Indicates whether Amazon S3 object lock should bypass governance-mode
695
+ # Indicates whether S3 Object Lock should bypass Governance-mode
604
696
  # restrictions to process this operation.
605
697
  # @return [Types::DeleteObjectOutput]
606
698
  def delete(options = {})
@@ -648,41 +740,45 @@ module Aws::S3
648
740
  # time, otherwise return a 412 (precondition failed).
649
741
  # @option options [String] :range
650
742
  # Downloads the specified range bytes of an object. For more information
651
- # about the HTTP Range header, go to
652
- # http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.
743
+ # about the HTTP Range header, see
744
+ # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35]().
653
745
  # @option options [String] :response_cache_control
654
- # Sets the Cache-Control header of the response.
746
+ # Sets the `Cache-Control` header of the response.
655
747
  # @option options [String] :response_content_disposition
656
- # Sets the Content-Disposition header of the response
748
+ # Sets the `Content-Disposition` header of the response
657
749
  # @option options [String] :response_content_encoding
658
- # Sets the Content-Encoding header of the response.
750
+ # Sets the `Content-Encoding` header of the response.
659
751
  # @option options [String] :response_content_language
660
- # Sets the Content-Language header of the response.
752
+ # Sets the `Content-Language` header of the response.
661
753
  # @option options [String] :response_content_type
662
- # Sets the Content-Type header of the response.
754
+ # Sets the `Content-Type` header of the response.
663
755
  # @option options [Time,DateTime,Date,Integer,String] :response_expires
664
- # Sets the Expires header of the response.
756
+ # Sets the `Expires` header of the response.
665
757
  # @option options [String] :version_id
666
758
  # VersionId used to reference a specific version of the object.
667
759
  # @option options [String] :sse_customer_algorithm
668
- # Specifies the algorithm to use to when encrypting the object (e.g.,
669
- # AES256).
760
+ # Specifies the algorithm to use to when encrypting the object (for
761
+ # example, AES256).
670
762
  # @option options [String] :sse_customer_key
671
763
  # Specifies the customer-provided encryption key for Amazon S3 to use in
672
764
  # encrypting data. This value is used to store the object and then it is
673
- # discarded; Amazon does not store the encryption key. The key must be
674
- # appropriate for use with the algorithm specified in the
675
- # x-amz-server-side​-encryption​-customer-algorithm header.
765
+ # discarded; Amazon S3 does not store the encryption key. The key must
766
+ # be appropriate for use with the algorithm specified in the
767
+ # `x-amz-server-side​-encryption​-customer-algorithm` header.
676
768
  # @option options [String] :sse_customer_key_md5
677
769
  # Specifies the 128-bit MD5 digest of the encryption key according to
678
770
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
679
- # ensure the encryption key was transmitted without error.
771
+ # ensure that the encryption key was transmitted without error.
680
772
  # @option options [String] :request_payer
681
- # Confirms that the requester knows that she or he will be charged for
682
- # the request. Bucket owners need not specify this parameter in their
683
- # requests. Documentation on downloading objects from requester pays
684
- # buckets can be found at
685
- # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
773
+ # Confirms that the requester knows that they will be charged for the
774
+ # request. Bucket owners need not specify this parameter in their
775
+ # requests. For information about downloading objects from requester
776
+ # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
777
+ # in the *Amazon S3 Developer Guide*.
778
+ #
779
+ #
780
+ #
781
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
686
782
  # @option options [Integer] :part_number
687
783
  # Part number of the object being read. This is a positive integer
688
784
  # between 1 and 10,000. Effectively performs a 'ranged' GET request
@@ -758,8 +854,8 @@ module Aws::S3
758
854
  # @option options [Hash<String,String>] :metadata
759
855
  # A map of metadata to store with the object in S3.
760
856
  # @option options [String] :server_side_encryption
761
- # The Server-side encryption algorithm used when storing this object in
762
- # S3 (e.g., AES256, aws:kms).
857
+ # The server-side encryption algorithm used when storing this object in
858
+ # Amazon S3 (for example, AES256, aws:kms).
763
859
  # @option options [String] :storage_class
764
860
  # The type of storage to use for the object. Defaults to 'STANDARD'.
765
861
  # @option options [String] :website_redirect_location
@@ -767,42 +863,51 @@ module Aws::S3
767
863
  # object to another object in the same bucket or to an external URL.
768
864
  # Amazon S3 stores the value of this header in the object metadata.
769
865
  # @option options [String] :sse_customer_algorithm
770
- # Specifies the algorithm to use to when encrypting the object (e.g.,
771
- # AES256).
866
+ # Specifies the algorithm to use to when encrypting the object (for
867
+ # example, AES256).
772
868
  # @option options [String] :sse_customer_key
773
869
  # Specifies the customer-provided encryption key for Amazon S3 to use in
774
870
  # encrypting data. This value is used to store the object and then it is
775
- # discarded; Amazon does not store the encryption key. The key must be
776
- # appropriate for use with the algorithm specified in the
777
- # x-amz-server-side​-encryption​-customer-algorithm header.
871
+ # discarded; Amazon S3 does not store the encryption key. The key must
872
+ # be appropriate for use with the algorithm specified in the
873
+ # `x-amz-server-side​-encryption​-customer-algorithm` header.
778
874
  # @option options [String] :sse_customer_key_md5
779
875
  # Specifies the 128-bit MD5 digest of the encryption key according to
780
876
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
781
- # ensure the encryption key was transmitted without error.
877
+ # ensure that the encryption key was transmitted without error.
782
878
  # @option options [String] :ssekms_key_id
783
- # Specifies the AWS KMS key ID to use for object encryption. All GET and
784
- # PUT requests for an object protected by AWS KMS will fail if not made
785
- # via SSL or using SigV4. Documentation on configuring any of the
786
- # officially supported AWS SDKs and CLI can be found at
787
- # http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
879
+ # Specifies the ID of the symmetric customer managed AWS KMS CMK to use
880
+ # for object encryption. All GET and PUT requests for an object
881
+ # protected by AWS KMS will fail if not made via SSL or using SigV4. For
882
+ # information about configuring using any of the officially supported
883
+ # AWS SDKs and AWS CLI, see [Specifying the Signature Version in Request
884
+ # Authentication][1] in the *Amazon S3 Developer Guide*.
885
+ #
886
+ #
887
+ #
888
+ # [1]: https://docs.aws.amazon.com/http:/docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
788
889
  # @option options [String] :ssekms_encryption_context
789
890
  # Specifies the AWS KMS Encryption Context to use for object encryption.
790
891
  # The value of this header is a base64-encoded UTF-8 string holding JSON
791
892
  # with the encryption context key-value pairs.
792
893
  # @option options [String] :request_payer
793
- # Confirms that the requester knows that she or he will be charged for
794
- # the request. Bucket owners need not specify this parameter in their
795
- # requests. Documentation on downloading objects from requester pays
796
- # buckets can be found at
797
- # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
894
+ # Confirms that the requester knows that they will be charged for the
895
+ # request. Bucket owners need not specify this parameter in their
896
+ # requests. For information about downloading objects from requester
897
+ # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
898
+ # in the *Amazon S3 Developer Guide*.
899
+ #
900
+ #
901
+ #
902
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
798
903
  # @option options [String] :tagging
799
904
  # The tag-set for the object. The tag-set must be encoded as URL Query
800
- # parameters
905
+ # parameters.
801
906
  # @option options [String] :object_lock_mode
802
- # Specifies the object lock mode that you want to apply to the uploaded
907
+ # Specifies the Object Lock mode that you want to apply to the uploaded
803
908
  # object.
804
909
  # @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
805
- # Specifies the date and time when you want the object lock to expire.
910
+ # Specifies the date and time when you want the Object Lock to expire.
806
911
  # @option options [String] :object_lock_legal_hold_status
807
912
  # Specifies whether you want to apply a Legal Hold to the uploaded
808
913
  # object.
@@ -857,30 +962,77 @@ module Aws::S3
857
962
  # })
858
963
  # @param [Hash] options ({})
859
964
  # @option options [String] :acl
860
- # The canned ACL to apply to the object.
965
+ # The canned ACL to apply to the object. For more information, see
966
+ # [Canned ACL][1].
967
+ #
968
+ #
969
+ #
970
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
861
971
  # @option options [String, IO] :body
862
972
  # Object data.
863
973
  # @option options [String] :cache_control
864
- # Specifies caching behavior along the request/reply chain.
974
+ # Can be used to specify caching behavior along the request/reply chain.
975
+ # For more information, see
976
+ # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9][1].
977
+ #
978
+ #
979
+ #
980
+ # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9
865
981
  # @option options [String] :content_disposition
866
- # Specifies presentational information for the object.
982
+ # Specifies presentational information for the object. For more
983
+ # information, see
984
+ # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1][1].
985
+ #
986
+ #
987
+ #
988
+ # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1
867
989
  # @option options [String] :content_encoding
868
990
  # Specifies what content encodings have been applied to the object and
869
991
  # thus what decoding mechanisms must be applied to obtain the media-type
870
- # referenced by the Content-Type header field.
992
+ # referenced by the Content-Type header field. For more information, see
993
+ # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11][1].
994
+ #
995
+ #
996
+ #
997
+ # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11
871
998
  # @option options [String] :content_language
872
999
  # The language the content is in.
873
1000
  # @option options [Integer] :content_length
874
1001
  # Size of the body in bytes. This parameter is useful when the size of
875
- # the body cannot be determined automatically.
1002
+ # the body cannot be determined automatically. For more information, see
1003
+ # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13][1].
1004
+ #
1005
+ #
1006
+ #
1007
+ # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13
876
1008
  # @option options [String] :content_md5
877
- # The base64-encoded 128-bit MD5 digest of the part data. This parameter
878
- # is auto-populated when using the command from the CLI. This parameted
879
- # is required if object lock parameters are specified.
1009
+ # The base64-encoded 128-bit MD5 digest of the message (without the
1010
+ # headers) according to RFC 1864. This header can be used as a message
1011
+ # integrity check to verify that the data is the same data that was
1012
+ # originally sent. Although it is optional, we recommend using the
1013
+ # Content-MD5 mechanism as an end-to-end integrity check. For more
1014
+ # information about REST request authentication, see [REST
1015
+ # Authentication][1].
1016
+ #
1017
+ #
1018
+ #
1019
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
880
1020
  # @option options [String] :content_type
881
- # A standard MIME type describing the format of the object data.
1021
+ # A standard MIME type describing the format of the contents. For more
1022
+ # information, see
1023
+ # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17][1].
1024
+ #
1025
+ #
1026
+ #
1027
+ # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17
882
1028
  # @option options [Time,DateTime,Date,Integer,String] :expires
883
- # The date and time at which the object is no longer cacheable.
1029
+ # The date and time at which the object is no longer cacheable. For more
1030
+ # information, see
1031
+ # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21][1].
1032
+ #
1033
+ #
1034
+ #
1035
+ # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21
884
1036
  # @option options [String] :grant_full_control
885
1037
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
886
1038
  # object.
@@ -893,52 +1045,89 @@ module Aws::S3
893
1045
  # @option options [Hash<String,String>] :metadata
894
1046
  # A map of metadata to store with the object in S3.
895
1047
  # @option options [String] :server_side_encryption
896
- # The Server-side encryption algorithm used when storing this object in
897
- # S3 (e.g., AES256, aws:kms).
1048
+ # The server-side encryption algorithm used when storing this object in
1049
+ # Amazon S3 (for example, AES256, aws:kms).
898
1050
  # @option options [String] :storage_class
899
- # The type of storage to use for the object. Defaults to 'STANDARD'.
1051
+ # If you don't specify, Standard is the default storage class. Amazon
1052
+ # S3 supports other storage classes.
900
1053
  # @option options [String] :website_redirect_location
901
1054
  # If the bucket is configured as a website, redirects requests for this
902
1055
  # object to another object in the same bucket or to an external URL.
903
- # Amazon S3 stores the value of this header in the object metadata.
1056
+ # Amazon S3 stores the value of this header in the object metadata. For
1057
+ # information about object metadata, see [Object Key and Metadata][1].
1058
+ #
1059
+ # In the following example, the request header sets the redirect to an
1060
+ # object (anotherPage.html) in the same bucket:
1061
+ #
1062
+ # `x-amz-website-redirect-location: /anotherPage.html`
1063
+ #
1064
+ # In the following example, the request header sets the object redirect
1065
+ # to another website:
1066
+ #
1067
+ # `x-amz-website-redirect-location: http://www.example.com/`
1068
+ #
1069
+ # For more information about website hosting in Amazon S3, see [Hosting
1070
+ # Websites on Amazon S3][2] and [How to Configure Website Page
1071
+ # Redirects][3].
1072
+ #
1073
+ #
1074
+ #
1075
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html
1076
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html
1077
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html
904
1078
  # @option options [String] :sse_customer_algorithm
905
- # Specifies the algorithm to use to when encrypting the object (e.g.,
906
- # AES256).
1079
+ # Specifies the algorithm to use to when encrypting the object (for
1080
+ # example, AES256).
907
1081
  # @option options [String] :sse_customer_key
908
1082
  # Specifies the customer-provided encryption key for Amazon S3 to use in
909
1083
  # encrypting data. This value is used to store the object and then it is
910
- # discarded; Amazon does not store the encryption key. The key must be
911
- # appropriate for use with the algorithm specified in the
912
- # x-amz-server-side​-encryption​-customer-algorithm header.
1084
+ # discarded; Amazon S3 does not store the encryption key. The key must
1085
+ # be appropriate for use with the algorithm specified in the
1086
+ # `x-amz-server-side​-encryption​-customer-algorithm` header.
913
1087
  # @option options [String] :sse_customer_key_md5
914
1088
  # Specifies the 128-bit MD5 digest of the encryption key according to
915
1089
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
916
- # ensure the encryption key was transmitted without error.
1090
+ # ensure that the encryption key was transmitted without error.
917
1091
  # @option options [String] :ssekms_key_id
918
- # Specifies the AWS KMS key ID to use for object encryption. All GET and
919
- # PUT requests for an object protected by AWS KMS will fail if not made
920
- # via SSL or using SigV4. Documentation on configuring any of the
921
- # officially supported AWS SDKs and CLI can be found at
922
- # http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html#specify-signature-version
1092
+ # If `x-amz-server-side-encryption` is present and has the value of
1093
+ # `aws:kms`, this header specifies the ID of the AWS Key Management
1094
+ # Service (AWS KMS) symmetrical customer managed customer master key
1095
+ # (CMK) that was used for the object.
1096
+ #
1097
+ # If the value of `x-amz-server-side-encryption` is `aws:kms`, this
1098
+ # header specifies the ID of the symmetric customer managed AWS KMS CMK
1099
+ # that will be used for the object. If you specify
1100
+ # `x-amz-server-side-encryption:aws:kms`, but do not provide`
1101
+ # x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3 uses the AWS
1102
+ # managed CMK in AWS to protect the data.
923
1103
  # @option options [String] :ssekms_encryption_context
924
1104
  # Specifies the AWS KMS Encryption Context to use for object encryption.
925
1105
  # The value of this header is a base64-encoded UTF-8 string holding JSON
926
1106
  # with the encryption context key-value pairs.
927
1107
  # @option options [String] :request_payer
928
- # Confirms that the requester knows that she or he will be charged for
929
- # the request. Bucket owners need not specify this parameter in their
930
- # requests. Documentation on downloading objects from requester pays
931
- # buckets can be found at
932
- # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1108
+ # Confirms that the requester knows that they will be charged for the
1109
+ # request. Bucket owners need not specify this parameter in their
1110
+ # requests. For information about downloading objects from requester
1111
+ # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1112
+ # in the *Amazon S3 Developer Guide*.
1113
+ #
1114
+ #
1115
+ #
1116
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
933
1117
  # @option options [String] :tagging
934
1118
  # The tag-set for the object. The tag-set must be encoded as URL Query
935
1119
  # parameters. (For example, "Key1=Value1")
936
1120
  # @option options [String] :object_lock_mode
937
- # The object lock mode that you want to apply to this object.
1121
+ # The Object Lock mode that you want to apply to this object.
938
1122
  # @option options [Time,DateTime,Date,Integer,String] :object_lock_retain_until_date
939
- # The date and time when you want this object's object lock to expire.
1123
+ # The date and time when you want this object's Object Lock to expire.
940
1124
  # @option options [String] :object_lock_legal_hold_status
941
- # The Legal Hold status that you want to apply to the specified object.
1125
+ # Specifies whether a legal hold will be applied to this object. For
1126
+ # more information about S3 Object Lock, see [Object Lock][1].
1127
+ #
1128
+ #
1129
+ #
1130
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
942
1131
  # @return [Types::PutObjectOutput]
943
1132
  def put(options = {})
944
1133
  options = options.merge(
@@ -1038,13 +1227,19 @@ module Aws::S3
1038
1227
  # })
1039
1228
  # @param [Hash] options ({})
1040
1229
  # @option options [String] :version_id
1230
+ # VersionId used to reference a specific version of the object.
1041
1231
  # @option options [Types::RestoreRequest] :restore_request
1232
+ # Container for restore job parameters.
1042
1233
  # @option options [String] :request_payer
1043
- # Confirms that the requester knows that she or he will be charged for
1044
- # the request. Bucket owners need not specify this parameter in their
1045
- # requests. Documentation on downloading objects from requester pays
1046
- # buckets can be found at
1047
- # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1234
+ # Confirms that the requester knows that they will be charged for the
1235
+ # request. Bucket owners need not specify this parameter in their
1236
+ # requests. For information about downloading objects from requester
1237
+ # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1238
+ # in the *Amazon S3 Developer Guide*.
1239
+ #
1240
+ #
1241
+ #
1242
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1048
1243
  # @return [Types::RestoreObjectOutput]
1049
1244
  def restore_object(options = {})
1050
1245
  options = options.merge(
@@ -1170,15 +1365,21 @@ module Aws::S3
1170
1365
  # @option options [String] :mfa
1171
1366
  # The concatenation of the authentication device's serial number, a
1172
1367
  # space, and the value that is displayed on your authentication device.
1368
+ # Required to permanently delete a versioned object if versioning is
1369
+ # configured with MFA delete enabled.
1173
1370
  # @option options [String] :request_payer
1174
- # Confirms that the requester knows that she or he will be charged for
1175
- # the request. Bucket owners need not specify this parameter in their
1176
- # requests. Documentation on downloading objects from requester pays
1177
- # buckets can be found at
1178
- # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1371
+ # Confirms that the requester knows that they will be charged for the
1372
+ # request. Bucket owners need not specify this parameter in their
1373
+ # requests. For information about downloading objects from requester
1374
+ # pays buckets, see [Downloading Objects in Requestor Pays Buckets][1]
1375
+ # in the *Amazon S3 Developer Guide*.
1376
+ #
1377
+ #
1378
+ #
1379
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1179
1380
  # @option options [Boolean] :bypass_governance_retention
1180
1381
  # Specifies whether you want to delete this object even if it has a
1181
- # Governance-type object lock in place. You must have sufficient
1382
+ # Governance-type Object Lock in place. You must have sufficient
1182
1383
  # permissions to perform this operation.
1183
1384
  # @return [void]
1184
1385
  def batch_delete!(options = {})