aws-sdk-s3 1.80.0 → 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bc75a520a6c1b6340eb521f998e67b87e550ac1f42c9d42e231ed05888b1c6c2
4
- data.tar.gz: 0feaa57eedfcefcbda04ef354e10527bda784dfe6fea4bdbea58a6abc3854c92
3
+ metadata.gz: 06754c5841e3a40c510a9702e1f4de282fc40cf6e1b73cabc97ba25b34b167be
4
+ data.tar.gz: 6cad21e9108cdfbb03ff04dab1954dff05bf3bbee8214f86d04ab9484d75b96b
5
5
  SHA512:
6
- metadata.gz: f50c4622b23112f93d5898b022037cf0150bb5e34760cde431842d556442a582a0a29582c6bd59fd4612b8477ed2a72cb98b334bc3ce1d3628a97585bc5bfe30
7
- data.tar.gz: f10001ae560ef346a37246bd8c514b070e3be9fce9d99156440769f7dc1752534acffbb887945e71aeeb2b3f2c19be76b533f624e2f3e717521d0faaf31f3600
6
+ metadata.gz: f092576cb7a592bc6c5f5b698fef4052356ac37ed583b0688b72edc33f2e6534ed344d18f9c1ca1aeb7ee9f02f239e7fe937ea9d886153ecfeffaac40cc09caf
7
+ data.tar.gz: 572f55dd0322870bdc2ddc3e169e437ea99a87bfbc7c8277145fc15da186a2b9338a3560aa26c102ee856ae505a1a29774ec2683571cfed2f784a80a295c5a19
@@ -7,6 +7,7 @@
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
10
+
10
11
  require 'aws-sdk-kms'
11
12
  require 'aws-sigv4'
12
13
  require 'aws-sdk-core'
@@ -68,6 +69,6 @@ require_relative 'aws-sdk-s3/event_streams'
68
69
  # @!group service
69
70
  module Aws::S3
70
71
 
71
- GEM_VERSION = '1.80.0'
72
+ GEM_VERSION = '1.83.1'
72
73
 
73
74
  end
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Aws
4
+ module S3
5
+ # @api private
6
+ class AccessPointARN < Aws::ARN
7
+ def initialize(options)
8
+ super(options)
9
+ @type, @access_point_name, @extra = @resource.split(/[:,\/]/)
10
+ end
11
+
12
+ attr_reader :access_point_name
13
+
14
+ def support_dualstack?
15
+ true
16
+ end
17
+
18
+ def support_fips?
19
+ true
20
+ end
21
+
22
+ def validate_arn!
23
+ unless @service == 's3'
24
+ raise ArgumentError, 'Must provide a valid S3 accesspoint ARN.'
25
+ end
26
+
27
+ if @region.empty? || @account_id.empty?
28
+ raise ArgumentError,
29
+ 'S3 accesspoint ARNs must contain both a region '\
30
+ 'and an account id.'
31
+ end
32
+
33
+ if @type != 'accesspoint'
34
+ raise ArgumentError, 'Invalid ARN, resource format is not correct'
35
+ end
36
+
37
+ if @access_point_name.nil? || @access_point_name.empty?
38
+ raise ArgumentError, 'Missing ARN accesspoint name.'
39
+ end
40
+
41
+ if @extra
42
+ raise ArgumentError,
43
+ 'ARN accesspoint resource must be a single value.'
44
+ end
45
+
46
+ unless Seahorse::Util.host_label?(
47
+ "#{@access_point_name}-#{@account_id}"
48
+ )
49
+ raise ArgumentError,
50
+ "#{@access_point_name}-#{@account_id} is not a valid "\
51
+ 'host label.'
52
+ end
53
+ end
54
+
55
+ def host_url(region, dualstack = false)
56
+ sfx = Aws::Partitions::EndpointProvider.dns_suffix_for(region)
57
+ "#{@access_point_name}-#{@account_id}"\
58
+ ".s3-accesspoint#{'.dualstack' if dualstack}.#{region}.#{sfx}"
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Aws
4
+ module S3
5
+ # @api private
6
+ class OutpostAccessPointARN < Aws::ARN
7
+ def initialize(options)
8
+ super(options)
9
+ @type, @outpost_id, @subtype, @access_point_name, @extra =
10
+ @resource.split(/[:,\/]/)
11
+ end
12
+
13
+ attr_reader :outpost_id, :access_point_name
14
+
15
+ def support_dualstack?
16
+ false
17
+ end
18
+
19
+ def support_fips?
20
+ false
21
+ end
22
+
23
+ def validate_arn!
24
+ unless @service == 's3-outposts'
25
+ raise ArgumentError, 'Must provide a valid S3 outposts ARN.'
26
+ end
27
+
28
+ if @region.empty? || @account_id.empty?
29
+ raise ArgumentError,
30
+ 'S3 accesspoint ARNs must contain both a region '\
31
+ 'and an account id.'
32
+ end
33
+
34
+ if @type != 'outpost' && @subtype != 'accesspoint'
35
+ raise ArgumentError, 'Invalid ARN, resource format is not correct'
36
+ end
37
+
38
+ if @outpost_id.nil? || @outpost_id.empty?
39
+ raise ArgumentError, 'Missing ARN outpost id.'
40
+ end
41
+
42
+ if @access_point_name.nil? || @access_point_name.empty?
43
+ raise ArgumentError, 'Missing ARN accesspoint name.'
44
+ end
45
+
46
+ if @extra
47
+ raise ArgumentError,
48
+ 'ARN accesspoint resource must be a single value.'
49
+ end
50
+
51
+ unless Seahorse::Util.host_label?(
52
+ "#{@access_point_name}-#{@account_id}"
53
+ )
54
+ raise ArgumentError,
55
+ "#{@access_point_name}-#{@account_id} is not a valid "\
56
+ 'host label.'
57
+ end
58
+
59
+ unless Seahorse::Util.host_label?(@outpost_id)
60
+ raise ArgumentError, "#{@outpost_id} is not a valid host label."
61
+ end
62
+ end
63
+
64
+ # Outpost ARNs currently do not support dualstack
65
+ def host_url(region, _dualstack = false)
66
+ "#{@access_point_name}-#{@account_id}.#{@outpost_id}"\
67
+ ".s3-outposts.#{region}.amazonaws.com"
68
+ end
69
+ end
70
+ end
71
+ end
@@ -347,7 +347,7 @@ module Aws::S3
347
347
  # "MetadataKey" => "MetadataValue",
348
348
  # },
349
349
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
350
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
350
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
351
351
  # website_redirect_location: "WebsiteRedirectLocation",
352
352
  # sse_customer_algorithm: "SSECustomerAlgorithm",
353
353
  # sse_customer_key: "SSECustomerKey",
@@ -366,6 +366,8 @@ module Aws::S3
366
366
  # The canned ACL to apply to the object. For more information, see
367
367
  # [Canned ACL][1].
368
368
  #
369
+ # This action is not supported by Amazon S3 on Outposts.
370
+ #
369
371
  #
370
372
  #
371
373
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
@@ -437,12 +439,20 @@ module Aws::S3
437
439
  # @option options [String] :grant_full_control
438
440
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
439
441
  # object.
442
+ #
443
+ # This action is not supported by Amazon S3 on Outposts.
440
444
  # @option options [String] :grant_read
441
445
  # Allows grantee to read the object data and its metadata.
446
+ #
447
+ # This action is not supported by Amazon S3 on Outposts.
442
448
  # @option options [String] :grant_read_acp
443
449
  # Allows grantee to read the object ACL.
450
+ #
451
+ # This action is not supported by Amazon S3 on Outposts.
444
452
  # @option options [String] :grant_write_acp
445
453
  # Allows grantee to write the ACL for the applicable object.
454
+ #
455
+ # This action is not supported by Amazon S3 on Outposts.
446
456
  # @option options [required, String] :key
447
457
  # Object key for which the PUT operation was initiated.
448
458
  # @option options [Hash<String,String>] :metadata
@@ -451,8 +461,16 @@ module Aws::S3
451
461
  # The server-side encryption algorithm used when storing this object in
452
462
  # Amazon S3 (for example, AES256, aws:kms).
453
463
  # @option options [String] :storage_class
454
- # If you don't specify, S3 Standard is the default storage class.
455
- # Amazon S3 supports other storage classes.
464
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
465
+ # created objects. The STANDARD storage class provides high durability
466
+ # and high availability. Depending on performance needs, you can specify
467
+ # a different Storage Class. Amazon S3 on Outposts only uses the
468
+ # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
469
+ # in the *Amazon S3 Service Developer Guide*.
470
+ #
471
+ #
472
+ #
473
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
456
474
  # @option options [String] :website_redirect_location
457
475
  # If the bucket is configured as a website, redirects requests for this
458
476
  # object to another object in the same bucket or to an external URL.
@@ -28,23 +28,23 @@ require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
28
  require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
29
  require 'aws-sdk-core/plugins/http_checksum.rb'
30
30
  require 'aws-sdk-core/plugins/protocols/rest_xml.rb'
31
- require 'aws-sdk-s3/plugins/iad_regional_endpoint.rb'
32
31
  require 'aws-sdk-s3/plugins/accelerate.rb'
33
- require 'aws-sdk-s3/plugins/dualstack.rb'
34
- require 'aws-sdk-s3/plugins/bucket_arn.rb'
32
+ require 'aws-sdk-s3/plugins/arn.rb'
35
33
  require 'aws-sdk-s3/plugins/bucket_dns.rb'
34
+ require 'aws-sdk-s3/plugins/bucket_name_restrictions.rb'
35
+ require 'aws-sdk-s3/plugins/dualstack.rb'
36
36
  require 'aws-sdk-s3/plugins/expect_100_continue.rb'
37
- require 'aws-sdk-s3/plugins/http_200_errors.rb'
38
- require 'aws-sdk-s3/plugins/s3_host_id.rb'
39
37
  require 'aws-sdk-s3/plugins/get_bucket_location_fix.rb'
38
+ require 'aws-sdk-s3/plugins/http_200_errors.rb'
39
+ require 'aws-sdk-s3/plugins/iad_regional_endpoint.rb'
40
40
  require 'aws-sdk-s3/plugins/location_constraint.rb'
41
41
  require 'aws-sdk-s3/plugins/md5s.rb'
42
42
  require 'aws-sdk-s3/plugins/redirects.rb'
43
- require 'aws-sdk-s3/plugins/sse_cpk.rb'
44
- require 'aws-sdk-s3/plugins/url_encoded_keys.rb'
43
+ require 'aws-sdk-s3/plugins/s3_host_id.rb'
45
44
  require 'aws-sdk-s3/plugins/s3_signer.rb'
46
- require 'aws-sdk-s3/plugins/bucket_name_restrictions.rb'
45
+ require 'aws-sdk-s3/plugins/sse_cpk.rb'
47
46
  require 'aws-sdk-s3/plugins/streaming_retry.rb'
47
+ require 'aws-sdk-s3/plugins/url_encoded_keys.rb'
48
48
  require 'aws-sdk-core/plugins/event_stream_configuration.rb'
49
49
 
50
50
  Aws::Plugins::GlobalConfiguration.add_identifier(:s3)
@@ -91,23 +91,23 @@ module Aws::S3
91
91
  add_plugin(Aws::Plugins::TransferEncoding)
92
92
  add_plugin(Aws::Plugins::HttpChecksum)
93
93
  add_plugin(Aws::Plugins::Protocols::RestXml)
94
- add_plugin(Aws::S3::Plugins::IADRegionalEndpoint)
95
94
  add_plugin(Aws::S3::Plugins::Accelerate)
96
- add_plugin(Aws::S3::Plugins::Dualstack)
97
- add_plugin(Aws::S3::Plugins::BucketARN)
95
+ add_plugin(Aws::S3::Plugins::ARN)
98
96
  add_plugin(Aws::S3::Plugins::BucketDns)
97
+ add_plugin(Aws::S3::Plugins::BucketNameRestrictions)
98
+ add_plugin(Aws::S3::Plugins::Dualstack)
99
99
  add_plugin(Aws::S3::Plugins::Expect100Continue)
100
- add_plugin(Aws::S3::Plugins::Http200Errors)
101
- add_plugin(Aws::S3::Plugins::S3HostId)
102
100
  add_plugin(Aws::S3::Plugins::GetBucketLocationFix)
101
+ add_plugin(Aws::S3::Plugins::Http200Errors)
102
+ add_plugin(Aws::S3::Plugins::IADRegionalEndpoint)
103
103
  add_plugin(Aws::S3::Plugins::LocationConstraint)
104
104
  add_plugin(Aws::S3::Plugins::Md5s)
105
105
  add_plugin(Aws::S3::Plugins::Redirects)
106
- add_plugin(Aws::S3::Plugins::SseCpk)
107
- add_plugin(Aws::S3::Plugins::UrlEncodedKeys)
106
+ add_plugin(Aws::S3::Plugins::S3HostId)
108
107
  add_plugin(Aws::S3::Plugins::S3Signer)
109
- add_plugin(Aws::S3::Plugins::BucketNameRestrictions)
108
+ add_plugin(Aws::S3::Plugins::SseCpk)
110
109
  add_plugin(Aws::S3::Plugins::StreamingRetry)
110
+ add_plugin(Aws::S3::Plugins::UrlEncodedKeys)
111
111
  add_plugin(Aws::Plugins::EventStreamConfiguration)
112
112
 
113
113
  # @overload initialize(options)
