aws-sdk-s3control 1.26.0 → 1.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -31,6 +31,7 @@ client's region instead.
31
31
  handlers.add(UrlHandler)
32
32
  end
33
33
 
34
+ # After extracting out any ARN input, resolve a new URL with it.
34
35
  class UrlHandler < Seahorse::Client::Handler
35
36
  def call(context)
36
37
  if context.metadata[:s3_arn]
@@ -38,13 +39,18 @@ client's region instead.
38
39
  context.http_request.endpoint,
39
40
  context.metadata[:s3_arn][:arn],
40
41
  context.metadata[:s3_arn][:resolved_region],
41
- context.metadata[:s3_arn][:dualstack]
42
+ context.metadata[:s3_arn][:dualstack],
43
+ # if regional_endpoint is false, a custom endpoint was provided
44
+ # in this case, we want to prefix the endpoint using the ARN
45
+ !context.config.regional_endpoint
42
46
  )
43
47
  end
44
48
  @handler.call(context)
45
49
  end
46
50
  end
47
51
 
52
+ # This plugin will extract out any ARN input and set context for other
53
+ # plugins to use without having to translate the ARN again.
48
54
  class ARNHandler < Seahorse::Client::Handler
49
55
  def call(context)
50
56
  arn_member = _arn_member(context.operation.input.shape)
@@ -54,6 +60,7 @@ client's region instead.
54
60
  context.config.region,
55
61
  context.config.s3_use_arn_region
56
62
  )
63
+ validate_outpost_dualstack!(context)
57
64
  if arn
58
65
  validate_config!(context, arn)
59
66
 
@@ -68,7 +75,6 @@ client's region instead.
68
75
  # depending on the ARN's resource type, put the resource value
69
76
  # back onto params
70
77
  context.params[arn_member] = arn.input_member
71
-
72
78
  context.metadata[:s3_arn] = {
73
79
  arn: arn,
74
80
  resolved_region: resolved_region,
@@ -81,6 +87,17 @@ client's region instead.
81
87
 
82
88
  private
83
89
 
90
+ # this validation has nothing to do with ARNs (can't be in
91
+ # validate_config!) outposts does not support dualstack, so operations
92
+ # using an outpost id should be validated too.
93
+ def validate_outpost_dualstack!(context)
94
+ if context.params[:outpost_id] && context[:use_dualstack_endpoint]
95
+ raise ArgumentError,
96
+ 'Cannot provide an Outpost ID when '\
97
+ '`:use_dualstack_endpoint` is set to true.'
98
+ end
99
+ end
100
+
84
101
  # This looks for BucketName or AccessPointName, but prefers BucketName
85
102
  # for CreateAccessPoint because it contains both but should not have
86
103
  # an Access Point ARN as AccessPointName.
@@ -102,16 +119,10 @@ client's region instead.
102
119
  end
103
120
 
104
121
  def validate_config!(context, arn)
105
- unless context.config.regional_endpoint
106
- raise ArgumentError,
107
- 'Cannot provide both an Access Point ARN and setting '\
108
- ':endpoint.'
109
- end
110
-
111
122
  if !arn.support_dualstack? && context[:use_dualstack_endpoint]
112
123
  raise ArgumentError,
113
- 'Cannot provide both an Outpost Access Point ARN and '\
114
- 'setting :use_dualstack_endpoint to true.'
124
+ 'Cannot provide an Outpost Access Point ARN when '\
125
+ '`:use_dualstack_endpoint` is set to true.'
115
126
  end
116
127
  end
117
128
 
@@ -154,8 +165,9 @@ client's region instead.
154
165
  end
155
166
 
156
167
  # @api private
157
- def resolve_url!(url, arn, region, dualstack = false)
158
- url.host = arn.host_url(region, dualstack)
168
+ def resolve_url!(url, arn, region, dualstack = false, has_custom_endpoint = false)
169
+ custom_endpoint = url.host if has_custom_endpoint
170
+ url.host = arn.host_url(region, dualstack, custom_endpoint)
159
171
  url
160
172
  end
161
173
 
@@ -169,9 +181,9 @@ client's region instead.
169
181
  # Raise if provided value is not true or false
170
182
  if value.nil?
171
183
  raise ArgumentError,
172
- 'Must provide either `true` or `false` for '\
173
- 's3_use_arn_region profile option or for '\
174
- "ENV['AWS_S3_USE_ARN_REGION']"
184
+ 'Must provide either `true` or `false` for the '\
185
+ '`s3_use_arn_region` profile option or for '\
186
+ "ENV['AWS_S3_USE_ARN_REGION']."
175
187
  end
176
188
  value
177
189
  end
@@ -191,7 +203,7 @@ client's region instead.
191
203
  if !fips && !use_arn_region && region.include?('fips')
192
204
  raise ArgumentError,
193
205
  'FIPS client regions are not supported for this type of '\
194
- 'ARN without s3_use_arn_region.'
206
+ 'ARN without `:s3_use_arn_region`.'
195
207
  end
196
208
 
197
209
  # if it's a fips region, attempt to normalize it
@@ -16,16 +16,22 @@ for all operations.
16
16
 
17
17
  def add_handlers(handlers, config)
18
18
  handlers.add(OptionHandler, step: :initialize)
19
- handlers.add(DualstackHandler, step: :build, priority: 2)
19
+ handlers.add(DualstackHandler, step: :build, priority: 11)
20
20
  end
21
21
 
22
22
  # @api private
23
23
  class OptionHandler < Seahorse::Client::Handler
24
24
  def call(context)
25
+ # Support client configuration and per-operation configuration
25
26
  if context.params.is_a?(Hash)
26
27
  dualstack = context.params.delete(:use_dualstack_endpoint)
27
28
  end
28
29
  dualstack = context.config.use_dualstack_endpoint if dualstack.nil?
30
+ # Raise if :endpoint and dualstack are both provided
31
+ if dualstack && !context.config.regional_endpoint
32
+ raise ArgumentError,
33
+ 'Cannot use both :use_dualstack_endpoint and :endpoint'
34
+ end
29
35
  context[:use_dualstack_endpoint] = dualstack
30
36
  @handler.call(context)
31
37
  end
@@ -34,17 +40,16 @@ for all operations.
34
40
  # @api private
35
41
  class DualstackHandler < Seahorse::Client::Handler
36
42
  def call(context)
37
- apply_dualstack_endpoint(context) if use_dualstack_endpoint?(context)
43
+ if context.config.regional_endpoint && context[:use_dualstack_endpoint]
44
+ apply_dualstack_endpoint(context)
45
+ end
38
46
  @handler.call(context)
39
47
  end
40
48
 
41
49
  private
42
50
  def apply_dualstack_endpoint(context)
43
- bucket_name = context.params[:bucket]
44
51
  region = context.config.region
45
- dns_suffix = Aws::Partitions::EndpointProvider.dns_suffix_for(
46
- region
47
- )
52
+ dns_suffix = Aws::Partitions::EndpointProvider.dns_suffix_for(region)
48
53
  host = "s3-control.dualstack.#{region}.#{dns_suffix}"
49
54
  endpoint = URI.parse(context.http_request.endpoint.to_s)
50
55
  endpoint.scheme = context.http_request.endpoint.scheme
@@ -52,10 +57,6 @@ for all operations.
52
57
  endpoint.host = host
53
58
  context.http_request.endpoint = endpoint.to_s
54
59
  end
55
-
56
- def use_dualstack_endpoint?(context)
57
- context[:use_dualstack_endpoint]
58
- end
59
60
  end
60
61
 
61
62
  end
@@ -51,8 +51,12 @@ module Aws
51
51
  credentials: context.config.credentials
52
52
  )
