aws-sdk-s3 1.75.0 → 1.76.0

Sign up to get free protection for your applications and to get access to all the features.
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
  #