@aws-sdk/client-controltower 3.458.0 → 3.459.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 (40) hide show
  1. package/README.md +11 -3
  2. package/dist-cjs/ControlTower.js +2 -0
  3. package/dist-cjs/commands/UpdateEnabledControlCommand.js +51 -0
  4. package/dist-cjs/commands/index.js +1 -0
  5. package/dist-cjs/models/models_0.js +1 -0
  6. package/dist-cjs/protocols/Aws_restJson1.js +121 -2
  7. package/dist-es/ControlTower.js +2 -0
  8. package/dist-es/commands/UpdateEnabledControlCommand.js +47 -0
  9. package/dist-es/commands/index.js +1 -0
  10. package/dist-es/models/models_0.js +1 -0
  11. package/dist-es/protocols/Aws_restJson1.js +118 -1
  12. package/dist-types/ControlTower.d.ts +10 -3
  13. package/dist-types/ControlTowerClient.d.ts +6 -5
  14. package/dist-types/commands/CreateLandingZoneCommand.d.ts +6 -6
  15. package/dist-types/commands/DeleteLandingZoneCommand.d.ts +7 -7
  16. package/dist-types/commands/DisableControlCommand.d.ts +6 -6
  17. package/dist-types/commands/EnableControlCommand.d.ts +12 -6
  18. package/dist-types/commands/GetControlOperationCommand.d.ts +4 -4
  19. package/dist-types/commands/GetEnabledControlCommand.d.ts +10 -4
  20. package/dist-types/commands/GetLandingZoneCommand.d.ts +5 -5
  21. package/dist-types/commands/GetLandingZoneOperationCommand.d.ts +5 -5
  22. package/dist-types/commands/ListEnabledControlsCommand.d.ts +4 -4
  23. package/dist-types/commands/ListLandingZonesCommand.d.ts +4 -4
  24. package/dist-types/commands/ListTagsForResourceCommand.d.ts +3 -3
  25. package/dist-types/commands/ResetLandingZoneCommand.d.ts +6 -6
  26. package/dist-types/commands/TagResourceCommand.d.ts +3 -3
  27. package/dist-types/commands/UntagResourceCommand.d.ts +3 -3
  28. package/dist-types/commands/UpdateEnabledControlCommand.d.ts +107 -0
  29. package/dist-types/commands/UpdateLandingZoneCommand.d.ts +7 -7
  30. package/dist-types/commands/index.d.ts +1 -0
  31. package/dist-types/index.d.ts +3 -3
  32. package/dist-types/models/models_0.d.ts +129 -74
  33. package/dist-types/protocols/Aws_restJson1.d.ts +9 -0
  34. package/dist-types/ts3.4/ControlTower.d.ts +17 -0
  35. package/dist-types/ts3.4/ControlTowerClient.d.ts +6 -0
  36. package/dist-types/ts3.4/commands/UpdateEnabledControlCommand.d.ts +42 -0
  37. package/dist-types/ts3.4/commands/index.d.ts +1 -0
  38. package/dist-types/ts3.4/models/models_0.d.ts +18 -0
  39. package/dist-types/ts3.4/protocols/Aws_restJson1.d.ts +12 -0
  40. package/package.json +1 -1
package/README.md CHANGED
@@ -6,8 +6,8 @@
6
6
 
7
7
  AWS SDK for JavaScript ControlTower Client for Node.js, Browser and React Native.
8
8
 
9
- <p>These interfaces allow you to apply the Amazon Web Services library of pre-defined
10
- <i>controls</i> to your organizational units, programmatically. In Amazon Web Services Control Tower, the terms "control" and "guardrail" are synonyms.</p>
9
+ <p>These interfaces allow you to apply the Amazon Web Services library of pre-defined
10
+ <i>controls</i> to your organizational units, programmatically. In Amazon Web Services Control Tower, the terms "control" and "guardrail" are synonyms.</p>
11
11
  <p>To call these APIs, you'll need to know:</p>
12
12
  <ul>
13
13
  <li>
@@ -21,7 +21,7 @@ AWS SDK for JavaScript ControlTower Client for Node.js, Browser and React Native
21
21
  </li>
22
22
  </ul>
23
23
  <p>
24
- <b>To get the <code>controlIdentifier</code> for your AWS Control Tower
24
+ <b>To get the <code>controlIdentifier</code> for your Amazon Web Services Control Tower
25
25
  control:</b>
26
26
  </p>
27
27
  <p>The <code>controlIdentifier</code> is an ARN that is specified for each
@@ -419,6 +419,14 @@ UntagResource
419
419
 
420
420
  [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/controltower/command/UntagResourceCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-controltower/Interface/UntagResourceCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-controltower/Interface/UntagResourceCommandOutput/)
421
421
 
422
+ </details>
423
+ <details>
424
+ <summary>
425
+ UpdateEnabledControl
426
+ </summary>
427
+
428
+ [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/controltower/command/UpdateEnabledControlCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-controltower/Interface/UpdateEnabledControlCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-controltower/Interface/UpdateEnabledControlCommandOutput/)
429
+
422
430
  </details>