53
53
  elsif outpost_operation?(context)
54
- context.http_request.endpoint.host =
55
- "s3-outposts.#{context.config.region}.amazonaws.com"
54
+ # outpost operations should go to the outposts endpoint only if
55
+ # it's not a custom endpoint. the ARN class changes this for ARNs
56
+ if context.config.regional_endpoint
57
+ context.http_request.endpoint.host =
58
+ "s3-outposts.#{context.config.region}.amazonaws.com"
59
+ end
56
60
  S3ControlSigner.build_v4_signer(
57
61
  service: 's3-outposts',
58
62
  region: context.config.region,
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -3,7 +3,7 @@
3
3
  # WARNING ABOUT GENERATED CODE
4
4
  #
5
5
  # This file is generated. See the contributing guide for more information:
6
- # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
6
+ # https://github.com/aws/aws-sdk-ruby/blob/version-3/CONTRIBUTING.md
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
@@ -137,6 +137,35 @@ module Aws::S3Control
137
137
  include Aws::Structure
138
138
  end
139
139
 
140
+ # AWS Lambda function used to transform objects through an Object Lambda
141
+ # Access Point.
142
+ #
143
+ # @note When making an API call, you may pass AwsLambdaTransformation
144
+ # data as a hash:
145
+ #
146
+ # {
147
+ # function_arn: "FunctionArnString", # required
148
+ # function_payload: "AwsLambdaTransformationPayload",
149
+ # }
150
+ #
151
+ # @!attribute [rw] function_arn
152
+ # The Amazon Resource Name (ARN) of the AWS Lambda function.
153
+ # @return [String]
154
+ #
155
+ # @!attribute [rw] function_payload
156
+ # Additional JSON that provides supplemental data to the Lambda
157
+ # function used to transform objects.
158
+ # @return [String]
159
+ #
160
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/AwsLambdaTransformation AWS API Documentation
161
+ #
162
+ class AwsLambdaTransformation < Struct.new(
163
+ :function_arn,
164
+ :function_payload)
165
+ SENSITIVE = []
166
+ include Aws::Structure
167
+ end
168
+
140
169
  # @!attribute [rw] message
141
170
  # @return [String]
142
171
  #
@@ -203,6 +232,65 @@ module Aws::S3Control
203
232
  include Aws::Structure
204
233
  end
205
234
 
235
+ # @note When making an API call, you may pass CreateAccessPointForObjectLambdaRequest
236
+ # data as a hash:
237
+ #
238
+ # {
239
+ # account_id: "AccountId", # required
240
+ # name: "ObjectLambdaAccessPointName", # required
241
+ # configuration: { # required
242
+ # supporting_access_point: "ObjectLambdaSupportingAccessPointArn", # required
243
+ # cloud_watch_metrics_enabled: false,
244
+ # allowed_features: ["GetObject-Range"], # accepts GetObject-Range, GetObject-PartNumber
245
+ # transformation_configurations: [ # required
246
+ # {
247
+ # actions: ["GetObject"], # required, accepts GetObject
248
+ # content_transformation: { # required
249
+ # aws_lambda: {
250
+ # function_arn: "FunctionArnString", # required
251
+ # function_payload: "AwsLambdaTransformationPayload",
252
+ # },
253
+ # },
254
+ # },
255
+ # ],
256
+ # },
257
+ # }
258
+ #
259
+ # @!attribute [rw] account_id
260
+ # The AWS account ID for owner of the specified Object Lambda Access
261
+ # Point.
262
+ # @return [String]
263
+ #
264
+ # @!attribute [rw] name
265
+ # The name you want to assign to this Object Lambda Access Point.
266
+ # @return [String]
267
+ #
268
+ # @!attribute [rw] configuration
269
+ # Object Lambda Access Point configuration as a JSON document.
270
+ # @return [Types::ObjectLambdaConfiguration]
271
+ #
272
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessPointForObjectLambdaRequest AWS API Documentation
273
+ #
274
+ class CreateAccessPointForObjectLambdaRequest < Struct.new(
275
+ :account_id,
276
+ :name,
277
+ :configuration)
278
+ SENSITIVE = []
279
+ include Aws::Structure
280
+ end
281
+
282
+ # @!attribute [rw] object_lambda_access_point_arn
283
+ # Specifies the ARN for the Object Lambda Access Point.
284
+ # @return [String]
285
+ #
286
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/CreateAccessPointForObjectLambdaResult AWS API Documentation
287
+ #
288
+ class CreateAccessPointForObjectLambdaResult < Struct.new(
289
+ :object_lambda_access_point_arn)
290
+ SENSITIVE = []
291
+ include Aws::Structure
292
+ end
293
+
206
294
  # @note When making an API call, you may pass CreateAccessPointRequest
207
295
  # data as a hash:
208
296
  #
@@ -558,6 +646,8 @@ module Aws::S3Control
558
646
  # },
559
647
  # ],
560
648
  # },
649
+ # s3_delete_object_tagging: {
650
+ # },
561
651
  # s3_initiate_restore_object: {
562
652
  # expiration_in_days: 1,
563
653
  # glacier_job_tier: "BULK", # accepts BULK, STANDARD
@@ -616,14 +706,14 @@ module Aws::S3Control
616
706
  # @return [Boolean]
617
707
  #
618
708
  # @!attribute [rw] operation
619
- # The operation that you want this job to perform on every object
620
- # listed in the manifest. For more information about the available
621
- # operations, see [Operations][1] in the *Amazon Simple Storage
622
- # Service Developer Guide*.
709
+ # The action that you want this job to perform on every object listed
710
+ # in the manifest. For more information about the available actions,
711
+ # see [Operations][1] in the *Amazon Simple Storage Service User
712
+ # Guide*.
623
713
  #
624
714
  #
625
715
  #
626
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-operations.html
716
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/batch-ops-actions.html
627
717
  # @return [Types::JobOperation]
628
718
  #
629
719
  # @!attribute [rw] report
@@ -657,7 +747,7 @@ module Aws::S3Control
657
747
  # @!attribute [rw] role_arn
658
748
  # The Amazon Resource Name (ARN) for the AWS Identity and Access
659
749
  # Management (IAM) role that Batch Operations will use to run this
660
- # job's operation on every object in the manifest.
750
+ # job's action on every object in the manifest.
661
751
  # @return [String]
662
752
  #
663
753
  # @!attribute [rw] tags
@@ -695,6 +785,59 @@ module Aws::S3Control
695
785
  include Aws::Structure
696
786
  end
697
787
 
788
+ # @note When making an API call, you may pass DeleteAccessPointForObjectLambdaRequest
789
+ # data as a hash:
790
+ #
791
+ # {
792
+ # account_id: "AccountId", # required
793
+ # name: "ObjectLambdaAccessPointName", # required
794
+ # }
795
+ #
796
+ # @!attribute [rw] account_id
797
+ # The account ID for the account that owns the specified Object Lambda
798
+ # Access Point.
799
+ # @return [String]
800
+ #
801
+ # @!attribute [rw] name
802
+ # The name of the access point you want to delete.
803
+ # @return [String]
804
+ #
805
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointForObjectLambdaRequest AWS API Documentation
806
+ #
807
+ class DeleteAccessPointForObjectLambdaRequest < Struct.new(
808
+ :account_id,
809
+ :name)
810
+ SENSITIVE = []
811
+ include Aws::Structure
812
+ end
813
+
814
+ # @note When making an API call, you may pass DeleteAccessPointPolicyForObjectLambdaRequest
815
+ # data as a hash:
816
+ #
817
+ # {
818
+ # account_id: "AccountId", # required
819
+ # name: "ObjectLambdaAccessPointName", # required
820
+ # }
821
+ #
822
+ # @!attribute [rw] account_id
823
+ # The account ID for the account that owns the specified Object Lambda
824
+ # Access Point.
825
+ # @return [String]
826
+ #
827
+ # @!attribute [rw] name
828
+ # The name of the Object Lambda Access Point you want to delete the
829
+ # policy for.
830
+ # @return [String]
831
+ #
832
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/DeleteAccessPointPolicyForObjectLambdaRequest AWS API Documentation
833
+ #
834
+ class DeleteAccessPointPolicyForObjectLambdaRequest < Struct.new(
835
+ :account_id,
836
+ :name)
837
+ SENSITIVE = []
838
+ include Aws::Structure
839
+ end
840
+
698
841
  # @note When making an API call, you may pass DeleteAccessPointPolicyRequest
699
842
  # data as a hash:
700
843
  #
@@ -1032,6 +1175,7 @@ module Aws::S3Control
1032
1175
  # }
1033
1176
  #
1034
1177
  # @!attribute [rw] account_id
1178
+ # The AWS account ID associated with the S3 Batch Operations job.
1035
1179
  # @return [String]
1036
1180
  #
1037
1181
  # @!attribute [rw] job_id
@@ -1087,6 +1231,133 @@ module Aws::S3Control
1087
1231
  include Aws::Structure
1088
1232
  end
1089
1233
 
1234
+ # @note When making an API call, you may pass GetAccessPointConfigurationForObjectLambdaRequest
1235
+ # data as a hash:
1236
+ #
1237
+ # {
1238
+ # account_id: "AccountId", # required
1239
+ # name: "ObjectLambdaAccessPointName", # required
1240
+ # }
1241
+ #
1242
+ # @!attribute [rw] account_id
1243
+ # The account ID for the account that owns the specified Object Lambda
1244
+ # Access Point.
1245
+ # @return [String]
1246
+ #
1247
+ # @!attribute [rw] name
1248
+ # The name of the Object Lambda Access Point you want to return the
1249
+ # configuration for.
1250
+ # @return [String]
1251
+ #
1252
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointConfigurationForObjectLambdaRequest AWS API Documentation
1253
+ #
1254
+ class GetAccessPointConfigurationForObjectLambdaRequest < Struct.new(
1255
+ :account_id,
1256
+ :name)
1257
+ SENSITIVE = []
1258
+ include Aws::Structure
1259
+ end
1260
+
1261
+ # @!attribute [rw] configuration
1262
+ # Object Lambda Access Point configuration document.
1263
+ # @return [Types::ObjectLambdaConfiguration]
1264
+ #
1265
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointConfigurationForObjectLambdaResult AWS API Documentation
1266
+ #
1267
+ class GetAccessPointConfigurationForObjectLambdaResult < Struct.new(
1268
+ :configuration)
1269
+ SENSITIVE = []
1270
+ include Aws::Structure
1271
+ end
1272
+
1273
+ # @note When making an API call, you may pass GetAccessPointForObjectLambdaRequest
1274
+ # data as a hash:
1275
+ #
1276
+ # {
1277
+ # account_id: "AccountId", # required
1278
+ # name: "ObjectLambdaAccessPointName", # required
1279
+ # }
1280
+ #
1281
+ # @!attribute [rw] account_id
1282
+ # The account ID for the account that owns the specified Object Lambda
1283
+ # Access Point.
1284
+ # @return [String]
1285
+ #
1286
+ # @!attribute [rw] name
1287
+ # The name of the Object Lambda Access Point.
1288
+ # @return [String]
1289
+ #
1290
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointForObjectLambdaRequest AWS API Documentation
1291
+ #
1292
+ class GetAccessPointForObjectLambdaRequest < Struct.new(
1293
+ :account_id,
1294
+ :name)
1295
+ SENSITIVE = []
1296
+ include Aws::Structure
1297
+ end
1298
+
1299
+ # @!attribute [rw] name
1300
+ # The name of the Object Lambda Access Point.
1301
+ # @return [String]
1302
+ #
1303
+ # @!attribute [rw] public_access_block_configuration
1304
+ # Configuration to block all public access. This setting is turned on
1305
+ # and can not be edited.
1306
+ # @return [Types::PublicAccessBlockConfiguration]
1307
+ #
1308
+ # @!attribute [rw] creation_date
1309
+ # The date and time when the specified Object Lambda Access Point was
1310
+ # created.
1311
+ # @return [Time]
1312
+ #
1313
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointForObjectLambdaResult AWS API Documentation
1314
+ #
1315
+ class GetAccessPointForObjectLambdaResult < Struct.new(
1316
+ :name,
1317
+ :public_access_block_configuration,
1318
+ :creation_date)
1319
+ SENSITIVE = []
1320
+ include Aws::Structure
1321
+ end
1322
+
1323
+ # @note When making an API call, you may pass GetAccessPointPolicyForObjectLambdaRequest
1324
+ # data as a hash:
1325
+ #
1326
+ # {
1327
+ # account_id: "AccountId", # required
1328
+ # name: "ObjectLambdaAccessPointName", # required
1329
+ # }
1330
+ #
1331
+ # @!attribute [rw] account_id
1332
+ # The account ID for the account that owns the specified Object Lambda
1333
+ # Access Point.
1334
+ # @return [String]
1335
+ #
1336
+ # @!attribute [rw] name
1337
+ # The name of the Object Lambda Access Point.
1338
+ # @return [String]
1339
+ #
1340
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyForObjectLambdaRequest AWS API Documentation
1341
+ #
1342
+ class GetAccessPointPolicyForObjectLambdaRequest < Struct.new(
1343
+ :account_id,
1344
+ :name)
1345
+ SENSITIVE = []
1346
+ include Aws::Structure
1347
+ end
1348
+
1349
+ # @!attribute [rw] policy
1350
+ # Object Lambda Access Point resource policy document.
1351
+ # @return [String]
1352
+ #
1353
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyForObjectLambdaResult AWS API Documentation
1354
+ #
1355
+ class GetAccessPointPolicyForObjectLambdaResult < Struct.new(
1356
+ :policy)
1357
+ SENSITIVE = []
1358
+ include Aws::Structure
1359
+ end
1360
+
1090
1361
  # @note When making an API call, you may pass GetAccessPointPolicyRequest
1091
1362
  # data as a hash:
1092
1363
  #
@@ -1137,6 +1408,51 @@ module Aws::S3Control
1137
1408
  include Aws::Structure
1138
1409
  end
1139
1410
 
1411
+ # @note When making an API call, you may pass GetAccessPointPolicyStatusForObjectLambdaRequest
1412
+ # data as a hash:
1413
+ #
1414
+ # {
1415
+ # account_id: "AccountId", # required
1416
+ # name: "ObjectLambdaAccessPointName", # required
1417
+ # }
1418
+ #
1419
+ # @!attribute [rw] account_id
1420
+ # The account ID for the account that owns the specified Object Lambda
1421
+ # Access Point.
1422
+ # @return [String]
1423
+ #
1424
+ # @!attribute [rw] name
1425
+ # The name of the Object Lambda Access Point.
1426
+ # @return [String]
1427
+ #
1428
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatusForObjectLambdaRequest AWS API Documentation
1429
+ #
1430
+ class GetAccessPointPolicyStatusForObjectLambdaRequest < Struct.new(
1431
+ :account_id,
1432
+ :name)
1433
+ SENSITIVE = []
1434
+ include Aws::Structure
1435
+ end
1436
+
1437
+ # @!attribute [rw] policy_status
1438
+ # Indicates whether this access point policy is public. For more
1439
+ # information about how Amazon S3 evaluates policies to determine
1440
+ # whether they are public, see [The Meaning of "Public"][1] in the
1441
+ # *Amazon Simple Storage Service User Guide*.
1442
+ #
1443
+ #
1444
+ #
1445
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html#access-control-block-public-access-policy-status
1446
+ # @return [Types::PolicyStatus]
1447
+ #
1448
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/GetAccessPointPolicyStatusForObjectLambdaResult AWS API Documentation
1449
+ #
1450
+ class GetAccessPointPolicyStatusForObjectLambdaResult < Struct.new(
1451
+ :policy_status)
1452
+ SENSITIVE = []
1453
+ include Aws::Structure
1454
+ end
1455
+
1140
1456
  # @note When making an API call, you may pass GetAccessPointPolicyStatusRequest
1141
1457
  # data as a hash:
1142
1458
  #
@@ -1926,6 +2242,14 @@ module Aws::S3Control
1926
2242
  #
1927
2243
  # @!attribute [rw] object_arn
1928
2244
  # The Amazon Resource Name (ARN) for a manifest object.
2245
+ #
2246
+ # Replacement must be made for object keys containing special
2247
+ # characters (such as carriage returns) when using XML requests. For
2248
+ # more information, see [ XML related object key constraints][1].
2249
+ #
2250
+ #
2251
+ #
2252
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints
1929
2253
  # @return [String]
1930
2254
  #
1931
2255
  # @!attribute [rw] object_version_id
@@ -1980,8 +2304,7 @@ module Aws::S3Control
1980
2304
 
1981
2305
  # The operation that you want this job to perform on every object listed
1982
2306
  # in the manifest. For more information about the available operations,
1983
- # see [Operations][1] in the *Amazon Simple Storage Service Developer
1984
- # Guide*.
2307
+ # see [Operations][1] in the *Amazon Simple Storage Service User Guide*.
1985
2308
  #
1986
2309
  #
1987
2310
  #
@@ -2069,6 +2392,8 @@ module Aws::S3Control
2069
2392
  # },
2070
2393
  # ],
2071
2394
  # },
2395
+ # s3_delete_object_tagging: {
2396
+ # },
2072
2397
  # s3_initiate_restore_object: {
2073
2398
  # expiration_in_days: 1,
2074
2399
  # glacier_job_tier: "BULK", # accepts BULK, STANDARD
@@ -2107,6 +2432,11 @@ module Aws::S3Control
2107
2432
  # object in the manifest.
2108
2433
  # @return [Types::S3SetObjectTaggingOperation]
2109
2434
  #
2435
+ # @!attribute [rw] s3_delete_object_tagging
2436
+ # Directs the specified job to execute a DELETE Object tagging call on
2437
+ # every object in the manifest.
2438
+ # @return [Types::S3DeleteObjectTaggingOperation]
2439
+ #
2110
2440
  # @!attribute [rw] s3_initiate_restore_object
2111
2441
  # Directs the specified job to initiate restore requests for every
2112
2442
  # archived object in the manifest.
@@ -2117,7 +2447,7 @@ module Aws::S3Control
2117
2447
  # operation that an S3 Batch Operations job passes every object to the
2118
2448
  # underlying `PutObjectLegalHold` API. For more information, see
2119
2449
  # [Using S3 Object Lock legal hold with S3 Batch Operations][1] in the
2120
- # *Amazon Simple Storage Service Developer Guide*.
2450
+ # *Amazon Simple Storage Service User Guide*.
2121
2451
  #
2122
2452
  #
2123
2453
  #
@@ -2129,8 +2459,7 @@ module Aws::S3Control
2129
2459
  # action for an S3 Batch Operations job. Batch Operations passes every
2130
2460
  # object to the underlying `PutObjectRetention` API. For more
2131
2461
  # information, see [Using S3 Object Lock retention with S3 Batch
2132
- # Operations][1] in the *Amazon Simple Storage Service Developer
2133
- # Guide*.
2462
+ # Operations][1] in the *Amazon Simple Storage Service User Guide*.
2134
2463
  #
2135
2464
  #
2136
2465
  #
@@ -2144,6 +2473,7 @@ module Aws::S3Control
2144
2473
  :s3_put_object_copy,
2145
2474
  :s3_put_object_acl,
2146
2475
  :s3_put_object_tagging,
2476
+ :s3_delete_object_tagging,
2147
2477
  :s3_initiate_restore_object,
2148
2478
  :s3_put_object_legal_hold,
2149
2479
  :s3_put_object_retention)
