aws-sdk-s3 1.61.2 → 1.83.1

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 (94) hide show
  1. checksums.yaml +5 -5
  2. data/lib/aws-sdk-s3.rb +5 -2
  3. data/lib/aws-sdk-s3/arn/access_point_arn.rb +62 -0
  4. data/lib/aws-sdk-s3/arn/outpost_access_point_arn.rb +71 -0
  5. data/lib/aws-sdk-s3/bucket.rb +61 -10
  6. data/lib/aws-sdk-s3/bucket_acl.rb +7 -0
  7. data/lib/aws-sdk-s3/bucket_cors.rb +15 -2
  8. data/lib/aws-sdk-s3/bucket_lifecycle.rb +14 -1
  9. data/lib/aws-sdk-s3/bucket_lifecycle_configuration.rb +14 -1
  10. data/lib/aws-sdk-s3/bucket_logging.rb +7 -0
  11. data/lib/aws-sdk-s3/bucket_notification.rb +7 -0
  12. data/lib/aws-sdk-s3/bucket_policy.rb +14 -1
  13. data/lib/aws-sdk-s3/bucket_region_cache.rb +2 -0
  14. data/lib/aws-sdk-s3/bucket_request_payment.rb +7 -0
  15. data/lib/aws-sdk-s3/bucket_tagging.rb +14 -1
  16. data/lib/aws-sdk-s3/bucket_versioning.rb +17 -0
  17. data/lib/aws-sdk-s3/bucket_website.rb +18 -3
  18. data/lib/aws-sdk-s3/client.rb +2521 -1187
  19. data/lib/aws-sdk-s3/client_api.rb +188 -18
  20. data/lib/aws-sdk-s3/customizations.rb +3 -0
  21. data/lib/aws-sdk-s3/customizations/bucket.rb +11 -4
  22. data/lib/aws-sdk-s3/customizations/multipart_upload.rb +2 -0
  23. data/lib/aws-sdk-s3/customizations/object.rb +23 -5
  24. data/lib/aws-sdk-s3/customizations/object_summary.rb +5 -0
  25. data/lib/aws-sdk-s3/customizations/types/list_object_versions_output.rb +2 -0
  26. data/lib/aws-sdk-s3/encryption.rb +4 -0
  27. data/lib/aws-sdk-s3/encryption/client.rb +18 -5
  28. data/lib/aws-sdk-s3/encryption/decrypt_handler.rb +72 -26
  29. data/lib/aws-sdk-s3/encryption/default_cipher_provider.rb +43 -5
  30. data/lib/aws-sdk-s3/encryption/default_key_provider.rb +2 -0
  31. data/lib/aws-sdk-s3/encryption/encrypt_handler.rb +13 -2
  32. data/lib/aws-sdk-s3/encryption/errors.rb +2 -0
  33. data/lib/aws-sdk-s3/encryption/io_auth_decrypter.rb +2 -0
  34. data/lib/aws-sdk-s3/encryption/io_decrypter.rb +11 -3
  35. data/lib/aws-sdk-s3/encryption/io_encrypter.rb +2 -0
  36. data/lib/aws-sdk-s3/encryption/key_provider.rb +2 -0
  37. data/lib/aws-sdk-s3/encryption/kms_cipher_provider.rb +34 -3
  38. data/lib/aws-sdk-s3/encryption/materials.rb +8 -6
  39. data/lib/aws-sdk-s3/encryption/utils.rb +25 -0
  40. data/lib/aws-sdk-s3/encryptionV2/client.rb +566 -0
  41. data/lib/aws-sdk-s3/encryptionV2/decrypt_handler.rb +226 -0
  42. data/lib/aws-sdk-s3/encryptionV2/default_cipher_provider.rb +170 -0
  43. data/lib/aws-sdk-s3/encryptionV2/default_key_provider.rb +40 -0
  44. data/lib/aws-sdk-s3/encryptionV2/encrypt_handler.rb +69 -0
  45. data/lib/aws-sdk-s3/encryptionV2/errors.rb +37 -0
  46. data/lib/aws-sdk-s3/encryptionV2/io_auth_decrypter.rb +58 -0
  47. data/lib/aws-sdk-s3/encryptionV2/io_decrypter.rb +37 -0
  48. data/lib/aws-sdk-s3/encryptionV2/io_encrypter.rb +73 -0
  49. data/lib/aws-sdk-s3/encryptionV2/key_provider.rb +31 -0
  50. data/lib/aws-sdk-s3/encryptionV2/kms_cipher_provider.rb +169 -0
  51. data/lib/aws-sdk-s3/encryptionV2/materials.rb +60 -0
  52. data/lib/aws-sdk-s3/encryptionV2/utils.rb +103 -0
  53. data/lib/aws-sdk-s3/encryption_v2.rb +23 -0
  54. data/lib/aws-sdk-s3/errors.rb +2 -0
  55. data/lib/aws-sdk-s3/event_streams.rb +7 -0
  56. data/lib/aws-sdk-s3/file_downloader.rb +10 -8
  57. data/lib/aws-sdk-s3/file_part.rb +2 -0
  58. data/lib/aws-sdk-s3/file_uploader.rb +14 -1
  59. data/lib/aws-sdk-s3/legacy_signer.rb +2 -0
  60. data/lib/aws-sdk-s3/multipart_file_uploader.rb +39 -2
  61. data/lib/aws-sdk-s3/multipart_stream_uploader.rb +3 -1
  62. data/lib/aws-sdk-s3/multipart_upload.rb +18 -1
  63. data/lib/aws-sdk-s3/multipart_upload_error.rb +2 -0
  64. data/lib/aws-sdk-s3/multipart_upload_part.rb +66 -7
  65. data/lib/aws-sdk-s3/object.rb +174 -23
  66. data/lib/aws-sdk-s3/object_acl.rb +15 -0
  67. data/lib/aws-sdk-s3/object_copier.rb +2 -0
  68. data/lib/aws-sdk-s3/object_multipart_copier.rb +2 -0
  69. data/lib/aws-sdk-s3/object_summary.rb +185 -20
  70. data/lib/aws-sdk-s3/object_version.rb +44 -4
  71. data/lib/aws-sdk-s3/plugins/accelerate.rb +29 -38
  72. data/lib/aws-sdk-s3/plugins/arn.rb +187 -0
  73. data/lib/aws-sdk-s3/plugins/bucket_dns.rb +2 -2
  74. data/lib/aws-sdk-s3/plugins/bucket_name_restrictions.rb +3 -1
  75. data/lib/aws-sdk-s3/plugins/dualstack.rb +5 -1
  76. data/lib/aws-sdk-s3/plugins/expect_100_continue.rb +3 -4
  77. data/lib/aws-sdk-s3/plugins/get_bucket_location_fix.rb +2 -0
  78. data/lib/aws-sdk-s3/plugins/http_200_errors.rb +11 -3
  79. data/lib/aws-sdk-s3/plugins/iad_regional_endpoint.rb +3 -1
  80. data/lib/aws-sdk-s3/plugins/location_constraint.rb +2 -0
  81. data/lib/aws-sdk-s3/plugins/md5s.rb +26 -25
  82. data/lib/aws-sdk-s3/plugins/redirects.rb +2 -0
  83. data/lib/aws-sdk-s3/plugins/s3_host_id.rb +2 -0
  84. data/lib/aws-sdk-s3/plugins/s3_signer.rb +31 -7
  85. data/lib/aws-sdk-s3/plugins/sse_cpk.rb +3 -1
  86. data/lib/aws-sdk-s3/plugins/streaming_retry.rb +118 -0
  87. data/lib/aws-sdk-s3/plugins/url_encoded_keys.rb +2 -0
  88. data/lib/aws-sdk-s3/presigned_post.rb +68 -32
  89. data/lib/aws-sdk-s3/presigner.rb +102 -34
  90. data/lib/aws-sdk-s3/resource.rb +4 -2
  91. data/lib/aws-sdk-s3/types.rb +2016 -256
  92. data/lib/aws-sdk-s3/waiters.rb +2 -0
  93. metadata +23 -6
  94. data/lib/aws-sdk-s3/plugins/bucket_arn.rb +0 -211
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -226,6 +228,7 @@ module Aws::S3
226
228
  # grant_write_acp: "GrantWriteACP",
