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 MultipartUpload
10
13
 
11
14
  extend Aws::Deprecations
@@ -27,6 +30,7 @@ module Aws::S3
27
30
  @id = extract_id(args, options)
28
31
  @data = options.delete(:data)
29
32
  @client = options.delete(:client) || Client.new(options)
33
+ @waiter_block_warned = false
30
34
  end
31
35
 
32
36
  # @!group Read-Only Attributes
@@ -65,12 +69,25 @@ module Aws::S3
65
69
  end
66
70
 
67
71
  # The class of storage used to store the object.
72
+ #
73
+ # <note markdown="1"> **Directory buckets** - Directory buckets only support
74
+ # `EXPRESS_ONEZONE` (the S3 Express One Zone storage class) in
75
+ # Availability Zones and `ONEZONE_IA` (the S3 One Zone-Infrequent Access
76
+ # storage class) in Dedicated Local Zones.
77
+ #
78
+ # </note>
68
79
  # @return [String]
69
80
  def storage_class
70
81
  data[:storage_class]
71
82
  end
72
83
 
73
-
84
+ # Specifies the owner of the object that is part of the multipart
85
+ # upload.
86
+ #
87
+ # <note markdown="1"> **Directory buckets** - The bucket owner is returned as the object
88
+ # owner for all the objects.
89
+ #
90
+ # </note>
74
91
  # @return [Types::Owner]
75
92
  def owner
76
93
  data[:owner]
@@ -82,6 +99,24 @@ module Aws::S3
82
99
  data[:initiator]
83
100
  end
84
101
 
102
+ # The algorithm that was used to create a checksum of the object.
103
+ # @return [String]
104
+ def checksum_algorithm
105
+ data[:checksum_algorithm]
106
+ end
107
+
108
+ # The checksum type that is used to calculate the object’s checksum
109
+ # value. For more information, see [Checking object integrity][1] in the
110
+ # *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_type
117
+ data[:checksum_type]
118
+ end
119
+
85
120
  # @!endgroup
86
121
 
87
122
  # @return [Client]
@@ -117,7 +152,8 @@ module Aws::S3
117
152
  # Waiter polls an API operation until a resource enters a desired
118
153
  # state.
119
154
  #
120
- # @note The waiting operation is performed on a copy. The original resource remains unchanged
155
+ # @note The waiting operation is performed on a copy. The original resource
156
+ # remains unchanged.
121
157
  #
122
158
  # ## Basic Usage
123
159
  #
@@ -130,13 +166,15 @@ module Aws::S3
130
166
  #
131
167
  # ## Example
132
168
  #
133
- # instance.wait_until(max_attempts:10, delay:5) {|instance| instance.state.name == 'running' }
169
+ # instance.wait_until(max_attempts:10, delay:5) do |instance|
170
+ # instance.state.name == 'running'
171
+ # end
134
172
  #
135
173
  # ## Configuration
136
174
  #
137
175
  # You can configure the maximum number of polling attempts, and the
138
- # delay (in seconds) between each polling attempt. The waiting condition is set
139
- # by passing a block to {#wait_until}:
176
+ # delay (in seconds) between each polling attempt. The waiting condition is
177
+ # set by passing a block to {#wait_until}:
140
178
  #
141
179
  # # poll for ~25 seconds
142
180
  # resource.wait_until(max_attempts:5,delay:5) {|resource|...}
@@ -167,17 +205,16 @@ module Aws::S3
167
205
  # # resource did not enter the desired state in time
168
206
  # end
169
207
  #
208
+ # @yieldparam [Resource] resource to be used in the waiting condition.
170
209
  #
171
- # @yield param [Resource] resource to be used in the waiting condition
172
- #
173
- # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter terminates
174
- # because the waiter has entered a state that it will not transition
175
- # out of, preventing success.
210
+ # @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter
211
+ # terminates because the waiter has entered a state that it will not
212
+ # transition out of, preventing success.
176
213
  #
177
214
  # yet successful.
178
215
  #
179
- # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is encountered
180
- # while polling for a resource that is not expected.
216
+ # @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is
217
+ # encountered while polling for a resource that is not expected.
181
218
  #
