aws-sdk-s3 1.75.0 → 1.76.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 (32) hide show
  1. checksums.yaml +4 -4
  2. data/lib/aws-sdk-s3.rb +1 -1
  3. data/lib/aws-sdk-s3/bucket.rb +2 -2
  4. data/lib/aws-sdk-s3/client.rb +791 -505
  5. data/lib/aws-sdk-s3/encryption.rb +2 -0
  6. data/lib/aws-sdk-s3/encryption/client.rb +11 -0
  7. data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +52 -28
  8. data/lib/aws-sdk-s3/encryption/default_cipher_provider.rb +41 -5
  9. data/lib/aws-sdk-s3/encryption/encrypt_handler.rb +5 -5
  10. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +32 -3
  11. data/lib/aws-sdk-s3/encryption/utils.rb +23 -0
  12. data/lib/aws-sdk-s3/encryptionV2/client.rb +198 -22
  13. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +40 -12
  14. data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +77 -10
  15. data/lib/aws-sdk-s3/encryptionV2/default_key_provider.rb +2 -0
  16. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +7 -4
  17. data/lib/aws-sdk-s3/encryptionV2/errors.rb +24 -0
  18. data/lib/aws-sdk-s3/encryptionV2/io_auth_decrypter.rb +2 -0
  19. data/lib/aws-sdk-s3/encryptionV2/io_decrypter.rb +2 -0
  20. data/lib/aws-sdk-s3/encryptionV2/io_encrypter.rb +2 -0
  21. data/lib/aws-sdk-s3/encryptionV2/key_provider.rb +2 -0
  22. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +90 -20
  23. data/lib/aws-sdk-s3/encryptionV2/materials.rb +2 -0
  24. data/lib/aws-sdk-s3/encryptionV2/utils.rb +2 -15
  25. data/lib/aws-sdk-s3/encryption_v2.rb +4 -1
  26. data/lib/aws-sdk-s3/multipart_upload_part.rb +5 -5
  27. data/lib/aws-sdk-s3/object.rb +10 -9
  28. data/lib/aws-sdk-s3/object_summary.rb +23 -7
  29. data/lib/aws-sdk-s3/object_version.rb +2 -2
  30. data/lib/aws-sdk-s3/presigner.rb +2 -2
  31. data/lib/aws-sdk-s3/types.rb +63 -26
  32. metadata +2 -2
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'base64'
2
4
 
3
5
  module Aws
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'openssl'
2
4
 
3
5
  module Aws
@@ -6,24 +8,9 @@ module Aws
6
8
  # @api private
7
9
  module Utils
8
10
 
9
- UNSAFE_MSG = "unsafe encryption, data is longer than key length"
10
-
11
11
  class << self
12
12
 
13
- def encrypt(key, data)
14
- case key
15
- when OpenSSL::PKey::RSA # asymmetric encryption
16
- warn(UNSAFE_MSG) if key.public_key.n.num_bits < cipher_size(data)
17
- key.public_encrypt(data)
18
- when String # symmetric encryption
19
- warn(UNSAFE_MSG) if cipher_size(key) < cipher_size(data)
20
- cipher = aes_encryption_cipher(:ECB, key)
21
- cipher.update(data) + cipher.final
22
- end
23
- end
24
-
25
13
  def encrypt_aes_gcm(key, data, auth_data)
26
- warn(UNSAFE_MSG) if cipher_size(key) < cipher_size(data)
27
14
  cipher = aes_encryption_cipher(:GCM, key)
28
15
  cipher.iv = (iv = cipher.random_iv)
29
16
  cipher.auth_data = auth_data
@@ -14,7 +14,10 @@ require 'aws-sdk-s3/encryptionV2/default_key_provider'
14
14
 
15
15
  module Aws
16
16
  module S3
17
- module EncryptionV2; end
17
+ module EncryptionV2
18
+ AES_GCM_TAG_LEN_BYTES = 16
19
+ EC_USER_AGENT = 'S3CryptoV2'
20
+ end
18
21
  end
19
22
  end
20
23
 
@@ -250,8 +250,8 @@ module Aws::S3
250
250
  # encrypting data. This value is used to store the object and then it is
251
251
  # discarded; Amazon S3 does not store the encryption key. The key must
252
252
  # be appropriate for use with the algorithm specified in the