227
229
  # request_payer: "requester", # accepts requester
228
230
  # version_id: "ObjectVersionId",
231
+ # expected_bucket_owner: "AccountId",
229
232
  # })
230
233
  # @param [Hash] options ({})
231
234
  # @option options [String] :acl
@@ -250,15 +253,23 @@ module Aws::S3
250
253
  # @option options [String] :grant_full_control
251
254
  # Allows grantee the read, write, read ACP, and write ACP permissions on
252
255
  # the bucket.
256
+ #
257
+ # This action is not supported by Amazon S3 on Outposts.
253
258
  # @option options [String] :grant_read
254
259
  # Allows grantee to list the objects in the bucket.
260
+ #
261
+ # This action is not supported by Amazon S3 on Outposts.
255
262
  # @option options [String] :grant_read_acp
256
263
  # Allows grantee to read the bucket ACL.
264
+ #
265
+ # This action is not supported by Amazon S3 on Outposts.
257
266
  # @option options [String] :grant_write
258
267
  # Allows grantee to create, overwrite, and delete any object in the
259
268
  # bucket.
260
269
  # @option options [String] :grant_write_acp
261
270
  # Allows grantee to write the ACL for the applicable bucket.
271
+ #
272
+ # This action is not supported by Amazon S3 on Outposts.
262
273
  # @option options [String] :request_payer
