diff --git a/clients/client-fis/README.md b/clients/client-fis/README.md index 41e8444ce330..a8cc4a067c15 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 84155338bae4..695e2ccccfff 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 cf759295b9c4..12af665011ba 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 04f140bce850..39d81fcf8b3e 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 000000000000..199da4e58179 --- /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 3005f6d5222c..daf76290e990 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 000000000000..86e236165b15 --- /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 0c69b61e3bc8..b628e9cf53c7 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 000000000000..c389735eb9d4 --- /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 b6d274883c52..f4aab9cd2b74 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 000000000000..9ef551496911 --- /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 000000000000..62bfc376dde6 --- /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 000000000000..0e152f722d9a --- /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 000000000000..317652e5e1f4 --- /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 0ef1297fa68c..a73619fd8746 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 589c4ec80f93..199795f524e2 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 cf3ec9cefb1b..bdadb1ad5d43 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 000000000000..0f832ffc6dc4 --- /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 1cda59695771..6ad213f1bb07 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 a6ef1e2c938e..5e224e27f573 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 000000000000..bacf77c18a63 --- /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 000000000000..99154d8cec89 --- /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 2a11d14dbfc4..beb806b47147 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 6f53aa32061b..5d24bd55b26e 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 3476aa8e18eb..f8b8843c6ff2 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": {