182
219
  # @raise [NotImplementedError] Raised when the resource does not
183
220
  #
@@ -204,7 +241,9 @@ module Aws::S3
204
241
  :retry
205
242
  end
206
243
  end
207
- Aws::Waiters::Waiter.new(options).wait({})
244
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
245
+ Aws::Waiters::Waiter.new(options).wait({})
246
+ end
208
247
  end
209
248
 
210
249
  # @!group Actions
@@ -213,14 +252,41 @@ module Aws::S3
213
252
  #
214
253
  # multipart_upload.abort({
215
254
  # request_payer: "requester", # accepts requester
255
+ # expected_bucket_owner: "AccountId",
256
+ # if_match_initiated_time: Time.now,
216
257
  # })
217
258
  # @param [Hash] options ({})
218
259
  # @option options [String] :request_payer
219
- # Confirms that the requester knows that she or he will be charged for
220
- # the request. Bucket owners need not specify this parameter in their
221
- # requests. Documentation on downloading objects from requester pays
222
- # buckets can be found at
223
- # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
260
+ # Confirms that the requester knows that they will be charged for the
261
+ # request. Bucket owners need not specify this parameter in their
262
+ # requests. If either the source or destination S3 bucket has Requester
263
+ # Pays enabled, the requester will pay for corresponding charges to copy
264
+ # the object. For information about downloading objects from Requester
265
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
266
+ # in the *Amazon S3 User Guide*.
267
+ #
268
+ # <note markdown="1"> This functionality is not supported for directory buckets.
269
+ #
270
+ # </note>
271
+ #
272
+ #
273
+ #
274
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
275
+ # @option options [String] :expected_bucket_owner
276
+ # The account ID of the expected bucket owner. If the account ID that
277
+ # you provide does not match the actual owner of the bucket, the request
278
+ # fails with the HTTP status code `403 Forbidden` (access denied).
279
+ # @option options [Time,DateTime,Date,Integer,String] :if_match_initiated_time
280
+ # If present, this header aborts an in progress multipart upload only if
281
+ # it was initiated on the provided timestamp. If the initiated timestamp
282
+ # of the multipart upload does not match the provided value, the
283
+ # operation returns a `412 Precondition Failed` error. If the initiated
284
+ # timestamp matches or if the multipart upload doesn’t exist, the
285
+ # operation returns a `204 Success (No Content)` response.
286
+ #
287
+ # <note markdown="1"> This functionality is only supported for directory buckets.
288
+ #
289
+ # </note>
224
290
  # @return [Types::AbortMultipartUploadOutput]
225
291
  def abort(options = {})
226
292
  options = options.merge(
@@ -228,7 +294,9 @@ module Aws::S3
228
294
  key: @object_key,
229
295
  upload_id: @id
230
296
  )
231
- resp = @client.abort_multipart_upload(options)
297
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
298
+ @client.abort_multipart_upload(options)
299
+ end
232
300
  resp.data
233
301
  end
234
302
 
@@ -239,20 +307,198 @@ module Aws::S3
239
307
  # parts: [
240
308
  # {
241
309
  # etag: "ETag",
310
+ # checksum_crc32: "ChecksumCRC32",
311
+ # checksum_crc32c: "ChecksumCRC32C",
312
+ # checksum_crc64nvme: "ChecksumCRC64NVME",
313
+ # checksum_sha1: "ChecksumSHA1",
314
+ # checksum_sha256: "ChecksumSHA256",
242
315
  # part_number: 1,
243
316
  # },
244
317
  # ],
245
318
  # },
319
+ # checksum_crc32: "ChecksumCRC32",
320
+ # checksum_crc32c: "ChecksumCRC32C",
321
+ # checksum_crc64nvme: "ChecksumCRC64NVME",
322
+ # checksum_sha1: "ChecksumSHA1",
323
+ # checksum_sha256: "ChecksumSHA256",
324
+ # checksum_type: "COMPOSITE", # accepts COMPOSITE, FULL_OBJECT
325
+ # mpu_object_size: 1,
246
326
  # request_payer: "requester", # accepts requester
