@aws-sdk/client-controltower 3.576.0 → 3.580.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 (39) hide show
  1. package/README.md +66 -2
  2. package/dist-cjs/index.js +95 -13
  3. package/dist-es/ControlTower.js +2 -0
  4. package/dist-es/commands/ListControlOperationsCommand.js +24 -0
  5. package/dist-es/commands/index.js +1 -0
  6. package/dist-es/models/models_0.js +10 -10
  7. package/dist-es/pagination/ListControlOperationsPaginator.js +4 -0
  8. package/dist-es/pagination/index.js +1 -0
  9. package/dist-es/protocols/Aws_restJson1.js +56 -0
  10. package/dist-types/ControlTower.d.ts +68 -3
  11. package/dist-types/ControlTowerClient.d.ts +62 -5
  12. package/dist-types/commands/DisableBaselineCommand.d.ts +3 -1
  13. package/dist-types/commands/EnableBaselineCommand.d.ts +3 -1
  14. package/dist-types/commands/GetBaselineCommand.d.ts +3 -1
  15. package/dist-types/commands/GetBaselineOperationCommand.d.ts +3 -1
  16. package/dist-types/commands/GetControlOperationCommand.d.ts +6 -2
  17. package/dist-types/commands/GetLandingZoneOperationCommand.d.ts +1 -1
  18. package/dist-types/commands/ListBaselinesCommand.d.ts +3 -1
  19. package/dist-types/commands/ListControlOperationsCommand.d.ts +102 -0
  20. package/dist-types/commands/ListEnabledBaselinesCommand.d.ts +3 -1
  21. package/dist-types/commands/ListEnabledControlsCommand.d.ts +13 -2
  22. package/dist-types/commands/ResetEnabledBaselineCommand.d.ts +3 -1
  23. package/dist-types/commands/UpdateEnabledBaselineCommand.d.ts +3 -1
  24. package/dist-types/commands/index.d.ts +1 -0
  25. package/dist-types/index.d.ts +59 -3
  26. package/dist-types/models/models_0.d.ts +358 -195
  27. package/dist-types/pagination/ListControlOperationsPaginator.d.ts +7 -0
  28. package/dist-types/pagination/index.d.ts +1 -0
  29. package/dist-types/protocols/Aws_restJson1.d.ts +9 -0
  30. package/dist-types/ts3.4/ControlTower.d.ts +19 -0
  31. package/dist-types/ts3.4/ControlTowerClient.d.ts +6 -0
  32. package/dist-types/ts3.4/commands/ListControlOperationsCommand.d.ts +39 -0
  33. package/dist-types/ts3.4/commands/ListEnabledControlsCommand.d.ts +1 -1
  34. package/dist-types/ts3.4/commands/index.d.ts +1 -0
  35. package/dist-types/ts3.4/models/models_0.d.ts +98 -61
  36. package/dist-types/ts3.4/pagination/ListControlOperationsPaginator.d.ts +11 -0
  37. package/dist-types/ts3.4/pagination/index.d.ts +1 -0
  38. package/dist-types/ts3.4/protocols/Aws_restJson1.d.ts +12 -0
  39. package/package.json +13 -13
package/README.md CHANGED
@@ -6,6 +6,36 @@
6
6
 
7
7
  AWS SDK for JavaScript ControlTower Client for Node.js, Browser and React Native.
8
8
 
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>
9
39
  <p>These interfaces allow you to apply the Amazon Web Services library of pre-defined
10
40
  <i>controls</i> to your organizational units, programmatically. In Amazon Web Services Control Tower, the terms "control" and "guardrail" are synonyms.</p>
11
41
  <p>To call these APIs, you'll need to know:</p>
@@ -27,7 +57,7 @@ control:</b>
27
57
  <p>The <code>controlIdentifier</code> is an ARN that is specified for each
28
58
  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>
29
59
  <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>
31
61
  </p>
32
62
  <p>A quick-reference list of control identifers for the Amazon Web Services Control Tower legacy <i>Strongly recommended</i> and
33
63
  <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>
59
89
  <code>arn:${Partition}:organizations::${MasterAccountId}:ou/o-${OrganizationId}/ou-${OrganizationalUnitId}</code>
60
90
  </p>
61
91
  </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>
62
103
  <p class="title">
63
104
  <b>Details and examples</b>
64
105
  </p>
@@ -70,12 +111,27 @@ cannot be added or removed.</p>
70
111
  </li>
