aws-sdk-s3 1.48.0 → 1.183.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 (134) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +1352 -0
  3. data/LICENSE.txt +202 -0
  4. data/VERSION +1 -0
  5. data/lib/aws-sdk-s3/access_grants_credentials.rb +57 -0
  6. data/lib/aws-sdk-s3/access_grants_credentials_provider.rb +250 -0
  7. data/lib/aws-sdk-s3/bucket.rb +1005 -106
  8. data/lib/aws-sdk-s3/bucket_acl.rb +65 -18
  9. data/lib/aws-sdk-s3/bucket_cors.rb +80 -18
  10. data/lib/aws-sdk-s3/bucket_lifecycle.rb +71 -20
  11. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +126 -21
  12. data/lib/aws-sdk-s3/bucket_logging.rb +68 -16
  13. data/lib/aws-sdk-s3/bucket_notification.rb +52 -20
  14. data/lib/aws-sdk-s3/bucket_policy.rb +108 -17
  15. data/lib/aws-sdk-s3/bucket_region_cache.rb +11 -5
  16. data/lib/aws-sdk-s3/bucket_request_payment.rb +60 -15
  17. data/lib/aws-sdk-s3/bucket_tagging.rb +71 -18
  18. data/lib/aws-sdk-s3/bucket_versioning.rb +133 -17
  19. data/lib/aws-sdk-s3/bucket_website.rb +78 -21
  20. data/lib/aws-sdk-s3/client.rb +14517 -941
  21. data/lib/aws-sdk-s3/client_api.rb +1296 -197
  22. data/lib/aws-sdk-s3/customizations/bucket.rb +56 -37
  23. data/lib/aws-sdk-s3/customizations/errors.rb +40 -0
  24. data/lib/aws-sdk-s3/customizations/multipart_upload.rb +2 -0
  25. data/lib/aws-sdk-s3/customizations/object.rb +288 -68
  26. data/lib/aws-sdk-s3/customizations/object_summary.rb +10 -0
  27. data/lib/aws-sdk-s3/customizations/object_version.rb +13 -0
  28. data/lib/aws-sdk-s3/customizations/types/list_object_versions_output.rb +2 -0
  29. data/lib/aws-sdk-s3/customizations/types/permanent_redirect.rb +26 -0
  30. data/lib/aws-sdk-s3/customizations.rb +27 -28
  31. data/lib/aws-sdk-s3/encryption/client.rb +28 -7
  32. data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +71 -29
  33. data/lib/aws-sdk-s3/encryption/default_cipher_provider.rb +43 -5
  34. data/lib/aws-sdk-s3/encryption/default_key_provider.rb +2 -0
  35. data/lib/aws-sdk-s3/encryption/encrypt_handler.rb +13 -2
  36. data/lib/aws-sdk-s3/encryption/errors.rb +2 -0
  37. data/lib/aws-sdk-s3/encryption/io_auth_decrypter.rb +2 -0
  38. data/lib/aws-sdk-s3/encryption/io_decrypter.rb +11 -3
  39. data/lib/aws-sdk-s3/encryption/io_encrypter.rb +2 -0
  40. data/lib/aws-sdk-s3/encryption/key_provider.rb +2 -0
  41. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +46 -11
  42. data/lib/aws-sdk-s3/encryption/materials.rb +8 -6
  43. data/lib/aws-sdk-s3/encryption/utils.rb +25 -0
  44. data/lib/aws-sdk-s3/encryption.rb +4 -0
  45. data/lib/aws-sdk-s3/encryptionV2/client.rb +570 -0
  46. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +223 -0
  47. data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +170 -0
  48. data/lib/aws-sdk-s3/encryptionV2/default_key_provider.rb +40 -0
  49. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +65 -0
  50. data/lib/aws-sdk-s3/encryptionV2/errors.rb +37 -0
  51. data/lib/aws-sdk-s3/encryptionV2/io_auth_decrypter.rb +58 -0
  52. data/lib/aws-sdk-s3/encryptionV2/io_decrypter.rb +37 -0
  53. data/lib/aws-sdk-s3/encryptionV2/io_encrypter.rb +73 -0
  54. data/lib/aws-sdk-s3/encryptionV2/key_provider.rb +31 -0
  55. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +173 -0
  56. data/lib/aws-sdk-s3/encryptionV2/materials.rb +60 -0
  57. data/lib/aws-sdk-s3/encryptionV2/utils.rb +103 -0
  58. data/lib/aws-sdk-s3/encryption_v2.rb +23 -0
  59. data/lib/aws-sdk-s3/endpoint_parameters.rb +181 -0
  60. data/lib/aws-sdk-s3/endpoint_provider.rb +716 -0
  61. data/lib/aws-sdk-s3/endpoints.rb +1434 -0
  62. data/lib/aws-sdk-s3/errors.rb +170 -1
  63. data/lib/aws-sdk-s3/event_streams.rb +8 -1
  64. data/lib/aws-sdk-s3/express_credentials.rb +55 -0
  65. data/lib/aws-sdk-s3/express_credentials_provider.rb +59 -0
  66. data/lib/aws-sdk-s3/file_downloader.rb +161 -46
  67. data/lib/aws-sdk-s3/file_part.rb +11 -6
  68. data/lib/aws-sdk-s3/file_uploader.rb +39 -18
  69. data/lib/aws-sdk-s3/legacy_signer.rb +17 -25
  70. data/lib/aws-sdk-s3/multipart_file_uploader.rb +104 -27
  71. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +61 -21
  72. data/lib/aws-sdk-s3/multipart_upload.rb +342 -32
  73. data/lib/aws-sdk-s3/multipart_upload_error.rb +2 -0
  74. data/lib/aws-sdk-s3/multipart_upload_part.rb +384 -46
  75. data/lib/aws-sdk-s3/object.rb +2600 -231
  76. data/lib/aws-sdk-s3/object_acl.rb +103 -25
  77. data/lib/aws-sdk-s3/object_copier.rb +9 -5
  78. data/lib/aws-sdk-s3/object_multipart_copier.rb +48 -22
  79. data/lib/aws-sdk-s3/object_summary.rb +2174 -204
  80. data/lib/aws-sdk-s3/object_version.rb +539 -80
  81. data/lib/aws-sdk-s3/plugins/accelerate.rb +17 -64
  82. data/lib/aws-sdk-s3/plugins/access_grants.rb +178 -0
  83. data/lib/aws-sdk-s3/plugins/arn.rb +70 -0
  84. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +7 -43
  85. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +20 -3
  86. data/lib/aws-sdk-s3/plugins/checksum_algorithm.rb +31 -0
  87. data/lib/aws-sdk-s3/plugins/dualstack.rb +7 -50
  88. data/lib/aws-sdk-s3/plugins/endpoints.rb +86 -0
  89. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +5 -4
  90. data/lib/aws-sdk-s3/plugins/express_session_auth.rb +88 -0
  91. data/lib/aws-sdk-s3/plugins/get_bucket_location_fix.rb +3 -1
  92. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +62 -17
  93. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +44 -0
  94. data/lib/aws-sdk-s3/plugins/location_constraint.rb +5 -1
  95. data/lib/aws-sdk-s3/plugins/md5s.rb +14 -70
  96. data/lib/aws-sdk-s3/plugins/redirects.rb +2 -0
  97. data/lib/aws-sdk-s3/plugins/s3_host_id.rb +2 -0
  98. data/lib/aws-sdk-s3/plugins/s3_signer.rb +63 -94
  99. data/lib/aws-sdk-s3/plugins/sse_cpk.rb +3 -1
  100. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +139 -0
  101. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -0
  102. data/lib/aws-sdk-s3/presigned_post.rb +160 -99
  103. data/lib/aws-sdk-s3/presigner.rb +141 -62
  104. data/lib/aws-sdk-s3/resource.rb +156 -17
  105. data/lib/aws-sdk-s3/types.rb +13021 -4106
  106. data/lib/aws-sdk-s3/waiters.rb +67 -1
  107. data/lib/aws-sdk-s3.rb +46 -32
  108. data/sig/bucket.rbs +222 -0
  109. data/sig/bucket_acl.rbs +78 -0
  110. data/sig/bucket_cors.rbs +69 -0
  111. data/sig/bucket_lifecycle.rbs +88 -0
  112. data/sig/bucket_lifecycle_configuration.rbs +115 -0
  113. data/sig/bucket_logging.rbs +76 -0
  114. data/sig/bucket_notification.rbs +114 -0
  115. data/sig/bucket_policy.rbs +59 -0
  116. data/sig/bucket_request_payment.rbs +54 -0
  117. data/sig/bucket_tagging.rbs +65 -0
  118. data/sig/bucket_versioning.rbs +77 -0
  119. data/sig/bucket_website.rbs +93 -0
  120. data/sig/client.rbs +2472 -0
  121. data/sig/customizations/bucket.rbs +19 -0
  122. data/sig/customizations/object.rbs +38 -0
  123. data/sig/customizations/object_summary.rbs +35 -0
  124. data/sig/errors.rbs +42 -0
  125. data/sig/multipart_upload.rbs +120 -0
  126. data/sig/multipart_upload_part.rbs +109 -0
  127. data/sig/object.rbs +459 -0
  128. data/sig/object_acl.rbs +86 -0
  129. data/sig/object_summary.rbs +345 -0
  130. data/sig/object_version.rbs +143 -0
  131. data/sig/resource.rbs +134 -0
  132. data/sig/types.rbs +2712 -0
  133. data/sig/waiters.rbs +95 -0
  134. metadata +74 -15