@@ -330,9 +330,9 @@ module Aws::S3
330
330
  # region. Defaults to `legacy` mode using global endpoint.
331
331
  #
332
332
  # @option options [Boolean] :s3_use_arn_region (true)
333
- # By default, the SDK will use the S3 ARN region, and cross-region
334
- # requests could be made. Set to `false` to not use the region from
335
- # the S3 ARN.
333
+ # For S3 ARNs passed into the `:bucket` parameter, this option will
334
+ # use the region in the ARN, allowing for cross-region requests to
335
+ # be made. Set to `false` to use the client's region instead.
336
336
  #
337
337
  # @option options [String] :secret_access_key
338
338
  #
@@ -450,14 +450,24 @@ module Aws::S3
450
450
  # When using this API with an access point, you must direct requests to
451
451
  # the access point hostname. The access point hostname takes the form
452
452
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
453
- # When using this operation using an access point through the AWS SDKs,
453
+ # When using this operation with an access point through the AWS SDKs,
454
454
  # you provide the access point ARN in place of the bucket name. For more
455
455
  # information about access point ARNs, see [Using Access Points][1] in
456
456
  # the *Amazon Simple Storage Service Developer Guide*.
457
457
  #
458
+ # When using this API with Amazon S3 on Outposts, you must direct
459
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
460
+ # takes the form
461
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
462
+ # When using this operation using S3 on Outposts through the AWS SDKs,
463
+ # you provide the Outposts bucket ARN in place of the bucket name. For
464
+ # more information about S3 on Outposts ARNs, see [Using S3 on
465
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
466
+ #
458
467
  #
459
468
  #
460
469
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
470
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
461
471
  #
462
472
  # @option params [required, String] :key
463
473
  # Key of the object for which the multipart upload was initiated.
@@ -903,9 +913,33 @@ module Aws::S3
903
913
  # @option params [String] :acl
904
914
  # The canned ACL to apply to the object.
905
915
  #
916
+ # This action is not supported by Amazon S3 on Outposts.
917
+ #
906
918
  # @option params [required, String] :bucket
907
919
  # The name of the destination bucket.
908
920
  #
921
+ # When using this API with an access point, you must direct requests to
922
+ # the access point hostname. The access point hostname takes the form
923
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
924
+ # When using this operation with an access point through the AWS SDKs,
925
+ # you provide the access point ARN in place of the bucket name. For more
926
+ # information about access point ARNs, see [Using Access Points][1] in
927
+ # the *Amazon Simple Storage Service Developer Guide*.
928
+ #
929
+ # When using this API with Amazon S3 on Outposts, you must direct
930
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
931
+ # takes the form
932
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
933
+ # When using this operation using S3 on Outposts through the AWS SDKs,
934
+ # you provide the Outposts bucket ARN in place of the bucket name. For
935
+ # more information about S3 on Outposts ARNs, see [Using S3 on
936
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
937
+ #
938
+ #
939
+ #
940
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
941
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
942
+ #
909
943
  # @option params [String] :cache_control
910
944
  # Specifies caching behavior along the request/reply chain.
911
945
  #
@@ -950,6 +984,15 @@ module Aws::S3
950
984
  #
951
985
  # </note>
952
986
  #
987
+ # Alternatively, for objects accessed through Amazon S3 on Outposts,
988
+ # specify the ARN of the object as accessed in the format
989
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/object/<key>`.
990
+ # For example, to copy the object `reports/january.pdf` through
991
+ # outpost `my-outpost` owned by account `123456789012` in Region
992
+ # `us-west-2`, use the URL encoding of
993
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
994
+ # The value must be URL encoded.
995
+ #
953
996
  # To copy a specific version of an object, append
954
997
  # `?versionId=<version-id>` to the value (for example,
955
998
  # `awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
@@ -981,15 +1024,23 @@ module Aws::S3
981
1024
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
982
1025
  # object.
983
1026
  #
1027
+ # This action is not supported by Amazon S3 on Outposts.
1028
+ #
984
1029
  # @option params [String] :grant_read
985
1030
  # Allows grantee to read the object data and its metadata.
986
1031
  #
1032
+ # This action is not supported by Amazon S3 on Outposts.
1033
+ #
987
1034
  # @option params [String] :grant_read_acp
988
1035
  # Allows grantee to read the object ACL.
989
1036
  #
1037
+ # This action is not supported by Amazon S3 on Outposts.
1038
+ #
990
1039
  # @option params [String] :grant_write_acp
991
1040
  # Allows grantee to write the ACL for the applicable object.
992
1041
  #
1042
+ # This action is not supported by Amazon S3 on Outposts.
1043
+ #
993
1044
  # @option params [required, String] :key
994
1045
  # The key of the destination object.
995
1046
  #
@@ -1009,7 +1060,16 @@ module Aws::S3
1009
1060
  # Amazon S3 (for example, AES256, aws:kms).
1010
1061
  #
1011
1062
  # @option params [String] :storage_class
1012
- # The type of storage to use for the object. Defaults to 'STANDARD'.
1063
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
1064
+ # created objects. The STANDARD storage class provides high durability
1065
+ # and high availability. Depending on performance needs, you can specify
1066
+ # a different Storage Class. Amazon S3 on Outposts only uses the
1067
+ # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
1068
+ # in the *Amazon S3 Service Developer Guide*.
1069
+ #
1070
+ #
1071
+ #
1072
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
1013
1073
  #
1014
1074
  # @option params [String] :website_redirect_location
1015
1075
  # If the bucket is configured as a website, redirects requests for this
@@ -1158,7 +1218,7 @@ module Aws::S3
1158
1218
  # metadata_directive: "COPY", # accepts COPY, REPLACE
1159
1219
  # tagging_directive: "COPY", # accepts COPY, REPLACE
1160
1220
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
1161
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
1221
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
1162
1222
  # website_redirect_location: "WebsiteRedirectLocation",
1163
1223
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1164
1224
  # sse_customer_key: "SSECustomerKey",
@@ -1200,21 +1260,23 @@ module Aws::S3
1200
1260
  req.send_request(options)
1201
1261
  end
1202
1262
 
1203
- # Creates a new bucket. To create a bucket, you must register with
1263
+ # Creates a new S3 bucket. To create a bucket, you must register with
1204
1264
  # Amazon S3 and have a valid AWS Access Key ID to authenticate requests.
1205
1265
  # Anonymous requests are never allowed to create buckets. By creating
1206
1266
  # the bucket, you become the bucket owner.
1207
1267
  #
1208
- # Not every string is an acceptable bucket name. For information on
1209
- # bucket naming restrictions, see [Working with Amazon S3 Buckets][1].
1268
+ # Not every string is an acceptable bucket name. For information about
1269
+ # bucket naming restrictions, see [Working with Amazon S3 buckets][1].
1270
+ #
1271
+ # If you want to create an Amazon S3 on Outposts bucket, see [Create
1272
+ # Bucket][2].
1210
1273
  #
1211
1274
  # By default, the bucket is created in the US East (N. Virginia) Region.
1212
1275
  # You can optionally specify a Region in the request body. You might
1213
1276
  # choose a Region to optimize latency, minimize costs, or address
1214
1277
  # regulatory requirements. For example, if you reside in Europe, you
1215
1278
  # will probably find it advantageous to create buckets in the Europe
1216
- # (Ireland) Region. For more information, see [How to Select a Region
1217
- # for Your Buckets][2].
1279
+ # (Ireland) Region. For more information, see [Accessing a bucket][3].
1218
1280
  #
1219
1281
  # <note markdown="1"> If you send your create bucket request to the `s3.amazonaws.com`
1220
1282
  # endpoint, the request goes to the us-east-1 Region. Accordingly, the
@@ -1223,7 +1285,7 @@ module Aws::S3
1223
1285
  # another Region where the bucket is to be created. If you create a
1224
1286
  # bucket in a Region other than US East (N. Virginia), your application
1225
1287
  # must be able to handle 307 redirect. For more information, see
1226
- # [Virtual Hosting of Buckets][3].
1288
+ # [Virtual hosting of buckets][4].
1227
1289
  #
1228
1290
  # </note>
1229
1291
  #
@@ -1235,14 +1297,14 @@ module Aws::S3
1235
1297
  # * Specify a canned ACL using the `x-amz-acl` request header. Amazon S3
1236
1298
  # supports a set of predefined ACLs, known as *canned ACLs*. Each
1237
1299
  # canned ACL has a predefined set of grantees and permissions. For
1238
- # more information, see [Canned ACL][4].
1300
+ # more information, see [Canned ACL][5].
1239
1301
  #
1240
1302
  # * Specify access permissions explicitly using the `x-amz-grant-read`,
1241
1303
  # `x-amz-grant-write`, `x-amz-grant-read-acp`,
1242
1304
  # `x-amz-grant-write-acp`, and `x-amz-grant-full-control` headers.
1243
1305
  # These headers map to the set of permissions Amazon S3 supports in an
1244
- # ACL. For more information, see [Access Control List (ACL)
1245
- # Overview][5].
1306
+ # ACL. For more information, see [Access control list (ACL)
1307
+ # overview][6].
1246
1308
  #
1247
1309
  # You specify each grantee as a type=value pair, where the type is one
1248
1310
  # of the following:
@@ -1275,7 +1337,7 @@ module Aws::S3
1275
1337
  # * South America (São Paulo)
1276
1338
  #
1277
1339
  # For a list of all the Amazon S3 supported Regions and endpoints,
1278
- # see [Regions and Endpoints][6] in the AWS General Reference.
1340
+ # see [Regions and Endpoints][7] in the AWS General Reference.
1279
1341
  #
1280
1342
  # </note>
1281
1343
  #
@@ -1292,20 +1354,21 @@ module Aws::S3
1292
1354
  #
1293
1355
  # The following operations are related to `CreateBucket`\:
1294
1356
  #
1295
- # * [PutObject][7]
1357
+ # * [PutObject][8]
1296
1358
  #
1297
- # * [DeleteBucket][8]
1359
+ # * [DeleteBucket][9]
1298
1360
  #
1299
1361
  #
1300
1362
  #
1301
1363
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html
1302
- # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro
1303
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html
1304
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
1305
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html
1306
- # [6]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
1307
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html
1308
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html
1364
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_CreateBucket.html
1365
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingBucket.html#access-bucket-intro
1366
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/VirtualHosting.html
1367
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
1368
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html
1369
+ # [7]: https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region
1370
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html
1371
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html
1309
1372
  #
1310
1373
  # @option params [String] :acl
1311
1374
  # The canned ACL to apply to the bucket.
@@ -1342,33 +1405,33 @@ module Aws::S3
1342
1405
  # * {Types::CreateBucketOutput#location #location} => String
1343
1406
  #
1344
1407
  #
1345
- # @example Example: To create a bucket
1408
+ # @example Example: To create a bucket in a specific region
1346
1409
  #
1347
- # # The following example creates a bucket.
1410
+ # # The following example creates a bucket. The request specifies an AWS region where to create the bucket.
1348
1411
  #
1349
1412
  # resp = client.create_bucket({
1350
1413
  # bucket: "examplebucket",
1414
+ # create_bucket_configuration: {
1415
+ # location_constraint: "eu-west-1",
1416
+ # },
1351
1417
  # })
1352
1418
  #
1353
1419
  # resp.to_h outputs the following:
1354
1420
  # {
1355
- # location: "/examplebucket",
1421
+ # location: "http://examplebucket.<Region>.s3.amazonaws.com/",
1356
1422
  # }
1357
1423
  #
1358
- # @example Example: To create a bucket in a specific region
1424
+ # @example Example: To create a bucket
1359
1425
  #
1360
- # # The following example creates a bucket. The request specifies an AWS region where to create the bucket.
1426
+ # # The following example creates a bucket.
1361
1427
  #
1362
1428
  # resp = client.create_bucket({
1363
1429
  # bucket: "examplebucket",
1364
- # create_bucket_configuration: {
1365
- # location_constraint: "eu-west-1",
1366
- # },
1367
1430
  # })
1368
1431
  #
1369
1432
  # resp.to_h outputs the following:
1370
1433
  # {
1371
- # location: "http://examplebucket.<Region>.s3.amazonaws.com/",
1434
+ # location: "/examplebucket",
1372
1435
  # }
1373
1436
  #
1374
1437
  # @example Request syntax with placeholder values
@@ -1636,9 +1699,33 @@ module Aws::S3
1636
1699
  # @option params [String] :acl
1637
1700
  # The canned ACL to apply to the object.
1638
1701
  #
1702
+ # This action is not supported by Amazon S3 on Outposts.
1703
+ #
1639
1704
  # @option params [required, String] :bucket
1640
1705
  # The name of the bucket to which to initiate the upload
1641
1706
  #
1707
+ # When using this API with an access point, you must direct requests to
1708
+ # the access point hostname. The access point hostname takes the form
1709
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
1710
+ # When using this operation with an access point through the AWS SDKs,
1711
+ # you provide the access point ARN in place of the bucket name. For more
1712
+ # information about access point ARNs, see [Using Access Points][1] in
1713
+ # the *Amazon Simple Storage Service Developer Guide*.
1714
+ #
1715
+ # When using this API with Amazon S3 on Outposts, you must direct
1716
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
1717
+ # takes the form
1718
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
1719
+ # When using this operation using S3 on Outposts through the AWS SDKs,
1720
+ # you provide the Outposts bucket ARN in place of the bucket name. For
1721
+ # more information about S3 on Outposts ARNs, see [Using S3 on
1722
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
1723
+ #
1724
+ #
1725
+ #
1726
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
1727
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
1728
+ #
1642
1729
  # @option params [String] :cache_control