263
274
  # Confirms that the requester knows that they will be charged for the
264
275
  # request. Bucket owners need not specify this parameter in their
@@ -271,6 +282,10 @@ module Aws::S3
271
282
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
272
283
  # @option options [String] :version_id
273
284
  # VersionId used to reference a specific version of the object.
285
+ # @option options [String] :expected_bucket_owner
286
+ # The account id of the expected bucket owner. If the bucket is owned by
287
+ # a different account, the request will fail with an HTTP `403 (Access
288
+ # Denied)` error.
274
289
  # @return [Types::PutObjectAclOutput]
275
290
  def put(options = {})
276
291
  options = options.merge(
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'thread'
2
4
 
3
5
  module Aws
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'thread'
2
4
  require 'cgi'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # WARNING ABOUT GENERATED CODE
2
4
  #
3
5
  # This file is generated. See the contributing guide for more information:
@@ -46,8 +48,24 @@ module Aws::S3
46
48
  data[:last_modified]
47
49
  end
48
50
 
49
- # The entity tag is an MD5 hash of the object. ETag reflects only
50
- # 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.
51
69
  # @return [String]
52
70
  def etag
53
71
  data[:etag]
@@ -277,7 +295,7 @@ module Aws::S3
277
295
  # metadata_directive: "COPY", # accepts COPY, REPLACE
278
296
  # tagging_directive: "COPY", # accepts COPY, REPLACE
279
297
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
280
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
298
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
281
299
  # website_redirect_location: "WebsiteRedirectLocation",
282
300
  # sse_customer_algorithm: "SSECustomerAlgorithm",
283
301
  # sse_customer_key: "SSECustomerKey",
@@ -292,10 +310,14 @@ module Aws::S3
292
310
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
293
311
  # object_lock_retain_until_date: Time.now,
294
312
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
313
+ # expected_bucket_owner: "AccountId",
314
+ # expected_source_bucket_owner: "AccountId",
295
315
  # })
296
316
  # @param [Hash] options ({})
297
317
  # @option options [String] :acl
298
318
  # The canned ACL to apply to the object.
319
+ #
320
+ # This action is not supported by Amazon S3 on Outposts.
299
321
  # @option options [String] :cache_control
300
322
  # Specifies caching behavior along the request/reply chain.
301
323
  # @option options [String] :content_disposition
@@ -309,8 +331,50 @@ module Aws::S3
309
331
  # @option options [String] :content_type
310
332
  # A standard MIME type describing the format of the object data.
311
333
  # @option options [required, String] :copy_source
312
- # The name of the source bucket and key name of the source object,
313
- # separated by a slash (/). Must be URL-encoded.
334
+ # Specifies the source object for the copy operation. You specify the
335
+ # value in one of two formats, depending on whether you want to access
336
+ # the source object through an [access point][1]\:
337
+ #
338
+ # * For objects not accessed through an access point, specify the name
339
+ # of the source bucket and the key of the source object, separated by
340
+ # a slash (/). For example, to copy the object `reports/january.pdf`
341
+ # from the bucket `awsexamplebucket`, use
342
+ # `awsexamplebucket/reports/january.pdf`. The value must be URL
343
+ # encoded.
344
+ #
345
+ # * For objects accessed through access points, specify the Amazon
346
+ # Resource Name (ARN) of the object as accessed through the access
347
+ # point, in the format
348
+ # `arn:aws:s3:<Region>:<account-id>:accesspoint/<access-point-name>/object/<key>`.
349
+ # For example, to copy the object `reports/january.pdf` through access
350
+ # point `my-access-point` owned by account `123456789012` in Region
351
+ # `us-west-2`, use the URL encoding of
352
+ # `arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf`.
353
+ # The value must be URL encoded.
354
+ #
355
+ # <note markdown="1"> Amazon S3 supports copy operations using access points only when the
356
+ # source and destination buckets are in the same AWS Region.
357
+ #
358
+ # </note>
359
+ #
360
+ # Alternatively, for objects accessed through Amazon S3 on Outposts,
361
+ # specify the ARN of the object as accessed in the format
362
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/object/<key>`.
363
+ # For example, to copy the object `reports/january.pdf` through
364
+ # outpost `my-outpost` owned by account `123456789012` in Region
365
+ # `us-west-2`, use the URL encoding of
366
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
367
+ # The value must be URL encoded.
368
+ #
369
+ # To copy a specific version of an object, append
370
+ # `?versionId=<version-id>` to the value (for example,
371
+ # `awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
372
+ # If you don't specify a version ID, Amazon S3 copies the latest
373
+ # version of the source object.
374
+ #
375
+ #
376
+ #
377
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html
314
378
  # @option options [String] :copy_source_if_match
315
379
  # Copies the object if its entity tag (ETag) matches the specified tag.
316
380
  # @option options [Time,DateTime,Date,Integer,String] :copy_source_if_modified_since
@@ -326,12 +390,20 @@ module Aws::S3
326
390
  # @option options [String] :grant_full_control
327
391
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
328
392
  # object.
393
+ #
394
+ # This action is not supported by Amazon S3 on Outposts.
329
395
  # @option options [String] :grant_read
330
396
  # Allows grantee to read the object data and its metadata.
397
+ #
398
+ # This action is not supported by Amazon S3 on Outposts.
331
399
  # @option options [String] :grant_read_acp
332
400
  # Allows grantee to read the object ACL.
401
+ #
402
+ # This action is not supported by Amazon S3 on Outposts.
333
403
  # @option options [String] :grant_write_acp
334
404
  # Allows grantee to write the ACL for the applicable object.
405
+ #
406
+ # This action is not supported by Amazon S3 on Outposts.
335
407
  # @option options [Hash<String,String>] :metadata
336
408
  # A map of metadata to store with the object in S3.
337
409
  # @option options [String] :metadata_directive
@@ -344,7 +416,16 @@ module Aws::S3
344
416
  # The server-side encryption algorithm used when storing this object in
345
417
  # Amazon S3 (for example, AES256, aws:kms).
346
418
  # @option options [String] :storage_class
347
- # The type of storage to use for the object. Defaults to 'STANDARD'.
419
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
420
+ # created objects. The STANDARD storage class provides high durability
421
+ # and high availability. Depending on performance needs, you can specify
422
+ # a different Storage Class. Amazon S3 on Outposts only uses the
423
+ # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
424
+ # in the *Amazon S3 Service Developer Guide*.
425
+ #
426
+ #
427
+ #
428
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
348
429
  # @option options [String] :website_redirect_location
349
430
  # If the bucket is configured as a website, redirects requests for this
350
431
  # object to another object in the same bucket or to an external URL.
@@ -357,7 +438,7 @@ module Aws::S3
357
438
  # encrypting data. This value is used to store the object and then it is
358
439
  # discarded; Amazon S3 does not store the encryption key. The key must
359
440
  # be appropriate for use with the algorithm specified in the
360
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
441
+ # `x-amz-server-side-encryption-customer-algorithm` header.
361
442
  # @option options [String] :sse_customer_key_md5
362
443
  # Specifies the 128-bit MD5 digest of the encryption key according to
363
444
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -409,6 +490,14 @@ module Aws::S3
409
490
  # expire.
410
491
  # @option options [String] :object_lock_legal_hold_status
411
492
  # Specifies whether you want to apply a Legal Hold to the copied object.
493
+ # @option options [String] :expected_bucket_owner
494
+ # The account id of the expected destination bucket owner. If the
495
+ # destination bucket is owned by a different account, the request will
496
+ # fail with an HTTP `403 (Access Denied)` error.
497
+ # @option options [String] :expected_source_bucket_owner
498
+ # The account id of the expected source bucket owner. If the source
499
+ # bucket is owned by a different account, the request will fail with an
500
+ # HTTP `403 (Access Denied)` error.
412
501
  # @return [Types::CopyObjectOutput]
413
502
  def copy_from(options = {})
414
503
  options = options.merge(
@@ -426,6 +515,7 @@ module Aws::S3
426
515
  # version_id: "ObjectVersionId",
427
516
  # request_payer: "requester", # accepts requester
428
517
  # bypass_governance_retention: false,
518
+ # expected_bucket_owner: "AccountId",
429
519
  # })
430
520
  # @param [Hash] options ({})
431
521
  # @option options [String] :mfa
@@ -448,6 +538,10 @@ module Aws::S3
448
538
  # @option options [Boolean] :bypass_governance_retention
449
539
  # Indicates whether S3 Object Lock should bypass Governance-mode
450
540
  # restrictions to process this operation.
541
+ # @option options [String] :expected_bucket_owner
542
+ # The account id of the expected bucket owner. If the bucket is owned by
543
+ # a different account, the request will fail with an HTTP `403 (Access
544
+ # Denied)` error.
451
545
  # @return [Types::DeleteObjectOutput]
452
546
  def delete(options = {})
453
547
  options = options.merge(
@@ -478,6 +572,7 @@ module Aws::S3
478
572
  # sse_customer_key_md5: "SSECustomerKeyMD5",
479
573
  # request_payer: "requester", # accepts requester
480
574
  # part_number: 1,
575
+ # expected_bucket_owner: "AccountId",
481
576
  # })
482
577
  # @param [Hash] options ({})
483
578
  # @option options [String] :if_match
@@ -495,7 +590,16 @@ module Aws::S3
495
590
  # @option options [String] :range
496
591
  # Downloads the specified range bytes of an object. For more information
497
592
  # about the HTTP Range header, see
498
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35]().
593
+ # [https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35][1].
594
+ #
595
+ # <note markdown="1"> Amazon S3 doesn't support retrieving multiple ranges of data per
596
+ # `GET` request.
597
+ #
598
+ # </note>
599
+ #
600
+ #
601
+ #
602
+ # [1]: https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35
499
603
  # @option options [String] :response_cache_control
500
604
  # Sets the `Cache-Control` header of the response.
501
605
  # @option options [String] :response_content_disposition
@@ -518,7 +622,7 @@ module Aws::S3
518
622
  # encrypting data. This value is used to store the object and then it is
519
623
  # discarded; Amazon S3 does not store the encryption key. The key must
520
624
  # be appropriate for use with the algorithm specified in the
521
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
625
+ # `x-amz-server-side-encryption-customer-algorithm` header.
522
626
  # @option options [String] :sse_customer_key_md5
523
627
  # Specifies the 128-bit MD5 digest of the encryption key according to
524
628
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -538,6 +642,10 @@ module Aws::S3
538
642
  # between 1 and 10,000. Effectively performs a 'ranged' GET request
539
643
  # for the part specified. Useful for downloading just a part of an
540
644
  # object.
645
+ # @option options [String] :expected_bucket_owner
646
+ # The account id of the expected bucket owner. If the bucket is owned by
647
+ # a different account, the request will fail with an HTTP `403 (Access
648
+ # Denied)` error.
541
649
  # @return [Types::GetObjectOutput]
542
650
  def get(options = {}, &block)
543
651
  options = options.merge(
@@ -566,7 +674,7 @@ module Aws::S3
566
674
  # "MetadataKey" => "MetadataValue",
567
675
  # },
568
676
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
569
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
677
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
570
678
  # website_redirect_location: "WebsiteRedirectLocation",
571
679
  # sse_customer_algorithm: "SSECustomerAlgorithm",
572
680
  # sse_customer_key: "SSECustomerKey",
@@ -578,10 +686,13 @@ module Aws::S3
578
686
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
579
687
  # object_lock_retain_until_date: Time.now,
580
688
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
689
+ # expected_bucket_owner: "AccountId",
581
690
  # })
582
691
  # @param [Hash] options ({})
583
692
  # @option options [String] :acl
584
693
  # The canned ACL to apply to the object.
694
+ #
695
+ # This action is not supported by Amazon S3 on Outposts.
585
696
  # @option options [String] :cache_control
586
697
  # Specifies caching behavior along the request/reply chain.
587
698
  # @option options [String] :content_disposition
@@ -599,19 +710,36 @@ module Aws::S3
599
710
  # @option options [String] :grant_full_control
600
711
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
601
712
  # object.
713
+ #
714
+ # This action is not supported by Amazon S3 on Outposts.
602
715
  # @option options [String] :grant_read
603
716
  # Allows grantee to read the object data and its metadata.
717
+ #
718
+ # This action is not supported by Amazon S3 on Outposts.
604
719
  # @option options [String] :grant_read_acp
605
720
  # Allows grantee to read the object ACL.
721
+ #
722
+ # This action is not supported by Amazon S3 on Outposts.
606
723
  # @option options [String] :grant_write_acp
607
724
  # Allows grantee to write the ACL for the applicable object.
725
+ #
726
+ # This action is not supported by Amazon S3 on Outposts.
608
727
  # @option options [Hash<String,String>] :metadata
609
728
  # A map of metadata to store with the object in S3.
610
729
  # @option options [String] :server_side_encryption
611
730
  # The server-side encryption algorithm used when storing this object in
612
731
  # Amazon S3 (for example, AES256, aws:kms).
613
732
  # @option options [String] :storage_class
614
- # The type of storage to use for the object. Defaults to 'STANDARD'.
733
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
734
+ # created objects. The STANDARD storage class provides high durability
735
+ # and high availability. Depending on performance needs, you can specify
736
+ # a different Storage Class. Amazon S3 on Outposts only uses the
737
+ # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
738
+ # in the *Amazon S3 Service Developer Guide*.
739
+ #
740
+ #
741
+ #
742
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
615
743
  # @option options [String] :website_redirect_location
616
744
  # If the bucket is configured as a website, redirects requests for this
617
745
  # object to another object in the same bucket or to an external URL.
@@ -624,7 +752,7 @@ module Aws::S3
624
752
  # encrypting data. This value is used to store the object and then it is
625
753
  # discarded; Amazon S3 does not store the encryption key. The key must
626
754
  # be appropriate for use with the algorithm specified in the
627
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
755
+ # `x-amz-server-side-encryption-customer-algorithm` header.
628
756
  # @option options [String] :sse_customer_key_md5
629
757
  # Specifies the 128-bit MD5 digest of the encryption key according to
630
758
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -665,6 +793,10 @@ module Aws::S3
665
793
  # @option options [String] :object_lock_legal_hold_status
666
794
  # Specifies whether you want to apply a Legal Hold to the uploaded
667
795
  # object.
796
+ # @option options [String] :expected_bucket_owner
797
+ # The account id of the expected bucket owner. If the bucket is owned by
798
+ # a different account, the request will fail with an HTTP `403 (Access
799
+ # Denied)` error.
668
800
  # @return [MultipartUpload]
669
801
  def initiate_multipart_upload(options = {})
670
802
  options = options.merge(
@@ -701,7 +833,7 @@ module Aws::S3
701
833
  # "MetadataKey" => "MetadataValue",
702
834
  # },
703
835
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
704
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
836
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
705
837
  # website_redirect_location: "WebsiteRedirectLocation",
706
838
  # sse_customer_algorithm: "SSECustomerAlgorithm",
707
839
  # sse_customer_key: "SSECustomerKey",
@@ -713,16 +845,19 @@ module Aws::S3
713
845
  # object_lock_mode: "GOVERNANCE", # accepts GOVERNANCE, COMPLIANCE
714
846
  # object_lock_retain_until_date: Time.now,
715
847
  # object_lock_legal_hold_status: "ON", # accepts ON, OFF
848
+ # expected_bucket_owner: "AccountId",
716
849
  # })
717
850
  # @param [Hash] options ({})
718
851
  # @option options [String] :acl
719
852
  # The canned ACL to apply to the object. For more information, see
720
853
  # [Canned ACL][1].
721
854
  #
855
+ # This action is not supported by Amazon S3 on Outposts.
856
+ #
722
857
  #
723
858
  #
724
859
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
725
- # @option options [String, IO] :body
860
+ # @option options [String, StringIO, File] :body
726
861
  # Object data.
727
862
  # @option options [String] :cache_control
728
863
  # Can be used to specify caching behavior along the request/reply chain.
@@ -790,20 +925,36 @@ module Aws::S3
790
925
  # @option options [String] :grant_full_control
791
926
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
792
927
  # object.
928
+ #
929
+ # This action is not supported by Amazon S3 on Outposts.
793
930
  # @option options [String] :grant_read
794
931
  # Allows grantee to read the object data and its metadata.
932
+ #
933
+ # This action is not supported by Amazon S3 on Outposts.
795
934
  # @option options [String] :grant_read_acp
796
935
  # Allows grantee to read the object ACL.
936
+ #
937
+ # This action is not supported by Amazon S3 on Outposts.
797
938
  # @option options [String] :grant_write_acp
798
939
  # Allows grantee to write the ACL for the applicable object.
940
+ #
941
+ # This action is not supported by Amazon S3 on Outposts.
799
942
  # @option options [Hash<String,String>] :metadata
800
943
  # A map of metadata to store with the object in S3.
801
944
  # @option options [String] :server_side_encryption
802
945
  # The server-side encryption algorithm used when storing this object in
803
946
  # Amazon S3 (for example, AES256, aws:kms).
804
947
  # @option options [String] :storage_class
805
- # If you don't specify, Standard is the default storage class. Amazon
806
- # S3 supports other storage classes.
948
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
949
+ # created objects. The STANDARD storage class provides high durability
950
+ # and high availability. Depending on performance needs, you can specify
951
+ # a different Storage Class. Amazon S3 on Outposts only uses the
952
+ # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
953
+ # in the *Amazon S3 Service Developer Guide*.
954
+ #
955
+ #
956
+ #
957
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
807
958
  # @option options [String] :website_redirect_location
808
959
  # If the bucket is configured as a website, redirects requests for this
809
960
  # object to another object in the same bucket or to an external URL.
@@ -837,7 +988,7 @@ module Aws::S3
837
988
  # encrypting data. This value is used to store the object and then it is
838
989
  # discarded; Amazon S3 does not store the encryption key. The key must
839
990
  # be appropriate for use with the algorithm specified in the
840
- # `x-amz-server-side​-encryption​-customer-algorithm` header.
991
+ # `x-amz-server-side-encryption-customer-algorithm` header.
841
992
  # @option options [String] :sse_customer_key_md5
842
993
  # Specifies the 128-bit MD5 digest of the encryption key according to
843
994
  # RFC 1321. Amazon S3 uses this header for a message integrity check to
@@ -882,6 +1033,10 @@ module Aws::S3
882
1033
  #
883
1034
  #
884
1035
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
1036
+ # @option options [String] :expected_bucket_owner
1037
+ # The account id of the expected bucket owner. If the bucket is owned by
1038
+ # a different account, the request will fail with an HTTP `403 (Access
1039
+ # Denied)` error.
885
1040
  # @return [Types::PutObjectOutput]
886
1041
  def put(options = {})
887
1042
  options = options.merge(
@@ -973,11 +1128,12 @@ module Aws::S3
973
1128
  # value: "MetadataValue",
974
1129
  # },
975
1130
  # ],
976
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
1131
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
977
1132
  # },
978
1133
  # },
979
1134
  # },
980
1135
  # request_payer: "requester", # accepts requester
1136
+ # expected_bucket_owner: "AccountId",
981
1137
  # })
982
1138
  # @param [Hash] options ({})
983
1139
  # @option options [String] :version_id
@@ -994,6 +1150,10 @@ module Aws::S3
994
1150
  #
995
1151
  #
996
1152
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/ObjectsinRequesterPaysBuckets.html
1153
+ # @option options [String] :expected_bucket_owner
1154
+ # The account id of the expected bucket owner. If the bucket is owned by
1155
+ # a different account, the request will fail with an HTTP `403 (Access
1156
+ # Denied)` error.
997
1157
  # @return [Types::RestoreObjectOutput]
998
1158
  def restore_object(options = {})
999
1159
  options = options.merge(
@@ -1090,8 +1250,8 @@ module Aws::S3
1090
1250
 
1091
1251
  def yield_waiter_and_warn(waiter, &block)
1092
1252
  if !@waiter_block_warned
1093
- msg = "pass options to configure the waiter; "
1094
- msg << "yielding the waiter is deprecated"
1253
+ msg = "pass options to configure the waiter; "\
1254
+ "yielding the waiter is deprecated"
1095
1255
  warn(msg)
1096
1256
  @waiter_block_warned = true
1097
1257
  end
@@ -1125,6 +1285,7 @@ module Aws::S3
1125
1285
  # mfa: "MFA",
1126
1286
  # request_payer: "requester", # accepts requester
1127
1287
  # bypass_governance_retention: false,
1288
+ # expected_bucket_owner: "AccountId",
1128
1289
  # })
1129
1290
  # @param options ({})
1130
1291
  # @option options [String] :mfa
@@ -1146,6 +1307,10 @@ module Aws::S3
1146
1307
  # Specifies whether you want to delete this object even if it has a
1147
1308
  # Governance-type Object Lock in place. You must have sufficient
1148
1309
  # permissions to perform this operation.
1310
+ # @option options [String] :expected_bucket_owner
1311
+ # The account id of the expected bucket owner. If the bucket is owned by
1312
+ # a different account, the request will fail with an HTTP `403 (Access
1313
+ # Denied)` error.
1149
1314
  # @return [void]
1150
1315
  def batch_delete!(options = {})
1151
1316
  batch_enum.each do |batch|