@@ -2544,6 +2874,14 @@ module Aws::S3Control
2544
2874
  #
2545
2875
  # @!attribute [rw] prefix
2546
2876
  # Prefix identifying one or more objects to which the rule applies.
2877
+ #
2878
+ # Replacement must be made for object keys containing special
2879
+ # characters (such as carriage returns) when using XML requests. For
2880
+ # more information, see [ XML related object key constraints][1].
2881
+ #
2882
+ #
2883
+ #
2884
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-xml-related-constraints
2547
2885
  # @return [String]
2548
2886
  #
2549
2887
  # @!attribute [rw] tag
@@ -2563,6 +2901,64 @@ module Aws::S3Control
2563
2901
  include Aws::Structure
2564
2902
  end
2565
2903
 
2904
+ # @note When making an API call, you may pass ListAccessPointsForObjectLambdaRequest
2905
+ # data as a hash:
2906
+ #
2907
+ # {
2908
+ # account_id: "AccountId", # required
2909
+ # next_token: "NonEmptyMaxLength1024String",
2910
+ # max_results: 1,
2911
+ # }
2912
+ #
2913
+ # @!attribute [rw] account_id
2914
+ # The account ID for the account that owns the specified Object Lambda
2915
+ # Access Point.
2916
+ # @return [String]
2917
+ #
2918
+ # @!attribute [rw] next_token
2919
+ # If the list has more access points than can be returned in one call
2920
+ # to this API, this field contains a continuation token that you can
2921
+ # provide in subsequent calls to this API to retrieve additional
2922
+ # access points.
2923
+ # @return [String]
2924
+ #
2925
+ # @!attribute [rw] max_results
2926
+ # The maximum number of access points that you want to include in the
2927
+ # list. If there are more than this number of access points, then the
2928
+ # response will include a continuation token in the `NextToken` field
2929
+ # that you can use to retrieve the next page of access points.
2930
+ # @return [Integer]
2931
+ #
2932
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPointsForObjectLambdaRequest AWS API Documentation
2933
+ #
2934
+ class ListAccessPointsForObjectLambdaRequest < Struct.new(
2935
+ :account_id,
2936
+ :next_token,
2937
+ :max_results)
2938
+ SENSITIVE = []
2939
+ include Aws::Structure
2940
+ end
2941
+
2942
+ # @!attribute [rw] object_lambda_access_point_list
2943
+ # Returns list of Object Lambda Access Points.
2944
+ # @return [Array<Types::ObjectLambdaAccessPoint>]
2945
+ #
2946
+ # @!attribute [rw] next_token
2947
+ # If the list has more access points than can be returned in one call
2948
+ # to this API, this field contains a continuation token that you can
2949
+ # provide in subsequent calls to this API to retrieve additional
2950
+ # access points.
2951
+ # @return [String]
2952
+ #
2953
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ListAccessPointsForObjectLambdaResult AWS API Documentation
2954
+ #
2955
+ class ListAccessPointsForObjectLambdaResult < Struct.new(
2956
+ :object_lambda_access_point_list,
2957
+ :next_token)
2958
+ SENSITIVE = []
2959
+ include Aws::Structure
2960
+ end
2961
+
2566
2962
  # @note When making an API call, you may pass ListAccessPointsRequest
