aws-sdk-s3 1.65.0 → 1.69.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 (90) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aws-sdk-s3.rb +3 -1
  3. data/lib/aws-sdk-s3/bucket.rb +5 -3
  4. data/lib/aws-sdk-s3/bucket_acl.rb +2 -0
  5. data/lib/aws-sdk-s3/bucket_cors.rb +3 -1
  6. data/lib/aws-sdk-s3/bucket_lifecycle.rb +2 -0
  7. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +2 -0
  8. data/lib/aws-sdk-s3/bucket_logging.rb +2 -0
  9. data/lib/aws-sdk-s3/bucket_notification.rb +2 -0
  10. data/lib/aws-sdk-s3/bucket_policy.rb +2 -0
  11. data/lib/aws-sdk-s3/bucket_region_cache.rb +2 -0
  12. data/lib/aws-sdk-s3/bucket_request_payment.rb +2 -0
  13. data/lib/aws-sdk-s3/bucket_tagging.rb +2 -0
  14. data/lib/aws-sdk-s3/bucket_versioning.rb +2 -0
  15. data/lib/aws-sdk-s3/bucket_website.rb +6 -2
  16. data/lib/aws-sdk-s3/client.rb +530 -649
  17. data/lib/aws-sdk-s3/client_api.rb +40 -18
  18. data/lib/aws-sdk-s3/customizations.rb +3 -0
  19. data/lib/aws-sdk-s3/customizations/bucket.rb +4 -0
  20. data/lib/aws-sdk-s3/customizations/multipart_upload.rb +2 -0
  21. data/lib/aws-sdk-s3/customizations/object.rb +5 -0
  22. data/lib/aws-sdk-s3/customizations/object_summary.rb +5 -0
  23. data/lib/aws-sdk-s3/customizations/types/list_object_versions_output.rb +2 -0
  24. data/lib/aws-sdk-s3/encryption.rb +2 -0
  25. data/lib/aws-sdk-s3/encryption/client.rb +3 -1
  26. data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +11 -0
  27. data/lib/aws-sdk-s3/encryption/default_cipher_provider.rb +2 -0
  28. data/lib/aws-sdk-s3/encryption/default_key_provider.rb +2 -0
  29. data/lib/aws-sdk-s3/encryption/encrypt_handler.rb +11 -0
  30. data/lib/aws-sdk-s3/encryption/errors.rb +2 -0
  31. data/lib/aws-sdk-s3/encryption/io_auth_decrypter.rb +2 -0
  32. data/lib/aws-sdk-s3/encryption/io_decrypter.rb +8 -1
  33. data/lib/aws-sdk-s3/encryption/io_encrypter.rb +2 -0
  34. data/lib/aws-sdk-s3/encryption/key_provider.rb +2 -0
  35. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +2 -0
  36. data/lib/aws-sdk-s3/encryption/materials.rb +2 -0
  37. data/lib/aws-sdk-s3/encryption/utils.rb +2 -0
  38. data/lib/aws-sdk-s3/encryptionV2/client.rb +378 -0
  39. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +194 -0
  40. data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +104 -0
  41. data/lib/aws-sdk-s3/encryptionV2/default_key_provider.rb +38 -0
  42. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +63 -0
  43. data/lib/aws-sdk-s3/encryptionV2/errors.rb +13 -0
  44. data/lib/aws-sdk-s3/encryptionV2/io_auth_decrypter.rb +56 -0
  45. data/lib/aws-sdk-s3/encryptionV2/io_decrypter.rb +30 -0
  46. data/lib/aws-sdk-s3/encryptionV2/io_encrypter.rb +67 -0
  47. data/lib/aws-sdk-s3/encryptionV2/key_provider.rb +29 -0
  48. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +84 -0
  49. data/lib/aws-sdk-s3/encryptionV2/materials.rb +58 -0
  50. data/lib/aws-sdk-s3/encryptionV2/utils.rb +116 -0
  51. data/lib/aws-sdk-s3/encryption_v2.rb +20 -0
  52. data/lib/aws-sdk-s3/errors.rb +2 -0
  53. data/lib/aws-sdk-s3/event_streams.rb +7 -0
  54. data/lib/aws-sdk-s3/file_downloader.rb +2 -0
  55. data/lib/aws-sdk-s3/file_part.rb +2 -0
  56. data/lib/aws-sdk-s3/file_uploader.rb +2 -0
  57. data/lib/aws-sdk-s3/legacy_signer.rb +2 -0
  58. data/lib/aws-sdk-s3/multipart_file_uploader.rb +2 -0
  59. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +2 -0
  60. data/lib/aws-sdk-s3/multipart_upload.rb +3 -1
  61. data/lib/aws-sdk-s3/multipart_upload_error.rb +2 -0
  62. data/lib/aws-sdk-s3/multipart_upload_part.rb +2 -0
  63. data/lib/aws-sdk-s3/object.rb +16 -4
  64. data/lib/aws-sdk-s3/object_acl.rb +2 -0
  65. data/lib/aws-sdk-s3/object_copier.rb +2 -0
  66. data/lib/aws-sdk-s3/object_multipart_copier.rb +2 -0
  67. data/lib/aws-sdk-s3/object_summary.rb +14 -3
  68. data/lib/aws-sdk-s3/object_version.rb +17 -1
  69. data/lib/aws-sdk-s3/plugins/accelerate.rb +2 -0
  70. data/lib/aws-sdk-s3/plugins/bucket_arn.rb +2 -0
  71. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +2 -0
  72. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +2 -0
  73. data/lib/aws-sdk-s3/plugins/dualstack.rb +2 -0
  74. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +3 -4
  75. data/lib/aws-sdk-s3/plugins/get_bucket_location_fix.rb +2 -0
  76. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +3 -1
  77. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +2 -0
  78. data/lib/aws-sdk-s3/plugins/location_constraint.rb +2 -0
  79. data/lib/aws-sdk-s3/plugins/md5s.rb +23 -24
  80. data/lib/aws-sdk-s3/plugins/redirects.rb +2 -0
  81. data/lib/aws-sdk-s3/plugins/s3_host_id.rb +2 -0
  82. data/lib/aws-sdk-s3/plugins/s3_signer.rb +2 -0
  83. data/lib/aws-sdk-s3/plugins/sse_cpk.rb +2 -0
  84. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -0
  85. data/lib/aws-sdk-s3/presigned_post.rb +2 -0
  86. data/lib/aws-sdk-s3/presigner.rb +2 -0
  87. data/lib/aws-sdk-s3/resource.rb +3 -1
  88. data/lib/aws-sdk-s3/types.rb +140 -37
  89. data/lib/aws-sdk-s3/waiters.rb +2 -0
  90. metadata +18 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 40f310e6d4ead7108692d14ef761378d023bb81015055df1474a9086dec4cd0a
4
- data.tar.gz: 6601716b6872de72391ee45c00fac5b6b64aa03de178a1f974dbafd91d141032
3
+ metadata.gz: 42108655e1496a1ce6df9db9b19ea1733e1c2d3710b70d8a27bb6c8b562fb307
4
+ data.tar.gz: 2b759d809937dc65075c1e193ce71972de3ce592ac7d6d01d782e1eb401e6b1e
5
5
  SHA512:
6
- metadata.gz: 9c1a0ff1f5d20e23fa0af82851b22424bcbcf9b7b3d8e55455d51c7c5c60ae92547aa4f8f22bd57498be2642ecfa3654e275d444137b34265e8c66c378941c9a
7
- data.tar.gz: 201f2a5aa4938f6126d3876e6e67999114c6457a01ea1981ea83b5472eabb7e971315e34032dd5a4b4433af2fbcbf53c00c2ceab3800eee97f0b38c3b1d68632
6
+ metadata.gz: d0342f210f9a406650291b5cc4a27315d39c142d042609362bc16b3ef20eafa2915243a7f72dcd3a84a81bcdc0e1209f76b440cddf3acd88dc62ce66cc6f67fb
7
+ data.tar.gz: e3090d0ea9210596cb6eaa93b95ad43fb8784de81b249ebe8e8db33fb97763e281192f593a0f07bf224fa820ec5d0ea5f225368d9e396982f10a9c3e8a528f91
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -66,6 +68,6 @@ require_relative 'aws-sdk-s3/event_streams'
66
68
  # @service
67
69
  module Aws::S3
68
70
 
69
- GEM_VERSION = '1.65.0'
71
+ GEM_VERSION = '1.69.0'
70
72
 
71
73
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -437,8 +439,8 @@ module Aws::S3
437
439
  # The server-side encryption algorithm used when storing this object in
438
440
  # Amazon S3 (for example, AES256, aws:kms).
439
441
  # @option options [String] :storage_class
440
- # If you don't specify, Standard is the default storage class. Amazon
441
- # S3 supports other storage classes.
442
+ # If you don't specify, S3 Standard is the default storage class.
443
+ # Amazon S3 supports other storage classes.
442
444
  # @option options [String] :website_redirect_location
443
445
  # If the bucket is configured as a website, redirects requests for this
444
446
  # object to another object in the same bucket or to an external URL.
@@ -520,7 +522,7 @@ module Aws::S3
520
522
  # @return [Object]
521
523
  def put_object(options = {})
522
524
  options = options.merge(bucket: @name)