1643
1730
  # Specifies caching behavior along the request/reply chain.
1644
1731
  #
@@ -1663,15 +1750,23 @@ module Aws::S3
1663
1750
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
1664
1751
  # object.
1665
1752
  #
1753
+ # This action is not supported by Amazon S3 on Outposts.
1754
+ #
1666
1755
  # @option params [String] :grant_read
1667
1756
  # Allows grantee to read the object data and its metadata.
1668
1757
  #
1758
+ # This action is not supported by Amazon S3 on Outposts.
1759
+ #
1669
1760
  # @option params [String] :grant_read_acp
1670
1761
  # Allows grantee to read the object ACL.
1671
1762
  #
1763
+ # This action is not supported by Amazon S3 on Outposts.
1764
+ #
1672
1765
  # @option params [String] :grant_write_acp
1673
1766
  # Allows grantee to write the ACL for the applicable object.
1674
1767
  #
1768
+ # This action is not supported by Amazon S3 on Outposts.
1769
+ #
1675
1770
  # @option params [required, String] :key
1676
1771
  # Object key for which the multipart upload is to be initiated.
1677
1772
  #
@@ -1683,7 +1778,16 @@ module Aws::S3
1683
1778
  # Amazon S3 (for example, AES256, aws:kms).
1684
1779
  #
1685
1780
  # @option params [String] :storage_class
1686
- # The type of storage to use for the object. Defaults to 'STANDARD'.
1781
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
1782
+ # created objects. The STANDARD storage class provides high durability
1783
+ # and high availability. Depending on performance needs, you can specify
1784
+ # a different Storage Class. Amazon S3 on Outposts only uses the
1785
+ # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
1786
+ # in the *Amazon S3 Service Developer Guide*.
1787
+ #
1788
+ #
1789
+ #
1790
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
1687
1791
  #
1688
1792
  # @option params [String] :website_redirect_location
1689
1793
  # If the bucket is configured as a website, redirects requests for this
@@ -1805,7 +1909,7 @@ module Aws::S3
1805
1909
  # "MetadataKey" => "MetadataValue",
1806
1910
  # },
1807
1911
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
1808
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
1912
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
1809
1913
  # website_redirect_location: "WebsiteRedirectLocation",
1810
1914
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1811
1915
  # sse_customer_key: "SSECustomerKey",
@@ -1843,7 +1947,7 @@ module Aws::S3
1843
1947
  req.send_request(options)
1844
1948
  end
1845
1949
 
1846
- # Deletes the bucket. All objects (including all object versions and
1950
+ # Deletes the S3 bucket. All objects (including all object versions and
1847
1951
  # delete markers) in the bucket must be deleted before the bucket itself
1848
1952
  # can be deleted.
1849
1953
  #
@@ -2254,6 +2358,49 @@ module Aws::S3
2254
2358
  req.send_request(options)
2255
2359
  end
2256
2360
 
2361
+ # Removes `OwnershipControls` for an Amazon S3 bucket. To use this
2362
+ # operation, you must have the `s3:PutBucketOwnershipControls`
2363
+ # permission. For more information about Amazon S3 permissions, see
2364
+ # [Specifying Permissions in a Policy][1].
2365
+ #
2366
+ # For information about Amazon S3 Object Ownership, see [Using Object
2367
+ # Ownership][2].
2368
+ #
2369
+ # The following operations are related to
2370
+ # `DeleteBucketOwnershipControls`\:
2371
+ #
2372
+ # * GetBucketOwnershipControls
2373
+ #
2374
+ # * PutBucketOwnershipControls
2375
+ #
2376
+ #
2377
+ #
2378
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
2379
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html
2380
+ #
2381
+ # @option params [required, String] :bucket
2382
+ # The Amazon S3 bucket whose `OwnershipControls` you want to delete.
2383
+ #
2384
+ # @option params [String] :expected_bucket_owner
2385
+ #
2386
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2387
+ #
2388
+ # @example Request syntax with placeholder values
2389
+ #
2390
+ # resp = client.delete_bucket_ownership_controls({
2391
+ # bucket: "BucketName", # required
2392
+ # expected_bucket_owner: "AccountId",
2393
+ # })
2394
+ #
2395
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketOwnershipControls AWS API Documentation
2396
+ #
2397
+ # @overload delete_bucket_ownership_controls(params = {})
2398
+ # @param [Hash] params ({})
2399
+ def delete_bucket_ownership_controls(params = {}, options = {})
2400
+ req = build_request(:delete_bucket_ownership_controls, params)
2401
+ req.send_request(options)
2402
+ end
2403
+
2257
2404
  # This implementation of the DELETE operation uses the policy
2258
2405
  # subresource to delete the policy of a specified bucket. If you are
2259
2406
  # using an identity other than the root user of the AWS account that
@@ -2546,14 +2693,24 @@ module Aws::S3
2546
2693
  # When using this API with an access point, you must direct requests to
2547
2694
  # the access point hostname. The access point hostname takes the form
2548
2695
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
2549
- # When using this operation using an access point through the AWS SDKs,
2696
+ # When using this operation with an access point through the AWS SDKs,
2550
2697
  # you provide the access point ARN in place of the bucket name. For more
2551
2698
  # information about access point ARNs, see [Using Access Points][1] in
2552
2699
  # the *Amazon Simple Storage Service Developer Guide*.
2553
2700
  #
2701
+ # When using this API with Amazon S3 on Outposts, you must direct
2702
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
2703
+ # takes the form
2704
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
2705
+ # When using this operation using S3 on Outposts through the AWS SDKs,
2706
+ # you provide the Outposts bucket ARN in place of the bucket name. For
2707
+ # more information about S3 on Outposts ARNs, see [Using S3 on
2708
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
2709
+ #
2554
2710
  #
2555
2711
  #
2556
2712
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
2713
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
2557
2714
  #
2558
2715
  # @option params [required, String] :key
2559
2716
  # Key name of the object to delete.
@@ -2594,6 +2751,15 @@ module Aws::S3
2594
2751
  # * {Types::DeleteObjectOutput#request_charged #request_charged} => String
2595
2752
  #
2596
2753
  #
2754
+ # @example Example: To delete an object (from a non-versioned bucket)
2755
+ #
2756
+ # # The following example deletes an object from a non-versioned bucket.
2757
+ #
2758
+ # resp = client.delete_object({
2759
+ # bucket: "ExampleBucket",
2760
+ # key: "HappyFace.jpg",
2761
+ # })
2762
+ #
2597
2763
  # @example Example: To delete an object
2598
2764
  #
2599
2765
  # # The following example deletes an object from an S3 bucket.
@@ -2607,15 +2773,6 @@ module Aws::S3
2607
2773
  # {
2608
2774
  # }
2609
2775
  #
2610
- # @example Example: To delete an object (from a non-versioned bucket)
2611
- #
2612
- # # The following example deletes an object from a non-versioned bucket.
2613
- #
2614
- # resp = client.delete_object({
2615
- # bucket: "ExampleBucket",
2616
- # key: "HappyFace.jpg",
2617
- # })
2618
- #
2619
2776
  # @example Request syntax with placeholder values
2620
2777
  #
2621
2778
  # resp = client.delete_object({
@@ -2672,14 +2829,24 @@ module Aws::S3
2672
2829
  # When using this API with an access point, you must direct requests to
2673
2830
  # the access point hostname. The access point hostname takes the form
2674
2831
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
2675
- # When using this operation using an access point through the AWS SDKs,
2832
+ # When using this operation with an access point through the AWS SDKs,
2676
2833
  # you provide the access point ARN in place of the bucket name. For more
2677
2834
  # information about access point ARNs, see [Using Access Points][1] in
2678
2835
  # the *Amazon Simple Storage Service Developer Guide*.
2679
2836
  #
2837
+ # When using this API with Amazon S3 on Outposts, you must direct
2838
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
2839
+ # takes the form
2840
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
2841
+ # When using this operation using S3 on Outposts through the AWS SDKs,
2842
+ # you provide the Outposts bucket ARN in place of the bucket name. For
2843
+ # more information about S3 on Outposts ARNs, see [Using S3 on
2844
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
2845
+ #
2680
2846
  #
2681
2847
  #
2682
2848
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
2849
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
2683
2850
  #
2684
2851
  # @option params [required, String] :key
2685
2852
  # Name of the object key.
@@ -2697,35 +2864,35 @@ module Aws::S3
2697
2864
  # * {Types::DeleteObjectTaggingOutput#version_id #version_id} => String
2698
2865
  #
2699
2866
  #
2700
- # @example Example: To remove tag set from an object version
2867
+ # @example Example: To remove tag set from an object
2701
2868
  #
2702
- # # The following example removes tag set associated with the specified object version. The request specifies both the
2703
- # # object key and object version.
2869
+ # # The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the
2870
+ # # operation removes tag set from the latest object version.
2704
2871
  #
2705
2872
  # resp = client.delete_object_tagging({
2706
2873
  # bucket: "examplebucket",
2707
2874
  # key: "HappyFace.jpg",
2708
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
2709
2875
  # })
2710
2876
  #
2711
2877
  # resp.to_h outputs the following:
2712
2878
  # {
2713
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
2879
+ # version_id: "null",
2714
2880
  # }
2715
2881
  #
2716
- # @example Example: To remove tag set from an object
2882
+ # @example Example: To remove tag set from an object version
2717
2883
  #
2718
- # # The following example removes tag set associated with the specified object. If the bucket is versioning enabled, the
2719
- # # operation removes tag set from the latest object version.
2884
+ # # The following example removes tag set associated with the specified object version. The request specifies both the
2885
+ # # object key and object version.
2720
2886
  #
2721
2887
  # resp = client.delete_object_tagging({
2722
2888
  # bucket: "examplebucket",
2723
2889
  # key: "HappyFace.jpg",
2890
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
2724
2891
  # })
2725
2892
  #
2726
2893
  # resp.to_h outputs the following:
2727
2894
  # {
2728
- # version_id: "null",
2895
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
2729
2896
  # }
2730
2897
  #
2731
2898
  # @example Request syntax with placeholder values
@@ -2809,14 +2976,24 @@ module Aws::S3
2809
2976
  # When using this API with an access point, you must direct requests to
2810
2977
  # the access point hostname. The access point hostname takes the form
2811
2978
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
2812
- # When using this operation using an access point through the AWS SDKs,
2979
+ # When using this operation with an access point through the AWS SDKs,
2813
2980
  # you provide the access point ARN in place of the bucket name. For more
2814
2981
  # information about access point ARNs, see [Using Access Points][1] in
2815
2982
  # the *Amazon Simple Storage Service Developer Guide*.
2816
2983
  #
2984
+ # When using this API with Amazon S3 on Outposts, you must direct
2985
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
2986
+ # takes the form
2987
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
2988
+ # When using this operation using S3 on Outposts through the AWS SDKs,
2989
+ # you provide the Outposts bucket ARN in place of the bucket name. For
2990
+ # more information about S3 on Outposts ARNs, see [Using S3 on
2991
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
2992
+ #
2817
2993
  #
2818
2994
  #
2819
2995
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
2996
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
2820
2997
  #
2821
2998
  # @option params [required, Types::Delete] :delete
2822
2999
  # Container for the request.
@@ -2855,22 +3032,20 @@ module Aws::S3
2855
3032
  # * {Types::DeleteObjectsOutput#errors #errors} => Array&lt;Types::Error&gt;
2856
3033
  #
2857
3034
  #
2858
- # @example Example: To delete multiple object versions from a versioned bucket
3035
+ # @example Example: To delete multiple objects from a versioned bucket
2859
3036
  #
2860
- # # The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object
2861
- # # versions and returns the key and versions of deleted objects in the response.
3037
+ # # The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the
3038
+ # # object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.
2862
3039
  #
2863
3040
  # resp = client.delete_objects({
2864
3041
  # bucket: "examplebucket",
2865
3042
  # delete: {
2866
3043
  # objects: [
2867
3044
  # {
2868
- # key: "HappyFace.jpg",
2869
- # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
3045
+ # key: "objectkey1",
2870
3046
  # },
2871
3047
  # {
2872
- # key: "HappyFace.jpg",
2873
- # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
3048
+ # key: "objectkey2",
2874
3049
  # },
2875
3050
  # ],
2876
3051
  # quiet: false,
@@ -2881,30 +3056,34 @@ module Aws::S3
2881
3056
  # {
2882
3057
  # deleted: [
2883
3058
  # {
2884
- # key: "HappyFace.jpg",
2885
- # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
3059
+ # delete_marker: true,
3060
+ # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
3061
+ # key: "objectkey1",
2886
3062
  # },
2887
3063
  # {
2888
- # key: "HappyFace.jpg",
2889
- # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
3064
+ # delete_marker: true,
3065
+ # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
3066
+ # key: "objectkey2",
2890
3067
  # },
2891
3068
  # ],
2892
3069
  # }
2893
3070
  #
2894
- # @example Example: To delete multiple objects from a versioned bucket
3071
+ # @example Example: To delete multiple object versions from a versioned bucket
2895
3072
  #
2896
- # # The following example deletes objects from a bucket. The bucket is versioned, and the request does not specify the
2897
- # # object version to delete. In this case, all versions remain in the bucket and S3 adds a delete marker.
3073
+ # # The following example deletes objects from a bucket. The request specifies object versions. S3 deletes specific object
3074
+ # # versions and returns the key and versions of deleted objects in the response.
2898
3075
  #