2567
2963
  # data as a hash:
2568
2964
  #
@@ -2653,6 +3049,7 @@ module Aws::S3Control
2653
3049
  # }
2654
3050
  #
2655
3051
  # @!attribute [rw] account_id
3052
+ # The AWS account ID associated with the S3 Batch Operations job.
2656
3053
  # @return [String]
2657
3054
  #
2658
3055
  # @!attribute [rw] job_statuses
@@ -2931,10 +3328,142 @@ module Aws::S3Control
2931
3328
  include Aws::Structure
2932
3329
  end
2933
3330
 
3331
+ # An access point with an attached AWS Lambda function used to access
3332
+ # transformed data from an Amazon S3 bucket.
3333
+ #
3334
+ # @!attribute [rw] name
3335
+ # The name of the Object Lambda Access Point.
3336
+ # @return [String]
3337
+ #
3338
+ # @!attribute [rw] object_lambda_access_point_arn
3339
+ # Specifies the ARN for the Object Lambda Access Point.
3340
+ # @return [String]
3341
+ #
3342
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ObjectLambdaAccessPoint AWS API Documentation
3343
+ #
3344
+ class ObjectLambdaAccessPoint < Struct.new(
3345
+ :name,
3346
+ :object_lambda_access_point_arn)
3347
+ SENSITIVE = []
3348
+ include Aws::Structure
3349
+ end
3350
+
3351
+ # A configuration used when creating an Object Lambda Access Point.
3352
+ #
3353
+ # @note When making an API call, you may pass ObjectLambdaConfiguration
3354
+ # data as a hash:
3355
+ #
3356
+ # {
3357
+ # supporting_access_point: "ObjectLambdaSupportingAccessPointArn", # required
3358
+ # cloud_watch_metrics_enabled: false,
3359
+ # allowed_features: ["GetObject-Range"], # accepts GetObject-Range, GetObject-PartNumber
3360
+ # transformation_configurations: [ # required
3361
+ # {
3362
+ # actions: ["GetObject"], # required, accepts GetObject
3363
+ # content_transformation: { # required
3364
+ # aws_lambda: {
3365
+ # function_arn: "FunctionArnString", # required
3366
+ # function_payload: "AwsLambdaTransformationPayload",
3367
+ # },
3368
+ # },
3369
+ # },
3370
+ # ],
3371
+ # }
3372
+ #
3373
+ # @!attribute [rw] supporting_access_point
3374
+ # Standard access point associated with the Object Lambda Access
3375
+ # Point.
3376
+ # @return [String]
3377
+ #
3378
+ # @!attribute [rw] cloud_watch_metrics_enabled
3379
+ # A container for whether the CloudWatch metrics configuration is
3380
+ # enabled.
3381
+ # @return [Boolean]
3382
+ #
3383
+ # @!attribute [rw] allowed_features
3384
+ # A container for allowed features. Valid inputs are `GetObject-Range`
3385
+ # and `GetObject-PartNumber`.
3386
+ # @return [Array<String>]
3387
+ #
3388
+ # @!attribute [rw] transformation_configurations
3389
+ # A container for transformation configurations for an Object Lambda
3390
+ # Access Point.
3391
+ # @return [Array<Types::ObjectLambdaTransformationConfiguration>]
3392
+ #
3393
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ObjectLambdaConfiguration AWS API Documentation
3394
+ #
3395
+ class ObjectLambdaConfiguration < Struct.new(
3396
+ :supporting_access_point,
3397
+ :cloud_watch_metrics_enabled,
3398
+ :allowed_features,
3399
+ :transformation_configurations)
3400
+ SENSITIVE = []
3401
+ include Aws::Structure
3402
+ end
3403
+
3404
+ # A container for AwsLambdaTransformation.
3405
+ #
3406
+ # @note When making an API call, you may pass ObjectLambdaContentTransformation
3407
+ # data as a hash:
3408
+ #
3409
+ # {
3410
+ # aws_lambda: {
3411
+ # function_arn: "FunctionArnString", # required
3412
+ # function_payload: "AwsLambdaTransformationPayload",
3413
+ # },
3414
+ # }
3415
+ #
3416
+ # @!attribute [rw] aws_lambda
3417
+ # A container for an AWS Lambda function.
3418
+ # @return [Types::AwsLambdaTransformation]
3419
+ #
3420
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ObjectLambdaContentTransformation AWS API Documentation
3421
+ #
3422
+ class ObjectLambdaContentTransformation < Struct.new(
3423
+ :aws_lambda)
3424
+ SENSITIVE = []
3425
+ include Aws::Structure
3426
+ end
3427
+
3428
+ # A configuration used when creating an Object Lambda Access Point
3429
+ # transformation.
3430
+ #
3431
+ # @note When making an API call, you may pass ObjectLambdaTransformationConfiguration
3432
+ # data as a hash:
3433
+ #
3434
+ # {
3435
+ # actions: ["GetObject"], # required, accepts GetObject
3436
+ # content_transformation: { # required
3437
+ # aws_lambda: {
3438
+ # function_arn: "FunctionArnString", # required
3439
+ # function_payload: "AwsLambdaTransformationPayload",
3440
+ # },
3441
+ # },
3442
+ # }
3443
+ #
3444
+ # @!attribute [rw] actions
3445
+ # A container for the action of an Object Lambda Access Point
3446
+ # configuration.
3447
+ # @return [Array<String>]
3448
+ #
3449
+ # @!attribute [rw] content_transformation
3450
+ # A container for the content transformation of an Object Lambda
3451
+ # Access Point configuration.
3452
+ # @return [Types::ObjectLambdaContentTransformation]
3453
+ #
3454
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/ObjectLambdaTransformationConfiguration AWS API Documentation
3455
+ #
3456
+ class ObjectLambdaTransformationConfiguration < Struct.new(
3457
+ :actions,
3458
+ :content_transformation)
3459
+ SENSITIVE = []
3460
+ include Aws::Structure
3461
+ end
3462
+
2934
3463
  # Indicates whether this access point policy is public. For more