523
- resp = @client.put_object(options)
525
+ @client.put_object(options)
524
526
  Object.new(
525
527
  bucket_name: @name,
526
528
  key: options[:key],
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -209,7 +211,7 @@ module Aws::S3
209
211
  #
210
212
  #
211
213
  #
212
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev//cors.html
214
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html
213
215
  # @option options [String] :content_md5
214
216
  # The base64-encoded 128-bit MD5 digest of the data. This header must be
215
217
  # used as a message integrity check to verify that the request body was
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'thread'
2
4
 
3
5
  module Aws
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -39,13 +41,15 @@ module Aws::S3
39
41
  data[:redirect_all_requests_to]
40
42
  end
41
43
 
42
- # The name of the index document for the website.
44
+ # The name of the index document for the website (for example
45
+ # `index.html`).
43
46
  # @return [Types::IndexDocument]
44
47
  def index_document
45
48
  data[:index_document]
46
49
  end
47
50
 
48
- # The name of the error document for the website.
51
+ # The object key name of the website error document to use for 4XX class
52
+ # errors.
49
53
  # @return [Types::ErrorDocument]
50
54
  def error_document
51
55
  data[:error_document]
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -24,6 +26,7 @@ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
24
26
  require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
25
27
  require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
26
28
  require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
+ require 'aws-sdk-core/plugins/http_checksum.rb'
27
30
  require 'aws-sdk-core/plugins/protocols/rest_xml.rb'
28
31
  require 'aws-sdk-s3/plugins/iad_regional_endpoint.rb'
29
32
  require 'aws-sdk-s3/plugins/accelerate.rb'
@@ -85,6 +88,7 @@ module Aws::S3
85
88
  add_plugin(Aws::Plugins::ClientMetricsPlugin)
86
89
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
87
90
  add_plugin(Aws::Plugins::TransferEncoding)
91
+ add_plugin(Aws::Plugins::HttpChecksum)
88
92
  add_plugin(Aws::Plugins::Protocols::RestXml)
89
93
  add_plugin(Aws::S3::Plugins::IADRegionalEndpoint)
90
94
  add_plugin(Aws::S3::Plugins::Accelerate)
@@ -179,10 +183,11 @@ module Aws::S3
179
183
  # will use the Client Side Monitoring Agent Publisher.
180
184
  #
181
185
  # @option options [Boolean] :compute_checksums (true)
182
- # When `true` a MD5 checksum will be computed for every request that
183
- # sends a body. When `false`, MD5 checksums will only be computed
184
- # for operations that require them. Checksum errors returned by Amazon
185
- # S3 are automatically retried up to `:retry_limit` times.
186
+ # When `true` a MD5 checksum will be computed and sent in the Content Md5
187
+ # header for :put_object and :upload_part. When `false`, MD5 checksums
188
+ # will not be computed for these operations. Checksums are still computed
189
+ # for operations requiring them. Checksum errors returned by Amazon S3 are
190
+ # automatically retried up to `:retry_limit` times.
186
191
  #
187
192
  # @option options [Boolean] :convert_params (true)
188
193
  # When `true`, an attempt is made to coerce request parameters into
@@ -199,7 +204,7 @@ module Aws::S3
199
204
  # @option options [String] :endpoint
200
205
  # The client endpoint is normally constructed from the `:region`
201
206
  # option. You should only configure an `:endpoint` when connecting
202
- # to test endpoints. This should be a valid HTTP(S) URI.
207
+ # to test or custom endpoints. This should be a valid HTTP(S) URI.
203
208
  #
204
209
  # @option options [Integer] :endpoint_cache_max_entries (1000)
205
210
  # Used for the maximum size limit of the LRU cache storing endpoints data
@@ -214,7 +219,7 @@ module Aws::S3
214
219
  # requests fetching endpoints information. Defaults to 60 sec.
215
220
  #
216
221
  # @option options [Boolean] :endpoint_discovery (false)
217
- # When set to `true`, endpoint discovery will be enabled for operations when available. Defaults to `false`.
222
+ # When set to `true`, endpoint discovery will be enabled for operations when available.
218
223
  #
219
224
  # @option options [Proc] :event_stream_handler
220
225
  # When an EventStream or Proc object is provided, it will be used as callback for each chunk of event stream response received along the way.
@@ -555,8 +560,7 @@ module Aws::S3
555
560
  #
556
561
  # * 404 Not Found
557
562
  #
558
- # The following operations are related to
559
- # `DeleteBucketMetricsConfiguration`\:
563
+ # The following operations are related to `CompleteMultipartUpload`\:
560
564
  #
561
565
  # * CreateMultipartUpload
562
566
  #
@@ -637,7 +641,7 @@ module Aws::S3
637
641
  # bucket: "acexamplebucket",
638
642
  # etag: "\"4d9031c7644d8081c2829f4ea23c55f7-2\"",
639
643
  # key: "bigobject",
640
- # location: "https://examplebucket.s3.amazonaws.com/bigobject",
644
+ # location: "https://examplebucket.s3.<Region>.amazonaws.com/bigobject",
641
645
  # }
642
646
  #
643
647
  # @example Request syntax with placeholder values
@@ -682,58 +686,19 @@ module Aws::S3
682
686
  #
683
687
  # <note markdown="1"> You can store individual objects of up to 5 TB in Amazon S3. You
684
688
  # create a copy of your object up to 5 GB in size in a single atomic
685
- # operation using this API. However, for copying an object greater than
686
- # 5 GB, you must use the multipart upload Upload Part - Copy API. For
687
- # more information, see [Copy Object Using the REST Multipart Upload
688
- # API][1].
689
+ # operation using this API. However, to copy an object greater than 5
690
+ # GB, you must use the multipart upload Upload Part - Copy API. For more
691
+ # information, see [Copy Object Using the REST Multipart Upload API][1].
689
692
  #
690
693
  # </note>
691
694
  #
692
- # When copying an object, you can preserve all metadata (default) or
693
- # specify new metadata. However, the ACL is not preserved and is set to
694
- # private for the user making the request. To override the default ACL
695
- # setting, specify a new ACL when generating a copy request. For more
696
- # information, see [Using ACLs][2].
697
- #
698
- # Amazon S3 transfer acceleration does not support cross-region copies.
699
- # If you request a cross-region copy using a transfer acceleration
700
- # endpoint, you get a 400 `Bad Request` error. For more information
701
- # about transfer acceleration, see [Transfer Acceleration][3].
702
- #
703
695
  # All copy requests must be authenticated. Additionally, you must have
704
696
  # *read* access to the source object and *write* access to the
705
697
  # destination bucket. For more information, see [REST
706
- # Authentication][4]. Both the Region that you want to copy the object
698
+ # Authentication][2]. Both the Region that you want to copy the object
707
699
  # from and the Region that you want to copy the object to must be
708
700
  # enabled for your account.
709
701
  #
710
- # To only copy an object under certain conditions, such as whether the
711
- # `Etag` matches or whether the object was modified before or after a
712
- # specified date, use the request parameters
713
- # `x-amz-copy-source-if-match`, `x-amz-copy-source-if-none-match`,
714
- # `x-amz-copy-source-if-unmodified-since`, or `
715
- # x-amz-copy-source-if-modified-since`.
716
- #
717
- # <note markdown="1"> All headers with the `x-amz-` prefix, including `x-amz-copy-source`,
718
- # must be signed.
719
- #
720
- # </note>
721
- #
722
- # You can use this operation to change the storage class of an object
723
- # that is already stored in Amazon S3 using the `StorageClass`
724
- # parameter. For more information, see [Storage Classes][5].
725
- #
726
- # The source object that you are copying can be encrypted or
727
- # unencrypted. If the source object is encrypted, it can be encrypted by
728
- # server-side encryption using AWS managed encryption keys or by using a
729
- # customer-provided encryption key. When copying an object, you can
730
- # request that Amazon S3 encrypt the target object by using either the
731
- # AWS managed encryption keys or by using your own encryption key. You
732
- # can do this regardless of the form of server-side encryption that was
733
- # used to encrypt the source, or even if the source object was not
734
- # encrypted. For more information about server-side encryption, see
735
- # [Using Server-Side Encryption][6].
736
- #
737
702
  # A copy request might return an error when Amazon S3 receives the copy
738
703
  # request or while Amazon S3 is copying the files. If the error occurs
739
704
  # before the copy operation starts, you receive a standard Amazon S3
@@ -752,182 +717,123 @@ module Aws::S3
752
717
  #
753
718
  # </note>
754
719
  #
755
- # Consider the following when using request headers:
756
- #
757
- # * Consideration 1 – If both the `x-amz-copy-source-if-match` and
758
- # `x-amz-copy-source-if-unmodified-since` headers are present in the
759
- # request and evaluate as follows, Amazon S3 returns 200 OK and copies
760
- # the data:
761
- #
762
- # * `x-amz-copy-source-if-match` condition evaluates to true
763
- #
764
- # * `x-amz-copy-source-if-unmodified-since` condition evaluates to
765
- # false
766
- #
767
- # * Consideration 2 – If both of the `x-amz-copy-source-if-none-match`
768
- # and `x-amz-copy-source-if-modified-since` headers are present in the
769
- # request and evaluate as follows, Amazon S3 returns the `412
770
- # Precondition Failed` response code:
771
- #
772
- # * `x-amz-copy-source-if-none-match` condition evaluates to false
773
- #
774
- # * `x-amz-copy-source-if-modified-since` condition evaluates to true
775
- #
776
- # The copy request charge is based on the storage class and Region you
777
- # specify for the destination object. For pricing information, see
778
- # [Amazon S3 Pricing][7].
779
- #
780
- # Following are other considerations when using `CopyObject`\:
781
- #
782
- # Versioning
783
- #
784
- # : By default, `x-amz-copy-source` identifies the current version of an
785
- # object to copy. (If the current version is a delete marker, Amazon
786
- # S3 behaves as if the object was deleted.) To copy a different
787
- # version, use the `versionId` subresource.
720
+ # The copy request charge is based on the storage class and Region that
721
+ # you specify for the destination object. For pricing information, see
722
+ # [Amazon S3 pricing][3].
788
723
  #
789
- # If you enable versioning on the target bucket, Amazon S3 generates a
790
- # unique version ID for the object being copied. This version ID is
791
- # different from the version ID of the source object. Amazon S3
792
- # returns the version ID of the copied object in the
793
- # `x-amz-version-id` response header in the response.
724
+ # Amazon S3 transfer acceleration does not support cross-Region copies.
725
+ # If you request a cross-Region copy using a transfer acceleration
726
+ # endpoint, you get a 400 `Bad Request` error. For more information, see
727
+ # [Transfer Acceleration][4].
794
728
  #
795
- # If you do not enable versioning or suspend it on the target bucket,
796
- # the version ID that Amazon S3 generates is always null.
797
- #
798
- # If the source object's storage class is GLACIER, you must restore a
799
- # copy of this object before you can use it as a source object for the
800
- # copy operation. For more information, see .
801
- #
802
- # Access Permissions
803
- #
804
- # : When copying an object, you can optionally specify the accounts or
805
- # groups that should be granted specific permissions on the new
806
- # object. There are two ways to grant the permissions using the
807
- # request headers:
808
- #
809
- # * Specify a canned ACL with the `x-amz-acl` request header. For more
810
- # information, see [Canned ACL][8].
811
- #
812
- # * Specify access permissions explicitly with the `x-amz-grant-read`,
813
- # `x-amz-grant-read-acp`, `x-amz-grant-write-acp`, and
814
- # `x-amz-grant-full-control` headers. These parameters map to the
815
- # set of permissions that Amazon S3 supports in an ACL. For more
816
- # information, see [Access Control List (ACL) Overview][9].
817
- #
818
- # You can use either a canned ACL or specify access permissions
819
- # explicitly. You cannot do both.
820
- #
821
- # Server-Side- Encryption-Specific Request Headers
822
- #
823
- # : To encrypt the target object, you must provide the appropriate
824
- # encryption-related request headers. The one you use depends on
825
- # whether you want to use AWS managed encryption keys or provide your
826
- # own encryption key.
827
- #
828
- # * To encrypt the target object using server-side encryption with an
829
- # AWS managed encryption key, provide the following request headers,
830
- # as appropriate.
831
- #
832
- # * `x-amz-server-side​-encryption`
833
- #
834
- # * `x-amz-server-side-encryption-aws-kms-key-id`
835
- #
836
- # * `x-amz-server-side-encryption-context`
837
- #
838
- # <note markdown="1"> If you specify `x-amz-server-side-encryption:aws:kms`, but don't
839
- # provide `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3
840
- # uses the AWS managed CMK in AWS KMS to protect the data. If you
841
- # want to use a customer managed AWS KMS CMK, you must provide the
842
- # `x-amz-server-side-encryption-aws-kms-key-id` of the symmetric
843
- # customer managed CMK. Amazon S3 only supports symmetric CMKs and
844
- # not asymmetric CMKs. For more information, see [Using Symmetric
845
- # and Asymmetric Keys][10] in the *AWS Key Management Service
846
- # Developer Guide*.
847
- #
848
- # </note>
849
- #
850
- # All GET and PUT requests for an object protected by AWS KMS fail
851
- # if you don't make them with SSL or by using SigV4.
729
+ # **Metadata**
852
730
  #
853
- # For more information about server-side encryption with CMKs stored
854
- # in AWS KMS (SSE-KMS), see [Protecting Data Using Server-Side
855
- # Encryption with CMKs stored in KMS][11].
731
+ # When copying an object, you can preserve all metadata (default) or
732
+ # specify new metadata. However, the ACL is not preserved and is set to
733
+ # private for the user making the request. To override the default ACL
734
+ # setting, specify a new ACL when generating a copy request. For more
735
+ # information, see [Using ACLs][5].
856
736
  #
857
- # * To encrypt the target object using server-side encryption with an
858
- # encryption key that you provide, use the following headers.
737
+ # To specify whether you want the object metadata copied from the source
738
+ # object or replaced with metadata provided in the request, you can
739
+ # optionally add the `x-amz-metadata-directive` header. When you grant
740
+ # permissions, you can use the `s3:x-amz-metadata-directive` condition
741
+ # key to enforce certain metadata behavior when objects are uploaded.
742
+ # For more information, see [Specifying Conditions in a Policy][6] in
743
+ # the *Amazon S3 Developer Guide*. For a complete list of Amazon
744
+ # S3-specific condition keys, see [Actions, Resources, and Condition
745
+ # Keys for Amazon S3][7].
859
746
  #
860
- # * x-amz-server-side​-encryption​-customer-algorithm
747
+ # <b> <code>x-amz-copy-source-if</code> Headers</b>
861
748
  #
862
- # * x-amz-server-side​-encryption​-customer-key
749
+ # To only copy an object under certain conditions, such as whether the
750
+ # `Etag` matches or whether the object was modified before or after a
751
+ # specified date, use the following request parameters:
863
752
  #
864
- # * x-amz-server-side​-encryption​-customer-key-MD5
753
+ # * `x-amz-copy-source-if-match`
865
754
  #
866
- # * If the source object is encrypted using server-side encryption
867
- # with customer-provided encryption keys, you must use the following
868
- # headers.
755
+ # * `x-amz-copy-source-if-none-match`
869
756
  #
870
- # * x-amz-copy-source​-server-side​-encryption​-customer-algorithm
757
+ # * `x-amz-copy-source-if-unmodified-since`
871
758
  #
872
- # * x-amz-copy-source​-server-side​-encryption​-customer-key
759
+ # * `x-amz-copy-source-if-modified-since`
873
760
  #
874
- # * x-amz-copy-source-​server-side​-encryption​-customer-key-MD5
761
+ # If both the `x-amz-copy-source-if-match` and
762
+ # `x-amz-copy-source-if-unmodified-since` headers are present in the
763
+ # request and evaluate as follows, Amazon S3 returns `200 OK` and copies
764
+ # the data:
875
765
  #
876
- # For more information about server-side encryption with CMKs stored
877
- # in AWS KMS (SSE-KMS), see [Protecting Data Using Server-Side
878
- # Encryption with CMKs stored in Amazon KMS][11].
766
+ # * `x-amz-copy-source-if-match` condition evaluates to true
879
767
  #
880
- # Access-Control-List (ACL)-Specific Request Headers
768
+ # * `x-amz-copy-source-if-unmodified-since` condition evaluates to false
881
769
  #
882
- # : You also can use the following access control–related headers with
883
- # this operation. By default, all objects are private. Only the owner
884
- # has full access control. When adding a new object, you can grant
885
- # permissions to individual AWS accounts or to predefined groups
886
- # defined by Amazon S3. These permissions are then added to the access
887
- # control list (ACL) on the object. For more information, see [Using
888
- # ACLs][2]. With this operation, you can grant access permissions
889
- # using one of the following two methods:
770
+ # If both the `x-amz-copy-source-if-none-match` and
771
+ # `x-amz-copy-source-if-modified-since` headers are present in the
772
+ # request and evaluate as follows, Amazon S3 returns the `412
773
+ # Precondition Failed` response code:
890
774
  #
891
- # * Specify a canned ACL (`x-amz-acl`) Amazon S3 supports a set of
892
- # predefined ACLs, known as *canned ACLs*. Each canned ACL has a
893
- # predefined set of grantees and permissions. For more information,
894
- # see [Canned ACL][8].
775
+ # * `x-amz-copy-source-if-none-match` condition evaluates to false
895
776
  #
896
- # * Specify access permissions explicitly — To explicitly grant access
897
- # permissions to specific AWS accounts or groups, use the following
898
- # headers. Each header maps to specific permissions that Amazon S3
899
- # supports in an ACL. For more information, see [Access Control List
900
- # (ACL) Overview][9]. In the header, you specify a list of grantees
901
- # who get the specific permission. To grant permissions explicitly,
902
- # use:
777
+ # * `x-amz-copy-source-if-modified-since` condition evaluates to true
903
778
  #
904
- # * x-amz-grant-read
779
+ # <note markdown="1"> All headers with the `x-amz-` prefix, including `x-amz-copy-source`,
780
+ # must be signed.
905
781
  #
906
- # * x-amz-grant-write
782
+ # </note>
907
783
  #
908
- # * x-amz-grant-read-acp
784
+ # **Encryption**
909
785
  #
910
- # * x-amz-grant-write-acp
786
+ # The source object that you are copying can be encrypted or
787
+ # unencrypted. The source object can be encrypted with server-side
788
+ # encryption using AWS managed encryption keys (SSE-S3 or SSE-KMS) or by
789
+ # using a customer-provided encryption key. With server-side encryption,
790
+ # Amazon S3 encrypts your data as it writes it to disks in its data
791
+ # centers and decrypts the data when you access it.
792
+ #
793
+ # You can optionally use the appropriate encryption-related headers to
794
+ # request server-side encryption for the target object. You have the
795
+ # option to provide your own encryption key or use SSE-S3 or SSE-KMS,
796
+ # regardless of the form of server-side encryption that was used to
797
+ # encrypt the source object. You can even request encryption if the
798
+ # source object was not encrypted. For more information about
799
+ # server-side encryption, see [Using Server-Side Encryption][8].
800
+ #
801
+ # **Access Control List (ACL)-Specific Request Headers**
802
+ #
803
+ # When copying an object, you can optionally use headers to grant
804
+ # ACL-based permissions. By default, all objects are private. Only the
805
+ # owner has full access control. When adding a new object, you can grant
806
+ # permissions to individual AWS accounts or to predefined groups defined
807
+ # by Amazon S3. These permissions are then added to the ACL on the
808
+ # object. For more information, see [Access Control List (ACL)
809
+ # Overview][9] and [Managing ACLs Using the REST API][10].
911
810
  #
912
- # * x-amz-grant-full-control
811
+ # **Storage Class Options**
913
812
  #
914
- # You specify each grantee as a type=value pair, where the type is
915
- # one of the following:
813
+ # You can use the `CopyObject` operation to change the storage class of
814
+ # an object that is already stored in Amazon S3 using the `StorageClass`
815
+ # parameter. For more information, see [Storage Classes][11] in the
816
+ # *Amazon S3 Service Developer Guide*.
916
817
  #
917
- # * `emailAddress` – if the value specified is the email address of
918
- # an AWS account
818
+ # **Versioning**
919
819
  #
920
- # * `id` if the value specified is the canonical user ID of an AWS
921
- # account
820
+ # By default, `x-amz-copy-source` identifies the current version of an
821
+ # object to copy. If the current version is a delete marker, Amazon S3
822
+ # behaves as if the object was deleted. To copy a different version, use
823
+ # the `versionId` subresource.
922
824
  #
923
- # * `uri` if you are granting permissions to a predefined group
825
+ # If you enable versioning on the target bucket, Amazon S3 generates a
826
+ # unique version ID for the object being copied. This version ID is
827
+ # different from the version ID of the source object. Amazon S3 returns
828
+ # the version ID of the copied object in the `x-amz-version-id` response
829
+ # header in the response.
924
830
  #
925
- # For example, the following `x-amz-grant-read` header grants the
926
- # AWS accounts identified by email addresses permissions to read
927
- # object data and its metadata:
831
+ # If you do not enable versioning or suspend it on the target bucket,
832
+ # the version ID that Amazon S3 generates is always null.
928
833
  #
929
- # `x-amz-grant-read: emailAddress="xyz@amazon.com",
930
- # emailAddress="abc@amazon.com" `
834
+ # If the source object's storage class is GLACIER, you must restore a
835
+ # copy of this object before you can use it as a source object for the
836
+ # copy operation. For more information, see .
931
837
  #
932
838
  # The following operations are related to `CopyObject`\:
933
839
  #
@@ -940,16 +846,16 @@ module Aws::S3
940
846
  #
941
847
  #
942
848
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjctsUsingRESTMPUapi.html
943
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html
944
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html
945
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
946
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
947
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
948
- # [7]: https://aws.amazon.com/s3/pricing/
949
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
849
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/RESTAuthentication.html
850
+ # [3]: https://aws.amazon.com/s3/pricing/
851
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html
852
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html
853
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys.html
854
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html
855
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html
950
856
  # [9]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html
951
- # [10]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
952
- # [11]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html
857
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html
858
+ # [11]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
953
859
  # [12]: https://docs.aws.amazon.com/AmazonS3/latest/dev/CopyingObjectsExamples.html
954
860
  #
955
861
  # @option params [String] :acl
@@ -1219,7 +1125,7 @@ module Aws::S3
1219
1125
  # You can optionally specify a Region in the request body. You might
1220
1126
  # choose a Region to optimize latency, minimize costs, or address
1221
1127
  # regulatory requirements. For example, if you reside in Europe, you
1222
- # will probably find it advantageous to create buckets in the EU
1128
+ # will probably find it advantageous to create buckets in the Europe
1223
1129
  # (Ireland) Region. For more information, see [How to Select a Region
1224
1130
  # for Your Buckets][2].
1225
1131
  #
@@ -1254,20 +1160,43 @@ module Aws::S3
1254
1160
  # You specify each grantee as a type=value pair, where the type is one
1255
1161
  # of the following:
1256
1162
  #
1257
- # * `emailAddress` – if the value specified is the email address of an
1258
- # AWS account
1259
- #
1260
1163
  # * `id` – if the value specified is the canonical user ID of an AWS
1261
1164
  # account
1262
1165
  #
1263
1166
  # * `uri` – if you are granting permissions to a predefined group
1264
1167
  #
1168
+ # * `emailAddress` – if the value specified is the email address of an
1169
+ # AWS account
1170
+ #
1171
+ # <note markdown="1"> Using email addresses to specify a grantee is only supported in
1172
+ # the following AWS Regions:
1173
+ #
1174
+ # * US East (N. Virginia)
1175
+ #
1176
+ # * US West (N. California)
1177
+ #
1178
+ # * US West (Oregon)
1179
+ #
1180
+ # * Asia Pacific (Singapore)
1181
+ #
1182
+ # * Asia Pacific (Sydney)
1183
+ #
1184
+ # * Asia Pacific (Tokyo)
1185
+ #
1186
+ # * Europe (Ireland)
1187
+ #
1188
+ # * South America (São Paulo)
1189
+ #
1190
+ # For a list of all the Amazon S3 supported Regions and endpoints,
1191
+ # see [Regions and Endpoints][6] in the AWS General Reference.
1192
+ #
1193
+ # </note>
1194
+ #
1265
1195
  # For example, the following `x-amz-grant-read` header grants the AWS
1266
- # accounts identified by email addresses permissions to read object
1267
- # data and its metadata:
1196
+ # accounts identified by account IDs permissions to read object data
1197
+ # and its metadata:
1268
1198
  #
1269
- # `x-amz-grant-read: emailAddress="xyz@amazon.com",
1270
- # emailAddress="abc@amazon.com" `
1199
+ # `x-amz-grant-read: id="11112222333", id="444455556666" `
1271
1200
  #
1272
1201
  # <note markdown="1"> You can use either a canned ACL or specify access permissions
1273
1202
  # explicitly. You cannot do both.
@@ -1287,6 +1216,7 @@ module Aws::S3
1287
1216
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html
1288
1217
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
1289
1218
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html
1219
+ # [6]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
1290
1220
  #
1291
1221
  # @option params [String] :acl
1292
1222
  # The canned ACL to apply to the bucket.
@@ -1349,7 +1279,7 @@ module Aws::S3
1349
1279
  #
1350
1280
  # resp.to_h outputs the following:
1351
1281
  # {
1352
- # location: "http://examplebucket.s3.amazonaws.com/",
1282
+ # location: "http://examplebucket.<Region>.s3.amazonaws.com/",
1353
1283
  # }
1354
1284
  #
1355
1285
  # @example Request syntax with placeholder values
@@ -1545,20 +1475,43 @@ module Aws::S3
1545
1475
  # You specify each grantee as a type=value pair, where the type is
1546
1476
  # one of the following:
1547
1477
  #
1548
- # * `emailAddress` – if the value specified is the email address of
1549
- # an AWS account
1550
- #
1551
1478
  # * `id` – if the value specified is the canonical user ID of an AWS
1552
1479
  # account
1553
1480
  #
1554
1481
  # * `uri` – if you are granting permissions to a predefined group
1555
1482
  #
1483
+ # * `emailAddress` – if the value specified is the email address of
1484
+ # an AWS account
1485
+ #
1486
+ # <note markdown="1"> Using email addresses to specify a grantee is only supported in
1487
+ # the following AWS Regions:
1488
+ #
1489
+ # * US East (N. Virginia)
1490
+ #
1491
+ # * US West (N. California)
1492
+ #
1493
+ # * US West (Oregon)
1494
+ #
1495
+ # * Asia Pacific (Singapore)
1496
+ #
1497
+ # * Asia Pacific (Sydney)
1498
+ #
1499
+ # * Asia Pacific (Tokyo)
1500
+ #
1501
+ # * Europe (Ireland)
1502
+ #
1503
+ # * South America (São Paulo)
1504
+ #
1505
+ # For a list of all the Amazon S3 supported Regions and endpoints,
1506
+ # see [Regions and Endpoints][10] in the AWS General Reference.
1507
+ #
1508
+ # </note>
1509
+ #
1556
1510
  # For example, the following `x-amz-grant-read` header grants the
1557
- # AWS accounts identified by email addresses permissions to read
1558
- # object data and its metadata:
1511
+ # AWS accounts identified by account IDs permissions to read object
1512
+ # data and its metadata:
1559
1513
  #
1560
- # `x-amz-grant-read: emailAddress="xyz@amazon.com",
1561
- # emailAddress="abc@amazon.com" `
1514
+ # `x-amz-grant-read: id="11112222333", id="444455556666" `
1562
1515
  #
1563
1516
  # The following operations are related to `CreateMultipartUpload`\:
1564
1517
  #
@@ -1583,6 +1536,7 @@ module Aws::S3
1583
1536
  # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html
1584
1537
  # [8]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html
1585
1538
  # [9]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html
1539
+ # [10]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
1586
1540
  #
1587
1541
  # @option params [String] :acl
1588
1542
  # The canned ACL to apply to the object.
@@ -1848,7 +1802,7 @@ module Aws::S3
1848
1802
  #
1849
1803
  #
1850
1804
  #
1851
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev//using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
1805
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
1852
1806
  # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html
1853
1807
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/analytics-storage-class.html
1854
1808
  #
@@ -1945,9 +1899,9 @@ module Aws::S3
1945
1899
  #
1946
1900
  #
1947
1901
  #
1948
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev//bucket-encryption.html
1949
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev//using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
1950
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev//s3-access-control.html
1902
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html
1903
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
1904
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html
1951
1905
  #
1952
1906
  # @option params [required, String] :bucket
1953
1907
  # The name of the bucket containing the server-side encryption
@@ -2428,15 +2382,6 @@ module Aws::S3
2428
2382
  # * {Types::DeleteObjectOutput#request_charged #request_charged} => String
2429
2383
  #
2430
2384
  #
2431
- # @example Example: To delete an object (from a non-versioned bucket)
2432
- #
2433
- # # The following example deletes an object from a non-versioned bucket.
2434
- #
2435
- # resp = client.delete_object({
2436
- # bucket: "ExampleBucket",
2437
- # key: "HappyFace.jpg",
2438
- # })
2439
- #
2440
2385
  # @example Example: To delete an object
2441
2386
  #
2442
2387
  # # The following example deletes an object from an S3 bucket.
@@ -2450,6 +2395,15 @@ module Aws::S3
2450
2395
  # {
2451
2396
  # }
2452
2397
  #
2398
+ # @example Example: To delete an object (from a non-versioned bucket)
2399
+ #
2400
+ # # The following example deletes an object from a non-versioned bucket.
2401
+ #
2402
+ # resp = client.delete_object({
2403
+ # bucket: "ExampleBucket",
2404
+ # key: "HappyFace.jpg",
2405
+ # })
2406
+ #
2453
2407
  # @example Request syntax with placeholder values
2454
2408
  #
2455
2409
  # resp = client.delete_object({
@@ -2670,20 +2624,22 @@ module Aws::S3
2670
2624
  # * {Types::DeleteObjectsOutput#errors #errors} => Array&lt;Types::Error&gt;
2671
2625
  #
2672
2626
  #
2673
- # @example Example: To delete multiple objects from a versioned bucket
2627
+ # @example Example: To delete multiple object versions from a versioned bucket
2674
2628
  #
2675
- # # The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the
2676
- # # object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.
2629
+ # # The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object
2630
+ # # versions and returns the key and versions of deleted objects in the response.
2677
2631
  #
2678
2632
  # resp = client.delete_objects({
2679
2633
  # bucket: "examplebucket",
2680
2634
  # delete: {
2681
2635
  # objects: [
2682
2636
  # {
2683
- # key: "objectkey1",
2637
+ # key: "HappyFace.jpg",
2638
+ # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
2684
2639
  # },
2685
2640
  # {
2686
- # key: "objectkey2",
2641
+ # key: "HappyFace.jpg",
2642
+ # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
2687
2643
  # },
2688
2644
  # ],
2689
2645
  # quiet: false,
@@ -2694,34 +2650,30 @@ module Aws::S3
2694
2650
  # {
2695
2651
  # deleted: [
2696
2652
  # {
2697
- # delete_marker: true,
2698
- # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
2699
- # key: "objectkey1",
2653
+ # key: "HappyFace.jpg",
2654
+ # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
2700
2655
  # },
2701
2656
  # {
2702
- # delete_marker: true,
2703
- # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
2704
- # key: "objectkey2",
2657
+ # key: "HappyFace.jpg",
2658
+ # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
2705
2659
  # },
2706
2660
  # ],
2707
2661
  # }
2708
2662
  #
2709
- # @example Example: To delete multiple object versions from a versioned bucket
2663
+ # @example Example: To delete multiple objects from a versioned bucket
2710
2664
  #
2711
- # # The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object
2712
- # # versions and returns the key and versions of deleted objects in the response.
2665
+ # # The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the
2666
+ # # object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.
2713
2667
  #
2714
2668
  # resp = client.delete_objects({
2715
2669
  # bucket: "examplebucket",
2716
2670
  # delete: {
2717
2671
  # objects: [
2718
2672
  # {
2719
- # key: "HappyFace.jpg",
2720
- # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
2673
+ # key: "objectkey1",
2721
2674
  # },
2722
2675
  # {
2723
- # key: "HappyFace.jpg",
2724
- # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
2676
+ # key: "objectkey2",
2725
2677
  # },
2726
2678
  # ],
2727
2679
  # quiet: false,
@@ -2732,12 +2684,14 @@ module Aws::S3
2732
2684
  # {
2733
2685
  # deleted: [
2734
2686
  # {
2735
- # key: "HappyFace.jpg",
2736
- # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
2687
+ # delete_marker: true,
2688
+ # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
2689
+ # key: "objectkey1",
2737
2690
  # },
2738
2691
  # {
2739
- # key: "HappyFace.jpg",
2740
- # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
2692
+ # delete_marker: true,
2693
+ # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
2694
+ # key: "objectkey2",
2741
2695
  # },
2742
2696
  # ],
2743
2697
  # }
@@ -2790,8 +2744,7 @@ module Aws::S3
2790
2744
  # Operations][1] and [Managing Access Permissions to Your Amazon S3
2791
2745
  # Resources][2].
2792
2746
  #
2793
- # The following operations are related to
2794
- # `DeleteBucketMetricsConfiguration`\:
2747
+ # The following operations are related to `DeletePublicAccessBlock`\:
2795
2748
  #
2796
2749
  # * [Using Amazon S3 Block Public Access][3]
2797
2750
  #
@@ -2861,9 +2814,9 @@ module Aws::S3
2861
2814
  #
2862
2815
  #
2863
2816
  #
2864
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev//using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
2865
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev//s3-access-control.html
2866
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev//transfer-acceleration.html
2817
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
2818
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html
2819
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html
2867
2820
  #
2868
2821
  # @option params [required, String] :bucket
2869
2822
  # Name of the bucket for which the accelerate configuration is
@@ -3348,7 +3301,7 @@ module Aws::S3
3348
3301
  # * SOAP Fault Code Prefix: Client
3349
3302
  #
3350
3303
  # The following operations are related to
3351
- # `DeleteBucketMetricsConfiguration`\:
3304
+ # `GetBucketLifecycleConfiguration`\:
3352
3305
  #
3353
3306
  # * GetBucketLifecycle
3354
3307
  #
@@ -3605,7 +3558,7 @@ module Aws::S3
3605
3558
  # No longer used, see GetBucketNotificationConfiguration.
3606
3559
  #
3607
3560
  # @option params [required, String] :bucket
3608
- # Name of the bucket for which to get the notification configuration
3561
+ # Name of the bucket for which to get the notification configuration.
3609
3562
  #
3610
3563
  # @return [Types::NotificationConfigurationDeprecated] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3611
3564
  #
@@ -3731,7 +3684,7 @@ module Aws::S3
3731
3684
  # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-iam-policies.html
3732
3685
  #
3733
3686
  # @option params [required, String] :bucket
3734
- # Name of the bucket for which to get the notification configuration
3687
+ # Name of the bucket for which to get the notification configuration.
3735
3688
  #
3736
3689
  # @return [Types::NotificationConfiguration] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3737
3690
  #
@@ -4466,7 +4419,16 @@ module Aws::S3
4466
4419
  # @option params [String] :range
4467
4420
  # Downloads the specified range bytes of an object. For more information
4468
4421
  # about the HTTP Range header, see
4469
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35]().
4422
+ # [https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35][1].
4423
+ #
4424
+ # <note markdown="1"> Amazon S3 doesn't support retrieving multiple ranges of data per
4425
+ # `GET` request.
4426
+ #
4427
+ # </note>
4428
+ #
4429
+ #
4430
+ #
4431
+ # [1]: https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35
4470
4432
  #