@@ -1,11 +1,14 @@
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:
4
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
5
7
  #
6
8
  # WARNING ABOUT GENERATED CODE
7
9
 
8
10
  module Aws::S3
11
+
9
12
  class MultipartUploadPart
10
13
 
11
14
  extend Aws::Deprecations
@@ -30,6 +33,7 @@ module Aws::S3
30
33
  @part_number = extract_part_number(args, options)
31
34
  @data = options.delete(:data)
32
35
  @client = options.delete(:client) || Client.new(options)
36
+ @waiter_block_warned = false
33
37
  end
34
38
 
35
39
  # @!group Read-Only Attributes
@@ -72,6 +76,73 @@ module Aws::S3
72
76
  data[:size]
73
77
  end
74
78
 
79
+ # The Base64 encoded, 32-bit `CRC32` checksum of the part. This checksum
80
+ # is present if the object was uploaded with the `CRC32` checksum
81
+ # algorithm. For more information, see [Checking object integrity][1] in
82
+ # the *Amazon S3 User Guide*.
83
+ #
84
+ #
85
+ #
86
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
87
+ # @return [String]
88
+ def checksum_crc32
89
+ data[:checksum_crc32]
90
+ end
91
+
92
+ # The Base64 encoded, 32-bit `CRC32C` checksum of the part. This
93
+ # checksum is present if the object was uploaded with the `CRC32C`
94
+ # checksum algorithm. For more information, see [Checking object
95
+ # integrity][1] in the *Amazon S3 User Guide*.
96
+ #
97
+ #
98
+ #
99
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
100
+ # @return [String]
101
+ def checksum_crc32c
102
+ data[:checksum_crc32c]
103
+ end
104
+
105
+ # The Base64 encoded, 64-bit `CRC64NVME` checksum of the part. This
106
+ # checksum is present if the multipart upload request was created with
107
+ # the `CRC64NVME` checksum algorithm, or if the object was uploaded
108
+ # without a checksum (and Amazon S3 added the default checksum,
109
+ # `CRC64NVME`, to the uploaded object). For more information, see
110
+ # [Checking object integrity][1] in the *Amazon S3 User Guide*.
111
+ #
112
+ #
113
+ #
114
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
115
+ # @return [String]
116
+ def checksum_crc64nvme
117
+ data[:checksum_crc64nvme]
118
+ end
119
+
120
+ # The Base64 encoded, 160-bit `SHA1` checksum of the part. This checksum
121
+ # is present if the object was uploaded with the `SHA1` checksum
122
+ # algorithm. For more information, see [Checking object integrity][1] in
123
+ # the *Amazon S3 User Guide*.
124
+ #
125
+ #
126
+ #
127
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
128
+ # @return [String]
129
+ def checksum_sha1
130
+ data[:checksum_sha1]
131
+ end
132
+
133
+ # The Base64 encoded, 256-bit `SHA256` checksum of the part. This
134
+ # checksum is present if the object was uploaded with the `SHA256`
135
+ # checksum algorithm. For more information, see [Checking object
136
+ # integrity][1] in the *Amazon S3 User Guide*.
137
+ #
138
+ #
139
+ #
140
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
141
+ # @return [String]
142
+ def checksum_sha256
143
+ data[:checksum_sha256]
144
+ end
145
+
75
146
  # @!endgroup