327
+ # expected_bucket_owner: "AccountId",
328
+ # if_match: "IfMatch",
329
+ # if_none_match: "IfNoneMatch",
330
+ # sse_customer_algorithm: "SSECustomerAlgorithm",
331
+ # sse_customer_key: "SSECustomerKey",
332
+ # sse_customer_key_md5: "SSECustomerKeyMD5",
247
333
  # })
248
334
  # @param [Hash] options ({})
249
335
  # @option options [Types::CompletedMultipartUpload] :multipart_upload
336
+ # The container for the multipart upload request information.
337
+ # @option options [String] :checksum_crc32
338
+ # This header can be used as a data integrity check to verify that the
339
+ # data received is the same data that was originally sent. This header
340
+ # specifies the Base64 encoded, 32-bit `CRC32` checksum of the object.
341
+ # For more information, see [Checking object integrity][1] in the
342
+ # *Amazon S3 User Guide*.
343
+ #
344
+ #
345
+ #
346
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
347
+ # @option options [String] :checksum_crc32c
348
+ # This header can be used as a data integrity check to verify that the
349
+ # data received is the same data that was originally sent. This header
350
+ # specifies the Base64 encoded, 32-bit `CRC32C` checksum of the object.
351
+ # For more information, see [Checking object integrity][1] in the
352
+ # *Amazon S3 User Guide*.
353
+ #
354
+ #
355
+ #
356
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
357
+ # @option options [String] :checksum_crc64nvme
358
+ # This header can be used as a data integrity check to verify that the
359
+ # data received is the same data that was originally sent. This header
360
+ # specifies the Base64 encoded, 64-bit `CRC64NVME` checksum of the
361
+ # object. The `CRC64NVME` checksum is always a full object checksum. For
362
+ # more information, see [Checking object integrity in the Amazon S3 User
363
+ # Guide][1].
364
+ #
365
+ #
366
+ #
367
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
368
+ # @option options [String] :checksum_sha1
369
+ # This header can be used as a data integrity check to verify that the
370
+ # data received is the same data that was originally sent. This header
371
+ # specifies the Base64 encoded, 160-bit `SHA1` digest of the object. For
372
+ # more information, see [Checking object integrity][1] in the *Amazon S3
373
+ # User Guide*.
374
+ #
375
+ #
376
+ #
377
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
378
+ # @option options [String] :checksum_sha256
379
+ # This header can be used as a data integrity check to verify that the
380
+ # data received is the same data that was originally sent. This header
381
+ # specifies the Base64 encoded, 256-bit `SHA256` digest of the object.
382
+ # For more information, see [Checking object integrity][1] in the
383
+ # *Amazon S3 User Guide*.
384
+ #
385
+ #
386
+ #
387
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html
388
+ # @option options [String] :checksum_type
389
+ # This header specifies the checksum type of the object, which
390
+ # determines how part-level checksums are combined to create an
391
+ # object-level checksum for multipart objects. You can use this header
392
+ # as a data integrity check to verify that the checksum type that is
393
+ # received is the same checksum that was specified. If the checksum type
394
+ # doesn’t match the checksum type that was specified for the object
395
+ # during the `CreateMultipartUpload` request, it’ll result in a
396
+ # `BadDigest` error. For more information, see Checking object integrity
397
+ # in the Amazon S3 User Guide.
398
+ # @option options [Integer] :mpu_object_size
399
+ # The expected total object size of the multipart upload request. If
400
+ # there’s a mismatch between the specified object size value and the
401
+ # actual object size value, it results in an `HTTP 400 InvalidRequest`
402
+ # error.
250
403
  # @option options [String] :request_payer
