@aws-sdk/client-controlcatalog 3.826.0 → 3.830.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.
Files changed (44) hide show
  1. package/README.md +9 -28
  2. package/dist-cjs/ControlCatalog.js +2 -0
  3. package/dist-cjs/commands/ListControlMappingsCommand.js +26 -0
  4. package/dist-cjs/commands/index.js +1 -0
  5. package/dist-cjs/models/models_0.js +15 -1
  6. package/dist-cjs/pagination/ListControlMappingsPaginator.js +7 -0
  7. package/dist-cjs/pagination/index.js +1 -0
  8. package/dist-cjs/protocols/Aws_restJson1.js +45 -2
  9. package/dist-es/ControlCatalog.js +2 -0
  10. package/dist-es/commands/ListControlMappingsCommand.js +22 -0
  11. package/dist-es/commands/index.js +1 -0
  12. package/dist-es/models/models_0.js +14 -0
  13. package/dist-es/pagination/ListControlMappingsPaginator.js +4 -0
  14. package/dist-es/pagination/index.js +1 -0
  15. package/dist-es/protocols/Aws_restJson1.js +42 -1
  16. package/dist-types/ControlCatalog.d.ts +9 -28
  17. package/dist-types/ControlCatalogClient.d.ts +4 -30
  18. package/dist-types/commands/GetControlCommand.d.ts +7 -2
  19. package/dist-types/commands/ListCommonControlsCommand.d.ts +1 -4
  20. package/dist-types/commands/ListControlMappingsCommand.d.ts +111 -0
  21. package/dist-types/commands/ListControlsCommand.d.ts +17 -1
  22. package/dist-types/commands/ListDomainsCommand.d.ts +1 -1
  23. package/dist-types/commands/ListObjectivesCommand.d.ts +1 -3
  24. package/dist-types/commands/index.d.ts +1 -0
  25. package/dist-types/endpoint/EndpointParameters.d.ts +7 -7
  26. package/dist-types/index.d.ts +1 -28
  27. package/dist-types/models/models_0.d.ts +223 -132
  28. package/dist-types/pagination/ListControlMappingsPaginator.d.ts +7 -0
  29. package/dist-types/pagination/index.d.ts +1 -0
  30. package/dist-types/protocols/Aws_restJson1.d.ts +9 -0
  31. package/dist-types/runtimeConfig.browser.d.ts +2 -2
  32. package/dist-types/runtimeConfig.native.d.ts +2 -2
  33. package/dist-types/ts3.4/ControlCatalog.d.ts +18 -0
  34. package/dist-types/ts3.4/ControlCatalogClient.d.ts +6 -0
  35. package/dist-types/ts3.4/commands/ListControlMappingsCommand.d.ts +51 -0
  36. package/dist-types/ts3.4/commands/index.d.ts +1 -0
  37. package/dist-types/ts3.4/endpoint/EndpointParameters.d.ts +7 -7
  38. package/dist-types/ts3.4/models/models_0.d.ts +70 -0
  39. package/dist-types/ts3.4/pagination/ListControlMappingsPaginator.d.ts +11 -0
  40. package/dist-types/ts3.4/pagination/index.d.ts +1 -0
  41. package/dist-types/ts3.4/protocols/Aws_restJson1.d.ts +12 -0
  42. package/dist-types/ts3.4/runtimeConfig.browser.d.ts +4 -2
  43. package/dist-types/ts3.4/runtimeConfig.native.d.ts +4 -2
  44. package/package.json +5 -5