4471
4433
  # @option params [String] :response_cache_control
4472
4434
  # Sets the `Cache-Control` header of the response.
@@ -5446,6 +5408,11 @@ module Aws::S3
5446
5408
  # about the HTTP Range header, see
5447
5409
  # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35]().
5448
5410
  #
5411
+ # <note markdown="1"> Amazon S3 doesn't support retrieving multiple ranges of data per
5412
+ # `GET` request.
5413
+ #
5414
+ # </note>
5415
+ #
5449
5416
  # @option params [String] :version_id
5450
5417
  # VersionId used to reference a specific version of the object.
5451
5418
  #
@@ -6248,12 +6215,12 @@ module Aws::S3
6248
6215
  # Specifies the key to start with when listing objects in a bucket.
6249
6216
  #
6250
6217
  # @option params [Integer] :max_keys
6251
- # Sets the maximum number of keys returned in the response. The response
6252
- # might contain fewer keys but will never contain more. If additional
6253
- # keys satisfy the search criteria, but were not returned because
6254
- # max-keys was exceeded, the response contains
6255
- # &lt;isTruncated&gt;true&lt;/isTruncated&gt;. To return the additional
6256
- # keys, see key-marker and version-id-marker.
6218
+ # Sets the maximum number of keys returned in the response. By default
6219
+ # the API returns up to 1,000 key names. The response might contain
6220
+ # fewer keys but will never contain more. If additional keys satisfy the
6221
+ # search criteria, but were not returned because max-keys was exceeded,
6222
+ # the response contains &lt;isTruncated&gt;true&lt;/isTruncated&gt;. To
6223
+ # return the additional keys, see key-marker and version-id-marker.
6257
6224
  #