71
112
  <li>
72
113
  <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>
73
119
  <a href="https://docs.aws.amazon.com/controltower/latest/userguide/enable-controls.html">Enable controls with CloudFormation</a>
74
120
  </p>
75
121
  </li>
76
122
  <li>
77
123
  <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>
79
135
  </p>
80
136
  </li>
81
137
  <li>
@@ -419,6 +475,14 @@ ListBaselines
419
475
 
420
476
  [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/)
421
477
 
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
+
422
486
  </details>
423
487
  <details>
424
488
  <summary>
package/dist-cjs/index.js CHANGED
@@ -51,6 +51,7 @@ __export(src_exports, {
51
51
  LandingZoneOperationType: () => LandingZoneOperationType,
52
52
  LandingZoneStatus: () => LandingZoneStatus,
53
53
  ListBaselinesCommand: () => ListBaselinesCommand,
54
+ ListControlOperationsCommand: () => ListControlOperationsCommand,
54
55
  ListEnabledBaselinesCommand: () => ListEnabledBaselinesCommand,
55
56
  ListEnabledControlsCommand: () => ListEnabledControlsCommand,
56
57
  ListLandingZonesCommand: () => ListLandingZonesCommand,
@@ -68,6 +69,7 @@ __export(src_exports, {
68
69
  ValidationException: () => ValidationException,
69
70
  __Client: () => import_smithy_client.Client,
70
71
  paginateListBaselines: () => paginateListBaselines,
72
+ paginateListControlOperations: () => paginateListControlOperations,
71
73
  paginateListEnabledBaselines: () => paginateListEnabledBaselines,
72
74
  paginateListEnabledControls: () => paginateListEnabledControls,
73
75
  paginateListLandingZones: () => paginateListLandingZones
@@ -338,6 +340,16 @@ var _ValidationException = class _ValidationException extends ControlTowerServic
338
340
  };
339
341
  __name(_ValidationException, "ValidationException");
340
342
  var ValidationException = _ValidationException;
343
+ var ControlOperationType = {
344
+ DISABLE_CONTROL: "DISABLE_CONTROL",
345
+ ENABLE_CONTROL: "ENABLE_CONTROL",
346
+ UPDATE_ENABLED_CONTROL: "UPDATE_ENABLED_CONTROL"
347
+ };
348
+ var ControlOperationStatus = {
349
+ FAILED: "FAILED",
350
+ IN_PROGRESS: "IN_PROGRESS",
351
+ SUCCEEDED: "SUCCEEDED"
352
+ };
341
353
  var _ConflictException = class _ConflictException extends ControlTowerServiceException {
342
354
  /**
343
355
  * @internal
@@ -388,16 +400,6 @@ var EnablementStatus = {
388
400
  SUCCEEDED: "SUCCEEDED",
389
401
  UNDER_CHANGE: "UNDER_CHANGE"
390
402
  };
391
- var ControlOperationType = {
392
- DISABLE_CONTROL: "DISABLE_CONTROL",
393
- ENABLE_CONTROL: "ENABLE_CONTROL",
394
- UPDATE_ENABLED_CONTROL: "UPDATE_ENABLED_CONTROL"
395
- };
396
- var ControlOperationStatus = {
397
- FAILED: "FAILED",
398
- IN_PROGRESS: "IN_PROGRESS",
399
- SUCCEEDED: "SUCCEEDED"
400
- };
401
403
  var DriftStatus = {
402
404
  DRIFTED: "DRIFTED",
403
405
  IN_SYNC: "IN_SYNC",
@@ -647,6 +649,23 @@ var se_ListBaselinesCommand = /* @__PURE__ */ __name(async (input, context) => {
647
649
  b.m("POST").h(headers).b(body);
648
650
  return b.build();
649
651
  }, "se_ListBaselinesCommand");
652
+ var se_ListControlOperationsCommand = /* @__PURE__ */ __name(async (input, context) => {
653
+ const b = (0, import_core.requestBuilder)(input, context);
654
+ const headers = {
655
+ "content-type": "application/json"
656
+ };
657
+ b.bp("/list-control-operations");
658
+ let body;
659
+ body = JSON.stringify(
660
+ (0, import_smithy_client.take)(input, {
661
+ filter: (_) => (0, import_smithy_client._json)(_),
662
+ maxResults: [],
663
+ nextToken: []
664
+ })
665
+ );
666
+ b.m("POST").h(headers).b(body);
667
+ return b.build();
668
+ }, "se_ListControlOperationsCommand");
650
669
  var se_ListEnabledBaselinesCommand = /* @__PURE__ */ __name(async (input, context) => {
651
670
  const b = (0, import_core.requestBuilder)(input, context);
652
671
  const headers = {
@@ -673,6 +692,7 @@ var se_ListEnabledControlsCommand = /* @__PURE__ */ __name(async (input, context
673
692
  let body;
674
693
  body = JSON.stringify(
675
694
  (0, import_smithy_client.take)(input, {
695
+ filter: (_) => (0, import_smithy_client._json)(_),
676
696
  maxResults: [],
677
697
  nextToken: [],
678
698
  targetIdentifier: []
@@ -1019,6 +1039,21 @@ var de_ListBaselinesCommand = /* @__PURE__ */ __name(async (output, context) =>
1019
1039
  Object.assign(contents, doc);
1020
1040
  return contents;
1021
1041
  }, "de_ListBaselinesCommand");
1042
+ var de_ListControlOperationsCommand = /* @__PURE__ */ __name(async (output, context) => {
1043
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
1044
+ return de_CommandError(output, context);
1045
+ }
1046
+ const contents = (0, import_smithy_client.map)({
1047
+ $metadata: deserializeMetadata(output)
1048
+ });
1049
+ const data = (0, import_smithy_client.expectNonNull)((0, import_smithy_client.expectObject)(await (0, import_core2.parseJsonBody)(output.body, context)), "body");
1050
+ const doc = (0, import_smithy_client.take)(data, {
1051
+ controlOperations: (_) => de_ControlOperations(_, context),
1052
+ nextToken: import_smithy_client.expectString
1053
+ });
1054
+ Object.assign(contents, doc);
1055
+ return contents;
1056
+ }, "de_ListControlOperationsCommand");
1022
1057
  var de_ListEnabledBaselinesCommand = /* @__PURE__ */ __name(async (output, context) => {
1023
1058
  if (output.statusCode !== 200 && output.statusCode >= 300) {
1024
1059
  return de_CommandError(output, context);
@@ -1344,13 +1379,36 @@ var de_BaselineOperation = /* @__PURE__ */ __name((output, context) => {
1344
1379
  }, "de_BaselineOperation");
1345
1380
  var de_ControlOperation = /* @__PURE__ */ __name((output, context) => {
1346
1381
  return (0, import_smithy_client.take)(output, {
1382
+ controlIdentifier: import_smithy_client.expectString,
1383
+ enabledControlIdentifier: import_smithy_client.expectString,
1347
1384
  endTime: (_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(_)),
1385
+ operationIdentifier: import_smithy_client.expectString,
1348
1386
  operationType: import_smithy_client.expectString,
1349
1387
  startTime: (_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(_)),
1350
1388
  status: import_smithy_client.expectString,
1351
- statusMessage: import_smithy_client.expectString
1389
+ statusMessage: import_smithy_client.expectString,
1390
+ targetIdentifier: import_smithy_client.expectString
1352
1391
  });
1353
1392
  }, "de_ControlOperation");
1393
+ var de_ControlOperations = /* @__PURE__ */ __name((output, context) => {
1394
+ const retVal = (output || []).filter((e) => e != null).map((entry) => {
1395
+ return de_ControlOperationSummary(entry, context);
1396
+ });
1397
+ return retVal;
1398
+ }, "de_ControlOperations");
1399
+ var de_ControlOperationSummary = /* @__PURE__ */ __name((output, context) => {
1400
+ return (0, import_smithy_client.take)(output, {
1401
+ controlIdentifier: import_smithy_client.expectString,
1402
+ enabledControlIdentifier: import_smithy_client.expectString,
1403
+ endTime: (_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(_)),
1404
+ operationIdentifier: import_smithy_client.expectString,
1405
+ operationType: import_smithy_client.expectString,
1406
+ startTime: (_) => (0, import_smithy_client.expectNonNull)((0, import_smithy_client.parseRfc3339DateTimeWithOffset)(_)),
1407
+ status: import_smithy_client.expectString,
1408
+ statusMessage: import_smithy_client.expectString,
1409
+ targetIdentifier: import_smithy_client.expectString
1410
+ });
1411
+ }, "de_ControlOperationSummary");
1354
1412
  var de_EnabledBaselineDetails = /* @__PURE__ */ __name((output, context) => {
1355
1413
  return (0, import_smithy_client.take)(output, {
1356
1414
  arn: import_smithy_client.expectString,
@@ -1668,6 +1726,23 @@ var _ListBaselinesCommand = class _ListBaselinesCommand extends import_smithy_cl
1668
1726
  __name(_ListBaselinesCommand, "ListBaselinesCommand");
1669
1727
  var ListBaselinesCommand = _ListBaselinesCommand;
1670
1728
 
1729
+ // src/commands/ListControlOperationsCommand.ts
1730
+
1731
+
1732
+
1733
+
1734
+ var _ListControlOperationsCommand = class _ListControlOperationsCommand extends import_smithy_client.Command.classBuilder().ep({
1735
+ ...commonParams
1736
+ }).m(function(Command, cs, config, o) {
1737
+ return [
1738
+ (0, import_middleware_serde.getSerdePlugin)(config, this.serialize, this.deserialize),
1739
+ (0, import_middleware_endpoint.getEndpointPlugin)(config, Command.getEndpointParameterInstructions())
1740
+ ];
1741
+ }).s("AWSControlTowerApis", "ListControlOperations", {}).n("ControlTowerClient", "ListControlOperationsCommand").f(void 0, void 0).ser(se_ListControlOperationsCommand).de(de_ListControlOperationsCommand).build() {
1742
+ };
1743
+ __name(_ListControlOperationsCommand, "ListControlOperationsCommand");
1744
+ var ListControlOperationsCommand = _ListControlOperationsCommand;
1745
+
1671
1746
  // src/commands/ListEnabledBaselinesCommand.ts
1672
1747
 
1673
1748
 
@@ -1871,6 +1946,7 @@ var commands = {
1871
1946
  GetLandingZoneCommand,
1872
1947
  GetLandingZoneOperationCommand,
1873
1948
  ListBaselinesCommand,
1949
+ ListControlOperationsCommand,
1874
1950
  ListEnabledBaselinesCommand,
1875
1951
  ListEnabledControlsCommand,
1876
1952
  ListLandingZonesCommand,
@@ -1893,6 +1969,10 @@ var ControlTower = _ControlTower;
1893
1969
 
1894
1970
  var paginateListBaselines = (0, import_core.createPaginator)(ControlTowerClient, ListBaselinesCommand, "nextToken", "nextToken", "maxResults");
1895
1971
 
1972
+ // src/pagination/ListControlOperationsPaginator.ts
1973
+
1974
+ var paginateListControlOperations = (0, import_core.createPaginator)(ControlTowerClient, ListControlOperationsCommand, "nextToken", "nextToken", "maxResults");
1975
+
1896
1976
  // src/pagination/ListEnabledBaselinesPaginator.ts
1897
1977
 
1898
1978
  var paginateListEnabledBaselines = (0, import_core.createPaginator)(ControlTowerClient, ListEnabledBaselinesCommand, "nextToken", "nextToken", "maxResults");
@@ -1926,6 +2006,7 @@ var paginateListLandingZones = (0, import_core.createPaginator)(ControlTowerClie
1926
2006
  GetLandingZoneCommand,
1927
2007
  GetLandingZoneOperationCommand,
1928
2008
  ListBaselinesCommand,
2009
+ ListControlOperationsCommand,
1929
2010
  ListEnabledBaselinesCommand,
1930
2011
  ListEnabledControlsCommand,
1931
2012
  ListLandingZonesCommand,
@@ -1938,6 +2019,7 @@ var paginateListLandingZones = (0, import_core.createPaginator)(ControlTowerClie
1938
2019
  UpdateEnabledControlCommand,
1939
2020
  UpdateLandingZoneCommand,
1940
2021
  paginateListBaselines,
2022
+ paginateListControlOperations,
1941
2023
  paginateListEnabledBaselines,
1942
2024
  paginateListEnabledControls,
1943
2025
  paginateListLandingZones,
@@ -1946,13 +2028,13 @@ var paginateListLandingZones = (0, import_core.createPaginator)(ControlTowerClie
1946
2028
  ResourceNotFoundException,
1947
2029
  ThrottlingException,
1948
2030
  ValidationException,
2031
+ ControlOperationType,
2032
+ ControlOperationStatus,
1949
2033
  ConflictException,
1950
2034
  ServiceQuotaExceededException,
1951
2035
  BaselineOperationType,
1952
2036
  BaselineOperationStatus,
1953
2037
  EnablementStatus,
1954
- ControlOperationType,
1955
- ControlOperationStatus,
1956
2038
  DriftStatus,
1957
2039
  LandingZoneDriftStatus,
1958
2040
  LandingZoneStatus,
@@ -13,6 +13,7 @@ import { GetEnabledControlCommand, } from "./commands/GetEnabledControlCommand";
13
13
  import { GetLandingZoneCommand, } from "./commands/GetLandingZoneCommand";
14
14
  import { GetLandingZoneOperationCommand, } from "./commands/GetLandingZoneOperationCommand";
15
15
  import { ListBaselinesCommand, } from "./commands/ListBaselinesCommand";
16
+ import { ListControlOperationsCommand, } from "./commands/ListControlOperationsCommand";
16
17
  import { ListEnabledBaselinesCommand, } from "./commands/ListEnabledBaselinesCommand";
17
18
  import { ListEnabledControlsCommand, } from "./commands/ListEnabledControlsCommand";
18
19
  import { ListLandingZonesCommand, } from "./commands/ListLandingZonesCommand";
@@ -40,6 +41,7 @@ const commands = {
40
41
  GetLandingZoneCommand,
41
42
  GetLandingZoneOperationCommand,
42
43
  ListBaselinesCommand,
44
+ ListControlOperationsCommand,
43
45
  ListEnabledBaselinesCommand,
44
46
  ListEnabledControlsCommand,
45
47
  ListLandingZonesCommand,
@@ -0,0 +1,24 @@
1
+ import { getEndpointPlugin } from "@smithy/middleware-endpoint";
2
+ import { getSerdePlugin } from "@smithy/middleware-serde";
3
+ import { Command as $Command } from "@smithy/smithy-client";
4
+ import { commonParams } from "../endpoint/EndpointParameters";
5
+ import { de_ListControlOperationsCommand, se_ListControlOperationsCommand } from "../protocols/Aws_restJson1";
6
+ export { $Command };
7
+ export class ListControlOperationsCommand extends $Command
8
+ .classBuilder()
9
+ .ep({
10
+ ...commonParams,
11
+ })
12
+ .m(function (Command, cs, config, o) {
13
+ return [
14
+ getSerdePlugin(config, this.serialize, this.deserialize),
15
+ getEndpointPlugin(config, Command.getEndpointParameterInstructions()),
16
+ ];
17
+ })
18
+ .s("AWSControlTowerApis", "ListControlOperations", {})
19
+ .n("ControlTowerClient", "ListControlOperationsCommand")
20
+ .f(void 0, void 0)
21
+ .ser(se_ListControlOperationsCommand)
22
+ .de(de_ListControlOperationsCommand)
23
+ .build() {
24
+ }
@@ -12,6 +12,7 @@ export * from "./GetEnabledControlCommand";
12
12
  export * from "./GetLandingZoneCommand";
13
13
  export * from "./GetLandingZoneOperationCommand";
14
14
  export * from "./ListBaselinesCommand";
15
+ export * from "./ListControlOperationsCommand";
15
16
  export * from "./ListEnabledBaselinesCommand";
16
17
  export * from "./ListEnabledControlsCommand";
17
18
  export * from "./ListLandingZonesCommand";
@@ -66,6 +66,16 @@ export class ValidationException extends __BaseException {
66
66
  Object.setPrototypeOf(this, ValidationException.prototype);
67
67
  }
68
68
  }
69
+ export const ControlOperationType = {
70
+ DISABLE_CONTROL: "DISABLE_CONTROL",
71
+ ENABLE_CONTROL: "ENABLE_CONTROL",
72
+ UPDATE_ENABLED_CONTROL: "UPDATE_ENABLED_CONTROL",
73
+ };
74
+ export const ControlOperationStatus = {
75
+ FAILED: "FAILED",
76
+ IN_PROGRESS: "IN_PROGRESS",
77
+ SUCCEEDED: "SUCCEEDED",
78
+ };
69
79
  export class ConflictException extends __BaseException {
70
80
  constructor(opts) {
71
81
  super({
@@ -106,16 +116,6 @@ export const EnablementStatus = {
106
116
  SUCCEEDED: "SUCCEEDED",
107
117
  UNDER_CHANGE: "UNDER_CHANGE",
108
118
  };
109
- export const ControlOperationType = {
110
- DISABLE_CONTROL: "DISABLE_CONTROL",
111
- ENABLE_CONTROL: "ENABLE_CONTROL",
112
- UPDATE_ENABLED_CONTROL: "UPDATE_ENABLED_CONTROL",
113
- };
114
- export const ControlOperationStatus = {
115
- FAILED: "FAILED",
116
- IN_PROGRESS: "IN_PROGRESS",
117
- SUCCEEDED: "SUCCEEDED",
118
- };
119
119
  export const DriftStatus = {
120
120
  DRIFTED: "DRIFTED",
121
121
  IN_SYNC: "IN_SYNC",
@@ -0,0 +1,4 @@
1
+ import { createPaginator } from "@smithy/core";
2
+ import { ListControlOperationsCommand, } from "../commands/ListControlOperationsCommand";
3
+ import { ControlTowerClient } from "../ControlTowerClient";
4
+ export const paginateListControlOperations = createPaginator(ControlTowerClient, ListControlOperationsCommand, "nextToken", "nextToken", "maxResults");
@@ -1,5 +1,6 @@
1
1
  export * from "./Interfaces";
2
2
  export * from "./ListBaselinesPaginator";
3
+ export * from "./ListControlOperationsPaginator";
3
4
  export * from "./ListEnabledBaselinesPaginator";
4
5
  export * from "./ListEnabledControlsPaginator";
5
6
  export * from "./ListLandingZonesPaginator";
@@ -196,6 +196,21 @@ export const se_ListBaselinesCommand = async (input, context) => {
196
196
  b.m("POST").h(headers).b(body);
197
197
  return b.build();
198
198
  };
199
+ export const se_ListControlOperationsCommand = async (input, context) => {
200
+ const b = rb(input, context);
201
+ const headers = {
202
+ "content-type": "application/json",
203
+ };
204
+ b.bp("/list-control-operations");
205
+ let body;
206
+ body = JSON.stringify(take(input, {
207
+ filter: (_) => _json(_),
208
+ maxResults: [],
209
+ nextToken: [],
210
+ }));
211
+ b.m("POST").h(headers).b(body);
212
+ return b.build();
213
+ };
199
214
  export const se_ListEnabledBaselinesCommand = async (input, context) => {
200
215
  const b = rb(input, context);
201
216
  const headers = {
@@ -219,6 +234,7 @@ export const se_ListEnabledControlsCommand = async (input, context) => {
219
234
  b.bp("/list-enabled-controls");
220
235
  let body;
221
236
  body = JSON.stringify(take(input, {
237
+ filter: (_) => _json(_),
222
238
  maxResults: [],
223
239
  nextToken: [],
224
240
  targetIdentifier: [],
@@ -550,6 +566,21 @@ export const de_ListBaselinesCommand = async (output, context) => {
550
566
  Object.assign(contents, doc);
551
567
  return contents;
552
568
  };
569
+ export const de_ListControlOperationsCommand = async (output, context) => {
570
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
571
+ return de_CommandError(output, context);
572
+ }
573
+ const contents = map({
574
+ $metadata: deserializeMetadata(output),
575
+ });
576
+ const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
577
+ const doc = take(data, {
578
+ controlOperations: (_) => de_ControlOperations(_, context),
579
+ nextToken: __expectString,
580
+ });
581
+ Object.assign(contents, doc);
582
+ return contents;
583
+ };
553
584
  export const de_ListEnabledBaselinesCommand = async (output, context) => {
554
585
  if (output.statusCode !== 200 && output.statusCode >= 300) {
555
586
  return de_CommandError(output, context);
@@ -879,11 +910,36 @@ const de_BaselineOperation = (output, context) => {
879
910
  };
880
911
  const de_ControlOperation = (output, context) => {
881
912
  return take(output, {
913
+ controlIdentifier: __expectString,
914
+ enabledControlIdentifier: __expectString,
882
915
  endTime: (_) => __expectNonNull(__parseRfc3339DateTimeWithOffset(_)),
916
+ operationIdentifier: __expectString,
883
917
  operationType: __expectString,
884
918
  startTime: (_) => __expectNonNull(__parseRfc3339DateTimeWithOffset(_)),
885
919
  status: __expectString,
886
920
  statusMessage: __expectString,
921
+ targetIdentifier: __expectString,
922
+ });
923
+ };
924
+ const de_ControlOperations = (output, context) => {
925
+ const retVal = (output || [])
926
+ .filter((e) => e != null)
927
+ .map((entry) => {
928
+ return de_ControlOperationSummary(entry, context);
929
+ });
930
+ return retVal;
931
+ };
932
+ const de_ControlOperationSummary = (output, context) => {
933
+ return take(output, {
934
+ controlIdentifier: __expectString,
935
+ enabledControlIdentifier: __expectString,
936
+ endTime: (_) => __expectNonNull(__parseRfc3339DateTimeWithOffset(_)),
937
+ operationIdentifier: __expectString,
938
+ operationType: __expectString,
939
+ startTime: (_) => __expectNonNull(__parseRfc3339DateTimeWithOffset(_)),
940
+ status: __expectString,
941
+ statusMessage: __expectString,
942
+ targetIdentifier: __expectString,
887
943
  });
888
944
  };
889
945
  const de_EnabledBaselineDetails = (output, context) => {
@@ -13,6 +13,7 @@ import { GetEnabledControlCommandInput, GetEnabledControlCommandOutput } from ".
13
13
  import { GetLandingZoneCommandInput, GetLandingZoneCommandOutput } from "./commands/GetLandingZoneCommand";
14
14
  import { GetLandingZoneOperationCommandInput, GetLandingZoneOperationCommandOutput } from "./commands/GetLandingZoneOperationCommand";
15
15
  import { ListBaselinesCommandInput, ListBaselinesCommandOutput } from "./commands/ListBaselinesCommand";
16
+ import { ListControlOperationsCommandInput, ListControlOperationsCommandOutput } from "./commands/ListControlOperationsCommand";
16
17
  import { ListEnabledBaselinesCommandInput, ListEnabledBaselinesCommandOutput } from "./commands/ListEnabledBaselinesCommand";
17
18
  import { ListEnabledControlsCommandInput, ListEnabledControlsCommandOutput } from "./commands/ListEnabledControlsCommand";
18
19
  import { ListLandingZonesCommandInput, ListLandingZonesCommandOutput } from "./commands/ListLandingZonesCommand";
@@ -111,6 +112,13 @@ export interface ControlTower {
111
112
  listBaselines(args: ListBaselinesCommandInput, options?: __HttpHandlerOptions): Promise<ListBaselinesCommandOutput>;
112
113
  listBaselines(args: ListBaselinesCommandInput, cb: (err: any, data?: ListBaselinesCommandOutput) => void): void;
113
114
  listBaselines(args: ListBaselinesCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: ListBaselinesCommandOutput) => void): void;
115
+ /**
116
+ * @see {@link ListControlOperationsCommand}
117
+ */
118
+ listControlOperations(): Promise<ListControlOperationsCommandOutput>;
119
+ listControlOperations(args: ListControlOperationsCommandInput, options?: __HttpHandlerOptions): Promise<ListControlOperationsCommandOutput>;
120
+ listControlOperations(args: ListControlOperationsCommandInput, cb: (err: any, data?: ListControlOperationsCommandOutput) => void): void;
121
+ listControlOperations(args: ListControlOperationsCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: ListControlOperationsCommandOutput) => void): void;
114
122
  /**
115
123
  * @see {@link ListEnabledBaselinesCommand}
116
124
  */
@@ -121,6 +129,7 @@ export interface ControlTower {
121
129
  /**
122
130
  * @see {@link ListEnabledControlsCommand}
123
131
  */
132
+ listEnabledControls(): Promise<ListEnabledControlsCommandOutput>;
124
133
  listEnabledControls(args: ListEnabledControlsCommandInput, options?: __HttpHandlerOptions): Promise<ListEnabledControlsCommandOutput>;
125
134
  listEnabledControls(args: ListEnabledControlsCommandInput, cb: (err: any, data?: ListEnabledControlsCommandOutput) => void): void;
126
135
  listEnabledControls(args: ListEnabledControlsCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: ListEnabledControlsCommandOutput) => void): void;
@@ -181,7 +190,37 @@ export interface ControlTower {
181
190
  updateLandingZone(args: UpdateLandingZoneCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: UpdateLandingZoneCommandOutput) => void): void;
182
191
  }
183
192
  /**
184
- * <p>These interfaces allow you to apply the Amazon Web Services library of pre-defined
193
+ * <p>Amazon Web Services Control Tower offers application programming interface (API) operations that support programmatic interaction with these types of resources:</p>
194
+ * <ul>
195
+ * <li>
196
+ * <p>
197
+ * <a href="https://docs.aws.amazon.com/controltower/latest/userguide/controls.html">
198
+ * <i>controls</i>
199
+ * </a>
200
+ * </p>
201
+ * </li>
202
+ * <li>
203
+ * <p>
204
+ * <a href="https://docs.aws.amazon.com/controltower/latest/userguide/lz-api-launch.html">
205
+ * <i>landing zones</i>
206
+ * </a>
207
+ * </p>
208
+ * </li>
209
+ * <li>
210
+ * <p>
211
+ * <a href="https://docs.aws.amazon.com/controltower/latest/userguide/types-of-baselines.html">
212
+ * <i>baselines</i>
213
+ * </a>
214
+ * </p>
215
+ * </li>
216
+ * </ul>
217
+ * <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">
218
+ * <i>Amazon Web Services Control Tower User Guide</i>
219
+ * </a>.</p>
220
+ * <p>
221
+ * <b>About control APIs</b>
222
+ * </p>
223
+ * <p>These interfaces allow you to apply the Amazon Web Services library of pre-defined
185
224
  * <i>controls</i> to your organizational units, programmatically. In Amazon Web Services Control Tower, the terms "control" and "guardrail" are synonyms.</p>
186
225
  * <p>To call these APIs, you'll need to know:</p>
187
226
  * <ul>
@@ -202,7 +241,7 @@ export interface ControlTower {
202
241
  * <p>The <code>controlIdentifier</code> is an ARN that is specified for each
203
242
  * 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>
204
243
  * <p>The <code>controlIdentifier</code> is unique in each Amazon Web Services Region for each control. You can
205
- * 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>
244
+ * 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>
206
245
  * </p>
207
246
  * <p>A quick-reference list of control identifers for the Amazon Web Services Control Tower legacy <i>Strongly recommended</i> and
208
247
  * <i>Elective</i> controls is given in <a href="https://docs.aws.amazon.com/controltower/latest/userguide/control-identifiers.html.html">Resource identifiers for
@@ -234,6 +273,17 @@ export interface ControlTower {
234
273
  * <code>arn:$\{Partition\}:organizations::$\{MasterAccountId\}:ou/o-$\{OrganizationId\}/ou-$\{OrganizationalUnitId\}</code>
235
274
  * </p>
236
275
  * </note>
276
+ * <p>
277
+ * <b> About landing zone APIs</b>
278
+ * </p>
279
+ * <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>
280
+ * <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>
281
+ * <p>
282
+ * <b>About baseline APIs</b>
283
+ * </p>
284
+ * <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>
285
+ * <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>
286
+ * <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>
237
287
  * <p class="title">
238
288
  * <b>Details and examples</b>
239
289
  * </p>
@@ -245,12 +295,27 @@ export interface ControlTower {
245
295
  * </li>
246
296
  * <li>
247
297
  * <p>
298
+ * <a href="https://docs.aws.amazon.com/controltower/latest/userguide/baseline-api-examples.html">Baseline API input and output examples with CLI</a>
299
+ * </p>
300
+ * </li>
301
+ * <li>
302
+ * <p>
248
303
  * <a href="https://docs.aws.amazon.com/controltower/latest/userguide/enable-controls.html">Enable controls with CloudFormation</a>
249
304
  * </p>
250
305
  * </li>
251
306
  * <li>
252
307
  * <p>
253
- * <a href="https://docs.aws.amazon.com/controltower/latest/userguide/control-metadata-tables.html">Control metadata tables</a>
308
+ * <a href="https://docs.aws.amazon.com/controltower/latest/userguide/lz-apis-cfn-setup.html">Launch a landing zone with CloudFormation</a>
309
+ * </p>
310
+ * </li>
311
+ * <li>
312
+ * <p>
313
+ * <a href="https://docs.aws.amazon.com/controltower/latest/userguide/control-metadata-tables.html">Control metadata tables (large page)</a>
314
+ * </p>
315
+ * </li>
316
+ * <li>
317
+ * <p>
318
+ * <a href="https://docs.aws.amazon.com/controltower/latest/userguide/control-region-tables.html">Control availability by Region tables (large page)</a>
254
319
  * </p>
255
320
  * </li>
256
321
  * <li>