2935
3464
  # information about how Amazon S3 evaluates policies to determine
2936
3465
  # whether they are public, see [The Meaning of "Public"][1] in the
2937
- # *Amazon Simple Storage Service Developer Guide*.
3466
+ # *Amazon Simple Storage Service User Guide*.
2938
3467
  #
2939
3468
  #
2940
3469
  #
@@ -3097,6 +3626,85 @@ module Aws::S3Control
3097
3626
  include Aws::Structure
3098
3627
  end
3099
3628
 
3629
+ # @note When making an API call, you may pass PutAccessPointConfigurationForObjectLambdaRequest
3630
+ # data as a hash:
3631
+ #
3632
+ # {
3633
+ # account_id: "AccountId", # required
3634
+ # name: "ObjectLambdaAccessPointName", # required
3635
+ # configuration: { # required
3636
+ # supporting_access_point: "ObjectLambdaSupportingAccessPointArn", # required
3637
+ # cloud_watch_metrics_enabled: false,
3638
+ # allowed_features: ["GetObject-Range"], # accepts GetObject-Range, GetObject-PartNumber
3639
+ # transformation_configurations: [ # required
3640
+ # {
3641
+ # actions: ["GetObject"], # required, accepts GetObject
3642
+ # content_transformation: { # required
3643
+ # aws_lambda: {
3644
+ # function_arn: "FunctionArnString", # required
3645
+ # function_payload: "AwsLambdaTransformationPayload",
3646
+ # },
3647
+ # },
3648
+ # },
3649
+ # ],
3650
+ # },
3651
+ # }
3652
+ #
3653
+ # @!attribute [rw] account_id
3654
+ # The account ID for the account that owns the specified Object Lambda
3655
+ # Access Point.
3656
+ # @return [String]
3657
+ #
3658
+ # @!attribute [rw] name
3659
+ # The name of the Object Lambda Access Point.
3660
+ # @return [String]
3661
+ #
3662
+ # @!attribute [rw] configuration
3663
+ # Object Lambda Access Point configuration document.
3664
+ # @return [Types::ObjectLambdaConfiguration]
3665
+ #
3666
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointConfigurationForObjectLambdaRequest AWS API Documentation
3667
+ #
3668
+ class PutAccessPointConfigurationForObjectLambdaRequest < Struct.new(
3669
+ :account_id,
3670
+ :name,
3671
+ :configuration)
3672
+ SENSITIVE = []
3673
+ include Aws::Structure
3674
+ end
3675
+
3676
+ # @note When making an API call, you may pass PutAccessPointPolicyForObjectLambdaRequest
3677
+ # data as a hash:
3678
+ #
3679
+ # {
3680
+ # account_id: "AccountId", # required
3681
+ # name: "ObjectLambdaAccessPointName", # required
3682
+ # policy: "ObjectLambdaPolicy", # required
3683
+ # }
3684
+ #
3685
+ # @!attribute [rw] account_id
3686
+ # The account ID for the account that owns the specified Object Lambda
3687
+ # Access Point.
3688
+ # @return [String]
3689
+ #
3690
+ # @!attribute [rw] name
3691
+ # The name of the Object Lambda Access Point.
3692
+ # @return [String]
3693
+ #
3694
+ # @!attribute [rw] policy
3695
+ # Object Lambda Access Point resource policy document.
3696
+ # @return [String]
3697
+ #
3698
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicyForObjectLambdaRequest AWS API Documentation
3699
+ #
3700
+ class PutAccessPointPolicyForObjectLambdaRequest < Struct.new(
3701
+ :account_id,
3702
+ :name,
3703
+ :policy)
3704
+ SENSITIVE = []
3705
+ include Aws::Structure
3706
+ end
3707
+
3100
3708
  # @note When making an API call, you may pass PutAccessPointPolicyRequest