6258
6225
  # @option params [String] :prefix
6259
6226
  # Use this parameter to select only those keys that begin with the
@@ -6421,8 +6388,9 @@ module Aws::S3
6421
6388
  # Specifies the key to start with when listing objects in a bucket.
6422
6389
  #
6423
6390
  # @option params [Integer] :max_keys
6424
- # Sets the maximum number of keys returned in the response. The response
6425
- # might contain fewer keys but will never contain more.
6391
+ # Sets the maximum number of keys returned in the response. By default
6392
+ # the API returns up to 1,000 key names. The response might contain
6393
+ # fewer keys but will never contain more.
6426
6394
  #
6427
6395
  # @option params [String] :prefix
6428
6396
  # Limits the response to keys that begin with the specified prefix.
@@ -6585,8 +6553,9 @@ module Aws::S3
6585
6553
  # Encoding type used by Amazon S3 to encode object keys in the response.
6586
6554
  #
6587
6555
  # @option params [Integer] :max_keys
6588
- # Sets the maximum number of keys returned in the response. The response
6589
- # might contain fewer keys but will never contain more.
6556
+ # Sets the maximum number of keys returned in the response. By default
6557
+ # the API returns up to 1,000 key names. The response might contain
6558
+ # fewer keys but will never contain more.
6590
6559
  #
