From 8de01a61e320e49bc29a14ef65c97990cdfd09bc Mon Sep 17 00:00:00 2001
From: awstools
Date: Mon, 27 Nov 2023 20:10:27 +0000
Subject: [PATCH] feat(client-fis): AWS FIS adds support for multi-account
experiments & empty target resolution. This release also introduces the
CreateTargetAccountConfiguration API that allows experiments across multiple
AWS accounts, and the ListExperimentResolvedTargets API to list target
details.
---
clients/client-fis/README.md | 64 ++
clients/client-fis/src/Fis.ts | 184 ++++
clients/client-fis/src/FisClient.ts | 52 +-
.../CreateExperimentTemplateCommand.ts | 11 +-
...CreateTargetAccountConfigurationCommand.ts | 174 +++
.../DeleteExperimentTemplateCommand.ts | 5 +
...DeleteTargetAccountConfigurationCommand.ts | 161 +++
.../src/commands/GetExperimentCommand.ts | 7 +-
...rimentTargetAccountConfigurationCommand.ts | 171 +++
.../commands/GetExperimentTemplateCommand.ts | 5 +
.../GetTargetAccountConfigurationCommand.ts | 158 +++
.../ListExperimentResolvedTargetsCommand.ts | 165 +++
...imentTargetAccountConfigurationsCommand.ts | 174 +++
.../ListTargetAccountConfigurationsCommand.ts | 165 +++
.../src/commands/StartExperimentCommand.ts | 7 +-
.../src/commands/StopExperimentCommand.ts | 7 +-
.../UpdateExperimentTemplateCommand.ts | 8 +
...UpdateTargetAccountConfigurationCommand.ts | 163 +++
clients/client-fis/src/commands/index.ts | 8 +
clients/client-fis/src/models/models_0.ts | 546 ++++++++++
.../ListExperimentResolvedTargetsPaginator.ts | 50 +
...istTargetAccountConfigurationsPaginator.ts | 50 +
clients/client-fis/src/pagination/index.ts | 2 +
.../client-fis/src/protocols/Aws_restJson1.ts | 861 ++++++++++++++-
codegen/sdk-codegen/aws-models/fis.json | 997 +++++++++++++++++-
25 files changed, 4142 insertions(+), 53 deletions(-)
create mode 100644 clients/client-fis/src/commands/CreateTargetAccountConfigurationCommand.ts
create mode 100644 clients/client-fis/src/commands/DeleteTargetAccountConfigurationCommand.ts
create mode 100644 clients/client-fis/src/commands/GetExperimentTargetAccountConfigurationCommand.ts
create mode 100644 clients/client-fis/src/commands/GetTargetAccountConfigurationCommand.ts
create mode 100644 clients/client-fis/src/commands/ListExperimentResolvedTargetsCommand.ts
create mode 100644 clients/client-fis/src/commands/ListExperimentTargetAccountConfigurationsCommand.ts
create mode 100644 clients/client-fis/src/commands/ListTargetAccountConfigurationsCommand.ts
create mode 100644 clients/client-fis/src/commands/UpdateTargetAccountConfigurationCommand.ts
create mode 100644 clients/client-fis/src/pagination/ListExperimentResolvedTargetsPaginator.ts
create mode 100644 clients/client-fis/src/pagination/ListTargetAccountConfigurationsPaginator.ts
diff --git a/clients/client-fis/README.md b/clients/client-fis/README.md
index 41e8444ce330b..a8cc4a067c157 100644
--- a/clients/client-fis/README.md
+++ b/clients/client-fis/README.md
@@ -211,6 +211,14 @@ CreateExperimentTemplate
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/fis/command/CreateExperimentTemplateCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/CreateExperimentTemplateCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/CreateExperimentTemplateCommandOutput/)
+
+
+
+CreateTargetAccountConfiguration
+
+
+[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/fis/command/CreateTargetAccountConfigurationCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/CreateTargetAccountConfigurationCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/CreateTargetAccountConfigurationCommandOutput/)
+
@@ -219,6 +227,14 @@ DeleteExperimentTemplate
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/fis/command/DeleteExperimentTemplateCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/DeleteExperimentTemplateCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/DeleteExperimentTemplateCommandOutput/)
+
+
+
+DeleteTargetAccountConfiguration
+
+
+[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/fis/command/DeleteTargetAccountConfigurationCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/DeleteTargetAccountConfigurationCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/DeleteTargetAccountConfigurationCommandOutput/)
+
@@ -235,6 +251,14 @@ GetExperiment
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/fis/command/GetExperimentCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/GetExperimentCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/GetExperimentCommandOutput/)
+
+
+
+GetExperimentTargetAccountConfiguration
+
+
+[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/fis/command/GetExperimentTargetAccountConfigurationCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/GetExperimentTargetAccountConfigurationCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/GetExperimentTargetAccountConfigurationCommandOutput/)
+
@@ -243,6 +267,14 @@ GetExperimentTemplate
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/fis/command/GetExperimentTemplateCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/GetExperimentTemplateCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/GetExperimentTemplateCommandOutput/)
+
+
+
+GetTargetAccountConfiguration
+
+
+[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/fis/command/GetTargetAccountConfigurationCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/GetTargetAccountConfigurationCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/GetTargetAccountConfigurationCommandOutput/)
+
@@ -259,6 +291,14 @@ ListActions
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/fis/command/ListActionsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/ListActionsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/ListActionsCommandOutput/)
+
+
+
+ListExperimentResolvedTargets
+
+
+[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/fis/command/ListExperimentResolvedTargetsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/ListExperimentResolvedTargetsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/ListExperimentResolvedTargetsCommandOutput/)
+
@@ -267,6 +307,14 @@ ListExperiments
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/fis/command/ListExperimentsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/ListExperimentsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/ListExperimentsCommandOutput/)
+
+
+
+ListExperimentTargetAccountConfigurations
+
+
+[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/fis/command/ListExperimentTargetAccountConfigurationsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/ListExperimentTargetAccountConfigurationsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/ListExperimentTargetAccountConfigurationsCommandOutput/)
+
@@ -283,6 +331,14 @@ ListTagsForResource
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/fis/command/ListTagsForResourceCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/ListTagsForResourceCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/ListTagsForResourceCommandOutput/)
+
+
+
+ListTargetAccountConfigurations
+
+
+[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/fis/command/ListTargetAccountConfigurationsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/ListTargetAccountConfigurationsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/ListTargetAccountConfigurationsCommandOutput/)
+
@@ -332,3 +388,11 @@ UpdateExperimentTemplate
[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/fis/command/UpdateExperimentTemplateCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/UpdateExperimentTemplateCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/UpdateExperimentTemplateCommandOutput/)
+
+
+UpdateTargetAccountConfiguration
+
+
+[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/fis/command/UpdateTargetAccountConfigurationCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/UpdateTargetAccountConfigurationCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-fis/Interface/UpdateTargetAccountConfigurationCommandOutput/)
+
+
diff --git a/clients/client-fis/src/Fis.ts b/clients/client-fis/src/Fis.ts
index 84155338bae4d..695e2ccccfff8 100644
--- a/clients/client-fis/src/Fis.ts
+++ b/clients/client-fis/src/Fis.ts
@@ -7,33 +7,63 @@ import {
CreateExperimentTemplateCommandInput,
CreateExperimentTemplateCommandOutput,
} from "./commands/CreateExperimentTemplateCommand";
+import {
+ CreateTargetAccountConfigurationCommand,
+ CreateTargetAccountConfigurationCommandInput,
+ CreateTargetAccountConfigurationCommandOutput,
+} from "./commands/CreateTargetAccountConfigurationCommand";
import {
DeleteExperimentTemplateCommand,
DeleteExperimentTemplateCommandInput,
DeleteExperimentTemplateCommandOutput,
} from "./commands/DeleteExperimentTemplateCommand";
+import {
+ DeleteTargetAccountConfigurationCommand,
+ DeleteTargetAccountConfigurationCommandInput,
+ DeleteTargetAccountConfigurationCommandOutput,
+} from "./commands/DeleteTargetAccountConfigurationCommand";
import { GetActionCommand, GetActionCommandInput, GetActionCommandOutput } from "./commands/GetActionCommand";
import {
GetExperimentCommand,
GetExperimentCommandInput,
GetExperimentCommandOutput,
} from "./commands/GetExperimentCommand";
+import {
+ GetExperimentTargetAccountConfigurationCommand,
+ GetExperimentTargetAccountConfigurationCommandInput,
+ GetExperimentTargetAccountConfigurationCommandOutput,
+} from "./commands/GetExperimentTargetAccountConfigurationCommand";
import {
GetExperimentTemplateCommand,
GetExperimentTemplateCommandInput,
GetExperimentTemplateCommandOutput,
} from "./commands/GetExperimentTemplateCommand";
+import {
+ GetTargetAccountConfigurationCommand,
+ GetTargetAccountConfigurationCommandInput,
+ GetTargetAccountConfigurationCommandOutput,
+} from "./commands/GetTargetAccountConfigurationCommand";
import {
GetTargetResourceTypeCommand,
GetTargetResourceTypeCommandInput,
GetTargetResourceTypeCommandOutput,
} from "./commands/GetTargetResourceTypeCommand";
import { ListActionsCommand, ListActionsCommandInput, ListActionsCommandOutput } from "./commands/ListActionsCommand";
+import {
+ ListExperimentResolvedTargetsCommand,
+ ListExperimentResolvedTargetsCommandInput,
+ ListExperimentResolvedTargetsCommandOutput,
+} from "./commands/ListExperimentResolvedTargetsCommand";
import {
ListExperimentsCommand,
ListExperimentsCommandInput,
ListExperimentsCommandOutput,
} from "./commands/ListExperimentsCommand";
+import {
+ ListExperimentTargetAccountConfigurationsCommand,
+ ListExperimentTargetAccountConfigurationsCommandInput,
+ ListExperimentTargetAccountConfigurationsCommandOutput,
+} from "./commands/ListExperimentTargetAccountConfigurationsCommand";
import {
ListExperimentTemplatesCommand,
ListExperimentTemplatesCommandInput,
@@ -44,6 +74,11 @@ import {
ListTagsForResourceCommandInput,
ListTagsForResourceCommandOutput,
} from "./commands/ListTagsForResourceCommand";
+import {
+ ListTargetAccountConfigurationsCommand,
+ ListTargetAccountConfigurationsCommandInput,
+ ListTargetAccountConfigurationsCommandOutput,
+} from "./commands/ListTargetAccountConfigurationsCommand";
import {
ListTargetResourceTypesCommand,
ListTargetResourceTypesCommandInput,
@@ -70,25 +105,38 @@ import {
UpdateExperimentTemplateCommandInput,
UpdateExperimentTemplateCommandOutput,
} from "./commands/UpdateExperimentTemplateCommand";
+import {
+ UpdateTargetAccountConfigurationCommand,
+ UpdateTargetAccountConfigurationCommandInput,
+ UpdateTargetAccountConfigurationCommandOutput,
+} from "./commands/UpdateTargetAccountConfigurationCommand";
import { FisClient, FisClientConfig } from "./FisClient";
const commands = {
CreateExperimentTemplateCommand,
+ CreateTargetAccountConfigurationCommand,
DeleteExperimentTemplateCommand,
+ DeleteTargetAccountConfigurationCommand,
GetActionCommand,
GetExperimentCommand,
+ GetExperimentTargetAccountConfigurationCommand,
GetExperimentTemplateCommand,
+ GetTargetAccountConfigurationCommand,
GetTargetResourceTypeCommand,
ListActionsCommand,
+ ListExperimentResolvedTargetsCommand,
ListExperimentsCommand,
+ ListExperimentTargetAccountConfigurationsCommand,
ListExperimentTemplatesCommand,
ListTagsForResourceCommand,
+ ListTargetAccountConfigurationsCommand,
ListTargetResourceTypesCommand,
StartExperimentCommand,
StopExperimentCommand,
TagResourceCommand,
UntagResourceCommand,
UpdateExperimentTemplateCommand,
+ UpdateTargetAccountConfigurationCommand,
};
export interface Fis {
@@ -109,6 +157,23 @@ export interface Fis {
cb: (err: any, data?: CreateExperimentTemplateCommandOutput) => void
): void;
+ /**
+ * @see {@link CreateTargetAccountConfigurationCommand}
+ */
+ createTargetAccountConfiguration(
+ args: CreateTargetAccountConfigurationCommandInput,
+ options?: __HttpHandlerOptions
+ ): Promise;
+ createTargetAccountConfiguration(
+ args: CreateTargetAccountConfigurationCommandInput,
+ cb: (err: any, data?: CreateTargetAccountConfigurationCommandOutput) => void
+ ): void;
+ createTargetAccountConfiguration(
+ args: CreateTargetAccountConfigurationCommandInput,
+ options: __HttpHandlerOptions,
+ cb: (err: any, data?: CreateTargetAccountConfigurationCommandOutput) => void
+ ): void;
+
/**
* @see {@link DeleteExperimentTemplateCommand}
*/
@@ -126,6 +191,23 @@ export interface Fis {
cb: (err: any, data?: DeleteExperimentTemplateCommandOutput) => void
): void;
+ /**
+ * @see {@link DeleteTargetAccountConfigurationCommand}
+ */
+ deleteTargetAccountConfiguration(
+ args: DeleteTargetAccountConfigurationCommandInput,
+ options?: __HttpHandlerOptions
+ ): Promise;
+ deleteTargetAccountConfiguration(
+ args: DeleteTargetAccountConfigurationCommandInput,
+ cb: (err: any, data?: DeleteTargetAccountConfigurationCommandOutput) => void
+ ): void;
+ deleteTargetAccountConfiguration(
+ args: DeleteTargetAccountConfigurationCommandInput,
+ options: __HttpHandlerOptions,
+ cb: (err: any, data?: DeleteTargetAccountConfigurationCommandOutput) => void
+ ): void;
+
/**
* @see {@link GetActionCommand}
*/
@@ -148,6 +230,23 @@ export interface Fis {
cb: (err: any, data?: GetExperimentCommandOutput) => void
): void;
+ /**
+ * @see {@link GetExperimentTargetAccountConfigurationCommand}
+ */
+ getExperimentTargetAccountConfiguration(
+ args: GetExperimentTargetAccountConfigurationCommandInput,
+ options?: __HttpHandlerOptions
+ ): Promise;
+ getExperimentTargetAccountConfiguration(
+ args: GetExperimentTargetAccountConfigurationCommandInput,
+ cb: (err: any, data?: GetExperimentTargetAccountConfigurationCommandOutput) => void
+ ): void;
+ getExperimentTargetAccountConfiguration(
+ args: GetExperimentTargetAccountConfigurationCommandInput,
+ options: __HttpHandlerOptions,
+ cb: (err: any, data?: GetExperimentTargetAccountConfigurationCommandOutput) => void
+ ): void;
+
/**
* @see {@link GetExperimentTemplateCommand}
*/
@@ -165,6 +264,23 @@ export interface Fis {
cb: (err: any, data?: GetExperimentTemplateCommandOutput) => void
): void;
+ /**
+ * @see {@link GetTargetAccountConfigurationCommand}
+ */
+ getTargetAccountConfiguration(
+ args: GetTargetAccountConfigurationCommandInput,
+ options?: __HttpHandlerOptions
+ ): Promise;
+ getTargetAccountConfiguration(
+ args: GetTargetAccountConfigurationCommandInput,
+ cb: (err: any, data?: GetTargetAccountConfigurationCommandOutput) => void
+ ): void;
+ getTargetAccountConfiguration(
+ args: GetTargetAccountConfigurationCommandInput,
+ options: __HttpHandlerOptions,
+ cb: (err: any, data?: GetTargetAccountConfigurationCommandOutput) => void
+ ): void;
+
/**
* @see {@link GetTargetResourceTypeCommand}
*/
@@ -193,6 +309,23 @@ export interface Fis {
cb: (err: any, data?: ListActionsCommandOutput) => void
): void;
+ /**
+ * @see {@link ListExperimentResolvedTargetsCommand}
+ */
+ listExperimentResolvedTargets(
+ args: ListExperimentResolvedTargetsCommandInput,
+ options?: __HttpHandlerOptions
+ ): Promise;
+ listExperimentResolvedTargets(
+ args: ListExperimentResolvedTargetsCommandInput,
+ cb: (err: any, data?: ListExperimentResolvedTargetsCommandOutput) => void
+ ): void;
+ listExperimentResolvedTargets(
+ args: ListExperimentResolvedTargetsCommandInput,
+ options: __HttpHandlerOptions,
+ cb: (err: any, data?: ListExperimentResolvedTargetsCommandOutput) => void
+ ): void;
+
/**
* @see {@link ListExperimentsCommand}
*/
@@ -207,6 +340,23 @@ export interface Fis {
cb: (err: any, data?: ListExperimentsCommandOutput) => void
): void;
+ /**
+ * @see {@link ListExperimentTargetAccountConfigurationsCommand}
+ */
+ listExperimentTargetAccountConfigurations(
+ args: ListExperimentTargetAccountConfigurationsCommandInput,
+ options?: __HttpHandlerOptions
+ ): Promise;
+ listExperimentTargetAccountConfigurations(
+ args: ListExperimentTargetAccountConfigurationsCommandInput,
+ cb: (err: any, data?: ListExperimentTargetAccountConfigurationsCommandOutput) => void
+ ): void;
+ listExperimentTargetAccountConfigurations(
+ args: ListExperimentTargetAccountConfigurationsCommandInput,
+ options: __HttpHandlerOptions,
+ cb: (err: any, data?: ListExperimentTargetAccountConfigurationsCommandOutput) => void
+ ): void;
+
/**
* @see {@link ListExperimentTemplatesCommand}
*/
@@ -241,6 +391,23 @@ export interface Fis {
cb: (err: any, data?: ListTagsForResourceCommandOutput) => void
): void;
+ /**
+ * @see {@link ListTargetAccountConfigurationsCommand}
+ */
+ listTargetAccountConfigurations(
+ args: ListTargetAccountConfigurationsCommandInput,
+ options?: __HttpHandlerOptions
+ ): Promise;
+ listTargetAccountConfigurations(
+ args: ListTargetAccountConfigurationsCommandInput,
+ cb: (err: any, data?: ListTargetAccountConfigurationsCommandOutput) => void
+ ): void;
+ listTargetAccountConfigurations(
+ args: ListTargetAccountConfigurationsCommandInput,
+ options: __HttpHandlerOptions,
+ cb: (err: any, data?: ListTargetAccountConfigurationsCommandOutput) => void
+ ): void;
+
/**
* @see {@link ListTargetResourceTypesCommand}
*/
@@ -324,6 +491,23 @@ export interface Fis {
options: __HttpHandlerOptions,
cb: (err: any, data?: UpdateExperimentTemplateCommandOutput) => void
): void;
+
+ /**
+ * @see {@link UpdateTargetAccountConfigurationCommand}
+ */
+ updateTargetAccountConfiguration(
+ args: UpdateTargetAccountConfigurationCommandInput,
+ options?: __HttpHandlerOptions
+ ): Promise;
+ updateTargetAccountConfiguration(
+ args: UpdateTargetAccountConfigurationCommandInput,
+ cb: (err: any, data?: UpdateTargetAccountConfigurationCommandOutput) => void
+ ): void;
+ updateTargetAccountConfiguration(
+ args: UpdateTargetAccountConfigurationCommandInput,
+ options: __HttpHandlerOptions,
+ cb: (err: any, data?: UpdateTargetAccountConfigurationCommandOutput) => void
+ ): void;
}
/**
diff --git a/clients/client-fis/src/FisClient.ts b/clients/client-fis/src/FisClient.ts
index cf759295b9c46..12af665011ba0 100644
--- a/clients/client-fis/src/FisClient.ts
+++ b/clients/client-fis/src/FisClient.ts
@@ -54,22 +54,46 @@ import {
CreateExperimentTemplateCommandInput,
CreateExperimentTemplateCommandOutput,
} from "./commands/CreateExperimentTemplateCommand";
+import {
+ CreateTargetAccountConfigurationCommandInput,
+ CreateTargetAccountConfigurationCommandOutput,
+} from "./commands/CreateTargetAccountConfigurationCommand";
import {
DeleteExperimentTemplateCommandInput,
DeleteExperimentTemplateCommandOutput,
} from "./commands/DeleteExperimentTemplateCommand";
+import {
+ DeleteTargetAccountConfigurationCommandInput,
+ DeleteTargetAccountConfigurationCommandOutput,
+} from "./commands/DeleteTargetAccountConfigurationCommand";
import { GetActionCommandInput, GetActionCommandOutput } from "./commands/GetActionCommand";
import { GetExperimentCommandInput, GetExperimentCommandOutput } from "./commands/GetExperimentCommand";
+import {
+ GetExperimentTargetAccountConfigurationCommandInput,
+ GetExperimentTargetAccountConfigurationCommandOutput,
+} from "./commands/GetExperimentTargetAccountConfigurationCommand";
import {
GetExperimentTemplateCommandInput,
GetExperimentTemplateCommandOutput,
} from "./commands/GetExperimentTemplateCommand";
+import {
+ GetTargetAccountConfigurationCommandInput,
+ GetTargetAccountConfigurationCommandOutput,
+} from "./commands/GetTargetAccountConfigurationCommand";
import {
GetTargetResourceTypeCommandInput,
GetTargetResourceTypeCommandOutput,
} from "./commands/GetTargetResourceTypeCommand";
import { ListActionsCommandInput, ListActionsCommandOutput } from "./commands/ListActionsCommand";
+import {
+ ListExperimentResolvedTargetsCommandInput,
+ ListExperimentResolvedTargetsCommandOutput,
+} from "./commands/ListExperimentResolvedTargetsCommand";
import { ListExperimentsCommandInput, ListExperimentsCommandOutput } from "./commands/ListExperimentsCommand";
+import {
+ ListExperimentTargetAccountConfigurationsCommandInput,
+ ListExperimentTargetAccountConfigurationsCommandOutput,
+} from "./commands/ListExperimentTargetAccountConfigurationsCommand";
import {
ListExperimentTemplatesCommandInput,
ListExperimentTemplatesCommandOutput,
@@ -78,6 +102,10 @@ import {
ListTagsForResourceCommandInput,
ListTagsForResourceCommandOutput,
} from "./commands/ListTagsForResourceCommand";
+import {
+ ListTargetAccountConfigurationsCommandInput,
+ ListTargetAccountConfigurationsCommandOutput,
+} from "./commands/ListTargetAccountConfigurationsCommand";
import {
ListTargetResourceTypesCommandInput,
ListTargetResourceTypesCommandOutput,
@@ -90,6 +118,10 @@ import {
UpdateExperimentTemplateCommandInput,
UpdateExperimentTemplateCommandOutput,
} from "./commands/UpdateExperimentTemplateCommand";
+import {
+ UpdateTargetAccountConfigurationCommandInput,
+ UpdateTargetAccountConfigurationCommandOutput,
+} from "./commands/UpdateTargetAccountConfigurationCommand";
import {
ClientInputEndpointParameters,
ClientResolvedEndpointParameters,
@@ -106,42 +138,58 @@ export { __Client };
*/
export type ServiceInputTypes =
| CreateExperimentTemplateCommandInput
+ | CreateTargetAccountConfigurationCommandInput
| DeleteExperimentTemplateCommandInput
+ | DeleteTargetAccountConfigurationCommandInput
| GetActionCommandInput
| GetExperimentCommandInput
+ | GetExperimentTargetAccountConfigurationCommandInput
| GetExperimentTemplateCommandInput
+ | GetTargetAccountConfigurationCommandInput
| GetTargetResourceTypeCommandInput
| ListActionsCommandInput
+ | ListExperimentResolvedTargetsCommandInput
+ | ListExperimentTargetAccountConfigurationsCommandInput
| ListExperimentTemplatesCommandInput
| ListExperimentsCommandInput
| ListTagsForResourceCommandInput
+ | ListTargetAccountConfigurationsCommandInput
| ListTargetResourceTypesCommandInput
| StartExperimentCommandInput
| StopExperimentCommandInput
| TagResourceCommandInput
| UntagResourceCommandInput
- | UpdateExperimentTemplateCommandInput;
+ | UpdateExperimentTemplateCommandInput
+ | UpdateTargetAccountConfigurationCommandInput;
/**
* @public
*/
export type ServiceOutputTypes =
| CreateExperimentTemplateCommandOutput
+ | CreateTargetAccountConfigurationCommandOutput
| DeleteExperimentTemplateCommandOutput
+ | DeleteTargetAccountConfigurationCommandOutput
| GetActionCommandOutput
| GetExperimentCommandOutput
+ | GetExperimentTargetAccountConfigurationCommandOutput
| GetExperimentTemplateCommandOutput
+ | GetTargetAccountConfigurationCommandOutput
| GetTargetResourceTypeCommandOutput
| ListActionsCommandOutput
+ | ListExperimentResolvedTargetsCommandOutput
+ | ListExperimentTargetAccountConfigurationsCommandOutput
| ListExperimentTemplatesCommandOutput
| ListExperimentsCommandOutput
| ListTagsForResourceCommandOutput
+ | ListTargetAccountConfigurationsCommandOutput
| ListTargetResourceTypesCommandOutput
| StartExperimentCommandOutput
| StopExperimentCommandOutput
| TagResourceCommandOutput
| UntagResourceCommandOutput
- | UpdateExperimentTemplateCommandOutput;
+ | UpdateExperimentTemplateCommandOutput
+ | UpdateTargetAccountConfigurationCommandOutput;
/**
* @public
diff --git a/clients/client-fis/src/commands/CreateExperimentTemplateCommand.ts b/clients/client-fis/src/commands/CreateExperimentTemplateCommand.ts
index 04f140bce8502..39d81fcf8b3ea 100644
--- a/clients/client-fis/src/commands/CreateExperimentTemplateCommand.ts
+++ b/clients/client-fis/src/commands/CreateExperimentTemplateCommand.ts
@@ -58,7 +58,7 @@ export interface CreateExperimentTemplateCommandOutput extends CreateExperimentT
* stopped. You can define a stop condition as a CloudWatch alarm.
*
*
- * For more information, see Experiment templates
+ *
For more information, see experiment templates
* in the Fault Injection Simulator User Guide.
* @example
* Use a bare-bones client and the command you need to make an API call.
@@ -127,6 +127,10 @@ export interface CreateExperimentTemplateCommandOutput extends CreateExperimentT
* },
* logSchemaVersion: Number("int"), // required
* },
+ * experimentOptions: { // CreateExperimentTemplateExperimentOptionsInput
+ * accountTargeting: "single-account" || "multi-account",
+ * emptyTargetResolutionMode: "fail" || "skip",
+ * },
* };
* const command = new CreateExperimentTemplateCommand(input);
* const response = await client.send(command);
@@ -194,6 +198,11 @@ export interface CreateExperimentTemplateCommandOutput extends CreateExperimentT
* // },
* // logSchemaVersion: Number("int"),
* // },
+ * // experimentOptions: { // ExperimentTemplateExperimentOptions
+ * // accountTargeting: "single-account" || "multi-account",
+ * // emptyTargetResolutionMode: "fail" || "skip",
+ * // },
+ * // targetAccountConfigurationsCount: Number("long"),
* // },
* // };
*
diff --git a/clients/client-fis/src/commands/CreateTargetAccountConfigurationCommand.ts b/clients/client-fis/src/commands/CreateTargetAccountConfigurationCommand.ts
new file mode 100644
index 0000000000000..199da4e581799
--- /dev/null
+++ b/clients/client-fis/src/commands/CreateTargetAccountConfigurationCommand.ts
@@ -0,0 +1,174 @@
+// smithy-typescript generated code
+import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint";
+import { getSerdePlugin } from "@smithy/middleware-serde";
+import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http";
+import { Command as $Command } from "@smithy/smithy-client";
+import {
+ FinalizeHandlerArguments,
+ Handler,
+ HandlerExecutionContext,
+ HttpHandlerOptions as __HttpHandlerOptions,
+ MetadataBearer as __MetadataBearer,
+ MiddlewareStack,
+ SerdeContext as __SerdeContext,
+ SMITHY_CONTEXT_KEY,
+} from "@smithy/types";
+
+import { FisClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../FisClient";
+import { CreateTargetAccountConfigurationRequest, CreateTargetAccountConfigurationResponse } from "../models/models_0";
+import {
+ de_CreateTargetAccountConfigurationCommand,
+ se_CreateTargetAccountConfigurationCommand,
+} from "../protocols/Aws_restJson1";
+
+/**
+ * @public
+ */
+export { __MetadataBearer, $Command };
+/**
+ * @public
+ *
+ * The input for {@link CreateTargetAccountConfigurationCommand}.
+ */
+export interface CreateTargetAccountConfigurationCommandInput extends CreateTargetAccountConfigurationRequest {}
+/**
+ * @public
+ *
+ * The output of {@link CreateTargetAccountConfigurationCommand}.
+ */
+export interface CreateTargetAccountConfigurationCommandOutput
+ extends CreateTargetAccountConfigurationResponse,
+ __MetadataBearer {}
+
+/**
+ * @public
+ * Creates a target account configuration for the experiment template. A target account configuration
+ * is required when accountTargeting
of experimentOptions
is set to multi-account
.
+ * For more information, see experiment options
+ * in the Fault Injection Simulator User Guide.
+ *
+ * @example
+ * Use a bare-bones client and the command you need to make an API call.
+ * ```javascript
+ * import { FisClient, CreateTargetAccountConfigurationCommand } from "@aws-sdk/client-fis"; // ES Modules import
+ * // const { FisClient, CreateTargetAccountConfigurationCommand } = require("@aws-sdk/client-fis"); // CommonJS import
+ * const client = new FisClient(config);
+ * const input = { // CreateTargetAccountConfigurationRequest
+ * clientToken: "STRING_VALUE",
+ * experimentTemplateId: "STRING_VALUE", // required
+ * accountId: "STRING_VALUE", // required
+ * roleArn: "STRING_VALUE", // required
+ * description: "STRING_VALUE",
+ * };
+ * const command = new CreateTargetAccountConfigurationCommand(input);
+ * const response = await client.send(command);
+ * // { // CreateTargetAccountConfigurationResponse
+ * // targetAccountConfiguration: { // TargetAccountConfiguration
+ * // roleArn: "STRING_VALUE",
+ * // accountId: "STRING_VALUE",
+ * // description: "STRING_VALUE",
+ * // },
+ * // };
+ *
+ * ```
+ *
+ * @param CreateTargetAccountConfigurationCommandInput - {@link CreateTargetAccountConfigurationCommandInput}
+ * @returns {@link CreateTargetAccountConfigurationCommandOutput}
+ * @see {@link CreateTargetAccountConfigurationCommandInput} for command's `input` shape.
+ * @see {@link CreateTargetAccountConfigurationCommandOutput} for command's `response` shape.
+ * @see {@link FisClientResolvedConfig | config} for FisClient's `config` shape.
+ *
+ * @throws {@link ConflictException} (client fault)
+ * The request could not be processed because of a conflict.
+ *
+ * @throws {@link ResourceNotFoundException} (client fault)
+ * The specified resource cannot be found.
+ *
+ * @throws {@link ServiceQuotaExceededException} (client fault)
+ * You have exceeded your service quota.
+ *
+ * @throws {@link ValidationException} (client fault)
+ * The specified input is not valid, or fails to satisfy the constraints for the request.
+ *
+ * @throws {@link FisServiceException}
+ * Base exception class for all service exceptions from Fis service.
+ *
+ */
+export class CreateTargetAccountConfigurationCommand extends $Command<
+ CreateTargetAccountConfigurationCommandInput,
+ CreateTargetAccountConfigurationCommandOutput,
+ FisClientResolvedConfig
+> {
+ public static getEndpointParameterInstructions(): EndpointParameterInstructions {
+ return {
+ UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
+ Endpoint: { type: "builtInParams", name: "endpoint" },
+ Region: { type: "builtInParams", name: "region" },
+ UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
+ };
+ }
+
+ /**
+ * @public
+ */
+ constructor(readonly input: CreateTargetAccountConfigurationCommandInput) {
+ super();
+ }
+
+ /**
+ * @internal
+ */
+ resolveMiddleware(
+ clientStack: MiddlewareStack,
+ configuration: FisClientResolvedConfig,
+ options?: __HttpHandlerOptions
+ ): Handler {
+ this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
+ this.middlewareStack.use(
+ getEndpointPlugin(configuration, CreateTargetAccountConfigurationCommand.getEndpointParameterInstructions())
+ );
+
+ const stack = clientStack.concat(this.middlewareStack);
+
+ const { logger } = configuration;
+ const clientName = "FisClient";
+ const commandName = "CreateTargetAccountConfigurationCommand";
+ const handlerExecutionContext: HandlerExecutionContext = {
+ logger,
+ clientName,
+ commandName,
+ inputFilterSensitiveLog: (_: any) => _,
+ outputFilterSensitiveLog: (_: any) => _,
+ [SMITHY_CONTEXT_KEY]: {
+ service: "FaultInjectionSimulator",
+ operation: "CreateTargetAccountConfiguration",
+ },
+ };
+ const { requestHandler } = configuration;
+ return stack.resolve(
+ (request: FinalizeHandlerArguments) =>
+ requestHandler.handle(request.request as __HttpRequest, options || {}),
+ handlerExecutionContext
+ );
+ }
+
+ /**
+ * @internal
+ */
+ private serialize(
+ input: CreateTargetAccountConfigurationCommandInput,
+ context: __SerdeContext
+ ): Promise<__HttpRequest> {
+ return se_CreateTargetAccountConfigurationCommand(input, context);
+ }
+
+ /**
+ * @internal
+ */
+ private deserialize(
+ output: __HttpResponse,
+ context: __SerdeContext
+ ): Promise {
+ return de_CreateTargetAccountConfigurationCommand(output, context);
+ }
+}
diff --git a/clients/client-fis/src/commands/DeleteExperimentTemplateCommand.ts b/clients/client-fis/src/commands/DeleteExperimentTemplateCommand.ts
index 3005f6d5222cb..daf76290e990d 100644
--- a/clients/client-fis/src/commands/DeleteExperimentTemplateCommand.ts
+++ b/clients/client-fis/src/commands/DeleteExperimentTemplateCommand.ts
@@ -113,6 +113,11 @@ export interface DeleteExperimentTemplateCommandOutput extends DeleteExperimentT
* // },
* // logSchemaVersion: Number("int"),
* // },
+ * // experimentOptions: { // ExperimentTemplateExperimentOptions
+ * // accountTargeting: "single-account" || "multi-account",
+ * // emptyTargetResolutionMode: "fail" || "skip",
+ * // },
+ * // targetAccountConfigurationsCount: Number("long"),
* // },
* // };
*
diff --git a/clients/client-fis/src/commands/DeleteTargetAccountConfigurationCommand.ts b/clients/client-fis/src/commands/DeleteTargetAccountConfigurationCommand.ts
new file mode 100644
index 0000000000000..86e236165b159
--- /dev/null
+++ b/clients/client-fis/src/commands/DeleteTargetAccountConfigurationCommand.ts
@@ -0,0 +1,161 @@
+// smithy-typescript generated code
+import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint";
+import { getSerdePlugin } from "@smithy/middleware-serde";
+import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http";
+import { Command as $Command } from "@smithy/smithy-client";
+import {
+ FinalizeHandlerArguments,
+ Handler,
+ HandlerExecutionContext,
+ HttpHandlerOptions as __HttpHandlerOptions,
+ MetadataBearer as __MetadataBearer,
+ MiddlewareStack,
+ SerdeContext as __SerdeContext,
+ SMITHY_CONTEXT_KEY,
+} from "@smithy/types";
+
+import { FisClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../FisClient";
+import { DeleteTargetAccountConfigurationRequest, DeleteTargetAccountConfigurationResponse } from "../models/models_0";
+import {
+ de_DeleteTargetAccountConfigurationCommand,
+ se_DeleteTargetAccountConfigurationCommand,
+} from "../protocols/Aws_restJson1";
+
+/**
+ * @public
+ */
+export { __MetadataBearer, $Command };
+/**
+ * @public
+ *
+ * The input for {@link DeleteTargetAccountConfigurationCommand}.
+ */
+export interface DeleteTargetAccountConfigurationCommandInput extends DeleteTargetAccountConfigurationRequest {}
+/**
+ * @public
+ *
+ * The output of {@link DeleteTargetAccountConfigurationCommand}.
+ */
+export interface DeleteTargetAccountConfigurationCommandOutput
+ extends DeleteTargetAccountConfigurationResponse,
+ __MetadataBearer {}
+
+/**
+ * @public
+ * Deletes the specified target account configuration of the experiment template.
+ * @example
+ * Use a bare-bones client and the command you need to make an API call.
+ * ```javascript
+ * import { FisClient, DeleteTargetAccountConfigurationCommand } from "@aws-sdk/client-fis"; // ES Modules import
+ * // const { FisClient, DeleteTargetAccountConfigurationCommand } = require("@aws-sdk/client-fis"); // CommonJS import
+ * const client = new FisClient(config);
+ * const input = { // DeleteTargetAccountConfigurationRequest
+ * experimentTemplateId: "STRING_VALUE", // required
+ * accountId: "STRING_VALUE", // required
+ * };
+ * const command = new DeleteTargetAccountConfigurationCommand(input);
+ * const response = await client.send(command);
+ * // { // DeleteTargetAccountConfigurationResponse
+ * // targetAccountConfiguration: { // TargetAccountConfiguration
+ * // roleArn: "STRING_VALUE",
+ * // accountId: "STRING_VALUE",
+ * // description: "STRING_VALUE",
+ * // },
+ * // };
+ *
+ * ```
+ *
+ * @param DeleteTargetAccountConfigurationCommandInput - {@link DeleteTargetAccountConfigurationCommandInput}
+ * @returns {@link DeleteTargetAccountConfigurationCommandOutput}
+ * @see {@link DeleteTargetAccountConfigurationCommandInput} for command's `input` shape.
+ * @see {@link DeleteTargetAccountConfigurationCommandOutput} for command's `response` shape.
+ * @see {@link FisClientResolvedConfig | config} for FisClient's `config` shape.
+ *
+ * @throws {@link ResourceNotFoundException} (client fault)
+ * The specified resource cannot be found.
+ *
+ * @throws {@link ValidationException} (client fault)
+ * The specified input is not valid, or fails to satisfy the constraints for the request.
+ *
+ * @throws {@link FisServiceException}
+ * Base exception class for all service exceptions from Fis service.
+ *
+ */
+export class DeleteTargetAccountConfigurationCommand extends $Command<
+ DeleteTargetAccountConfigurationCommandInput,
+ DeleteTargetAccountConfigurationCommandOutput,
+ FisClientResolvedConfig
+> {
+ public static getEndpointParameterInstructions(): EndpointParameterInstructions {
+ return {
+ UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
+ Endpoint: { type: "builtInParams", name: "endpoint" },
+ Region: { type: "builtInParams", name: "region" },
+ UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
+ };
+ }
+
+ /**
+ * @public
+ */
+ constructor(readonly input: DeleteTargetAccountConfigurationCommandInput) {
+ super();
+ }
+
+ /**
+ * @internal
+ */
+ resolveMiddleware(
+ clientStack: MiddlewareStack,
+ configuration: FisClientResolvedConfig,
+ options?: __HttpHandlerOptions
+ ): Handler {
+ this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
+ this.middlewareStack.use(
+ getEndpointPlugin(configuration, DeleteTargetAccountConfigurationCommand.getEndpointParameterInstructions())
+ );
+
+ const stack = clientStack.concat(this.middlewareStack);
+
+ const { logger } = configuration;
+ const clientName = "FisClient";
+ const commandName = "DeleteTargetAccountConfigurationCommand";
+ const handlerExecutionContext: HandlerExecutionContext = {
+ logger,
+ clientName,
+ commandName,
+ inputFilterSensitiveLog: (_: any) => _,
+ outputFilterSensitiveLog: (_: any) => _,
+ [SMITHY_CONTEXT_KEY]: {
+ service: "FaultInjectionSimulator",
+ operation: "DeleteTargetAccountConfiguration",
+ },
+ };
+ const { requestHandler } = configuration;
+ return stack.resolve(
+ (request: FinalizeHandlerArguments) =>
+ requestHandler.handle(request.request as __HttpRequest, options || {}),
+ handlerExecutionContext
+ );
+ }
+
+ /**
+ * @internal
+ */
+ private serialize(
+ input: DeleteTargetAccountConfigurationCommandInput,
+ context: __SerdeContext
+ ): Promise<__HttpRequest> {
+ return se_DeleteTargetAccountConfigurationCommand(input, context);
+ }
+
+ /**
+ * @internal
+ */
+ private deserialize(
+ output: __HttpResponse,
+ context: __SerdeContext
+ ): Promise {
+ return de_DeleteTargetAccountConfigurationCommand(output, context);
+ }
+}
diff --git a/clients/client-fis/src/commands/GetExperimentCommand.ts b/clients/client-fis/src/commands/GetExperimentCommand.ts
index 0c69b61e3bc8c..b628e9cf53c7d 100644
--- a/clients/client-fis/src/commands/GetExperimentCommand.ts
+++ b/clients/client-fis/src/commands/GetExperimentCommand.ts
@@ -95,7 +95,7 @@ export interface GetExperimentCommandOutput extends GetExperimentResponse, __Met
* // "STRING_VALUE",
* // ],
* // state: { // ExperimentActionState
- * // status: "pending" || "initiating" || "running" || "completed" || "cancelled" || "stopping" || "stopped" || "failed",
+ * // status: "pending" || "initiating" || "running" || "completed" || "cancelled" || "stopping" || "stopped" || "failed" || "skipped",
* // reason: "STRING_VALUE",
* // },
* // startTime: new Date("TIMESTAMP"),
@@ -124,6 +124,11 @@ export interface GetExperimentCommandOutput extends GetExperimentResponse, __Met
* // },
* // logSchemaVersion: Number("int"),
* // },
+ * // experimentOptions: { // ExperimentOptions
+ * // accountTargeting: "single-account" || "multi-account",
+ * // emptyTargetResolutionMode: "fail" || "skip",
+ * // },
+ * // targetAccountConfigurationsCount: Number("long"),
* // },
* // };
*
diff --git a/clients/client-fis/src/commands/GetExperimentTargetAccountConfigurationCommand.ts b/clients/client-fis/src/commands/GetExperimentTargetAccountConfigurationCommand.ts
new file mode 100644
index 0000000000000..c389735eb9d4d
--- /dev/null
+++ b/clients/client-fis/src/commands/GetExperimentTargetAccountConfigurationCommand.ts
@@ -0,0 +1,171 @@
+// smithy-typescript generated code
+import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint";
+import { getSerdePlugin } from "@smithy/middleware-serde";
+import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http";
+import { Command as $Command } from "@smithy/smithy-client";
+import {
+ FinalizeHandlerArguments,
+ Handler,
+ HandlerExecutionContext,
+ HttpHandlerOptions as __HttpHandlerOptions,
+ MetadataBearer as __MetadataBearer,
+ MiddlewareStack,
+ SerdeContext as __SerdeContext,
+ SMITHY_CONTEXT_KEY,
+} from "@smithy/types";
+
+import { FisClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../FisClient";
+import {
+ GetExperimentTargetAccountConfigurationRequest,
+ GetExperimentTargetAccountConfigurationResponse,
+} from "../models/models_0";
+import {
+ de_GetExperimentTargetAccountConfigurationCommand,
+ se_GetExperimentTargetAccountConfigurationCommand,
+} from "../protocols/Aws_restJson1";
+
+/**
+ * @public
+ */
+export { __MetadataBearer, $Command };
+/**
+ * @public
+ *
+ * The input for {@link GetExperimentTargetAccountConfigurationCommand}.
+ */
+export interface GetExperimentTargetAccountConfigurationCommandInput
+ extends GetExperimentTargetAccountConfigurationRequest {}
+/**
+ * @public
+ *
+ * The output of {@link GetExperimentTargetAccountConfigurationCommand}.
+ */
+export interface GetExperimentTargetAccountConfigurationCommandOutput
+ extends GetExperimentTargetAccountConfigurationResponse,
+ __MetadataBearer {}
+
+/**
+ * @public
+ * Gets information about the specified target account configuration of the experiment.
+ * @example
+ * Use a bare-bones client and the command you need to make an API call.
+ * ```javascript
+ * import { FisClient, GetExperimentTargetAccountConfigurationCommand } from "@aws-sdk/client-fis"; // ES Modules import
+ * // const { FisClient, GetExperimentTargetAccountConfigurationCommand } = require("@aws-sdk/client-fis"); // CommonJS import
+ * const client = new FisClient(config);
+ * const input = { // GetExperimentTargetAccountConfigurationRequest
+ * experimentId: "STRING_VALUE", // required
+ * accountId: "STRING_VALUE", // required
+ * };
+ * const command = new GetExperimentTargetAccountConfigurationCommand(input);
+ * const response = await client.send(command);
+ * // { // GetExperimentTargetAccountConfigurationResponse
+ * // targetAccountConfiguration: { // ExperimentTargetAccountConfiguration
+ * // roleArn: "STRING_VALUE",
+ * // accountId: "STRING_VALUE",
+ * // description: "STRING_VALUE",
+ * // },
+ * // };
+ *
+ * ```
+ *
+ * @param GetExperimentTargetAccountConfigurationCommandInput - {@link GetExperimentTargetAccountConfigurationCommandInput}
+ * @returns {@link GetExperimentTargetAccountConfigurationCommandOutput}
+ * @see {@link GetExperimentTargetAccountConfigurationCommandInput} for command's `input` shape.
+ * @see {@link GetExperimentTargetAccountConfigurationCommandOutput} for command's `response` shape.
+ * @see {@link FisClientResolvedConfig | config} for FisClient's `config` shape.
+ *
+ * @throws {@link ResourceNotFoundException} (client fault)
+ * The specified resource cannot be found.
+ *
+ * @throws {@link ValidationException} (client fault)
+ * The specified input is not valid, or fails to satisfy the constraints for the request.
+ *
+ * @throws {@link FisServiceException}
+ * Base exception class for all service exceptions from Fis service.
+ *
+ */
+export class GetExperimentTargetAccountConfigurationCommand extends $Command<
+ GetExperimentTargetAccountConfigurationCommandInput,
+ GetExperimentTargetAccountConfigurationCommandOutput,
+ FisClientResolvedConfig
+> {
+ public static getEndpointParameterInstructions(): EndpointParameterInstructions {
+ return {
+ UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
+ Endpoint: { type: "builtInParams", name: "endpoint" },
+ Region: { type: "builtInParams", name: "region" },
+ UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
+ };
+ }
+
+ /**
+ * @public
+ */
+ constructor(readonly input: GetExperimentTargetAccountConfigurationCommandInput) {
+ super();
+ }
+
+ /**
+ * @internal
+ */
+ resolveMiddleware(
+ clientStack: MiddlewareStack,
+ configuration: FisClientResolvedConfig,
+ options?: __HttpHandlerOptions
+ ): Handler<
+ GetExperimentTargetAccountConfigurationCommandInput,
+ GetExperimentTargetAccountConfigurationCommandOutput
+ > {
+ this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
+ this.middlewareStack.use(
+ getEndpointPlugin(
+ configuration,
+ GetExperimentTargetAccountConfigurationCommand.getEndpointParameterInstructions()
+ )
+ );
+
+ const stack = clientStack.concat(this.middlewareStack);
+
+ const { logger } = configuration;
+ const clientName = "FisClient";
+ const commandName = "GetExperimentTargetAccountConfigurationCommand";
+ const handlerExecutionContext: HandlerExecutionContext = {
+ logger,
+ clientName,
+ commandName,
+ inputFilterSensitiveLog: (_: any) => _,
+ outputFilterSensitiveLog: (_: any) => _,
+ [SMITHY_CONTEXT_KEY]: {
+ service: "FaultInjectionSimulator",
+ operation: "GetExperimentTargetAccountConfiguration",
+ },
+ };
+ const { requestHandler } = configuration;
+ return stack.resolve(
+ (request: FinalizeHandlerArguments) =>
+ requestHandler.handle(request.request as __HttpRequest, options || {}),
+ handlerExecutionContext
+ );
+ }
+
+ /**
+ * @internal
+ */
+ private serialize(
+ input: GetExperimentTargetAccountConfigurationCommandInput,
+ context: __SerdeContext
+ ): Promise<__HttpRequest> {
+ return se_GetExperimentTargetAccountConfigurationCommand(input, context);
+ }
+
+ /**
+ * @internal
+ */
+ private deserialize(
+ output: __HttpResponse,
+ context: __SerdeContext
+ ): Promise {
+ return de_GetExperimentTargetAccountConfigurationCommand(output, context);
+ }
+}
diff --git a/clients/client-fis/src/commands/GetExperimentTemplateCommand.ts b/clients/client-fis/src/commands/GetExperimentTemplateCommand.ts
index b6d274883c520..f4aab9cd2b742 100644
--- a/clients/client-fis/src/commands/GetExperimentTemplateCommand.ts
+++ b/clients/client-fis/src/commands/GetExperimentTemplateCommand.ts
@@ -113,6 +113,11 @@ export interface GetExperimentTemplateCommandOutput extends GetExperimentTemplat
* // },
* // logSchemaVersion: Number("int"),
* // },
+ * // experimentOptions: { // ExperimentTemplateExperimentOptions
+ * // accountTargeting: "single-account" || "multi-account",
+ * // emptyTargetResolutionMode: "fail" || "skip",
+ * // },
+ * // targetAccountConfigurationsCount: Number("long"),
* // },
* // };
*
diff --git a/clients/client-fis/src/commands/GetTargetAccountConfigurationCommand.ts b/clients/client-fis/src/commands/GetTargetAccountConfigurationCommand.ts
new file mode 100644
index 0000000000000..9ef551496911a
--- /dev/null
+++ b/clients/client-fis/src/commands/GetTargetAccountConfigurationCommand.ts
@@ -0,0 +1,158 @@
+// smithy-typescript generated code
+import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint";
+import { getSerdePlugin } from "@smithy/middleware-serde";
+import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http";
+import { Command as $Command } from "@smithy/smithy-client";
+import {
+ FinalizeHandlerArguments,
+ Handler,
+ HandlerExecutionContext,
+ HttpHandlerOptions as __HttpHandlerOptions,
+ MetadataBearer as __MetadataBearer,
+ MiddlewareStack,
+ SerdeContext as __SerdeContext,
+ SMITHY_CONTEXT_KEY,
+} from "@smithy/types";
+
+import { FisClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../FisClient";
+import { GetTargetAccountConfigurationRequest, GetTargetAccountConfigurationResponse } from "../models/models_0";
+import {
+ de_GetTargetAccountConfigurationCommand,
+ se_GetTargetAccountConfigurationCommand,
+} from "../protocols/Aws_restJson1";
+
+/**
+ * @public
+ */
+export { __MetadataBearer, $Command };
+/**
+ * @public
+ *
+ * The input for {@link GetTargetAccountConfigurationCommand}.
+ */
+export interface GetTargetAccountConfigurationCommandInput extends GetTargetAccountConfigurationRequest {}
+/**
+ * @public
+ *
+ * The output of {@link GetTargetAccountConfigurationCommand}.
+ */
+export interface GetTargetAccountConfigurationCommandOutput
+ extends GetTargetAccountConfigurationResponse,
+ __MetadataBearer {}
+
+/**
+ * @public
+ * Gets information about the specified target account configuration of the experiment template.
+ * @example
+ * Use a bare-bones client and the command you need to make an API call.
+ * ```javascript
+ * import { FisClient, GetTargetAccountConfigurationCommand } from "@aws-sdk/client-fis"; // ES Modules import
+ * // const { FisClient, GetTargetAccountConfigurationCommand } = require("@aws-sdk/client-fis"); // CommonJS import
+ * const client = new FisClient(config);
+ * const input = { // GetTargetAccountConfigurationRequest
+ * experimentTemplateId: "STRING_VALUE", // required
+ * accountId: "STRING_VALUE", // required
+ * };
+ * const command = new GetTargetAccountConfigurationCommand(input);
+ * const response = await client.send(command);
+ * // { // GetTargetAccountConfigurationResponse
+ * // targetAccountConfiguration: { // TargetAccountConfiguration
+ * // roleArn: "STRING_VALUE",
+ * // accountId: "STRING_VALUE",
+ * // description: "STRING_VALUE",
+ * // },
+ * // };
+ *
+ * ```
+ *
+ * @param GetTargetAccountConfigurationCommandInput - {@link GetTargetAccountConfigurationCommandInput}
+ * @returns {@link GetTargetAccountConfigurationCommandOutput}
+ * @see {@link GetTargetAccountConfigurationCommandInput} for command's `input` shape.
+ * @see {@link GetTargetAccountConfigurationCommandOutput} for command's `response` shape.
+ * @see {@link FisClientResolvedConfig | config} for FisClient's `config` shape.
+ *
+ * @throws {@link ResourceNotFoundException} (client fault)
+ * The specified resource cannot be found.
+ *
+ * @throws {@link ValidationException} (client fault)
+ * The specified input is not valid, or fails to satisfy the constraints for the request.
+ *
+ * @throws {@link FisServiceException}
+ * Base exception class for all service exceptions from Fis service.
+ *
+ */
+export class GetTargetAccountConfigurationCommand extends $Command<
+ GetTargetAccountConfigurationCommandInput,
+ GetTargetAccountConfigurationCommandOutput,
+ FisClientResolvedConfig
+> {
+ public static getEndpointParameterInstructions(): EndpointParameterInstructions {
+ return {
+ UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
+ Endpoint: { type: "builtInParams", name: "endpoint" },
+ Region: { type: "builtInParams", name: "region" },
+ UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
+ };
+ }
+
+ /**
+ * @public
+ */
+ constructor(readonly input: GetTargetAccountConfigurationCommandInput) {
+ super();
+ }
+
+ /**
+ * @internal
+ */
+ resolveMiddleware(
+ clientStack: MiddlewareStack,
+ configuration: FisClientResolvedConfig,
+ options?: __HttpHandlerOptions
+ ): Handler {
+ this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
+ this.middlewareStack.use(
+ getEndpointPlugin(configuration, GetTargetAccountConfigurationCommand.getEndpointParameterInstructions())
+ );
+
+ const stack = clientStack.concat(this.middlewareStack);
+
+ const { logger } = configuration;
+ const clientName = "FisClient";
+ const commandName = "GetTargetAccountConfigurationCommand";
+ const handlerExecutionContext: HandlerExecutionContext = {
+ logger,
+ clientName,
+ commandName,
+ inputFilterSensitiveLog: (_: any) => _,
+ outputFilterSensitiveLog: (_: any) => _,
+ [SMITHY_CONTEXT_KEY]: {
+ service: "FaultInjectionSimulator",
+ operation: "GetTargetAccountConfiguration",
+ },
+ };
+ const { requestHandler } = configuration;
+ return stack.resolve(
+ (request: FinalizeHandlerArguments) =>
+ requestHandler.handle(request.request as __HttpRequest, options || {}),
+ handlerExecutionContext
+ );
+ }
+
+ /**
+ * @internal
+ */
+ private serialize(input: GetTargetAccountConfigurationCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
+ return se_GetTargetAccountConfigurationCommand(input, context);
+ }
+
+ /**
+ * @internal
+ */
+ private deserialize(
+ output: __HttpResponse,
+ context: __SerdeContext
+ ): Promise {
+ return de_GetTargetAccountConfigurationCommand(output, context);
+ }
+}
diff --git a/clients/client-fis/src/commands/ListExperimentResolvedTargetsCommand.ts b/clients/client-fis/src/commands/ListExperimentResolvedTargetsCommand.ts
new file mode 100644
index 0000000000000..62bfc376dde6c
--- /dev/null
+++ b/clients/client-fis/src/commands/ListExperimentResolvedTargetsCommand.ts
@@ -0,0 +1,165 @@
+// smithy-typescript generated code
+import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint";
+import { getSerdePlugin } from "@smithy/middleware-serde";
+import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http";
+import { Command as $Command } from "@smithy/smithy-client";
+import {
+ FinalizeHandlerArguments,
+ Handler,
+ HandlerExecutionContext,
+ HttpHandlerOptions as __HttpHandlerOptions,
+ MetadataBearer as __MetadataBearer,
+ MiddlewareStack,
+ SerdeContext as __SerdeContext,
+ SMITHY_CONTEXT_KEY,
+} from "@smithy/types";
+
+import { FisClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../FisClient";
+import { ListExperimentResolvedTargetsRequest, ListExperimentResolvedTargetsResponse } from "../models/models_0";
+import {
+ de_ListExperimentResolvedTargetsCommand,
+ se_ListExperimentResolvedTargetsCommand,
+} from "../protocols/Aws_restJson1";
+
+/**
+ * @public
+ */
+export { __MetadataBearer, $Command };
+/**
+ * @public
+ *
+ * The input for {@link ListExperimentResolvedTargetsCommand}.
+ */
+export interface ListExperimentResolvedTargetsCommandInput extends ListExperimentResolvedTargetsRequest {}
+/**
+ * @public
+ *
+ * The output of {@link ListExperimentResolvedTargetsCommand}.
+ */
+export interface ListExperimentResolvedTargetsCommandOutput
+ extends ListExperimentResolvedTargetsResponse,
+ __MetadataBearer {}
+
+/**
+ * @public
+ * Lists the resolved targets information of the specified experiment.
+ * @example
+ * Use a bare-bones client and the command you need to make an API call.
+ * ```javascript
+ * import { FisClient, ListExperimentResolvedTargetsCommand } from "@aws-sdk/client-fis"; // ES Modules import
+ * // const { FisClient, ListExperimentResolvedTargetsCommand } = require("@aws-sdk/client-fis"); // CommonJS import
+ * const client = new FisClient(config);
+ * const input = { // ListExperimentResolvedTargetsRequest
+ * experimentId: "STRING_VALUE", // required
+ * maxResults: Number("int"),
+ * nextToken: "STRING_VALUE",
+ * targetName: "STRING_VALUE",
+ * };
+ * const command = new ListExperimentResolvedTargetsCommand(input);
+ * const response = await client.send(command);
+ * // { // ListExperimentResolvedTargetsResponse
+ * // resolvedTargets: [ // ResolvedTargetList
+ * // { // ResolvedTarget
+ * // resourceType: "STRING_VALUE",
+ * // targetName: "STRING_VALUE",
+ * // targetInformation: { // TargetInformationMap
+ * // "": "STRING_VALUE",
+ * // },
+ * // },
+ * // ],
+ * // nextToken: "STRING_VALUE",
+ * // };
+ *
+ * ```
+ *
+ * @param ListExperimentResolvedTargetsCommandInput - {@link ListExperimentResolvedTargetsCommandInput}
+ * @returns {@link ListExperimentResolvedTargetsCommandOutput}
+ * @see {@link ListExperimentResolvedTargetsCommandInput} for command's `input` shape.
+ * @see {@link ListExperimentResolvedTargetsCommandOutput} for command's `response` shape.
+ * @see {@link FisClientResolvedConfig | config} for FisClient's `config` shape.
+ *
+ * @throws {@link ResourceNotFoundException} (client fault)
+ * The specified resource cannot be found.
+ *
+ * @throws {@link ValidationException} (client fault)
+ * The specified input is not valid, or fails to satisfy the constraints for the request.
+ *
+ * @throws {@link FisServiceException}
+ * Base exception class for all service exceptions from Fis service.
+ *
+ */
+export class ListExperimentResolvedTargetsCommand extends $Command<
+ ListExperimentResolvedTargetsCommandInput,
+ ListExperimentResolvedTargetsCommandOutput,
+ FisClientResolvedConfig
+> {
+ public static getEndpointParameterInstructions(): EndpointParameterInstructions {
+ return {
+ UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
+ Endpoint: { type: "builtInParams", name: "endpoint" },
+ Region: { type: "builtInParams", name: "region" },
+ UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
+ };
+ }
+
+ /**
+ * @public
+ */
+ constructor(readonly input: ListExperimentResolvedTargetsCommandInput) {
+ super();
+ }
+
+ /**
+ * @internal
+ */
+ resolveMiddleware(
+ clientStack: MiddlewareStack,
+ configuration: FisClientResolvedConfig,
+ options?: __HttpHandlerOptions
+ ): Handler {
+ this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
+ this.middlewareStack.use(
+ getEndpointPlugin(configuration, ListExperimentResolvedTargetsCommand.getEndpointParameterInstructions())
+ );
+
+ const stack = clientStack.concat(this.middlewareStack);
+
+ const { logger } = configuration;
+ const clientName = "FisClient";
+ const commandName = "ListExperimentResolvedTargetsCommand";
+ const handlerExecutionContext: HandlerExecutionContext = {
+ logger,
+ clientName,
+ commandName,
+ inputFilterSensitiveLog: (_: any) => _,
+ outputFilterSensitiveLog: (_: any) => _,
+ [SMITHY_CONTEXT_KEY]: {
+ service: "FaultInjectionSimulator",
+ operation: "ListExperimentResolvedTargets",
+ },
+ };
+ const { requestHandler } = configuration;
+ return stack.resolve(
+ (request: FinalizeHandlerArguments) =>
+ requestHandler.handle(request.request as __HttpRequest, options || {}),
+ handlerExecutionContext
+ );
+ }
+
+ /**
+ * @internal
+ */
+ private serialize(input: ListExperimentResolvedTargetsCommandInput, context: __SerdeContext): Promise<__HttpRequest> {
+ return se_ListExperimentResolvedTargetsCommand(input, context);
+ }
+
+ /**
+ * @internal
+ */
+ private deserialize(
+ output: __HttpResponse,
+ context: __SerdeContext
+ ): Promise {
+ return de_ListExperimentResolvedTargetsCommand(output, context);
+ }
+}
diff --git a/clients/client-fis/src/commands/ListExperimentTargetAccountConfigurationsCommand.ts b/clients/client-fis/src/commands/ListExperimentTargetAccountConfigurationsCommand.ts
new file mode 100644
index 0000000000000..0e152f722d9ab
--- /dev/null
+++ b/clients/client-fis/src/commands/ListExperimentTargetAccountConfigurationsCommand.ts
@@ -0,0 +1,174 @@
+// smithy-typescript generated code
+import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint";
+import { getSerdePlugin } from "@smithy/middleware-serde";
+import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http";
+import { Command as $Command } from "@smithy/smithy-client";
+import {
+ FinalizeHandlerArguments,
+ Handler,
+ HandlerExecutionContext,
+ HttpHandlerOptions as __HttpHandlerOptions,
+ MetadataBearer as __MetadataBearer,
+ MiddlewareStack,
+ SerdeContext as __SerdeContext,
+ SMITHY_CONTEXT_KEY,
+} from "@smithy/types";
+
+import { FisClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../FisClient";
+import {
+ ListExperimentTargetAccountConfigurationsRequest,
+ ListExperimentTargetAccountConfigurationsResponse,
+} from "../models/models_0";
+import {
+ de_ListExperimentTargetAccountConfigurationsCommand,
+ se_ListExperimentTargetAccountConfigurationsCommand,
+} from "../protocols/Aws_restJson1";
+
+/**
+ * @public
+ */
+export { __MetadataBearer, $Command };
+/**
+ * @public
+ *
+ * The input for {@link ListExperimentTargetAccountConfigurationsCommand}.
+ */
+export interface ListExperimentTargetAccountConfigurationsCommandInput
+ extends ListExperimentTargetAccountConfigurationsRequest {}
+/**
+ * @public
+ *
+ * The output of {@link ListExperimentTargetAccountConfigurationsCommand}.
+ */
+export interface ListExperimentTargetAccountConfigurationsCommandOutput
+ extends ListExperimentTargetAccountConfigurationsResponse,
+ __MetadataBearer {}
+
+/**
+ * @public
+ * Lists the target account configurations of the specified experiment.
+ * @example
+ * Use a bare-bones client and the command you need to make an API call.
+ * ```javascript
+ * import { FisClient, ListExperimentTargetAccountConfigurationsCommand } from "@aws-sdk/client-fis"; // ES Modules import
+ * // const { FisClient, ListExperimentTargetAccountConfigurationsCommand } = require("@aws-sdk/client-fis"); // CommonJS import
+ * const client = new FisClient(config);
+ * const input = { // ListExperimentTargetAccountConfigurationsRequest
+ * experimentId: "STRING_VALUE", // required
+ * nextToken: "STRING_VALUE",
+ * };
+ * const command = new ListExperimentTargetAccountConfigurationsCommand(input);
+ * const response = await client.send(command);
+ * // { // ListExperimentTargetAccountConfigurationsResponse
+ * // targetAccountConfigurations: [ // ExperimentTargetAccountConfigurationList
+ * // { // ExperimentTargetAccountConfigurationSummary
+ * // roleArn: "STRING_VALUE",
+ * // accountId: "STRING_VALUE",
+ * // description: "STRING_VALUE",
+ * // },
+ * // ],
+ * // nextToken: "STRING_VALUE",
+ * // };
+ *
+ * ```
+ *
+ * @param ListExperimentTargetAccountConfigurationsCommandInput - {@link ListExperimentTargetAccountConfigurationsCommandInput}
+ * @returns {@link ListExperimentTargetAccountConfigurationsCommandOutput}
+ * @see {@link ListExperimentTargetAccountConfigurationsCommandInput} for command's `input` shape.
+ * @see {@link ListExperimentTargetAccountConfigurationsCommandOutput} for command's `response` shape.
+ * @see {@link FisClientResolvedConfig | config} for FisClient's `config` shape.
+ *
+ * @throws {@link ResourceNotFoundException} (client fault)
+ * The specified resource cannot be found.
+ *
+ * @throws {@link ValidationException} (client fault)
+ * The specified input is not valid, or fails to satisfy the constraints for the request.
+ *
+ * @throws {@link FisServiceException}
+ * Base exception class for all service exceptions from Fis service.
+ *
+ */
+export class ListExperimentTargetAccountConfigurationsCommand extends $Command<
+ ListExperimentTargetAccountConfigurationsCommandInput,
+ ListExperimentTargetAccountConfigurationsCommandOutput,
+ FisClientResolvedConfig
+> {
+ public static getEndpointParameterInstructions(): EndpointParameterInstructions {
+ return {
+ UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
+ Endpoint: { type: "builtInParams", name: "endpoint" },
+ Region: { type: "builtInParams", name: "region" },
+ UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
+ };
+ }
+
+ /**
+ * @public
+ */
+ constructor(readonly input: ListExperimentTargetAccountConfigurationsCommandInput) {
+ super();
+ }
+
+ /**
+ * @internal
+ */
+ resolveMiddleware(
+ clientStack: MiddlewareStack,
+ configuration: FisClientResolvedConfig,
+ options?: __HttpHandlerOptions
+ ): Handler<
+ ListExperimentTargetAccountConfigurationsCommandInput,
+ ListExperimentTargetAccountConfigurationsCommandOutput
+ > {
+ this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
+ this.middlewareStack.use(
+ getEndpointPlugin(
+ configuration,
+ ListExperimentTargetAccountConfigurationsCommand.getEndpointParameterInstructions()
+ )
+ );
+
+ const stack = clientStack.concat(this.middlewareStack);
+
+ const { logger } = configuration;
+ const clientName = "FisClient";
+ const commandName = "ListExperimentTargetAccountConfigurationsCommand";
+ const handlerExecutionContext: HandlerExecutionContext = {
+ logger,
+ clientName,
+ commandName,
+ inputFilterSensitiveLog: (_: any) => _,
+ outputFilterSensitiveLog: (_: any) => _,
+ [SMITHY_CONTEXT_KEY]: {
+ service: "FaultInjectionSimulator",
+ operation: "ListExperimentTargetAccountConfigurations",
+ },
+ };
+ const { requestHandler } = configuration;
+ return stack.resolve(
+ (request: FinalizeHandlerArguments) =>
+ requestHandler.handle(request.request as __HttpRequest, options || {}),
+ handlerExecutionContext
+ );
+ }
+
+ /**
+ * @internal
+ */
+ private serialize(
+ input: ListExperimentTargetAccountConfigurationsCommandInput,
+ context: __SerdeContext
+ ): Promise<__HttpRequest> {
+ return se_ListExperimentTargetAccountConfigurationsCommand(input, context);
+ }
+
+ /**
+ * @internal
+ */
+ private deserialize(
+ output: __HttpResponse,
+ context: __SerdeContext
+ ): Promise {
+ return de_ListExperimentTargetAccountConfigurationsCommand(output, context);
+ }
+}
diff --git a/clients/client-fis/src/commands/ListTargetAccountConfigurationsCommand.ts b/clients/client-fis/src/commands/ListTargetAccountConfigurationsCommand.ts
new file mode 100644
index 0000000000000..317652e5e1f48
--- /dev/null
+++ b/clients/client-fis/src/commands/ListTargetAccountConfigurationsCommand.ts
@@ -0,0 +1,165 @@
+// smithy-typescript generated code
+import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint";
+import { getSerdePlugin } from "@smithy/middleware-serde";
+import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http";
+import { Command as $Command } from "@smithy/smithy-client";
+import {
+ FinalizeHandlerArguments,
+ Handler,
+ HandlerExecutionContext,
+ HttpHandlerOptions as __HttpHandlerOptions,
+ MetadataBearer as __MetadataBearer,
+ MiddlewareStack,
+ SerdeContext as __SerdeContext,
+ SMITHY_CONTEXT_KEY,
+} from "@smithy/types";
+
+import { FisClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../FisClient";
+import { ListTargetAccountConfigurationsRequest, ListTargetAccountConfigurationsResponse } from "../models/models_0";
+import {
+ de_ListTargetAccountConfigurationsCommand,
+ se_ListTargetAccountConfigurationsCommand,
+} from "../protocols/Aws_restJson1";
+
+/**
+ * @public
+ */
+export { __MetadataBearer, $Command };
+/**
+ * @public
+ *
+ * The input for {@link ListTargetAccountConfigurationsCommand}.
+ */
+export interface ListTargetAccountConfigurationsCommandInput extends ListTargetAccountConfigurationsRequest {}
+/**
+ * @public
+ *
+ * The output of {@link ListTargetAccountConfigurationsCommand}.
+ */
+export interface ListTargetAccountConfigurationsCommandOutput
+ extends ListTargetAccountConfigurationsResponse,
+ __MetadataBearer {}
+
+/**
+ * @public
+ * Lists the target account configurations of the specified experiment template.
+ * @example
+ * Use a bare-bones client and the command you need to make an API call.
+ * ```javascript
+ * import { FisClient, ListTargetAccountConfigurationsCommand } from "@aws-sdk/client-fis"; // ES Modules import
+ * // const { FisClient, ListTargetAccountConfigurationsCommand } = require("@aws-sdk/client-fis"); // CommonJS import
+ * const client = new FisClient(config);
+ * const input = { // ListTargetAccountConfigurationsRequest
+ * experimentTemplateId: "STRING_VALUE", // required
+ * maxResults: Number("int"),
+ * nextToken: "STRING_VALUE",
+ * };
+ * const command = new ListTargetAccountConfigurationsCommand(input);
+ * const response = await client.send(command);
+ * // { // ListTargetAccountConfigurationsResponse
+ * // targetAccountConfigurations: [ // TargetAccountConfigurationList
+ * // { // TargetAccountConfigurationSummary
+ * // roleArn: "STRING_VALUE",
+ * // accountId: "STRING_VALUE",
+ * // description: "STRING_VALUE",
+ * // },
+ * // ],
+ * // nextToken: "STRING_VALUE",
+ * // };
+ *
+ * ```
+ *
+ * @param ListTargetAccountConfigurationsCommandInput - {@link ListTargetAccountConfigurationsCommandInput}
+ * @returns {@link ListTargetAccountConfigurationsCommandOutput}
+ * @see {@link ListTargetAccountConfigurationsCommandInput} for command's `input` shape.
+ * @see {@link ListTargetAccountConfigurationsCommandOutput} for command's `response` shape.
+ * @see {@link FisClientResolvedConfig | config} for FisClient's `config` shape.
+ *
+ * @throws {@link ResourceNotFoundException} (client fault)
+ * The specified resource cannot be found.
+ *
+ * @throws {@link ValidationException} (client fault)
+ * The specified input is not valid, or fails to satisfy the constraints for the request.
+ *
+ * @throws {@link FisServiceException}
+ * Base exception class for all service exceptions from Fis service.
+ *
+ */
+export class ListTargetAccountConfigurationsCommand extends $Command<
+ ListTargetAccountConfigurationsCommandInput,
+ ListTargetAccountConfigurationsCommandOutput,
+ FisClientResolvedConfig
+> {
+ public static getEndpointParameterInstructions(): EndpointParameterInstructions {
+ return {
+ UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
+ Endpoint: { type: "builtInParams", name: "endpoint" },
+ Region: { type: "builtInParams", name: "region" },
+ UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
+ };
+ }
+
+ /**
+ * @public
+ */
+ constructor(readonly input: ListTargetAccountConfigurationsCommandInput) {
+ super();
+ }
+
+ /**
+ * @internal
+ */
+ resolveMiddleware(
+ clientStack: MiddlewareStack,
+ configuration: FisClientResolvedConfig,
+ options?: __HttpHandlerOptions
+ ): Handler {
+ this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
+ this.middlewareStack.use(
+ getEndpointPlugin(configuration, ListTargetAccountConfigurationsCommand.getEndpointParameterInstructions())
+ );
+
+ const stack = clientStack.concat(this.middlewareStack);
+
+ const { logger } = configuration;
+ const clientName = "FisClient";
+ const commandName = "ListTargetAccountConfigurationsCommand";
+ const handlerExecutionContext: HandlerExecutionContext = {
+ logger,
+ clientName,
+ commandName,
+ inputFilterSensitiveLog: (_: any) => _,
+ outputFilterSensitiveLog: (_: any) => _,
+ [SMITHY_CONTEXT_KEY]: {
+ service: "FaultInjectionSimulator",
+ operation: "ListTargetAccountConfigurations",
+ },
+ };
+ const { requestHandler } = configuration;
+ return stack.resolve(
+ (request: FinalizeHandlerArguments) =>
+ requestHandler.handle(request.request as __HttpRequest, options || {}),
+ handlerExecutionContext
+ );
+ }
+
+ /**
+ * @internal
+ */
+ private serialize(
+ input: ListTargetAccountConfigurationsCommandInput,
+ context: __SerdeContext
+ ): Promise<__HttpRequest> {
+ return se_ListTargetAccountConfigurationsCommand(input, context);
+ }
+
+ /**
+ * @internal
+ */
+ private deserialize(
+ output: __HttpResponse,
+ context: __SerdeContext
+ ): Promise {
+ return de_ListTargetAccountConfigurationsCommand(output, context);
+ }
+}
diff --git a/clients/client-fis/src/commands/StartExperimentCommand.ts b/clients/client-fis/src/commands/StartExperimentCommand.ts
index 0ef1297fa68cd..a73619fd8746e 100644
--- a/clients/client-fis/src/commands/StartExperimentCommand.ts
+++ b/clients/client-fis/src/commands/StartExperimentCommand.ts
@@ -99,7 +99,7 @@ export interface StartExperimentCommandOutput extends StartExperimentResponse, _
* // "STRING_VALUE",
* // ],
* // state: { // ExperimentActionState
- * // status: "pending" || "initiating" || "running" || "completed" || "cancelled" || "stopping" || "stopped" || "failed",
+ * // status: "pending" || "initiating" || "running" || "completed" || "cancelled" || "stopping" || "stopped" || "failed" || "skipped",
* // reason: "STRING_VALUE",
* // },
* // startTime: new Date("TIMESTAMP"),
@@ -128,6 +128,11 @@ export interface StartExperimentCommandOutput extends StartExperimentResponse, _
* // },
* // logSchemaVersion: Number("int"),
* // },
+ * // experimentOptions: { // ExperimentOptions
+ * // accountTargeting: "single-account" || "multi-account",
+ * // emptyTargetResolutionMode: "fail" || "skip",
+ * // },
+ * // targetAccountConfigurationsCount: Number("long"),
* // },
* // };
*
diff --git a/clients/client-fis/src/commands/StopExperimentCommand.ts b/clients/client-fis/src/commands/StopExperimentCommand.ts
index 589c4ec80f93c..199795f524e29 100644
--- a/clients/client-fis/src/commands/StopExperimentCommand.ts
+++ b/clients/client-fis/src/commands/StopExperimentCommand.ts
@@ -95,7 +95,7 @@ export interface StopExperimentCommandOutput extends StopExperimentResponse, __M
* // "STRING_VALUE",
* // ],
* // state: { // ExperimentActionState
- * // status: "pending" || "initiating" || "running" || "completed" || "cancelled" || "stopping" || "stopped" || "failed",
+ * // status: "pending" || "initiating" || "running" || "completed" || "cancelled" || "stopping" || "stopped" || "failed" || "skipped",
* // reason: "STRING_VALUE",
* // },
* // startTime: new Date("TIMESTAMP"),
@@ -124,6 +124,11 @@ export interface StopExperimentCommandOutput extends StopExperimentResponse, __M
* // },
* // logSchemaVersion: Number("int"),
* // },
+ * // experimentOptions: { // ExperimentOptions
+ * // accountTargeting: "single-account" || "multi-account",
+ * // emptyTargetResolutionMode: "fail" || "skip",
+ * // },
+ * // targetAccountConfigurationsCount: Number("long"),
* // },
* // };
*
diff --git a/clients/client-fis/src/commands/UpdateExperimentTemplateCommand.ts b/clients/client-fis/src/commands/UpdateExperimentTemplateCommand.ts
index cf3ec9cefb1b8..bdadb1ad5d437 100644
--- a/clients/client-fis/src/commands/UpdateExperimentTemplateCommand.ts
+++ b/clients/client-fis/src/commands/UpdateExperimentTemplateCommand.ts
@@ -102,6 +102,9 @@ export interface UpdateExperimentTemplateCommandOutput extends UpdateExperimentT
* },
* logSchemaVersion: Number("int"),
* },
+ * experimentOptions: { // UpdateExperimentTemplateExperimentOptionsInput
+ * emptyTargetResolutionMode: "fail" || "skip",
+ * },
* };
* const command = new UpdateExperimentTemplateCommand(input);
* const response = await client.send(command);
@@ -169,6 +172,11 @@ export interface UpdateExperimentTemplateCommandOutput extends UpdateExperimentT
* // },
* // logSchemaVersion: Number("int"),
* // },
+ * // experimentOptions: { // ExperimentTemplateExperimentOptions
+ * // accountTargeting: "single-account" || "multi-account",
+ * // emptyTargetResolutionMode: "fail" || "skip",
+ * // },
+ * // targetAccountConfigurationsCount: Number("long"),
* // },
* // };
*
diff --git a/clients/client-fis/src/commands/UpdateTargetAccountConfigurationCommand.ts b/clients/client-fis/src/commands/UpdateTargetAccountConfigurationCommand.ts
new file mode 100644
index 0000000000000..0f832ffc6dc42
--- /dev/null
+++ b/clients/client-fis/src/commands/UpdateTargetAccountConfigurationCommand.ts
@@ -0,0 +1,163 @@
+// smithy-typescript generated code
+import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint";
+import { getSerdePlugin } from "@smithy/middleware-serde";
+import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http";
+import { Command as $Command } from "@smithy/smithy-client";
+import {
+ FinalizeHandlerArguments,
+ Handler,
+ HandlerExecutionContext,
+ HttpHandlerOptions as __HttpHandlerOptions,
+ MetadataBearer as __MetadataBearer,
+ MiddlewareStack,
+ SerdeContext as __SerdeContext,
+ SMITHY_CONTEXT_KEY,
+} from "@smithy/types";
+
+import { FisClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../FisClient";
+import { UpdateTargetAccountConfigurationRequest, UpdateTargetAccountConfigurationResponse } from "../models/models_0";
+import {
+ de_UpdateTargetAccountConfigurationCommand,
+ se_UpdateTargetAccountConfigurationCommand,
+} from "../protocols/Aws_restJson1";
+
+/**
+ * @public
+ */
+export { __MetadataBearer, $Command };
+/**
+ * @public
+ *
+ * The input for {@link UpdateTargetAccountConfigurationCommand}.
+ */
+export interface UpdateTargetAccountConfigurationCommandInput extends UpdateTargetAccountConfigurationRequest {}
+/**
+ * @public
+ *
+ * The output of {@link UpdateTargetAccountConfigurationCommand}.
+ */
+export interface UpdateTargetAccountConfigurationCommandOutput
+ extends UpdateTargetAccountConfigurationResponse,
+ __MetadataBearer {}
+
+/**
+ * @public
+ * Updates the target account configuration for the specified experiment template.
+ * @example
+ * Use a bare-bones client and the command you need to make an API call.
+ * ```javascript
+ * import { FisClient, UpdateTargetAccountConfigurationCommand } from "@aws-sdk/client-fis"; // ES Modules import
+ * // const { FisClient, UpdateTargetAccountConfigurationCommand } = require("@aws-sdk/client-fis"); // CommonJS import
+ * const client = new FisClient(config);
+ * const input = { // UpdateTargetAccountConfigurationRequest
+ * experimentTemplateId: "STRING_VALUE", // required
+ * accountId: "STRING_VALUE", // required
+ * roleArn: "STRING_VALUE",
+ * description: "STRING_VALUE",
+ * };
+ * const command = new UpdateTargetAccountConfigurationCommand(input);
+ * const response = await client.send(command);
+ * // { // UpdateTargetAccountConfigurationResponse
+ * // targetAccountConfiguration: { // TargetAccountConfiguration
+ * // roleArn: "STRING_VALUE",
+ * // accountId: "STRING_VALUE",
+ * // description: "STRING_VALUE",
+ * // },
+ * // };
+ *
+ * ```
+ *
+ * @param UpdateTargetAccountConfigurationCommandInput - {@link UpdateTargetAccountConfigurationCommandInput}
+ * @returns {@link UpdateTargetAccountConfigurationCommandOutput}
+ * @see {@link UpdateTargetAccountConfigurationCommandInput} for command's `input` shape.
+ * @see {@link UpdateTargetAccountConfigurationCommandOutput} for command's `response` shape.
+ * @see {@link FisClientResolvedConfig | config} for FisClient's `config` shape.
+ *
+ * @throws {@link ResourceNotFoundException} (client fault)
+ * The specified resource cannot be found.
+ *
+ * @throws {@link ValidationException} (client fault)
+ * The specified input is not valid, or fails to satisfy the constraints for the request.
+ *
+ * @throws {@link FisServiceException}
+ * Base exception class for all service exceptions from Fis service.
+ *
+ */
+export class UpdateTargetAccountConfigurationCommand extends $Command<
+ UpdateTargetAccountConfigurationCommandInput,
+ UpdateTargetAccountConfigurationCommandOutput,
+ FisClientResolvedConfig
+> {
+ public static getEndpointParameterInstructions(): EndpointParameterInstructions {
+ return {
+ UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" },
+ Endpoint: { type: "builtInParams", name: "endpoint" },
+ Region: { type: "builtInParams", name: "region" },
+ UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" },
+ };
+ }
+
+ /**
+ * @public
+ */
+ constructor(readonly input: UpdateTargetAccountConfigurationCommandInput) {
+ super();
+ }
+
+ /**
+ * @internal
+ */
+ resolveMiddleware(
+ clientStack: MiddlewareStack,
+ configuration: FisClientResolvedConfig,
+ options?: __HttpHandlerOptions
+ ): Handler {
+ this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));
+ this.middlewareStack.use(
+ getEndpointPlugin(configuration, UpdateTargetAccountConfigurationCommand.getEndpointParameterInstructions())
+ );
+
+ const stack = clientStack.concat(this.middlewareStack);
+
+ const { logger } = configuration;
+ const clientName = "FisClient";
+ const commandName = "UpdateTargetAccountConfigurationCommand";
+ const handlerExecutionContext: HandlerExecutionContext = {
+ logger,
+ clientName,
+ commandName,
+ inputFilterSensitiveLog: (_: any) => _,
+ outputFilterSensitiveLog: (_: any) => _,
+ [SMITHY_CONTEXT_KEY]: {
+ service: "FaultInjectionSimulator",
+ operation: "UpdateTargetAccountConfiguration",
+ },
+ };
+ const { requestHandler } = configuration;
+ return stack.resolve(
+ (request: FinalizeHandlerArguments) =>
+ requestHandler.handle(request.request as __HttpRequest, options || {}),
+ handlerExecutionContext
+ );
+ }
+
+ /**
+ * @internal
+ */
+ private serialize(
+ input: UpdateTargetAccountConfigurationCommandInput,
+ context: __SerdeContext
+ ): Promise<__HttpRequest> {
+ return se_UpdateTargetAccountConfigurationCommand(input, context);
+ }
+
+ /**
+ * @internal
+ */
+ private deserialize(
+ output: __HttpResponse,
+ context: __SerdeContext
+ ): Promise {
+ return de_UpdateTargetAccountConfigurationCommand(output, context);
+ }
+}
diff --git a/clients/client-fis/src/commands/index.ts b/clients/client-fis/src/commands/index.ts
index 1cda596957710..6ad213f1bb07e 100644
--- a/clients/client-fis/src/commands/index.ts
+++ b/clients/client-fis/src/commands/index.ts
@@ -1,17 +1,25 @@
// smithy-typescript generated code
export * from "./CreateExperimentTemplateCommand";
+export * from "./CreateTargetAccountConfigurationCommand";
export * from "./DeleteExperimentTemplateCommand";
+export * from "./DeleteTargetAccountConfigurationCommand";
export * from "./GetActionCommand";
export * from "./GetExperimentCommand";
+export * from "./GetExperimentTargetAccountConfigurationCommand";
export * from "./GetExperimentTemplateCommand";
+export * from "./GetTargetAccountConfigurationCommand";
export * from "./GetTargetResourceTypeCommand";
export * from "./ListActionsCommand";
+export * from "./ListExperimentResolvedTargetsCommand";
+export * from "./ListExperimentTargetAccountConfigurationsCommand";
export * from "./ListExperimentTemplatesCommand";
export * from "./ListExperimentsCommand";
export * from "./ListTagsForResourceCommand";
+export * from "./ListTargetAccountConfigurationsCommand";
export * from "./ListTargetResourceTypesCommand";
export * from "./StartExperimentCommand";
export * from "./StopExperimentCommand";
export * from "./TagResourceCommand";
export * from "./UntagResourceCommand";
export * from "./UpdateExperimentTemplateCommand";
+export * from "./UpdateTargetAccountConfigurationCommand";
diff --git a/clients/client-fis/src/models/models_0.ts b/clients/client-fis/src/models/models_0.ts
index a6ef1e2c938ef..5e224e27f5736 100644
--- a/clients/client-fis/src/models/models_0.ts
+++ b/clients/client-fis/src/models/models_0.ts
@@ -3,6 +3,20 @@ import { ExceptionOptionType as __ExceptionOptionType } from "@smithy/smithy-cli
import { FisServiceException as __BaseException } from "./FisServiceException";
+/**
+ * @public
+ * @enum
+ */
+export const AccountTargeting = {
+ MULTI_ACCOUNT: "multi-account",
+ SINGLE_ACCOUNT: "single-account",
+} as const;
+
+/**
+ * @public
+ */
+export type AccountTargeting = (typeof AccountTargeting)[keyof typeof AccountTargeting];
+
/**
* @public
* Describes a parameter for an action.
@@ -158,6 +172,38 @@ export interface CreateExperimentTemplateActionInput {
startAfter?: string[];
}
+/**
+ * @public
+ * @enum
+ */
+export const EmptyTargetResolutionMode = {
+ FAIL: "fail",
+ SKIP: "skip",
+} as const;
+
+/**
+ * @public
+ */
+export type EmptyTargetResolutionMode = (typeof EmptyTargetResolutionMode)[keyof typeof EmptyTargetResolutionMode];
+
+/**
+ * @public
+ * Specifies experiment options for an experiment template.
+ */
+export interface CreateExperimentTemplateExperimentOptionsInput {
+ /**
+ * @public
+ * Specifies the account targeting setting for experiment options.
+ */
+ accountTargeting?: AccountTargeting;
+
+ /**
+ * @public
+ * Specifies the empty target resolution mode for experiment options.
+ */
+ emptyTargetResolutionMode?: EmptyTargetResolutionMode;
+}
+
/**
* @public
* Specifies the configuration for experiment logging to Amazon CloudWatch Logs.
@@ -362,6 +408,12 @@ export interface CreateExperimentTemplateRequest {
* The configuration for experiment logging.
*/
logConfiguration?: CreateExperimentTemplateLogConfigurationInput;
+
+ /**
+ * @public
+ * The experiment options for the experiment template.
+ */
+ experimentOptions?: CreateExperimentTemplateExperimentOptionsInput;
}
/**
@@ -400,6 +452,24 @@ export interface ExperimentTemplateAction {
startAfter?: string[];
}
+/**
+ * @public
+ * Describes the experiment options for an experiment template.
+ */
+export interface ExperimentTemplateExperimentOptions {
+ /**
+ * @public
+ * The account targeting setting for an experiment template.
+ */
+ accountTargeting?: AccountTargeting;
+
+ /**
+ * @public
+ * The empty target resolution mode for an experiment template.
+ */
+ emptyTargetResolutionMode?: EmptyTargetResolutionMode;
+}
+
/**
* @public
* Describes the configuration for experiment logging to Amazon CloudWatch Logs.
@@ -596,6 +666,18 @@ export interface ExperimentTemplate {
* The configuration for experiment logging.
*/
logConfiguration?: ExperimentTemplateLogConfiguration;
+
+ /**
+ * @public
+ * The experiment options for an experiment template.
+ */
+ experimentOptions?: ExperimentTemplateExperimentOptions;
+
+ /**
+ * @public
+ * The count of target account configurations for the experiment template.
+ */
+ targetAccountConfigurationsCount?: number;
}
/**
@@ -669,6 +751,76 @@ export class ValidationException extends __BaseException {
}
}
+/**
+ * @public
+ */
+export interface CreateTargetAccountConfigurationRequest {
+ /**
+ * @public
+ * Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
+ */
+ clientToken?: string;
+
+ /**
+ * @public
+ * The experiment template ID.
+ */
+ experimentTemplateId: string | undefined;
+
+ /**
+ * @public
+ * The AWS account ID of the target account.
+ */
+ accountId: string | undefined;
+
+ /**
+ * @public
+ * The Amazon Resource Name (ARN) of an IAM role for the target account.
+ */
+ roleArn: string | undefined;
+
+ /**
+ * @public
+ * The description of the target account.
+ */
+ description?: string;
+}
+
+/**
+ * @public
+ * Describes a target account configuration.
+ */
+export interface TargetAccountConfiguration {
+ /**
+ * @public
+ * The Amazon Resource Name (ARN) of an IAM role for the target account.
+ */
+ roleArn?: string;
+
+ /**
+ * @public
+ * The AWS account ID of the target account.
+ */
+ accountId?: string;
+
+ /**
+ * @public
+ * The description of the target account.
+ */
+ description?: string;
+}
+
+/**
+ * @public
+ */
+export interface CreateTargetAccountConfigurationResponse {
+ /**
+ * @public
+ * Information about the target account configuration.
+ */
+ targetAccountConfiguration?: TargetAccountConfiguration;
+}
+
/**
* @public
*/
@@ -691,6 +843,34 @@ export interface DeleteExperimentTemplateResponse {
experimentTemplate?: ExperimentTemplate;
}
+/**
+ * @public
+ */
+export interface DeleteTargetAccountConfigurationRequest {
+ /**
+ * @public
+ * The ID of the experiment template.
+ */
+ experimentTemplateId: string | undefined;
+
+ /**
+ * @public
+ * The AWS account ID of the target account.
+ */
+ accountId: string | undefined;
+}
+
+/**
+ * @public
+ */
+export interface DeleteTargetAccountConfigurationResponse {
+ /**
+ * @public
+ * Information about the target account configuration.
+ */
+ targetAccountConfiguration?: TargetAccountConfiguration;
+}
+
/**
* @public
* @enum
@@ -702,6 +882,7 @@ export const ExperimentActionStatus = {
initiating: "initiating",
pending: "pending",
running: "running",
+ skipped: "skipped",
stopped: "stopped",
stopping: "stopping",
} as const;
@@ -783,6 +964,24 @@ export interface ExperimentAction {
endTime?: Date;
}
+/**
+ * @public
+ * Describes the options for an experiment.
+ */
+export interface ExperimentOptions {
+ /**
+ * @public
+ * The account targeting setting for an experiment.
+ */
+ accountTargeting?: AccountTargeting;
+
+ /**
+ * @public
+ * The empty target resolution mode for an experiment.
+ */
+ emptyTargetResolutionMode?: EmptyTargetResolutionMode;
+}
+
/**
* @public
* Describes the configuration for experiment logging to Amazon CloudWatch Logs.
@@ -1028,6 +1227,18 @@ export interface Experiment {
* The configuration for experiment logging.
*/
logConfiguration?: ExperimentLogConfiguration;
+
+ /**
+ * @public
+ * The experiment options for the experiment.
+ */
+ experimentOptions?: ExperimentOptions;
+
+ /**
+ * @public
+ * The count of target account configurations for the experiment.
+ */
+ targetAccountConfigurationsCount?: number;
}
/**
@@ -1066,6 +1277,54 @@ export interface ExperimentSummary {
tags?: Record;
}
+/**
+ * @public
+ * Describes a target account configuration for an experiment.
+ */
+export interface ExperimentTargetAccountConfiguration {
+ /**
+ * @public
+ * The Amazon Resource Name (ARN) of an IAM role for the target account.
+ */
+ roleArn?: string;
+
+ /**
+ * @public
+ * The AWS account ID of the target account.
+ */
+ accountId?: string;
+
+ /**
+ * @public
+ * The description of the target account.
+ */
+ description?: string;
+}
+
+/**
+ * @public
+ * Provides a summary of a target account configuration.
+ */
+export interface ExperimentTargetAccountConfigurationSummary {
+ /**
+ * @public
+ * The Amazon Resource Name (ARN) of an IAM role for the target account.
+ */
+ roleArn?: string;
+
+ /**
+ * @public
+ * The AWS account ID of the target account.
+ */
+ accountId?: string;
+
+ /**
+ * @public
+ * The description of the target account.
+ */
+ description?: string;
+}
+
/**
* @public
* Provides a summary of an experiment template.
@@ -1146,6 +1405,34 @@ export interface GetExperimentResponse {
experiment?: Experiment;
}
+/**
+ * @public
+ */
+export interface GetExperimentTargetAccountConfigurationRequest {
+ /**
+ * @public
+ * The ID of the experiment.
+ */
+ experimentId: string | undefined;
+
+ /**
+ * @public
+ * The AWS account ID of the target account.
+ */
+ accountId: string | undefined;
+}
+
+/**
+ * @public
+ */
+export interface GetExperimentTargetAccountConfigurationResponse {
+ /**
+ * @public
+ * Information about the target account configuration.
+ */
+ targetAccountConfiguration?: ExperimentTargetAccountConfiguration;
+}
+
/**
* @public
*/
@@ -1168,6 +1455,34 @@ export interface GetExperimentTemplateResponse {
experimentTemplate?: ExperimentTemplate;
}
+/**
+ * @public
+ */
+export interface GetTargetAccountConfigurationRequest {
+ /**
+ * @public
+ * The ID of the experiment template.
+ */
+ experimentTemplateId: string | undefined;
+
+ /**
+ * @public
+ * The AWS account ID of the target account.
+ */
+ accountId: string | undefined;
+}
+
+/**
+ * @public
+ */
+export interface GetTargetAccountConfigurationResponse {
+ /**
+ * @public
+ * Information about the target account configuration.
+ */
+ targetAccountConfiguration?: TargetAccountConfiguration;
+}
+
/**
* @public
*/
@@ -1267,6 +1582,78 @@ export interface ListActionsResponse {
nextToken?: string;
}
+/**
+ * @public
+ */
+export interface ListExperimentResolvedTargetsRequest {
+ /**
+ * @public
+ * The ID of the experiment.
+ */
+ experimentId: string | undefined;
+
+ /**
+ * @public
+ * The maximum number of results to return with a single call. To retrieve the remaining results,
+ * make another call with the returned nextToken value.
+ */
+ maxResults?: number;
+
+ /**
+ * @public
+ * The token for the next page of results.
+ */
+ nextToken?: string;
+
+ /**
+ * @public
+ * The name of the target.
+ */
+ targetName?: string;
+}
+
+/**
+ * @public
+ * Describes a resolved target.
+ */
+export interface ResolvedTarget {
+ /**
+ * @public
+ * The resource type of the target.
+ */
+ resourceType?: string;
+
+ /**
+ * @public
+ * The name of the target.
+ */
+ targetName?: string;
+
+ /**
+ * @public
+ * Information about the target.
+ */
+ targetInformation?: Record;
+}
+
+/**
+ * @public
+ */
+export interface ListExperimentResolvedTargetsResponse {
+ /**
+ * @public
+ * The resolved targets.
+ */
+ resolvedTargets?: ResolvedTarget[];
+
+ /**
+ * @public
+ * The token to use to retrieve the next page of results.
+ * This value is null when there are no more results to return.
+ */
+ nextToken?: string;
+}
+
/**
* @public
*/
@@ -1301,6 +1688,41 @@ export interface ListExperimentsResponse {
nextToken?: string;
}
+/**
+ * @public
+ */
+export interface ListExperimentTargetAccountConfigurationsRequest {
+ /**
+ * @public
+ * The ID of the experiment.
+ */
+ experimentId: string | undefined;
+
+ /**
+ * @public
+ * The token for the next page of results.
+ */
+ nextToken?: string;
+}
+
+/**
+ * @public
+ */
+export interface ListExperimentTargetAccountConfigurationsResponse {
+ /**
+ * @public
+ * The target account configurations.
+ */
+ targetAccountConfigurations?: ExperimentTargetAccountConfigurationSummary[];
+
+ /**
+ * @public
+ * The token to use to retrieve the next page of results.
+ * This value is null when there are no more results to return.
+ */
+ nextToken?: string;
+}
+
/**
* @public
*/
@@ -1357,6 +1779,72 @@ export interface ListTagsForResourceResponse {
tags?: Record;
}
+/**
+ * @public
+ */
+export interface ListTargetAccountConfigurationsRequest {
+ /**
+ * @public
+ * The ID of the experiment template.
+ */
+ experimentTemplateId: string | undefined;
+
+ /**
+ * @public
+ * The maximum number of results to return with a single call. To retrieve the remaining results,
+ * make another call with the returned nextToken value.
+ */
+ maxResults?: number;
+
+ /**
+ * @public
+ * The token for the next page of results.
+ */
+ nextToken?: string;
+}
+
+/**
+ * @public
+ * Provides a summary of a target account configuration.
+ */
+export interface TargetAccountConfigurationSummary {
+ /**
+ * @public
+ * The Amazon Resource Name (ARN) of an IAM role for the target account.
+ */
+ roleArn?: string;
+
+ /**
+ * @public
+ * The AWS account ID of the target account.
+ */
+ accountId?: string;
+
+ /**
+ * @public
+ * The description of the target account.
+ */
+ description?: string;
+}
+
+/**
+ * @public
+ */
+export interface ListTargetAccountConfigurationsResponse {
+ /**
+ * @public
+ * The target account configurations.
+ */
+ targetAccountConfigurations?: TargetAccountConfigurationSummary[];
+
+ /**
+ * @public
+ * The token to use to retrieve the next page of results.
+ * This value is null when there are no more results to return.
+ */
+ nextToken?: string;
+}
+
/**
* @public
*/
@@ -1545,6 +2033,18 @@ export interface UpdateExperimentTemplateActionInputItem {
startAfter?: string[];
}
+/**
+ * @public
+ * Specifies an experiment option for an experiment template.
+ */
+export interface UpdateExperimentTemplateExperimentOptionsInput {
+ /**
+ * @public
+ * The empty target resolution mode of the experiment template.
+ */
+ emptyTargetResolutionMode?: EmptyTargetResolutionMode;
+}
+
/**
* @public
* Specifies the configuration for experiment logging.
@@ -1676,6 +2176,12 @@ export interface UpdateExperimentTemplateRequest {
* The configuration for experiment logging.
*/
logConfiguration?: UpdateExperimentTemplateLogConfigurationInput;
+
+ /**
+ * @public
+ * The experiment options for the experiment template.
+ */
+ experimentOptions?: UpdateExperimentTemplateExperimentOptionsInput;
}
/**
@@ -1688,3 +2194,43 @@ export interface UpdateExperimentTemplateResponse {
*/
experimentTemplate?: ExperimentTemplate;
}
+
+/**
+ * @public
+ */
+export interface UpdateTargetAccountConfigurationRequest {
+ /**
+ * @public
+ * The ID of the experiment template.
+ */
+ experimentTemplateId: string | undefined;
+
+ /**
+ * @public
+ * The AWS account ID of the target account.
+ */
+ accountId: string | undefined;
+
+ /**
+ * @public
+ * The Amazon Resource Name (ARN) of an IAM role for the target account.
+ */
+ roleArn?: string;
+
+ /**
+ * @public
+ * The description of the target account.
+ */
+ description?: string;
+}
+
+/**
+ * @public
+ */
+export interface UpdateTargetAccountConfigurationResponse {
+ /**
+ * @public
+ * Information about the target account configuration.
+ */
+ targetAccountConfiguration?: TargetAccountConfiguration;
+}
diff --git a/clients/client-fis/src/pagination/ListExperimentResolvedTargetsPaginator.ts b/clients/client-fis/src/pagination/ListExperimentResolvedTargetsPaginator.ts
new file mode 100644
index 0000000000000..bacf77c18a63b
--- /dev/null
+++ b/clients/client-fis/src/pagination/ListExperimentResolvedTargetsPaginator.ts
@@ -0,0 +1,50 @@
+// smithy-typescript generated code
+import { Paginator } from "@smithy/types";
+
+import {
+ ListExperimentResolvedTargetsCommand,
+ ListExperimentResolvedTargetsCommandInput,
+ ListExperimentResolvedTargetsCommandOutput,
+} from "../commands/ListExperimentResolvedTargetsCommand";
+import { FisClient } from "../FisClient";
+import { FisPaginationConfiguration } from "./Interfaces";
+
+/**
+ * @internal
+ */
+const makePagedClientRequest = async (
+ client: FisClient,
+ input: ListExperimentResolvedTargetsCommandInput,
+ ...args: any
+): Promise => {
+ // @ts-ignore
+ return await client.send(new ListExperimentResolvedTargetsCommand(input), ...args);
+};
+/**
+ * @public
+ */
+export async function* paginateListExperimentResolvedTargets(
+ config: FisPaginationConfiguration,
+ input: ListExperimentResolvedTargetsCommandInput,
+ ...additionalArguments: any
+): Paginator {
+ // ToDo: replace with actual type instead of typeof input.nextToken
+ let token: typeof input.nextToken | undefined = config.startingToken || undefined;
+ let hasNext = true;
+ let page: ListExperimentResolvedTargetsCommandOutput;
+ while (hasNext) {
+ input.nextToken = token;
+ input["maxResults"] = config.pageSize;
+ if (config.client instanceof FisClient) {
+ page = await makePagedClientRequest(config.client, input, ...additionalArguments);
+ } else {
+ throw new Error("Invalid client, expected Fis | FisClient");
+ }
+ yield page;
+ const prevToken = token;
+ token = page.nextToken;
+ hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));
+ }
+ // @ts-ignore
+ return undefined;
+}
diff --git a/clients/client-fis/src/pagination/ListTargetAccountConfigurationsPaginator.ts b/clients/client-fis/src/pagination/ListTargetAccountConfigurationsPaginator.ts
new file mode 100644
index 0000000000000..99154d8cec894
--- /dev/null
+++ b/clients/client-fis/src/pagination/ListTargetAccountConfigurationsPaginator.ts
@@ -0,0 +1,50 @@
+// smithy-typescript generated code
+import { Paginator } from "@smithy/types";
+
+import {
+ ListTargetAccountConfigurationsCommand,
+ ListTargetAccountConfigurationsCommandInput,
+ ListTargetAccountConfigurationsCommandOutput,
+} from "../commands/ListTargetAccountConfigurationsCommand";
+import { FisClient } from "../FisClient";
+import { FisPaginationConfiguration } from "./Interfaces";
+
+/**
+ * @internal
+ */
+const makePagedClientRequest = async (
+ client: FisClient,
+ input: ListTargetAccountConfigurationsCommandInput,
+ ...args: any
+): Promise => {
+ // @ts-ignore
+ return await client.send(new ListTargetAccountConfigurationsCommand(input), ...args);
+};
+/**
+ * @public
+ */
+export async function* paginateListTargetAccountConfigurations(
+ config: FisPaginationConfiguration,
+ input: ListTargetAccountConfigurationsCommandInput,
+ ...additionalArguments: any
+): Paginator {
+ // ToDo: replace with actual type instead of typeof input.nextToken
+ let token: typeof input.nextToken | undefined = config.startingToken || undefined;
+ let hasNext = true;
+ let page: ListTargetAccountConfigurationsCommandOutput;
+ while (hasNext) {
+ input.nextToken = token;
+ input["maxResults"] = config.pageSize;
+ if (config.client instanceof FisClient) {
+ page = await makePagedClientRequest(config.client, input, ...additionalArguments);
+ } else {
+ throw new Error("Invalid client, expected Fis | FisClient");
+ }
+ yield page;
+ const prevToken = token;
+ token = page.nextToken;
+ hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));
+ }
+ // @ts-ignore
+ return undefined;
+}
diff --git a/clients/client-fis/src/pagination/index.ts b/clients/client-fis/src/pagination/index.ts
index 2a11d14dbfc43..beb806b471478 100644
--- a/clients/client-fis/src/pagination/index.ts
+++ b/clients/client-fis/src/pagination/index.ts
@@ -1,6 +1,8 @@
// smithy-typescript generated code
export * from "./Interfaces";
export * from "./ListActionsPaginator";
+export * from "./ListExperimentResolvedTargetsPaginator";
export * from "./ListExperimentTemplatesPaginator";
export * from "./ListExperimentsPaginator";
+export * from "./ListTargetAccountConfigurationsPaginator";
export * from "./ListTargetResourceTypesPaginator";
diff --git a/clients/client-fis/src/protocols/Aws_restJson1.ts b/clients/client-fis/src/protocols/Aws_restJson1.ts
index 6f53aa32061b9..5d24bd55b26e9 100644
--- a/clients/client-fis/src/protocols/Aws_restJson1.ts
+++ b/clients/client-fis/src/protocols/Aws_restJson1.ts
@@ -4,6 +4,7 @@ import {
_json,
collectBody,
decorateServiceException as __decorateServiceException,
+ expectLong as __expectLong,
expectNonNull as __expectNonNull,
expectNumber as __expectNumber,
expectObject as __expectObject,
@@ -26,22 +27,46 @@ import {
CreateExperimentTemplateCommandInput,
CreateExperimentTemplateCommandOutput,
} from "../commands/CreateExperimentTemplateCommand";
+import {
+ CreateTargetAccountConfigurationCommandInput,
+ CreateTargetAccountConfigurationCommandOutput,
+} from "../commands/CreateTargetAccountConfigurationCommand";
import {
DeleteExperimentTemplateCommandInput,
DeleteExperimentTemplateCommandOutput,
} from "../commands/DeleteExperimentTemplateCommand";
+import {
+ DeleteTargetAccountConfigurationCommandInput,
+ DeleteTargetAccountConfigurationCommandOutput,
+} from "../commands/DeleteTargetAccountConfigurationCommand";
import { GetActionCommandInput, GetActionCommandOutput } from "../commands/GetActionCommand";
import { GetExperimentCommandInput, GetExperimentCommandOutput } from "../commands/GetExperimentCommand";
+import {
+ GetExperimentTargetAccountConfigurationCommandInput,
+ GetExperimentTargetAccountConfigurationCommandOutput,
+} from "../commands/GetExperimentTargetAccountConfigurationCommand";
import {
GetExperimentTemplateCommandInput,
GetExperimentTemplateCommandOutput,
} from "../commands/GetExperimentTemplateCommand";
+import {
+ GetTargetAccountConfigurationCommandInput,
+ GetTargetAccountConfigurationCommandOutput,
+} from "../commands/GetTargetAccountConfigurationCommand";
import {
GetTargetResourceTypeCommandInput,
GetTargetResourceTypeCommandOutput,
} from "../commands/GetTargetResourceTypeCommand";
import { ListActionsCommandInput, ListActionsCommandOutput } from "../commands/ListActionsCommand";
+import {
+ ListExperimentResolvedTargetsCommandInput,
+ ListExperimentResolvedTargetsCommandOutput,
+} from "../commands/ListExperimentResolvedTargetsCommand";
import { ListExperimentsCommandInput, ListExperimentsCommandOutput } from "../commands/ListExperimentsCommand";
+import {
+ ListExperimentTargetAccountConfigurationsCommandInput,
+ ListExperimentTargetAccountConfigurationsCommandOutput,
+} from "../commands/ListExperimentTargetAccountConfigurationsCommand";
import {
ListExperimentTemplatesCommandInput,
ListExperimentTemplatesCommandOutput,
@@ -50,6 +75,10 @@ import {
ListTagsForResourceCommandInput,
ListTagsForResourceCommandOutput,
} from "../commands/ListTagsForResourceCommand";
+import {
+ ListTargetAccountConfigurationsCommandInput,
+ ListTargetAccountConfigurationsCommandOutput,
+} from "../commands/ListTargetAccountConfigurationsCommand";
import {
ListTargetResourceTypesCommandInput,
ListTargetResourceTypesCommandOutput,
@@ -62,10 +91,15 @@ import {
UpdateExperimentTemplateCommandInput,
UpdateExperimentTemplateCommandOutput,
} from "../commands/UpdateExperimentTemplateCommand";
+import {
+ UpdateTargetAccountConfigurationCommandInput,
+ UpdateTargetAccountConfigurationCommandOutput,
+} from "../commands/UpdateTargetAccountConfigurationCommand";
import { FisServiceException as __BaseException } from "../models/FisServiceException";
import {
ConflictException,
CreateExperimentTemplateActionInput,
+ CreateExperimentTemplateExperimentOptionsInput,
CreateExperimentTemplateLogConfigurationInput,
CreateExperimentTemplateStopConditionInput,
CreateExperimentTemplateTargetInput,
@@ -80,6 +114,7 @@ import {
ResourceNotFoundException,
ServiceQuotaExceededException,
UpdateExperimentTemplateActionInputItem,
+ UpdateExperimentTemplateExperimentOptionsInput,
UpdateExperimentTemplateLogConfigurationInput,
UpdateExperimentTemplateStopConditionInput,
UpdateExperimentTemplateTargetInput,
@@ -104,6 +139,7 @@ export const se_CreateExperimentTemplateCommand = async (
actions: (_) => _json(_),
clientToken: [true, (_) => _ ?? generateIdempotencyToken()],
description: [],
+ experimentOptions: (_) => _json(_),
logConfiguration: (_) => _json(_),
roleArn: [],
stopConditions: (_) => _json(_),
@@ -122,6 +158,48 @@ export const se_CreateExperimentTemplateCommand = async (
});
};
+/**
+ * serializeAws_restJson1CreateTargetAccountConfigurationCommand
+ */
+export const se_CreateTargetAccountConfigurationCommand = async (
+ input: CreateTargetAccountConfigurationCommandInput,
+ context: __SerdeContext
+): Promise<__HttpRequest> => {
+ const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
+ const headers: any = {
+ "content-type": "application/json",
+ };
+ let resolvedPath =
+ `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` +
+ "/experimentTemplates/{experimentTemplateId}/targetAccountConfigurations/{accountId}";
+ resolvedPath = __resolvedPath(
+ resolvedPath,
+ input,
+ "experimentTemplateId",
+ () => input.experimentTemplateId!,
+ "{experimentTemplateId}",
+ false
+ );
+ resolvedPath = __resolvedPath(resolvedPath, input, "accountId", () => input.accountId!, "{accountId}", false);
+ let body: any;
+ body = JSON.stringify(
+ take(input, {
+ clientToken: [true, (_) => _ ?? generateIdempotencyToken()],
+ description: [],
+ roleArn: [],
+ })
+ );
+ return new __HttpRequest({
+ protocol,
+ hostname,
+ port,
+ method: "POST",
+ headers,
+ path: resolvedPath,
+ body,
+ });
+};
+
/**
* serializeAws_restJson1DeleteExperimentTemplateCommand
*/
@@ -146,6 +224,39 @@ export const se_DeleteExperimentTemplateCommand = async (
});
};
+/**
+ * serializeAws_restJson1DeleteTargetAccountConfigurationCommand
+ */
+export const se_DeleteTargetAccountConfigurationCommand = async (
+ input: DeleteTargetAccountConfigurationCommandInput,
+ context: __SerdeContext
+): Promise<__HttpRequest> => {
+ const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
+ const headers: any = {};
+ let resolvedPath =
+ `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` +
+ "/experimentTemplates/{experimentTemplateId}/targetAccountConfigurations/{accountId}";
+ resolvedPath = __resolvedPath(
+ resolvedPath,
+ input,
+ "experimentTemplateId",
+ () => input.experimentTemplateId!,
+ "{experimentTemplateId}",
+ false
+ );
+ resolvedPath = __resolvedPath(resolvedPath, input, "accountId", () => input.accountId!, "{accountId}", false);
+ let body: any;
+ return new __HttpRequest({
+ protocol,
+ hostname,
+ port,
+ method: "DELETE",
+ headers,
+ path: resolvedPath,
+ body,
+ });
+};
+
/**
* serializeAws_restJson1GetActionCommand
*/
@@ -192,6 +303,39 @@ export const se_GetExperimentCommand = async (
});
};
+/**
+ * serializeAws_restJson1GetExperimentTargetAccountConfigurationCommand
+ */
+export const se_GetExperimentTargetAccountConfigurationCommand = async (
+ input: GetExperimentTargetAccountConfigurationCommandInput,
+ context: __SerdeContext
+): Promise<__HttpRequest> => {
+ const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
+ const headers: any = {};
+ let resolvedPath =
+ `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` +
+ "/experiments/{experimentId}/targetAccountConfigurations/{accountId}";
+ resolvedPath = __resolvedPath(
+ resolvedPath,
+ input,
+ "experimentId",
+ () => input.experimentId!,
+ "{experimentId}",
+ false
+ );
+ resolvedPath = __resolvedPath(resolvedPath, input, "accountId", () => input.accountId!, "{accountId}", false);
+ let body: any;
+ return new __HttpRequest({
+ protocol,
+ hostname,
+ port,
+ method: "GET",
+ headers,
+ path: resolvedPath,
+ body,
+ });
+};
+
/**
* serializeAws_restJson1GetExperimentTemplateCommand
*/
@@ -216,6 +360,39 @@ export const se_GetExperimentTemplateCommand = async (
});
};
+/**
+ * serializeAws_restJson1GetTargetAccountConfigurationCommand
+ */
+export const se_GetTargetAccountConfigurationCommand = async (
+ input: GetTargetAccountConfigurationCommandInput,
+ context: __SerdeContext
+): Promise<__HttpRequest> => {
+ const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
+ const headers: any = {};
+ let resolvedPath =
+ `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` +
+ "/experimentTemplates/{experimentTemplateId}/targetAccountConfigurations/{accountId}";
+ resolvedPath = __resolvedPath(
+ resolvedPath,
+ input,
+ "experimentTemplateId",
+ () => input.experimentTemplateId!,
+ "{experimentTemplateId}",
+ false
+ );
+ resolvedPath = __resolvedPath(resolvedPath, input, "accountId", () => input.accountId!, "{accountId}", false);
+ let body: any;
+ return new __HttpRequest({
+ protocol,
+ hostname,
+ port,
+ method: "GET",
+ headers,
+ path: resolvedPath,
+ body,
+ });
+};
+
/**
* serializeAws_restJson1GetTargetResourceTypeCommand
*/
@@ -274,6 +451,44 @@ export const se_ListActionsCommand = async (
});
};
+/**
+ * serializeAws_restJson1ListExperimentResolvedTargetsCommand
+ */
+export const se_ListExperimentResolvedTargetsCommand = async (
+ input: ListExperimentResolvedTargetsCommandInput,
+ context: __SerdeContext
+): Promise<__HttpRequest> => {
+ const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
+ const headers: any = {};
+ let resolvedPath =
+ `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` +
+ "/experiments/{experimentId}/resolvedTargets";
+ resolvedPath = __resolvedPath(
+ resolvedPath,
+ input,
+ "experimentId",
+ () => input.experimentId!,
+ "{experimentId}",
+ false
+ );
+ const query: any = map({
+ maxResults: [() => input.maxResults !== void 0, () => input.maxResults!.toString()],
+ nextToken: [, input.nextToken!],
+ targetName: [, input.targetName!],
+ });
+ let body: any;
+ return new __HttpRequest({
+ protocol,
+ hostname,
+ port,
+ method: "GET",
+ headers,
+ path: resolvedPath,
+ query,
+ body,
+ });
+};
+
/**
* serializeAws_restJson1ListExperimentsCommand
*/
@@ -301,6 +516,42 @@ export const se_ListExperimentsCommand = async (
});
};
+/**
+ * serializeAws_restJson1ListExperimentTargetAccountConfigurationsCommand
+ */
+export const se_ListExperimentTargetAccountConfigurationsCommand = async (
+ input: ListExperimentTargetAccountConfigurationsCommandInput,
+ context: __SerdeContext
+): Promise<__HttpRequest> => {
+ const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
+ const headers: any = {};
+ let resolvedPath =
+ `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` +
+ "/experiments/{experimentId}/targetAccountConfigurations";
+ resolvedPath = __resolvedPath(
+ resolvedPath,
+ input,
+ "experimentId",
+ () => input.experimentId!,
+ "{experimentId}",
+ false
+ );
+ const query: any = map({
+ nextToken: [, input.nextToken!],
+ });
+ let body: any;
+ return new __HttpRequest({
+ protocol,
+ hostname,
+ port,
+ method: "GET",
+ headers,
+ path: resolvedPath,
+ query,
+ body,
+ });
+};
+
/**
* serializeAws_restJson1ListExperimentTemplatesCommand
*/
@@ -351,6 +602,43 @@ export const se_ListTagsForResourceCommand = async (
});
};
+/**
+ * serializeAws_restJson1ListTargetAccountConfigurationsCommand
+ */
+export const se_ListTargetAccountConfigurationsCommand = async (
+ input: ListTargetAccountConfigurationsCommandInput,
+ context: __SerdeContext
+): Promise<__HttpRequest> => {
+ const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
+ const headers: any = {};
+ let resolvedPath =
+ `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` +
+ "/experimentTemplates/{experimentTemplateId}/targetAccountConfigurations";
+ resolvedPath = __resolvedPath(
+ resolvedPath,
+ input,
+ "experimentTemplateId",
+ () => input.experimentTemplateId!,
+ "{experimentTemplateId}",
+ false
+ );
+ const query: any = map({
+ maxResults: [() => input.maxResults !== void 0, () => input.maxResults!.toString()],
+ nextToken: [, input.nextToken!],
+ });
+ let body: any;
+ return new __HttpRequest({
+ protocol,
+ hostname,
+ port,
+ method: "GET",
+ headers,
+ path: resolvedPath,
+ query,
+ body,
+ });
+};
+
/**
* serializeAws_restJson1ListTargetResourceTypesCommand
*/
@@ -508,6 +796,7 @@ export const se_UpdateExperimentTemplateCommand = async (
take(input, {
actions: (_) => _json(_),
description: [],
+ experimentOptions: (_) => _json(_),
logConfiguration: (_) => _json(_),
roleArn: [],
stopConditions: (_) => _json(_),
@@ -526,48 +815,295 @@ export const se_UpdateExperimentTemplateCommand = async (
};
/**
- * deserializeAws_restJson1CreateExperimentTemplateCommand
+ * serializeAws_restJson1UpdateTargetAccountConfigurationCommand
+ */
+export const se_UpdateTargetAccountConfigurationCommand = async (
+ input: UpdateTargetAccountConfigurationCommandInput,
+ context: __SerdeContext
+): Promise<__HttpRequest> => {
+ const { hostname, protocol = "https", port, path: basePath } = await context.endpoint();
+ const headers: any = {
+ "content-type": "application/json",
+ };
+ let resolvedPath =
+ `${basePath?.endsWith("/") ? basePath.slice(0, -1) : basePath || ""}` +
+ "/experimentTemplates/{experimentTemplateId}/targetAccountConfigurations/{accountId}";
+ resolvedPath = __resolvedPath(
+ resolvedPath,
+ input,
+ "experimentTemplateId",
+ () => input.experimentTemplateId!,
+ "{experimentTemplateId}",
+ false
+ );
+ resolvedPath = __resolvedPath(resolvedPath, input, "accountId", () => input.accountId!, "{accountId}", false);
+ let body: any;
+ body = JSON.stringify(
+ take(input, {
+ description: [],
+ roleArn: [],
+ })
+ );
+ return new __HttpRequest({
+ protocol,
+ hostname,
+ port,
+ method: "PATCH",
+ headers,
+ path: resolvedPath,
+ body,
+ });
+};
+
+/**
+ * deserializeAws_restJson1CreateExperimentTemplateCommand
+ */
+export const de_CreateExperimentTemplateCommand = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
+ return de_CreateExperimentTemplateCommandError(output, context);
+ }
+ const contents: any = map({
+ $metadata: deserializeMetadata(output),
+ });
+ const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
+ const doc = take(data, {
+ experimentTemplate: (_) => de_ExperimentTemplate(_, context),
+ });
+ Object.assign(contents, doc);
+ return contents;
+};
+
+/**
+ * deserializeAws_restJson1CreateExperimentTemplateCommandError
+ */
+const de_CreateExperimentTemplateCommandError = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ const parsedOutput: any = {
+ ...output,
+ body: await parseErrorBody(output.body, context),
+ };
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
+ switch (errorCode) {
+ case "ConflictException":
+ case "com.amazonaws.fis#ConflictException":
+ throw await de_ConflictExceptionRes(parsedOutput, context);
+ case "ResourceNotFoundException":
+ case "com.amazonaws.fis#ResourceNotFoundException":
+ throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);
+ case "ServiceQuotaExceededException":
+ case "com.amazonaws.fis#ServiceQuotaExceededException":
+ throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context);
+ case "ValidationException":
+ case "com.amazonaws.fis#ValidationException":
+ throw await de_ValidationExceptionRes(parsedOutput, context);
+ default:
+ const parsedBody = parsedOutput.body;
+ return throwDefaultError({
+ output,
+ parsedBody,
+ errorCode,
+ });
+ }
+};
+
+/**
+ * deserializeAws_restJson1CreateTargetAccountConfigurationCommand
+ */
+export const de_CreateTargetAccountConfigurationCommand = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
+ return de_CreateTargetAccountConfigurationCommandError(output, context);
+ }
+ const contents: any = map({
+ $metadata: deserializeMetadata(output),
+ });
+ const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
+ const doc = take(data, {
+ targetAccountConfiguration: _json,
+ });
+ Object.assign(contents, doc);
+ return contents;
+};
+
+/**
+ * deserializeAws_restJson1CreateTargetAccountConfigurationCommandError
+ */
+const de_CreateTargetAccountConfigurationCommandError = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ const parsedOutput: any = {
+ ...output,
+ body: await parseErrorBody(output.body, context),
+ };
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
+ switch (errorCode) {
+ case "ConflictException":
+ case "com.amazonaws.fis#ConflictException":
+ throw await de_ConflictExceptionRes(parsedOutput, context);
+ case "ResourceNotFoundException":
+ case "com.amazonaws.fis#ResourceNotFoundException":
+ throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);
+ case "ServiceQuotaExceededException":
+ case "com.amazonaws.fis#ServiceQuotaExceededException":
+ throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context);
+ case "ValidationException":
+ case "com.amazonaws.fis#ValidationException":
+ throw await de_ValidationExceptionRes(parsedOutput, context);
+ default:
+ const parsedBody = parsedOutput.body;
+ return throwDefaultError({
+ output,
+ parsedBody,
+ errorCode,
+ });
+ }
+};
+
+/**
+ * deserializeAws_restJson1DeleteExperimentTemplateCommand
+ */
+export const de_DeleteExperimentTemplateCommand = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
+ return de_DeleteExperimentTemplateCommandError(output, context);
+ }
+ const contents: any = map({
+ $metadata: deserializeMetadata(output),
+ });
+ const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
+ const doc = take(data, {
+ experimentTemplate: (_) => de_ExperimentTemplate(_, context),
+ });
+ Object.assign(contents, doc);
+ return contents;
+};
+
+/**
+ * deserializeAws_restJson1DeleteExperimentTemplateCommandError
+ */
+const de_DeleteExperimentTemplateCommandError = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ const parsedOutput: any = {
+ ...output,
+ body: await parseErrorBody(output.body, context),
+ };
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
+ switch (errorCode) {
+ case "ResourceNotFoundException":
+ case "com.amazonaws.fis#ResourceNotFoundException":
+ throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);
+ case "ValidationException":
+ case "com.amazonaws.fis#ValidationException":
+ throw await de_ValidationExceptionRes(parsedOutput, context);
+ default:
+ const parsedBody = parsedOutput.body;
+ return throwDefaultError({
+ output,
+ parsedBody,
+ errorCode,
+ });
+ }
+};
+
+/**
+ * deserializeAws_restJson1DeleteTargetAccountConfigurationCommand
+ */
+export const de_DeleteTargetAccountConfigurationCommand = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
+ return de_DeleteTargetAccountConfigurationCommandError(output, context);
+ }
+ const contents: any = map({
+ $metadata: deserializeMetadata(output),
+ });
+ const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
+ const doc = take(data, {
+ targetAccountConfiguration: _json,
+ });
+ Object.assign(contents, doc);
+ return contents;
+};
+
+/**
+ * deserializeAws_restJson1DeleteTargetAccountConfigurationCommandError
+ */
+const de_DeleteTargetAccountConfigurationCommandError = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ const parsedOutput: any = {
+ ...output,
+ body: await parseErrorBody(output.body, context),
+ };
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
+ switch (errorCode) {
+ case "ResourceNotFoundException":
+ case "com.amazonaws.fis#ResourceNotFoundException":
+ throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);
+ case "ValidationException":
+ case "com.amazonaws.fis#ValidationException":
+ throw await de_ValidationExceptionRes(parsedOutput, context);
+ default:
+ const parsedBody = parsedOutput.body;
+ return throwDefaultError({
+ output,
+ parsedBody,
+ errorCode,
+ });
+ }
+};
+
+/**
+ * deserializeAws_restJson1GetActionCommand
*/
-export const de_CreateExperimentTemplateCommand = async (
+export const de_GetActionCommand = async (
output: __HttpResponse,
context: __SerdeContext
-): Promise => {
+): Promise => {
if (output.statusCode !== 200 && output.statusCode >= 300) {
- return de_CreateExperimentTemplateCommandError(output, context);
+ return de_GetActionCommandError(output, context);
}
const contents: any = map({
$metadata: deserializeMetadata(output),
});
const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
const doc = take(data, {
- experimentTemplate: (_) => de_ExperimentTemplate(_, context),
+ action: _json,
});
Object.assign(contents, doc);
return contents;
};
/**
- * deserializeAws_restJson1CreateExperimentTemplateCommandError
+ * deserializeAws_restJson1GetActionCommandError
*/
-const de_CreateExperimentTemplateCommandError = async (
+const de_GetActionCommandError = async (
output: __HttpResponse,
context: __SerdeContext
-): Promise => {
+): Promise => {
const parsedOutput: any = {
...output,
body: await parseErrorBody(output.body, context),
};
const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
switch (errorCode) {
- case "ConflictException":
- case "com.amazonaws.fis#ConflictException":
- throw await de_ConflictExceptionRes(parsedOutput, context);
case "ResourceNotFoundException":
case "com.amazonaws.fis#ResourceNotFoundException":
throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);
- case "ServiceQuotaExceededException":
- case "com.amazonaws.fis#ServiceQuotaExceededException":
- throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context);
case "ValidationException":
case "com.amazonaws.fis#ValidationException":
throw await de_ValidationExceptionRes(parsedOutput, context);
@@ -582,33 +1118,33 @@ const de_CreateExperimentTemplateCommandError = async (
};
/**
- * deserializeAws_restJson1DeleteExperimentTemplateCommand
+ * deserializeAws_restJson1GetExperimentCommand
*/
-export const de_DeleteExperimentTemplateCommand = async (
+export const de_GetExperimentCommand = async (
output: __HttpResponse,
context: __SerdeContext
-): Promise => {
+): Promise => {
if (output.statusCode !== 200 && output.statusCode >= 300) {
- return de_DeleteExperimentTemplateCommandError(output, context);
+ return de_GetExperimentCommandError(output, context);
}
const contents: any = map({
$metadata: deserializeMetadata(output),
});
const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
const doc = take(data, {
- experimentTemplate: (_) => de_ExperimentTemplate(_, context),
+ experiment: (_) => de_Experiment(_, context),
});
Object.assign(contents, doc);
return contents;
};
/**
- * deserializeAws_restJson1DeleteExperimentTemplateCommandError
+ * deserializeAws_restJson1GetExperimentCommandError
*/
-const de_DeleteExperimentTemplateCommandError = async (
+const de_GetExperimentCommandError = async (
output: __HttpResponse,
context: __SerdeContext
-): Promise => {
+): Promise => {
const parsedOutput: any = {
...output,
body: await parseErrorBody(output.body, context),
@@ -632,33 +1168,33 @@ const de_DeleteExperimentTemplateCommandError = async (
};
/**
- * deserializeAws_restJson1GetActionCommand
+ * deserializeAws_restJson1GetExperimentTargetAccountConfigurationCommand
*/
-export const de_GetActionCommand = async (
+export const de_GetExperimentTargetAccountConfigurationCommand = async (
output: __HttpResponse,
context: __SerdeContext
-): Promise => {
+): Promise => {
if (output.statusCode !== 200 && output.statusCode >= 300) {
- return de_GetActionCommandError(output, context);
+ return de_GetExperimentTargetAccountConfigurationCommandError(output, context);
}
const contents: any = map({
$metadata: deserializeMetadata(output),
});
const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
const doc = take(data, {
- action: _json,
+ targetAccountConfiguration: _json,
});
Object.assign(contents, doc);
return contents;
};
/**
- * deserializeAws_restJson1GetActionCommandError
+ * deserializeAws_restJson1GetExperimentTargetAccountConfigurationCommandError
*/
-const de_GetActionCommandError = async (
+const de_GetExperimentTargetAccountConfigurationCommandError = async (
output: __HttpResponse,
context: __SerdeContext
-): Promise => {
+): Promise => {
const parsedOutput: any = {
...output,
body: await parseErrorBody(output.body, context),
@@ -682,33 +1218,33 @@ const de_GetActionCommandError = async (
};
/**
- * deserializeAws_restJson1GetExperimentCommand
+ * deserializeAws_restJson1GetExperimentTemplateCommand
*/
-export const de_GetExperimentCommand = async (
+export const de_GetExperimentTemplateCommand = async (
output: __HttpResponse,
context: __SerdeContext
-): Promise => {
+): Promise => {
if (output.statusCode !== 200 && output.statusCode >= 300) {
- return de_GetExperimentCommandError(output, context);
+ return de_GetExperimentTemplateCommandError(output, context);
}
const contents: any = map({
$metadata: deserializeMetadata(output),
});
const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
const doc = take(data, {
- experiment: (_) => de_Experiment(_, context),
+ experimentTemplate: (_) => de_ExperimentTemplate(_, context),
});
Object.assign(contents, doc);
return contents;
};
/**
- * deserializeAws_restJson1GetExperimentCommandError
+ * deserializeAws_restJson1GetExperimentTemplateCommandError
*/
-const de_GetExperimentCommandError = async (
+const de_GetExperimentTemplateCommandError = async (
output: __HttpResponse,
context: __SerdeContext
-): Promise => {
+): Promise => {
const parsedOutput: any = {
...output,
body: await parseErrorBody(output.body, context),
@@ -732,33 +1268,33 @@ const de_GetExperimentCommandError = async (
};
/**
- * deserializeAws_restJson1GetExperimentTemplateCommand
+ * deserializeAws_restJson1GetTargetAccountConfigurationCommand
*/
-export const de_GetExperimentTemplateCommand = async (
+export const de_GetTargetAccountConfigurationCommand = async (
output: __HttpResponse,
context: __SerdeContext
-): Promise => {
+): Promise => {
if (output.statusCode !== 200 && output.statusCode >= 300) {
- return de_GetExperimentTemplateCommandError(output, context);
+ return de_GetTargetAccountConfigurationCommandError(output, context);
}
const contents: any = map({
$metadata: deserializeMetadata(output),
});
const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
const doc = take(data, {
- experimentTemplate: (_) => de_ExperimentTemplate(_, context),
+ targetAccountConfiguration: _json,
});
Object.assign(contents, doc);
return contents;
};
/**
- * deserializeAws_restJson1GetExperimentTemplateCommandError
+ * deserializeAws_restJson1GetTargetAccountConfigurationCommandError
*/
-const de_GetExperimentTemplateCommandError = async (
+const de_GetTargetAccountConfigurationCommandError = async (
output: __HttpResponse,
context: __SerdeContext
-): Promise => {
+): Promise => {
const parsedOutput: any = {
...output,
body: await parseErrorBody(output.body, context),
@@ -879,6 +1415,57 @@ const de_ListActionsCommandError = async (
}
};
+/**
+ * deserializeAws_restJson1ListExperimentResolvedTargetsCommand
+ */
+export const de_ListExperimentResolvedTargetsCommand = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
+ return de_ListExperimentResolvedTargetsCommandError(output, context);
+ }
+ const contents: any = map({
+ $metadata: deserializeMetadata(output),
+ });
+ const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
+ const doc = take(data, {
+ nextToken: __expectString,
+ resolvedTargets: _json,
+ });
+ Object.assign(contents, doc);
+ return contents;
+};
+
+/**
+ * deserializeAws_restJson1ListExperimentResolvedTargetsCommandError
+ */
+const de_ListExperimentResolvedTargetsCommandError = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ const parsedOutput: any = {
+ ...output,
+ body: await parseErrorBody(output.body, context),
+ };
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
+ switch (errorCode) {
+ case "ResourceNotFoundException":
+ case "com.amazonaws.fis#ResourceNotFoundException":
+ throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);
+ case "ValidationException":
+ case "com.amazonaws.fis#ValidationException":
+ throw await de_ValidationExceptionRes(parsedOutput, context);
+ default:
+ const parsedBody = parsedOutput.body;
+ return throwDefaultError({
+ output,
+ parsedBody,
+ errorCode,
+ });
+ }
+};
+
/**
* deserializeAws_restJson1ListExperimentsCommand
*/
@@ -927,6 +1514,57 @@ const de_ListExperimentsCommandError = async (
}
};
+/**
+ * deserializeAws_restJson1ListExperimentTargetAccountConfigurationsCommand
+ */
+export const de_ListExperimentTargetAccountConfigurationsCommand = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
+ return de_ListExperimentTargetAccountConfigurationsCommandError(output, context);
+ }
+ const contents: any = map({
+ $metadata: deserializeMetadata(output),
+ });
+ const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
+ const doc = take(data, {
+ nextToken: __expectString,
+ targetAccountConfigurations: _json,
+ });
+ Object.assign(contents, doc);
+ return contents;
+};
+
+/**
+ * deserializeAws_restJson1ListExperimentTargetAccountConfigurationsCommandError
+ */
+const de_ListExperimentTargetAccountConfigurationsCommandError = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ const parsedOutput: any = {
+ ...output,
+ body: await parseErrorBody(output.body, context),
+ };
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
+ switch (errorCode) {
+ case "ResourceNotFoundException":
+ case "com.amazonaws.fis#ResourceNotFoundException":
+ throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);
+ case "ValidationException":
+ case "com.amazonaws.fis#ValidationException":
+ throw await de_ValidationExceptionRes(parsedOutput, context);
+ default:
+ const parsedBody = parsedOutput.body;
+ return throwDefaultError({
+ output,
+ parsedBody,
+ errorCode,
+ });
+ }
+};
+
/**
* deserializeAws_restJson1ListExperimentTemplatesCommand
*/
@@ -1016,6 +1654,57 @@ const de_ListTagsForResourceCommandError = async (
});
};
+/**
+ * deserializeAws_restJson1ListTargetAccountConfigurationsCommand
+ */
+export const de_ListTargetAccountConfigurationsCommand = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
+ return de_ListTargetAccountConfigurationsCommandError(output, context);
+ }
+ const contents: any = map({
+ $metadata: deserializeMetadata(output),
+ });
+ const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
+ const doc = take(data, {
+ nextToken: __expectString,
+ targetAccountConfigurations: _json,
+ });
+ Object.assign(contents, doc);
+ return contents;
+};
+
+/**
+ * deserializeAws_restJson1ListTargetAccountConfigurationsCommandError
+ */
+const de_ListTargetAccountConfigurationsCommandError = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ const parsedOutput: any = {
+ ...output,
+ body: await parseErrorBody(output.body, context),
+ };
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
+ switch (errorCode) {
+ case "ResourceNotFoundException":
+ case "com.amazonaws.fis#ResourceNotFoundException":
+ throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);
+ case "ValidationException":
+ case "com.amazonaws.fis#ValidationException":
+ throw await de_ValidationExceptionRes(parsedOutput, context);
+ default:
+ const parsedBody = parsedOutput.body;
+ return throwDefaultError({
+ output,
+ parsedBody,
+ errorCode,
+ });
+ }
+};
+
/**
* deserializeAws_restJson1ListTargetResourceTypesCommand
*/
@@ -1297,6 +1986,56 @@ const de_UpdateExperimentTemplateCommandError = async (
}
};
+/**
+ * deserializeAws_restJson1UpdateTargetAccountConfigurationCommand
+ */
+export const de_UpdateTargetAccountConfigurationCommand = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ if (output.statusCode !== 200 && output.statusCode >= 300) {
+ return de_UpdateTargetAccountConfigurationCommandError(output, context);
+ }
+ const contents: any = map({
+ $metadata: deserializeMetadata(output),
+ });
+ const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body");
+ const doc = take(data, {
+ targetAccountConfiguration: _json,
+ });
+ Object.assign(contents, doc);
+ return contents;
+};
+
+/**
+ * deserializeAws_restJson1UpdateTargetAccountConfigurationCommandError
+ */
+const de_UpdateTargetAccountConfigurationCommandError = async (
+ output: __HttpResponse,
+ context: __SerdeContext
+): Promise => {
+ const parsedOutput: any = {
+ ...output,
+ body: await parseErrorBody(output.body, context),
+ };
+ const errorCode = loadRestJsonErrorCode(output, parsedOutput.body);
+ switch (errorCode) {
+ case "ResourceNotFoundException":
+ case "com.amazonaws.fis#ResourceNotFoundException":
+ throw await de_ResourceNotFoundExceptionRes(parsedOutput, context);
+ case "ValidationException":
+ case "com.amazonaws.fis#ValidationException":
+ throw await de_ValidationExceptionRes(parsedOutput, context);
+ default:
+ const parsedBody = parsedOutput.body;
+ return throwDefaultError({
+ output,
+ parsedBody,
+ errorCode,
+ });
+ }
+};
+
const throwDefaultError = withBaseException(__BaseException);
/**
* deserializeAws_restJson1ConflictExceptionRes
@@ -1376,6 +2115,8 @@ const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeCont
// se_CreateExperimentTemplateActionInputMap omitted.
+// se_CreateExperimentTemplateExperimentOptionsInput omitted.
+
// se_CreateExperimentTemplateLogConfigurationInput omitted.
// se_CreateExperimentTemplateStopConditionInput omitted.
@@ -1412,6 +2153,8 @@ const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeCont
// se_UpdateExperimentTemplateActionInputMap omitted.
+// se_UpdateExperimentTemplateExperimentOptionsInput omitted.
+
// se_UpdateExperimentTemplateLogConfigurationInput omitted.
// se_UpdateExperimentTemplateStopConditionInput omitted.
@@ -1444,6 +2187,7 @@ const de_Experiment = (output: any, context: __SerdeContext): Experiment => {
actions: (_: any) => de_ExperimentActionMap(_, context),
creationTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),
endTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),
+ experimentOptions: _json,
experimentTemplateId: __expectString,
id: __expectString,
logConfiguration: _json,
@@ -1452,6 +2196,7 @@ const de_Experiment = (output: any, context: __SerdeContext): Experiment => {
state: _json,
stopConditions: _json,
tags: _json,
+ targetAccountConfigurationsCount: __expectLong,
targets: _json,
}) as any;
};
@@ -1497,6 +2242,8 @@ const de_ExperimentActionMap = (output: any, context: __SerdeContext): Record __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),
description: __expectString,
+ experimentOptions: _json,
id: __expectString,
lastUpdateTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))),
logConfiguration: _json,
roleArn: __expectString,
stopConditions: _json,
tags: _json,
+ targetAccountConfigurationsCount: __expectLong,
targets: _json,
}) as any;
};
@@ -1572,6 +2327,8 @@ const de_ExperimentTemplate = (output: any, context: __SerdeContext): Experiment
// de_ExperimentTemplateCloudWatchLogsLogConfiguration omitted.
+// de_ExperimentTemplateExperimentOptions omitted.
+
// de_ExperimentTemplateLogConfiguration omitted.
// de_ExperimentTemplateS3LogConfiguration omitted.
@@ -1617,10 +2374,22 @@ const de_ExperimentTemplateSummaryList = (output: any, context: __SerdeContext):
// de_ExperimentTemplateTargetParameterMap omitted.
+// de_ResolvedTarget omitted.
+
+// de_ResolvedTargetList omitted.
+
// de_ResourceArnList omitted.
// de_TagMap omitted.
+// de_TargetAccountConfiguration omitted.
+
+// de_TargetAccountConfigurationList omitted.
+
+// de_TargetAccountConfigurationSummary omitted.
+
+// de_TargetInformationMap omitted.
+
// de_TargetResourceType omitted.
// de_TargetResourceTypeParameter omitted.
diff --git a/codegen/sdk-codegen/aws-models/fis.json b/codegen/sdk-codegen/aws-models/fis.json
index 3476aa8e18eb7..f8b8843c6ff21 100644
--- a/codegen/sdk-codegen/aws-models/fis.json
+++ b/codegen/sdk-codegen/aws-models/fis.json
@@ -29,6 +29,23 @@
]
},
"shapes": {
+ "com.amazonaws.fis#AccountTargeting": {
+ "type": "enum",
+ "members": {
+ "SINGLE_ACCOUNT": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "single-account"
+ }
+ },
+ "MULTI_ACCOUNT": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "multi-account"
+ }
+ }
+ }
+ },
"com.amazonaws.fis#Action": {
"type": "structure",
"members": {
@@ -274,7 +291,7 @@
}
],
"traits": {
- "smithy.api#documentation": "Creates an experiment template.
\n An experiment template includes the following components:
\n \n - \n
\n Targets: A target can be a specific resource in \n your Amazon Web Services environment, or one or more resources that match criteria that you\n specify, for example, resources that have specific tags.
\n \n - \n
\n Actions: The actions to carry out on the\n target. You can specify multiple actions, the duration of each action, and when to start each action during an experiment.
\n \n - \n
\n Stop conditions: If a stop condition is\n triggered while an experiment is running, the experiment is automatically\n stopped. You can define a stop condition as a CloudWatch alarm.
\n \n
\n For more information, see Experiment templates\n in the Fault Injection Simulator User Guide.
",
+ "smithy.api#documentation": "Creates an experiment template.
\n An experiment template includes the following components:
\n \n - \n
\n Targets: A target can be a specific resource in \n your Amazon Web Services environment, or one or more resources that match criteria that you\n specify, for example, resources that have specific tags.
\n \n - \n
\n Actions: The actions to carry out on the\n target. You can specify multiple actions, the duration of each action, and when to start each action during an experiment.
\n \n - \n
\n Stop conditions: If a stop condition is\n triggered while an experiment is running, the experiment is automatically\n stopped. You can define a stop condition as a CloudWatch alarm.
\n \n
\n For more information, see experiment templates\n in the Fault Injection Simulator User Guide.
",
"smithy.api#http": {
"method": "POST",
"uri": "/experimentTemplates",
@@ -330,6 +347,26 @@
"target": "com.amazonaws.fis#CreateExperimentTemplateActionInput"
}
},
+ "com.amazonaws.fis#CreateExperimentTemplateExperimentOptionsInput": {
+ "type": "structure",
+ "members": {
+ "accountTargeting": {
+ "target": "com.amazonaws.fis#AccountTargeting",
+ "traits": {
+ "smithy.api#documentation": "Specifies the account targeting setting for experiment options.
"
+ }
+ },
+ "emptyTargetResolutionMode": {
+ "target": "com.amazonaws.fis#EmptyTargetResolutionMode",
+ "traits": {
+ "smithy.api#documentation": "Specifies the empty target resolution mode for experiment options.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "Specifies experiment options for an experiment template.
"
+ }
+ },
"com.amazonaws.fis#CreateExperimentTemplateLogConfigurationInput": {
"type": "structure",
"members": {
@@ -413,6 +450,12 @@
"traits": {
"smithy.api#documentation": "The configuration for experiment logging.
"
}
+ },
+ "experimentOptions": {
+ "target": "com.amazonaws.fis#CreateExperimentTemplateExperimentOptionsInput",
+ "traits": {
+ "smithy.api#documentation": "The experiment options for the experiment template.
"
+ }
}
},
"traits": {
@@ -515,6 +558,95 @@
"target": "com.amazonaws.fis#CreateExperimentTemplateTargetInput"
}
},
+ "com.amazonaws.fis#CreateTargetAccountConfiguration": {
+ "type": "operation",
+ "input": {
+ "target": "com.amazonaws.fis#CreateTargetAccountConfigurationRequest"
+ },
+ "output": {
+ "target": "com.amazonaws.fis#CreateTargetAccountConfigurationResponse"
+ },
+ "errors": [
+ {
+ "target": "com.amazonaws.fis#ConflictException"
+ },
+ {
+ "target": "com.amazonaws.fis#ResourceNotFoundException"
+ },
+ {
+ "target": "com.amazonaws.fis#ServiceQuotaExceededException"
+ },
+ {
+ "target": "com.amazonaws.fis#ValidationException"
+ }
+ ],
+ "traits": {
+ "smithy.api#documentation": "Creates a target account configuration for the experiment template. A target account configuration\n is required when accountTargeting
of experimentOptions
is set to multi-account
.\n For more information, see experiment options\n in the Fault Injection Simulator User Guide.\n
",
+ "smithy.api#http": {
+ "method": "POST",
+ "uri": "/experimentTemplates/{experimentTemplateId}/targetAccountConfigurations/{accountId}",
+ "code": 200
+ }
+ }
+ },
+ "com.amazonaws.fis#CreateTargetAccountConfigurationRequest": {
+ "type": "structure",
+ "members": {
+ "clientToken": {
+ "target": "com.amazonaws.fis#ClientToken",
+ "traits": {
+ "smithy.api#documentation": "Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
",
+ "smithy.api#idempotencyToken": {}
+ }
+ },
+ "experimentTemplateId": {
+ "target": "com.amazonaws.fis#ExperimentTemplateId",
+ "traits": {
+ "smithy.api#documentation": "The experiment template ID.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ },
+ "accountId": {
+ "target": "com.amazonaws.fis#TargetAccountId",
+ "traits": {
+ "smithy.api#documentation": "The AWS account ID of the target account.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ },
+ "roleArn": {
+ "target": "com.amazonaws.fis#RoleArn",
+ "traits": {
+ "smithy.api#documentation": "The Amazon Resource Name (ARN) of an IAM role for the target account.
",
+ "smithy.api#required": {}
+ }
+ },
+ "description": {
+ "target": "com.amazonaws.fis#TargetAccountConfigurationDescription",
+ "traits": {
+ "smithy.api#documentation": "The description of the target account.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#input": {}
+ }
+ },
+ "com.amazonaws.fis#CreateTargetAccountConfigurationResponse": {
+ "type": "structure",
+ "members": {
+ "targetAccountConfiguration": {
+ "target": "com.amazonaws.fis#TargetAccountConfiguration",
+ "traits": {
+ "smithy.api#documentation": "Information about the target account configuration.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#output": {}
+ }
+ },
"com.amazonaws.fis#CreationTime": {
"type": "timestamp"
},
@@ -573,6 +705,86 @@
"smithy.api#output": {}
}
},
+ "com.amazonaws.fis#DeleteTargetAccountConfiguration": {
+ "type": "operation",
+ "input": {
+ "target": "com.amazonaws.fis#DeleteTargetAccountConfigurationRequest"
+ },
+ "output": {
+ "target": "com.amazonaws.fis#DeleteTargetAccountConfigurationResponse"
+ },
+ "errors": [
+ {
+ "target": "com.amazonaws.fis#ResourceNotFoundException"
+ },
+ {
+ "target": "com.amazonaws.fis#ValidationException"
+ }
+ ],
+ "traits": {
+ "smithy.api#documentation": "Deletes the specified target account configuration of the experiment template.
",
+ "smithy.api#http": {
+ "method": "DELETE",
+ "uri": "/experimentTemplates/{experimentTemplateId}/targetAccountConfigurations/{accountId}",
+ "code": 200
+ }
+ }
+ },
+ "com.amazonaws.fis#DeleteTargetAccountConfigurationRequest": {
+ "type": "structure",
+ "members": {
+ "experimentTemplateId": {
+ "target": "com.amazonaws.fis#ExperimentTemplateId",
+ "traits": {
+ "smithy.api#documentation": "The ID of the experiment template.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ },
+ "accountId": {
+ "target": "com.amazonaws.fis#TargetAccountId",
+ "traits": {
+ "smithy.api#documentation": "The AWS account ID of the target account.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#input": {}
+ }
+ },
+ "com.amazonaws.fis#DeleteTargetAccountConfigurationResponse": {
+ "type": "structure",
+ "members": {
+ "targetAccountConfiguration": {
+ "target": "com.amazonaws.fis#TargetAccountConfiguration",
+ "traits": {
+ "smithy.api#documentation": "Information about the target account configuration.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#output": {}
+ }
+ },
+ "com.amazonaws.fis#EmptyTargetResolutionMode": {
+ "type": "enum",
+ "members": {
+ "FAIL": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "fail"
+ }
+ },
+ "SKIP": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "skip"
+ }
+ }
+ }
+ },
"com.amazonaws.fis#ExceptionMessage": {
"type": "string",
"traits": {
@@ -657,6 +869,18 @@
"traits": {
"smithy.api#documentation": "The configuration for experiment logging.
"
}
+ },
+ "experimentOptions": {
+ "target": "com.amazonaws.fis#ExperimentOptions",
+ "traits": {
+ "smithy.api#documentation": "The experiment options for the experiment.
"
+ }
+ },
+ "targetAccountConfigurationsCount": {
+ "target": "com.amazonaws.fis#TargetAccountConfigurationsCount",
+ "traits": {
+ "smithy.api#documentation": "The count of target account configurations for the experiment.
"
+ }
}
},
"traits": {
@@ -869,6 +1093,12 @@
"traits": {
"smithy.api#enumValue": "failed"
}
+ },
+ "skipped": {
+ "target": "smithy.api#Unit",
+ "traits": {
+ "smithy.api#enumValue": "skipped"
+ }
}
}
},
@@ -954,6 +1184,26 @@
"smithy.api#documentation": "Describes the configuration for experiment logging.
"
}
},
+ "com.amazonaws.fis#ExperimentOptions": {
+ "type": "structure",
+ "members": {
+ "accountTargeting": {
+ "target": "com.amazonaws.fis#AccountTargeting",
+ "traits": {
+ "smithy.api#documentation": "The account targeting setting for an experiment.
"
+ }
+ },
+ "emptyTargetResolutionMode": {
+ "target": "com.amazonaws.fis#EmptyTargetResolutionMode",
+ "traits": {
+ "smithy.api#documentation": "The empty target resolution mode for an experiment.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "Describes the options for an experiment.
"
+ }
+ },
"com.amazonaws.fis#ExperimentS3LogConfiguration": {
"type": "structure",
"members": {
@@ -1168,6 +1418,64 @@
"smithy.api#documentation": "Describes a target for an experiment.
"
}
},
+ "com.amazonaws.fis#ExperimentTargetAccountConfiguration": {
+ "type": "structure",
+ "members": {
+ "roleArn": {
+ "target": "com.amazonaws.fis#RoleArn",
+ "traits": {
+ "smithy.api#documentation": "The Amazon Resource Name (ARN) of an IAM role for the target account.
"
+ }
+ },
+ "accountId": {
+ "target": "com.amazonaws.fis#TargetAccountId",
+ "traits": {
+ "smithy.api#documentation": "The AWS account ID of the target account.
"
+ }
+ },
+ "description": {
+ "target": "com.amazonaws.fis#TargetAccountConfigurationDescription",
+ "traits": {
+ "smithy.api#documentation": "The description of the target account.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "Describes a target account configuration for an experiment.
"
+ }
+ },
+ "com.amazonaws.fis#ExperimentTargetAccountConfigurationList": {
+ "type": "list",
+ "member": {
+ "target": "com.amazonaws.fis#ExperimentTargetAccountConfigurationSummary"
+ }
+ },
+ "com.amazonaws.fis#ExperimentTargetAccountConfigurationSummary": {
+ "type": "structure",
+ "members": {
+ "roleArn": {
+ "target": "com.amazonaws.fis#RoleArn",
+ "traits": {
+ "smithy.api#documentation": "The Amazon Resource Name (ARN) of an IAM role for the target account.
"
+ }
+ },
+ "accountId": {
+ "target": "com.amazonaws.fis#TargetAccountId",
+ "traits": {
+ "smithy.api#documentation": "The AWS account ID of the target account.
"
+ }
+ },
+ "description": {
+ "target": "com.amazonaws.fis#TargetAccountConfigurationDescription",
+ "traits": {
+ "smithy.api#documentation": "The description of the target account.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "Provides a summary of a target account configuration.
"
+ }
+ },
"com.amazonaws.fis#ExperimentTargetFilter": {
"type": "structure",
"members": {
@@ -1339,6 +1647,18 @@
"traits": {
"smithy.api#documentation": "The configuration for experiment logging.
"
}
+ },
+ "experimentOptions": {
+ "target": "com.amazonaws.fis#ExperimentTemplateExperimentOptions",
+ "traits": {
+ "smithy.api#documentation": "The experiment options for an experiment template.
"
+ }
+ },
+ "targetAccountConfigurationsCount": {
+ "target": "com.amazonaws.fis#TargetAccountConfigurationsCount",
+ "traits": {
+ "smithy.api#documentation": "The count of target account configurations for the experiment template.
"
+ }
}
},
"traits": {
@@ -1515,6 +1835,26 @@
"smithy.api#pattern": "^[\\s\\S]+$"
}
},
+ "com.amazonaws.fis#ExperimentTemplateExperimentOptions": {
+ "type": "structure",
+ "members": {
+ "accountTargeting": {
+ "target": "com.amazonaws.fis#AccountTargeting",
+ "traits": {
+ "smithy.api#documentation": "The account targeting setting for an experiment template.
"
+ }
+ },
+ "emptyTargetResolutionMode": {
+ "target": "com.amazonaws.fis#EmptyTargetResolutionMode",
+ "traits": {
+ "smithy.api#documentation": "The empty target resolution mode for an experiment template.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "Describes the experiment options for an experiment template.
"
+ }
+ },
"com.amazonaws.fis#ExperimentTemplateId": {
"type": "string",
"traits": {
@@ -1851,33 +2191,54 @@
{
"target": "com.amazonaws.fis#CreateExperimentTemplate"
},
+ {
+ "target": "com.amazonaws.fis#CreateTargetAccountConfiguration"
+ },
{
"target": "com.amazonaws.fis#DeleteExperimentTemplate"
},
+ {
+ "target": "com.amazonaws.fis#DeleteTargetAccountConfiguration"
+ },
{
"target": "com.amazonaws.fis#GetAction"
},
{
"target": "com.amazonaws.fis#GetExperiment"
},
+ {
+ "target": "com.amazonaws.fis#GetExperimentTargetAccountConfiguration"
+ },
{
"target": "com.amazonaws.fis#GetExperimentTemplate"
},
+ {
+ "target": "com.amazonaws.fis#GetTargetAccountConfiguration"
+ },
{
"target": "com.amazonaws.fis#GetTargetResourceType"
},
{
"target": "com.amazonaws.fis#ListActions"
},
+ {
+ "target": "com.amazonaws.fis#ListExperimentResolvedTargets"
+ },
{
"target": "com.amazonaws.fis#ListExperiments"
},
+ {
+ "target": "com.amazonaws.fis#ListExperimentTargetAccountConfigurations"
+ },
{
"target": "com.amazonaws.fis#ListExperimentTemplates"
},
{
"target": "com.amazonaws.fis#ListTagsForResource"
},
+ {
+ "target": "com.amazonaws.fis#ListTargetAccountConfigurations"
+ },
{
"target": "com.amazonaws.fis#ListTargetResourceTypes"
},
@@ -1895,6 +2256,9 @@
},
{
"target": "com.amazonaws.fis#UpdateExperimentTemplate"
+ },
+ {
+ "target": "com.amazonaws.fis#UpdateTargetAccountConfiguration"
}
],
"traits": {
@@ -2702,6 +3066,69 @@
"smithy.api#output": {}
}
},
+ "com.amazonaws.fis#GetExperimentTargetAccountConfiguration": {
+ "type": "operation",
+ "input": {
+ "target": "com.amazonaws.fis#GetExperimentTargetAccountConfigurationRequest"
+ },
+ "output": {
+ "target": "com.amazonaws.fis#GetExperimentTargetAccountConfigurationResponse"
+ },
+ "errors": [
+ {
+ "target": "com.amazonaws.fis#ResourceNotFoundException"
+ },
+ {
+ "target": "com.amazonaws.fis#ValidationException"
+ }
+ ],
+ "traits": {
+ "smithy.api#documentation": "Gets information about the specified target account configuration of the experiment.
",
+ "smithy.api#http": {
+ "method": "GET",
+ "uri": "/experiments/{experimentId}/targetAccountConfigurations/{accountId}",
+ "code": 200
+ }
+ }
+ },
+ "com.amazonaws.fis#GetExperimentTargetAccountConfigurationRequest": {
+ "type": "structure",
+ "members": {
+ "experimentId": {
+ "target": "com.amazonaws.fis#ExperimentId",
+ "traits": {
+ "smithy.api#documentation": "The ID of the experiment.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ },
+ "accountId": {
+ "target": "com.amazonaws.fis#TargetAccountId",
+ "traits": {
+ "smithy.api#documentation": "The AWS account ID of the target account.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#input": {}
+ }
+ },
+ "com.amazonaws.fis#GetExperimentTargetAccountConfigurationResponse": {
+ "type": "structure",
+ "members": {
+ "targetAccountConfiguration": {
+ "target": "com.amazonaws.fis#ExperimentTargetAccountConfiguration",
+ "traits": {
+ "smithy.api#documentation": "Information about the target account configuration.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#output": {}
+ }
+ },
"com.amazonaws.fis#GetExperimentTemplate": {
"type": "operation",
"input": {
@@ -2757,6 +3184,69 @@
"smithy.api#output": {}
}
},
+ "com.amazonaws.fis#GetTargetAccountConfiguration": {
+ "type": "operation",
+ "input": {
+ "target": "com.amazonaws.fis#GetTargetAccountConfigurationRequest"
+ },
+ "output": {
+ "target": "com.amazonaws.fis#GetTargetAccountConfigurationResponse"
+ },
+ "errors": [
+ {
+ "target": "com.amazonaws.fis#ResourceNotFoundException"
+ },
+ {
+ "target": "com.amazonaws.fis#ValidationException"
+ }
+ ],
+ "traits": {
+ "smithy.api#documentation": "Gets information about the specified target account configuration of the experiment template.
",
+ "smithy.api#http": {
+ "method": "GET",
+ "uri": "/experimentTemplates/{experimentTemplateId}/targetAccountConfigurations/{accountId}",
+ "code": 200
+ }
+ }
+ },
+ "com.amazonaws.fis#GetTargetAccountConfigurationRequest": {
+ "type": "structure",
+ "members": {
+ "experimentTemplateId": {
+ "target": "com.amazonaws.fis#ExperimentTemplateId",
+ "traits": {
+ "smithy.api#documentation": "The ID of the experiment template.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ },
+ "accountId": {
+ "target": "com.amazonaws.fis#TargetAccountId",
+ "traits": {
+ "smithy.api#documentation": "The AWS account ID of the target account.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#input": {}
+ }
+ },
+ "com.amazonaws.fis#GetTargetAccountConfigurationResponse": {
+ "type": "structure",
+ "members": {
+ "targetAccountConfiguration": {
+ "target": "com.amazonaws.fis#TargetAccountConfiguration",
+ "traits": {
+ "smithy.api#documentation": "Information about the target account configuration.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#output": {}
+ }
+ },
"com.amazonaws.fis#GetTargetResourceType": {
"type": "operation",
"input": {
@@ -2893,6 +3383,170 @@
"smithy.api#output": {}
}
},
+ "com.amazonaws.fis#ListExperimentResolvedTargets": {
+ "type": "operation",
+ "input": {
+ "target": "com.amazonaws.fis#ListExperimentResolvedTargetsRequest"
+ },
+ "output": {
+ "target": "com.amazonaws.fis#ListExperimentResolvedTargetsResponse"
+ },
+ "errors": [
+ {
+ "target": "com.amazonaws.fis#ResourceNotFoundException"
+ },
+ {
+ "target": "com.amazonaws.fis#ValidationException"
+ }
+ ],
+ "traits": {
+ "smithy.api#documentation": "Lists the resolved targets information of the specified experiment.
",
+ "smithy.api#http": {
+ "method": "GET",
+ "uri": "/experiments/{experimentId}/resolvedTargets",
+ "code": 200
+ },
+ "smithy.api#paginated": {
+ "inputToken": "nextToken",
+ "outputToken": "nextToken",
+ "pageSize": "maxResults"
+ }
+ }
+ },
+ "com.amazonaws.fis#ListExperimentResolvedTargetsMaxResults": {
+ "type": "integer",
+ "traits": {
+ "smithy.api#range": {
+ "min": 1,
+ "max": 100
+ }
+ }
+ },
+ "com.amazonaws.fis#ListExperimentResolvedTargetsRequest": {
+ "type": "structure",
+ "members": {
+ "experimentId": {
+ "target": "com.amazonaws.fis#ExperimentId",
+ "traits": {
+ "smithy.api#documentation": "The ID of the experiment.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ },
+ "maxResults": {
+ "target": "com.amazonaws.fis#ListExperimentResolvedTargetsMaxResults",
+ "traits": {
+ "smithy.api#documentation": "The maximum number of results to return with a single call. To retrieve the remaining results, \n make another call with the returned nextToken value.
",
+ "smithy.api#httpQuery": "maxResults"
+ }
+ },
+ "nextToken": {
+ "target": "com.amazonaws.fis#NextToken",
+ "traits": {
+ "smithy.api#documentation": "The token for the next page of results.
",
+ "smithy.api#httpQuery": "nextToken"
+ }
+ },
+ "targetName": {
+ "target": "com.amazonaws.fis#TargetName",
+ "traits": {
+ "smithy.api#documentation": "The name of the target.
",
+ "smithy.api#httpQuery": "targetName"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#input": {}
+ }
+ },
+ "com.amazonaws.fis#ListExperimentResolvedTargetsResponse": {
+ "type": "structure",
+ "members": {
+ "resolvedTargets": {
+ "target": "com.amazonaws.fis#ResolvedTargetList",
+ "traits": {
+ "smithy.api#documentation": "The resolved targets.
"
+ }
+ },
+ "nextToken": {
+ "target": "com.amazonaws.fis#NextToken",
+ "traits": {
+ "smithy.api#documentation": "The token to use to retrieve the next page of results. \n This value is null when there are no more results to return.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#output": {}
+ }
+ },
+ "com.amazonaws.fis#ListExperimentTargetAccountConfigurations": {
+ "type": "operation",
+ "input": {
+ "target": "com.amazonaws.fis#ListExperimentTargetAccountConfigurationsRequest"
+ },
+ "output": {
+ "target": "com.amazonaws.fis#ListExperimentTargetAccountConfigurationsResponse"
+ },
+ "errors": [
+ {
+ "target": "com.amazonaws.fis#ResourceNotFoundException"
+ },
+ {
+ "target": "com.amazonaws.fis#ValidationException"
+ }
+ ],
+ "traits": {
+ "smithy.api#documentation": "Lists the target account configurations of the specified experiment.
",
+ "smithy.api#http": {
+ "method": "GET",
+ "uri": "/experiments/{experimentId}/targetAccountConfigurations",
+ "code": 200
+ }
+ }
+ },
+ "com.amazonaws.fis#ListExperimentTargetAccountConfigurationsRequest": {
+ "type": "structure",
+ "members": {
+ "experimentId": {
+ "target": "com.amazonaws.fis#ExperimentId",
+ "traits": {
+ "smithy.api#documentation": "The ID of the experiment.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ },
+ "nextToken": {
+ "target": "com.amazonaws.fis#NextToken",
+ "traits": {
+ "smithy.api#documentation": "The token for the next page of results.
",
+ "smithy.api#httpQuery": "nextToken"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#input": {}
+ }
+ },
+ "com.amazonaws.fis#ListExperimentTargetAccountConfigurationsResponse": {
+ "type": "structure",
+ "members": {
+ "targetAccountConfigurations": {
+ "target": "com.amazonaws.fis#ExperimentTargetAccountConfigurationList",
+ "traits": {
+ "smithy.api#documentation": "The target account configurations.
"
+ }
+ },
+ "nextToken": {
+ "target": "com.amazonaws.fis#NextToken",
+ "traits": {
+ "smithy.api#documentation": "The token to use to retrieve the next page of results. \n This value is null when there are no more results to return.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#output": {}
+ }
+ },
"com.amazonaws.fis#ListExperimentTemplates": {
"type": "operation",
"input": {
@@ -3096,6 +3750,95 @@
"smithy.api#output": {}
}
},
+ "com.amazonaws.fis#ListTargetAccountConfigurations": {
+ "type": "operation",
+ "input": {
+ "target": "com.amazonaws.fis#ListTargetAccountConfigurationsRequest"
+ },
+ "output": {
+ "target": "com.amazonaws.fis#ListTargetAccountConfigurationsResponse"
+ },
+ "errors": [
+ {
+ "target": "com.amazonaws.fis#ResourceNotFoundException"
+ },
+ {
+ "target": "com.amazonaws.fis#ValidationException"
+ }
+ ],
+ "traits": {
+ "smithy.api#documentation": "Lists the target account configurations of the specified experiment template.
",
+ "smithy.api#http": {
+ "method": "GET",
+ "uri": "/experimentTemplates/{experimentTemplateId}/targetAccountConfigurations",
+ "code": 200
+ },
+ "smithy.api#paginated": {
+ "inputToken": "nextToken",
+ "outputToken": "nextToken",
+ "pageSize": "maxResults"
+ }
+ }
+ },
+ "com.amazonaws.fis#ListTargetAccountConfigurationsMaxResults": {
+ "type": "integer",
+ "traits": {
+ "smithy.api#range": {
+ "min": 1,
+ "max": 100
+ }
+ }
+ },
+ "com.amazonaws.fis#ListTargetAccountConfigurationsRequest": {
+ "type": "structure",
+ "members": {
+ "experimentTemplateId": {
+ "target": "com.amazonaws.fis#ExperimentTemplateId",
+ "traits": {
+ "smithy.api#documentation": "The ID of the experiment template.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ },
+ "maxResults": {
+ "target": "com.amazonaws.fis#ListTargetAccountConfigurationsMaxResults",
+ "traits": {
+ "smithy.api#documentation": "The maximum number of results to return with a single call. To retrieve the remaining results, \n make another call with the returned nextToken value.
",
+ "smithy.api#httpQuery": "maxResults"
+ }
+ },
+ "nextToken": {
+ "target": "com.amazonaws.fis#NextToken",
+ "traits": {
+ "smithy.api#documentation": "The token for the next page of results.
",
+ "smithy.api#httpQuery": "nextToken"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#input": {}
+ }
+ },
+ "com.amazonaws.fis#ListTargetAccountConfigurationsResponse": {
+ "type": "structure",
+ "members": {
+ "targetAccountConfigurations": {
+ "target": "com.amazonaws.fis#TargetAccountConfigurationList",
+ "traits": {
+ "smithy.api#documentation": "The target account configurations.
"
+ }
+ },
+ "nextToken": {
+ "target": "com.amazonaws.fis#NextToken",
+ "traits": {
+ "smithy.api#documentation": "The token to use to retrieve the next page of results. \n This value is null when there are no more results to return.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#output": {}
+ }
+ },
"com.amazonaws.fis#ListTargetResourceTypes": {
"type": "operation",
"input": {
@@ -3187,6 +3930,38 @@
"smithy.api#pattern": "^[\\S]+$"
}
},
+ "com.amazonaws.fis#ResolvedTarget": {
+ "type": "structure",
+ "members": {
+ "resourceType": {
+ "target": "com.amazonaws.fis#TargetResourceTypeId",
+ "traits": {
+ "smithy.api#documentation": "The resource type of the target.
"
+ }
+ },
+ "targetName": {
+ "target": "com.amazonaws.fis#TargetName",
+ "traits": {
+ "smithy.api#documentation": "The name of the target.
"
+ }
+ },
+ "targetInformation": {
+ "target": "com.amazonaws.fis#TargetInformationMap",
+ "traits": {
+ "smithy.api#documentation": "Information about the target.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "Describes a resolved target.
"
+ }
+ },
+ "com.amazonaws.fis#ResolvedTargetList": {
+ "type": "list",
+ "member": {
+ "target": "com.amazonaws.fis#ResolvedTarget"
+ }
+ },
"com.amazonaws.fis#ResourceArn": {
"type": "string",
"traits": {
@@ -3510,6 +4285,131 @@
"smithy.api#pattern": "^[\\s\\S]*$"
}
},
+ "com.amazonaws.fis#TargetAccountConfiguration": {
+ "type": "structure",
+ "members": {
+ "roleArn": {
+ "target": "com.amazonaws.fis#RoleArn",
+ "traits": {
+ "smithy.api#documentation": "The Amazon Resource Name (ARN) of an IAM role for the target account.
"
+ }
+ },
+ "accountId": {
+ "target": "com.amazonaws.fis#TargetAccountId",
+ "traits": {
+ "smithy.api#documentation": "The AWS account ID of the target account.
"
+ }
+ },
+ "description": {
+ "target": "com.amazonaws.fis#TargetAccountConfigurationDescription",
+ "traits": {
+ "smithy.api#documentation": "The description of the target account.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "Describes a target account configuration.
"
+ }
+ },
+ "com.amazonaws.fis#TargetAccountConfigurationDescription": {
+ "type": "string",
+ "traits": {
+ "smithy.api#length": {
+ "min": 0,
+ "max": 512
+ },
+ "smithy.api#pattern": "^[\\s\\S]*$"
+ }
+ },
+ "com.amazonaws.fis#TargetAccountConfigurationList": {
+ "type": "list",
+ "member": {
+ "target": "com.amazonaws.fis#TargetAccountConfigurationSummary"
+ }
+ },
+ "com.amazonaws.fis#TargetAccountConfigurationSummary": {
+ "type": "structure",
+ "members": {
+ "roleArn": {
+ "target": "com.amazonaws.fis#RoleArn",
+ "traits": {
+ "smithy.api#documentation": "The Amazon Resource Name (ARN) of an IAM role for the target account.
"
+ }
+ },
+ "accountId": {
+ "target": "com.amazonaws.fis#TargetAccountId",
+ "traits": {
+ "smithy.api#documentation": "The AWS account ID of the target account.
"
+ }
+ },
+ "description": {
+ "target": "com.amazonaws.fis#TargetAccountConfigurationDescription",
+ "traits": {
+ "smithy.api#documentation": "The description of the target account.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "Provides a summary of a target account configuration.
"
+ }
+ },
+ "com.amazonaws.fis#TargetAccountConfigurationsCount": {
+ "type": "long",
+ "traits": {
+ "smithy.api#range": {
+ "min": 0
+ }
+ }
+ },
+ "com.amazonaws.fis#TargetAccountId": {
+ "type": "string",
+ "traits": {
+ "smithy.api#length": {
+ "min": 12,
+ "max": 48
+ },
+ "smithy.api#pattern": "^[\\S]+$"
+ }
+ },
+ "com.amazonaws.fis#TargetInformationKey": {
+ "type": "string",
+ "traits": {
+ "smithy.api#length": {
+ "min": 0,
+ "max": 64
+ },
+ "smithy.api#pattern": "^[\\S]+$"
+ }
+ },
+ "com.amazonaws.fis#TargetInformationMap": {
+ "type": "map",
+ "key": {
+ "target": "com.amazonaws.fis#TargetInformationKey"
+ },
+ "value": {
+ "target": "com.amazonaws.fis#TargetInformationValue"
+ }
+ },
+ "com.amazonaws.fis#TargetInformationValue": {
+ "type": "string",
+ "traits": {
+ "smithy.api#length": {
+ "min": 0,
+ "max": 2048
+ },
+ "smithy.api#pattern": "^[\\S]+$"
+ }
+ },
+ "com.amazonaws.fis#TargetName": {
+ "type": "string",
+ "traits": {
+ "smithy.api#length": {
+ "min": 0,
+ "max": 64
+ },
+ "smithy.api#pattern": "^[\\S]+$"
+ }
+ },
"com.amazonaws.fis#TargetResourceType": {
"type": "structure",
"members": {
@@ -3760,6 +4660,20 @@
"target": "com.amazonaws.fis#UpdateExperimentTemplateActionInputItem"
}
},
+ "com.amazonaws.fis#UpdateExperimentTemplateExperimentOptionsInput": {
+ "type": "structure",
+ "members": {
+ "emptyTargetResolutionMode": {
+ "target": "com.amazonaws.fis#EmptyTargetResolutionMode",
+ "traits": {
+ "smithy.api#documentation": "The empty target resolution mode of the experiment template.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#documentation": "Specifies an experiment option for an experiment template.
"
+ }
+ },
"com.amazonaws.fis#UpdateExperimentTemplateLogConfigurationInput": {
"type": "structure",
"members": {
@@ -3832,6 +4746,12 @@
"traits": {
"smithy.api#documentation": "The configuration for experiment logging.
"
}
+ },
+ "experimentOptions": {
+ "target": "com.amazonaws.fis#UpdateExperimentTemplateExperimentOptionsInput",
+ "traits": {
+ "smithy.api#documentation": "The experiment options for the experiment template.
"
+ }
}
},
"traits": {
@@ -3934,6 +4854,81 @@
"target": "com.amazonaws.fis#UpdateExperimentTemplateTargetInput"
}
},
+ "com.amazonaws.fis#UpdateTargetAccountConfiguration": {
+ "type": "operation",
+ "input": {
+ "target": "com.amazonaws.fis#UpdateTargetAccountConfigurationRequest"
+ },
+ "output": {
+ "target": "com.amazonaws.fis#UpdateTargetAccountConfigurationResponse"
+ },
+ "errors": [
+ {
+ "target": "com.amazonaws.fis#ResourceNotFoundException"
+ },
+ {
+ "target": "com.amazonaws.fis#ValidationException"
+ }
+ ],
+ "traits": {
+ "smithy.api#documentation": "Updates the target account configuration for the specified experiment template.
",
+ "smithy.api#http": {
+ "method": "PATCH",
+ "uri": "/experimentTemplates/{experimentTemplateId}/targetAccountConfigurations/{accountId}",
+ "code": 200
+ }
+ }
+ },
+ "com.amazonaws.fis#UpdateTargetAccountConfigurationRequest": {
+ "type": "structure",
+ "members": {
+ "experimentTemplateId": {
+ "target": "com.amazonaws.fis#ExperimentTemplateId",
+ "traits": {
+ "smithy.api#documentation": "The ID of the experiment template.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ },
+ "accountId": {
+ "target": "com.amazonaws.fis#TargetAccountId",
+ "traits": {
+ "smithy.api#documentation": "The AWS account ID of the target account.
",
+ "smithy.api#httpLabel": {},
+ "smithy.api#required": {}
+ }
+ },
+ "roleArn": {
+ "target": "com.amazonaws.fis#RoleArn",
+ "traits": {
+ "smithy.api#documentation": "The Amazon Resource Name (ARN) of an IAM role for the target account.
"
+ }
+ },
+ "description": {
+ "target": "com.amazonaws.fis#TargetAccountConfigurationDescription",
+ "traits": {
+ "smithy.api#documentation": "The description of the target account.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#input": {}
+ }
+ },
+ "com.amazonaws.fis#UpdateTargetAccountConfigurationResponse": {
+ "type": "structure",
+ "members": {
+ "targetAccountConfiguration": {
+ "target": "com.amazonaws.fis#TargetAccountConfiguration",
+ "traits": {
+ "smithy.api#documentation": "Information about the target account configuration.
"
+ }
+ }
+ },
+ "traits": {
+ "smithy.api#output": {}
+ }
+ },
"com.amazonaws.fis#ValidationException": {
"type": "structure",
"members": {