253
- # `x-amz-server-side​-encryption​-customer-algorithm` header. This must
254
- # be the same encryption key specified in the initiate multipart upload
253
+ # `x-amz-server-side-encryption-customer-algorithm` header. This must be
254
+ # the same encryption key specified in the initiate multipart upload
255
255
  # request.
256
256
  # @option options [String] :sse_customer_key_md5
257
257
  # Specifies the 128-bit MD5 digest of the encryption key according to
@@ -302,7 +302,7 @@ module Aws::S3
302
302
  # request_payer: "requester", # accepts requester
303
303
  # })
304
304
  # @param [Hash] options ({})
305
- # @option options [String, IO] :body
305
+ # @option options [String, StringIO, File] :body
306
306
  # Object data.
307
307
  # @option options [Integer] :content_length
308
308
  # Size of the body in bytes. This parameter is useful when the size of
@@ -319,8 +319,8 @@ module Aws::S3
319
319
  # encrypting data. This value is used to store the object and then it is
320
320
  # discarded; Amazon S3 does not store the encryption key. The key must
321
321
  # be appropriate for use with the algorithm specified in the
322
- # `x-amz-server-side​-encryption​-customer-algorithm header`. This must
323
- # be the same encryption key specified in the initiate multipart upload
322
+ # `x-amz-server-side-encryption-customer-algorithm header`. This must be
323
+ # the same encryption key specified in the initiate multipart upload
324
324
  # request.
325
325
  # @option options [String] :sse_customer_key_md5
326
326
  # Specifies the 128-bit MD5 digest of the encryption key according to
@@ -67,8 +67,8 @@ module Aws::S3
67
67
 
68
68
  # If the object is an archived object (an object whose storage class is
69
69
  # GLACIER), the response includes this header if either the archive
70
- # restoration is in progress (see RestoreObject or an archive copy is
71
- # already restored.
70
+ # restoration is in progress (see [RestoreObject][1] or an archive copy
71
+ # is already restored.
72
72
  #
73
73
  # If an archive copy is already restored, the header value indicates
74
74
  # when Amazon S3 is scheduled to delete the object copy. For example:
@@ -80,11 +80,12 @@ module Aws::S3
80
80
  # `ongoing-request="true"`.
81
81
  #
82
82
  # For more information about archiving objects, see [Transitioning
83
- # Objects: General Considerations][1].
83
+ # Objects: General Considerations][2].
84
84
  #
85
85
  #
86
86
  #
87
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-transition-general-considerations
87
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html
88
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-transition-general-considerations
88
89
  # @return [String]
89
90
  def restore
90
91
  data[:restore]
@@ -609,7 +610,7 @@ module Aws::S3
609
610
  # encrypting data. This value is used to store the object and then it is
610
611
  # discarded; Amazon S3 does not store the encryption key. The key must
611
612
  # be appropriate for use with the algorithm specified in the
612
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
613
+ # `x-amz-server-side-encryption-customer-algorithm` header.
613
614
  # @option options [String] :sse_customer_key_md5
614
615
  # Specifies the 128-bit MD5 digest of the encryption key according to
615
616
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -779,7 +780,7 @@ module Aws::S3
779
780
  # encrypting data. This value is used to store the object and then it is
780
781
  # discarded; Amazon S3 does not store the encryption key. The key must
781
782
  # be appropriate for use with the algorithm specified in the
782
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
783
+ # `x-amz-server-side-encryption-customer-algorithm` header.
783
784
  # @option options [String] :sse_customer_key_md5
784
785
  # Specifies the 128-bit MD5 digest of the encryption key according to
785
786
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -885,7 +886,7 @@ module Aws::S3
885
886
  # encrypting data. This value is used to store the object and then it is
886
887
  # discarded; Amazon S3 does not store the encryption key. The key must
887
888
  # be appropriate for use with the algorithm specified in the
888
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
889
+ # `x-amz-server-side-encryption-customer-algorithm` header.
889
890
  # @option options [String] :sse_customer_key_md5
890
891
  # Specifies the 128-bit MD5 digest of the encryption key according to
891
892
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -983,7 +984,7 @@ module Aws::S3
983
984
  #
984
985
  #
985
986
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
986
- # @option options [String, IO] :body
987
+ # @option options [String, StringIO, File] :body
987
988
  # Object data.