2899
3076
  # resp = client.delete_objects({
2900
3077
  # bucket: "examplebucket",
2901
3078
  # delete: {
2902
3079
  # objects: [
2903
3080
  # {
2904
- # key: "objectkey1",
3081
+ # key: "HappyFace.jpg",
3082
+ # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
2905
3083
  # },
2906
3084
  # {
2907
- # key: "objectkey2",
3085
+ # key: "HappyFace.jpg",
3086
+ # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
2908
3087
  # },
2909
3088
  # ],
2910
3089
  # quiet: false,
@@ -2915,14 +3094,12 @@ module Aws::S3
2915
3094
  # {
2916
3095
  # deleted: [
2917
3096
  # {
2918
- # delete_marker: true,
2919
- # delete_marker_version_id: "A._w1z6EFiCF5uhtQMDal9JDkID9tQ7F",
2920
- # key: "objectkey1",
3097
+ # key: "HappyFace.jpg",
3098
+ # version_id: "yoz3HB.ZhCS_tKVEmIOr7qYyyAaZSKVd",
2921
3099
  # },
2922
3100
  # {
2923
- # delete_marker: true,
2924
- # delete_marker_version_id: "iOd_ORxhkKe_e8G8_oSGxt2PjsCZKlkt",
2925
- # key: "objectkey2",
3101
+ # key: "HappyFace.jpg",
3102
+ # version_id: "2LWg7lQLnY41.maGB5Z6SWW.dcq0vx7b",
2926
3103
  # },
2927
3104
  # ],
2928
3105
  # }
@@ -3061,7 +3238,7 @@ module Aws::S3
3061
3238
  # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration.html
3062
3239
  #
3063
3240
  # @option params [required, String] :bucket
3064
- # Name of the bucket for which the accelerate configuration is
3241
+ # The name of the bucket for which the accelerate configuration is
3065
3242
  # retrieved.
3066
3243
  #
3067
3244
  # @option params [String] :expected_bucket_owner
@@ -3578,8 +3755,8 @@ module Aws::S3
3578
3755
  # combination of both. Accordingly, this section describes the latest
3579
3756
  # API. The response describes the new filter element that you can use to
3580
3757
  # specify a filter to select a subset of objects to which the rule
3581
- # applies. If you are still using previous version of the lifecycle
3582
- # configuration, it works. For the earlier API description, see
3758
+ # applies. If you are using a previous version of the lifecycle
3759
+ # configuration, it still works. For the earlier API description, see
3583
3760
  # [GetBucketLifecycle][1].
3584
3761
  #
3585
3762
  # </note>
@@ -3907,7 +4084,8 @@ module Aws::S3
3907
4084
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketNotificationConfiguration.html
3908
4085
  #
3909
4086
  # @option params [required, String] :bucket
3910
- # Name of the bucket for which to get the notification configuration.
4087
+ # The name of the bucket for which to get the notification
4088
+ # configuration.
3911
4089
  #
3912
4090
  # @option params [String] :expected_bucket_owner
3913
4091
  # The account id of the expected bucket owner. If the bucket is owned by
@@ -4040,7 +4218,8 @@ module Aws::S3
4040
4218
  # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketNotification.html
4041
4219
  #
4042
4220
  # @option params [required, String] :bucket
4043
- # Name of the bucket for which to get the notification configuration.
4221
+ # The name of the bucket for which to get the notification
4222
+ # configuration.
4044
4223
  #
4045
4224
  # @option params [String] :expected_bucket_owner
4046
4225
  # The account id of the expected bucket owner. If the bucket is owned by
@@ -4096,6 +4275,56 @@ module Aws::S3
4096
4275
  req.send_request(options)
4097
4276
  end
4098
4277
 
4278
+ # Retrieves `OwnershipControls` for an Amazon S3 bucket. To use this
4279
+ # operation, you must have the `s3:GetBucketOwnershipControls`
4280
+ # permission. For more information about Amazon S3 permissions, see
4281
+ # [Specifying Permissions in a Policy][1].
4282
+ #
4283
+ # For information about Amazon S3 Object Ownership, see [Using Object
4284
+ # Ownership][2].
4285
+ #
4286
+ # The following operations are related to `GetBucketOwnershipControls`\:
4287
+ #
4288
+ # * PutBucketOwnershipControls
4289
+ #
4290
+ # * DeleteBucketOwnershipControls
4291
+ #
4292
+ #
4293
+ #
4294
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
4295
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html
4296
+ #
4297
+ # @option params [required, String] :bucket
4298
+ # The name of the Amazon S3 bucket whose `OwnershipControls` you want to
4299
+ # retrieve.
4300
+ #
4301
+ # @option params [String] :expected_bucket_owner
4302
+ #
4303
+ # @return [Types::GetBucketOwnershipControlsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4304
+ #
4305
+ # * {Types::GetBucketOwnershipControlsOutput#ownership_controls #ownership_controls} => Types::OwnershipControls
4306
+ #
4307
+ # @example Request syntax with placeholder values
4308
+ #
4309
+ # resp = client.get_bucket_ownership_controls({
4310
+ # bucket: "BucketName", # required
4311
+ # expected_bucket_owner: "AccountId",
4312
+ # })
4313
+ #
4314
+ # @example Response structure
4315
+ #
4316
+ # resp.ownership_controls.rules #=> Array
4317
+ # resp.ownership_controls.rules[0].object_ownership #=> String, one of "BucketOwnerPreferred", "ObjectWriter"
4318
+ #
4319
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControls AWS API Documentation
4320
+ #
4321
+ # @overload get_bucket_ownership_controls(params = {})
4322
+ # @param [Hash] params ({})
4323
+ def get_bucket_ownership_controls(params = {}, options = {})
4324
+ req = build_request(:get_bucket_ownership_controls, params)
4325
+ req.send_request(options)
4326
+ end
4327
+
4099
4328
  # Returns the policy of a specified bucket. If you are using an identity
4100
4329
  # other than the root user of the AWS account that owns the bucket, the
4101
4330
  # calling identity must have the `GetBucketPolicy` permissions on the
@@ -4332,7 +4561,7 @@ module Aws::S3
4332
4561
  # resp.replication_configuration.rules[0].existing_object_replication.status #=> String, one of "Enabled", "Disabled"
4333
4562
  # resp.replication_configuration.rules[0].destination.bucket #=> String
4334
4563
  # resp.replication_configuration.rules[0].destination.account #=> String
4335
- # resp.replication_configuration.rules[0].destination.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE"
4564
+ # resp.replication_configuration.rules[0].destination.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS"
4336
4565
  # resp.replication_configuration.rules[0].destination.access_control_translation.owner #=> String, one of "Destination"
4337
4566
  # resp.replication_configuration.rules[0].destination.encryption_configuration.replica_kms_key_id #=> String
4338
4567
  # resp.replication_configuration.rules[0].destination.replication_time.status #=> String, one of "Enabled", "Disabled"
@@ -4818,14 +5047,24 @@ module Aws::S3
4818
5047
  # When using this API with an access point, you must direct requests to
4819
5048
  # the access point hostname. The access point hostname takes the form
4820
5049
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
4821
- # When using this operation using an access point through the AWS SDKs,
5050
+ # When using this operation with an access point through the AWS SDKs,
4822
5051
  # you provide the access point ARN in place of the bucket name. For more
4823
5052
  # information about access point ARNs, see [Using Access Points][1] in
4824
5053
  # the *Amazon Simple Storage Service Developer Guide*.
4825
5054
  #
5055
+ # When using this API with Amazon S3 on Outposts, you must direct
5056
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
5057
+ # takes the form
5058
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
5059
+ # When using this operation using S3 on Outposts through the AWS SDKs,
5060
+ # you provide the Outposts bucket ARN in place of the bucket name. For
5061
+ # more information about S3 on Outposts ARNs, see [Using S3 on
5062
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
5063
+ #
4826
5064
  #
4827
5065
  #
4828
5066
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
5067
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
4829
5068
  #
4830
5069
  # @option params [String] :if_match
4831
5070
  # Return the object only if its entity tag (ETag) is the same as the one
@@ -4955,49 +5194,49 @@ module Aws::S3
4955
5194
  # * {Types::GetObjectOutput#object_lock_legal_hold_status #object_lock_legal_hold_status} => String
4956
5195
  #
4957
5196
  #
4958
- # @example Example: To retrieve a byte range of an object
5197
+ # @example Example: To retrieve an object
4959
5198
  #
4960
- # # The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a
4961
- # # specific byte range.
5199
+ # # The following example retrieves an object for an S3 bucket.
4962
5200
  #
4963
5201
  # resp = client.get_object({
4964
5202
  # bucket: "examplebucket",
4965
- # key: "SampleFile.txt",
4966
- # range: "bytes=0-9",
5203
+ # key: "HappyFace.jpg",
4967
5204
  # })
4968
5205
  #
4969
5206
  # resp.to_h outputs the following:
4970
5207
  # {
4971
5208
  # accept_ranges: "bytes",
4972
- # content_length: 10,
4973
- # content_range: "bytes 0-9/43",
4974
- # content_type: "text/plain",
4975
- # etag: "\"0d94420ffd0bc68cd3d152506b97a9cc\"",
4976
- # last_modified: Time.parse("Thu, 09 Oct 2014 22:57:28 GMT"),
5209
+ # content_length: 3191,
5210
+ # content_type: "image/jpeg",
5211
+ # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
5212
+ # last_modified: Time.parse("Thu, 15 Dec 2016 01:19:41 GMT"),
4977
5213
  # metadata: {
4978
5214
  # },
5215
+ # tag_count: 2,
4979
5216
  # version_id: "null",
4980
5217
  # }
4981
5218
  #
4982
- # @example Example: To retrieve an object
5219
+ # @example Example: To retrieve a byte range of an object
4983
5220
  #
4984
- # # The following example retrieves an object for an S3 bucket.
5221
+ # # The following example retrieves an object for an S3 bucket. The request specifies the range header to retrieve a
5222
+ # # specific byte range.
4985
5223
  #
4986
5224
  # resp = client.get_object({
4987
5225
  # bucket: "examplebucket",
4988
- # key: "HappyFace.jpg",
5226
+ # key: "SampleFile.txt",
5227
+ # range: "bytes=0-9",
4989
5228
  # })
4990
5229
  #
4991
5230
  # resp.to_h outputs the following:
4992
5231
  # {
4993
5232
  # accept_ranges: "bytes",
4994
- # content_length: 3191,
4995
- # content_type: "image/jpeg",
4996
- # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
4997
- # last_modified: Time.parse("Thu, 15 Dec 2016 01:19:41 GMT"),
5233
+ # content_length: 10,
5234
+ # content_range: "bytes 0-9/43",
5235
+ # content_type: "text/plain",
5236
+ # etag: "\"0d94420ffd0bc68cd3d152506b97a9cc\"",
5237
+ # last_modified: Time.parse("Thu, 09 Oct 2014 22:57:28 GMT"),
4998
5238
  # metadata: {
4999
5239
  # },
5000
- # tag_count: 2,
5001
5240
  # version_id: "null",
5002
5241
  # }
5003
5242
  #
@@ -5082,7 +5321,7 @@ module Aws::S3
5082
5321
  # resp.sse_customer_algorithm #=> String
5083
5322
  # resp.sse_customer_key_md5 #=> String
5084
5323
  # resp.ssekms_key_id #=> String
5085
- # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE"
5324
+ # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS"
5086
5325
  # resp.request_charged #=> String, one of "requester"
5087
5326
  # resp.replication_status #=> String, one of "COMPLETE", "PENDING", "FAILED", "REPLICA"
5088
5327
  # resp.parts_count #=> Integer
@@ -5101,7 +5340,9 @@ module Aws::S3
5101
5340
  end
5102
5341
 
5103
5342
  # Returns the access control list (ACL) of an object. To use this
5104
- # operation, you must have READ\_ACP access to the object.
5343
+ # operation, you must have `READ_ACP` access to the object.
5344
+ #
5345
+ # This action is not supported by Amazon S3 on Outposts.
5105
5346
  #
5106
5347
  # **Versioning**
5107
5348
  #
@@ -5130,7 +5371,7 @@ module Aws::S3
5130
5371
  # When using this API with an access point, you must direct requests to
5131
5372
  # the access point hostname. The access point hostname takes the form
5132
5373
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
5133
- # When using this operation using an access point through the AWS SDKs,
5374
+ # When using this operation with an access point through the AWS SDKs,
5134
5375
  # you provide the access point ARN in place of the bucket name. For more
5135
5376
  # information about access point ARNs, see [Using Access Points][1] in
5136
5377
  # the *Amazon Simple Storage Service Developer Guide*.
@@ -5254,6 +5495,8 @@ module Aws::S3
5254
5495
  # Gets an object's current Legal Hold status. For more information, see
5255
5496
  # [Locking Objects][1].
5256
5497
  #
5498
+ # This action is not supported by Amazon S3 on Outposts.
5499
+ #
5257
5500
  #
5258
5501
  #
5259
5502
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
@@ -5265,7 +5508,7 @@ module Aws::S3
5265
5508
  # When using this API with an access point, you must direct requests to
5266
5509
  # the access point hostname. The access point hostname takes the form
5267
5510
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
5268
- # When using this operation using an access point through the AWS SDKs,
5511
+ # When using this operation with an access point through the AWS SDKs,
5269
5512
  # you provide the access point ARN in place of the bucket name. For more
5270
5513
  # information about access point ARNs, see [Using Access Points][1] in
