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.
@@ -403,12 +403,16 @@ module Aws::S3
403
403
  # @option options [String] :range
404
404
  # Downloads the specified range bytes of an object. For more information
405
405
  # about the HTTP Range header, see
406
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35]().
406
+ # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35][1].
407
407
  #
408
408
  # <note markdown="1"> Amazon S3 doesn't support retrieving multiple ranges of data per
409
409
  # `GET` request.
410
410
  #
411
411
  # </note>
412
+ #
413
+ #
414
+ #
415
+ # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35
412
416
  # @option options [String] :sse_customer_algorithm
413
417
  # Specifies the algorithm to use to when encrypting the object (for
414
418
  # example, AES256).
@@ -0,0 +1,187 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../arn/access_point_arn'
4
+ require_relative '../arn/outpost_access_point_arn'
5
+
6
+ module Aws
7
+ module S3
8
+ module Plugins
9
+ # When an accesspoint ARN is provided for :bucket in S3 operations, this
10
+ # plugin resolves the request endpoint from the ARN when possible.
11
+ # @api private
12
+ class ARN < Seahorse::Client::Plugin
13
+ option(
14
+ :s3_use_arn_region,
15
+ default: true,
16
+ doc_type: 'Boolean',
17
+ docstring: <<-DOCS) do |cfg|
18
+ For S3 ARNs passed into the `:bucket` parameter, this option will
19
+ use the region in the ARN, allowing for cross-region requests to
20
+ be made. Set to `false` to use the client's region instead.
21
+ DOCS
22
+ resolve_s3_use_arn_region(cfg)
23
+ end
24
+
25
+ def add_handlers(handlers, _config)
26
+ handlers.add(Handler)
27
+ end
28
+
29
+ class Handler < Seahorse::Client::Handler
30
+ def call(context)
31
+ bucket_member = _bucket_member(context.operation.input.shape)
32
+ if bucket_member && (bucket = context.params[bucket_member])
33
+ resolved_region, arn = ARN.resolve_arn!(
34
+ bucket,
35
+ context.config.region,
36
+ context.config.s3_use_arn_region
37
+ )
38
+ if arn
39
+ validate_config!(context, arn)
40
+
41
+ ARN.resolve_url!(
42
+ context.http_request.endpoint,
43
+ arn,
44
+ resolved_region,
45
+ extract_dualstack_config!(context)
46
+ )
47
+ end
48
+ end
49
+ @handler.call(context)
50
+ end
51
+
52
+ private
53
+
54
+ def _bucket_member(input)
55
+ input.members.each do |member, ref|
56
+ return member if ref.shape.name == 'BucketName'
57
+ end
58
+ nil
59
+ end
60
+
61
+ # other plugins use dualstack so disable it when we're done
62
+ def extract_dualstack_config!(context)
63
+ dualstack = context[:use_dualstack_endpoint]
64
+ context[:use_dualstack_endpoint] = false if dualstack
65
+ dualstack
66
+ end
67
+
68
+ def validate_config!(context, arn)
69
+ unless context.config.regional_endpoint
70
+ raise ArgumentError,
71
+ 'Cannot provide both an Access Point ARN and setting '\
72
+ ':endpoint.'
73
+ end
74
+
75
+ if context.config.force_path_style
76
+ raise ArgumentError,
77
+ 'Cannot provide both an Access Point ARN and setting '\
78
+ ':force_path_style to true.'
79
+ end
80
+
81
+ if context.config.use_accelerate_endpoint
82
+ raise ArgumentError,
83
+ 'Cannot provide both an Access Point ARN and setting '\
84
+ ':use_accelerate_endpoint to true.'
85
+ end
86
+
87
+ if !arn.support_dualstack? && context[:use_dualstack_endpoint]
88
+ raise ArgumentError,
89
+ 'Cannot provide both an Outpost Access Point ARN and '\
90
+ 'setting :use_dualstack_endpoint to true.'
91
+ end
92
+ end
93
+ end
94
+
95
+ class << self
96
+ # @api private
97
+ def resolve_arn!(member_value, region, use_arn_region)
98
+ if Aws::ARNParser.arn?(member_value)
99
+ arn = Aws::ARNParser.parse(member_value)
100
+ if arn.resource.start_with?('accesspoint')
101
+ s3_arn = Aws::S3::AccessPointARN.new(arn.to_h)
102
+ elsif arn.resource.start_with?('outpost')
103
+ s3_arn = Aws::S3::OutpostAccessPointARN.new(arn.to_h)
104
+ else
105
+ raise ArgumentError,
106
+ 'Only Access Point and Outpost Access Point type ARNs '\
107
+ 'are currently supported.'
108
+ end
109
+ s3_arn.validate_arn!
110
+ validate_region_config!(s3_arn, region, use_arn_region)
111
+ region = s3_arn.region if use_arn_region
112
+ [region, s3_arn]
113
+ else
114
+ [region]
115
+ end
116
+ end
117
+
118
+ # @api private
119
+ def resolve_url!(url, arn, region, dualstack = false)
120
+ url.host = arn.host_url(region, dualstack)
121
+ url.path = url_path(url.path, arn)
122
+ url
123
+ end
124
+
125
+ private
126
+
127
+ def resolve_s3_use_arn_region(cfg)
128
+ value = ENV['AWS_S3_USE_ARN_REGION'] ||
129
+ Aws.shared_config.s3_use_arn_region(profile: cfg.profile) ||
130
+ 'true'
131
+ value = Aws::Util.str_2_bool(value)
132
+ # Raise if provided value is not true or false
133
+ if value.nil?
134
+ raise ArgumentError,
135
+ 'Must provide either `true` or `false` for '\
136
+ 's3_use_arn_region profile option or for '\
137
+ "ENV['AWS_S3_USE_ARN_REGION']"
138
+ end
139
+ value
140
+ end
141
+
142
+ # Remove ARN from the path since it was substituted already
143
+ # This only works because accesspoints care about the URL
144
+ def url_path(path, arn)
145
+ path = path.sub("/#{Seahorse::Util.uri_escape(arn.to_s)}", '')
146
+ .sub("/#{arn}", '')
147
+ "/#{path}" unless path =~ /^\//
148
+ path
149
+ end
150
+
151
+ def validate_region_config!(arn, region, use_arn_region)
152
+ fips = arn.support_fips?
153
+
154
+ # s3-external-1 is specific just to s3 and not part of partitions
155
+ # aws-global is a partition region
156
+ unless arn.partition == 'aws' &&
157
+ (region == 's3-external-1' || region == 'aws-global')
158
+ if !fips && arn.region.include?('fips')
159
+ raise ArgumentError,
160
+ 'FIPS region ARNs are not supported for this type of ARN.'
161
+ end
162
+
163
+ if !fips && !use_arn_region && region.include?('fips')
164
+ raise ArgumentError,
165
+ 'FIPS client regions are not supported for this type of '\
166
+ 'ARN without s3_use_arn_region.'
167
+ end
168
+
169
+ # if it's a fips region, attempt to normalize it
170
+ if fips || use_arn_region
171
+ region = region.gsub('fips-', '').gsub('-fips', '')
172
+ end
173
+ if use_arn_region &&
174
+ !Aws::Partitions.partition(arn.partition).region?(region)
175
+ raise Aws::Errors::InvalidARNPartitionError
176
+ end
177
+
178
+ if !use_arn_region && region != arn.region
179
+ raise Aws::Errors::InvalidARNRegionError
180
+ end
181
+ end
182
+ end
183
+ end
184
+ end
185
+ end
186
+ end
187
+ end
@@ -73,8 +73,6 @@ request URI and never moved to the host as a sub-domain.
73
73
  end
74
74
  end
75
75
 
76
- # Checks for a valid RFC-3986 host name
77
- # @see https://tools.ietf.org/html/rfc3986#section-3.2.2
78
76
  # @param [String] bucket_name
79
77
  # @return [Boolean]
80
78
  def valid_subdomain?(bucket_name)
@@ -13,7 +13,7 @@ module Aws
13
13
  def call(context)
14
14
  bucket_member = _bucket_member(context.operation.input.shape)
15
15
  if bucket_member && (bucket = context.params[bucket_member])