988
989
  # @option options [String] :cache_control
989
990
  # Can be used to specify caching behavior along the request/reply chain.
@@ -1098,7 +1099,7 @@ module Aws::S3
1098
1099
  # encrypting data. This value is used to store the object and then it is
1099
1100
  # discarded; Amazon S3 does not store the encryption key. The key must
1100
1101
  # be appropriate for use with the algorithm specified in the
1101
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
1102
+ # `x-amz-server-side-encryption-customer-algorithm` header.
1102
1103
  # @option options [String] :sse_customer_key_md5
1103
1104
  # Specifies the 128-bit MD5 digest of the encryption key according to
1104
1105
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -48,8 +48,24 @@ module Aws::S3
48
48
  data[:last_modified]
49
49
  end
50
50
 
51
- # The entity tag is an MD5 hash of the object. ETag reflects only
52
- # changes to the contents of an object, not its metadata.
51
+ # The entity tag is a hash of the object. The ETag reflects changes only
52
+ # to the contents of an object, not its metadata. The ETag may or may
53
+ # not be an MD5 digest of the object data. Whether or not it is depends
54
+ # on how the object was created and how it is encrypted as described
55
+ # below:
56
+ #
57
+ # * Objects created by the PUT Object, POST Object, or Copy operation,
58
+ # or through the AWS Management Console, and are encrypted by SSE-S3
59
+ # or plaintext, have ETags that are an MD5 digest of their object
60
+ # data.
61
+ #
62
+ # * Objects created by the PUT Object, POST Object, or Copy operation,
63
+ # or through the AWS Management Console, and are encrypted by SSE-C or
64
+ # SSE-KMS, have ETags that are not an MD5 digest of their object data.
65
+ #
66
+ # * If an object is created by either the Multipart Upload or Part Copy
67
+ # operation, the ETag is not an MD5 digest, regardless of the method
68
+ # of encryption.
53
69
  # @return [String]
54
70
  def etag
55
71
  data[:etag]
@@ -359,7 +375,7 @@ module Aws::S3
359
375
  # encrypting data. This value is used to store the object and then it is
360
376
  # discarded; Amazon S3 does not store the encryption key. The key must
361
377
  # be appropriate for use with the algorithm specified in the
362
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
378
+ # `x-amz-server-side-encryption-customer-algorithm` header.
363
379
  # @option options [String] :sse_customer_key_md5
364
380
  # Specifies the 128-bit MD5 digest of the encryption key according to
365
381
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -529,7 +545,7 @@ module Aws::S3
529
545
  # encrypting data. This value is used to store the object and then it is
530
546
  # discarded; Amazon S3 does not store the encryption key. The key must
531
547
  # be appropriate for use with the algorithm specified in the
532
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
548
+ # `x-amz-server-side-encryption-customer-algorithm` header.
533
549
  # @option options [String] :sse_customer_key_md5
534
550
  # Specifies the 128-bit MD5 digest of the encryption key according to
535
551
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -635,7 +651,7 @@ module Aws::S3
635
651
  # encrypting data. This value is used to store the object and then it is
636
652
  # discarded; Amazon S3 does not store the encryption key. The key must
637
653
  # be appropriate for use with the algorithm specified in the
638
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
654
+ # `x-amz-server-side-encryption-customer-algorithm` header.
639
655
  # @option options [String] :sse_customer_key_md5
640
656
  # Specifies the 128-bit MD5 digest of the encryption key according to
641
657
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -733,7 +749,7 @@ module Aws::S3
733
749
  #
734
750
  #
735
751
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
736
- # @option options [String, IO] :body
752
+ # @option options [String, StringIO, File] :body
737
753
  # Object data.
738
754
  # @option options [String] :cache_control
739
755
  # Can be used to specify caching behavior along the request/reply chain.
@@ -848,7 +864,7 @@ module Aws::S3
848
864
  # encrypting data. This value is used to store the object and then it is
849
865
  # discarded; Amazon S3 does not store the encryption key. The key must
850
866
  # be appropriate for use with the algorithm specified in the
851
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
867
+ # `x-amz-server-side-encryption-customer-algorithm` header.
852
868
  # @option options [String] :sse_customer_key_md5
853
869
  # Specifies the 128-bit MD5 digest of the encryption key according to
854
870
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -331,7 +331,7 @@ module Aws::S3
331
331
  # encrypting data. This value is used to store the object and then it is