5271
5514
  # the *Amazon Simple Storage Service Developer Guide*.
@@ -5337,6 +5580,18 @@ module Aws::S3
5337
5580
  # @option params [required, String] :bucket
5338
5581
  # The bucket whose Object Lock configuration you want to retrieve.
5339
5582
  #
5583
+ # When using this API with an access point, you must direct requests to
5584
+ # the access point hostname. The access point hostname takes the form
5585
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
5586
+ # When using this operation with an access point through the AWS SDKs,
5587
+ # you provide the access point ARN in place of the bucket name. For more
5588
+ # information about access point ARNs, see [Using Access Points][1] in
5589
+ # the *Amazon Simple Storage Service Developer Guide*.
5590
+ #
5591
+ #
5592
+ #
5593
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
5594
+ #
5340
5595
  # @option params [String] :expected_bucket_owner
5341
5596
  # The account id of the expected bucket owner. If the bucket is owned by
5342
5597
  # a different account, the request will fail with an HTTP `403 (Access
@@ -5372,6 +5627,8 @@ module Aws::S3
5372
5627
  # Retrieves an object's retention settings. For more information, see
5373
5628
  # [Locking Objects][1].
5374
5629
  #
5630
+ # This action is not supported by Amazon S3 on Outposts.
5631
+ #
5375
5632
  #
5376
5633
  #
5377
5634
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/object-lock.html
@@ -5383,7 +5640,7 @@ module Aws::S3
5383
5640
  # When using this API with an access point, you must direct requests to
5384
5641
  # the access point hostname. The access point hostname takes the form
5385
5642
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
5386
- # When using this operation using an access point through the AWS SDKs,
5643
+ # When using this operation with an access point through the AWS SDKs,
5387
5644
  # you provide the access point ARN in place of the bucket name. For more
5388
5645
  # information about access point ARNs, see [Using Access Points][1] in
5389
5646
  # the *Amazon Simple Storage Service Developer Guide*.
@@ -5478,14 +5735,24 @@ module Aws::S3
5478
5735
  # When using this API with an access point, you must direct requests to
5479
5736
  # the access point hostname. The access point hostname takes the form
5480
5737
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
5481
- # When using this operation using an access point through the AWS SDKs,
5738
+ # When using this operation with an access point through the AWS SDKs,
5482
5739
  # you provide the access point ARN in place of the bucket name. For more
5483
5740
  # information about access point ARNs, see [Using Access Points][1] in
5484
5741
  # the *Amazon Simple Storage Service Developer Guide*.
5485
5742
  #
5743
+ # When using this API with Amazon S3 on Outposts, you must direct
5744
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
5745
+ # takes the form
5746
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
5747
+ # When using this operation using S3 on Outposts through the AWS SDKs,
5748
+ # you provide the Outposts bucket ARN in place of the bucket name. For
5749
+ # more information about S3 on Outposts ARNs, see [Using S3 on
5750
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
5751
+ #
5486
5752
  #
5487
5753
  #
5488
5754
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
5755
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
5489
5756
  #
5490
5757
  # @option params [required, String] :key
5491
5758
  # Object key for which to get the tagging information.
@@ -5504,49 +5771,49 @@ module Aws::S3
5504
5771
  # * {Types::GetObjectTaggingOutput#tag_set #tag_set} => Array&lt;Types::Tag&gt;
5505
5772
  #
5506
5773
  #
5507
- # @example Example: To retrieve tag set of an object
5774
+ # @example Example: To retrieve tag set of a specific object version
5508
5775
  #
5509
- # # The following example retrieves tag set of an object.
5776
+ # # The following example retrieves tag set of an object. The request specifies object version.
5510
5777
  #
5511
5778
  # resp = client.get_object_tagging({
5512
5779
  # bucket: "examplebucket",
5513
- # key: "HappyFace.jpg",
5780
+ # key: "exampleobject",
5781
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
5514
5782
  # })
5515
5783
  #
5516
5784
  # resp.to_h outputs the following:
5517
5785
  # {
5518
5786
  # tag_set: [
5519
5787
  # {
5520
- # key: "Key4",
5521
- # value: "Value4",
5522
- # },
5523
- # {
5524
- # key: "Key3",
5525
- # value: "Value3",
5788
+ # key: "Key1",
5789
+ # value: "Value1",
5526
5790
  # },
5527
5791
  # ],
5528
- # version_id: "null",
5792
+ # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
5529
5793
  # }
5530
5794
  #
5531
- # @example Example: To retrieve tag set of a specific object version
5795
+ # @example Example: To retrieve tag set of an object
5532
5796
  #
5533
- # # The following example retrieves tag set of an object. The request specifies object version.
5797
+ # # The following example retrieves tag set of an object.
5534
5798
  #
5535
5799
  # resp = client.get_object_tagging({
5536
5800
  # bucket: "examplebucket",
5537
- # key: "exampleobject",
5538
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
5801
+ # key: "HappyFace.jpg",
5539
5802
  # })
5540
5803
  #
5541
5804
  # resp.to_h outputs the following:
5542
5805
  # {
5543
5806
  # tag_set: [
5544
5807
  # {
5545
- # key: "Key1",
5546
- # value: "Value1",
5808
+ # key: "Key4",
5809
+ # value: "Value4",
5810
+ # },
5811
+ # {
5812
+ # key: "Key3",
5813
+ # value: "Value3",
5547
5814
  # },
5548
5815
  # ],
5549
- # version_id: "ydlaNkwWm0SfKJR.T1b1fIdPRbldTYRI",
5816
+ # version_id: "null",
5550
5817
  # }
5551
5818
  #
5552
5819
  # @example Request syntax with placeholder values
@@ -5574,18 +5841,20 @@ module Aws::S3
5574
5841
  req.send_request(options)
5575
5842
  end
5576
5843
 
5577
- # Return torrent files from a bucket. BitTorrent can save you bandwidth
5844
+ # Returns torrent files from a bucket. BitTorrent can save you bandwidth
5578
5845
  # when you're distributing large files. For more information about
5579
- # BitTorrent, see [Amazon S3 Torrent][1].
5846
+ # BitTorrent, see [Using BitTorrent with Amazon S3][1].
5580
5847
  #
5581
- # <note markdown="1"> You can get torrent only for objects that are less than 5 GB in size
5582
- # and that are not encrypted using server-side encryption with
5848
+ # <note markdown="1"> You can get torrent only for objects that are less than 5 GB in size,
5849
+ # and that are not encrypted using server-side encryption with a
5583
5850
  # customer-provided encryption key.
5584
5851
  #
5585
5852
  # </note>
5586
5853
  #
5587
5854
  # To use GET, you must have READ access to the object.
5588
5855
  #
5856
+ # This action is not supported by Amazon S3 on Outposts.
5857
+ #
5589
5858
  # The following operation is related to `GetObjectTorrent`\:
5590
5859
  #
5591
5860
  # * [GetObject][2]
@@ -5757,6 +6026,28 @@ module Aws::S3
5757
6026
  # @option params [required, String] :bucket
5758
6027
  # The bucket name.
5759
6028
  #
6029
+ # When using this API with an access point, you must direct requests to
6030
+ # the access point hostname. The access point hostname takes the form
6031
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
6032
+ # When using this operation with an access point through the AWS SDKs,
6033
+ # you provide the access point ARN in place of the bucket name. For more
6034
+ # information about access point ARNs, see [Using Access Points][1] in
6035
+ # the *Amazon Simple Storage Service Developer Guide*.
6036
+ #
6037
+ # When using this API with Amazon S3 on Outposts, you must direct
6038
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
6039
+ # takes the form
6040
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
6041
+ # When using this operation using S3 on Outposts through the AWS SDKs,
6042
+ # you provide the Outposts bucket ARN in place of the bucket name. For
6043
+ # more information about S3 on Outposts ARNs, see [Using S3 on
6044
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
6045
+ #
6046
+ #
6047
+ #
6048
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
6049
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
6050
+ #
5760
6051
  # @option params [String] :expected_bucket_owner
5761
6052
  # The account id of the expected bucket owner. If the bucket is owned by
5762
6053
  # a different account, the request will fail with an HTTP `403 (Access
@@ -5882,6 +6173,28 @@ module Aws::S3
5882
6173
  # @option params [required, String] :bucket
5883
6174
  # The name of the bucket containing the object.
5884
6175
  #
6176
+ # When using this API with an access point, you must direct requests to
6177
+ # the access point hostname. The access point hostname takes the form
6178
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
6179
+ # When using this operation with an access point through the AWS SDKs,
6180
+ # you provide the access point ARN in place of the bucket name. For more
6181
+ # information about access point ARNs, see [Using Access Points][1] in
6182
+ # the *Amazon Simple Storage Service Developer Guide*.
6183
+ #
6184
+ # When using this API with Amazon S3 on Outposts, you must direct
6185
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
6186
+ # takes the form
6187
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
6188
+ # When using this operation using S3 on Outposts through the AWS SDKs,
6189
+ # you provide the Outposts bucket ARN in place of the bucket name. For
6190
+ # more information about S3 on Outposts ARNs, see [Using S3 on
6191
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
6192
+ #
6193
+ #
6194
+ #
6195
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
6196
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
6197
+ #
5885
6198
  # @option params [String] :if_match
5886
6199
  # Return the object only if its entity tag (ETag) is the same as the one
5887
6200
  # specified, otherwise return a 412 (precondition failed).
@@ -5904,13 +6217,17 @@ module Aws::S3
5904
6217
  # @option params [String] :range
5905
6218
  # Downloads the specified range bytes of an object. For more information
5906
6219
  # about the HTTP Range header, see
5907
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35]().
6220
+ # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35][1].
5908
6221
  #
5909
6222
  # <note markdown="1"> Amazon S3 doesn't support retrieving multiple ranges of data per
5910
6223
  # `GET` request.
5911
6224
  #
5912
6225
  # </note>
5913
6226
  #
6227
+ #
6228
+ #
6229
+ # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35
6230
+ #
5914
6231
  # @option params [String] :version_id
5915
6232
  # VersionId used to reference a specific version of the object.
5916
6233
  #
@@ -6050,7 +6367,7 @@ module Aws::S3
6050
6367
  # resp.sse_customer_algorithm #=> String
6051
6368
  # resp.sse_customer_key_md5 #=> String
6052
6369
  # resp.ssekms_key_id #=> String
6053
- # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE"
6370
+ # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS"
6054
6371
  # resp.request_charged #=> String, one of "requester"
6055
6372
  # resp.replication_status #=> String, one of "COMPLETE", "PENDING", "FAILED", "REPLICA"
6056
6373
  # resp.parts_count #=> Integer
@@ -6472,19 +6789,29 @@ module Aws::S3
6472
6789
  # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
6473
6790
  #
6474
6791
  # @option params [required, String] :bucket
6475
- # Name of the bucket to which the multipart upload was initiated.
6792
+ # The name of the bucket to which the multipart upload was initiated.
6476
6793
  #
6477
6794
  # When using this API with an access point, you must direct requests to
6478
6795
  # the access point hostname. The access point hostname takes the form
6479
6796
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
6480
- # When using this operation using an access point through the AWS SDKs,
6797
+ # When using this operation with an access point through the AWS SDKs,
6481
6798
  # you provide the access point ARN in place of the bucket name. For more
6482
6799
  # information about access point ARNs, see [Using Access Points][1] in
6483
6800
  # the *Amazon Simple Storage Service Developer Guide*.
6484
6801
  #
6802
+ # When using this API with Amazon S3 on Outposts, you must direct
6803
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
6804
+ # takes the form
6805
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
6806
+ # When using this operation using S3 on Outposts through the AWS SDKs,
6807
+ # you provide the Outposts bucket ARN in place of the bucket name. For
6808
+ # more information about S3 on Outposts ARNs, see [Using S3 on
6809
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
6810
+ #
6485
6811
  #
6486
6812
  #
6487
6813
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
6814
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
6488
6815
  #
6489
6816
  # @option params [String] :delimiter
6490
6817
  # Character you use to group keys.
@@ -6682,7 +7009,7 @@ module Aws::S3
6682
7009
  # resp.uploads[0].upload_id #=> String
6683
7010
  # resp.uploads[0].key #=> String
6684
7011
  # resp.uploads[0].initiated #=> Time
6685
- # resp.uploads[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE"
7012
+ # resp.uploads[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS"
6686
7013
  # resp.uploads[0].owner.display_name #=> String
6687
7014
  # resp.uploads[0].owner.id #=> String
6688
7015
  # resp.uploads[0].initiator.id #=> String
@@ -6700,7 +7027,7 @@ module Aws::S3
6700
7027
  req.send_request(options)
6701
7028
  end
6702
7029
 
6703
- # Returns metadata about all of the versions of objects in a bucket. You
7030
+ # Returns metadata about all versions of the objects in a bucket. You
6704
7031
  # can also use request parameters as selection criteria to return
6705
7032
  # metadata about a subset of all the object versions.
6706
7033
  #
@@ -6712,6 +7039,8 @@ module Aws::S3
6712
7039
  #
6713
7040
  # To use this operation, you must have READ access to the bucket.
6714
7041
  #
7042
+ # This action is not supported by Amazon S3 on Outposts.
7043
+ #
6715
7044
  # The following operations are related to `ListObjectVersions`\:
6716
7045
  #
6717
7046
  # * [ListObjectsV2][1]
@@ -6732,18 +7061,6 @@ module Aws::S3
6732
7061
  # @option params [required, String] :bucket