16
- _resolved_bucket, _resolved_region, arn = BucketARN.resolve_arn!(
16
+ _resolved_region, arn = ARN.resolve_arn!(
17
17
  bucket,
18
18
  context.config.region,
19
19
  context.config.s3_use_arn_region
@@ -12,12 +12,14 @@ module Aws
12
12
 
13
13
  option(:sigv4_signer) do |cfg|
14
14
  S3Signer.build_v4_signer(
15
+ service: 's3',
15
16
  region: cfg.sigv4_region,
16
17
  credentials: cfg.credentials
17
18
  )
18
19
  end
19
20
 
20
21
  option(:sigv4_region) do |cfg|
22
+ # S3 removes core's signature_v4 plugin that checks for this
21
23
  raise Aws::Errors::MissingRegionError if cfg.region.nil?
22
24
 
23
25
  Aws::Partitions::EndpointProvider.signing_region(cfg.region, 's3')
@@ -67,11 +69,26 @@ module Aws
67
69
  if context[:cached_sigv4_region] &&
68
70
  context[:cached_sigv4_region] != context.config.sigv4_signer.region
69
71
  S3Signer.build_v4_signer(
72
+ service: 's3',
70
73
  region: context[:cached_sigv4_region],
71
74
  credentials: context.config.credentials
72
75
  )
73
76
  else
74
- context.config.sigv4_signer
77
+ resolved_region, arn = ARN.resolve_arn!(
78
+ context.params[:bucket],
79
+ context.config.sigv4_signer.region,
80
+ context.config.s3_use_arn_region
81
+ )
82
+
83
+ if arn
84
+ S3Signer.build_v4_signer(
85
+ service: arn.respond_to?(:outpost_id) ? 's3-outposts' : 's3',
86
+ region: resolved_region,
87
+ credentials: context.config.credentials
88
+ )
89
+ else
90
+ context.config.sigv4_signer
91
+ end
75
92
  end
76
93
  end
77
94
  end
@@ -90,7 +107,9 @@ module Aws
90
107
  def check_for_cached_region(context, bucket)
91
108
  cached_region = S3::BUCKET_REGIONS[bucket]
92
109
  if cached_region && cached_region != context.config.region
93
- context.http_request.endpoint.host = S3Signer.new_hostname(context, cached_region)
110
+ context.http_request.endpoint.host = S3Signer.new_hostname(
111
+ context, cached_region
112
+ )
94
113
  context[:cached_sigv4_region] = cached_region
95
114
  end
96
115
  end
@@ -150,11 +169,14 @@ module Aws
150
169
 
151
170
  def resign_with_new_region(context, actual_region)
152
171
  context.http_response.body.truncate(0)
153
- context.http_request.endpoint.host = S3Signer.new_hostname(context, actual_region)
172
+ context.http_request.endpoint.host = S3Signer.new_hostname(
173
+ context, actual_region
174
+ )
154
175
  context.metadata[:redirect_region] = actual_region
155
176
  Aws::Plugins::SignatureV4.apply_signature(
156
177
  context: context,
157
178
  signer: S3Signer.build_v4_signer(
179
+ service: 's3',
158
180
  region: actual_region,
159
181
  credentials: context.config.credentials
160
182
  )
@@ -189,7 +211,7 @@ module Aws
189
211
  # @api private
190
212
  def build_v4_signer(options = {})
191
213
  Aws::Sigv4::Signer.new(
192
- service: 's3',
214
+ service: options[:service],
193
215
  region: options[:region],
194
216
  credentials_provider: options[:credentials],
195
217
  uri_escape_path: false,
@@ -200,7 +222,7 @@ module Aws
200
222
  def new_hostname(context, region)
201
223
  # Check to see if the bucket is actually an ARN and resolve it
202
224
  # Otherwise it will retry with the ARN as the bucket name.
203
- resolved_bucket, resolved_region, arn = BucketARN.resolve_arn!(
225
+ resolved_region, arn = ARN.resolve_arn!(
204
226
  context.params[:bucket],
205
227
  region,
206
228
  context.config.s3_use_arn_region
@@ -210,9 +232,9 @@ module Aws
210
232
  )
211
233
 
212
234
  if arn
213
- BucketARN.resolve_url!(uri, arn).host
235
+ ARN.resolve_url!(uri, arn).host
214
236
  else
215
- resolved_bucket + '.' + uri.host
237
+ "#{context.params[:bucket]}.#{uri.host}"
216
238
  end
217
239
  end
218
240
  end
@@ -12,6 +12,7 @@ module Aws
12
12
  # @api private
13
13
  BLACKLISTED_HEADERS = [
14
14
  'accept',
15
+ 'amz-sdk-request',
15
16
  'cache-control',
16
17
  'content-length', # due to a ELB bug
17
18
  'expect',
@@ -71,14 +71,24 @@ module Aws::S3
71
71
  # to the access point hostname. The access point hostname takes the
72
72
  # form
73
73
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
74
- # When using this operation using an access point through the AWS
75
- # SDKs, you provide the access point ARN in place of the bucket name.
76
- # For more information about access point ARNs, see [Using Access
74
+ # When using this operation with an access point through the AWS SDKs,
75
+ # you provide the access point ARN in place of the bucket name. For
76
+ # more information about access point ARNs, see [Using Access
77
77
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
78
78
  #
79
+ # When using this API with Amazon S3 on Outposts, you must direct
80
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
81
+ # takes the form
82
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
83
+ # When using this operation using S3 on Outposts through the AWS SDKs,
84
+ # you provide the Outposts bucket ARN in place of the bucket name. For
85
+ # more information about S3 on Outposts ARNs, see [Using S3 on
86
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
87
+ #
79
88
  #
80
89
  #
81
90
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
91
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
82
92
  # @return [String]
83
93
  #
84
94
  # @!attribute [rw] key
@@ -462,8 +472,8 @@ module Aws::S3
462
472
  end
463
473
 
464
474
  # The requested bucket name is not available. The bucket namespace is
465
- # shared by all users of the system. Please select a different name and
466
- # try again.
475
+ # shared by all users of the system. Select a different name and try
476
+ # again.
467
477
  #
468
478
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/BucketAlreadyExists AWS API Documentation
469
479
  #
@@ -899,6 +909,29 @@ module Aws::S3
899
909
  #
900
910
  # @!attribute [rw] bucket
901
911
  # The name of the bucket that contains the newly created object.
912
+ #
913
+ # When using this API with an access point, you must direct requests
914
+ # to the access point hostname. The access point hostname takes the
915
+ # form
916
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
917
+ # When using this operation with an access point through the AWS SDKs,
918
+ # you provide the access point ARN in place of the bucket name. For
919
+ # more information about access point ARNs, see [Using Access
920
+ # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
921
+ #
922
+ # When using this API with Amazon S3 on Outposts, you must direct
923
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
924
+ # takes the form
925
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
926
+ # When using this operation using S3 on Outposts through the AWS SDKs,
927
+ # you provide the Outposts bucket ARN in place of the bucket name. For
928
+ # more information about S3 on Outposts ARNs, see [Using S3 on
929
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
930
+ #
931
+ #
932
+ #
933
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
934
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
902
935
  # @return [String]
903
936
  #
904
937
  # @!attribute [rw] key
@@ -1230,7 +1263,7 @@ module Aws::S3
1230
1263
  # metadata_directive: "COPY", # accepts COPY, REPLACE
1231
1264
  # tagging_directive: "COPY", # accepts COPY, REPLACE
1232
1265
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
1233
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
1266
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
1234
1267
  # website_redirect_location: "WebsiteRedirectLocation",
1235
1268
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1236
1269
  # sse_customer_key: "SSECustomerKey",
@@ -1251,10 +1284,35 @@ module Aws::S3
1251
1284
  #
1252
1285
  # @!attribute [rw] acl
1253
1286
  # The canned ACL to apply to the object.
1287
+ #
1288
+ # This action is not supported by Amazon S3 on Outposts.
1254
1289
  # @return [String]
1255
1290
  #
1256
1291
  # @!attribute [rw] bucket
1257
1292
  # The name of the destination bucket.
1293
+ #
1294
+ # When using this API with an access point, you must direct requests
1295
+ # to the access point hostname. The access point hostname takes the
1296
+ # form
1297
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
1298
+ # When using this operation with an access point through the AWS SDKs,
1299
+ # you provide the access point ARN in place of the bucket name. For
1300
+ # more information about access point ARNs, see [Using Access
1301
+ # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
1302
+ #
1303
+ # When using this API with Amazon S3 on Outposts, you must direct
1304
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
1305
+ # takes the form
1306
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
1307
+ # When using this operation using S3 on Outposts through the AWS SDKs,
1308
+ # you provide the Outposts bucket ARN in place of the bucket name. For
1309
+ # more information about S3 on Outposts ARNs, see [Using S3 on
1310
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
1311
+ #
1312
+ #
1313
+ #
1314
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
1315
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
1258
1316
  # @return [String]
1259
1317
  #
1260
1318
  # @!attribute [rw] cache_control
@@ -1306,6 +1364,15 @@ module Aws::S3
1306
1364
  #
1307
1365
  # </note>
1308
1366
  #
1367
+ # Alternatively, for objects accessed through Amazon S3 on Outposts,
1368
+ # specify the ARN of the object as accessed in the format
1369
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/object/<key>`.
1370
+ # For example, to copy the object `reports/january.pdf` through
1371
+ # outpost `my-outpost` owned by account `123456789012` in Region
1372
+ # `us-west-2`, use the URL encoding of
1373
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
1374
+ # The value must be URL encoded.
1375
+ #
1309
1376
  # To copy a specific version of an object, append
1310
1377
  # `?versionId=<version-id>` to the value (for example,
1311
1378
  # `awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
@@ -1343,18 +1410,26 @@ module Aws::S3
1343
1410
  # @!attribute [rw] grant_full_control
1344
1411
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
1345
1412
  # object.
1413
+ #
1414
+ # This action is not supported by Amazon S3 on Outposts.
1346
1415
  # @return [String]
1347
1416
  #
1348
1417
  # @!attribute [rw] grant_read
1349
1418
  # Allows grantee to read the object data and its metadata.
1419
+ #
1420
+ # This action is not supported by Amazon S3 on Outposts.
1350
1421
  # @return [String]
1351
1422
  #
1352
1423
  # @!attribute [rw] grant_read_acp
1353
1424
  # Allows grantee to read the object ACL.
1425
+ #
1426
+ # This action is not supported by Amazon S3 on Outposts.
1354
1427
  # @return [String]
1355
1428
  #
1356
1429
  # @!attribute [rw] grant_write_acp
1357
1430
  # Allows grantee to write the ACL for the applicable object.
1431
+ #
1432
+ # This action is not supported by Amazon S3 on Outposts.
1358
1433
  # @return [String]
1359
1434
  #
1360
1435
  # @!attribute [rw] key
@@ -1381,7 +1456,16 @@ module Aws::S3
1381
1456
  # @return [String]
1382
1457
  #
1383
1458
  # @!attribute [rw] storage_class
1384
- # The type of storage to use for the object. Defaults to 'STANDARD'.
1459
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
1460
+ # created objects. The STANDARD storage class provides high durability
1461
+ # and high availability. Depending on performance needs, you can
1462
+ # specify a different Storage Class. Amazon S3 on Outposts only uses
1463
+ # the OUTPOSTS Storage Class. For more information, see [Storage
1464
+ # Classes][1] in the *Amazon S3 Service Developer Guide*.
1465
+ #
1466
+ #
1467
+ #
1468
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
1385
1469
  # @return [String]
1386
1470
  #
1387
1471
  # @!attribute [rw] website_redirect_location
@@ -1710,20 +1794,30 @@ module Aws::S3
1710
1794
  # @return [String]
1711
1795
  #
1712
1796
  # @!attribute [rw] bucket
1713
- # Name of the bucket to which the multipart upload was initiated.
1797
+ # The name of the bucket to which the multipart upload was initiated.
1714
1798
  #
1715
1799
  # When using this API with an access point, you must direct requests
1716
1800
  # to the access point hostname. The access point hostname takes the
1717
1801
  # form
1718
1802
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
1719
- # When using this operation using an access point through the AWS
1720
- # SDKs, you provide the access point ARN in place of the bucket name.
1721
- # For more information about access point ARNs, see [Using Access
1803
+ # When using this operation with an access point through the AWS SDKs,
1804
+ # you provide the access point ARN in place of the bucket name. For
1805
+ # more information about access point ARNs, see [Using Access
1722
1806
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
1723
1807
  #
1808
+ # When using this API with Amazon S3 on Outposts, you must direct
1809
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
1810
+ # takes the form
1811
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
1812
+ # When using this operation using S3 on Outposts through the AWS SDKs,
1813
+ # you provide the Outposts bucket ARN in place of the bucket name. For
1814
+ # more information about S3 on Outposts ARNs, see [Using S3 on
1815
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
1816
+ #
1724
1817
  #
1725
1818
  #
1726
1819
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
1820
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
1727
1821
  # @return [String]
1728
1822
  #
1729
1823
  # @!attribute [rw] key
@@ -1809,7 +1903,7 @@ module Aws::S3
1809
1903
  # "MetadataKey" => "MetadataValue",
1810
1904
  # },
1811
1905
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
1812
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
1906
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
1813
1907
  # website_redirect_location: "WebsiteRedirectLocation",
1814
1908
  # sse_customer_algorithm: "SSECustomerAlgorithm",
1815
1909
  # sse_customer_key: "SSECustomerKey",
@@ -1826,10 +1920,35 @@ module Aws::S3
1826
1920
  #
1827
1921
  # @!attribute [rw] acl
1828
1922
  # The canned ACL to apply to the object.
1923
+ #
1924
+ # This action is not supported by Amazon S3 on Outposts.
1829
1925
  # @return [String]
1830
1926
  #
1831
1927
  # @!attribute [rw] bucket
1832
1928
  # The name of the bucket to which to initiate the upload
1929
+ #
1930
+ # When using this API with an access point, you must direct requests
1931
+ # to the access point hostname. The access point hostname takes the
1932
+ # form
1933
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
1934
+ # When using this operation with an access point through the AWS SDKs,
1935
+ # you provide the access point ARN in place of the bucket name. For
1936
+ # more information about access point ARNs, see [Using Access
1937
+ # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
1938
+ #
1939
+ # When using this API with Amazon S3 on Outposts, you must direct
1940
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
1941
+ # takes the form
1942
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
1943
+ # When using this operation using S3 on Outposts through the AWS SDKs,
1944
+ # you provide the Outposts bucket ARN in place of the bucket name. For
1945
+ # more information about S3 on Outposts ARNs, see [Using S3 on
1946
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
1947
+ #
1948
+ #
1949
+ #
1950
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
1951
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
1833
1952
  # @return [String]
1834
1953
  #
1835
1954
  # @!attribute [rw] cache_control
@@ -1861,18 +1980,26 @@ module Aws::S3
1861
1980
  # @!attribute [rw] grant_full_control
1862
1981
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
1863
1982
  # object.
1983
+ #
1984
+ # This action is not supported by Amazon S3 on Outposts.
1864
1985
  # @return [String]
1865
1986
  #
1866
1987
  # @!attribute [rw] grant_read
1867
1988
  # Allows grantee to read the object data and its metadata.
1989
+ #
1990
+ # This action is not supported by Amazon S3 on Outposts.
1868
1991
  # @return [String]
1869
1992
  #
1870
1993
  # @!attribute [rw] grant_read_acp
1871
1994
  # Allows grantee to read the object ACL.
1995
+ #
1996
+ # This action is not supported by Amazon S3 on Outposts.
1872
1997
  # @return [String]
1873
1998
  #
1874
1999
  # @!attribute [rw] grant_write_acp
1875
2000
  # Allows grantee to write the ACL for the applicable object.
2001
+ #
2002
+ # This action is not supported by Amazon S3 on Outposts.
1876
2003
  # @return [String]
1877
2004
  #
1878
2005
  # @!attribute [rw] key
@@ -1889,7 +2016,16 @@ module Aws::S3
1889
2016
  # @return [String]
1890
2017
  #
1891
2018
  # @!attribute [rw] storage_class
1892
- # The type of storage to use for the object. Defaults to 'STANDARD'.
2019
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
2020
+ # created objects. The STANDARD storage class provides high durability
2021
+ # and high availability. Depending on performance needs, you can
2022
+ # specify a different Storage Class. Amazon S3 on Outposts only uses
2023
+ # the OUTPOSTS Storage Class. For more information, see [Storage
2024
+ # Classes][1] in the *Amazon S3 Service Developer Guide*.
2025
+ #
2026
+ #
2027
+ #
2028
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
1893
2029
  # @return [String]
1894
2030
  #
1895
2031
  # @!attribute [rw] website_redirect_location
@@ -2264,6 +2400,30 @@ module Aws::S3
2264
2400
  include Aws::Structure
2265
2401
  end
2266
2402
 
2403
+ # @note When making an API call, you may pass DeleteBucketOwnershipControlsRequest
2404
+ # data as a hash:
2405
+ #
2406
+ # {
2407
+ # bucket: "BucketName", # required
2408
+ # expected_bucket_owner: "AccountId",
2409
+ # }
2410
+ #
2411
+ # @!attribute [rw] bucket
2412
+ # The Amazon S3 bucket whose `OwnershipControls` you want to delete.
2413
+ # @return [String]
2414
+ #
2415
+ # @!attribute [rw] expected_bucket_owner
2416
+ # @return [String]
2417
+ #
2418
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketOwnershipControlsRequest AWS API Documentation
2419
+ #
2420
+ class DeleteBucketOwnershipControlsRequest < Struct.new(
2421
+ :bucket,
2422
+ :expected_bucket_owner)
2423
+ SENSITIVE = []
2424
+ include Aws::Structure
2425
+ end
2426
+
2267
2427
  # @note When making an API call, you may pass DeleteBucketPolicyRequest
2268
2428
  # data as a hash:
2269
2429
  #
@@ -2524,14 +2684,24 @@ module Aws::S3
2524
2684
  # to the access point hostname. The access point hostname takes the
2525
2685
  # form
2526
2686
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
2527
- # When using this operation using an access point through the AWS
2528
- # SDKs, you provide the access point ARN in place of the bucket name.
2529
- # For more information about access point ARNs, see [Using Access
2687
+ # When using this operation with an access point through the AWS SDKs,
2688
+ # you provide the access point ARN in place of the bucket name. For
2689
+ # more information about access point ARNs, see [Using Access
2530
2690
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
2531
2691
  #
2692
+ # When using this API with Amazon S3 on Outposts, you must direct
2693
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
2694
+ # takes the form
2695
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
2696
+ # When using this operation using S3 on Outposts through the AWS SDKs,
2697
+ # you provide the Outposts bucket ARN in place of the bucket name. For
2698
+ # more information about S3 on Outposts ARNs, see [Using S3 on
2699
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
2700
+ #
2532
2701
  #
2533
2702
  #
2534
2703
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
2704
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
2535
2705
  # @return [String]
2536
2706
  #
2537
2707
  # @!attribute [rw] key
@@ -2616,14 +2786,24 @@ module Aws::S3
2616
2786
  # to the access point hostname. The access point hostname takes the
2617
2787
  # form
2618
2788
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
2619
- # When using this operation using an access point through the AWS
2620
- # SDKs, you provide the access point ARN in place of the bucket name.
2621
- # For more information about access point ARNs, see [Using Access
2789
+ # When using this operation with an access point through the AWS SDKs,
2790
+ # you provide the access point ARN in place of the bucket name. For
2791
+ # more information about access point ARNs, see [Using Access
2622
2792
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
2623
2793
  #
2794
+ # When using this API with Amazon S3 on Outposts, you must direct
2795
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
2796
+ # takes the form
2797
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
2798
+ # When using this operation using S3 on Outposts through the AWS SDKs,
2799
+ # you provide the Outposts bucket ARN in place of the bucket name. For
2800
+ # more information about S3 on Outposts ARNs, see [Using S3 on
2801
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
2802
+ #
2624
2803
  #
2625
2804
  #
2626
2805
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
2806
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
2627
2807
  # @return [String]
2628
2808
  #
2629
2809
  # @!attribute [rw] key
@@ -2703,14 +2883,24 @@ module Aws::S3
2703
2883
  # to the access point hostname. The access point hostname takes the
2704
2884
  # form
2705
2885
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
2706
- # When using this operation using an access point through the AWS
2707
- # SDKs, you provide the access point ARN in place of the bucket name.
2708
- # For more information about access point ARNs, see [Using Access
2886
+ # When using this operation with an access point through the AWS SDKs,
2887
+ # you provide the access point ARN in place of the bucket name. For
2888
+ # more information about access point ARNs, see [Using Access
2709
2889
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
2710
2890
  #
2891
+ # When using this API with Amazon S3 on Outposts, you must direct
2892
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
2893
+ # takes the form
2894
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
2895
+ # When using this operation using S3 on Outposts through the AWS SDKs,
2896
+ # you provide the Outposts bucket ARN in place of the bucket name. For
2897
+ # more information about S3 on Outposts ARNs, see [Using S3 on
2898
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
2899
+ #
2711
2900
  #
2712
2901
  #
2713
2902
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
2903
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
2714
2904
  # @return [String]
2715
2905
  #
2716
2906
  # @!attribute [rw] delete
@@ -2834,7 +3024,7 @@ module Aws::S3
2834
3024
  # {
2835
3025
  # bucket: "BucketName", # required
2836
3026
  # account: "AccountId",
2837
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
3027
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
2838
3028
  # access_control_translation: {
2839
3029
  # owner: "Destination", # required, accepts Destination
2840
3030
  # },
@@ -3947,7 +4137,7 @@ module Aws::S3
3947
4137
  # }
3948
4138
  #
3949
4139
  # @!attribute [rw] bucket
3950
- # Name of the bucket for which the accelerate configuration is
4140
+ # The name of the bucket for which the accelerate configuration is
3951
4141
  # retrieved.
3952
4142
  # @return [String]
3953
4143
  #
@@ -4407,7 +4597,8 @@ module Aws::S3
4407
4597
  # }
4408
4598
  #
4409
4599
  # @!attribute [rw] bucket
4410
- # Name of the bucket for which to get the notification configuration.
4600
+ # The name of the bucket for which to get the notification
4601
+ # configuration.
4411
4602
  # @return [String]
4412
4603
  #
4413
4604
  # @!attribute [rw] expected_bucket_owner
@@ -4425,6 +4616,44 @@ module Aws::S3
4425
4616
  include Aws::Structure
4426
4617
  end
4427
4618
 
4619
+ # @!attribute [rw] ownership_controls
4620
+ # The `OwnershipControls` (BucketOwnerPreferred or ObjectWriter)
4621
+ # currently in effect for this Amazon S3 bucket.
4622
+ # @return [Types::OwnershipControls]
4623
+ #
4624
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControlsOutput AWS API Documentation
4625
+ #
4626
+ class GetBucketOwnershipControlsOutput < Struct.new(
4627
+ :ownership_controls)
4628
+ SENSITIVE = []
4629
+ include Aws::Structure
4630
+ end
4631
+
4632
+ # @note When making an API call, you may pass GetBucketOwnershipControlsRequest
4633
+ # data as a hash:
4634
+ #
4635
+ # {
4636
+ # bucket: "BucketName", # required
4637
+ # expected_bucket_owner: "AccountId",
4638
+ # }
4639
+ #
4640
+ # @!attribute [rw] bucket
4641
+ # The name of the Amazon S3 bucket whose `OwnershipControls` you want
4642
+ # to retrieve.
4643
+ # @return [String]
4644
+ #
4645
+ # @!attribute [rw] expected_bucket_owner
4646
+ # @return [String]
4647
+ #
4648
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketOwnershipControlsRequest AWS API Documentation
4649
+ #
4650
+ class GetBucketOwnershipControlsRequest < Struct.new(
4651
+ :bucket,
4652
+ :expected_bucket_owner)
4653
+ SENSITIVE = []
4654
+ include Aws::Structure
4655
+ end
4656
+
4428
4657
  # @!attribute [rw] policy
4429
4658
  # The bucket policy as a JSON document.
4430
4659
  # @return [String]
@@ -4770,9 +4999,9 @@ module Aws::S3
4770
4999
  # to the access point hostname. The access point hostname takes the
4771
5000
  # form
4772
5001
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
4773
- # When using this operation using an access point through the AWS
4774
- # SDKs, you provide the access point ARN in place of the bucket name.
4775
- # For more information about access point ARNs, see [Using Access
5002
+ # When using this operation with an access point through the AWS SDKs,
5003
+ # you provide the access point ARN in place of the bucket name. For
5004
+ # more information about access point ARNs, see [Using Access
4776
5005
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
4777
5006
  #
4778
5007
  #
@@ -4849,9 +5078,9 @@ module Aws::S3
4849
5078
  # to the access point hostname. The access point hostname takes the
4850
5079
  # form
4851
5080
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
4852
- # When using this operation using an access point through the AWS
4853
- # SDKs, you provide the access point ARN in place of the bucket name.
4854
- # For more information about access point ARNs, see [Using Access
5081
+ # When using this operation with an access point through the AWS SDKs,
5082
+ # you provide the access point ARN in place of the bucket name. For
5083
+ # more information about access point ARNs, see [Using Access
4855
5084
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
4856
5085
  #
4857
5086
  #
@@ -4921,6 +5150,19 @@ module Aws::S3
4921
5150
  #
4922
5151
  # @!attribute [rw] bucket
4923
5152
  # The bucket whose Object Lock configuration you want to retrieve.
5153
+ #
5154
+ # When using this API with an access point, you must direct requests
5155
+ # to the access point hostname. The access point hostname takes the
5156
+ # form
5157
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
5158
+ # When using this operation with an access point through the AWS SDKs,
5159
+ # you provide the access point ARN in place of the bucket name. For
5160
+ # more information about access point ARNs, see [Using Access
5161
+ # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
5162
+ #
5163
+ #
5164
+ #
5165
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
4924
5166
  # @return [String]
4925
5167
  #
4926
5168
  # @!attribute [rw] expected_bucket_owner
@@ -5167,14 +5409,24 @@ module Aws::S3
5167
5409
  # to the access point hostname. The access point hostname takes the
5168
5410
  # form
5169
5411
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
5170
- # When using this operation using an access point through the AWS
5171
- # SDKs, you provide the access point ARN in place of the bucket name.
5172
- # For more information about access point ARNs, see [Using Access
5412
+ # When using this operation with an access point through the AWS SDKs,
5413
+ # you provide the access point ARN in place of the bucket name. For
5414
+ # more information about access point ARNs, see [Using Access
5173
5415
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
5174
5416
  #
5417
+ # When using this API with Amazon S3 on Outposts, you must direct
5418
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
5419
+ # takes the form
5420
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
5421
+ # When using this operation using S3 on Outposts through the AWS SDKs,
5422
+ # you provide the Outposts bucket ARN in place of the bucket name. For
5423
+ # more information about S3 on Outposts ARNs, see [Using S3 on
5424
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
5425
+ #
5175
5426
  #
5176
5427
  #
5177
5428
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
5429
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
5178
5430
  # @return [String]
5179
5431
  #
5180
5432
  # @!attribute [rw] if_match
@@ -5346,9 +5598,9 @@ module Aws::S3
5346
5598
  # to the access point hostname. The access point hostname takes the
5347
5599
  # form
5348
5600
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
5349
- # When using this operation using an access point through the AWS
5350
- # SDKs, you provide the access point ARN in place of the bucket name.
5351
- # For more information about access point ARNs, see [Using Access
5601
+ # When using this operation with an access point through the AWS SDKs,
5602
+ # you provide the access point ARN in place of the bucket name. For
5603
+ # more information about access point ARNs, see [Using Access
5352
5604
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
5353
5605
  #
5354
5606
  #
@@ -5432,14 +5684,24 @@ module Aws::S3
5432
5684
  # to the access point hostname. The access point hostname takes the
5433
5685
  # form
5434
5686
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
5435
- # When using this operation using an access point through the AWS
5436
- # SDKs, you provide the access point ARN in place of the bucket name.
5437
- # For more information about access point ARNs, see [Using Access
5687
+ # When using this operation with an access point through the AWS SDKs,
5688
+ # you provide the access point ARN in place of the bucket name. For
5689
+ # more information about access point ARNs, see [Using Access
5438
5690
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
5439
5691
  #
5692
+ # When using this API with Amazon S3 on Outposts, you must direct
5693
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
5694
+ # takes the form
5695
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
5696
+ # When using this operation using S3 on Outposts through the AWS SDKs,
5697
+ # you provide the Outposts bucket ARN in place of the bucket name. For
5698
+ # more information about S3 on Outposts ARNs, see [Using S3 on
5699
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
5700
+ #
5440
5701
  #
5441
5702
  #
5442
5703
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
5704
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
5443
5705
  # @return [String]
5444
5706
  #
5445
5707
  # @!attribute [rw] key
@@ -5712,6 +5974,29 @@ module Aws::S3
5712
5974
  #
5713
5975
  # @!attribute [rw] bucket
5714
5976
  # The bucket name.
5977
+ #
5978
+ # When using this API with an access point, you must direct requests
5979
+ # to the access point hostname. The access point hostname takes the
5980
+ # form
5981
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
5982
+ # When using this operation with an access point through the AWS SDKs,
5983
+ # you provide the access point ARN in place of the bucket name. For
5984
+ # more information about access point ARNs, see [Using Access
5985
+ # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
5986
+ #
5987
+ # When using this API with Amazon S3 on Outposts, you must direct
5988
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
5989
+ # takes the form
5990
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
5991
+ # When using this operation using S3 on Outposts through the AWS SDKs,
5992
+ # you provide the Outposts bucket ARN in place of the bucket name. For
5993
+ # more information about S3 on Outposts ARNs, see [Using S3 on
5994
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
5995
+ #
5996
+ #
5997
+ #
5998
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
5999
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
5715
6000
  # @return [String]
5716
6001
  #
5717
6002
  # @!attribute [rw] expected_bucket_owner
@@ -6006,6 +6291,29 @@ module Aws::S3
6006
6291
  #
6007
6292
  # @!attribute [rw] bucket
6008
6293
  # The name of the bucket containing the object.
6294
+ #
6295
+ # When using this API with an access point, you must direct requests
6296
+ # to the access point hostname. The access point hostname takes the
6297
+ # form
6298
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
6299
+ # When using this operation with an access point through the AWS SDKs,
6300
+ # you provide the access point ARN in place of the bucket name. For
6301
+ # more information about access point ARNs, see [Using Access
6302
+ # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
6303
+ #
6304
+ # When using this API with Amazon S3 on Outposts, you must direct
6305
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
6306
+ # takes the form
6307
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
6308
+ # When using this operation using S3 on Outposts through the AWS SDKs,
6309
+ # you provide the Outposts bucket ARN in place of the bucket name. For
6310
+ # more information about S3 on Outposts ARNs, see [Using S3 on
6311
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
6312
+ #
6313
+ #
6314
+ #
6315
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
6316
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
6009
6317
  # @return [String]
6010
6318
  #
6011
6319
  # @!attribute [rw] if_match
@@ -6035,12 +6343,16 @@ module Aws::S3
6035
6343
  # @!attribute [rw] range
6036
6344
  # Downloads the specified range bytes of an object. For more
6037
6345
  # information about the HTTP Range header, see
6038
- # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35]().
6346
+ # [http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35][1].
6039
6347
  #
6040
6348
  # <note markdown="1"> Amazon S3 doesn't support retrieving multiple ranges of data per
6041
6349
  # `GET` request.
6042
6350
  #
6043
6351
  # </note>
6352
+ #
6353
+ #
6354
+ #
6355
+ # [1]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35
6044
6356
  # @return [String]
6045
6357
  #
6046
6358
  # @!attribute [rw] version_id
@@ -7101,7 +7413,7 @@ module Aws::S3
7101
7413
  end
7102
7414
 
7103
7415
  # @!attribute [rw] bucket
7104
- # Name of the bucket to which the multipart upload was initiated.
7416
+ # The name of the bucket to which the multipart upload was initiated.
7105
7417
  # @return [String]
7106
7418
  #
7107
7419
  # @!attribute [rw] key_marker
@@ -7205,20 +7517,30 @@ module Aws::S3
7205
7517
  # }
7206
7518
  #
7207
7519
  # @!attribute [rw] bucket
7208
- # Name of the bucket to which the multipart upload was initiated.
7520
+ # The name of the bucket to which the multipart upload was initiated.
7209
7521
  #
7210
7522
  # When using this API with an access point, you must direct requests
7211
7523
  # to the access point hostname. The access point hostname takes the
7212
7524
  # form
7213
7525
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
7214
- # When using this operation using an access point through the AWS
7215
- # SDKs, you provide the access point ARN in place of the bucket name.
7216
- # For more information about access point ARNs, see [Using Access
7526
+ # When using this operation with an access point through the AWS SDKs,
7527
+ # you provide the access point ARN in place of the bucket name. For
7528
+ # more information about access point ARNs, see [Using Access
7217
7529
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
7218
7530
  #
7531
+ # When using this API with Amazon S3 on Outposts, you must direct
7532
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
7533
+ # takes the form
7534
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
7535
+ # When using this operation using S3 on Outposts through the AWS SDKs,
7536
+ # you provide the Outposts bucket ARN in place of the bucket name. For
7537
+ # more information about S3 on Outposts ARNs, see [Using S3 on
7538
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
7539
+ #
7219
7540
  #
7220
7541
  #
7221
7542
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
7543
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
7222
7544
  # @return [String]
7223
7545
  #
7224
7546
  # @!attribute [rw] delimiter
@@ -7338,7 +7660,7 @@ module Aws::S3
7338
7660
  # @return [Array<Types::DeleteMarkerEntry>]
7339
7661
  #
7340
7662
  # @!attribute [rw] name
7341
- # Bucket name.
7663
+ # The bucket name.
7342
7664
  # @return [String]
7343
7665
  #
7344
7666
  # @!attribute [rw] prefix
@@ -7411,19 +7733,6 @@ module Aws::S3
7411
7733
  #
7412
7734
  # @!attribute [rw] bucket
7413
7735
  # The bucket name that contains the objects.
7414
- #
7415
- # When using this API with an access point, you must direct requests
7416
- # to the access point hostname. The access point hostname takes the
7417
- # form
7418
- # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
7419
- # When using this operation using an access point through the AWS
7420
- # SDKs, you provide the access point ARN in place of the bucket name.
7421
- # For more information about access point ARNs, see [Using Access
7422
- # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
7423
- #
7424
- #
7425
- #
7426
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
7427
7736
  # @return [String]
7428
7737
  #
7429
7738
  # @!attribute [rw] delimiter
@@ -7518,7 +7827,7 @@ module Aws::S3
7518
7827
  # @return [Array<Types::Object>]
7519
7828
  #
7520
7829
  # @!attribute [rw] name
7521
- # Bucket name.
7830
+ # The bucket name.
7522
7831
  # @return [String]
7523
7832
  #
7524
7833
  # @!attribute [rw] prefix
@@ -7594,6 +7903,29 @@ module Aws::S3
7594
7903
  #
7595
7904
  # @!attribute [rw] bucket
7596
7905
  # The name of the bucket containing the objects.
7906
+ #
7907
+ # When using this API with an access point, you must direct requests
7908
+ # to the access point hostname. The access point hostname takes the
7909
+ # form
7910
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
7911
+ # When using this operation with an access point through the AWS SDKs,
7912
+ # you provide the access point ARN in place of the bucket name. For
7913
+ # more information about access point ARNs, see [Using Access
7914
+ # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
7915
+ #
7916
+ # When using this API with Amazon S3 on Outposts, you must direct
7917
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
7918
+ # takes the form
7919
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
7920
+ # When using this operation using S3 on Outposts through the AWS SDKs,
7921
+ # you provide the Outposts bucket ARN in place of the bucket name. For
7922
+ # more information about S3 on Outposts ARNs, see [Using S3 on
7923
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
7924
+ #
7925
+ #
7926
+ #
7927
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
7928
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
7597
7929
  # @return [String]
7598
7930
  #
7599
7931
  # @!attribute [rw] delimiter
@@ -7661,20 +7993,30 @@ module Aws::S3
7661
7993
  # @return [Array<Types::Object>]
7662
7994
  #
7663
7995
  # @!attribute [rw] name
7664
- # Bucket name.
7996
+ # The bucket name.
7665
7997
  #
7666
7998
  # When using this API with an access point, you must direct requests
7667
7999
  # to the access point hostname. The access point hostname takes the
7668
8000
  # form
7669
8001
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
7670
- # When using this operation using an access point through the AWS
7671
- # SDKs, you provide the access point ARN in place of the bucket name.
7672
- # For more information about access point ARNs, see [Using Access
8002
+ # When using this operation with an access point through the AWS SDKs,
8003
+ # you provide the access point ARN in place of the bucket name. For
8004
+ # more information about access point ARNs, see [Using Access
7673
8005
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
7674
8006
  #
8007
+ # When using this API with Amazon S3 on Outposts, you must direct
8008
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
8009
+ # takes the form
8010
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
8011
+ # When using this operation using S3 on Outposts through the AWS SDKs,
8012
+ # you provide the Outposts bucket ARN in place of the bucket name. For
8013
+ # more information about S3 on Outposts ARNs, see [Using S3 on
8014
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
8015
+ #
7675
8016
  #
7676
8017
  #
7677
8018
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
8019
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
7678
8020
  # @return [String]
7679
8021
  #
7680
8022
  # @!attribute [rw] prefix
@@ -7792,14 +8134,24 @@ module Aws::S3
7792
8134
  # to the access point hostname. The access point hostname takes the
7793
8135
  # form
7794
8136
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
7795
- # When using this operation using an access point through the AWS
7796
- # SDKs, you provide the access point ARN in place of the bucket name.
7797
- # For more information about access point ARNs, see [Using Access
8137
+ # When using this operation with an access point through the AWS SDKs,
8138
+ # you provide the access point ARN in place of the bucket name. For
8139
+ # more information about access point ARNs, see [Using Access
7798
8140
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
7799
8141
  #
8142
+ # When using this API with Amazon S3 on Outposts, you must direct
8143
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
8144
+ # takes the form
8145
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
8146
+ # When using this operation using S3 on Outposts through the AWS SDKs,
8147
+ # you provide the Outposts bucket ARN in place of the bucket name. For
8148
+ # more information about S3 on Outposts ARNs, see [Using S3 on
8149
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
8150
+ #
7800
8151
  #
7801
8152
  #
7802
8153
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
8154
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
7803
8155
  # @return [String]
7804
8156
  #
7805
8157
  # @!attribute [rw] delimiter
@@ -7893,7 +8245,7 @@ module Aws::S3
7893
8245
  # @return [String]
7894
8246
  #
7895
8247
  # @!attribute [rw] bucket
7896
- # Name of the bucket to which the multipart upload was initiated.
8248
+ # The name of the bucket to which the multipart upload was initiated.
7897
8249
  # @return [String]
7898
8250
  #
7899
8251
  # @!attribute [rw] key
@@ -7991,20 +8343,30 @@ module Aws::S3
7991
8343
  # }
7992
8344
  #
7993
8345
  # @!attribute [rw] bucket
7994
- # Name of the bucket to which the parts are being uploaded.
8346
+ # The name of the bucket to which the parts are being uploaded.
7995
8347
  #
7996
8348
  # When using this API with an access point, you must direct requests
7997
8349
  # to the access point hostname. The access point hostname takes the
7998
8350
  # form
7999
8351
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
8000
- # When using this operation using an access point through the AWS
8001
- # SDKs, you provide the access point ARN in place of the bucket name.
8002
- # For more information about access point ARNs, see [Using Access
8352
+ # When using this operation with an access point through the AWS SDKs,
8353
+ # you provide the access point ARN in place of the bucket name. For
8354
+ # more information about access point ARNs, see [Using Access
8003
8355
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
8004
8356
  #
8357
+ # When using this API with Amazon S3 on Outposts, you must direct
8358
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
8359
+ # takes the form
8360
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
8361
+ # When using this operation using S3 on Outposts through the AWS SDKs,
8362
+ # you provide the Outposts bucket ARN in place of the bucket name. For
8363
+ # more information about S3 on Outposts ARNs, see [Using S3 on
8364
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
8365
+ #
8005
8366
  #
8006
8367
  #
8007
8368
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
8369
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
8008
8370
  # @return [String]
8009
8371
  #
8010
8372
  # @!attribute [rw] key
@@ -8915,7 +9277,7 @@ module Aws::S3
8915
9277
  # value: "MetadataValue",
8916
9278
  # },
8917
9279
  # ],
8918
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
9280
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
8919
9281
  # },
8920
9282
  # }
8921
9283
  #
@@ -8994,6 +9356,60 @@ module Aws::S3
8994
9356
  include Aws::Structure
8995
9357
  end
8996
9358
 
9359
+ # The container element for a bucket's ownership controls.
9360
+ #
9361
+ # @note When making an API call, you may pass OwnershipControls
9362
+ # data as a hash:
9363
+ #
9364
+ # {
9365
+ # rules: [ # required
9366
+ # {
9367
+ # object_ownership: "BucketOwnerPreferred", # required, accepts BucketOwnerPreferred, ObjectWriter
9368
+ # },
9369
+ # ],
9370
+ # }
9371
+ #
9372
+ # @!attribute [rw] rules
9373
+ # The container element for an ownership control rule.
9374
+ # @return [Array<Types::OwnershipControlsRule>]
9375
+ #
9376
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/OwnershipControls AWS API Documentation
9377
+ #
9378
+ class OwnershipControls < Struct.new(
9379
+ :rules)
9380
+ SENSITIVE = []
9381
+ include Aws::Structure
9382
+ end
9383
+
9384
+ # The container element for an ownership control rule.
9385
+ #
9386
+ # @note When making an API call, you may pass OwnershipControlsRule
9387
+ # data as a hash:
9388
+ #
9389
+ # {
9390
+ # object_ownership: "BucketOwnerPreferred", # required, accepts BucketOwnerPreferred, ObjectWriter
9391
+ # }
9392
+ #
9393
+ # @!attribute [rw] object_ownership
9394
+ # The container element for object ownership for a bucket's ownership
9395
+ # controls.
9396
+ #
9397
+ # BucketOwnerPreferred - Objects uploaded to the bucket change
9398
+ # ownership to the bucket owner if the objects are uploaded with the
9399
+ # `bucket-owner-full-control` canned ACL.
9400
+ #
9401
+ # ObjectWriter - The uploading account will own the object if the
9402
+ # object is uploaded with the `bucket-owner-full-control` canned ACL.
9403
+ # @return [String]
9404
+ #
9405
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/OwnershipControlsRule AWS API Documentation
9406
+ #
9407
+ class OwnershipControlsRule < Struct.new(
9408
+ :object_ownership)
9409
+ SENSITIVE = []
9410
+ include Aws::Structure
9411
+ end
9412
+
8997
9413
  # Container for Parquet.
8998
9414
  #
8999
9415
  # @api private
@@ -9176,7 +9592,8 @@ module Aws::S3
9176
9592
  # }
9177
9593
  #
9178
9594
  # @!attribute [rw] bucket
9179
- # Name of the bucket for which the accelerate configuration is set.
9595
+ # The name of the bucket for which the accelerate configuration is
9596
+ # set.
9180
9597
  # @return [String]
9181
9598
  #
9182
9599
  # @!attribute [rw] accelerate_configuration
@@ -9964,6 +10381,50 @@ module Aws::S3
9964
10381
  include Aws::Structure
9965
10382
  end
9966
10383
 
10384
+ # @note When making an API call, you may pass PutBucketOwnershipControlsRequest
10385
+ # data as a hash:
10386
+ #
10387
+ # {
10388
+ # bucket: "BucketName", # required
10389
+ # content_md5: "ContentMD5",
10390
+ # expected_bucket_owner: "AccountId",
10391
+ # ownership_controls: { # required
10392
+ # rules: [ # required
10393
+ # {
10394
+ # object_ownership: "BucketOwnerPreferred", # required, accepts BucketOwnerPreferred, ObjectWriter
10395
+ # },
10396
+ # ],
10397
+ # },
10398
+ # }
10399
+ #
10400
+ # @!attribute [rw] bucket
10401
+ # The name of the Amazon S3 bucket whose `OwnershipControls` you want
10402
+ # to set.
10403
+ # @return [String]
10404
+ #
10405
+ # @!attribute [rw] content_md5
10406
+ # The MD5 hash of the `OwnershipControls` request body.
10407
+ # @return [String]
10408
+ #
10409
+ # @!attribute [rw] expected_bucket_owner
10410
+ # @return [String]
10411
+ #
10412
+ # @!attribute [rw] ownership_controls
10413
+ # The `OwnershipControls` (BucketOwnerPreferred or ObjectWriter) that
10414
+ # you want to apply to this Amazon S3 bucket.
10415
+ # @return [Types::OwnershipControls]
10416
+ #
10417
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketOwnershipControlsRequest AWS API Documentation
10418
+ #
10419
+ class PutBucketOwnershipControlsRequest < Struct.new(
10420
+ :bucket,
10421
+ :content_md5,
10422
+ :expected_bucket_owner,
10423
+ :ownership_controls)
10424
+ SENSITIVE = []
10425
+ include Aws::Structure
10426
+ end
10427
+
9967
10428
  # @note When making an API call, you may pass PutBucketPolicyRequest
9968
10429
  # data as a hash:
9969
10430
  #
@@ -10051,7 +10512,7 @@ module Aws::S3
10051
10512
  # destination: { # required
10052
10513
  # bucket: "BucketName", # required
10053
10514
  # account: "AccountId",
10054
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
10515
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
10055
10516
  # access_control_translation: {
10056
10517
  # owner: "Destination", # required, accepts Destination
10057
10518
  # },
@@ -10423,9 +10884,9 @@ module Aws::S3
10423
10884
  # to the access point hostname. The access point hostname takes the
10424
10885
  # form
10425
10886
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
10426
- # When using this operation using an access point through the AWS
10427
- # SDKs, you provide the access point ARN in place of the bucket name.
10428
- # For more information about access point ARNs, see [Using Access
10887
+ # When using this operation with an access point through the AWS SDKs,
10888
+ # you provide the access point ARN in place of the bucket name. For
10889
+ # more information about access point ARNs, see [Using Access
10429
10890
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
10430
10891
  #
10431
10892
  #
@@ -10447,14 +10908,20 @@ module Aws::S3
10447
10908
  # @!attribute [rw] grant_full_control
10448
10909
  # Allows grantee the read, write, read ACP, and write ACP permissions
10449
10910
  # on the bucket.
10911
+ #
10912
+ # This action is not supported by Amazon S3 on Outposts.
10450
10913
  # @return [String]
10451
10914
  #
10452
10915
  # @!attribute [rw] grant_read
10453
10916
  # Allows grantee to list the objects in the bucket.
10917
+ #
10918
+ # This action is not supported by Amazon S3 on Outposts.
10454
10919
  # @return [String]
10455
10920
  #
10456
10921
  # @!attribute [rw] grant_read_acp
10457
10922
  # Allows grantee to read the bucket ACL.
10923
+ #
10924
+ # This action is not supported by Amazon S3 on Outposts.
10458
10925
  # @return [String]
10459
10926
  #
10460
10927
  # @!attribute [rw] grant_write
@@ -10464,10 +10931,35 @@ module Aws::S3
10464
10931
  #
10465
10932
  # @!attribute [rw] grant_write_acp
10466
10933
  # Allows grantee to write the ACL for the applicable bucket.
10934
+ #
10935
+ # This action is not supported by Amazon S3 on Outposts.
10467
10936
  # @return [String]
10468
10937
  #
10469
10938
  # @!attribute [rw] key
10470
10939
  # Key for which the PUT operation was initiated.
10940
+ #
10941
+ # When using this API with an access point, you must direct requests
10942
+ # to the access point hostname. The access point hostname takes the
10943
+ # form
10944
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
10945
+ # When using this operation with an access point through the AWS SDKs,
10946
+ # you provide the access point ARN in place of the bucket name. For
10947
+ # more information about access point ARNs, see [Using Access
10948
+ # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
10949
+ #
10950
+ # When using this API with Amazon S3 on Outposts, you must direct
10951
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
10952
+ # takes the form
10953
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
10954
+ # When using this operation using S3 on Outposts through the AWS SDKs,
10955
+ # you provide the Outposts bucket ARN in place of the bucket name. For
10956
+ # more information about S3 on Outposts ARNs, see [Using S3 on
10957
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
10958
+ #
10959
+ #
10960
+ #
10961
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
10962
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
10471
10963
  # @return [String]
10472
10964
  #
10473
10965
  # @!attribute [rw] request_payer
@@ -10548,9 +11040,9 @@ module Aws::S3
10548
11040
  # to the access point hostname. The access point hostname takes the
10549
11041
  # form
10550
11042
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
10551
- # When using this operation using an access point through the AWS
10552
- # SDKs, you provide the access point ARN in place of the bucket name.
10553
- # For more information about access point ARNs, see [Using Access
11043
+ # When using this operation with an access point through the AWS SDKs,
11044
+ # you provide the access point ARN in place of the bucket name. For
11045
+ # more information about access point ARNs, see [Using Access
10554
11046
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
10555
11047
  #
10556
11048
  #
@@ -10789,7 +11281,7 @@ module Aws::S3
10789
11281
  # "MetadataKey" => "MetadataValue",
10790
11282
  # },
10791
11283
  # server_side_encryption: "AES256", # accepts AES256, aws:kms
10792
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
11284
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
10793
11285
  # website_redirect_location: "WebsiteRedirectLocation",
10794
11286
  # sse_customer_algorithm: "SSECustomerAlgorithm",
10795
11287
  # sse_customer_key: "SSECustomerKey",
@@ -10808,6 +11300,8 @@ module Aws::S3
10808
11300
  # The canned ACL to apply to the object. For more information, see
10809
11301
  # [Canned ACL][1].
10810
11302
  #
11303
+ # This action is not supported by Amazon S3 on Outposts.
11304
+ #
10811
11305
  #
10812
11306
  #
10813
11307
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#CannedACL
@@ -10818,20 +11312,30 @@ module Aws::S3
10818
11312
  # @return [IO]
10819
11313
  #
10820
11314
  # @!attribute [rw] bucket
10821
- # Bucket name to which the PUT operation was initiated.
11315
+ # The bucket name to which the PUT operation was initiated.
10822
11316
  #
10823
11317
  # When using this API with an access point, you must direct requests
10824
11318
  # to the access point hostname. The access point hostname takes the
10825
11319
  # form
10826
11320
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
10827
- # When using this operation using an access point through the AWS
10828
- # SDKs, you provide the access point ARN in place of the bucket name.
10829
- # For more information about access point ARNs, see [Using Access
11321
+ # When using this operation with an access point through the AWS SDKs,
11322
+ # you provide the access point ARN in place of the bucket name. For
11323
+ # more information about access point ARNs, see [Using Access
10830
11324
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
10831
11325
  #
11326
+ # When using this API with Amazon S3 on Outposts, you must direct
11327
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
11328
+ # takes the form
11329
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
11330
+ # When using this operation using S3 on Outposts through the AWS SDKs,
11331
+ # you provide the Outposts bucket ARN in place of the bucket name. For
11332
+ # more information about S3 on Outposts ARNs, see [Using S3 on
11333
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
11334
+ #
10832
11335
  #
10833
11336
  #
10834
11337
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
11338
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
10835
11339
  # @return [String]
10836
11340
  #
10837
11341
  # @!attribute [rw] cache_control
@@ -10918,18 +11422,26 @@ module Aws::S3
10918
11422
  # @!attribute [rw] grant_full_control
10919
11423
  # Gives the grantee READ, READ\_ACP, and WRITE\_ACP permissions on the
10920
11424
  # object.
11425
+ #
11426
+ # This action is not supported by Amazon S3 on Outposts.
10921
11427
  # @return [String]
10922
11428
  #
10923
11429
  # @!attribute [rw] grant_read
10924
11430
  # Allows grantee to read the object data and its metadata.
11431
+ #
11432
+ # This action is not supported by Amazon S3 on Outposts.
10925
11433
  # @return [String]
10926
11434
  #
10927
11435
  # @!attribute [rw] grant_read_acp
10928
11436
  # Allows grantee to read the object ACL.
11437
+ #
11438
+ # This action is not supported by Amazon S3 on Outposts.
10929
11439
  # @return [String]
10930
11440
  #
10931
11441
  # @!attribute [rw] grant_write_acp
10932
11442
  # Allows grantee to write the ACL for the applicable object.
11443
+ #
11444
+ # This action is not supported by Amazon S3 on Outposts.
10933
11445
  # @return [String]
10934
11446
  #
10935
11447
  # @!attribute [rw] key
@@ -10946,8 +11458,16 @@ module Aws::S3
10946
11458
  # @return [String]
10947
11459
  #
10948
11460
  # @!attribute [rw] storage_class
10949
- # If you don't specify, S3 Standard is the default storage class.
10950
- # Amazon S3 supports other storage classes.
11461
+ # By default, Amazon S3 uses the STANDARD Storage Class to store newly
11462
+ # created objects. The STANDARD storage class provides high durability
11463
+ # and high availability. Depending on performance needs, you can
11464
+ # specify a different Storage Class. Amazon S3 on Outposts only uses
11465
+ # the OUTPOSTS Storage Class. For more information, see [Storage
11466
+ # Classes][1] in the *Amazon S3 Service Developer Guide*.
11467
+ #
11468
+ #
11469
+ #
11470
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/storage-class-intro.html
10951
11471
  # @return [String]
10952
11472
  #
10953
11473
  # @!attribute [rw] website_redirect_location
@@ -11134,9 +11654,9 @@ module Aws::S3
11134
11654
  # to the access point hostname. The access point hostname takes the
11135
11655
  # form
11136
11656
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
11137
- # When using this operation using an access point through the AWS
11138
- # SDKs, you provide the access point ARN in place of the bucket name.
11139
- # For more information about access point ARNs, see [Using Access
11657
+ # When using this operation with an access point through the AWS SDKs,
11658
+ # you provide the access point ARN in place of the bucket name. For
11659
+ # more information about access point ARNs, see [Using Access
11140
11660
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
11141
11661
  #
11142
11662
  #
@@ -11238,14 +11758,24 @@ module Aws::S3
11238
11758
  # to the access point hostname. The access point hostname takes the
11239
11759
  # form
11240
11760
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
11241
- # When using this operation using an access point through the AWS
11242
- # SDKs, you provide the access point ARN in place of the bucket name.
11243
- # For more information about access point ARNs, see [Using Access
11761
+ # When using this operation with an access point through the AWS SDKs,
11762
+ # you provide the access point ARN in place of the bucket name. For
11763
+ # more information about access point ARNs, see [Using Access
11244
11764
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
11245
11765
  #
11766
+ # When using this API with Amazon S3 on Outposts, you must direct
11767
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
11768
+ # takes the form
11769
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
11770
+ # When using this operation using S3 on Outposts through the AWS SDKs,
11771
+ # you provide the Outposts bucket ARN in place of the bucket name. For
11772
+ # more information about S3 on Outposts ARNs, see [Using S3 on
11773
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
11774
+ #
11246
11775
  #
11247
11776
  #
11248
11777
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
11778
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
11249
11779
  # @return [String]
11250
11780
  #
11251
11781
  # @!attribute [rw] key
@@ -11588,7 +12118,7 @@ module Aws::S3
11588
12118
  # destination: { # required
11589
12119
  # bucket: "BucketName", # required
11590
12120
  # account: "AccountId",
11591
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
12121
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
11592
12122
  # access_control_translation: {
11593
12123
  # owner: "Destination", # required, accepts Destination
11594
12124
  # },
@@ -11679,7 +12209,7 @@ module Aws::S3
11679
12209
  # destination: { # required
11680
12210
  # bucket: "BucketName", # required
11681
12211
  # account: "AccountId",
11682
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
12212
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
11683
12213
  # access_control_translation: {
11684
12214
  # owner: "Destination", # required, accepts Destination
11685
12215
  # },
@@ -12104,7 +12634,7 @@ module Aws::S3
12104
12634
  # value: "MetadataValue",
12105
12635
  # },
12106
12636
  # ],
12107
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
12637
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
12108
12638
  # },
12109
12639
  # },
12110
12640
  # },
@@ -12119,14 +12649,24 @@ module Aws::S3
12119
12649
  # to the access point hostname. The access point hostname takes the
12120
12650
  # form
12121
12651
  # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
12122
- # When using this operation using an access point through the AWS
12123
- # SDKs, you provide the access point ARN in place of the bucket name.
12124
- # For more information about access point ARNs, see [Using Access
12652
+ # When using this operation with an access point through the AWS SDKs,
12653
+ # you provide the access point ARN in place of the bucket name. For
12654
+ # more information about access point ARNs, see [Using Access
12125
12655
  # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
12126
12656
  #
12657
+ # When using this API with Amazon S3 on Outposts, you must direct
12658
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
12659
+ # takes the form
12660
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
12661
+ # When using this operation using S3 on Outposts through the AWS SDKs,
12662
+ # you provide the Outposts bucket ARN in place of the bucket name. For
12663
+ # more information about S3 on Outposts ARNs, see [Using S3 on
12664
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
12665
+ #
12127
12666
  #
12128
12667
  #
12129
12668
  # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
12669
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
12130
12670
  # @return [String]
12131
12671
  #
12132
12672
  # @!attribute [rw] key
@@ -12254,7 +12794,7 @@ module Aws::S3
12254
12794
  # value: "MetadataValue",
12255
12795
  # },
12256
12796
  # ],
12257
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
12797
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
12258
12798
  # },
12259
12799
  # },
12260
12800
  # }
@@ -12536,7 +13076,7 @@ module Aws::S3
12536
13076
  # value: "MetadataValue",
12537
13077
  # },
12538
13078
  # ],
12539
- # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE
13079
+ # storage_class: "STANDARD", # accepts STANDARD, REDUCED_REDUNDANCY, STANDARD_IA, ONEZONE_IA, INTELLIGENT_TIERING, GLACIER, DEEP_ARCHIVE, OUTPOSTS
12540
13080
  # }
12541
13081
  #
12542
13082
  # @!attribute [rw] bucket_name
@@ -13254,7 +13794,7 @@ module Aws::S3
13254
13794
  # @return [Types::Grantee]
13255
13795
  #
13256
13796
  # @!attribute [rw] permission
13257
- # Logging permissions assigned to the Grantee for the bucket.
13797
+ # Logging permissions assigned to the grantee for the bucket.
13258
13798
  # @return [String]
13259
13799
  #
13260
13800
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/TargetGrant AWS API Documentation
@@ -13504,6 +14044,29 @@ module Aws::S3
13504
14044
  #
13505
14045
  # @!attribute [rw] bucket
13506
14046
  # The bucket name.
14047
+ #
14048
+ # When using this API with an access point, you must direct requests
14049
+ # to the access point hostname. The access point hostname takes the
14050
+ # form
14051
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
14052
+ # When using this operation with an access point through the AWS SDKs,
14053
+ # you provide the access point ARN in place of the bucket name. For
14054
+ # more information about access point ARNs, see [Using Access
14055
+ # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
14056
+ #
14057
+ # When using this API with Amazon S3 on Outposts, you must direct
14058
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
14059
+ # takes the form
14060
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
14061
+ # When using this operation using S3 on Outposts through the AWS SDKs,
14062
+ # you provide the Outposts bucket ARN in place of the bucket name. For
14063
+ # more information about S3 on Outposts ARNs, see [Using S3 on
14064
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
14065
+ #
14066
+ #
14067
+ #
14068
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
14069
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
13507
14070
  # @return [String]
13508
14071
  #
13509
14072
  # @!attribute [rw] copy_source
@@ -13522,7 +14085,7 @@ module Aws::S3
13522
14085
  # Resource Name (ARN) of the object as accessed through the access
13523
14086
  # point, in the format
13524
14087
  # `arn:aws:s3:<Region>:<account-id>:accesspoint/<access-point-name>/object/<key>`.
13525
- # For example, to copy the object `reports/january.pdf` through the
14088
+ # For example, to copy the object `reports/january.pdf` through
13526
14089
  # access point `my-access-point` owned by account `123456789012` in
13527
14090
  # Region `us-west-2`, use the URL encoding of
13528
14091
  # `arn:aws:s3:us-west-2:123456789012:accesspoint/my-access-point/object/reports/january.pdf`.
@@ -13533,6 +14096,15 @@ module Aws::S3
13533
14096
  #
13534
14097
  # </note>
13535
14098
  #
14099
+ # Alternatively, for objects accessed through Amazon S3 on Outposts,
14100
+ # specify the ARN of the object as accessed in the format
14101
+ # `arn:aws:s3-outposts:<Region>:<account-id>:outpost/<outpost-id>/object/<key>`.
14102
+ # For example, to copy the object `reports/january.pdf` through
14103
+ # outpost `my-outpost` owned by account `123456789012` in Region
14104
+ # `us-west-2`, use the URL encoding of
14105
+ # `arn:aws:s3-outposts:us-west-2:123456789012:outpost/my-outpost/object/reports/january.pdf`.
14106
+ # The value must be URL encoded.
14107
+ #
13536
14108
  # To copy a specific version of an object, append
13537
14109
  # `?versionId=<version-id>` to the value (for example,
13538
14110
  # `awsexamplebucket/reports/january.pdf?versionId=QUpfdndhfd8438MNFDN93jdnJFkdmqnh893`).
@@ -13742,7 +14314,30 @@ module Aws::S3
13742
14314
  # @return [IO]
13743
14315
  #
13744
14316
  # @!attribute [rw] bucket
13745
- # Name of the bucket to which the multipart upload was initiated.
14317
+ # The name of the bucket to which the multipart upload was initiated.
14318
+ #
14319
+ # When using this API with an access point, you must direct requests
14320
+ # to the access point hostname. The access point hostname takes the
14321
+ # form
14322
+ # *AccessPointName*-*AccountId*.s3-accesspoint.*Region*.amazonaws.com.
14323
+ # When using this operation with an access point through the AWS SDKs,
14324
+ # you provide the access point ARN in place of the bucket name. For
14325
+ # more information about access point ARNs, see [Using Access
14326
+ # Points][1] in the *Amazon Simple Storage Service Developer Guide*.
14327
+ #
14328
+ # When using this API with Amazon S3 on Outposts, you must direct
14329
+ # requests to the S3 on Outposts hostname. The S3 on Outposts hostname
14330
+ # takes the form
14331
+ # *AccessPointName*-*AccountId*.*outpostID*.s3-outposts.*Region*.amazonaws.com.
14332
+ # When using this operation using S3 on Outposts through the AWS SDKs,
14333
+ # you provide the Outposts bucket ARN in place of the bucket name. For
14334
+ # more information about S3 on Outposts ARNs, see [Using S3 on
14335
+ # Outposts][2] in the *Amazon Simple Storage Service Developer Guide*.
14336
+ #
14337
+ #
14338
+ #
14339
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/using-access-points.html
14340
+ # [2]: https://docs.aws.amazon.com/AmazonS3/latest/dev/S3onOutposts.html
13746
14341
  # @return [String]
13747
14342
  #
13748
14343
  # @!attribute [rw] content_length