332
332
  # discarded; Amazon S3 does not store the encryption key. The key must
333
333
  # be appropriate for use with the algorithm specified in the
334
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
334
+ # `x-amz-server-side-encryption-customer-algorithm` header.
335
335
  # @option options [String] :sse_customer_key_md5
336
336
  # Specifies the 128-bit MD5 digest of the encryption key according to
337
337
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -406,7 +406,7 @@ module Aws::S3
406
406
  # encrypting data. This value is used to store the object and then it is
407
407
  # discarded; Amazon S3 does not store the encryption key. The key must
408
408
  # be appropriate for use with the algorithm specified in the
409
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
409
+ # `x-amz-server-side-encryption-customer-algorithm` header.
410
410
  # @option options [String] :sse_customer_key_md5
411
411
  # Specifies the 128-bit MD5 digest of the encryption key according to
412
412
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -41,7 +41,7 @@ module Aws
41
41
  # signer = Aws::S3::Presigner.new
42
42
  # url = signer.presigned_url(:get_object, bucket: "bucket", key: "key")
43
43
  #
44
- # @param [Symbol] :method Symbolized method name of the operation you want
44
+ # @param [Symbol] method Symbolized method name of the operation you want
45
45
  # to presign.
46
46
  #
47
47
  # @option params [Integer] :expires_in (900) The number of seconds
@@ -89,7 +89,7 @@ module Aws
89
89
  # :get_object, bucket: "bucket", key: "key"
90
90
  # )
91
91
  #
92
- # @param [Symbol] :method Symbolized method name of the operation you want
92
+ # @param [Symbol] method Symbolized method name of the operation you want
93
93
  # to presign.
94
94
  #
95
95
  # @option params [Integer] :expires_in (900) The number of seconds
@@ -1350,7 +1350,7 @@ module Aws::S3
1350
1350
  # in encrypting data. This value is used to store the object and then
1351
1351
  # it is discarded; Amazon S3 does not store the encryption key. The
1352
1352
  # key must be appropriate for use with the algorithm specified in the
1353
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
1353
+ # `x-amz-server-side-encryption-customer-algorithm` header.
1354
1354
  # @return [String]
1355
1355
  #
1356
1356
  # @!attribute [rw] sse_customer_key_md5
@@ -1843,7 +1843,7 @@ module Aws::S3
1843
1843
  # in encrypting data. This value is used to store the object and then
1844
1844
  # it is discarded; Amazon S3 does not store the encryption key. The
1845
1845
  # key must be appropriate for use with the algorithm specified in the
1846
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
1846
+ # `x-amz-server-side-encryption-customer-algorithm` header.
1847
1847
  # @return [String]
1848
1848
  #
1849
1849
  # @!attribute [rw] sse_customer_key_md5
@@ -2457,7 +2457,7 @@ module Aws::S3
2457
2457
  # @return [String]
2458
2458
  #
2459
2459
  # @!attribute [rw] key
2460
- # Name of the tag.
2460
+ # Name of the object key.
2461
2461
  # @return [String]
2462
2462
  #
2463
2463
  # @!attribute [rw] version_id
@@ -4884,7 +4884,7 @@ module Aws::S3
4884
4884
  # in encrypting data. This value is used to store the object and then
4885
4885
  # it is discarded; Amazon S3 does not store the encryption key. The
4886
4886
  # key must be appropriate for use with the algorithm specified in the
4887
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
4887
+ # `x-amz-server-side-encryption-customer-algorithm` header.
4888
4888
  # @return [String]
4889
4889
  #
4890
4890
  # @!attribute [rw] sse_customer_key_md5
@@ -5332,8 +5332,8 @@ module Aws::S3
5332
5332
  # @!attribute [rw] restore
5333
5333
  # If the object is an archived object (an object whose storage class
5334
5334
  # is GLACIER), the response includes this header if either the archive
5335
- # restoration is in progress (see RestoreObject or an archive copy is
5336
- # already restored.
5335
+ # restoration is in progress (see [RestoreObject][1] or an archive
5336
+ # copy is already restored.
5337
5337
  #
5338
5338
  # If an archive copy is already restored, the header value indicates
5339
5339
  # when Amazon S3 is scheduled to delete the object copy. For example:
@@ -5345,11 +5345,12 @@ module Aws::S3
5345
5345
  # value `ongoing-request="true"`.
5346
5346
  #
5347
5347
  # For more information about archiving objects, see [Transitioning
5348
- # Objects: General Considerations][1].
5348
+ # Objects: General Considerations][2].
5349
5349
  #
5350
5350
  #
5351
5351
  #
5352
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-transition-general-considerations
5352
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_RestoreObject.html
5353
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt.html#lifecycle-transition-general-considerations
5353
5354
  # @return [String]
5354
5355
  #
5355
5356
  # @!attribute [rw] last_modified
@@ -5638,7 +5639,7 @@ module Aws::S3
5638
5639
  # in encrypting data. This value is used to store the object and then
5639
5640
  # it is discarded; Amazon S3 does not store the encryption key. The
5640
5641
  # key must be appropriate for use with the algorithm specified in the
5641
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
5642
+ # `x-amz-server-side-encryption-customer-algorithm` header.
5642
5643
  # @return [String]
5643
5644
  #
5644
5645
  # @!attribute [rw] sse_customer_key_md5
@@ -7042,7 +7043,7 @@ module Aws::S3
7042
7043
  # in the subsequent request to get next set of objects. Amazon S3
7043
7044
  # lists objects in alphabetical order Note: This element is returned
7044
7045
  # only if you have delimiter request parameter specified. If response
7045
- # does not include the NextMaker and it is truncated, you can use the
7046
+ # does not include the NextMarker and it is truncated, you can use the
7046
7047
  # value of the last Key in the response as the marker in the
7047
7048
  # subsequent request to get the next set of object keys.
7048
7049
  # @return [String]
@@ -8140,8 +8141,25 @@ module Aws::S3
8140
8141
  # @return [Time]
8141
8142
  #
8142
8143
  # @!attribute [rw] etag
8143
- # The entity tag is an MD5 hash of the object. ETag reflects only
8144
- # changes to the contents of an object, not its metadata.
8144
+ # The entity tag is a hash of the object. The ETag reflects changes
8145
+ # only to the contents of an object, not its metadata. The ETag may or
8146
+ # may not be an MD5 digest of the object data. Whether or not it is
8147
+ # depends on how the object was created and how it is encrypted as
8148
+ # described below:
8149
+ #
8150
+ # * Objects created by the PUT Object, POST Object, or Copy operation,
8151
+ # or through the AWS Management Console, and are encrypted by SSE-S3
8152
+ # or plaintext, have ETags that are an MD5 digest of their object
8153
+ # data.
8154
+ #
8155
+ # * Objects created by the PUT Object, POST Object, or Copy operation,
8156
+ # or through the AWS Management Console, and are encrypted by SSE-C
8157
+ # or SSE-KMS, have ETags that are not an MD5 digest of their object
8158
+ # data.
8159
+ #
8160
+ # * If an object is created by either the Multipart Upload or Part
8161
+ # Copy operation, the ETag is not an MD5 digest, regardless of the
8162
+ # method of encryption.
8145
8163
  # @return [String]
8146
8164
  #
8147
8165
  # @!attribute [rw] size
@@ -10017,10 +10035,14 @@ module Aws::S3
10017
10035
 
10018
10036
  # @!attribute [rw] expiration
10019
10037
  # If the expiration is configured for the object (see
10020
- # PutBucketLifecycleConfiguration), the response includes this header.
10021
- # It includes the expiry-date and rule-id key-value pairs that provide
10022
- # information about object expiration. The value of the rule-id is URL
10023
- # encoded.
10038
+ # [PutBucketLifecycleConfiguration][1]), the response includes this
10039
+ # header. It includes the expiry-date and rule-id key-value pairs that
10040
+ # provide information about object expiration. The value of the
10041
+ # rule-id is URL encoded.
10042
+ #
10043
+ #
10044
+ #
10045
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketLifecycleConfiguration.html
10024
10046
  # @return [String]
10025
10047
  #
10026
10048
  # @!attribute [rw] etag
@@ -10308,7 +10330,7 @@ module Aws::S3
10308
10330
  # in encrypting data. This value is used to store the object and then
10309
10331
  # it is discarded; Amazon S3 does not store the encryption key. The
10310
10332
  # key must be appropriate for use with the algorithm specified in the
