aws-sdk-s3 1.81.1 → 1.83.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -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