aws-sdk-s3control 1.26.0 → 1.31.0

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