10311
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
10333
+ # `x-amz-server-side-encryption-customer-algorithm` header.
10312
10334
  # @return [String]
10313
10335
  #
10314
10336
  # @!attribute [rw] sse_customer_key_md5
@@ -10553,7 +10575,7 @@ module Aws::S3
10553
10575
  # @return [String]
10554
10576
  #
10555
10577
  # @!attribute [rw] key
10556
- # Name of the tag.
10578
+ # Name of the object key.
10557
10579
  # @return [String]
10558
10580
  #
10559
10581
  # @!attribute [rw] version_id
@@ -10685,11 +10707,15 @@ module Aws::S3
10685
10707
  include Aws::Structure
10686
10708
  end
10687
10709
 
10688
- # This data type is deprecated. Use QueueConfiguration for the same
10710
+ # This data type is deprecated. Use [QueueConfiguration][1] for the same
10689
10711
  # purposes. This data type specifies the configuration for publishing
10690
10712
  # messages to an Amazon Simple Queue Service (Amazon SQS) queue when
10691
10713
  # Amazon S3 detects specified events.
10692
10714
  #
10715
+ #
10716
+ #
10717
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_QueueConfiguration.html
10718
+ #
10693
10719
  # @note When making an API call, you may pass QueueConfigurationDeprecated
10694
10720
  # data as a hash:
10695
10721
  #
@@ -11580,7 +11606,14 @@ module Aws::S3
11580
11606
  include Aws::Structure
11581
11607
  end
11582
11608
 
11583
- # Specifies the redirect behavior and when a redirect is applied.
11609
+ # Specifies the redirect behavior and when a redirect is applied. For
11610
+ # more information about routing rules, see [Configuring advanced
11611
+ # conditional redirects][1] in the *Amazon Simple Storage Service
11612
+ # Developer Guide*.
11613
+ #
11614
+ #
11615
+ #
11616
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html#advanced-conditional-redirects
11584
11617
  #
11585
11618
  # @note When making an API call, you may pass RoutingRule
11586
11619
  # data as a hash:
@@ -12453,7 +12486,7 @@ module Aws::S3
12453
12486
  # }
12454
12487
  #
12455
12488
  # @!attribute [rw] key
12456
- # Name of the tag.
12489
+ # Name of the object key.
12457
12490
  # @return [String]
12458
12491
  #
12459
12492
  # @!attribute [rw] value
@@ -12597,7 +12630,11 @@ module Aws::S3
12597
12630
  # A container for specifying the configuration for publication of
12598
12631
  # messages to an Amazon Simple Notification Service (Amazon SNS) topic
12599
12632
  # when Amazon S3 detects specified events. This data type is deprecated.
12600
- # Use TopicConfiguration instead.
12633
+ # Use [TopicConfiguration][1] instead.
12634
+ #
12635
+ #
12636
+ #
12637
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_TopicConfiguration.html
12601
12638
  #
12602
12639
  # @note When making an API call, you may pass TopicConfigurationDeprecated
12603
12640
  # data as a hash:
@@ -12818,8 +12855,8 @@ module Aws::S3
12818
12855
  # in encrypting data. This value is used to store the object and then
12819
12856
  # it is discarded; Amazon S3 does not store the encryption key. The
12820
12857
  # key must be appropriate for use with the algorithm specified in the
12821
- # `x-amz-server-side​-encryption​-customer-algorithm` header. This
12822
- # must be the same encryption key specified in the initiate multipart
12858
+ # `x-amz-server-side-encryption-customer-algorithm` header. This must
12859
+ # be the same encryption key specified in the initiate multipart
12823
12860
  # upload request.
12824
12861
  # @return [String]
12825
12862
  #
@@ -12988,8 +13025,8 @@ module Aws::S3
12988
13025
  # in encrypting data. This value is used to store the object and then
12989
13026
  # it is discarded; Amazon S3 does not store the encryption key. The
12990
13027
  # key must be appropriate for use with the algorithm specified in the
12991
- # `x-amz-server-side​-encryption​-customer-algorithm header`. This
12992
- # must be the same encryption key specified in the initiate multipart
13028
+ # `x-amz-server-side-encryption-customer-algorithm header`. This must
13029
+ # be the same encryption key specified in the initiate multipart
12993
13030
  # upload request.
12994
13031
  # @return [String]
12995
13032
  #