6591
6560
  # @option params [String] :prefix
6592
6561
  # Limits the response to keys that begin with the specified prefix.
@@ -7002,38 +6971,54 @@ module Aws::S3
7002
6971
  # You specify each grantee as a type=value pair, where the type is one
7003
6972
  # of the following:
7004
6973
  #
7005
- # * `emailAddress` – if the value specified is the email address of an
7006
- # AWS account
7007
- #
7008
6974
  # * `id` – if the value specified is the canonical user ID of an AWS
7009
6975
  # account
7010
6976
  #
7011
6977
  # * `uri` – if you are granting permissions to a predefined group
7012
6978
  #
7013
- # For example, the following `x-amz-grant-write` header grants create,
7014
- # overwrite, and delete objects permission to LogDelivery group
7015
- # predefined by Amazon S3 and two AWS accounts identified by their
7016
- # email addresses.
6979
+ # * `emailAddress` – if the value specified is the email address of an
6980
+ # AWS account
7017
6981
  #
7018
- # `x-amz-grant-write:
7019
- # uri="http://acs.amazonaws.com/groups/s3/LogDelivery",
7020
- # emailAddress="xyz@amazon.com", emailAddress="abc@amazon.com" `
6982
+ # <note markdown="1"> Using email addresses to specify a grantee is only supported in
6983
+ # the following AWS Regions:
7021
6984
  #
7022
- # You can use either a canned ACL or specify access permissions
7023
- # explicitly. You cannot do both.
6985
+ # * US East (N. Virginia)
7024
6986
  #
7025
- # **Grantee Values**
6987
+ # * US West (N. California)
7026
6988
  #
7027
- # You can specify the person (grantee) to whom you're assigning access
7028
- # rights (using request elements) in the following ways:
6989
+ # * US West (Oregon)
7029
6990
  #
7030
- # * By Email address:
6991
+ # * Asia Pacific (Singapore)
7031
6992
  #
7032
- # `<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
7033
- # xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee>`
6993
+ # * Asia Pacific (Sydney)
7034
6994
  #
7035
- # The grantee is resolved to the CanonicalUser and, in a response to a
7036
- # GET Object acl request, appears as the CanonicalUser.
6995
+ # * Asia Pacific (Tokyo)
6996
+ #
6997
+ # * Europe (Ireland)
6998
+ #
6999
+ # * South America (São Paulo)
7000
+ #
7001
+ # For a list of all the Amazon S3 supported Regions and endpoints,
7002
+ # see [Regions and Endpoints][4] in the AWS General Reference.
7003
+ #
7004
+ # </note>
7005
+ #
7006
+ # For example, the following `x-amz-grant-write` header grants create,
7007
+ # overwrite, and delete objects permission to LogDelivery group
7008
+ # predefined by Amazon S3 and two AWS accounts identified by their
7009
+ # email addresses.
7010
+ #
7011
+ # `x-amz-grant-write:
7012
+ # uri="http://acs.amazonaws.com/groups/s3/LogDelivery",
7013
+ # id="111122223333", id="555566667777" `
7014
+ #
7015
+ # You can use either a canned ACL or specify access permissions
7016
+ # explicitly. You cannot do both.
7017
+ #
7018
+ # **Grantee Values**
7019
+ #
7020
+ # You can specify the person (grantee) to whom you're assigning access
7021
+ # rights (using request elements) in the following ways:
7037
7022
  #
7038
7023
  # * By the person's ID:
7039
7024
  #
@@ -7048,6 +7033,38 @@ module Aws::S3
7048
7033
  # `<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
7049
7034
  # xsi:type="Group"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee>`
7050
7035
  #
7036
+ # * By Email address:
7037
+ #
7038
+ # `<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
7039
+ # xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee>`
7040
+ #
7041
+ # The grantee is resolved to the CanonicalUser and, in a response to a
7042
+ # GET Object acl request, appears as the CanonicalUser.
7043
+ #
7044
+ # <note markdown="1"> Using email addresses to specify a grantee is only supported in the
7045
+ # following AWS Regions:
7046
+ #
7047
+ # * US East (N. Virginia)
7048
+ #
7049
+ # * US West (N. California)
7050
+ #
7051
+ # * US West (Oregon)
7052
+ #
7053
+ # * Asia Pacific (Singapore)
7054
+ #
7055
+ # * Asia Pacific (Sydney)
7056
+ #
7057
+ # * Asia Pacific (Tokyo)
7058
+ #
7059
+ # * Europe (Ireland)
7060
+ #
7061
+ # * South America (São Paulo)
7062
+ #
7063
+ # For a list of all the Amazon S3 supported Regions and endpoints, see
7064
+ # [Regions and Endpoints][4] in the AWS General Reference.
7065
+ #
7066
+ # </note>
7067
+ #
7051
7068
  # **Related Resources**
7052
7069
  #
7053
7070
  # * CreateBucket
@@ -7061,6 +7078,7 @@ module Aws::S3
7061
7078
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html
7062
7079
  # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
7063
7080
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html
7081
+ # [4]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
7064
7082
  #
7065
7083
  # @option params [String] :acl
7066
7084
  # The canned ACL to apply to the bucket.
@@ -7336,7 +7354,7 @@ module Aws::S3
7336
7354
  #
7337
7355
  #
7338
7356
  #
7339
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev//cors.html
7357
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/cors.html
7340
7358
  #
7341
7359
  # @option params [String] :content_md5
7342
7360
  # The base64-encoded 128-bit MD5 digest of the data. This header must be
@@ -7425,7 +7443,9 @@ module Aws::S3
7425
7443
  #
7426
7444
  # This implementation of the `PUT` operation sets default encryption for
7427
7445
  # a bucket using server-side encryption with Amazon S3-managed keys
7428
- # SSE-S3 or AWS KMS customer master keys (CMKs) (SSE-KMS).
7446
+ # SSE-S3 or AWS KMS customer master keys (CMKs) (SSE-KMS). For
7447
+ # information about the Amazon S3 default encryption feature, see
7448
+ # [Amazon S3 Default Bucket Encryption][1].
7429
7449
  #
7430
7450
  # This operation requires AWS Signature Version 4. For more information,
7431
7451
  # see [ Authenticating Requests (AWS Signature Version
@@ -7435,8 +7455,8 @@ module Aws::S3
7435
7455
  # `s3:PutEncryptionConfiguration` action. The bucket owner has this
7436
7456
  # permission by default. The bucket owner can grant this permission to
7437
7457
  # others. For more information about permissions, see [Permissions
7438
- # Related to Bucket Subresource Operations][1] and [Managing Access
7439
- # Permissions to Your Amazon S3 Resources][2] in the Amazon Simple
7458
+ # Related to Bucket Subresource Operations][2] and [Managing Access
7459
+ # Permissions to Your Amazon S3 Resources][3] in the Amazon Simple
7440
7460
  # Storage Service Developer Guide.
7441
7461
  #
7442
7462
  # **Related Resources**
@@ -7447,8 +7467,9 @@ module Aws::S3
7447
7467
  #
7448
7468
  #
7449
7469
  #
7450
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
7451
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html
7470
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html
7471
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
7472
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html
7452
7473
  #
7453
7474
  # @option params [required, String] :bucket
7454
7475
  # Specifies default encryption for a bucket using server-side encryption
@@ -7519,7 +7540,7 @@ module Aws::S3
7519
7540
  # You must create a bucket policy on the *destination* bucket to grant
7520
7541
  # permissions to Amazon S3 to write objects to the bucket in the defined
7521
7542
  # location. For an example policy, see [ Granting Permissions for Amazon
7522
- # S3 Inventory and Storage Class Analysis.][2]
7543
+ # S3 Inventory and Storage Class Analysis][2].
7523
7544
  #
7524
7545
  # To use this operation, you must have permissions to perform the
7525
7546
  # `s3:PutInventoryConfiguration` action. The bucket owner has this
@@ -7550,7 +7571,7 @@ module Aws::S3
7550
7571
  #
7551
7572
  # * *Cause:* You are not the owner of the specified bucket, or you do
7552
7573
  # not have the `s3:PutInventoryConfiguration` bucket permission to
7553
- # set the configuration on the bucket
7574
+ # set the configuration on the bucket.
7554
7575
  #
7555
7576
  # **Related Resources**
7556
7577
  #
@@ -7562,10 +7583,10 @@ module Aws::S3
7562
7583
  #
7563
7584
  #
7564
7585
  #
7565
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev//storage-inventory.html
7586
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-inventory.html
7566
7587
  # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-9
7567
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev//using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
7568
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev//s3-access-control.html
7588
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
7589
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html
7569
7590
  #
7570
7591
  # @option params [required, String] :bucket
7571
7592
  # The name of the bucket where the inventory configuration will be
@@ -7678,10 +7699,10 @@ module Aws::S3
7678
7699
  #
7679
7700
  #
7680
7701
  #
7681
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev//object-lifecycle-mgmt.html
7682
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev//s3-access-control.html
7683
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev//intro-lifecycle-rules.html#lifecycle-configuration-examples
7684
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev//using-with-s3-actions.html
7702
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html
7703
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html
7704
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/intro-lifecycle-rules.html#lifecycle-configuration-examples
7705
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
7685
7706
  #
7686
7707
  # @option params [required, String] :bucket
7687
7708
  #
@@ -8354,7 +8375,7 @@ module Aws::S3
8354
8375
  # permissions on the specified bucket and belong to the bucket owner's
8355
8376
  # account in order to use this operation.
8356
8377
  #
8357
- # If you don't have `PutBucketPolic`y permissions, Amazon S3 returns a
8378
+ # If you don't have `PutBucketPolicy` permissions, Amazon S3 returns a
8358
8379
  # `403 Access Denied` error. If you have the correct permissions, but
8359
8380
  # you're not using an identity that belongs to the bucket owner's
8360
8381
  # account, Amazon S3 returns a `405 Method Not Allowed` error.
@@ -8737,8 +8758,8 @@ module Aws::S3
8737
8758
  # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/CostAllocTagging.html
8738
8759
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-bucket-subresources
8739
8760
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html
8740
- # [5]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2//allocation-tag-restrictions.html
8741
- # [6]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2//aws-tag-restrictions.html
8761
+ # [5]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html
8762
+ # [6]: https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/aws-tag-restrictions.html
8742
8763
  #
8743
8764
  # @option params [required, String] :bucket
8744
8765
  # The bucket name.
@@ -8962,9 +8983,15 @@ module Aws::S3
8962
8983
  #
8963
8984
  # * `HttpRedirectCode`
8964
8985
  #
8986
+ # Amazon S3 has a limitation of 50 routing rules per website
8987
+ # configuration. If you require more than 50 routing rules, you can use
8988
+ # object redirect. For more information, see [Configuring an Object
8989
+ # Redirect][2] in the *Amazon Simple Storage Service Developer Guide*.
8990
+ #
8965
8991
  #
8966
8992
  #
8967
8993
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html
8994
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html
8968
8995
  #
8969
8996
  # @option params [required, String] :bucket
8970
8997
  # The bucket name.
@@ -9063,16 +9090,16 @@ module Aws::S3
9063
9090
  # putting an object to Amazon S3 and compare the returned ETag to the
9064
9091
  # calculated MD5 value.
9065
9092
  #
9066
- # <note markdown="1"> To configure your application to send the request headers before
9067
- # sending the request body, use the `100-continue` HTTP status code. For
9068
- # PUT operations, this helps you avoid sending the message body if the
9069
- # message is rejected based on the headers (for example, because
9070
- # authentication fails or a redirect occurs). For more information on
9071
- # the `100-continue` HTTP status code, see Section 8.2.3 of
9072
- # [http://www.ietf.org/rfc/rfc2616.txt][1].
9093
+ # <note markdown="1"> The `Content-MD5` header is required for any request to upload an
9094
+ # object with a retention period configured using Amazon S3 Object Lock.
9095
+ # For more information about Amazon S3 Object Lock, see [Amazon S3
9096
+ # Object Lock Overview][1] in the *Amazon Simple Storage Service
9097
+ # Developer Guide*.
9073
9098
  #