6733
7062
  # The bucket name that contains the objects.
6734
7063
  #
6735
- # When using this API with an access point, you must direct requests to
6736
- # the access point hostname. The access point hostname takes the form
6737
- # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
6738
- # When using this operation using an access point through the AWS SDKs,
6739
- # you provide the access point ARN in place of the bucket name. For more
6740
- # information about access point ARNs, see [Using Access Points][1] in
6741
- # the *Amazon Simple Storage Service Developer Guide*.
6742
- #
6743
- #
6744
- #
6745
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
6746
- #
6747
7064
  # @option params [String] :delimiter
6748
7065
  # A delimiter is a character that you specify to group keys. All keys
6749
7066
  # that contain the same string between the `prefix` and the first
@@ -6936,6 +7253,28 @@ module Aws::S3
6936
7253
  # @option params [required, String] :bucket
6937
7254
  # The name of the bucket containing the objects.
6938
7255
  #
7256
+ # When using this API with an access point, you must direct requests to
7257
+ # the access point hostname. The access point hostname takes the form
7258
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
7259
+ # When using this operation with an access point through the AWS SDKs,
7260
+ # you provide the access point ARN in place of the bucket name. For more
7261
+ # information about access point ARNs, see [Using Access Points][1] in
7262
+ # the *Amazon Simple Storage Service Developer Guide*.
7263
+ #
7264
+ # When using this API with Amazon S3 on Outposts, you must direct
7265
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
7266
+ # takes the form
7267
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
7268
+ # When using this operation using S3 on Outposts through the AWS SDKs,
7269
+ # you provide the Outposts bucket ARN in place of the bucket name. For
7270
+ # more information about S3 on Outposts ARNs, see [Using S3 on
7271
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
7272
+ #
7273
+ #
7274
+ #
7275
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
7276
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
7277
+ #
6939
7278
  # @option params [String] :delimiter
6940
7279
  # A delimiter is a character you use to group keys.
6941
7280
  #
@@ -7045,7 +7384,7 @@ module Aws::S3
7045
7384
  # resp.contents[0].last_modified #=> Time
7046
7385
  # resp.contents[0].etag #=> String
7047
7386
  # resp.contents[0].size #=> Integer
7048
- # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE"
7387
+ # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE", "OUTPOSTS"
7049
7388
  # resp.contents[0].owner.display_name #=> String
7050
7389
  # resp.contents[0].owner.id #=> String
7051
7390
  # resp.name #=> String
@@ -7111,14 +7450,24 @@ module Aws::S3
7111
7450
  # When using this API with an access point, you must direct requests to
7112
7451
  # the access point hostname. The access point hostname takes the form
7113
7452
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
7114
- # When using this operation using an access point through the AWS SDKs,
7453
+ # When using this operation with an access point through the AWS SDKs,
7115
7454
  # you provide the access point ARN in place of the bucket name. For more
7116
7455
  # information about access point ARNs, see [Using Access Points][1] in
7117
7456
  # the *Amazon Simple Storage Service Developer Guide*.
7118
7457
  #
7458
+ # When using this API with Amazon S3 on Outposts, you must direct
7459
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
7460
+ # takes the form
7461
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
7462
+ # When using this operation using S3 on Outposts through the AWS SDKs,
7463
+ # you provide the Outposts bucket ARN in place of the bucket name. For
7464
+ # more information about S3 on Outposts ARNs, see [Using S3 on
7465
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
7466
+ #
7119
7467
  #
7120
7468
  #
7121
7469
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
7470
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
7122
7471
  #
7123
7472
  # @option params [String] :delimiter
7124
7473
  # A delimiter is a character you use to group keys.
@@ -7236,7 +7585,7 @@ module Aws::S3
7236
7585
  # resp.contents[0].last_modified #=> Time
7237
7586
  # resp.contents[0].etag #=> String
7238
7587
  # resp.contents[0].size #=> Integer
7239
- # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE"
7588
+ # resp.contents[0].storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "GLACIER", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "DEEP_ARCHIVE", "OUTPOSTS"
7240
7589
  # resp.contents[0].owner.display_name #=> String
7241
7590
  # resp.contents[0].owner.id #=> String
7242
7591
  # resp.name #=> String
@@ -7302,19 +7651,29 @@ module Aws::S3
7302
7651
  # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
7303
7652
  #
7304
7653
  # @option params [required, String] :bucket
7305
- # Name of the bucket to which the parts are being uploaded.
7654
+ # The name of the bucket to which the parts are being uploaded.
7306
7655
  #
7307
7656
  # When using this API with an access point, you must direct requests to
7308
7657
  # the access point hostname. The access point hostname takes the form
7309
7658
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
7310
- # When using this operation using an access point through the AWS SDKs,
7659
+ # When using this operation with an access point through the AWS SDKs,
7311
7660
  # you provide the access point ARN in place of the bucket name. For more
7312
7661
  # information about access point ARNs, see [Using Access Points][1] in
7313
7662
  # the *Amazon Simple Storage Service Developer Guide*.
7314
7663
  #
7664
+ # When using this API with Amazon S3 on Outposts, you must direct
7665
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
7666
+ # takes the form
7667
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
7668
+ # When using this operation using S3 on Outposts through the AWS SDKs,
7669
+ # you provide the Outposts bucket ARN in place of the bucket name. For
7670
+ # more information about S3 on Outposts ARNs, see [Using S3 on
7671
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
7672
+ #
7315
7673
  #
7316
7674
  #
7317
7675
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
7676
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
7318
7677
  #
7319
7678
  # @option params [required, String] :key
7320
7679
  # Object key for which the multipart upload was initiated.
@@ -7435,7 +7794,7 @@ module Aws::S3
7435
7794
  # resp.initiator.display_name #=> String
7436
7795
  # resp.owner.display_name #=> String
7437
7796
  # resp.owner.id #=> String
7438
- # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE"
7797
+ # resp.storage_class #=> String, one of "STANDARD", "REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA", "INTELLIGENT_TIERING", "GLACIER", "DEEP_ARCHIVE", "OUTPOSTS"
7439
7798
  # resp.request_charged #=> String, one of "requester"
7440
7799
  #
7441
7800
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListParts AWS API Documentation
@@ -7494,7 +7853,7 @@ module Aws::S3
7494
7853
  # [5]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html
7495
7854
  #
7496
7855
  # @option params [required, String] :bucket
7497
- # Name of the bucket for which the accelerate configuration is set.
7856
+ # The name of the bucket for which the accelerate configuration is set.
7498
7857
  #
7499
7858
  # @option params [required, Types::AccelerateConfiguration] :accelerate_configuration
7500
7859
  # Container for setting the transfer acceleration state.
@@ -9071,6 +9430,64 @@ module Aws::S3
9071
9430
  req.send_request(options)
9072
9431
  end
9073
9432
 
9433
+ # Creates or modifies `OwnershipControls` for an Amazon S3 bucket. To
9434
+ # use this operation, you must have the `s3:GetBucketOwnershipControls`
9435
+ # permission. For more information about Amazon S3 permissions, see
9436
+ # [Specifying Permissions in a Policy][1].
9437
+ #
9438
+ # For information about Amazon S3 Object Ownership, see [Using Object
9439
+ # Ownership][2].
9440
+ #
9441
+ # The following operations are related to `GetBucketOwnershipControls`\:
9442
+ #
9443
+ # * GetBucketOwnershipControls
9444
+ #
9445
+ # * DeleteBucketOwnershipControls
9446
+ #
9447
+ #
9448
+ #
9449
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html
9450
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/about-object-ownership.html
9451
+ #
9452
+ # @option params [required, String] :bucket
9453
+ # The name of the Amazon S3 bucket whose `OwnershipControls` you want to
9454
+ # set.
9455
+ #
9456
+ # @option params [String] :content_md5
9457
+ # The MD5 hash of the `OwnershipControls` request body.
9458
+ #
9459
+ # @option params [String] :expected_bucket_owner
9460
+ #
9461
+ # @option params [required, Types::OwnershipControls] :ownership_controls
9462
+ # The `OwnershipControls` (BucketOwnerPreferred or ObjectWriter) that
9463
+ # you want to apply to this Amazon S3 bucket.
9464
+ #
9465
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
9466
+ #
9467
+ # @example Request syntax with placeholder values
9468
+ #
9469
+ # resp = client.put_bucket_ownership_controls({
9470
+ # bucket: "BucketName", # required
9471
+ # content_md5: "ContentMD5",
9472
+ # expected_bucket_owner: "AccountId",
9473
+ # ownership_controls: { # required
9474
+ # rules: [ # required
9475
+ # {
9476
+ # object_ownership: "BucketOwnerPreferred", # required, accepts BucketOwnerPreferred, ObjectWriter
9477
+ # },
9478
+ # ],
9479
+ # },
9480
+ # })
9481
+ #
9482
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketOwnershipControls AWS API Documentation
9483
+ #
9484
+ # @overload put_bucket_ownership_controls(params = {})
9485
+ # @param [Hash] params ({})
9486
+ def put_bucket_ownership_controls(params = {}, options = {})
9487
+ req = build_request(:put_bucket_ownership_controls, params)
9488
+ req.send_request(options)
9489
+ end
9490
+
9074
9491
  # Applies an Amazon S3 bucket policy to an Amazon S3 bucket. If you are
9075
9492
  # using an identity other than the root user of the AWS account that
9076
9493
  # owns the bucket, the calling identity must have the `PutBucketPolicy`
@@ -9317,7 +9734,7 @@ module Aws::S3
9317
9734
  # destination: { # required
9318
9735
  # bucket: "BucketName", # required
9319
9736
  # account: "AccountId",
9320
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
9737
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
9321
9738
  # access_control_translation: {
9322
9739
  # owner: "Destination", # required, accepts Destination
9323
9740
  # },
@@ -9880,11 +10297,12 @@ module Aws::S3
9880
10297
  #
9881
10298
  # **Storage Class Options**
9882
10299
  #
9883
- # By default, Amazon S3 uses the STANDARD storage class to store newly
10300
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
9884
10301
  # created objects. The STANDARD storage class provides high durability
9885
10302
  # and high availability. Depending on performance needs, you can specify
9886
- # a different storage class. For more information, see [Storage
9887
- # Classes][5] in the *Amazon S3 Service Developer Guide*.
10303
+ # a different Storage Class. Amazon S3 on Outposts only uses the
10304
+ # OUTPOSTS Storage Class. For more information, see [Storage Classes][5]
10305
+ # in the *Amazon S3 Service Developer Guide*.
9888
10306
  #
9889
10307
  # **Versioning**
9890
10308
  #
@@ -9920,6 +10338,8 @@ module Aws::S3
9920
10338
  # The canned ACL to apply to the object. For more information, see
9921
10339
  # [Canned ACL][1].
9922
10340
  #
10341
+ # This action is not supported by Amazon S3 on Outposts.
10342
+ #
9923
10343
  #
9924
10344
  #
9925
10345
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
@@ -9928,19 +10348,29 @@ module Aws::S3
9928
10348
  # Object data.
9929
10349
  #
9930
10350
  # @option params [required, String] :bucket
9931
- # Bucket name to which the PUT operation was initiated.
10351
+ # The bucket name to which the PUT operation was initiated.
9932
10352
  #
9933
10353
  # When using this API with an access point, you must direct requests to
9934
10354
  # the access point hostname. The access point hostname takes the form
9935
10355
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
9936
- # When using this operation using an access point through the AWS SDKs,
10356
+ # When using this operation with an access point through the AWS SDKs,
9937
10357
  # you provide the access point ARN in place of the bucket name. For more
9938
10358
  # information about access point ARNs, see [Using Access Points][1] in
9939
10359
  # the *Amazon Simple Storage Service Developer Guide*.
9940
10360
  #
10361
+ # When using this API with Amazon S3 on Outposts, you must direct
10362
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
10363
+ # takes the form
10364
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
10365
+ # When using this operation using S3 on Outposts through the AWS SDKs,
10366
+ # you provide the Outposts bucket ARN in place of the bucket name. For
10367
+ # more information about S3 on Outposts ARNs, see [Using S3 on
10368
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
10369
+ #
9941
10370
  #
9942
10371
  #
9943
10372
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
10373
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
9944
10374
  #
9945
10375
  # @option params [String] :cache_control
9946
10376
  # Can be used to specify caching behavior along the request/reply chain.
@@ -10017,15 +10447,23 @@ module Aws::S3
10017
10447
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
10018
10448
  # object.
10019
10449
  #
10450
+ # This action is not supported by Amazon S3 on Outposts.
10451
+ #
10020
10452
  # @option params [String] :grant_read
10021
10453
  # Allows grantee to read the object data and its metadata.
10022
10454
  #
10455
+ # This action is not supported by Amazon S3 on Outposts.
10456
+ #
10023
10457
  # @option params [String] :grant_read_acp
10024
10458
  # Allows grantee to read the object ACL.
10025
10459
  #
10460
+ # This action is not supported by Amazon S3 on Outposts.
10461
+ #
10026
10462
  # @option params [String] :grant_write_acp
10027
10463
  # Allows grantee to write the ACL for the applicable object.
10028
10464
  #
10465
+ # This action is not supported by Amazon S3 on Outposts.
10466
+ #
10029
10467
  # @option params [required, String] :key
10030
10468
  # Object key for which the PUT operation was initiated.
10031
10469
  #
@@ -10037,8 +10475,16 @@ module Aws::S3
10037
10475
  # Amazon S3 (for example, AES256, aws:kms).