3101
3709
  # data as a hash:
3102
3710
  #
@@ -3133,11 +3741,11 @@ module Aws::S3Control
3133
3741
  # The policy that you want to apply to the specified access point. For
3134
3742
  # more information about access point policies, see [Managing data
3135
3743
  # access with Amazon S3 Access Points][1] in the *Amazon Simple
3136
- # Storage Service Developer Guide*.
3744
+ # Storage Service User Guide*.
3137
3745
  #
3138
3746
  #
3139
3747
  #
3140
- # [1]: https://docs.aws.amazon.com/AmazonS3/latest/dev/access-points.html
3748
+ # [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-points.html
3141
3749
  # @return [String]
3142
3750
  #
3143
3751
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/PutAccessPointPolicyRequest AWS API Documentation
@@ -3860,6 +4468,16 @@ module Aws::S3Control
3860
4468
  include Aws::Structure
3861
4469
  end
3862
4470
 
4471
+ # Contains no configuration parameters because the DELETE Object tagging
4472
+ # API only accepts the bucket name and key name as parameters, which are
4473
+ # defined in the job's manifest.
4474
+ #
4475
+ # @api private
4476
+ #
4477
+ # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/S3DeleteObjectTaggingOperation AWS API Documentation
4478
+ #
4479
+ class S3DeleteObjectTaggingOperation < Aws::EmptyStructure; end
4480
+
3863
4481
  # @note When making an API call, you may pass S3Grant