76
147
 
77
148
  # @return [Client]
@@ -107,7 +178,8 @@ module Aws::S3
107
178
  # Waiter polls an API operation until a resource enters a desired
108
179
  # state.
109
180
  #
110
- # @note The waiting operation is performed on a copy. The original resource remains unchanged
181
+ # @note The waiting operation is performed on a copy. The original resource
182
+ # remains unchanged.
111
183
  #
112
184
  # ## Basic Usage
113
185
  #
@@ -120,13 +192,15 @@ module Aws::S3
120
192
  #
121
193
  # ## Example
122
194
  #
123
- # instance.wait_until(max_attempts:10, delay:5) {|instance| instance.state.name == 'running' }
195
+ # instance.wait_until(max_attempts:10, delay:5) do |instance|
196
+ # instance.state.name == 'running'
197
+ # end
124
198
  #
125
199
  # ## Configuration
126
200
  #
127
201
  # You can configure the maximum number of polling attempts, and the
128
- # delay (in seconds) between each polling attempt. The waiting condition is set
129
- # by passing a block to {#wait_until}:
202
+ # delay (in seconds) between each polling attempt. The waiting condition is
203
+ # set by passing a block to {#wait_until}:
130
204
  #
131
205
  # # poll for ~25 seconds
132
206
  # resource.wait_until(max_attempts:5,delay:5) {|resource|...}