10038
10476
  #
10039
10477
  # @option params [String] :storage_class
10040
- # If you don't specify, S3 Standard is the default storage class.
10041
- # Amazon S3 supports other storage classes.
10478
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
10479
+ # created objects. The STANDARD storage class provides high durability
10480
+ # and high availability. Depending on performance needs, you can specify
10481
+ # a different Storage Class. Amazon S3 on Outposts only uses the
10482
+ # OUTPOSTS Storage Class. For more information, see [Storage Classes][1]
10483
+ # in the *Amazon S3 Service Developer Guide*.
10484
+ #
10485
+ #
10486
+ #
10487
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
10042
10488
  #
10043
10489
  # @option params [String] :website_redirect_location
10044
10490
  # If the bucket is configured as a website, redirects requests for this
@@ -10147,40 +10593,62 @@ module Aws::S3
10147
10593
  # * {Types::PutObjectOutput#request_charged #request_charged} => String
10148
10594
  #
10149
10595
  #
10150
- # @example Example: To upload an object and specify server-side encryption and object tags
10596
+ # @example Example: To upload an object
10151
10597
  #
10152
- # # The following example uploads and object. The request specifies the optional server-side encryption option. The request
10153
- # # also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.
10598
+ # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
10599
+ # # syntax. S3 returns VersionId of the newly created object.
10600
+ #
10601
+ # resp = client.put_object({
10602
+ # body: "HappyFace.jpg",
10603
+ # bucket: "examplebucket",
10604
+ # key: "HappyFace.jpg",
10605
+ # })
10606
+ #
10607
+ # resp.to_h outputs the following:
10608
+ # {
10609
+ # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
10610
+ # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
10611
+ # }
10612
+ #
10613
+ # @example Example: To upload object and specify user-defined metadata
10614
+ #
10615
+ # # The following example creates an object. The request also specifies optional metadata. If the bucket is versioning
10616
+ # # enabled, S3 returns version ID in response.
10154
10617
  #
10155
10618
  # resp = client.put_object({
10156
10619
  # body: "filetoupload",
10157
10620
  # bucket: "examplebucket",
10158
10621
  # key: "exampleobject",
10159
- # server_side_encryption: "AES256",
10160
- # tagging: "key1=value1&key2=value2",
10622
+ # metadata: {
10623
+ # "metadata1" => "value1",
10624
+ # "metadata2" => "value2",
10625
+ # },
10161
10626
  # })
10162
10627
  #
10163
10628
  # resp.to_h outputs the following:
10164
10629
  # {
10165
10630
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
10166
- # server_side_encryption: "AES256",
10167
- # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
10631
+ # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
10168
10632
  # }
10169
10633
  #
10170
- # @example Example: To create an object.
10634
+ # @example Example: To upload an object and specify server-side encryption and object tags
10171
10635
  #
10172
- # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
10636
+ # # The following example uploads and object. The request specifies the optional server-side encryption option. The request
10637
+ # # also specifies optional object tags. If the bucket is versioning enabled, S3 returns version ID in response.
10173
10638
  #
10174
10639
  # resp = client.put_object({
10175
10640
  # body: "filetoupload",
10176
10641
  # bucket: "examplebucket",
10177
- # key: "objectkey",
10642
+ # key: "exampleobject",
10643
+ # server_side_encryption: "AES256",
10644
+ # tagging: "key1=value1&key2=value2",
10178
10645
  # })
10179
10646
  #
10180
10647
  # resp.to_h outputs the following:
10181
10648
  # {
10182
10649
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
10183
- # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
10650
+ # server_side_encryption: "AES256",
10651
+ # version_id: "Ri.vC6qVlA4dEnjgRV4ZHsHoFIjqEMNt",
10184
10652
  # }
10185
10653
  #
10186
10654
  # @example Example: To upload an object and specify optional tags
@@ -10221,27 +10689,6 @@ module Aws::S3
10221
10689
  # version_id: "CG612hodqujkf8FaaNfp8U..FIhLROcp",
10222
10690
  # }
10223
10691
  #
10224
- # @example Example: To upload object and specify user-defined metadata
10225
- #
10226
- # # The following example creates an object. The request also specifies optional metadata. If the bucket is versioning
10227
- # # enabled, S3 returns version ID in response.
10228
- #
10229
- # resp = client.put_object({
10230
- # body: "filetoupload",
10231
- # bucket: "examplebucket",
10232
- # key: "exampleobject",
10233
- # metadata: {
10234
- # "metadata1" => "value1",
10235
- # "metadata2" => "value2",
10236
- # },
10237
- # })
10238
- #
10239
- # resp.to_h outputs the following:
10240
- # {
10241
- # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
10242
- # version_id: "pSKidl4pHBiNwukdbcPXAIs.sshFFOc0",
10243
- # }
10244
- #
10245
10692
  # @example Example: To upload an object and specify canned ACL.
10246
10693
  #
10247
10694
  # # The following example uploads and object. The request specifies optional canned ACL (access control list) to all READ
@@ -10260,21 +10707,20 @@ module Aws::S3
10260
10707
  # version_id: "Kirh.unyZwjQ69YxcQLA8z4F5j3kJJKr",
10261
10708
  # }
10262
10709
  #
10263
- # @example Example: To upload an object
10710
+ # @example Example: To create an object.
10264
10711
  #
10265
- # # The following example uploads an object to a versioning-enabled bucket. The source file is specified using Windows file
10266
- # # syntax. S3 returns VersionId of the newly created object.
10712
+ # # The following example creates an object. If the bucket is versioning enabled, S3 returns version ID in response.
10267
10713
  #
10268
10714
  # resp = client.put_object({
10269
- # body: "HappyFace.jpg",
10715
+ # body: "filetoupload",
10270
10716
  # bucket: "examplebucket",
10271
- # key: "HappyFace.jpg",
10717
+ # key: "objectkey",
10272
10718
  # })
10273
10719
  #
10274
10720
  # resp.to_h outputs the following:
10275
10721
  # {
10276
10722
  # etag: "\"6805f2cfc46c0f04559748bb039d69ae\"",
10277
- # version_id: "tpf3zF08nBplQK1XLOefGskR7mGDwcDk",
10723
+ # version_id: "Bvq0EDKxOcXLJXNo_Lkz37eM3R4pfzyQ",
10278
10724
  # }
10279
10725
  #
10280
10726
  # @example Streaming a file from disk
@@ -10306,7 +10752,7 @@ module Aws::S3
10306
10752
  # "MetadataKey" => "MetadataValue",
10307
10753
  # },
10308
10754
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
10309
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
10755
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
10310
10756
  # website_redirect_location: "WebsiteRedirectLocation",
10311
10757
  # sse_customer_algorithm: "SSECustomerAlgorithm",
10312
10758
  # sse_customer_key: "SSECustomerKey",
@@ -10343,11 +10789,13 @@ module Aws::S3
10343
10789
  end
10344
10790
 
10345
10791
  # Uses the `acl` subresource to set the access control list (ACL)
10346
- # permissions for an object that already exists in an S3 bucket. You
10347
- # must have `WRITE_ACP` permission to set the ACL of an object. For more
10792
+ # permissions for a new or existing object in an S3 bucket. You must
10793
+ # have `WRITE_ACP` permission to set the ACL of an object. For more
10348
10794
  # information, see [What permissions can I grant?][1] in the *Amazon
10349
10795
  # Simple Storage Service Developer Guide*.
10350
10796
  #
10797
+ # This action is not supported by Amazon S3 on Outposts.
10798
+ #
10351
10799
  # Depending on your application needs, you can choose to set the ACL on
10352
10800
  # an object using either the request body or the headers. For example,
10353
10801
  # if you have an existing application that updates a bucket ACL using
@@ -10511,7 +10959,7 @@ module Aws::S3
10511
10959
  # When using this API with an access point, you must direct requests to
10512
10960
  # the access point hostname. The access point hostname takes the form
10513
10961
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
10514
- # When using this operation using an access point through the AWS SDKs,
10962
+ # When using this operation with an access point through the AWS SDKs,
10515
10963
  # you provide the access point ARN in place of the bucket name. For more
10516
10964
  # information about access point ARNs, see [Using Access Points][1] in
10517
10965
  # the *Amazon Simple Storage Service Developer Guide*.
@@ -10534,12 +10982,18 @@ module Aws::S3
10534
10982
  # Allows grantee the read, write, read ACP, and write ACP permissions on
10535
10983
  # the bucket.
10536
10984
  #
10985
+ # This action is not supported by Amazon S3 on Outposts.
10986
+ #
10537
10987
  # @option params [String] :grant_read
10538
10988
  # Allows grantee to list the objects in the bucket.
10539
10989
  #
10990
+ # This action is not supported by Amazon S3 on Outposts.
10991
+ #
10540
10992
  # @option params [String] :grant_read_acp
10541
10993
  # Allows grantee to read the bucket ACL.
10542
10994
  #
10995
+ # This action is not supported by Amazon S3 on Outposts.
10996
+ #
10543
10997
  # @option params [String] :grant_write
10544
10998
  # Allows grantee to create, overwrite, and delete any object in the
10545
10999
  # bucket.
@@ -10547,9 +11001,33 @@ module Aws::S3
10547
11001
  # @option params [String] :grant_write_acp
10548
11002
  # Allows grantee to write the ACL for the applicable bucket.
10549
11003
  #
11004
+ # This action is not supported by Amazon S3 on Outposts.
11005
+ #
10550
11006
  # @option params [required, String] :key
10551
11007
  # Key for which the PUT operation was initiated.
10552
11008
  #
11009
+ # When using this API with an access point, you must direct requests to
11010
+ # the access point hostname. The access point hostname takes the form
11011
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
11012
+ # When using this operation with an access point through the AWS SDKs,
11013
+ # you provide the access point ARN in place of the bucket name. For more
11014
+ # information about access point ARNs, see [Using Access Points][1] in
11015
+ # the *Amazon Simple Storage Service Developer Guide*.
11016
+ #
11017
+ # When using this API with Amazon S3 on Outposts, you must direct
11018
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
11019
+ # takes the form
11020
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
11021
+ # When using this operation using S3 on Outposts through the AWS SDKs,
11022
+ # you provide the Outposts bucket ARN in place of the bucket name. For
11023
+ # more information about S3 on Outposts ARNs, see [Using S3 on
11024
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
11025
+ #
11026
+ #
11027
+ #
11028
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
11029
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
11030
+ #
10553
11031
  # @option params [String] :request_payer
10554
11032
  # Confirms that the requester knows that they will be charged for the
10555
11033
  # request. Bucket owners need not specify this parameter in their
@@ -10642,6 +11120,8 @@ module Aws::S3
10642
11120
 
10643
11121
  # Applies a Legal Hold configuration to the specified object.
10644
11122
  #
11123
+ # This action is not supported by Amazon S3 on Outposts.
11124
+ #
10645
11125
  # **Related Resources**
10646
11126
  #
10647
11127
  # * [Locking Objects][1]
@@ -10659,7 +11139,7 @@ module Aws::S3
10659
11139
  # When using this API with an access point, you must direct requests to
10660
11140
  # the access point hostname. The access point hostname takes the form
10661
11141
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
10662
- # When using this operation using an access point through the AWS SDKs,
11142
+ # When using this operation with an access point through the AWS SDKs,
10663
11143
  # you provide the access point ARN in place of the bucket name. For more
10664
11144
  # information about access point ARNs, see [Using Access Points][1] in
10665
11145
  # the *Amazon Simple Storage Service Developer Guide*.
@@ -10816,6 +11296,8 @@ module Aws::S3
10816
11296
 
10817
11297
  # Places an Object Retention configuration on an object.
10818
11298
  #
11299
+ # This action is not supported by Amazon S3 on Outposts.
11300
+ #
10819
11301
  # **Related Resources**
10820
11302
  #
10821
11303
  # * [Locking Objects][1]
@@ -10833,7 +11315,7 @@ module Aws::S3
10833
11315
  # When using this API with an access point, you must direct requests to
10834
11316
  # the access point hostname. The access point hostname takes the form
10835
11317
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
10836
- # When using this operation using an access point through the AWS SDKs,
11318
+ # When using this operation with an access point through the AWS SDKs,
10837
11319
  # you provide the access point ARN in place of the bucket name. For more
10838
11320
  # information about access point ARNs, see [Using Access Points][1] in
10839
11321
  # the *Amazon Simple Storage Service Developer Guide*.
@@ -10933,17 +11415,13 @@ module Aws::S3
10933
11415
  #
10934
11416
  # **Special Errors**
10935
11417
  #
10936
- # * ****
10937
- #
10938
- # * <i>Code: InvalidTagError </i>
11418
+ # * * <i>Code: InvalidTagError </i>
10939
11419
  #
10940
11420
  # * *Cause: The tag provided was not a valid tag. This error can occur
10941
11421
  # if the tag did not pass input validation. For more information,
10942
11422
  # see [Object Tagging][3].*
10943
11423
  #
10944
- # * ****
10945
- #
10946
- # * <i>Code: MalformedXMLError </i>
11424
+ # * * <i>Code: MalformedXMLError </i>
10947
11425
  #
10948
11426
  # * *Cause: The XML provided does not match the schema.*
10949
11427
  #
@@ -10975,14 +11453,24 @@ module Aws::S3
10975
11453
  # When using this API with an access point, you must direct requests to
10976
11454
  # the access point hostname. The access point hostname takes the form