3864
4482
  # data as a hash:
3865
4483
  #
@@ -4088,7 +4706,7 @@ module Aws::S3Control
4088
4706
  # and `RetainUntilDate` data types in your operation, you will remove
4089
4707
  # the retention from your objects. For more information, see [Using S3
4090
4708
  # Object Lock retention with S3 Batch Operations][1] in the *Amazon
4091
- # Simple Storage Service Developer Guide*.
4709
+ # Simple Storage Service User Guide*.
4092
4710
  #
4093
4711
  #
4094
4712
  #
@@ -4170,7 +4788,7 @@ module Aws::S3Control
4170
4788
  # that an S3 Batch Operations job passes every object to the underlying
4171
4789
  # `PutObjectLegalHold` API. For more information, see [Using S3 Object
4172
4790
  # Lock legal hold with S3 Batch Operations][1] in the *Amazon Simple
4173
- # Storage Service Developer Guide*.
4791
+ # Storage Service User Guide*.
4174
4792
  #
4175
4793
  #
4176
4794
  #
@@ -4202,7 +4820,7 @@ module Aws::S3Control
4202
4820
  # action for an S3 Batch Operations job. Batch Operations passes every
4203
4821
  # object to the underlying `PutObjectRetention` API. For more
4204
4822
  # information, see [Using S3 Object Lock retention with S3 Batch