423
431
  <details>
424
432
  <summary>
@@ -16,6 +16,7 @@ const ListTagsForResourceCommand_1 = require("./commands/ListTagsForResourceComm
16
16
  const ResetLandingZoneCommand_1 = require("./commands/ResetLandingZoneCommand");
17
17
  const TagResourceCommand_1 = require("./commands/TagResourceCommand");
18
18
  const UntagResourceCommand_1 = require("./commands/UntagResourceCommand");
19
+ const UpdateEnabledControlCommand_1 = require("./commands/UpdateEnabledControlCommand");
19
20
  const UpdateLandingZoneCommand_1 = require("./commands/UpdateLandingZoneCommand");
20
21
  const ControlTowerClient_1 = require("./ControlTowerClient");
21
22
  const commands = {
@@ -33,6 +34,7 @@ const commands = {
33
34
  ResetLandingZoneCommand: ResetLandingZoneCommand_1.ResetLandingZoneCommand,
34
35
  TagResourceCommand: TagResourceCommand_1.TagResourceCommand,
35
36
  UntagResourceCommand: UntagResourceCommand_1.UntagResourceCommand,
37
+ UpdateEnabledControlCommand: UpdateEnabledControlCommand_1.UpdateEnabledControlCommand,
36
38
  UpdateLandingZoneCommand: UpdateLandingZoneCommand_1.UpdateLandingZoneCommand,
37
39
  };
38
40
  class ControlTower extends ControlTowerClient_1.ControlTowerClient {
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UpdateEnabledControlCommand = exports.$Command = void 0;
4
+ const middleware_endpoint_1 = require("@smithy/middleware-endpoint");
5
+ const middleware_serde_1 = require("@smithy/middleware-serde");
6
+ const smithy_client_1 = require("@smithy/smithy-client");
7
+ Object.defineProperty(exports, "$Command", { enumerable: true, get: function () { return smithy_client_1.Command; } });
8
+ const types_1 = require("@smithy/types");
9
+ const Aws_restJson1_1 = require("../protocols/Aws_restJson1");
10
+ class UpdateEnabledControlCommand extends smithy_client_1.Command {
11
+ static getEndpointParameterInstructions() {
12
+ return {
13
+ UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
14
+ Endpoint: { type: "builtInParams", name: "endpoint" },
15
+ Region: { type: "builtInParams", name: "region" },
16
+ UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
17
+ };
18
+ }
19
+ constructor(input) {
20
+ super();
21
+ this.input = input;
22
+ }
23
+ resolveMiddleware(clientStack, configuration, options) {
24
+ this.middlewareStack.use((0, middleware_serde_1.getSerdePlugin)(configuration, this.serialize, this.deserialize));
25
+ this.middlewareStack.use((0, middleware_endpoint_1.getEndpointPlugin)(configuration, UpdateEnabledControlCommand.getEndpointParameterInstructions()));
26
+ const stack = clientStack.concat(this.middlewareStack);
27
+ const { logger } = configuration;
28
+ const clientName = "ControlTowerClient";
29
+ const commandName = "UpdateEnabledControlCommand";
30
+ const handlerExecutionContext = {
31
+ logger,
32
+ clientName,
33
+ commandName,
34
+ inputFilterSensitiveLog: (_) => _,
35
+ outputFilterSensitiveLog: (_) => _,
36
+ [types_1.SMITHY_CONTEXT_KEY]: {
37
+ service: "AWSControlTowerApis",
38
+ operation: "UpdateEnabledControl",
39
+ },
40
+ };
41
+ const { requestHandler } = configuration;
42
+ return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);
43
+ }
44
+ serialize(input, context) {
45
+ return (0, Aws_restJson1_1.se_UpdateEnabledControlCommand)(input, context);
46
+ }
47
+ deserialize(output, context) {
48
+ return (0, Aws_restJson1_1.de_UpdateEnabledControlCommand)(output, context);
49
+ }
50
+ }
51
+ exports.UpdateEnabledControlCommand = UpdateEnabledControlCommand;
@@ -15,4 +15,5 @@ tslib_1.__exportStar(require("./ListTagsForResourceCommand"), exports);
15
15
  tslib_1.__exportStar(require("./ResetLandingZoneCommand"), exports);
16
16
  tslib_1.__exportStar(require("./TagResourceCommand"), exports);
17
17
  tslib_1.__exportStar(require("./UntagResourceCommand"), exports);
18
+ tslib_1.__exportStar(require("./UpdateEnabledControlCommand"), exports);
18
19
  tslib_1.__exportStar(require("./UpdateLandingZoneCommand"), exports);
@@ -103,6 +103,7 @@ exports.ValidationException = ValidationException;
103
103
  exports.ControlOperationType = {
104
104
  DISABLE_CONTROL: "DISABLE_CONTROL",
105
105
  ENABLE_CONTROL: "ENABLE_CONTROL",
106
+ UPDATE_ENABLED_CONTROL: "UPDATE_ENABLED_CONTROL",
106
107
  };
107
108
  exports.ControlOperationStatus = {
108
109
  FAILED: "FAILED",
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.de_UpdateLandingZoneCommand = exports.de_UntagResourceCommand = exports.de_TagResourceCommand = exports.de_ResetLandingZoneCommand = exports.de_ListTagsForResourceCommand = exports.de_ListLandingZonesCommand = exports.de_ListEnabledControlsCommand = exports.de_GetLandingZoneOperationCommand = exports.de_GetLandingZoneCommand = exports.de_GetEnabledControlCommand = exports.de_GetControlOperationCommand = exports.de_EnableControlCommand = exports.de_DisableControlCommand = exports.de_DeleteLandingZoneCommand = exports.de_CreateLandingZoneCommand = exports.se_UpdateLandingZoneCommand = exports.se_UntagResourceCommand = exports.se_TagResourceCommand = exports.se_ResetLandingZoneCommand = exports.se_ListTagsForResourceCommand = exports.se_ListLandingZonesCommand = exports.se_ListEnabledControlsCommand = exports.se_GetLandingZoneOperationCommand = exports.se_GetLandingZoneCommand = exports.se_GetEnabledControlCommand = exports.se_GetControlOperationCommand = exports.se_EnableControlCommand = exports.se_DisableControlCommand = exports.se_DeleteLandingZoneCommand = exports.se_CreateLandingZoneCommand = void 0;
3
+ exports.de_UpdateLandingZoneCommand = exports.de_UpdateEnabledControlCommand = exports.de_UntagResourceCommand = exports.de_TagResourceCommand = exports.de_ResetLandingZoneCommand = exports.de_ListTagsForResourceCommand = exports.de_ListLandingZonesCommand = exports.de_ListEnabledControlsCommand = exports.de_GetLandingZoneOperationCommand = exports.de_GetLandingZoneCommand = exports.de_GetEnabledControlCommand = exports.de_GetControlOperationCommand = exports.de_EnableControlCommand = exports.de_DisableControlCommand = exports.de_DeleteLandingZoneCommand = exports.de_CreateLandingZoneCommand = exports.se_UpdateLandingZoneCommand = exports.se_UpdateEnabledControlCommand = exports.se_UntagResourceCommand = exports.se_TagResourceCommand = exports.se_ResetLandingZoneCommand = exports.se_ListTagsForResourceCommand = exports.se_ListLandingZonesCommand = exports.se_ListEnabledControlsCommand = exports.se_GetLandingZoneOperationCommand = exports.se_GetLandingZoneCommand = exports.se_GetEnabledControlCommand = exports.se_GetControlOperationCommand = exports.se_EnableControlCommand = exports.se_DisableControlCommand = exports.se_DeleteLandingZoneCommand = exports.se_CreateLandingZoneCommand = void 0;
4
4
  const protocol_http_1 = require("@smithy/protocol-http");
5
5
  const smithy_client_1 = require("@smithy/smithy-client");
6
6
  const ControlTowerServiceException_1 = require("../models/ControlTowerServiceException");
@@ -80,6 +80,7 @@ const se_EnableControlCommand = async (input, context) => {
80
80
  let body;
81
81
  body = JSON.stringify((0, smithy_client_1.take)(input, {
82
82
  controlIdentifier: [],
83
+ parameters: (_) => se_EnabledControlParameters(_, context),
83
84
  tags: (_) => (0, smithy_client_1._json)(_),
84
85
  targetIdentifier: [],
85
86
  }));
@@ -307,6 +308,28 @@ const se_UntagResourceCommand = async (input, context) => {
307
308
  });
308
309
  };
309
310
  exports.se_UntagResourceCommand = se_UntagResourceCommand;
311
+ const se_UpdateEnabledControlCommand = async (input, context) => {
312
+ const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
313
+ const headers = {
314
+ "content-type": "application/json",
315
+ };
316
+ const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/update-enabled-control";
317
+ let body;
318
+ body = JSON.stringify((0, smithy_client_1.take)(input, {
319
+ enabledControlIdentifier: [],
320
+ parameters: (_) => se_EnabledControlParameters(_, context),
321
+ }));
322
+ return new protocol_http_1.HttpRequest({
323
+ protocol,
324
+ hostname,
325
+ port,
326
+ method: "POST",
327
+ headers,
328
+ path: resolvedPath,
329
+ body,
330
+ });
331
+ };
332
+ exports.se_UpdateEnabledControlCommand = se_UpdateEnabledControlCommand;
310
333
  const se_UpdateLandingZoneCommand = async (input, context) => {
311
334
  const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
312
335
  const headers = {
@@ -586,7 +609,7 @@ const de_GetEnabledControlCommand = async (output, context) => {
586
609
  });
587
610
  const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), "body");
588
611
  const doc = (0, smithy_client_1.take)(data, {
589
- enabledControlDetails: smithy_client_1._json,
612
+ enabledControlDetails: (_) => de_EnabledControlDetails(_, context),
590
613
  });
591
614
  Object.assign(contents, doc);
592
615
  return contents;
@@ -967,6 +990,58 @@ const de_UntagResourceCommandError = async (output, context) => {
967
990
  });