251
- # Confirms that the requester knows that she or he will be charged for
252
- # the request. Bucket owners need not specify this parameter in their
253
- # requests. Documentation on downloading objects from requester pays
254
- # buckets can be found at
255
- # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
404
+ # Confirms that the requester knows that they will be charged for the
405
+ # request. Bucket owners need not specify this parameter in their
406
+ # requests. If either the source or destination S3 bucket has Requester
407
+ # Pays enabled, the requester will pay for corresponding charges to copy
408
+ # the object. For information about downloading objects from Requester
409
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
410
+ # in the *Amazon S3 User Guide*.
411
+ #
412
+ # <note markdown="1"> This functionality is not supported for directory buckets.
413
+ #
414
+ # </note>
415
+ #
416
+ #
417
+ #
418
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
419
+ # @option options [String] :expected_bucket_owner
420
+ # The account ID of the expected bucket owner. If the account ID that
421
+ # you provide does not match the actual owner of the bucket, the request
422
+ # fails with the HTTP status code `403 Forbidden` (access denied).
423
+ # @option options [String] :if_match
424
+ # Uploads the object only if the ETag (entity tag) value provided during
425
+ # the WRITE operation matches the ETag of the object in S3. If the ETag
426
+ # values do not match, the operation returns a `412 Precondition Failed`
427
+ # error.
428
+ #
429
+ # If a conflicting operation occurs during the upload S3 returns a `409
430
+ # ConditionalRequestConflict` response. On a 409 failure you should
431
+ # fetch the object's ETag, re-initiate the multipart upload with
432
+ # `CreateMultipartUpload`, and re-upload each part.
433
+ #
434
+ # Expects the ETag value as a string.
435
+ #
436
+ # For more information about conditional requests, see [RFC 7232][1], or
437
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
438
+ #
439
+ #
440
+ #
441
+ # [1]: https://tools.ietf.org/html/rfc7232
442
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
443
+ # @option options [String] :if_none_match
444
+ # Uploads the object only if the object key name does not already exist
445
+ # in the bucket specified. Otherwise, Amazon S3 returns a `412
446
+ # Precondition Failed` error.
447
+ #
448
+ # If a conflicting operation occurs during the upload S3 returns a `409
449
+ # ConditionalRequestConflict` response. On a 409 failure you should
450
+ # re-initiate the multipart upload with `CreateMultipartUpload` and
451
+ # re-upload each part.
452
+ #
453
+ # Expects the '*' (asterisk) character.
454
+ #
455
+ # For more information about conditional requests, see [RFC 7232][1], or
456
+ # [Conditional requests][2] in the *Amazon S3 User Guide*.
457
+ #
458
+ #
459
+ #
460
+ # [1]: https://tools.ietf.org/html/rfc7232
461
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/conditional-requests.html
462
+ # @option options [String] :sse_customer_algorithm
463
+ # The server-side encryption (SSE) algorithm used to encrypt the object.
464
+ # This parameter is required only when the object was created using a
465
+ # checksum algorithm or if your bucket policy requires the use of SSE-C.
466
+ # For more information, see [Protecting data using SSE-C keys][1] in the
467
+ # *Amazon S3 User Guide*.
468
+ #
469
+ # <note markdown="1"> This functionality is not supported for directory buckets.
470
+ #
471
+ # </note>
472
+ #
473
+ #
474
+ #
475
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html#ssec-require-condition-key
476
+ # @option options [String] :sse_customer_key
477
+ # The server-side encryption (SSE) customer managed key. This parameter
478
+ # is needed only when the object was created using a checksum algorithm.
479
+ # For more information, see [Protecting data using SSE-C keys][1] in the
480
+ # *Amazon S3 User Guide*.
481
+ #
482
+ # <note markdown="1"> This functionality is not supported for directory buckets.
483
+ #
484
+ # </note>
485
+ #
486
+ #
487
+ #
488
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
489
+ # @option options [String] :sse_customer_key_md5
490
+ # The MD5 server-side encryption (SSE) customer managed key. This
491
+ # parameter is needed only when the object was created using a checksum
492
+ # algorithm. For more information, see [Protecting data using SSE-C
493
+ # keys][1] in the *Amazon S3 User Guide*.
494
+ #
495
+ # <note markdown="1"> This functionality is not supported for directory buckets.
496
+ #
497
+ # </note>
498
+ #
499
+ #
500
+ #
501
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
256
502
  # @return [Object]
257
503
  def complete(options = {})
258
504
  options = options.merge(
@@ -260,7 +506,9 @@ module Aws::S3
260
506
  key: @object_key,
261
507
  upload_id: @id
262
508
  )