@@ -62,13 +62,22 @@ export interface ObjectiveResourceFilter {
62
62
  */
63
63
  export interface CommonControlFilter {
64
64
  /**
65
- * <p>The objective that's used as filter criteria.</p>
66
- * <p>You can use this parameter to specify one objective ARN at a time. Passing multiple ARNs
67
- * in the <code>CommonControlFilter</code> isn’t currently supported.</p>
65
+ * <p>The objective that's used as filter criteria.</p> <p>You can use this parameter to specify one objective ARN at a time. Passing multiple ARNs in the <code>CommonControlFilter</code> isn’t supported.</p>
68
66
  * @public
69
67
  */
70
68
  Objectives?: ObjectiveResourceFilter[] | undefined;
71
69
  }
70
+ /**
71
+ * <p>A structure that contains details about a common control mapping. In particular, it returns the Amazon Resource Name (ARN) of the common control.</p>
72
+ * @public
73
+ */
74
+ export interface CommonControlMappingDetails {
75
+ /**
76
+ * <p>The Amazon Resource Name (ARN) that identifies the common control in the mapping.</p>
77
+ * @public
78
+ */
79
+ CommonControlArn: string | undefined;
80
+ }
72
81
  /**
73
82
  * <p>An internal service error occurred during the processing of your request. Try again later.</p>
74
83
  * @public
@@ -98,9 +107,7 @@ export interface ListCommonControlsRequest {
98
107
  */
99
108
  NextToken?: string | undefined;
100
109
  /**
101
- * <p>An optional filter that narrows the results to a specific objective.</p>
102
- * <p>This filter allows you to specify one objective ARN at a time. Passing multiple ARNs in
103
- * the <code>CommonControlFilter</code> isn’t currently supported.</p>
110
+ * <p>An optional filter that narrows the results to a specific objective.</p> <p>This filter allows you to specify one objective ARN at a time. Passing multiple ARNs in the <code>CommonControlFilter</code> isn’t supported.</p>
104
111
  * @public
105
112
  */
106
113
  CommonControlFilter?: CommonControlFilter | undefined;
@@ -208,55 +215,13 @@ export type ControlBehavior = (typeof ControlBehavior)[keyof typeof ControlBehav
208
215
  */
209
216
  export interface GetControlRequest {
210
217
  /**
211
- * <p>The Amazon Resource Name (ARN) of the control. It has one of the following formats:</p>
212
- * <p>
213
- * <i>Global format</i>
214
- * </p>
215
- * <p>
216
- * <code>arn:\{PARTITION\}:controlcatalog:::control/\{CONTROL_CATALOG_OPAQUE_ID\}</code>
217
- * </p>
218
- * <p>
219
- * <i>Or Regional format</i>
220
- * </p>
221
- * <p>
222
- * <code>arn:\{PARTITION\}:controltower:\{REGION\}::control/\{CONTROL_TOWER_OPAQUE_ID\}</code>
223
- * </p>
224
- * <p>Here is a more general pattern that covers Amazon Web Services Control Tower and Control Catalog ARNs:</p>
225
- * <p>
226
- * <code>^arn:(aws(?:[-a-z]*)?):(controlcatalog|controltower):[a-zA-Z0-9-]*::control/[0-9a-zA-Z_\\-]+$</code>
227
- * </p>
218
+ * <p>The Amazon Resource Name (ARN) of the control. It has one of the following formats:</p> <p> <i>Global format</i> </p> <p> <code>arn:\{PARTITION\}:controlcatalog:::control/\{CONTROL_CATALOG_OPAQUE_ID\}</code> </p> <p> <i>Or Regional format</i> </p> <p> <code>arn:\{PARTITION\}:controltower:\{REGION\}::control/\{CONTROL_TOWER_OPAQUE_ID\}</code> </p> <p>Here is a more general pattern that covers Amazon Web Services Control Tower and Control Catalog ARNs:</p> <p> <code>^arn:(aws(?:[-a-z]*)?):(controlcatalog|controltower):[a-zA-Z0-9-]*::control/[0-9a-zA-Z_\\-]+$</code> </p>
228
219
  * @public
229
220
  */
230
221
  ControlArn: string | undefined;
231
222
  }
232
223
  /**
233
- * <p>An object that describes the implementation type for a control.</p>
234
- * <p>Our <code>ImplementationDetails</code>
235
- * <code>Type</code> format has three required segments:</p>
236
- * <ul>
237
- * <li>
238
- * <p>
239
- * <code>SERVICE-PROVIDER::SERVICE-NAME::RESOURCE-NAME</code>
240
- * </p>
241
- * </li>
242
- * </ul>
243
- * <p>For example, <code>AWS::Config::ConfigRule</code>
244
- * <b>or</b>
245
- * <code>AWS::SecurityHub::SecurityControl</code> resources have the format with three required segments.</p>
246
- * <p>Our <code>ImplementationDetails</code>
247
- * <code>Type</code> format has an optional fourth segment, which is present for applicable
248
- * implementation types. The format is as follows: </p>
249
- * <ul>
250
- * <li>
251
- * <p>
252
- * <code>SERVICE-PROVIDER::SERVICE-NAME::RESOURCE-NAME::RESOURCE-TYPE-DESCRIPTION</code>
253
- * </p>
254
- * </li>
255
- * </ul>
256
- * <p>For example, <code>AWS::Organizations::Policy::SERVICE_CONTROL_POLICY</code>
257
- * <b>or</b>
258
- * <code>AWS::CloudFormation::Type::HOOK</code> have the format with four segments.</p>
259
- * <p>Although the format is similar, the values for the <code>Type</code> field do not match any Amazon Web Services CloudFormation values.</p>
224
+ * <p>An object that describes the implementation type for a control.</p> <p>Our <code>ImplementationDetails</code> <code>Type</code> format has three required segments:</p> <ul> <li> <p> <code>SERVICE-PROVIDER::SERVICE-NAME::RESOURCE-NAME</code> </p> </li> </ul> <p>For example, <code>AWS::Config::ConfigRule</code> <b>or</b> <code>AWS::SecurityHub::SecurityControl</code> resources have the format with three required segments.</p> <p>Our <code>ImplementationDetails</code> <code>Type</code> format has an optional fourth segment, which is present for applicable implementation types. The format is as follows: </p> <ul> <li> <p> <code>SERVICE-PROVIDER::SERVICE-NAME::RESOURCE-NAME::RESOURCE-TYPE-DESCRIPTION</code> </p> </li> </ul> <p>For example, <code>AWS::Organizations::Policy::SERVICE_CONTROL_POLICY</code> <b>or</b> <code>AWS::CloudFormation::Type::HOOK</code> have the format with four segments.</p> <p>Although the format is similar, the values for the <code>Type</code> field do not match any Amazon Web Services CloudFormation values.</p>
260
225
  * @public
261
226
  */
262
227
  export interface ImplementationDetails {
@@ -272,77 +237,12 @@ export interface ImplementationDetails {
272
237
  Identifier?: string | undefined;
273
238
  }
274
239
  /**
275
- * <p>Five types of control parameters are supported.</p>
276
- * <ul>
277
- * <li>
278
- * <p>
279
- * <b>AllowedRegions</b>: List of Amazon Web Services Regions exempted from the
280
- * control. Each string is expected to be an Amazon Web Services Region code. This parameter is mandatory for the <b>OU Region deny</b> control, <b>CT.MULTISERVICE.PV.1</b>.</p>
281
- * <p>Example: <code>["us-east-1","us-west-2"]</code>
282
- * </p>
283
- * </li>
284
- * <li>
285
- * <p>
286
- * <b>ExemptedActions</b>: List of Amazon Web Services IAM actions exempted
287
- * from the control. Each string is expected to be an IAM action.</p>
288
- * <p>Example:
289
- * <code>["logs:DescribeLogGroups","logs:StartQuery","logs:GetQueryResults"]</code>
290
- * </p>
291
- * </li>
292
- * <li>
293
- * <p>
294
- * <b>ExemptedPrincipalArns</b>: List of Amazon Web Services IAM principal ARNs
295
- * exempted from the control. Each string is expected to be an IAM principal that follows
296
- * the pattern <code>^arn:(aws|aws-us-gov):(iam|sts)::.+:.+$</code>
297
- * </p>
298
- * <p>Example:
299
- * <code>["arn:aws:iam::*:role/ReadOnly","arn:aws:sts::*:assumed-role/ReadOnly/*"]</code>
300
- * </p>
301
- * </li>
302
- * <li>
303
- * <p>
304
- * <b>ExemptedResourceArns</b>: List of resource ARNs exempted
305
- * from the control. Each string is expected to be a resource ARN.</p>
306
- * <p>Example: <code>["arn:aws:s3:::my-bucket-name"]</code>
307
- * </p>
308
- * </li>
309
- * <li>
310
- * <p>
311
- * <b>ExemptAssumeRoot</b>: A parameter that lets you choose
312
- * whether to exempt requests made with <code>AssumeRoot</code> from this control, for this
313
- * OU. For member accounts, the <code>AssumeRoot</code> property is included in requests
314
- * initiated by IAM centralized root access. This parameter applies only to the
315
- * <code>AWS-GR_RESTRICT_ROOT_USER</code> control. If you add the parameter when enabling
316
- * the control, the <code>AssumeRoot</code> exemption is allowed. If you omit the parameter,
317
- * the <code>AssumeRoot</code> exception is not permitted. The parameter does not accept
318
- * <code>False</code> as a value.</p>
319
- * <p>
320
- * <i>Example: Enabling the control and allowing <code>AssumeRoot</code>
321
- * </i>
322
- * </p>
323
- * <p>
324
- * <code>\{
325
- * "controlIdentifier": "arn:aws:controlcatalog:::control/5kvme4m5d2b4d7if2fs5yg2ui",
326
- * "parameters": [
327
- * \{
328
- * "key": "ExemptAssumeRoot",
329
- * "value": true
330
- * \}
331
- * ],
332
- * "targetIdentifier": "arn:aws:organizations::8633900XXXXX:ou/o-6jmn81636m/ou-qsah-jtiihcla"
333
- * \}</code>
334
- * </p>
335
- * </li>
336
- * </ul>
240
+ * <p>Five types of control parameters are supported.</p> <ul> <li> <p> <b>AllowedRegions</b>: List of Amazon Web Services Regions exempted from the control. Each string is expected to be an Amazon Web Services Region code. This parameter is mandatory for the <b>OU Region deny</b> control, <b>CT.MULTISERVICE.PV.1</b>.</p> <p>Example: <code>["us-east-1","us-west-2"]</code> </p> </li> <li> <p> <b>ExemptedActions</b>: List of Amazon Web Services IAM actions exempted from the control. Each string is expected to be an IAM action.</p> <p>Example: <code>["logs:DescribeLogGroups","logs:StartQuery","logs:GetQueryResults"]</code> </p> </li> <li> <p> <b>ExemptedPrincipalArns</b>: List of Amazon Web Services IAM principal ARNs exempted from the control. Each string is expected to be an IAM principal that follows the pattern <code>^arn:(aws|aws-us-gov):(iam|sts)::.+:.+$</code> </p> <p>Example: <code>["arn:aws:iam::*:role/ReadOnly","arn:aws:sts::*:assumed-role/ReadOnly/*"]</code> </p> </li> <li> <p> <b>ExemptedResourceArns</b>: List of resource ARNs exempted from the control. Each string is expected to be a resource ARN.</p> <p>Example: <code>["arn:aws:s3:::my-bucket-name"]</code> </p> </li> <li> <p> <b>ExemptAssumeRoot</b>: A parameter that lets you choose whether to exempt requests made with <code>AssumeRoot</code> from this control, for this OU. For member accounts, the <code>AssumeRoot</code> property is included in requests initiated by IAM centralized root access. This parameter applies only to the <code>AWS-GR_RESTRICT_ROOT_USER</code> control. If you add the parameter when enabling the control, the <code>AssumeRoot</code> exemption is allowed. If you omit the parameter, the <code>AssumeRoot</code> exception is not permitted. The parameter does not accept <code>False</code> as a value.</p> <p> <i>Example: Enabling the control and allowing <code>AssumeRoot</code> </i> </p> <p> <code>\{ "controlIdentifier": "arn:aws:controlcatalog:::control/5kvme4m5d2b4d7if2fs5yg2ui", "parameters": [ \{ "key": "ExemptAssumeRoot", "value": true \} ], "targetIdentifier": "arn:aws:organizations::8633900XXXXX:ou/o-6jmn81636m/ou-qsah-jtiihcla" \}</code> </p> </li> </ul>
337
241
  * @public
338
242
  */
339
243
  export interface ControlParameter {
340
244
  /**
341
- * <p>The parameter name. This name is the parameter <code>key</code> when you call <a href="https://docs.aws.amazon.com/controltower/latest/APIReference/API_EnableControl.html">
342
- * <code>EnableControl</code>
343
- * </a> or <a href="https://docs.aws.amazon.com/controltower/latest/APIReference/API_UpdateEnabledControl.html">
344
- * <code>UpdateEnabledControl</code>
345
- * </a>.</p>
245
+ * <p>The parameter name. This name is the parameter <code>key</code> when you call <a href="https://docs.aws.amazon.com/controltower/latest/APIReference/API_EnableControl.html"> <code>EnableControl</code> </a> or <a href="https://docs.aws.amazon.com/controltower/latest/APIReference/API_UpdateEnabledControl.html"> <code>UpdateEnabledControl</code> </a>.</p>
346
246
  * @public
347
247
  */
348
248
  Name: string | undefined;
@@ -360,13 +260,12 @@ export declare const ControlScope: {
360
260
  */
361
261
  export type ControlScope = (typeof ControlScope)[keyof typeof ControlScope];
362
262
  /**
363
- * <p>Returns information about the control, including the scope of the control, if enabled, and the Regions in which the control currently is available for deployment. For more information about scope, see <a href="https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html">Global services</a>.</p>
364
- * <p>If you are applying controls through an Amazon Web Services Control Tower landing zone environment, remember that the values returned in the <code>RegionConfiguration</code> API operation are not related to the governed Regions in your landing zone. For example, if you are governing Regions <code>A</code>,<code>B</code>,and <code>C</code> while the control is available in Regions <code>A</code>, <code>B</code>, C<code>,</code> and <code>D</code>, you'd see a response with <code>DeployableRegions</code> of <code>A</code>, <code>B</code>, <code>C</code>, and <code>D</code> for a control with <code>REGIONAL</code> scope, even though you may not intend to deploy the control in Region <code>D</code>, because you do not govern it through your landing zone.</p>
263
+ * <p>Returns information about the control, including the scope of the control, if enabled, and the Regions in which the control is available for deployment. For more information about scope, see <a href="https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html">Global services</a>.</p> <p>If you are applying controls through an Amazon Web Services Control Tower landing zone environment, remember that the values returned in the <code>RegionConfiguration</code> API operation are not related to the governed Regions in your landing zone. For example, if you are governing Regions <code>A</code>,<code>B</code>,and <code>C</code> while the control is available in Regions <code>A</code>, <code>B</code>, C<code>,</code> and <code>D</code>, you'd see a response with <code>DeployableRegions</code> of <code>A</code>, <code>B</code>, <code>C</code>, and <code>D</code> for a control with <code>REGIONAL</code> scope, even though you may not intend to deploy the control in Region <code>D</code>, because you do not govern it through your landing zone.</p>
365
264
  * @public
366
265
  */
367
266
  export interface RegionConfiguration {
368
267
  /**
369
- * <p>The coverage of the control, if deployed. Scope is an enumerated type, with value <code>Regional</code>, or <code>Global</code>. A control with Global scope is effective in all Amazon Web Services Regions, regardless of the Region from which it is enabled, or to which it is deployed. A control implemented by an SCP is usually Global in scope. A control with Regional scope has operations that are restricted specifically to the Region from which it is enabled and to which it is deployed. Controls implemented by Config rules and CloudFormation hooks usually are Regional in scope. Security Hub controls usually are Regional in scope.</p>
268
+ * <p>The coverage of the control, if deployed. Scope is an enumerated type, with value <code>Regional</code>, or <code>Global</code>. A control with Global scope is effective in all Amazon Web Services Regions, regardless of the Region from which it is enabled, or to which it is deployed. A control implemented by an SCP is usually Global in scope. A control with Regional scope has operations that are restricted specifically to the Region from which it is enabled and to which it is deployed. Controls implemented by Config rules and CloudFormation hooks usually are Regional in scope. Security Hub controls usually are Regional in scope.</p>
370
269
  * @public
371
270
  */
372
271
  Scope: ControlScope | undefined;
@@ -399,6 +298,11 @@ export interface GetControlResponse {
399
298
  * @public
400
299
  */
401
300
  Arn: string | undefined;
301
+ /**
302
+ * <p>A list of alternative identifiers for the control. These are human-readable designators, such as <code>SH.S3.1</code>. Several aliases can refer to the same control across different Amazon Web Services services or compliance frameworks.</p>
303
+ * @public
304
+ */
305
+ Aliases?: string[] | undefined;
402
306
  /**
403
307
  * <p>The display name of the control.</p>
404
308
  * @public
@@ -410,8 +314,7 @@ export interface GetControlResponse {
410
314
  */
411
315
  Description: string | undefined;
412
316
  /**
413
- * <p>A term that identifies the control's functional behavior. One of <code>Preventive</code>, <code>Detective</code>, <code>Proactive</code>
414
- * </p>
317
+ * <p>A term that identifies the control's functional behavior. One of <code>Preventive</code>, <code>Detective</code>, <code>Proactive</code> </p>
415
318
  * @public
416
319
  */
417
320
  Behavior: ControlBehavior | undefined;
@@ -421,8 +324,7 @@ export interface GetControlResponse {
421
324
  */
422
325
  Severity?: ControlSeverity | undefined;
423
326
  /**
424
- * <p>Returns information about the control, including the scope of the control, if enabled, and the Regions in which the control currently is available for deployment. For more information about scope, see <a href="https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html">Global services</a>.</p>
425
- * <p>If you are applying controls through an Amazon Web Services Control Tower landing zone environment, remember that the values returned in the <code>RegionConfiguration</code> API operation are not related to the governed Regions in your landing zone. For example, if you are governing Regions <code>A</code>,<code>B</code>,and <code>C</code> while the control is available in Regions <code>A</code>, <code>B</code>, C<code>,</code> and <code>D</code>, you'd see a response with <code>DeployableRegions</code> of <code>A</code>, <code>B</code>, <code>C</code>, and <code>D</code> for a control with <code>REGIONAL</code> scope, even though you may not intend to deploy the control in Region <code>D</code>, because you do not govern it through your landing zone.</p>
327
+ * <p>Returns information about the control, including the scope of the control, if enabled, and the Regions in which the control is available for deployment. For more information about scope, see <a href="https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/global-services.html">Global services</a>.</p> <p>If you are applying controls through an Amazon Web Services Control Tower landing zone environment, remember that the values returned in the <code>RegionConfiguration</code> API operation are not related to the governed Regions in your landing zone. For example, if you are governing Regions <code>A</code>,<code>B</code>,and <code>C</code> while the control is available in Regions <code>A</code>, <code>B</code>, C<code>,</code> and <code>D</code>, you'd see a response with <code>DeployableRegions</code> of <code>A</code>, <code>B</code>, <code>C</code>, and <code>D</code> for a control with <code>REGIONAL</code> scope, even though you may not intend to deploy the control in Region <code>D</code>, because you do not govern it through your landing zone.</p>
426
328
  * @public
427
329
  */
428
330
  RegionConfiguration: RegionConfiguration | undefined;
@@ -432,8 +334,7 @@ export interface GetControlResponse {
432
334
  */
433
335
  Implementation?: ImplementationDetails | undefined;
434
336
  /**
435
- * <p>Returns an array of <code>ControlParameter</code> objects that specify the parameters a control supports. An empty list is returned for controls that don’t support parameters.
436
- * </p>
337
+ * <p>Returns an array of <code>ControlParameter</code> objects that specify the parameters a control supports. An empty list is returned for controls that don’t support parameters. </p>
437
338
  * @public
438
339
  */
439
340
  Parameters?: ControlParameter[] | undefined;
@@ -442,6 +343,11 @@ export interface GetControlResponse {
442
343
  * @public
443
344
  */
444
345
  CreateTime?: Date | undefined;
346
+ /**
347
+ * <p>A list of Amazon Web Services resource types that are governed by this control. This information helps you understand which controls can govern certain types of resources, and conversely, which resources are affected when the control is implemented. The resources are represented as Amazon Web Services CloudFormation resource types. If <code>GovernedResources</code> cannot be represented by available CloudFormation resource types, it’s returned as an empty list.</p>
348
+ * @public
349
+ */
350
+ GovernedResources?: string[] | undefined;
445
351
  }
446
352
  /**
447
353
  * <p>The requested resource does not exist.</p>
@@ -456,6 +362,33 @@ export declare class ResourceNotFoundException extends __BaseException {
456
362
  */
457
363
  constructor(opts: __ExceptionOptionType<ResourceNotFoundException, __BaseException>);
458
364
  }
365
+ /**
366
+ * <p>A structure that defines filtering criteria for control implementations. You can use this filter to find controls that are implemented by specific Amazon Web Services services or with specific service identifiers.</p>
367
+ * @public
368
+ */
369
+ export interface ImplementationFilter {
370
+ /**
371
+ * <p>A list of implementation types that can serve as filters. For example, you can filter for controls implemented as Amazon Web Services Config Rules by specifying AWS::Config::ConfigRule as a type.</p>
372
+ * @public
373
+ */
374
+ Types?: string[] | undefined;
375
+ /**
376
+ * <p>A list of service-specific identifiers that can serve as filters. For example, you can filter for controls with specific Amazon Web Services Config Rule IDs or Security Hub Control IDs.</p>
377
+ * @public
378
+ */
379
+ Identifiers?: string[] | undefined;
380
+ }
381
+ /**
382
+ * <p>A structure that defines filtering criteria for the ListControls operation. You can use this filter to narrow down the list of controls based on their implementation details.</p>
383
+ * @public
384
+ */
385
+ export interface ControlFilter {
386
+ /**
387
+ * <p>A filter that narrows the results to controls with specific implementation types or identifiers. This field allows you to find controls that are implemented by specific Amazon Web Services services or with specific service identifiers.</p>
388
+ * @public
389
+ */
390
+ Implementations?: ImplementationFilter | undefined;
391
+ }
459
392
  /**
460
393
  * @public
461
394
  */
@@ -470,6 +403,11 @@ export interface ListControlsRequest {
470
403
  * @public
471
404
  */
472
405
  MaxResults?: number | undefined;
406
+ /**
407
+ * <p>An optional filter that narrows the results to controls with specific implementation types or identifiers. If you don't provide a filter, the operation returns all available controls.</p>
408
+ * @public
409
+ */
410
+ Filter?: ControlFilter | undefined;
473
411
  }
474
412
  /**
475
413
  * <p>A summary of how the control is implemented, including the Amazon Web Services service that enforces the control and its service-specific identifier. For example, the value of this field could indicate that the control is implemented as an Amazon Web Services Config Rule or an Amazon Web Services Security Hub control.</p>
@@ -497,6 +435,11 @@ export interface ControlSummary {
497
435
  * @public
498
436
  */
499
437
  Arn: string | undefined;
438
+ /**
439
+ * <p>A list of alternative identifiers for the control. These are human-readable designators, such as <code>SH.S3.1</code>. Several aliases can refer to the same control across different Amazon Web Services services or compliance frameworks.</p>
440
+ * @public
441
+ */
442
+ Aliases?: string[] | undefined;
500
443
  /**
501
444
  * <p>The display name of the control.</p>
502
445
  * @public
@@ -527,6 +470,11 @@ export interface ControlSummary {
527
470
  * @public
528
471
  */
529
472
  CreateTime?: Date | undefined;
473
+ /**
474
+ * <p>A list of Amazon Web Services resource types that are governed by this control. This information helps you understand which controls can govern certain types of resources, and conversely, which resources are affected when the control is implemented. The resources are represented as Amazon Web Services CloudFormation resource types. If <code>GovernedResources</code> cannot be represented by available CloudFormation resource types, it’s returned as an empty list.</p>
475
+ * @public
476
+ */
477
+ GovernedResources?: string[] | undefined;
530
478
  }
531
479
  /**
532
480
  * @public
@@ -604,6 +552,153 @@ export interface ListDomainsResponse {
604
552
  */
605
553
  NextToken?: string | undefined;
606
554
  }
555
+ /**
556
+ * @public
557
+ * @enum
558
+ */
559
+ export declare const MappingType: {
560
+ readonly COMMON_CONTROL: "COMMON_CONTROL";
561
+ readonly FRAMEWORK: "FRAMEWORK";
562
+ };
563
+ /**
564
+ * @public
565
+ */
566
+ export type MappingType = (typeof MappingType)[keyof typeof MappingType];
567
+ /**
568
+ * <p>A structure that defines filtering criteria for the ListControlMappings operation. You can use this filter to narrow down the list of control mappings based on control ARNs, common control ARNs, or mapping types.</p>
569
+ * @public
570
+ */
571
+ export interface ControlMappingFilter {
572
+ /**
573
+ * <p>A list of control ARNs to filter the mappings. When specified, only mappings associated with these controls are returned.</p>
574
+ * @public
575
+ */
576
+ ControlArns?: string[] | undefined;
577
+ /**
578
+ * <p>A list of common control ARNs to filter the mappings. When specified, only mappings associated with these common controls are returned.</p>
579
+ * @public
580
+ */
581
+ CommonControlArns?: string[] | undefined;
582
+ /**
583
+ * <p>A list of mapping types to filter the mappings. When specified, only mappings of these types are returned.</p>
584
+ * @public
585
+ */
586
+ MappingTypes?: MappingType[] | undefined;
587
+ }
588
+ /**
589
+ * @public
590
+ */
591
+ export interface ListControlMappingsRequest {
592
+ /**
593
+ * <p>The pagination token that's used to fetch the next set of results.</p>
594
+ * @public
595
+ */
596
+ NextToken?: string | undefined;
597
+ /**
598
+ * <p>The maximum number of results on a page or for an API request call.</p>
599
+ * @public
600
+ */
601
+ MaxResults?: number | undefined;
602
+ /**
603
+ * <p>An optional filter that narrows the results to specific control mappings based on control ARNs, common control ARNs, or mapping types.</p>
604
+ * @public
605
+ */
606
+ Filter?: ControlMappingFilter | undefined;
607
+ }
608
+ /**
609
+ * <p>A structure that contains details about a framework mapping, including the framework name and specific item within the framework that the control maps to.</p>
610
+ * @public
611
+ */
612
+ export interface FrameworkMappingDetails {
613
+ /**
614
+ * <p>The name of the compliance framework that the control maps to.</p>
615
+ * @public
616
+ */
617
+ Name: string | undefined;
618
+ /**
619
+ * <p>The specific item or requirement within the framework that the control maps to.</p>
620
+ * @public
621
+ */
622
+ Item: string | undefined;
623
+ }
624
+ /**
625
+ * <p>A structure that contains the details of a mapping relationship, which can be either to a framework or to a common control.</p>
626
+ * @public
627
+ */
628
+ export type Mapping = Mapping.CommonControlMember | Mapping.FrameworkMember | Mapping.$UnknownMember;
629
+ /**
630
+ * @public
631
+ */
632
+ export declare namespace Mapping {
633
+ /**
634
+ * <p>The framework mapping details when the mapping type relates to a compliance framework.</p>
635
+ * @public
636
+ */
637
+ interface FrameworkMember {
638
+ Framework: FrameworkMappingDetails;
639
+ CommonControl?: never;
640
+ $unknown?: never;
641
+ }
642
+ /**
643
+ * <p>The common control mapping details when the mapping type relates to a common control.</p>
644
+ * @public
645
+ */
646
+ interface CommonControlMember {
647
+ Framework?: never;
648
+ CommonControl: CommonControlMappingDetails;
649
+ $unknown?: never;
650
+ }
651
+ /**
652
+ * @public
653
+ */
654
+ interface $UnknownMember {
655
+ Framework?: never;
656
+ CommonControl?: never;
657
+ $unknown: [string, any];
658
+ }
659
+ interface Visitor<T> {
660
+ Framework: (value: FrameworkMappingDetails) => T;
661
+ CommonControl: (value: CommonControlMappingDetails) => T;
662
+ _: (name: string, value: any) => T;
663
+ }
664
+ const visit: <T>(value: Mapping, visitor: Visitor<T>) => T;
665
+ }
666
+ /**
667
+ * <p>A structure that contains information about a control mapping, including the control ARN, mapping type, and mapping details.</p>
668
+ * @public
669
+ */
670
+ export interface ControlMapping {
671
+ /**
672
+ * <p>The Amazon Resource Name (ARN) that identifies the control in the mapping.</p>
673
+ * @public
674
+ */
675
+ ControlArn: string | undefined;
676
+ /**
677
+ * <p>The type of mapping relationship between the control and other entities. Indicates whether the mapping is to a framework or common control.</p>
678
+ * @public
679
+ */
680
+ MappingType: MappingType | undefined;
681
+ /**
682
+ * <p>The details of the mapping relationship, containing either framework or common control information.</p>
683
+ * @public
684
+ */
685
+ Mapping: Mapping | undefined;
686
+ }
687
+ /**
688
+ * @public
689
+ */
690
+ export interface ListControlMappingsResponse {
691
+ /**
692
+ * <p>The list of control mappings that the ListControlMappings API returns.</p>
693
+ * @public
694
+ */
695
+ ControlMappings: ControlMapping[] | undefined;
696
+ /**
697
+ * <p>The pagination token that's used to fetch the next set of results.</p>
698
+ * @public
699
+ */
700
+ NextToken?: string | undefined;
701
+ }
607
702
  /**
608
703
  * <p>The domain resource that's being used as a filter.</p>
609
704
  * @public
@@ -621,9 +716,7 @@ export interface DomainResourceFilter {
621
716
  */
622
717
  export interface ObjectiveFilter {
623
718
  /**
624
- * <p>The domain that's used as filter criteria.</p>
625
- * <p>You can use this parameter to specify one domain ARN at a time. Passing multiple ARNs in
626
- * the <code>ObjectiveFilter</code> isn’t currently supported.</p>
719
+ * <p>The domain that's used as filter criteria.</p> <p>You can use this parameter to specify one domain ARN at a time. Passing multiple ARNs in the <code>ObjectiveFilter</code> isn’t supported.</p>
627
720
  * @public
628
721
  */
629
722
  Domains?: DomainResourceFilter[] | undefined;
@@ -643,9 +736,7 @@ export interface ListObjectivesRequest {
643
736
  */
644
737
  NextToken?: string | undefined;
645
738
  /**
646
- * <p>An optional filter that narrows the results to a specific domain.</p>
647
- * <p>This filter allows you to specify one domain ARN at a time.
648
- * Passing multiple ARNs in the <code>ObjectiveFilter</code> isn’t currently supported.</p>
739
+ * <p>An optional filter that narrows the results to a specific domain.</p> <p>This filter allows you to specify one domain ARN at a time. Passing multiple ARNs in the <code>ObjectiveFilter</code> isn’t supported.</p>
649
740
  * @public
650
741
  */
651
742
  ObjectiveFilter?: ObjectiveFilter | undefined;
@@ -0,0 +1,7 @@
1
+ import { Paginator } from "@smithy/types";
2
+ import { ListControlMappingsCommandInput, ListControlMappingsCommandOutput } from "../commands/ListControlMappingsCommand";
3
+ import { ControlCatalogPaginationConfiguration } from "./Interfaces";
4
+ /**
5
+ * @public
6
+ */
7
+ export declare const paginateListControlMappings: (config: ControlCatalogPaginationConfiguration, input: ListControlMappingsCommandInput, ...rest: any[]) => Paginator<ListControlMappingsCommandOutput>;
@@ -1,5 +1,6 @@
1
1
  export * from "./Interfaces";
2
2
  export * from "./ListCommonControlsPaginator";
3
+ export * from "./ListControlMappingsPaginator";
3
4
  export * from "./ListControlsPaginator";
4
5
  export * from "./ListDomainsPaginator";
5
6
  export * from "./ListObjectivesPaginator";
@@ -2,6 +2,7 @@ import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@s
2
2
  import { SerdeContext as __SerdeContext } from "@smithy/types";
3
3
  import { GetControlCommandInput, GetControlCommandOutput } from "../commands/GetControlCommand";
4
4
  import { ListCommonControlsCommandInput, ListCommonControlsCommandOutput } from "../commands/ListCommonControlsCommand";
5
+ import { ListControlMappingsCommandInput, ListControlMappingsCommandOutput } from "../commands/ListControlMappingsCommand";
5
6
  import { ListControlsCommandInput, ListControlsCommandOutput } from "../commands/ListControlsCommand";
6
7
  import { ListDomainsCommandInput, ListDomainsCommandOutput } from "../commands/ListDomainsCommand";
7
8
  import { ListObjectivesCommandInput, ListObjectivesCommandOutput } from "../commands/ListObjectivesCommand";
@@ -13,6 +14,10 @@ export declare const se_GetControlCommand: (input: GetControlCommandInput, conte
13
14
  * serializeAws_restJson1ListCommonControlsCommand
14
15
  */
15
16
  export declare const se_ListCommonControlsCommand: (input: ListCommonControlsCommandInput, context: __SerdeContext) => Promise<__HttpRequest>;
17
+ /**
18
+ * serializeAws_restJson1ListControlMappingsCommand
19
+ */
20
+ export declare const se_ListControlMappingsCommand: (input: ListControlMappingsCommandInput, context: __SerdeContext) => Promise<__HttpRequest>;
16
21
  /**
17
22
  * serializeAws_restJson1ListControlsCommand
18
23
  */
@@ -33,6 +38,10 @@ export declare const de_GetControlCommand: (output: __HttpResponse, context: __S
33
38
  * deserializeAws_restJson1ListCommonControlsCommand
34
39
  */
35
40
  export declare const de_ListCommonControlsCommand: (output: __HttpResponse, context: __SerdeContext) => Promise<ListCommonControlsCommandOutput>;
41
+ /**
42
+ * deserializeAws_restJson1ListControlMappingsCommand
43
+ */
44
+ export declare const de_ListControlMappingsCommand: (output: __HttpResponse, context: __SerdeContext) => Promise<ListControlMappingsCommandOutput>;
36
45
  /**
37
46
  * deserializeAws_restJson1ListControlsCommand
38
47
  */
@@ -15,8 +15,8 @@ export declare const getRuntimeConfig: (config: ControlCatalogClientConfig) => {
15
15
  retryMode: string | import("@smithy/types").Provider<string>;
16
16
  sha256: import("@smithy/types").HashConstructor;
17
17
  streamCollector: import("@smithy/types").StreamCollector;
18
- useDualstackEndpoint: boolean | import("@smithy/types").Provider<boolean>;
19
- useFipsEndpoint: boolean | import("@smithy/types").Provider<boolean>;
18
+ useDualstackEndpoint: (boolean | import("@smithy/types").Provider<boolean>) & (boolean | import("@smithy/types").Provider<boolean | undefined>);
19
+ useFipsEndpoint: (boolean | import("@smithy/types").Provider<boolean>) & (boolean | import("@smithy/types").Provider<boolean | undefined>);
20
20
  apiVersion: string;
21
21
  cacheMiddleware?: boolean | undefined;
22
22
  urlParser: import("@smithy/types").UrlParser;
@@ -17,8 +17,8 @@ export declare const getRuntimeConfig: (config: ControlCatalogClientConfig) => {
17
17
  utf8Encoder: (input: Uint8Array | string) => string;
18
18
  disableHostPrefix: boolean;
19
19
  serviceId: string;
20
- useDualstackEndpoint: boolean | import("@smithy/types").Provider<boolean>;
21
- useFipsEndpoint: boolean | import("@smithy/types").Provider<boolean>;
20
+ useDualstackEndpoint: (boolean | import("@smithy/types").Provider<boolean>) & (boolean | import("@smithy/types").Provider<boolean | undefined>);
21
+ useFipsEndpoint: (boolean | import("@smithy/types").Provider<boolean>) & (boolean | import("@smithy/types").Provider<boolean | undefined>);
22
22
  region: string | import("@smithy/types").Provider<any>;
23
23
  profile?: string;
24
24
  defaultUserAgentProvider: (config?: import("@aws-sdk/util-user-agent-browser").PreviouslyResolved) => Promise<import("@smithy/types").UserAgent>;
@@ -7,6 +7,10 @@ import {
7
7
  ListCommonControlsCommandInput,
8
8
  ListCommonControlsCommandOutput,
9
9
  } from "./commands/ListCommonControlsCommand";
10
+ import {
11
+ ListControlMappingsCommandInput,
12
+ ListControlMappingsCommandOutput,
13
+ } from "./commands/ListControlMappingsCommand";
10
14
  import {
11
15
  ListControlsCommandInput,
12
16
  ListControlsCommandOutput,
@@ -48,6 +52,20 @@ export interface ControlCatalog {
48
52
  options: __HttpHandlerOptions,
49
53
  cb: (err: any, data?: ListCommonControlsCommandOutput) => void
50
54
  ): void;
55
+ listControlMappings(): Promise<ListControlMappingsCommandOutput>;
56
+ listControlMappings(
57
+ args: ListControlMappingsCommandInput,
58
+ options?: __HttpHandlerOptions
59
+ ): Promise<ListControlMappingsCommandOutput>;
60
+ listControlMappings(
61
+ args: ListControlMappingsCommandInput,
62
+ cb: (err: any, data?: ListControlMappingsCommandOutput) => void
63
+ ): void;
64
+ listControlMappings(
65
+ args: ListControlMappingsCommandInput,
66
+ options: __HttpHandlerOptions,
67
+ cb: (err: any, data?: ListControlMappingsCommandOutput) => void
68
+ ): void;
51
69
  listControls(): Promise<ListControlsCommandOutput>;
52
70
  listControls(
53
71
  args: ListControlsCommandInput,
@@ -53,6 +53,10 @@ import {
53
53
  ListCommonControlsCommandInput,
54
54
  ListCommonControlsCommandOutput,
55
55
  } from "./commands/ListCommonControlsCommand";
56
+ import {
57
+ ListControlMappingsCommandInput,
58
+ ListControlMappingsCommandOutput,
59
+ } from "./commands/ListControlMappingsCommand";
56
60
  import {
57
61
  ListControlsCommandInput,
58
62
  ListControlsCommandOutput,
@@ -75,12 +79,14 @@ export { __Client };
75
79
  export type ServiceInputTypes =
76
80
  | GetControlCommandInput
77
81
  | ListCommonControlsCommandInput
82
+ | ListControlMappingsCommandInput
78
83
  | ListControlsCommandInput
79
84
  | ListDomainsCommandInput
80
85
  | ListObjectivesCommandInput;
81
86
  export type ServiceOutputTypes =
82
87
  | GetControlCommandOutput
83
88
  | ListCommonControlsCommandOutput
89
+ | ListControlMappingsCommandOutput
84
90
  | ListControlsCommandOutput
85
91
  | ListDomainsCommandOutput
86
92
  | ListObjectivesCommandOutput;