968
991
  }
969
992
  };
993
+ const de_UpdateEnabledControlCommand = async (output, context) => {
994
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
995
+ return de_UpdateEnabledControlCommandError(output, context);
996
+ }
997
+ const contents = (0, smithy_client_1.map)({
998
+ $metadata: deserializeMetadata(output),
999
+ });
1000
+ const data = (0, smithy_client_1.expectNonNull)((0, smithy_client_1.expectObject)(await parseBody(output.body, context)), "body");
1001
+ const doc = (0, smithy_client_1.take)(data, {
1002
+ operationIdentifier: smithy_client_1.expectString,
1003
+ });
1004
+ Object.assign(contents, doc);
1005
+ return contents;
1006
+ };
1007
+ exports.de_UpdateEnabledControlCommand = de_UpdateEnabledControlCommand;
1008
+ const de_UpdateEnabledControlCommandError = async (output, context) => {
1009
+ const parsedOutput = {
1010
+ ...output,
1011
+ body: await parseErrorBody(output.body, context),
1012
+ };
1013
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
1014
+ switch (errorCode) {
1015
+ case "AccessDeniedException":
1016
+ case "com.amazonaws.controltower#AccessDeniedException":
1017
+ throw await de_AccessDeniedExceptionRes(parsedOutput, context);
1018
+ case "ConflictException":
1019
+ case "com.amazonaws.controltower#ConflictException":
1020
+ throw await de_ConflictExceptionRes(parsedOutput, context);
1021
+ case "InternalServerException":
1022
+ case "com.amazonaws.controltower#InternalServerException":
1023
+ throw await de_InternalServerExceptionRes(parsedOutput, context);
1024
+ case "ResourceNotFoundException":
1025
+ case "com.amazonaws.controltower#ResourceNotFoundException":
1026
+ throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);
1027
+ case "ServiceQuotaExceededException":
1028
+ case "com.amazonaws.controltower#ServiceQuotaExceededException":
1029
+ throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context);
1030
+ case "ThrottlingException":
1031
+ case "com.amazonaws.controltower#ThrottlingException":
1032
+ throw await de_ThrottlingExceptionRes(parsedOutput, context);
1033
+ case "ValidationException":
1034
+ case "com.amazonaws.controltower#ValidationException":
1035
+ throw await de_ValidationExceptionRes(parsedOutput, context);
1036
+ default:
1037
+ const parsedBody = parsedOutput.body;
1038
+ return throwDefaultError({
1039
+ output,
1040
+ parsedBody,
1041
+ errorCode,
1042
+ });
1043
+ }
1044
+ };
970
1045
  const de_UpdateLandingZoneCommand = async (output, context) => {
971
1046
  if (output.statusCode !== 200 && output.statusCode >= 300) {
972
1047
  return de_UpdateLandingZoneCommandError(output, context);
@@ -1115,9 +1190,25 @@ const de_ValidationExceptionRes = async (parsedOutput, context) => {
1115
1190
  });
1116
1191
  return (0, smithy_client_1.decorateServiceException)(exception, parsedOutput.body);
1117
1192
  };
