Skip to content

Commit 04288c5

Browse files
author
awstools
committed
feat(client-controltower): Added ListControlOperations API and filtering support for ListEnabledControls API. Updates also includes added metadata for enabled controls and control operations.
1 parent b63da55 commit 04288c5

22 files changed

+1479
-318
lines changed

clients/client-controltower/README.md

+66-2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,36 @@
66

77
AWS SDK for JavaScript ControlTower Client for Node.js, Browser and React Native.
88

9+
<p>Amazon Web Services Control Tower offers application programming interface (API) operations that support programmatic interaction with these types of resources:</p>
10+
<ul>
11+
<li>
12+
<p>
13+
<a href="https://docs.aws.amazon.com/controltower/latest/userguide/controls.html">
14+
<i>controls</i>
15+
</a>
16+
</p>
17+
</li>
18+
<li>
19+
<p>
20+
<a href="https://docs.aws.amazon.com/controltower/latest/userguide/lz-api-launch.html">
21+
<i>landing zones</i>
22+
</a>
23+
</p>
24+
</li>
25+
<li>
26+
<p>
27+
<a href="https://docs.aws.amazon.com/controltower/latest/userguide/types-of-baselines.html">
28+
<i>baselines</i>
29+
</a>
30+
</p>
31+
</li>
32+
</ul>
33+
<p>For more information about these types of resources, see the <a href="https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html">
34+
<i>Amazon Web Services Control Tower User Guide</i>
35+
</a>.</p>
36+
<p>
37+
<b>About control APIs</b>
38+
</p>
939
<p>These interfaces allow you to apply the Amazon Web Services library of pre-defined
1040
<i>controls</i> to your organizational units, programmatically. In Amazon Web Services Control Tower, the terms "control" and "guardrail" are synonyms.</p>
1141
<p>To call these APIs, you'll need to know:</p>
@@ -27,7 +57,7 @@ control:</b>
2757
<p>The <code>controlIdentifier</code> is an ARN that is specified for each
2858
control. You can view the <code>controlIdentifier</code> in the console on the <b>Control details</b> page, as well as in the documentation.</p>
2959
<p>The <code>controlIdentifier</code> is unique in each Amazon Web Services Region for each control. You can
30-
find the <code>controlIdentifier</code> for each Region and control in the <a href="https://docs.aws.amazon.com/controltower/latest/userguide/control-metadata-tables.html">Tables of control metadata</a> in the <i>Amazon Web Services Control Tower User Guide.</i>
60+
find the <code>controlIdentifier</code> for each Region and control in the <a href="https://docs.aws.amazon.com/controltower/latest/userguide/control-metadata-tables.html">Tables of control metadata</a> or the <a href="https://docs.aws.amazon.com/controltower/latest/userguide/control-region-tables.html">Control availability by Region tables</a> in the <i>Amazon Web Services Control Tower User Guide.</i>
3161
</p>
3262
<p>A quick-reference list of control identifers for the Amazon Web Services Control Tower legacy <i>Strongly recommended</i> and
3363
<i>Elective</i> controls is given in <a href="https://docs.aws.amazon.com/controltower/latest/userguide/control-identifiers.html.html">Resource identifiers for
@@ -59,6 +89,17 @@ cannot be added or removed.</p>
5989
<code>arn:${Partition}:organizations::${MasterAccountId}:ou/o-${OrganizationId}/ou-${OrganizationalUnitId}</code>
6090
</p>
6191
</note>
92+
<p>
93+
<b> About landing zone APIs</b>
94+
</p>
95+
<p>You can configure and launch an Amazon Web Services Control Tower landing zone with APIs. For an introduction and steps, see <a href="https://docs.aws.amazon.com/controltower/latest/userguide/getting-started-apis.html">Getting started with Amazon Web Services Control Tower using APIs</a>.</p>
96+
<p>For an overview of landing zone API operations, see <a href="https://docs.aws.amazon.com/controltower/latest/userguide/2023-all.html#landing-zone-apis"> Amazon Web Services Control Tower supports landing zone APIs</a>. The individual API operations for landing zones are detailed in this document, the <a href="https://docs.aws.amazon.com/controltower/latest/APIReference/API_Operations.html">API reference manual</a>, in the "Actions" section.</p>
97+
<p>
98+
<b>About baseline APIs</b>
99+
</p>
100+
<p>You can apply the <code>AWSControlTowerBaseline</code> baseline to an organizational unit (OU) as a way to register the OU with Amazon Web Services Control Tower, programmatically. For a general overview of this capability, see <a href="https://docs.aws.amazon.com/controltower/latest/userguide/2024-all.html#baseline-apis">Amazon Web Services Control Tower supports APIs for OU registration and configuration with baselines</a>.</p>
101+
<p>You can call the baseline API operations to view the baselines that Amazon Web Services Control Tower enables for your landing zone, on your behalf, when setting up the landing zone. These baselines are read-only baselines.</p>
102+
<p>The individual API operations for baselines are detailed in this document, the <a href="https://docs.aws.amazon.com/controltower/latest/APIReference/API_Operations.html">API reference manual</a>, in the "Actions" section. For usage examples, see <a href="https://docs.aws.amazon.com/controltower/latest/userguide/baseline-api-examples.html">Baseline API input and output examples with CLI</a>.</p>
62103
<p class="title">
63104
<b>Details and examples</b>
64105
</p>
@@ -70,12 +111,27 @@ cannot be added or removed.</p>
70111
</li>
71112
<li>
72113
<p>
114+
<a href="https://docs.aws.amazon.com/controltower/latest/userguide/baseline-api-examples.html">Baseline API input and output examples with CLI</a>
115+
</p>
116+
</li>
117+
<li>
118+
<p>
73119
<a href="https://docs.aws.amazon.com/controltower/latest/userguide/enable-controls.html">Enable controls with CloudFormation</a>
74120
</p>
75121
</li>
76122
<li>
77123
<p>
78-
<a href="https://docs.aws.amazon.com/controltower/latest/userguide/control-metadata-tables.html">Control metadata tables</a>
124+
<a href="https://docs.aws.amazon.com/controltower/latest/userguide/lz-apis-cfn-setup.html">Launch a landing zone with CloudFormation</a>
125+
</p>
126+
</li>
127+
<li>
128+
<p>
129+
<a href="https://docs.aws.amazon.com/controltower/latest/userguide/control-metadata-tables.html">Control metadata tables (large page)</a>
130+
</p>
131+
</li>
132+
<li>
133+
<p>
134+
<a href="https://docs.aws.amazon.com/controltower/latest/userguide/control-region-tables.html">Control availability by Region tables (large page)</a>
79135
</p>
80136
</li>
81137
<li>
@@ -419,6 +475,14 @@ ListBaselines
419475