@@ -157,17 +231,16 @@ module Aws::S3
157
231
  # # resource did not enter the desired state in time
158
232
  # end
159
233
  #
234
+ # @yieldparam [Resource] resource to be used in the waiting condition.
160
235
  #
161
- # @yield param [Resource] resource to be used in the waiting condition
162
- #
163
- # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter terminates
164
- # because the waiter has entered a state that it will not transition
165
- # out of, preventing success.
236
+ # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter
237
+ # terminates because the waiter has entered a state that it will not
238
+ # transition out of, preventing success.
166
239
  #
167
240
  # yet successful.
168
241
  #
169
- # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is encountered
170
- # while polling for a resource that is not expected.
242
+ # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is
243
+ # encountered while polling for a resource that is not expected.
171
244
  #
172
245
  # @raise [NotImplementedError] Raised when the resource does not
173
246
  #
@@ -194,7 +267,9 @@ module Aws::S3
194
267
  :retry
195
268
  end
196
269
  end
197
- Aws::Waiters::Waiter.new(options).wait({})
270
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
271
+ Aws::Waiters::Waiter.new(options).wait({})
272
+ end
198
273
  end
199
274
 
200
275
  # @!group Actions
@@ -215,59 +290,213 @@ module Aws::S3
215
290
  # copy_source_sse_customer_key: "CopySourceSSECustomerKey",
216
291
  # copy_source_sse_customer_key_md5: "CopySourceSSECustomerKeyMD5",
217
292
  # request_payer: "requester", # accepts requester
293
+ # expected_bucket_owner: "AccountId",
294
+ # expected_source_bucket_owner: "AccountId",
218
295
  # })
219
296
  # @param [Hash] options ({})
220
297
  # @option options [required, String] :copy_source