4205
- # Operations][1] in the *Amazon Simple Storage Service Developer Guide*.
4823
+ # Operations][1] in the *Amazon Simple Storage Service User Guide*.
4206
4824
  #
4207
4825
  #
4208
4826
  #
@@ -4229,7 +4847,7 @@ module Aws::S3Control
4229
4847
  # Contains the Object Lock retention mode to be applied to all objects
4230
4848
  # in the Batch Operations job. For more information, see [Using S3
4231
4849
  # Object Lock retention with S3 Batch Operations][1] in the *Amazon
4232
- # Simple Storage Service Developer Guide*.
4850
+ # Simple Storage Service User Guide*.
4233
4851
  #
4234
4852
  #
4235
4853
  #
@@ -4531,6 +5149,11 @@ module Aws::S3Control
4531
5149
  # @!attribute [rw] s3_bucket_destination
4532
5150
  # A container for the bucket where the S3 Storage Lens metrics export
4533
5151
  # will be located.
5152
+ #
5153
+ # <note markdown="1"> This bucket must be located in the same Region as the storage lens
5154
+ # configuration.
5155
+ #
5156
+ # </note>
4534
5157
  # @return [Types::S3BucketDestination]
4535
5158
  #
4536
5159
  # @see http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/StorageLensDataExport AWS API Documentation
@@ -4644,7 +5267,7 @@ module Aws::S3Control
4644
5267
  # Specifies when an object transitions to a specified storage class. For
4645
5268
  # more information about Amazon S3 Lifecycle configuration rules, see [
4646
5269
  # Transitioning objects using Amazon S3 Lifecycle][1] in the *Amazon
4647
- # Simple Storage Service Developer Guide*.
5270
+ # Simple Storage Service User Guide*.
4648
5271
  #
4649
5272
  #
4650
5273
  #
@@ -4695,6 +5318,7 @@ module Aws::S3Control
4695
5318
  # }
4696
5319
  #
4697
5320
  # @!attribute [rw] account_id
5321
+ # The AWS account ID associated with the S3 Batch Operations job.
4698
5322
  # @return [String]
4699
5323
  #
4700
5324
  # @!attribute [rw] job_id
@@ -4743,6 +5367,7 @@ module Aws::S3Control
4743
5367
  # }
4744
5368
  #
4745
5369
  # @!attribute [rw] account_id
5370
+ # The AWS account ID associated with the S3 Batch Operations job.
4746
5371
  # @return [String]
4747
5372
  #
4748
5373
  # @!attribute [rw] job_id