1193
+ const se_EnabledControlParameter = (input, context) => {
1194
+ return (0, smithy_client_1.take)(input, {
1195
+ key: [],
1196
+ value: (_) => se_Document(_, context),
1197
+ });
1198
+ };
1199
+ const se_EnabledControlParameters = (input, context) => {
1200
+ return input
1201
+ .filter((e) => e != null)
1202
+ .map((entry) => {
1203
+ return se_EnabledControlParameter(entry, context);
1204
+ });
1205
+ };
1118
1206
  const se_Manifest = (input, context) => {
1119
1207
  return input;
1120
1208
  };
1209
+ const se_Document = (input, context) => {
1210
+ return input;
1211
+ };
1121
1212
  const de_ControlOperation = (output, context) => {
1122
1213
  return (0, smithy_client_1.take)(output, {
1123
1214
  endTime: (_) => (0, smithy_client_1.expectNonNull)((0, smithy_client_1.parseRfc3339DateTimeWithOffset)(_)),
@@ -1127,6 +1218,31 @@ const de_ControlOperation = (output, context) => {
1127
1218
  statusMessage: smithy_client_1.expectString,
1128
1219
  });
1129
1220
  };
1221
+ const de_EnabledControlDetails = (output, context) => {
1222
+ return (0, smithy_client_1.take)(output, {
1223
+ arn: smithy_client_1.expectString,
1224
+ controlIdentifier: smithy_client_1.expectString,
1225
+ driftStatusSummary: smithy_client_1._json,
1226
+ parameters: (_) => de_EnabledControlParameterSummaries(_, context),
1227
+ statusSummary: smithy_client_1._json,
1228
+ targetIdentifier: smithy_client_1.expectString,
1229
+ targetRegions: smithy_client_1._json,
1230
+ });
1231
+ };
1232
+ const de_EnabledControlParameterSummaries = (output, context) => {
1233
+ const retVal = (output || [])
1234
+ .filter((e) => e != null)
1235
+ .map((entry) => {
1236
+ return de_EnabledControlParameterSummary(entry, context);
1237
+ });
1238
+ return retVal;
1239
+ };
1240
+ const de_EnabledControlParameterSummary = (output, context) => {
1241
+ return (0, smithy_client_1.take)(output, {
1242
+ key: smithy_client_1.expectString,
1243
+ value: (_) => de_Document(_, context),
1244
+ });
1245
+ };
1130
1246
  const de_LandingZoneDetail = (output, context) => {
1131
1247
  return (0, smithy_client_1.take)(output, {
1132
1248
  arn: smithy_client_1.expectString,
@@ -1149,6 +1265,9 @@ const de_LandingZoneOperationDetail = (output, context) => {
1149
1265
  const de_Manifest = (output, context) => {
1150
1266
  return output;
1151
1267
  };
1268
+ const de_Document = (output, context) => {
1269
+ return output;
1270
+ };
1152
1271
  const deserializeMetadata = (output) => ({
1153
1272
  httpStatusCode: output.statusCode,
1154
1273
  requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"],
@@ -13,6 +13,7 @@ import { ListTagsForResourceCommand, } from "./commands/ListTagsForResourceComma
13
13
  import { ResetLandingZoneCommand, } from "./commands/ResetLandingZoneCommand";
14
14
  import { TagResourceCommand } from "./commands/TagResourceCommand";
15
15
  import { UntagResourceCommand, } from "./commands/UntagResourceCommand";
16
+ import { UpdateEnabledControlCommand, } from "./commands/UpdateEnabledControlCommand";
16
17
  import { UpdateLandingZoneCommand, } from "./commands/UpdateLandingZoneCommand";
17
18
  import { ControlTowerClient } from "./ControlTowerClient";
18
19
  const commands = {
@@ -30,6 +31,7 @@ const commands = {
30
31
  ResetLandingZoneCommand,
31
32
  TagResourceCommand,
32
33
  UntagResourceCommand,
34
+ UpdateEnabledControlCommand,
33
35
  UpdateLandingZoneCommand,
34
36
  };
35
37
  export class ControlTower extends ControlTowerClient {
@@ -0,0 +1,47 @@
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 { SMITHY_CONTEXT_KEY, } from "@smithy/types";
5
+ import { de_UpdateEnabledControlCommand, se_UpdateEnabledControlCommand } from "../protocols/Aws_restJson1";
6
+ export { $Command };
7
+ export class UpdateEnabledControlCommand extends $Command {
8
+ static getEndpointParameterInstructions() {
9
+ return {
10
+ UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
11
+ Endpoint: { type: "builtInParams", name: "endpoint" },
12
+ Region: { type: "builtInParams", name: "region" },
13
+ UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
14
+ };
15
+ }
16
+ constructor(input) {
17
+ super();
18
+ this.input = input;
19
+ }
20
+ resolveMiddleware(clientStack, configuration, options) {
21
+ this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
22
+ this.middlewareStack.use(getEndpointPlugin(configuration, UpdateEnabledControlCommand.getEndpointParameterInstructions()));
23
+ const stack = clientStack.concat(this.middlewareStack);
24
+ const { logger } = configuration;
25
+ const clientName = "ControlTowerClient";
26
+ const commandName = "UpdateEnabledControlCommand";
27
+ const handlerExecutionContext = {
28
+ logger,
29
+ clientName,
30
+ commandName,
31
+ inputFilterSensitiveLog: (_) => _,
32
+ outputFilterSensitiveLog: (_) => _,
33
+ [SMITHY_CONTEXT_KEY]: {
34
+ service: "AWSControlTowerApis",
35
+ operation: "UpdateEnabledControl",
36
+ },
37
+ };
38
+ const { requestHandler } = configuration;
39
+ return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);
40
+ }
41
+ serialize(input, context) {
42
+ return se_UpdateEnabledControlCommand(input, context);
43
+ }
44
+ deserialize(output, context) {
45
+ return de_UpdateEnabledControlCommand(output, context);
46
+ }
47
+ }
@@ -12,4 +12,5 @@ export * from "./ListTagsForResourceCommand";
12
12
  export * from "./ResetLandingZoneCommand";
13
13
  export * from "./TagResourceCommand";
14
14
  export * from "./UntagResourceCommand";
15
+ export * from "./UpdateEnabledControlCommand";
15
16
  export * from "./UpdateLandingZoneCommand";
@@ -93,6 +93,7 @@ export class ValidationException extends __BaseException {
93
93
  export const ControlOperationType = {
94
94
  DISABLE_CONTROL: "DISABLE_CONTROL",
95
95
  ENABLE_CONTROL: "ENABLE_CONTROL",
96
+ UPDATE_ENABLED_CONTROL: "UPDATE_ENABLED_CONTROL",
96
97
  };
97
98
  export const ControlOperationStatus = {
98
99
  FAILED: "FAILED",
@@ -74,6 +74,7 @@ export const se_EnableControlCommand = async (input, context) => {
74
74
  let body;
75
75
  body = JSON.stringify(take(input, {
76
76
  controlIdentifier: [],
77
+ parameters: (_) => se_EnabledControlParameters(_, context),
77
78
  tags: (_) => _json(_),
78
79
  targetIdentifier: [],
79
80
  }));
@@ -290,6 +291,27 @@ export const se_UntagResourceCommand = async (input, context) => {
290
291
  body,
291
292
  });
292
293
  };
294
+ export const se_UpdateEnabledControlCommand = async (input, context) => {
295
+ const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
296
+ const headers = {
297
+ "content-type": "application/json",
298
+ };
299
+ const resolvedPath = `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` + "/update-enabled-control";
300
+ let body;
301
+ body = JSON.stringify(take(input, {
302
+ enabledControlIdentifier: [],
303
+ parameters: (_) => se_EnabledControlParameters(_, context),
304
+ }));
305
+ return new __HttpRequest({
306
+ protocol,
307
+ hostname,
308
+ port,
309
+ method: "POST",
310
+ headers,
311
+ path: resolvedPath,
312
+ body,
313
+ });
314
+ };
293
315
  export const se_UpdateLandingZoneCommand = async (input, context) => {
294
316
  const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
295
317
  const headers = {
@@ -563,7 +585,7 @@ export const de_GetEnabledControlCommand = async (output, context) => {
563
585
  });
564
586
  const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
565
587
  const doc = take(data, {
566
- enabledControlDetails: _json,
588
+ enabledControlDetails: (_) => de_EnabledControlDetails(_, context),
567
589
  });
568
590
  Object.assign(contents, doc);
569
591
  return contents;
@@ -935,6 +957,57 @@ const de_UntagResourceCommandError = async (output, context) => {
935
957
  });
936
958
  }
937
959
  };
960
+ export const de_UpdateEnabledControlCommand = async (output, context) => {
961
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
962
+ return de_UpdateEnabledControlCommandError(output, context);
963
+ }
964
+ const contents = map({
965
+ $metadata: deserializeMetadata(output),
966
+ });
967
+ const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
968
+ const doc = take(data, {
969
+ operationIdentifier: __expectString,
970
+ });
971
+ Object.assign(contents, doc);
972
+ return contents;
973
+ };
974
+ const de_UpdateEnabledControlCommandError = async (output, context) => {
975
+ const parsedOutput = {
976
+ ...output,
977
+ body: await parseErrorBody(output.body, context),
978
+ };
979
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
980
+ switch (errorCode) {
981
+ case "AccessDeniedException":
982
+ case "com.amazonaws.controltower#AccessDeniedException":
983
+ throw await de_AccessDeniedExceptionRes(parsedOutput, context);
984
+ case "ConflictException":
985
+ case "com.amazonaws.controltower#ConflictException":
986
+ throw await de_ConflictExceptionRes(parsedOutput, context);
987
+ case "InternalServerException":
988
+ case "com.amazonaws.controltower#InternalServerException":
989
+ throw await de_InternalServerExceptionRes(parsedOutput, context);
990
+ case "ResourceNotFoundException":
991
+ case "com.amazonaws.controltower#ResourceNotFoundException":
992
+ throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);
993
+ case "ServiceQuotaExceededException":
994
+ case "com.amazonaws.controltower#ServiceQuotaExceededException":
995
+ throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context);
996
+ case "ThrottlingException":
997
+ case "com.amazonaws.controltower#ThrottlingException":
998
+ throw await de_ThrottlingExceptionRes(parsedOutput, context);
999
+ case "ValidationException":
1000
+ case "com.amazonaws.controltower#ValidationException":
1001
+ throw await de_ValidationExceptionRes(parsedOutput, context);
1002
+ default:
1003
+ const parsedBody = parsedOutput.body;
1004
+ return throwDefaultError({
1005
+ output,
1006
+ parsedBody,
1007
+ errorCode,
1008
+ });
1009
+ }
1010
+ };
938
1011
  export const de_UpdateLandingZoneCommand = async (output, context) => {
939
1012
  if (output.statusCode !== 200 && output.statusCode >= 300) {
940
1013
  return de_UpdateLandingZoneCommandError(output, context);
@@ -1082,9 +1155,25 @@ const de_ValidationExceptionRes = async (parsedOutput, context) => {
1082
1155
  });
1083
1156
  return __decorateServiceException(exception, parsedOutput.body);
1084
1157
  };
1158
+ const se_EnabledControlParameter = (input, context) => {
1159
+ return take(input, {
1160
+ key: [],
1161
+ value: (_) => se_Document(_, context),
1162
+ });
1163
+ };
1164
+ const se_EnabledControlParameters = (input, context) => {
1165
+ return input
1166
+ .filter((e) => e != null)
1167
+ .map((entry) => {
1168
+ return se_EnabledControlParameter(entry, context);
1169
+ });
1170
+ };
1085
1171
  const se_Manifest = (input, context) => {
1086
1172
  return input;
1087
1173
  };
1174
+ const se_Document = (input, context) => {
1175
+ return input;
1176
+ };
1088
1177
  const de_ControlOperation = (output, context) => {
1089
1178
  return take(output, {
1090
1179
  endTime: (_) => __expectNonNull(__parseRfc3339DateTimeWithOffset(_)),
@@ -1094,6 +1183,31 @@ const de_ControlOperation = (output, context) => {
1094
1183
  statusMessage: __expectString,
1095
1184
  });
1096
1185
  };
1186
+ const de_EnabledControlDetails = (output, context) => {
1187
+ return take(output, {
1188
+ arn: __expectString,
1189
+ controlIdentifier: __expectString,
1190
+ driftStatusSummary: _json,
1191
+ parameters: (_) => de_EnabledControlParameterSummaries(_, context),
1192
+ statusSummary: _json,
1193
+ targetIdentifier: __expectString,
1194
+ targetRegions: _json,
1195
+ });
1196
+ };
1197
+ const de_EnabledControlParameterSummaries = (output, context) => {
1198
+ const retVal = (output || [])
1199
+ .filter((e) => e != null)
1200
+ .map((entry) => {
1201
+ return de_EnabledControlParameterSummary(entry, context);
1202
+ });
1203
+ return retVal;
1204
+ };
1205
+ const de_EnabledControlParameterSummary = (output, context) => {
1206
+ return take(output, {
1207
+ key: __expectString,
1208
+ value: (_) => de_Document(_, context),
1209
+ });
1210
+ };
1097
1211
  const de_LandingZoneDetail = (output, context) => {
1098
1212
  return take(output, {
1099
1213
  arn: __expectString,
@@ -1116,6 +1230,9 @@ const de_LandingZoneOperationDetail = (output, context) => {
1116
1230
  const de_Manifest = (output, context) => {
1117
1231
  return output;
1118
1232
  };
1233
+ const de_Document = (output, context) => {
1234
+ return output;
1235
+ };
1119
1236
  const deserializeMetadata = (output) => ({
1120
1237
  httpStatusCode: output.statusCode,
1121
1238
  requestId: output.headers["x-amzn-requestid"] ?? output.headers["x-amzn-request-id"] ?? output.headers["x-amz-request-id"],
@@ -13,6 +13,7 @@ import { ListTagsForResourceCommandInput, ListTagsForResourceCommandOutput } fro
13
13
  import { ResetLandingZoneCommandInput, ResetLandingZoneCommandOutput } from "./commands/ResetLandingZoneCommand";
14
14
  import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand";
15
15
  import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand";
16
+ import { UpdateEnabledControlCommandInput, UpdateEnabledControlCommandOutput } from "./commands/UpdateEnabledControlCommand";
16
17
  import { UpdateLandingZoneCommandInput, UpdateLandingZoneCommandOutput } from "./commands/UpdateLandingZoneCommand";
17
18
  import { ControlTowerClient } from "./ControlTowerClient";
18
19
  export interface ControlTower {
@@ -100,6 +101,12 @@ export interface ControlTower {
100
101
  untagResource(args: UntagResourceCommandInput, options?: __HttpHandlerOptions): Promise<UntagResourceCommandOutput>;
101
102
  untagResource(args: UntagResourceCommandInput, cb: (err: any, data?: UntagResourceCommandOutput) => void): void;
102
103
  untagResource(args: UntagResourceCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: UntagResourceCommandOutput) => void): void;
104
+ /**
105
+ * @see {@link UpdateEnabledControlCommand}
106
+ */
107
+ updateEnabledControl(args: UpdateEnabledControlCommandInput, options?: __HttpHandlerOptions): Promise<UpdateEnabledControlCommandOutput>;
108
+ updateEnabledControl(args: UpdateEnabledControlCommandInput, cb: (err: any, data?: UpdateEnabledControlCommandOutput) => void): void;
109
+ updateEnabledControl(args: UpdateEnabledControlCommandInput, options: __HttpHandlerOptions, cb: (err: any, data?: UpdateEnabledControlCommandOutput) => void): void;
103
110
  /**
104
111
  * @see {@link UpdateLandingZoneCommand}
105
112
  */
@@ -109,8 +116,8 @@ export interface ControlTower {
109
116
  }
110
117
  /**
111
118
  * @public
112
- * <p>These interfaces allow you to apply the Amazon Web Services library of pre-defined
113
- * <i>controls</i> to your organizational units, programmatically. In Amazon Web Services Control Tower, the terms "control" and "guardrail" are synonyms.</p>
119
+ * <p>These interfaces allow you to apply the Amazon Web Services library of pre-defined
120
+ * <i>controls</i> to your organizational units, programmatically. In Amazon Web Services Control Tower, the terms "control" and "guardrail" are synonyms.</p>
114
121
  * <p>To call these APIs, you'll need to know:</p>
115
122
  * <ul>
116
123
  * <li>
@@ -124,7 +131,7 @@ export interface ControlTower {
124
131
  * </li>
125
132
  * </ul>
126
133
  * <p>
127
- * <b>To get the <code>controlIdentifier</code> for your AWS Control Tower
134
+ * <b>To get the <code>controlIdentifier</code> for your Amazon Web Services Control Tower
128
135
  * control:</b>
129
136
  * </p>
130
137
  * <p>The <code>controlIdentifier</code> is an ARN that is specified for each
@@ -22,6 +22,7 @@ import { ListTagsForResourceCommandInput, ListTagsForResourceCommandOutput } fro
22
22
  import { ResetLandingZoneCommandInput, ResetLandingZoneCommandOutput } from "./commands/ResetLandingZoneCommand";
23
23
  import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand";
24
24
  import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand";
25
+ import { UpdateEnabledControlCommandInput, UpdateEnabledControlCommandOutput } from "./commands/UpdateEnabledControlCommand";
25
26
  import { UpdateLandingZoneCommandInput, UpdateLandingZoneCommandOutput } from "./commands/UpdateLandingZoneCommand";
26
27
  import { ClientInputEndpointParameters, ClientResolvedEndpointParameters, EndpointParameters } from "./endpoint/EndpointParameters";
27
28
  import { RuntimeExtension, RuntimeExtensionsConfig } from "./runtimeExtensions";
@@ -29,11 +30,11 @@ export { __Client };
29
30
  /**
30
31
  * @public
31
32
  */
32
- export type ServiceInputTypes = CreateLandingZoneCommandInput | DeleteLandingZoneCommandInput | DisableControlCommandInput | EnableControlCommandInput | GetControlOperationCommandInput | GetEnabledControlCommandInput | GetLandingZoneCommandInput | GetLandingZoneOperationCommandInput | ListEnabledControlsCommandInput | ListLandingZonesCommandInput | ListTagsForResourceCommandInput | ResetLandingZoneCommandInput | TagResourceCommandInput | UntagResourceCommandInput | UpdateLandingZoneCommandInput;
33
+ export type ServiceInputTypes = CreateLandingZoneCommandInput | DeleteLandingZoneCommandInput | DisableControlCommandInput | EnableControlCommandInput | GetControlOperationCommandInput | GetEnabledControlCommandInput | GetLandingZoneCommandInput | GetLandingZoneOperationCommandInput | ListEnabledControlsCommandInput | ListLandingZonesCommandInput | ListTagsForResourceCommandInput | ResetLandingZoneCommandInput | TagResourceCommandInput | UntagResourceCommandInput | UpdateEnabledControlCommandInput | UpdateLandingZoneCommandInput;
33
34
  /**
34
35
  * @public
35
36
  */
36
- export type ServiceOutputTypes = CreateLandingZoneCommandOutput | DeleteLandingZoneCommandOutput | DisableControlCommandOutput | EnableControlCommandOutput | GetControlOperationCommandOutput | GetEnabledControlCommandOutput | GetLandingZoneCommandOutput | GetLandingZoneOperationCommandOutput | ListEnabledControlsCommandOutput | ListLandingZonesCommandOutput | ListTagsForResourceCommandOutput | ResetLandingZoneCommandOutput | TagResourceCommandOutput | UntagResourceCommandOutput | UpdateLandingZoneCommandOutput;
37
+ export type ServiceOutputTypes = CreateLandingZoneCommandOutput | DeleteLandingZoneCommandOutput | DisableControlCommandOutput | EnableControlCommandOutput | GetControlOperationCommandOutput | GetEnabledControlCommandOutput | GetLandingZoneCommandOutput | GetLandingZoneOperationCommandOutput | ListEnabledControlsCommandOutput | ListLandingZonesCommandOutput | ListTagsForResourceCommandOutput | ResetLandingZoneCommandOutput | TagResourceCommandOutput | UntagResourceCommandOutput | UpdateEnabledControlCommandOutput | UpdateLandingZoneCommandOutput;
37
38
  /**
38
39
  * @public
39
40
  */
@@ -167,8 +168,8 @@ export interface ControlTowerClientResolvedConfig extends ControlTowerClientReso
167
168
  }
168
169
  /**
169
170
  * @public
170
- * <p>These interfaces allow you to apply the Amazon Web Services library of pre-defined
171
- * <i>controls</i> to your organizational units, programmatically. In Amazon Web Services Control Tower, the terms "control" and "guardrail" are synonyms.</p>
171
+ * <p>These interfaces allow you to apply the Amazon Web Services library of pre-defined
172
+ * <i>controls</i> to your organizational units, programmatically. In Amazon Web Services Control Tower, the terms "control" and "guardrail" are synonyms.</p>
172
173
  * <p>To call these APIs, you'll need to know:</p>
173
174
  * <ul>
174
175
  * <li>
@@ -182,7 +183,7 @@ export interface ControlTowerClientResolvedConfig extends ControlTowerClientReso
182
183
  * </li>
183
184
  * </ul>
184
185
  * <p>
185
- * <b>To get the <code>controlIdentifier</code> for your AWS Control Tower
186
+ * <b>To get the <code>controlIdentifier</code> for your Amazon Web Services Control Tower
186
187
  * control:</b>
187
188
  * </p>
188
189
  * <p>The <code>controlIdentifier</code> is an ARN that is specified for each