9074
9099
  # </note>
9075
9100
  #
9101
+ # **Server-side Encryption**
9102
+ #
9076
9103
  # You can optionally request server-side encryption. With server-side
9077
9104
  # encryption, Amazon S3 encrypts your data as it writes it to disks in
9078
9105
  # its data centers and decrypts the data when you access it. You have
@@ -9080,229 +9107,35 @@ module Aws::S3
9080
9107
  # encryption keys. For more information, see [Using Server-Side
9081
9108
  # Encryption][2].
9082
9109
  #
9083
- # Access Permissions
9084
- #
9085
- # : You can optionally specify the accounts or groups that should be
9086
- # granted specific permissions on the new object. There are two ways
9087
- # to grant the permissions using the request headers:
9088
- #
9089
- # * Specify a canned ACL with the `x-amz-acl` request header. For more
9090
- # information, see [Canned ACL][3].
9091
- #
9092
- # * Specify access permissions explicitly with the `x-amz-grant-read`,
9093
- # `x-amz-grant-read-acp`, `x-amz-grant-write-acp`, and
9094
- # `x-amz-grant-full-control` headers. These parameters map to the
9095
- # set of permissions that Amazon S3 supports in an ACL. For more
9096
- # information, see [Access Control List (ACL) Overview][4].
9097
- #
9098
- # You can use either a canned ACL or specify access permissions
9099
- # explicitly. You cannot do both.
9100
- #
9101
- # Server-Side- Encryption-Specific Request Headers
9102
- #
9103
- # : You can optionally tell Amazon S3 to encrypt data at rest using
9104
- # server-side encryption. Server-side encryption is for data
9105
- # encryption at rest. Amazon S3 encrypts your data as it writes it to
9106
- # disks in its data centers and decrypts it when you access it. The
9107
- # option you use depends on whether you want to use AWS managed
9108
- # encryption keys or provide your own encryption key.
9109
- #
9110
- # * Use encryption keys managed by Amazon S3 or customer master keys
9111
- # (CMKs) stored in AWS Key Management Service (AWS KMS) – If you
9112
- # want AWS to manage the keys used to encrypt data, specify the
9113
- # following headers in the request.
9114
- #
9115
- # * x-amz-server-side​-encryption
9116
- #
9117
- # * x-amz-server-side-encryption-aws-kms-key-id
9118
- #
9119
- # * x-amz-server-side-encryption-context
9120
- #
9121
- # <note markdown="1"> If you specify `x-amz-server-side-encryption:aws:kms`, but don't
9122
- # provide `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3
9123
- # uses the AWS managed CMK in AWS KMS to protect the data. If you
9124
- # want to use a customer managed AWS KMS CMK, you must provide the
9125
- # `x-amz-server-side-encryption-aws-kms-key-id` of the symmetric
9126
- # customer managed CMK. Amazon S3 only supports symmetric CMKs and
9127
- # not asymmetric CMKs. For more information, see [Using Symmetric
9128
- # and Asymmetric Keys][5] in the *AWS Key Management Service
9129
- # Developer Guide*.
9130
- #
9131
- # </note>
9132
- #
9133
- # All GET and PUT requests for an object protected by AWS KMS fail
9134
- # if you don't make them with SSL or by using SigV4.
9135
- #
9136
- # For more information about server-side encryption with CMKs stored
9137
- # in AWS KMS (SSE-KMS), see [Protecting Data Using Server-Side
9138
- # Encryption with CMKs stored in AWS][6].
9139
- #
9140
- # * Use customer-provided encryption keys – If you want to manage your
9141
- # own encryption keys, provide all the following headers in the
9142
- # request.
9143
- #
9144
- # * x-amz-server-side​-encryption​-customer-algorithm
9145
- #
9146
- # * x-amz-server-side​-encryption​-customer-key
9147
- #
9148
- # * x-amz-server-side​-encryption​-customer-key-MD5
9149
- #
9150
- # For more information about server-side encryption with CMKs stored
9151
- # in KMS (SSE-KMS), see [Protecting Data Using Server-Side
9152
- # Encryption with CMKs stored in AWS][6].
9153
- #
9154
- # Access-Control-List (ACL)-Specific Request Headers
9155
- #
9156
- # : You also can use the following access control–related headers with
9157
- # this operation. By default, all objects are private. Only the owner
9158
- # has full access control. When adding a new object, you can grant
9159
- # permissions to individual AWS accounts or to predefined groups
9160
- # defined by Amazon S3. These permissions are then added to the Access
9161
- # Control List (ACL) on the object. For more information, see [Using
9162
- # ACLs][7]. With this operation, you can grant access permissions
9163
- # using one of the following two methods:
9164
- #
9165
- # * Specify a canned ACL (`x-amz-acl`) — Amazon S3 supports a set of
9166
- # predefined ACLs, known as canned ACLs. Each canned ACL has a
9167
- # predefined set of grantees and permissions. For more information,
9168
- # see [Canned ACL][3].
9169
- #
9170
- # * Specify access permissions explicitly — To explicitly grant access
9171
- # permissions to specific AWS accounts or groups, use the following
9172
- # headers. Each header maps to specific permissions that Amazon S3
9173
- # supports in an ACL. For more information, see [Access Control List
9174
- # (ACL) Overview][4]. In the header, you specify a list of grantees
9175
- # who get the specific permission. To grant permissions explicitly
9176
- # use:
9177
- #
9178
- # * x-amz-grant-read
9179
- #
9180
- # * x-amz-grant-write
9181
- #
9182
- # * x-amz-grant-read-acp
9183
- #
9184
- # * x-amz-grant-write-acp
9185
- #
9186
- # * x-amz-grant-full-control
9187
- #
9188
- # You specify each grantee as a type=value pair, where the type is
9189
- # one of the following:
9190
- #
9191
- # * `emailAddress` – if the value specified is the email address of
9192
- # an AWS account
9193
- #
9194
- # Using email addresses to specify a grantee is only supported in
9195
- # the following AWS Regions:
9196
- #
9197
- # * US East (N. Virginia)
9198
- #
9199
- # * US West (N. California)
9200
- #
9201
- # * US West (Oregon)
9202
- #
9203
- # * Asia Pacific (Singapore)
9204
- #
9205
- # * Asia Pacific (Sydney)
9206
- #
9207
- # * Asia Pacific (Tokyo)
9208
- #
9209
- # * EU (Ireland)
9210
- #
9211
- # * South America (São Paulo)
9212
- #
9213
- # For a list of all the Amazon S3 supported Regions and
9214
- # endpoints,
9215
- # see [Regions and Endpoints][8] in the AWS General Reference
9216
- #
9217
- # * `id` – if the value specified is the canonical user ID of an AWS
9218
- # account
9219
- #
9220
- # * `uri` – if you are granting permissions to a predefined group
9221
- #
9222
- # For example, the following `x-amz-grant-read` header grants the
9223
- # AWS accounts identified by email addresses permissions to read
9224
- # object data and its metadata:
9225
- #
9226
- # `x-amz-grant-read: emailAddress="xyz@amazon.com",
9227
- # emailAddress="abc@amazon.com" `
9228
- #
9229
- # Server-Side- Encryption-Specific Request Headers
9230
- #
9231
- # : You can optionally tell Amazon S3 to encrypt data at rest using
9232
- # server-side encryption. Server-side encryption is for data
9233
- # encryption at rest. Amazon S3 encrypts your data as it writes it to
9234
- # disks in its data centers and decrypts it when you access it. The
9235
- # option you use depends on whether you want to use AWS-managed
9236
- # encryption keys or provide your own encryption key.
9237
- #
9238
- # * Use encryption keys managed by Amazon S3 or customer master keys
9239
- # (CMKs) stored in AWS Key Management Service (AWS KMS) – If you
9240
- # want AWS to manage the keys used to encrypt data, specify the
9241
- # following headers in the request.
9242
- #
9243
- # * x-amz-server-side​-encryption
9244
- #
9245
- # * x-amz-server-side-encryption-aws-kms-key-id
9246
- #
9247
- # * x-amz-server-side-encryption-context
9248
- #
9249
- # <note markdown="1"> If you specify `x-amz-server-side-encryption:aws:kms`, but don't
9250
- # provide `x-amz-server-side-encryption-aws-kms-key-id`, Amazon S3
9251
- # uses the AWS managed CMK in AWS KMS to protect the data. If you
9252
- # want to use a customer managed AWS KMS CMK, you must provide the
9253
- # `x-amz-server-side-encryption-aws-kms-key-id` of the symmetric
9254
- # customer managed CMK. Amazon S3 only supports symmetric CMKs and
9255
- # not asymmetric CMKs. For more information, see [Using Symmetric
9256
- # and Asymmetric Keys][5] in the *AWS Key Management Service
9257
- # Developer Guide*.
9258
- #
9259
- # </note>
9260
- #
9261
- # All GET and PUT requests for an object protected by AWS KMS fail
9262
- # if you don't make them with SSL or by using SigV4.
9110
+ # **Access Control List (ACL)-Specific Request Headers**
9263
9111
  #
9264
- # For more information about server-side encryption with CMKs stored
9265
- # in AWS KMS (SSE-KMS), see [Protecting Data Using Server-Side
9266
- # Encryption with CMKs stored in AWS KMS][6].
9267
- #
9268
- # * Use customer-provided encryption keys If you want to manage your
9269
- # own encryption keys, provide all the following headers in the
9270
- # request.
9271
- #
9272
- # <note markdown="1"> If you use this feature, the ETag value that Amazon S3 returns in
9273
- # the response is not the MD5 of the object.
9274
- #
9275
- # </note>
9276
- #
9277
- # * x-amz-server-side​-encryption​-customer-algorithm
9278
- #
9279
- # * x-amz-server-side​-encryption​-customer-key
9280
- #
9281
- # * x-amz-server-side​-encryption​-customer-key-MD5
9282
- #
9283
- # For more information about server-side encryption with CMKs stored
9284
- # in AWS KMS (SSE-KMS), see [Protecting Data Using Server-Side
9285
- # Encryption with CMKs stored in AWS KMS][6].
9112
+ # You can use headers to grant ACL- based permissions. By default, all
9113
+ # objects are private. Only the owner has full access control. When
9114
+ # adding a new object, you can grant permissions to individual AWS
9115
+ # accounts or to predefined groups defined by Amazon S3. These
9116
+ # permissions are then added to the ACL on the object. For more
9117
+ # information, see [Access Control List (ACL) Overview][3] and [Managing
9118
+ # ACLs Using the REST API][4].
9286
9119
  #
9287
9120
  # **Storage Class Options**
9288
9121
  #
9289
- # By default, Amazon S3 uses the Standard storage class to store newly
9290
- # created objects. The Standard storage class provides high durability
9291
- # and high availability. You can specify other storage classes depending
9292
- # on the performance needs. For more information, see [Storage
9293
- # Classes][9] in the Amazon Simple Storage Service Developer Guide.
9122
+ # By default, Amazon S3 uses the STANDARD storage class to store newly
9123
+ # created objects. The STANDARD storage class provides high durability
9124
+ # and high availability. Depending on performance needs, you can specify
9125
+ # a different storage class. For more information, see [Storage
9126
+ # Classes][5] in the *Amazon S3 Service Developer Guide*.
9294
9127
  #
9295
9128
  # **Versioning**
9296
9129
  #
9297
9130
  # If you enable versioning for a bucket, Amazon S3 automatically
9298
9131
  # generates a unique version ID for the object being stored. Amazon S3
9299
- # returns this ID in the response using the `x-amz-version-id response`
9300
- # header. If versioning is suspended, Amazon S3 always uses null as the
9301
- # version ID for the object stored. For more information about returning
9302
- # the versioning state of a bucket, see GetBucketVersioning. If you
9303
- # enable versioning for a bucket, when Amazon S3 receives multiple write
9304
- # requests for the same object simultaneously, it stores all of the
9305
- # objects.
9132
+ # returns this ID in the response. When you enable versioning for a
9133
+ # bucket, if Amazon S3 receives multiple write requests for the same
9134
+ # object simultaneously, it stores all of the objects.
9135
+ #
9136
+ # For more information about versioning, see [Adding Objects to
9137
+ # Versioning Enabled Buckets][6]. For information about returning the
9138
+ # versioning state of a bucket, see GetBucketVersioning.
9306
9139
  #