10977
11455
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
10978
- # When using this operation using an access point through the AWS SDKs,
11456
+ # When using this operation with an access point through the AWS SDKs,
10979
11457
  # you provide the access point ARN in place of the bucket name. For more
10980
11458
  # information about access point ARNs, see [Using Access Points][1] in
10981
11459
  # the *Amazon Simple Storage Service Developer Guide*.
10982
11460
  #
11461
+ # When using this API with Amazon S3 on Outposts, you must direct
11462
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
11463
+ # takes the form
11464
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
11465
+ # When using this operation using S3 on Outposts through the AWS SDKs,
11466
+ # you provide the Outposts bucket ARN in place of the bucket name. For
11467
+ # more information about S3 on Outposts ARNs, see [Using S3 on
11468
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
11469
+ #
10983
11470
  #
10984
11471
  #
10985
11472
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
11473
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
10986
11474
  #
10987
11475
  # @option params [required, String] :key
10988
11476
  # Name of the object key.
@@ -11148,7 +11636,9 @@ module Aws::S3
11148
11636
 
11149
11637
  # Restores an archived copy of an object back into Amazon S3
11150
11638
  #
11151
- # This operation performs the following types of requests:
11639
+ # This action is not supported by Amazon S3 on Outposts.
11640
+ #
11641
+ # This action performs the following types of requests:
11152
11642
  #
11153
11643
  # * `select` - Perform a select query on an archived object
11154
11644
  #
@@ -11340,9 +11830,7 @@ module Aws::S3
11340
11830
  #
11341
11831
  # **Special Errors**
11342
11832
  #
11343
- # * ****
11344
- #
11345
- # * *Code: RestoreAlreadyInProgress*
11833
+ # * * *Code: RestoreAlreadyInProgress*
11346
11834
  #
11347
11835
  # * *Cause: Object restore is already in progress. (This error does
11348
11836
  # not apply to SELECT type requests.)*
@@ -11351,9 +11839,7 @@ module Aws::S3
11351
11839
  #
11352
11840
  # * *SOAP Fault Code Prefix: Client*
11353
11841
  #
11354
- # * ****
11355
- #
11356
- # * *Code: GlacierExpeditedRetrievalNotAvailable*
11842
+ # * * *Code: GlacierExpeditedRetrievalNotAvailable*
11357
11843
  #
11358
11844
  # * *Cause: S3 Glacier expedited retrievals are currently not
11359
11845
  # available. Try again later. (Returned if there is insufficient
@@ -11396,14 +11882,24 @@ module Aws::S3
11396
11882
  # When using this API with an access point, you must direct requests to
11397
11883
  # the access point hostname. The access point hostname takes the form
11398
11884
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
11399
- # When using this operation using an access point through the AWS SDKs,
11885
+ # When using this operation with an access point through the AWS SDKs,
11400
11886
  # you provide the access point ARN in place of the bucket name. For more
11401
11887
  # information about access point ARNs, see [Using Access Points][1] in
11402
11888
  # the *Amazon Simple Storage Service Developer Guide*.
11403
11889
  #
11890
+ # When using this API with Amazon S3 on Outposts, you must direct
11891
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
11892
+ # takes the form
11893
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
11894
+ # When using this operation using S3 on Outposts through the AWS SDKs,
11895
+ # you provide the Outposts bucket ARN in place of the bucket name. For
11896
+ # more information about S3 on Outposts ARNs, see [Using S3 on
11897
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
11898
+ #
11404
11899
  #
11405
11900
  #
11406
11901
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
11902
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
11407
11903
  #
11408
11904
  # @option params [required, String] :key
11409
11905
  # Object key for which the operation was initiated.
@@ -11538,7 +12034,7 @@ module Aws::S3
11538
12034
  # value: "MetadataValue",
11539
12035
  # },
11540
12036
  # ],
11541
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
12037
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
11542
12038
  # },
11543
12039
  # },
11544
12040
  # },
@@ -11568,6 +12064,8 @@ module Aws::S3
11568
12064
  # returns only records that match the specified SQL expression. You must
11569
12065
  # also specify the data serialization format for the response.
11570
12066
  #
12067
+ # This action is not supported by Amazon S3 on Outposts.
12068
+ #
11571
12069
  # For more information about Amazon S3 Select, see [Selecting Content
11572
12070
  # from Objects][1] in the *Amazon Simple Storage Service Developer
11573
12071
  # Guide*.
@@ -11999,6 +12497,11 @@ module Aws::S3
11999
12497
  # checks the part data against the provided MD5 value. If they do not
12000
12498
  # match, Amazon S3 returns an error.
12001
12499
  #
12500
+ # If the upload request is signed with Signature Version 4, then AWS S3
12501
+ # uses the `x-amz-content-sha256` header as a checksum instead of
12502
+ # `Content-MD5`. For more information see [Authenticating Requests:
12503
+ # Using the Authorization Header (AWS Signature Version 4)][3].
12504
+ #
12002
12505
  # **Note:** After you initiate multipart upload and upload one or more
12003
12506
  # parts, you must either complete or abort multipart upload in order to
12004
12507
  # stop getting charged for storage of the uploaded parts. Only after you
@@ -12006,11 +12509,11 @@ module Aws::S3
12006
12509
  # parts storage and stops charging you for the parts storage.
12007
12510
  #
12008
12511
  # For more information on multipart uploads, go to [Multipart Upload
12009
- # Overview][3] in the <i>Amazon Simple Storage Service Developer Guide
12512
+ # Overview][4] in the <i>Amazon Simple Storage Service Developer Guide
12010
12513
  # </i>.
12011
12514
  #
12012
12515
  # For information on the permissions required to use the multipart
12013
- # upload API, go to [Multipart Upload API and Permissions][4] in the
12516
+ # upload API, go to [Multipart Upload API and Permissions][5] in the
12014
12517
  # *Amazon Simple Storage Service Developer Guide*.
12015
12518
  #
12016
12519
  # You can optionally request server-side encryption where Amazon S3
@@ -12021,7 +12524,7 @@ module Aws::S3
12021
12524
  # request headers you provide in the request must match the headers you
12022
12525
  # used in the request to initiate the upload by using
12023
12526
  # [CreateMultipartUpload][2]. For more information, go to [Using
12024
- # Server-Side Encryption][5] in the *Amazon Simple Storage Service
12527
+ # Server-Side Encryption][6] in the *Amazon Simple Storage Service
12025
12528
  # Developer Guide*.
12026
12529
  #
12027
12530
  # Server-side encryption is supported by the S3 Multipart Upload
@@ -12044,9 +12547,7 @@ module Aws::S3
12044
12547
  #
12045
12548
  # **Special Errors**
12046
12549
  #
12047
- # * ****
12048
- #
12049
- # * *Code: NoSuchUpload*
12550
+ # * * *Code: NoSuchUpload*
12050
12551
  #
12051
12552
  # * *Cause: The specified multipart upload does not exist. The upload
12052
12553
  # ID might be invalid, or the multipart upload might have been
@@ -12060,31 +12561,54 @@ module Aws::S3
12060
12561
  #
12061
12562
  # * [CreateMultipartUpload][2]
12062
12563
  #
12063
- # * [CompleteMultipartUpload][6]
12564
+ # * [CompleteMultipartUpload][7]
12064
12565
  #
12065
- # * [AbortMultipartUpload][7]
12566
+ # * [AbortMultipartUpload][8]
12066
12567
  #
12067
- # * [ListParts][8]
12568
+ # * [ListParts][9]
12068
12569
  #
12069
- # * [ListMultipartUploads][9]
12570
+ # * [ListMultipartUploads][10]
12070
12571
  #
12071
12572
  #
12072
12573
  #
12073
12574
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPartCopy.html
12074
12575
  # [2]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html
12075
- # [3]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html
12076
- # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
12077
- # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
12078
- # [6]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
12079
- # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
12080
- # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
12081
- # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
12576
+ # [3]: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html
12577
+ # [4]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuoverview.html
12578
+ # [5]: https://docs.aws.amazon.com/AmazonS3/latest/dev/mpuAndPermissions.html
12579
+ # [6]: https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html
12580
+ # [7]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html
12581
+ # [8]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
12582
+ # [9]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListParts.html
12583
+ # [10]: https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListMultipartUploads.html
12082
12584
  #
12083
12585
  # @option params [String, StringIO, File] :body
12084
12586
  # Object data.
12085
12587
  #
12086
12588
  # @option params [required, String] :bucket
12087
- # Name of the bucket to which the multipart upload was initiated.
12589
+ # The name of the bucket to which the multipart upload was initiated.
12590
+ #
12591
+ # When using this API with an access point, you must direct requests to
12592
+ # the access point hostname. The access point hostname takes the form
12593
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
12594
+ # When using this operation with an access point through the AWS SDKs,
12595
+ # you provide the access point ARN in place of the bucket name. For more
12596
+ # information about access point ARNs, see [Using Access Points][1] in
12597
+ # the *Amazon Simple Storage Service Developer Guide*.
12598
+ #
12599
+ # When using this API with Amazon S3 on Outposts, you must direct
12600
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
12601
+ # takes the form
12602
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
12603
+ # When using this operation using S3 on Outposts through the AWS SDKs,
12604
+ # you provide the Outposts bucket ARN in place of the bucket name. For
12605
+ # more information about S3 on Outposts ARNs, see [Using S3 on
12606
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
12607
+ #
12608
+ #
12609
+ #
12610
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
12611
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
12088
12612
  #
12089
12613
  # @option params [Integer] :content_length
12090
12614
  # Size of the body in bytes. This parameter is useful when the size of
@@ -12291,9 +12815,7 @@ module Aws::S3
12291
12815
  #
12292
12816
  # **Special Errors**
12293
12817
  #
12294
- # * ****
12295
- #
12296
- # * *Code: NoSuchUpload*
12818
+ # * * *Code: NoSuchUpload*
12297
12819
  #
12298
12820
  # * *Cause: The specified multipart upload does not exist. The upload
12299
12821
  # ID might be invalid, or the multipart upload might have been
@@ -12301,9 +12823,7 @@ module Aws::S3
12301
12823
  #
12302
12824
  # * *HTTP Status Code: 404 Not Found*
12303
12825
  #
12304
- # * ****
12305
- #
12306
- # * *Code: InvalidRequest*
12826
+ # * * *Code: InvalidRequest*
12307
12827
  #
12308
12828
  # * *Cause: The specified copy source is not supported as a byte-range
12309
12829
  # copy source.*
@@ -12341,6 +12861,28 @@ module Aws::S3
12341
12861
  # @option params [required, String] :bucket
12342
12862
  # The bucket name.
12343
12863
  #
12864
+ # When using this API with an access point, you must direct requests to
12865
+ # the access point hostname. The access point hostname takes the form
12866
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
12867
+ # When using this operation with an access point through the AWS SDKs,
12868
+ # you provide the access point ARN in place of the bucket name. For more
12869
+ # information about access point ARNs, see [Using Access Points][1] in
12870
+ # the *Amazon Simple Storage Service Developer Guide*.
12871
+ #
12872
+ # When using this API with Amazon S3 on Outposts, you must direct
12873
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
12874
+ # takes the form
12875
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
12876
+ # When using this operation using S3 on Outposts through the AWS SDKs,
12877
+ # you provide the Outposts bucket ARN in place of the bucket name. For
12878
+ # more information about S3 on Outposts ARNs, see [Using S3 on
12879
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
12880
+ #
12881
+ #
12882
+ #
12883
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
12884
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
12885
+ #
12344
12886
  # @option params [required, String] :copy_source
12345
12887
  # Specifies the source object for the copy operation. You specify the
12346
12888
  # value in one of two formats, depending on whether you want to access
@@ -12357,9 +12899,9 @@ module Aws::S3
12357
12899
  # Resource Name (ARN) of the object as accessed through the access
12358
12900
  # point, in the format
12359
12901
  # `arn:aws:s3:<Region>:<account-id>:accesspoint/<access-point-name>/object/<key>`.
12360
- # For example, to copy the object `reports/january.pdf` through the
12361
- # access point `my-access-point` owned by account `123456789012` in
12362
- # Region `us-west-2`, use the URL encoding of
12902
+ # For example, to copy the object `reports/january.pdf` through access
12903
+ # point `my-access-point` owned by account `123456789012` in Region
12904
+ # `us-west-2`, use the URL encoding of
12363
12905
  # `arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf`.
12364
12906
  # The value must be URL encoded.
12365
12907
  #
@@ -12368,6 +12910,15 @@ module Aws::S3
12368
12910
  #
12369
12911
  # </note>
12370
12912
  #
12913
+ # Alternatively, for objects accessed through Amazon S3 on Outposts,
12914
+ # specify the ARN of the object as accessed in the format
12915
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/object/<key>`.
12916
+ # For example, to copy the object `reports/january.pdf` through
12917
+ # outpost `my-outpost` owned by account `123456789012` in Region
12918
+ # `us-west-2`, use the URL encoding of
12919
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
12920
+ # The value must be URL encoded.
12921
+ #
12371
12922
  # To copy a specific version of an object, append
12372
12923
  # `?versionId=<version-id>` to the value (for example,
12373
12924
  # `awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
@@ -12572,7 +13123,7 @@ module Aws::S3
12572
13123
  params: params,
12573
13124
  config: config)
12574
13125
  context[:gem_name] = 'aws-sdk-s3'
12575
- context[:gem_version] = '1.80.0'
13126
+ context[:gem_version] = '1.83.1'
12576
13127
  Seahorse::Client::Request.new(handlers, context)
12577
13128
  end
12578
13129