221
- # The name of the source bucket and key name of the source object,
222
- # separated by a slash (/). Must be URL-encoded.
298
+ # Specifies the source object for the copy operation. You specify the
299
+ # value in one of two formats, depending on whether you want to access
300
+ # the source object through an [access point][1]:
301
+ #
302
+ # * For objects not accessed through an access point, specify the name
303
+ # of the source bucket and key of the source object, separated by a
304
+ # slash (/). For example, to copy the object `reports/january.pdf`
305
+ # from the bucket `awsexamplebucket`, use
306
+ # `awsexamplebucket/reports/january.pdf`. The value must be
307
+ # URL-encoded.
308
+ #
309
+ # * For objects accessed through access points, specify the Amazon
310
+ # Resource Name (ARN) of the object as accessed through the access
311
+ # point, in the format
312
+ # `arn:aws:s3:<Region>:<account-id>:accesspoint/<access-point-name>/object/<key>`.
313
+ # For example, to copy the object `reports/january.pdf` through access
314
+ # point `my-access-point` owned by account `123456789012` in Region
315
+ # `us-west-2`, use the URL encoding of
316
+ # `arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf`.
317
+ # The value must be URL encoded.
318
+ #
319
+ # <note markdown="1"> * Amazon S3 supports copy operations using Access points only when
320
+ # the source and destination buckets are in the same Amazon Web
321
+ # Services Region.
322
+ #
323
+ # * Access points are not supported by directory buckets.
324
+ #
325
+ # </note>
326
+ #
327
+ # Alternatively, for objects accessed through Amazon S3 on Outposts,
328
+ # specify the ARN of the object as accessed in the format
329
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/object/<key>`.
330
+ # For example, to copy the object `reports/january.pdf` through
331
+ # outpost `my-outpost` owned by account `123456789012` in Region
332
+ # `us-west-2`, use the URL encoding of
333
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
334
+ # The value must be URL-encoded.
335
+ #
336
+ # If your bucket has versioning enabled, you could have multiple
337
+ # versions of the same object. By default, `x-amz-copy-source`
338
+ # identifies the current version of the source object to copy. To copy a
339
+ # specific version of the source object to copy, append
340
+ # `?versionId=<version-id>` to the `x-amz-copy-source` request header
341
+ # (for example, `x-amz-copy-source:
342
+ # /awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
343
+ #
344
+ # If the current version is a delete marker and you don't specify a
345
+ # versionId in the `x-amz-copy-source` request header, Amazon S3 returns
346
+ # a `404 Not Found` error, because the object does not exist. If you
347
+ # specify versionId in the `x-amz-copy-source` and the versionId is a
348
+ # delete marker, Amazon S3 returns an HTTP `400 Bad Request` error,
349
+ # because you are not allowed to specify a delete marker as a version
350
+ # for the `x-amz-copy-source`.
351
+ #
352
+ # <note markdown="1"> **Directory buckets** - S3 Versioning isn't enabled and supported for
353
+ # directory buckets.
354
+ #
355
+ # </note>
356
+ #
357
+ #
358
+ #
359
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html
223
360
  # @option options [String] :copy_source_if_match
224
361
  # Copies the object if its entity tag (ETag) matches the specified tag.
362
+ #
363
+ # If both of the `x-amz-copy-source-if-match` and
364
+ # `x-amz-copy-source-if-unmodified-since` headers are present in the
365
+ # request as follows:
366
+ #
367
+ # `x-amz-copy-source-if-match` condition evaluates to `true`, and;
368
+ #
369
+ # `x-amz-copy-source-if-unmodified-since` condition evaluates to
370
+ # `false`;
371
+ #
372
+ # Amazon S3 returns `200 OK` and copies the data.
225
373
  # @option options [Time,DateTime,Date,Integer,String] :copy_source_if_modified_since
226
374
  # Copies the object if it has been modified since the specified time.
375
+ #
376
+ # If both of the `x-amz-copy-source-if-none-match` and
377
+ # `x-amz-copy-source-if-modified-since` headers are present in the
378
+ # request as follows:
379
+ #
380
+ # `x-amz-copy-source-if-none-match` condition evaluates to `false`, and;
381
+ #
382
+ # `x-amz-copy-source-if-modified-since` condition evaluates to `true`;
383
+ #
384
+ # Amazon S3 returns `412 Precondition Failed` response code.
227
385
  # @option options [String] :copy_source_if_none_match
228
386
  # Copies the object if its entity tag (ETag) is different than the
229
387
  # specified ETag.
388
+ #
389
+ # If both of the `x-amz-copy-source-if-none-match` and
390
+ # `x-amz-copy-source-if-modified-since` headers are present in the
391
+ # request as follows:
392
+ #
393
+ # `x-amz-copy-source-if-none-match` condition evaluates to `false`, and;
394
+ #
395
+ # `x-amz-copy-source-if-modified-since` condition evaluates to `true`;
396
+ #
397
+ # Amazon S3 returns `412 Precondition Failed` response code.
230
398
  # @option options [Time,DateTime,Date,Integer,String] :copy_source_if_unmodified_since
231
399
  # Copies the object if it hasn't been modified since the specified
232
400
  # time.
401
+ #
402
+ # If both of the `x-amz-copy-source-if-match` and
403
+ # `x-amz-copy-source-if-unmodified-since` headers are present in the
404
+ # request as follows:
405
+ #
406
+ # `x-amz-copy-source-if-match` condition evaluates to `true`, and;
407
+ #
408
+ # `x-amz-copy-source-if-unmodified-since` condition evaluates to
409
+ # `false`;
410
+ #
411
+ # Amazon S3 returns `200 OK` and copies the data.
233
412
  # @option options [String] :copy_source_range
234
413
  # The range of bytes to copy from the source object. The range value