9307
9140
  # **Related Resources**
9308
9141
  #
@@ -9312,15 +9145,12 @@ module Aws::S3
9312
9145
  #
9313
9146
  #
9314
9147
  #
9315
- # [1]: http://www.ietf.org/rfc/rfc2616.txt
9148
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock-overview.html
9316
9149
  # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
9317
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
9318
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html
9319
- # [5]: https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html
9320
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html
9321
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3_ACLs_UsingACLs.html
9322
- # [8]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
9323
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
9150
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html
9151
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-using-rest-api.html
9152
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
9153
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/AddingObjectstoVersioningEnabledBuckets.html
9324
9154
  #
9325
9155
  # @option params [String] :acl
9326
9156
  # The canned ACL to apply to the object. For more information, see
@@ -9443,8 +9273,8 @@ module Aws::S3
9443
9273
  # Amazon S3 (for example, AES256, aws:kms).
9444
9274
  #
9445
9275
  # @option params [String] :storage_class
9446
- # If you don't specify, Standard is the default storage class. Amazon
9447
- # S3 supports other storage classes.
9276
+ # If you don't specify, S3 Standard is the default storage class.
9277
+ # Amazon S3 supports other storage classes.
9448
9278
  #
9449
9279
  # @option params [String] :website_redirect_location
9450
9280
  # If the bucket is configured as a website, redirects requests for this
@@ -9548,96 +9378,99 @@ module Aws::S3
9548
9378
  # * {Types::PutObjectOutput#request_charged #request_charged} => String
9549
9379
  #
9550
9380
  #
9551
- # @example Example: To upload an object (specify optional headers)
9381
+ # @example Example: To upload an object and specify server-side encryption and object tags
9552
9382
  #
9553
- # # The following example uploads an object. The request specifies optional request headers to directs S3 to use specific
9554
- # # storage class and use server-side encryption.
9383
+ # # The following example uploads and object. The request specifies the optional server-side encryption option. The request
9384
+ # # also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.
9555
9385
  #
9556
9386
  # resp = client.put_object({
9557
- # body: "HappyFace.jpg",
9387
+ # body: "filetoupload",
9558
9388
  # bucket: "examplebucket",
9559
- # key: "HappyFace.jpg",
9389
+ # key: "exampleobject",
9560
9390
  # server_side_encryption: "AES256",
9561
- # storage_class: "STANDARD_IA",
9391
+ # tagging: "key1=value1&key2=value2",
9562
9392
  # })
9563
9393
  #
9564
9394
  # resp.to_h outputs the following:
9565
9395
  # {
9566
9396
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
9567
9397
  # server_side_encryption: "AES256",
9568
- # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
9398
+ # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
9569
9399
  # }
9570
9400
  #
9571
- # @example Example: To upload an object and specify optional tags
9401
+ # @example Example: To create an object.
9572
9402
  #
9573
- # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
9574
- # # S3 returns version ID of the newly created object.
9403
+ # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
9575
9404
  #
9576
9405
  # resp = client.put_object({
9577
- # body: "c:\\HappyFace.jpg",
9406
+ # body: "filetoupload",
9578
9407
  # bucket: "examplebucket",
9579
- # key: "HappyFace.jpg",
9580
- # tagging: "key1=value1&key2=value2",
9408
+ # key: "objectkey",
9581
9409
  # })
9582
9410
  #
9583
9411
  # resp.to_h outputs the following:
9584
9412
  # {
9585
9413
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
9586
- # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
9414
+ # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
9587
9415
  # }
9588
9416
  #
9589
- # @example Example: To upload object and specify user-defined metadata
9417
+ # @example Example: To upload an object and specify optional tags
9590
9418
  #
9591
- # # The following example creates an object. The request also specifies optional metadata. If the bucket is versioning
9592
- # # enabled, S3 returns version ID in response.
9419
+ # # The following example uploads an object. The request specifies optional object tags. The bucket is versioned, therefore
9420
+ # # S3 returns version ID of the newly created object.
9593
9421
  #
9594
9422
  # resp = client.put_object({
9595
- # body: "filetoupload",
9423
+ # body: "c:\\HappyFace.jpg",
9596
9424
  # bucket: "examplebucket",
9597
- # key: "exampleobject",
9598
- # metadata: {
9599
- # "metadata1" => "value1",
9600
- # "metadata2" => "value2",
9601
- # },
9425
+ # key: "HappyFace.jpg",
9426
+ # tagging: "key1=value1&key2=value2",
9602
9427
  # })
9603
9428
  #
9604
9429
  # resp.to_h outputs the following:
9605
9430
  # {
9606
9431
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
9607
- # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
9432
+ # version_id: "psM2sYY4.o1501dSx8wMvnkOzSBB.V4a",
9608
9433
  # }
9609
9434
  #
9610
- # @example Example: To create an object.
9435
+ # @example Example: To upload an object (specify optional headers)
9611
9436
  #
9612
- # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
9437
+ # # The following example uploads an object. The request specifies optional request headers to directs S3 to use specific
9438
+ # # storage class and use server-side encryption.
9613
9439
  #
9614
9440
  # resp = client.put_object({
9615
- # body: "filetoupload",
9441
+ # body: "HappyFace.jpg",
9616
9442
  # bucket: "examplebucket",
9617
- # key: "objectkey",
9443
+ # key: "HappyFace.jpg",
9444
+ # server_side_encryption: "AES256",
9445
+ # storage_class: "STANDARD_IA",
9618
9446
  # })
9619
9447
  #
9620
9448
  # resp.to_h outputs the following:
9621
9449
  # {
9622
9450
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
9623
- # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
9451
+ # server_side_encryption: "AES256",
9452
+ # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
9624
9453
  # }
9625
9454
  #
9626
- # @example Example: To upload an object
9455
+ # @example Example: To upload object and specify user-defined metadata
9627
9456
  #
9628
- # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
9629
- # # syntax. S3 returns VersionId of the newly created object.
9457
+ # # The following example creates an object. The request also specifies optional metadata. If the bucket is versioning
9458
+ # # enabled, S3 returns version ID in response.
9630
9459
  #
9631
9460
  # resp = client.put_object({
9632
- # body: "HappyFace.jpg",
9461
+ # body: "filetoupload",
9633
9462
  # bucket: "examplebucket",
9634
- # key: "HappyFace.jpg",
9463
+ # key: "exampleobject",
9464
+ # metadata: {
9465
+ # "metadata1" => "value1",
9466
+ # "metadata2" => "value2",
9467
+ # },
9635
9468
  # })
9636
9469
  #
9637
9470
  # resp.to_h outputs the following:
9638
9471
  # {
9639
9472
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
9640
- # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
9473
+ # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
9641
9474
  # }
9642
9475
  #
9643
9476
  # @example Example: To upload an object and specify canned ACL.
@@ -9658,24 +9491,21 @@ module Aws::S3
9658
9491
  # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
9659
9492
  # }
9660
9493
  #
9661
- # @example Example: To upload an object and specify server-side encryption and object tags
9494
+ # @example Example: To upload an object
9662
9495
  #
9663
- # # The following example uploads and object. The request specifies the optional server-side encryption option. The request
9664
- # # also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.
9496
+ # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
9497
+ # # syntax. S3 returns VersionId of the newly created object.
9665
9498
  #
9666
9499
  # resp = client.put_object({
9667
- # body: "filetoupload",
9500
+ # body: "HappyFace.jpg",
9668
9501
  # bucket: "examplebucket",
9669
- # key: "exampleobject",
9670
- # server_side_encryption: "AES256",
9671
- # tagging: "key1=value1&key2=value2",
9502
+ # key: "HappyFace.jpg",
9672
9503
  # })
9673
9504
  #
9674
9505
  # resp.to_h outputs the following:
9675
9506
  # {
9676
9507
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
9677
- # server_side_encryption: "AES256",
9678
- # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
9508
+ # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
9679
9509
  # }
9680
9510
  #
9681
9511
  # @example Streaming a file from disk
@@ -9749,7 +9579,9 @@ module Aws::S3
9749
9579
  # Depending on your application needs, you can choose to set the ACL on
9750
9580
  # an object using either the request body or the headers. For example,
9751
9581
  # if you have an existing application that updates a bucket ACL using
9752
- # the request body, you can continue to use that approach.
9582
+ # the request body, you can continue to use that approach. For more
9583
+ # information, see [Access Control List (ACL) Overview][1] in the
9584
+ # *Amazon S3 Developer Guide*.
9753
9585
  #
9754
9586
  # **Access Permissions**
9755
9587
  #
@@ -9760,7 +9592,7 @@ module Aws::S3
9760
9592
  # ACL has a predefined set of grantees and permissions. Specify the
9761
9593
  # canned ACL name as the value of `x-amz-ac`l. If you use this header,
9762
9594
  # you cannot use other access control-specific headers in your
9763
- # request. For more information, see [Canned ACL][1].
9595
+ # request. For more information, see [Canned ACL][2].
9764
9596
  #
9765
9597
  # * Specify access permissions explicitly with the `x-amz-grant-read`,
9766
9598
  # `x-amz-grant-read-acp`, `x-amz-grant-write-acp`, and
@@ -9770,19 +9602,43 @@ module Aws::S3
9770
9602
  # ACL-specific headers, you cannot use `x-amz-acl` header to set a
9771
9603
  # canned ACL. These parameters map to the set of permissions that
9772
9604
  # Amazon S3 supports in an ACL. For more information, see [Access
9773
- # Control List (ACL) Overview][2].
9605
+ # Control List (ACL) Overview][1].
9774
9606
  #
9775
9607
  # You specify each grantee as a type=value pair, where the type is one
9776
9608
  # of the following:
9777
9609
  #
9778
- # * `emailAddress` – if the value specified is the email address of an
9779
- # AWS account
9780
- #
9781
9610
  # * `id` – if the value specified is the canonical user ID of an AWS
9782
9611
  # account
9783
9612
  #
9784
9613
  # * `uri` – if you are granting permissions to a predefined group
9785
9614
  #
9615
+ # * `emailAddress` – if the value specified is the email address of an
9616
+ # AWS account
9617
+ #
9618
+ # <note markdown="1"> Using email addresses to specify a grantee is only supported in
9619
+ # the following AWS Regions:
9620
+ #
9621
+ # * US East (N. Virginia)
9622
+ #
9623
+ # * US West (N. California)
9624
+ #
9625
+ # * US West (Oregon)
9626
+ #
9627
+ # * Asia Pacific (Singapore)
9628
+ #
9629
+ # * Asia Pacific (Sydney)
9630
+ #
9631
+ # * Asia Pacific (Tokyo)
9632
+ #
9633
+ # * Europe (Ireland)
9634
+ #
9635
+ # * South America (São Paulo)
9636
+ #
9637
+ # For a list of all the Amazon S3 supported Regions and endpoints,
9638
+ # see [Regions and Endpoints][3] in the AWS General Reference.
9639
+ #
9640
+ # </note>
9641
+ #
9786
9642
  # For example, the following `x-amz-grant-read` header grants list
9787
9643
  # objects permission to the two AWS accounts identified by their email
9788
9644
  # addresses.
@@ -9798,14 +9654,6 @@ module Aws::S3
9798
9654
  # You can specify the person (grantee) to whom you're assigning access
9799
9655
  # rights (using request elements) in the following ways:
9800
9656
  #
9801
- # * By Email address:
9802
- #
9803
- # `<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9804
- # xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee>`
9805
- #
9806
- # The grantee is resolved to the CanonicalUser and, in a response to a
9807
- # GET Object acl request, appears as the CanonicalUser.
9808
- #
9809
9657
  # * By the person's ID:
9810
9658
  #
9811
9659
  # `<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
@@ -9819,6 +9667,38 @@ module Aws::S3
9819
9667
  # `<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9820