263
- resp = @client.complete_multipart_upload(options)
509
+ Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
510
+ @client.complete_multipart_upload(options)
511
+ end
264
512
  Object.new(
265
513
  bucket_name: @bucket_name,
266
514
  key: @object_key,
@@ -295,14 +543,71 @@ module Aws::S3
295
543
  #
296
544
  # parts = multipart_upload.parts({
297
545
  # request_payer: "requester", # accepts requester
546
+ # expected_bucket_owner: "AccountId",
547
+ # sse_customer_algorithm: "SSECustomerAlgorithm",
548
+ # sse_customer_key: "SSECustomerKey",
549
+ # sse_customer_key_md5: "SSECustomerKeyMD5",
298
550
  # })
299
551
  # @param [Hash] options ({})
300
552
  # @option options [String] :request_payer
301
- # Confirms that the requester knows that she or he will be charged for
302
- # the request. Bucket owners need not specify this parameter in their
303
- # requests. Documentation on downloading objects from requester pays
304
- # buckets can be found at
305
- # http://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
553
+ # Confirms that the requester knows that they will be charged for the
554
+ # request. Bucket owners need not specify this parameter in their
555
+ # requests. If either the source or destination S3 bucket has Requester
556
+ # Pays enabled, the requester will pay for corresponding charges to copy
557
+ # the object. For information about downloading objects from Requester
558
+ # Pays buckets, see [Downloading Objects in Requester Pays Buckets][1]
559
+ # in the *Amazon S3 User Guide*.
560
+ #
561
+ # <note markdown="1"> This functionality is not supported for directory buckets.
562
+ #
563
+ # </note>
564
+ #
565
+ #
566
+ #
567
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
568
+ # @option options [String] :expected_bucket_owner
569
+ # The account ID of the expected bucket owner. If the account ID that
570
+ # you provide does not match the actual owner of the bucket, the request
571
+ # fails with the HTTP status code `403 Forbidden` (access denied).
572
+ # @option options [String] :sse_customer_algorithm
573
+ # The server-side encryption (SSE) algorithm used to encrypt the object.
574
+ # This parameter is needed only when the object was created using a
575
+ # checksum algorithm. For more information, see [Protecting data using
576
+ # SSE-C keys][1] in the *Amazon S3 User Guide*.
577
+ #
578
+ # <note markdown="1"> This functionality is not supported for directory buckets.
579
+ #
580
+ # </note>
581
+ #
582
+ #
583
+ #
584
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
585
+ # @option options [String] :sse_customer_key
586
+ # The server-side encryption (SSE) customer managed key. This parameter
587
+ # is needed only when the object was created using a checksum algorithm.
588
+ # For more information, see [Protecting data using SSE-C keys][1] in the
589
+ # *Amazon S3 User Guide*.
590
+ #
591
+ # <note markdown="1"> This functionality is not supported for directory buckets.
592
+ #
593
+ # </note>
594
+ #
595
+ #
596
+ #
597
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
598
+ # @option options [String] :sse_customer_key_md5
599
+ # The MD5 server-side encryption (SSE) customer managed key. This
600
+ # parameter is needed only when the object was created using a checksum
601
+ # algorithm. For more information, see [Protecting data using SSE-C
602
+ # keys][1] in the *Amazon S3 User Guide*.
603
+ #
604
+ # <note markdown="1"> This functionality is not supported for directory buckets.
605
+ #
606
+ # </note>
607
+ #
608
+ #
609
+ #
610
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
306
611
  # @return [MultipartUploadPart::Collection]
307
612
  def parts(options = {})
308
613
  batches = Enumerator.new do |y|
@@ -311,7 +616,9 @@ module Aws::S3
311
616
  key: @object_key,
312
617
  upload_id: @id
313
618
  )
314
- resp = @client.list_parts(options)
619
+ resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do
620
+ @client.list_parts(options)
621
+ end
315
622
  resp.each_page do |page|
316
623
  batch = []
317
624
  page.data.parts.each do |p|
@@ -379,3 +686,6 @@ module Aws::S3
379
686
  class Collection < Aws::Resources::Collection; end
380
687
  end
381
688
  end
689
+
690
+ # Load customizations if they exist
691
+ require 'aws-sdk-s3/customizations/multipart_upload'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Aws
2
4
  module S3
3
5
  class MultipartUploadError < StandardError