235
414
  # must use the form bytes=first-last, where the first and last are the
236
415
  # zero-based byte offsets to copy. For example, bytes=0-9 indicates that
237
- # you want to copy the first ten bytes of the source. You can copy a
416
+ # you want to copy the first 10 bytes of the source. You can copy a
238
417
  # range only if the source object is greater than 5 MB.
239
418
  # @option options [String] :sse_customer_algorithm
240
- # Specifies the algorithm to use to when encrypting the object (e.g.,
241
- # AES256).
419
+ # Specifies the algorithm to use when encrypting the object (for
420
+ # example, AES256).
421
+ #
422
+ # <note markdown="1"> This functionality is not supported when the destination bucket is a
423
+ # directory bucket.
424
+ #
425
+ # </note>
242
426
  # @option options [String] :sse_customer_key
243
427
  # Specifies the customer-provided encryption key for Amazon S3 to use in
244
428
  # encrypting data. This value is used to store the object and then it is
245
- # discarded; Amazon does not store the encryption key. The key must be
246
- # appropriate for use with the algorithm specified in the
247
- # x-amz-server-side​-encryption​-customer-algorithm header. This must be
429
+ # discarded; Amazon S3 does not store the encryption key. The key must
430
+ # be appropriate for use with the algorithm specified in the
431
+ # `x-amz-server-side-encryption-customer-algorithm` header. This must be
248
432
  # the same encryption key specified in the initiate multipart upload
249
433
  # request.
434
+ #
435
+ # <note markdown="1"> This functionality is not supported when the destination bucket is a
436
+ # directory bucket.
437
+ #
438
+ # </note>
250
439
  # @option options [String] :sse_customer_key_md5
251
440
  # Specifies the 128-bit MD5 digest of the encryption key according to
252
441
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
253
- # ensure the encryption key was transmitted without error.
442
+ # ensure that the encryption key was transmitted without error.
443
+ #
444
+ # <note markdown="1"> This functionality is not supported when the destination bucket is a
445
+ # directory bucket.
446
+ #
447
+ # </note>
254
448
  # @option options [String] :copy_source_sse_customer_algorithm
255
- # Specifies the algorithm to use when decrypting the source object
256
- # (e.g., AES256).
449
+ # Specifies the algorithm to use when decrypting the source object (for
450
+ # example, `AES256`).
451
+ #
452
+ # <note markdown="1"> This functionality is not supported when the source object is in a
453
+ # directory bucket.
454
+ #
455
+ # </note>
257
456
  # @option options [String] :copy_source_sse_customer_key
258
457
  # Specifies the customer-provided encryption key for Amazon S3 to use to
259
458
  # decrypt the source object. The encryption key provided in this header
260
459
  # must be one that was used when the source object was created.
460
+ #
461
+ # <note markdown="1"> This functionality is not supported when the source object is in a
462
+ # directory bucket.
463
+ #
464
+ # </note>
261
465
  # @option options [String] :copy_source_sse_customer_key_md5
262
466
  # Specifies the 128-bit MD5 digest of the encryption key according to
263
467
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
264
- # ensure the encryption key was transmitted without error.
468
+ # ensure that the encryption key was transmitted without error.
469
+ #
470
+ # <note markdown="1"> This functionality is not supported when the source object is in a
471
+ # directory bucket.
472
+ #
473
+ # </note>
265
474
  # @option options [String] :request_payer
266
- # Confirms that the requester knows that she or he will be charged for
267
- # the request. Bucket owners need not specify this parameter in their
268
- # requests. Documentation on downloading objects from requester pays
269
- # buckets can be found at
270
- # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
475
+ # Confirms that the requester knows that they will be charged for the
476
+ # request. Bucket owners need not specify this parameter in their
477
+ # requests. If either the source or destination S3 bucket has Requester
478
+ # Pays enabled, the requester will pay for corresponding charges to copy
479
+ # the object. For information about downloading objects from Requester
480
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
481
+ # in the *Amazon S3 User Guide*.
482
+ #
483
+ # <note markdown="1"> This functionality is not supported for directory buckets.
484
+ #
485
+ # </note>
486
+ #
487
+ #
488
+ #
489
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
490
+ # @option options [String] :expected_bucket_owner
491
+ # The account ID of the expected destination bucket owner. If the
492
+ # account ID that you provide does not match the actual owner of the
493
+ # destination bucket, the request fails with the HTTP status code `403
494
+ # Forbidden` (access denied).
495
+ # @option options [String] :expected_source_bucket_owner
496
+ # The account ID of the expected source bucket owner. If the account ID
497
+ # that you provide does not match the actual owner of the source bucket,
498
+ # the request fails with the HTTP status code `403 Forbidden` (access
499
+ # denied).
271
500
  # @return [Types::UploadPartCopyOutput]