420476
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/controltower/command/ListBaselinesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-controltower/Interface/ListBaselinesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-controltower/Interface/ListBaselinesCommandOutput/)
421477

478+
</details>
479+
<details>
480+
<summary>
481+
ListControlOperations
482+
</summary>
483+
484+
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/controltower/command/ListControlOperationsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-controltower/Interface/ListControlOperationsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-controltower/Interface/ListControlOperationsCommandOutput/)
485+
422486
</details>
423487
<details>
424488
<summary>

clients/client-controltower/src/ControlTower.ts

+84-3
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,11 @@ import {
6868
ListBaselinesCommandInput,
6969
ListBaselinesCommandOutput,
7070
} from "./commands/ListBaselinesCommand";
71+
import {
72+
ListControlOperationsCommand,
73+
ListControlOperationsCommandInput,
74+
ListControlOperationsCommandOutput,
75+
} from "./commands/ListControlOperationsCommand";
7176
import {
7277
ListEnabledBaselinesCommand,
7378
ListEnabledBaselinesCommandInput,
@@ -136,6 +141,7 @@ const commands = {
136141
GetLandingZoneCommand,
137142
GetLandingZoneOperationCommand,
138143
ListBaselinesCommand,
144+
ListControlOperationsCommand,
139145
ListEnabledBaselinesCommand,
140146
ListEnabledControlsCommand,
141147
ListLandingZonesCommand,
@@ -359,6 +365,24 @@ export interface ControlTower {
359365
cb: (err: any, data?: ListBaselinesCommandOutput) => void
360366
): void;
361367

368+
/**
369+
* @see {@link ListControlOperationsCommand}
370+
*/
371+
listControlOperations(): Promise<ListControlOperationsCommandOutput>;
372+
listControlOperations(
373+
args: ListControlOperationsCommandInput,
374+
options?: __HttpHandlerOptions
375+
): Promise<ListControlOperationsCommandOutput>;
376+
listControlOperations(
377+
args: ListControlOperationsCommandInput,
378+
cb: (err: any, data?: ListControlOperationsCommandOutput) => void
379+
): void;
380+
listControlOperations(
381+
args: ListControlOperationsCommandInput,
382+
options: __HttpHandlerOptions,
383+
cb: (err: any, data?: ListControlOperationsCommandOutput) => void
384+
): void;
385+
362386
/**
363387
* @see {@link ListEnabledBaselinesCommand}
364388
*/
@@ -380,6 +404,7 @@ export interface ControlTower {
380404
/**
381405
* @see {@link ListEnabledControlsCommand}
382406
*/
407+
listEnabledControls(): Promise<ListEnabledControlsCommandOutput>;
383408
listEnabledControls(
384409
args: ListEnabledControlsCommandInput,
385410
options?: __HttpHandlerOptions
@@ -538,7 +563,37 @@ export interface ControlTower {
538563
}
539564

540565
/**
541-
* <p>These interfaces allow you to apply the Amazon Web Services library of pre-defined
566+
* <p>Amazon Web Services Control Tower offers application programming interface (API) operations that support programmatic interaction with these types of resources:</p>
567+
* <ul>
568+
* <li>
569+
* <p>
570+
* <a href="https://docs.aws.amazon.com/controltower/latest/userguide/controls.html">
571+
* <i>controls</i>
572+
* </a>
573+
* </p>
574+
* </li>
575+
* <li>
576+
* <p>
577+
* <a href="https://docs.aws.amazon.com/controltower/latest/userguide/lz-api-launch.html">
578+
* <i>landing zones</i>
579+
* </a>
580+
* </p>
581+
* </li>
582+
* <li>
583+
* <p>
584+
* <a href="https://docs.aws.amazon.com/controltower/latest/userguide/types-of-baselines.html">
585+
* <i>baselines</i>
586+
* </a>
587+
* </p>
588+
* </li>
589+
* </ul>
590+
* <p>For more information about these types of resources, see the <a href="https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html">
591+
* <i>Amazon Web Services Control Tower User Guide</i>
592+
* </a>.</p>
593+
* <p>
594+
* <b>About control APIs</b>
595+
* </p>
596+
* <p>These interfaces allow you to apply the Amazon Web Services library of pre-defined
542597
* <i>controls</i> to your organizational units, programmatically. In Amazon Web Services Control Tower, the terms "control" and "guardrail" are synonyms.</p>
543598
* <p>To call these APIs, you'll need to know:</p>
544599
* <ul>
@@ -559,7 +614,7 @@ export interface ControlTower {
559614
* <p>The <code>controlIdentifier</code> is an ARN that is specified for each
560615
* control. You can view the <code>controlIdentifier</code> in the console on the <b>Control details</b> page, as well as in the documentation.</p>
561616
* <p>The <code>controlIdentifier</code> is unique in each Amazon Web Services Region for each control. You can
562-
* find the <code>controlIdentifier</code> for each Region and control in the <a href="https://docs.aws.amazon.com/controltower/latest/userguide/control-metadata-tables.html">Tables of control metadata</a> in the <i>Amazon Web Services Control Tower User Guide.</i>
617+
* find the <code>controlIdentifier</code> for each Region and control in the <a href="https://docs.aws.amazon.com/controltower/latest/userguide/control-metadata-tables.html">Tables of control metadata</a> or the <a href="https://docs.aws.amazon.com/controltower/latest/userguide/control-region-tables.html">Control availability by Region tables</a> in the <i>Amazon Web Services Control Tower User Guide.</i>
563618
* </p>
564619
* <p>A quick-reference list of control identifers for the Amazon Web Services Control Tower legacy <i>Strongly recommended</i> and
565620
* <i>Elective</i> controls is given in <a href="https://docs.aws.amazon.com/controltower/latest/userguide/control-identifiers.html.html">Resource identifiers for
@@ -591,6 +646,17 @@ export interface ControlTower {
591646
* <code>arn:$\{Partition\}:organizations::$\{MasterAccountId\}:ou/o-$\{OrganizationId\}/ou-$\{OrganizationalUnitId\}</code>
592647
* </p>
593648
* </note>
649+
* <p>
650+
* <b> About landing zone APIs</b>
651+
* </p>
652+
* <p>You can configure and launch an Amazon Web Services Control Tower landing zone with APIs. For an introduction and steps, see <a href="https://docs.aws.amazon.com/controltower/latest/userguide/getting-started-apis.html">Getting started with Amazon Web Services Control Tower using APIs</a>.</p>
653+
* <p>For an overview of landing zone API operations, see <a href="https://docs.aws.amazon.com/controltower/latest/userguide/2023-all.html#landing-zone-apis"> Amazon Web Services Control Tower supports landing zone APIs</a>. The individual API operations for landing zones are detailed in this document, the <a href="https://docs.aws.amazon.com/controltower/latest/APIReference/API_Operations.html">API reference manual</a>, in the "Actions" section.</p>
654+
* <p>
655+
* <b>About baseline APIs</b>
656+
* </p>
657+
* <p>You can apply the <code>AWSControlTowerBaseline</code> baseline to an organizational unit (OU) as a way to register the OU with Amazon Web Services Control Tower, programmatically. For a general overview of this capability, see <a href="https://docs.aws.amazon.com/controltower/latest/userguide/2024-all.html#baseline-apis">Amazon Web Services Control Tower supports APIs for OU registration and configuration with baselines</a>.</p>
658+
* <p>You can call the baseline API operations to view the baselines that Amazon Web Services Control Tower enables for your landing zone, on your behalf, when setting up the landing zone. These baselines are read-only baselines.</p>
659+
* <p>The individual API operations for baselines are detailed in this document, the <a href="https://docs.aws.amazon.com/controltower/latest/APIReference/API_Operations.html">API reference manual</a>, in the "Actions" section. For usage examples, see <a href="https://docs.aws.amazon.com/controltower/latest/userguide/baseline-api-examples.html">Baseline API input and output examples with CLI</a>.</p>
594660
* <p class="title">
595661
* <b>Details and examples</b>
596662
* </p>
@@ -602,12 +668,27 @@ export interface ControlTower {
602668
* </li>
603669
* <li>
604670
* <p>
671+
* <a href="https://docs.aws.amazon.com/controltower/latest/userguide/baseline-api-examples.html">Baseline API input and output examples with CLI</a>
672+
* </p>
673+
* </li>
674+
* <li>
675+
* <p>
605676
* <a href="https://docs.aws.amazon.com/controltower/latest/userguide/enable-controls.html">Enable controls with CloudFormation</a>
606677
* </p>
607678
* </li>
608679
* <li>
609680
* <p>
610-
* <a href="https://docs.aws.amazon.com/controltower/latest/userguide/control-metadata-tables.html">Control metadata tables</a>
681+
* <a href="https://docs.aws.amazon.com/controltower/latest/userguide/lz-apis-cfn-setup.html">Launch a landing zone with CloudFormation</a>
682+
* </p>
683+
* </li>
684+
* <li>
685+
* <p>
686+
* <a href="https://docs.aws.amazon.com/controltower/latest/userguide/control-metadata-tables.html">Control metadata tables (large page)</a>
687+
* </p>
688+
* </li>
689+
* <li>
690+
* <p>
691+
* <a href="https://docs.aws.amazon.com/controltower/latest/userguide/control-region-tables.html">Control availability by Region tables (large page)</a>
611692
* </p>
612693
* </li>
613694
* <li>

0 commit comments

Comments
 (0)