9668
  # xsi:type="Group"><URI><>http://acs.amazonaws.com/groups/global/AuthenticatedUsers<></URI></Grantee>`
9821
9669
  #
9670
+ # * By Email address:
9671
+ #
9672
+ # `<Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
9673
+ # xsi:type="AmazonCustomerByEmail"><EmailAddress><>Grantees@email.com<></EmailAddress>lt;/Grantee>`
9674
+ #
9675
+ # The grantee is resolved to the CanonicalUser and, in a response to a
9676
+ # GET Object acl request, appears as the CanonicalUser.
9677
+ #
9678
+ # <note markdown="1"> Using email addresses to specify a grantee is only supported in the
9679
+ # following AWS Regions:
9680
+ #
9681
+ # * US East (N. Virginia)
9682
+ #
9683
+ # * US West (N. California)
9684
+ #
9685
+ # * US West (Oregon)
9686
+ #
9687
+ # * Asia Pacific (Singapore)
9688
+ #
9689
+ # * Asia Pacific (Sydney)
9690
+ #
9691
+ # * Asia Pacific (Tokyo)
9692
+ #
9693
+ # * Europe (Ireland)
9694
+ #
9695
+ # * South America (São Paulo)
9696
+ #
9697
+ # For a list of all the Amazon S3 supported Regions and endpoints, see
9698
+ # [Regions and Endpoints][3] in the AWS General Reference.
9699
+ #
9700
+ # </note>
9701
+ #
9822
9702
  # **Versioning**
9823
9703
  #
9824
9704
  # The ACL of an object is set at the object version level. By default,
@@ -9833,8 +9713,9 @@ module Aws::S3
9833
9713
  #
9834
9714
  #
9835
9715
  #
9836
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
9837
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html
9716
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html
9717
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
9718
+ # [3]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
9838
9719
  #
9839
9720
  # @option params [String] :acl
9840
9721
  # The canned ACL to apply to the object. For more information, see
@@ -10229,7 +10110,8 @@ module Aws::S3
10229
10110
  req.send_request(options)
10230
10111
  end
10231
10112
 
10232
- # Sets the supplied tag-set to an object that already exists in a bucket
10113
+ # Sets the supplied tag-set to an object that already exists in a
10114
+ # bucket.
10233
10115
  #
10234
10116
  # A tag is a key-value pair. You can associate tags with an object by
10235
10117
  # sending a PUT request against the tagging subresource that is
@@ -10458,12 +10340,11 @@ module Aws::S3
10458
10340
  # * `restore an archive` - Restore an archived object
10459
10341
  #
10460
10342
  # To use this operation, you must have permissions to perform the
10461
- # `s3:RestoreObject` and `s3:GetObject` actions. The bucket owner has
10462
- # this permission by default and can grant this permission to others.
10463
- # For more information about permissions, see [Permissions Related to
10464
- # Bucket Subresource Operations][1] and [Managing Access Permissions to
10465
- # Your Amazon S3 Resources][2] in the *Amazon Simple Storage Service
10466
- # Developer Guide*.
10343
+ # `s3:RestoreObject` action. The bucket owner has this permission by
10344
+ # default and can grant this permission to others. For more information
10345
+ # about permissions, see [Permissions Related to Bucket Subresource
10346
+ # Operations][1] and [Managing Access Permissions to Your Amazon S3
10347
+ # Resources][2] in the *Amazon Simple Storage Service Developer Guide*.
10467
10348
  #
10468
10349
  # **Querying Archives with Select Requests**
10469
10350
  #
@@ -10519,9 +10400,9 @@ module Aws::S3
10519
10400
  #
10520
10401
  # `SELECT s.Id, s.FirstName, s.SSN FROM S3Object s`
10521
10402
  #
10522
- # For more information about using SQL with Glacier Select restore, see
10523
- # [SQL Reference for Amazon S3 Select and Glacier Select][6] in the
10524
- # *Amazon Simple Storage Service Developer Guide*.
10403
+ # For more information about using SQL with S3 Glacier Select restore,
10404
+ # see [SQL Reference for Amazon S3 Select and S3 Glacier Select][6] in
10405
+ # the *Amazon Simple Storage Service Developer Guide*.
10525
10406
  #
10526
10407
  # When making a select request, you can also do the following:
10527
10408
  #
@@ -10578,10 +10459,10 @@ module Aws::S3
10578
10459
  # retrievals and provisioned capacity are not available for the
10579
10460
  # DEEP\_ARCHIVE storage class.
10580
10461
  #
10581
- # * <b> <code>Standard</code> </b> - Standard retrievals allow you to
10462
+ # * <b> <code>Standard</code> </b> - S3 Standard retrievals allow you to
10582
10463
  # access any of your archived objects within several hours. This is
10583
10464
  # the default option for the GLACIER and DEEP\_ARCHIVE retrieval
10584
- # requests that do not specify the retrieval option. Standard
10465
+ # requests that do not specify the retrieval option. S3 Standard
10585
10466
  # retrievals typically complete within 3-5 hours from the GLACIER
10586
10467
  # storage class and typically complete within 12 hours from the
10587
10468
  # DEEP\_ARCHIVE storage class.
@@ -10659,10 +10540,11 @@ module Aws::S3
10659
10540
  #
10660
10541
  # * *Code: GlacierExpeditedRetrievalNotAvailable*
10661
10542
  #
10662
- # * *Cause: Glacier expedited retrievals are currently not available.
10663
- # Try again later. (Returned if there is insufficient capacity to
10664
- # process the Expedited request. This error applies only to
10665
- # Expedited retrievals and not to Standard or Bulk retrievals.)*
10543
+ # * *Cause: S3 Glacier expedited retrievals are currently not
10544
+ # available. Try again later. (Returned if there is insufficient
10545
+ # capacity to process the Expedited request. This error applies only
10546
+ # to Expedited retrievals and not to S3 Standard or Bulk
10547
+ # retrievals.)*
10666
10548
  #
10667
10549
  # * *HTTP Status Code: 503*
10668
10550
  #
@@ -10674,8 +10556,8 @@ module Aws::S3
10674
10556
  #
10675
10557
  # * GetBucketNotificationConfiguration
10676
10558
  #
10677
- # * [SQL Reference for Amazon S3 Select and Glacier Select ][6] in the
10678
- # *Amazon Simple Storage Service Developer Guide*
10559
+ # * [SQL Reference for Amazon S3 Select and S3 Glacier Select ][6] in
10560
+ # the *Amazon Simple Storage Service Developer Guide*
10679
10561
  #
10680
10562
  #
10681
10563
  #
@@ -10867,8 +10749,8 @@ module Aws::S3
10867
10749
  # Guide*.
10868
10750
  #
10869
10751
  # For more information about using SQL with Amazon S3 Select, see [ SQL
10870
- # Reference for Amazon S3 Select and Glacier Select][2] in the *Amazon
10871
- # Simple Storage Service Developer Guide*.
10752
+ # Reference for Amazon S3 Select and S3 Glacier Select][2] in the
10753
+ # *Amazon Simple Storage Service Developer Guide*.
10872
10754
  #
10873
10755
  #
10874
10756
  #
@@ -10929,10 +10811,10 @@ module Aws::S3
10929
10811
  # The `SelectObjectContent` operation does not support the following
10930
10812
  # `GetObject` functionality. For more information, see GetObject.
10931
10813
  #
10932
- # * `Range`\: While you can specify a scan range for a Amazon S3 Select
10933
- # request, see SelectObjectContentRequest$ScanRange in the request
10934
- # parameters below, you cannot specify the range of bytes of an object
10935
- # to return.
10814
+ # * `Range`\: Although you can specify a scan range for an Amazon S3
10815
+ # Select request (see SelectObjectContentRequest$ScanRange in the
10816
+ # request parameters), you cannot specify the range of bytes of an
10817
+ # object to return.
10936
10818
  #
10937
10819
  # * GLACIER, DEEP\_ARCHIVE and REDUCED\_REDUNDANCY storage classes: You
10938
10820
  # cannot specify the GLACIER, DEEP\_ARCHIVE, or `REDUCED_REDUNDANCY`
@@ -10944,9 +10826,8 @@ module Aws::S3
10944
10826
  #
10945
10827
  # **Special Errors**
10946
10828
  #
10947
- # For a list of special errors for this operation and for general
10948
- # information about Amazon S3 errors and a list of error codes, see
10949
- # ErrorResponses
10829
+ # For a list of special errors for this operation, see
10830
+ # SelectObjectContentErrorCodeList
10950
10831
  #
10951
10832
  # **Related Resources**
10952
10833
  #
@@ -11692,45 +11573,45 @@ module Aws::S3
11692
11573
  # * {Types::UploadPartCopyOutput#request_charged #request_charged} => String
11693
11574
  #
11694
11575
  #
11695
- # @example Example: To upload a part by copying byte range from an existing object as data source
11576
+ # @example Example: To upload a part by copying data from an existing object as data source
11696
11577
  #
11697
- # # The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as
11698
- # # data source.
11578
+ # # The following example uploads a part of a multipart upload by copying data from an existing object as data source.
11699
11579
  #
11700
11580
  # resp = client.upload_part_copy({
11701
11581
  # bucket: "examplebucket",
11702
11582
  # copy_source: "/bucketname/sourceobjectkey",
11703
- # copy_source_range: "bytes=1-100000",
11704
11583
  # key: "examplelargeobject",
11705
- # part_number: 2,
11584
+ # part_number: 1,
11706
11585
  # upload_id: "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--",
11707
11586
  # })
11708
11587
  #
11709
11588
  # resp.to_h outputs the following:
11710
11589
  # {
11711
11590
  # copy_part_result: {
11712
- # etag: "\"65d16d19e65a7508a51f043180edcc36\"",
11713
- # last_modified: Time.parse("2016-12-29T21:44:28.000Z"),
11591
+ # etag: "\"b0c6f0e7e054ab8fa2536a2677f8734d\"",
11592
+ # last_modified: Time.parse("2016-12-29T21:24:43.000Z"),
11714
11593
  # },
11715
11594
  # }
11716
11595
  #
11717
- # @example Example: To upload a part by copying data from an existing object as data source
11596
+ # @example Example: To upload a part by copying byte range from an existing object as data source
11718
11597
  #
11719
- # # The following example uploads a part of a multipart upload by copying data from an existing object as data source.
11598
+ # # The following example uploads a part of a multipart upload by copying a specified byte range from an existing object as
11599
+ # # data source.
11720
11600
  #
11721
11601
  # resp = client.upload_part_copy({
11722
11602
  # bucket: "examplebucket",
11723
11603
  # copy_source: "/bucketname/sourceobjectkey",
11604
+ # copy_source_range: "bytes=1-100000",
11724
11605
  # key: "examplelargeobject",
11725
- # part_number: 1,
11606
+ # part_number: 2,
11726
11607
  # upload_id: "exampleuoh_10OhKhT7YukE9bjzTPRiuaCotmZM_pFngJFir9OZNrSr5cWa3cq3LZSUsfjI4FI7PkP91We7Nrw--",
11727
11608
  # })
11728
11609
  #
11729
11610
  # resp.to_h outputs the following:
11730
11611
  # {
11731
11612
  # copy_part_result: {
11732
- # etag: "\"b0c6f0e7e054ab8fa2536a2677f8734d\"",
11733
- # last_modified: Time.parse("2016-12-29T21:24:43.000Z"),
11613
+ # etag: "\"65d16d19e65a7508a51f043180edcc36\"",
11614
+ # last_modified: Time.parse("2016-12-29T21:44:28.000Z"),
11734
11615
  # },
11735
11616
  # }
11736
11617
  #
@@ -11789,7 +11670,7 @@ module Aws::S3
11789
11670
  params: params,
11790
11671
  config: config)
11791
11672
  context[:gem_name] = 'aws-sdk-s3'
11792
- context[:gem_version] = '1.65.0'
11673
+ context[:gem_version] = '1.69.0'
11793
11674
  Seahorse::Client::Request.new(handlers, context)
11794
11675
  end
11795
11676