272
501
  def copy_from(options = {})
273
502
  options = options.merge(
@@ -276,7 +505,9 @@ module Aws::S3
276
505
  upload_id: @multipart_upload_id,
277
506
  part_number: @part_number
278
507
  )
279
- resp = @client.upload_part_copy(options)
508
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
509
+ @client.upload_part_copy(options)
510
+ end
280
511
  resp.data
281
512
  end
282
513
 
@@ -286,42 +517,147 @@ module Aws::S3
286
517
  # body: source_file,
287
518
  # content_length: 1,
288
519
  # content_md5: "ContentMD5",
520
+ # checksum_algorithm: "CRC32", # accepts CRC32, CRC32C, SHA1, SHA256, CRC64NVME
521
+ # checksum_crc32: "ChecksumCRC32",
522
+ # checksum_crc32c: "ChecksumCRC32C",
523
+ # checksum_crc64nvme: "ChecksumCRC64NVME",
524
+ # checksum_sha1: "ChecksumSHA1",
525
+ # checksum_sha256: "ChecksumSHA256",
289
526
  # sse_customer_algorithm: "SSECustomerAlgorithm",
290
527
  # sse_customer_key: "SSECustomerKey",
291
528
  # sse_customer_key_md5: "SSECustomerKeyMD5",
292
529
  # request_payer: "requester", # accepts requester
530
+ # expected_bucket_owner: "AccountId",
293
531
  # })
294
532
  # @param [Hash] options ({})
295
- # @option options [String, IO] :body
533
+ # @option options [String, StringIO, File] :body
296
534
  # Object data.
297
535
  # @option options [Integer] :content_length
298
536
  # Size of the body in bytes. This parameter is useful when the size of
299
537
  # the body cannot be determined automatically.
300
538
  # @option options [String] :content_md5
301
- # The base64-encoded 128-bit MD5 digest of the part data. This parameter
302
- # is auto-populated when using the command from the CLI. This parameted
539
+ # The Base64 encoded 128-bit MD5 digest of the part data. This parameter
540
+ # is auto-populated when using the command from the CLI. This parameter
303
541
  # is required if object lock parameters are specified.
542
+ #
543
+ # <note markdown="1"> This functionality is not supported for directory buckets.
544
+ #
545
+ # </note>
546
+ # @option options [String] :checksum_algorithm
547
+ # Indicates the algorithm used to create the checksum for the object
548
+ # when you use the SDK. This header will not provide any additional
549
+ # functionality if you don't use the SDK. When you send this header,
550
+ # there must be a corresponding `x-amz-checksum` or `x-amz-trailer`
551
+ # header sent. Otherwise, Amazon S3 fails the request with the HTTP
552
+ # status code `400 Bad Request`. For more information, see [Checking
553
+ # object integrity][1] in the *Amazon S3 User Guide*.
554
+ #
555
+ # If you provide an individual checksum, Amazon S3 ignores any provided
556
+ # `ChecksumAlgorithm` parameter.
557
+ #
558
+ # This checksum algorithm must be the same for all parts and it match
559
+ # the checksum value supplied in the `CreateMultipartUpload` request.
560
+ #
561
+ #
562
+ #
563
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
564
+ # @option options [String] :checksum_crc32
565
+ # This header can be used as a data integrity check to verify that the
566
+ # data received is the same data that was originally sent. This header
567
+ # specifies the Base64 encoded, 32-bit `CRC32` checksum of the object.
568
+ # For more information, see [Checking object integrity][1] in the
569
+ # *Amazon S3 User Guide*.
570
+ #
571
+ #
572
+ #
573
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
574
+ # @option options [String] :checksum_crc32c
575
+ # This header can be used as a data integrity check to verify that the
576
+ # data received is the same data that was originally sent. This header
577
+ # specifies the Base64 encoded, 32-bit `CRC32C` checksum of the object.
578
+ # For more information, see [Checking object integrity][1] in the
579
+ # *Amazon S3 User Guide*.
580
+ #
581
+ #
582
+ #
583
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
584
+ # @option options [String] :checksum_crc64nvme
585
+ # This header can be used as a data integrity check to verify that the
586
+ # data received is the same data that was originally sent. This header
587
+ # specifies the Base64 encoded, 64-bit `CRC64NVME` checksum of the part.
588
+ # For more information, see [Checking object integrity][1] in the
589
+ # *Amazon S3 User Guide*.
590
+ #
591
+ #
592
+ #
593
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
594
+ # @option options [String] :checksum_sha1
595
+ # This header can be used as a data integrity check to verify that the
596
+ # data received is the same data that was originally sent. This header
597
+ # specifies the Base64 encoded, 160-bit `SHA1` digest of the object. For
598
+ # more information, see [Checking object integrity][1] in the *Amazon S3
599
+ # User Guide*.
600
+ #
601
+ #
602
+ #
603
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
604
+ # @option options [String] :checksum_sha256
605
+ # This header can be used as a data integrity check to verify that the
606
+ # data received is the same data that was originally sent. This header
607
+ # specifies the Base64 encoded, 256-bit `SHA256` digest of the object.
608
+ # For more information, see [Checking object integrity][1] in the
609
+ # *Amazon S3 User Guide*.
610
+ #
611
+ #
612
+ #
613
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
304
614
  # @option options [String] :sse_customer_algorithm
305
- # Specifies the algorithm to use to when encrypting the object (e.g.,
306
- # AES256).
615
+ # Specifies the algorithm to use when encrypting the object (for
616
+ # example, AES256).
617
+ #
618
+ # <note markdown="1"> This functionality is not supported for directory buckets.
619
+ #
620
+ # </note>
307
621
  # @option options [String] :sse_customer_key
308
622
  # Specifies the customer-provided encryption key for Amazon S3 to use in
309
623
  # encrypting data. This value is used to store the object and then it is
310
- # discarded; Amazon does not store the encryption key. The key must be
311
- # appropriate for use with the algorithm specified in the
312
- # x-amz-server-side​-encryption​-customer-algorithm header. This must be
624
+ # discarded; Amazon S3 does not store the encryption key. The key must
625
+ # be appropriate for use with the algorithm specified in the
626
+ # `x-amz-server-side-encryption-customer-algorithm header`. This must be
313
627
  # the same encryption key specified in the initiate multipart upload
314
628
  # request.
629
+ #
630
+ # <note markdown="1"> This functionality is not supported for directory buckets.
631
+ #
632
+ # </note>
315
633
  # @option options [String] :sse_customer_key_md5
316
634
  # Specifies the 128-bit MD5 digest of the encryption key according to
317
635
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
318
- # ensure the encryption key was transmitted without error.
636
+ # ensure that the encryption key was transmitted without error.
637
+ #
638
+ # <note markdown="1"> This functionality is not supported for directory buckets.
639
+ #
640
+ # </note>
319
641
  # @option options [String] :request_payer
320
- # Confirms that the requester knows that she or he will be charged for
321
- # the request. Bucket owners need not specify this parameter in their
322
- # requests. Documentation on downloading objects from requester pays
323
- # buckets can be found at
324
- # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
642
+ # Confirms that the requester knows that they will be charged for the
643
+ # request. Bucket owners need not specify this parameter in their
644
+ # requests. If either the source or destination S3 bucket has Requester
645
+ # Pays enabled, the requester will pay for corresponding charges to copy
646
+ # the object. For information about downloading objects from Requester
647
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
648
+ # in the *Amazon S3 User Guide*.
649
+ #
650
+ # <note markdown="1"> This functionality is not supported for directory buckets.
651
+ #
652
+ # </note>
653
+ #
654
+ #
655
+ #
656
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
657
+ # @option options [String] :expected_bucket_owner
658
+ # The account ID of the expected bucket owner. If the account ID that
659
+ # you provide does not match the actual owner of the bucket, the request
660
+ # fails with the HTTP status code `403 Forbidden` (access denied).
325
661
  # @return [Types::UploadPartOutput]
326
662
  def upload(options = {})
327
663
  options = options.merge(
@@ -330,7 +666,9 @@ module Aws::S3
330
666
  upload_id: @multipart_upload_id,
331
667
  part_number: @part_number
332
668
  )
333
- resp = @client.upload_part(options)
669
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
670
+ @client.upload_part(options)
671
+ end
334
672
  resp.data
335
673
  end
336
674