diff --git a/clients/client-resiliencehub/README.md b/clients/client-resiliencehub/README.md index 589c004ffaf9a..be4cbba5516a0 100644 --- a/clients/client-resiliencehub/README.md +++ b/clients/client-resiliencehub/README.md @@ -207,6 +207,14 @@ see LICENSE for more information. ## Client Commands (Operations List) +
+ +AcceptResourceGroupingRecommendations + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/resiliencehub/command/AcceptResourceGroupingRecommendationsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-resiliencehub/Interface/AcceptResourceGroupingRecommendationsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-resiliencehub/Interface/AcceptResourceGroupingRecommendationsCommandOutput/) + +
AddDraftAppVersionResourceMappings @@ -390,6 +398,14 @@ DescribeResiliencyPolicy [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/resiliencehub/command/DescribeResiliencyPolicyCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-resiliencehub/Interface/DescribeResiliencyPolicyCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-resiliencehub/Interface/DescribeResiliencyPolicyCommandOutput/) +
+
+ +DescribeResourceGroupingRecommendationTask + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/resiliencehub/command/DescribeResourceGroupingRecommendationTaskCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-resiliencehub/Interface/DescribeResourceGroupingRecommendationTaskCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-resiliencehub/Interface/DescribeResourceGroupingRecommendationTaskCommandOutput/) +
@@ -510,6 +526,14 @@ ListResiliencyPolicies [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/resiliencehub/command/ListResiliencyPoliciesCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-resiliencehub/Interface/ListResiliencyPoliciesCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-resiliencehub/Interface/ListResiliencyPoliciesCommandOutput/) +
+
+ +ListResourceGroupingRecommendations + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/resiliencehub/command/ListResourceGroupingRecommendationsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-resiliencehub/Interface/ListResourceGroupingRecommendationsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-resiliencehub/Interface/ListResourceGroupingRecommendationsCommandOutput/) +
@@ -566,6 +590,14 @@ PutDraftAppVersionTemplate [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/resiliencehub/command/PutDraftAppVersionTemplateCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-resiliencehub/Interface/PutDraftAppVersionTemplateCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-resiliencehub/Interface/PutDraftAppVersionTemplateCommandOutput/) +
+
+ +RejectResourceGroupingRecommendations + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/resiliencehub/command/RejectResourceGroupingRecommendationsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-resiliencehub/Interface/RejectResourceGroupingRecommendationsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-resiliencehub/Interface/RejectResourceGroupingRecommendationsCommandOutput/) +
@@ -590,6 +622,14 @@ StartAppAssessment [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/resiliencehub/command/StartAppAssessmentCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-resiliencehub/Interface/StartAppAssessmentCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-resiliencehub/Interface/StartAppAssessmentCommandOutput/) +
+
+ +StartResourceGroupingRecommendationTask + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/resiliencehub/command/StartResourceGroupingRecommendationTaskCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-resiliencehub/Interface/StartResourceGroupingRecommendationTaskCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-resiliencehub/Interface/StartResourceGroupingRecommendationTaskCommandOutput/) +
diff --git a/clients/client-resiliencehub/src/Resiliencehub.ts b/clients/client-resiliencehub/src/Resiliencehub.ts index 6a1b85cf4cd58..bad16564fecb9 100644 --- a/clients/client-resiliencehub/src/Resiliencehub.ts +++ b/clients/client-resiliencehub/src/Resiliencehub.ts @@ -2,6 +2,11 @@ import { createAggregatedClient } from "@smithy/smithy-client"; import { HttpHandlerOptions as __HttpHandlerOptions } from "@smithy/types"; +import { + AcceptResourceGroupingRecommendationsCommand, + AcceptResourceGroupingRecommendationsCommandInput, + AcceptResourceGroupingRecommendationsCommandOutput, +} from "./commands/AcceptResourceGroupingRecommendationsCommand"; import { AddDraftAppVersionResourceMappingsCommand, AddDraftAppVersionResourceMappingsCommandInput, @@ -105,6 +110,11 @@ import { DescribeResiliencyPolicyCommandInput, DescribeResiliencyPolicyCommandOutput, } from "./commands/DescribeResiliencyPolicyCommand"; +import { + DescribeResourceGroupingRecommendationTaskCommand, + DescribeResourceGroupingRecommendationTaskCommandInput, + DescribeResourceGroupingRecommendationTaskCommandOutput, +} from "./commands/DescribeResourceGroupingRecommendationTaskCommand"; import { ImportResourcesToDraftAppVersionCommand, ImportResourcesToDraftAppVersionCommandInput, @@ -176,6 +186,11 @@ import { ListResiliencyPoliciesCommandInput, ListResiliencyPoliciesCommandOutput, } from "./commands/ListResiliencyPoliciesCommand"; +import { + ListResourceGroupingRecommendationsCommand, + ListResourceGroupingRecommendationsCommandInput, + ListResourceGroupingRecommendationsCommandOutput, +} from "./commands/ListResourceGroupingRecommendationsCommand"; import { ListSopRecommendationsCommand, ListSopRecommendationsCommandInput, @@ -211,6 +226,11 @@ import { PutDraftAppVersionTemplateCommandInput, PutDraftAppVersionTemplateCommandOutput, } from "./commands/PutDraftAppVersionTemplateCommand"; +import { + RejectResourceGroupingRecommendationsCommand, + RejectResourceGroupingRecommendationsCommandInput, + RejectResourceGroupingRecommendationsCommandOutput, +} from "./commands/RejectResourceGroupingRecommendationsCommand"; import { RemoveDraftAppVersionResourceMappingsCommand, RemoveDraftAppVersionResourceMappingsCommandInput, @@ -226,6 +246,11 @@ import { StartAppAssessmentCommandInput, StartAppAssessmentCommandOutput, } from "./commands/StartAppAssessmentCommand"; +import { + StartResourceGroupingRecommendationTaskCommand, + StartResourceGroupingRecommendationTaskCommandInput, + StartResourceGroupingRecommendationTaskCommandOutput, +} from "./commands/StartResourceGroupingRecommendationTaskCommand"; import { TagResourceCommand, TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; import { UntagResourceCommand, @@ -256,6 +281,7 @@ import { import { ResiliencehubClient, ResiliencehubClientConfig } from "./ResiliencehubClient"; const commands = { + AcceptResourceGroupingRecommendationsCommand, AddDraftAppVersionResourceMappingsCommand, BatchUpdateRecommendationStatusCommand, CreateAppCommand, @@ -279,6 +305,7 @@ const commands = { DescribeAppVersionTemplateCommand, DescribeDraftAppVersionResourcesImportStatusCommand, DescribeResiliencyPolicyCommand, + DescribeResourceGroupingRecommendationTaskCommand, ImportResourcesToDraftAppVersionCommand, ListAlarmRecommendationsCommand, ListAppAssessmentComplianceDriftsCommand, @@ -294,6 +321,7 @@ const commands = { ListAppVersionsCommand, ListRecommendationTemplatesCommand, ListResiliencyPoliciesCommand, + ListResourceGroupingRecommendationsCommand, ListSopRecommendationsCommand, ListSuggestedResiliencyPoliciesCommand, ListTagsForResourceCommand, @@ -301,9 +329,11 @@ const commands = { ListUnsupportedAppVersionResourcesCommand, PublishAppVersionCommand, PutDraftAppVersionTemplateCommand, + RejectResourceGroupingRecommendationsCommand, RemoveDraftAppVersionResourceMappingsCommand, ResolveAppVersionResourcesCommand, StartAppAssessmentCommand, + StartResourceGroupingRecommendationTaskCommand, TagResourceCommand, UntagResourceCommand, UpdateAppCommand, @@ -314,6 +344,23 @@ const commands = { }; export interface Resiliencehub { + /** + * @see {@link AcceptResourceGroupingRecommendationsCommand} + */ + acceptResourceGroupingRecommendations( + args: AcceptResourceGroupingRecommendationsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + acceptResourceGroupingRecommendations( + args: AcceptResourceGroupingRecommendationsCommandInput, + cb: (err: any, data?: AcceptResourceGroupingRecommendationsCommandOutput) => void + ): void; + acceptResourceGroupingRecommendations( + args: AcceptResourceGroupingRecommendationsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: AcceptResourceGroupingRecommendationsCommandOutput) => void + ): void; + /** * @see {@link AddDraftAppVersionResourceMappingsCommand} */ @@ -687,6 +734,23 @@ export interface Resiliencehub { cb: (err: any, data?: DescribeResiliencyPolicyCommandOutput) => void ): void; + /** + * @see {@link DescribeResourceGroupingRecommendationTaskCommand} + */ + describeResourceGroupingRecommendationTask( + args: DescribeResourceGroupingRecommendationTaskCommandInput, + options?: __HttpHandlerOptions + ): Promise; + describeResourceGroupingRecommendationTask( + args: DescribeResourceGroupingRecommendationTaskCommandInput, + cb: (err: any, data?: DescribeResourceGroupingRecommendationTaskCommandOutput) => void + ): void; + describeResourceGroupingRecommendationTask( + args: DescribeResourceGroupingRecommendationTaskCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeResourceGroupingRecommendationTaskCommandOutput) => void + ): void; + /** * @see {@link ImportResourcesToDraftAppVersionCommand} */ @@ -937,6 +1001,24 @@ export interface Resiliencehub { cb: (err: any, data?: ListResiliencyPoliciesCommandOutput) => void ): void; + /** + * @see {@link ListResourceGroupingRecommendationsCommand} + */ + listResourceGroupingRecommendations(): Promise; + listResourceGroupingRecommendations( + args: ListResourceGroupingRecommendationsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + listResourceGroupingRecommendations( + args: ListResourceGroupingRecommendationsCommandInput, + cb: (err: any, data?: ListResourceGroupingRecommendationsCommandOutput) => void + ): void; + listResourceGroupingRecommendations( + args: ListResourceGroupingRecommendationsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListResourceGroupingRecommendationsCommandOutput) => void + ): void; + /** * @see {@link ListSopRecommendationsCommand} */ @@ -1057,6 +1139,23 @@ export interface Resiliencehub { cb: (err: any, data?: PutDraftAppVersionTemplateCommandOutput) => void ): void; + /** + * @see {@link RejectResourceGroupingRecommendationsCommand} + */ + rejectResourceGroupingRecommendations( + args: RejectResourceGroupingRecommendationsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + rejectResourceGroupingRecommendations( + args: RejectResourceGroupingRecommendationsCommandInput, + cb: (err: any, data?: RejectResourceGroupingRecommendationsCommandOutput) => void + ): void; + rejectResourceGroupingRecommendations( + args: RejectResourceGroupingRecommendationsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: RejectResourceGroupingRecommendationsCommandOutput) => void + ): void; + /** * @see {@link RemoveDraftAppVersionResourceMappingsCommand} */ @@ -1108,6 +1207,23 @@ export interface Resiliencehub { cb: (err: any, data?: StartAppAssessmentCommandOutput) => void ): void; + /** + * @see {@link StartResourceGroupingRecommendationTaskCommand} + */ + startResourceGroupingRecommendationTask( + args: StartResourceGroupingRecommendationTaskCommandInput, + options?: __HttpHandlerOptions + ): Promise; + startResourceGroupingRecommendationTask( + args: StartResourceGroupingRecommendationTaskCommandInput, + cb: (err: any, data?: StartResourceGroupingRecommendationTaskCommandOutput) => void + ): void; + startResourceGroupingRecommendationTask( + args: StartResourceGroupingRecommendationTaskCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: StartResourceGroupingRecommendationTaskCommandOutput) => void + ): void; + /** * @see {@link TagResourceCommand} */ diff --git a/clients/client-resiliencehub/src/ResiliencehubClient.ts b/clients/client-resiliencehub/src/ResiliencehubClient.ts index 326b3a619d57a..3353369414ccd 100644 --- a/clients/client-resiliencehub/src/ResiliencehubClient.ts +++ b/clients/client-resiliencehub/src/ResiliencehubClient.ts @@ -53,6 +53,10 @@ import { HttpAuthSchemeResolvedConfig, resolveHttpAuthSchemeConfig, } from "./auth/httpAuthSchemeProvider"; +import { + AcceptResourceGroupingRecommendationsCommandInput, + AcceptResourceGroupingRecommendationsCommandOutput, +} from "./commands/AcceptResourceGroupingRecommendationsCommand"; import { AddDraftAppVersionResourceMappingsCommandInput, AddDraftAppVersionResourceMappingsCommandOutput, @@ -133,6 +137,10 @@ import { DescribeResiliencyPolicyCommandInput, DescribeResiliencyPolicyCommandOutput, } from "./commands/DescribeResiliencyPolicyCommand"; +import { + DescribeResourceGroupingRecommendationTaskCommandInput, + DescribeResourceGroupingRecommendationTaskCommandOutput, +} from "./commands/DescribeResourceGroupingRecommendationTaskCommand"; import { ImportResourcesToDraftAppVersionCommandInput, ImportResourcesToDraftAppVersionCommandOutput, @@ -184,6 +192,10 @@ import { ListResiliencyPoliciesCommandInput, ListResiliencyPoliciesCommandOutput, } from "./commands/ListResiliencyPoliciesCommand"; +import { + ListResourceGroupingRecommendationsCommandInput, + ListResourceGroupingRecommendationsCommandOutput, +} from "./commands/ListResourceGroupingRecommendationsCommand"; import { ListSopRecommendationsCommandInput, ListSopRecommendationsCommandOutput, @@ -209,6 +221,10 @@ import { PutDraftAppVersionTemplateCommandInput, PutDraftAppVersionTemplateCommandOutput, } from "./commands/PutDraftAppVersionTemplateCommand"; +import { + RejectResourceGroupingRecommendationsCommandInput, + RejectResourceGroupingRecommendationsCommandOutput, +} from "./commands/RejectResourceGroupingRecommendationsCommand"; import { RemoveDraftAppVersionResourceMappingsCommandInput, RemoveDraftAppVersionResourceMappingsCommandOutput, @@ -218,6 +234,10 @@ import { ResolveAppVersionResourcesCommandOutput, } from "./commands/ResolveAppVersionResourcesCommand"; import { StartAppAssessmentCommandInput, StartAppAssessmentCommandOutput } from "./commands/StartAppAssessmentCommand"; +import { + StartResourceGroupingRecommendationTaskCommandInput, + StartResourceGroupingRecommendationTaskCommandOutput, +} from "./commands/StartResourceGroupingRecommendationTaskCommand"; import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand"; import { UpdateAppCommandInput, UpdateAppCommandOutput } from "./commands/UpdateAppCommand"; @@ -249,6 +269,7 @@ export { __Client }; * @public */ export type ServiceInputTypes = + | AcceptResourceGroupingRecommendationsCommandInput | AddDraftAppVersionResourceMappingsCommandInput | BatchUpdateRecommendationStatusCommandInput | CreateAppCommandInput @@ -272,6 +293,7 @@ export type ServiceInputTypes = | DescribeAppVersionTemplateCommandInput | DescribeDraftAppVersionResourcesImportStatusCommandInput | DescribeResiliencyPolicyCommandInput + | DescribeResourceGroupingRecommendationTaskCommandInput | ImportResourcesToDraftAppVersionCommandInput | ListAlarmRecommendationsCommandInput | ListAppAssessmentComplianceDriftsCommandInput @@ -287,6 +309,7 @@ export type ServiceInputTypes = | ListAppsCommandInput | ListRecommendationTemplatesCommandInput | ListResiliencyPoliciesCommandInput + | ListResourceGroupingRecommendationsCommandInput | ListSopRecommendationsCommandInput | ListSuggestedResiliencyPoliciesCommandInput | ListTagsForResourceCommandInput @@ -294,9 +317,11 @@ export type ServiceInputTypes = | ListUnsupportedAppVersionResourcesCommandInput | PublishAppVersionCommandInput | PutDraftAppVersionTemplateCommandInput + | RejectResourceGroupingRecommendationsCommandInput | RemoveDraftAppVersionResourceMappingsCommandInput | ResolveAppVersionResourcesCommandInput | StartAppAssessmentCommandInput + | StartResourceGroupingRecommendationTaskCommandInput | TagResourceCommandInput | UntagResourceCommandInput | UpdateAppCommandInput @@ -309,6 +334,7 @@ export type ServiceInputTypes = * @public */ export type ServiceOutputTypes = + | AcceptResourceGroupingRecommendationsCommandOutput | AddDraftAppVersionResourceMappingsCommandOutput | BatchUpdateRecommendationStatusCommandOutput | CreateAppCommandOutput @@ -332,6 +358,7 @@ export type ServiceOutputTypes = | DescribeAppVersionTemplateCommandOutput | DescribeDraftAppVersionResourcesImportStatusCommandOutput | DescribeResiliencyPolicyCommandOutput + | DescribeResourceGroupingRecommendationTaskCommandOutput | ImportResourcesToDraftAppVersionCommandOutput | ListAlarmRecommendationsCommandOutput | ListAppAssessmentComplianceDriftsCommandOutput @@ -347,6 +374,7 @@ export type ServiceOutputTypes = | ListAppsCommandOutput | ListRecommendationTemplatesCommandOutput | ListResiliencyPoliciesCommandOutput + | ListResourceGroupingRecommendationsCommandOutput | ListSopRecommendationsCommandOutput | ListSuggestedResiliencyPoliciesCommandOutput | ListTagsForResourceCommandOutput @@ -354,9 +382,11 @@ export type ServiceOutputTypes = | ListUnsupportedAppVersionResourcesCommandOutput | PublishAppVersionCommandOutput | PutDraftAppVersionTemplateCommandOutput + | RejectResourceGroupingRecommendationsCommandOutput | RemoveDraftAppVersionResourceMappingsCommandOutput | ResolveAppVersionResourcesCommandOutput | StartAppAssessmentCommandOutput + | StartResourceGroupingRecommendationTaskCommandOutput | TagResourceCommandOutput | UntagResourceCommandOutput | UpdateAppCommandOutput diff --git a/clients/client-resiliencehub/src/commands/AcceptResourceGroupingRecommendationsCommand.ts b/clients/client-resiliencehub/src/commands/AcceptResourceGroupingRecommendationsCommand.ts new file mode 100644 index 0000000000000..5793c857636c4 --- /dev/null +++ b/clients/client-resiliencehub/src/commands/AcceptResourceGroupingRecommendationsCommand.ts @@ -0,0 +1,120 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { + AcceptResourceGroupingRecommendationsRequest, + AcceptResourceGroupingRecommendationsResponse, +} from "../models/models_0"; +import { + de_AcceptResourceGroupingRecommendationsCommand, + se_AcceptResourceGroupingRecommendationsCommand, +} from "../protocols/Aws_restJson1"; +import { ResiliencehubClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ResiliencehubClient"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link AcceptResourceGroupingRecommendationsCommand}. + */ +export interface AcceptResourceGroupingRecommendationsCommandInput + extends AcceptResourceGroupingRecommendationsRequest {} +/** + * @public + * + * The output of {@link AcceptResourceGroupingRecommendationsCommand}. + */ +export interface AcceptResourceGroupingRecommendationsCommandOutput + extends AcceptResourceGroupingRecommendationsResponse, + __MetadataBearer {} + +/** + *

Accepts the resource grouping recommendations suggested by Resilience Hub for your application.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ResiliencehubClient, AcceptResourceGroupingRecommendationsCommand } from "@aws-sdk/client-resiliencehub"; // ES Modules import + * // const { ResiliencehubClient, AcceptResourceGroupingRecommendationsCommand } = require("@aws-sdk/client-resiliencehub"); // CommonJS import + * const client = new ResiliencehubClient(config); + * const input = { // AcceptResourceGroupingRecommendationsRequest + * appArn: "STRING_VALUE", // required + * entries: [ // AcceptGroupingRecommendationEntries // required + * { // AcceptGroupingRecommendationEntry + * groupingRecommendationId: "STRING_VALUE", // required + * }, + * ], + * }; + * const command = new AcceptResourceGroupingRecommendationsCommand(input); + * const response = await client.send(command); + * // { // AcceptResourceGroupingRecommendationsResponse + * // appArn: "STRING_VALUE", // required + * // failedEntries: [ // FailedGroupingRecommendationEntries // required + * // { // FailedGroupingRecommendationEntry + * // groupingRecommendationId: "STRING_VALUE", // required + * // errorMessage: "STRING_VALUE", // required + * // }, + * // ], + * // }; + * + * ``` + * + * @param AcceptResourceGroupingRecommendationsCommandInput - {@link AcceptResourceGroupingRecommendationsCommandInput} + * @returns {@link AcceptResourceGroupingRecommendationsCommandOutput} + * @see {@link AcceptResourceGroupingRecommendationsCommandInput} for command's `input` shape. + * @see {@link AcceptResourceGroupingRecommendationsCommandOutput} for command's `response` shape. + * @see {@link ResiliencehubClientResolvedConfig | config} for ResiliencehubClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

You don't have permissions to perform the requested operation. The user or role that is + * making the request must have at least one IAM permissions policy attached that grants the + * required permissions.

+ * + * @throws {@link InternalServerException} (server fault) + *

This exception occurs when there is an internal failure in the Resilience Hub + * service.

+ * + * @throws {@link ResourceNotFoundException} (client fault) + *

This exception occurs when the specified resource could not be found.

+ * + * @throws {@link ThrottlingException} (client fault) + *

This exception occurs when you have exceeded the limit on the number of requests per second.

+ * + * @throws {@link ValidationException} (client fault) + *

This exception occurs when a request is not valid.

+ * + * @throws {@link ResiliencehubServiceException} + *

Base exception class for all service exceptions from Resiliencehub service.

+ * + * @public + */ +export class AcceptResourceGroupingRecommendationsCommand extends $Command + .classBuilder< + AcceptResourceGroupingRecommendationsCommandInput, + AcceptResourceGroupingRecommendationsCommandOutput, + ResiliencehubClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep({ + ...commonParams, + }) + .m(function (this: any, Command: any, cs: any, config: ResiliencehubClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AwsResilienceHub", "AcceptResourceGroupingRecommendations", {}) + .n("ResiliencehubClient", "AcceptResourceGroupingRecommendationsCommand") + .f(void 0, void 0) + .ser(se_AcceptResourceGroupingRecommendationsCommand) + .de(de_AcceptResourceGroupingRecommendationsCommand) + .build() {} diff --git a/clients/client-resiliencehub/src/commands/AddDraftAppVersionResourceMappingsCommand.ts b/clients/client-resiliencehub/src/commands/AddDraftAppVersionResourceMappingsCommand.ts index 0971034b5a051..a4886c81c636d 100644 --- a/clients/client-resiliencehub/src/commands/AddDraftAppVersionResourceMappingsCommand.ts +++ b/clients/client-resiliencehub/src/commands/AddDraftAppVersionResourceMappingsCommand.ts @@ -36,7 +36,12 @@ export interface AddDraftAppVersionResourceMappingsCommandOutput __MetadataBearer {} /** - *

Adds the source of resource-maps to the draft version of an application. During assessment, Resilience Hub will use these resource-maps to resolve the latest physical ID for each resource in the application template. For more information about different types of resources suported by Resilience Hub and how to add them in your application, see Step 2: How is your application managed? in the Resilience Hub User Guide.

+ *

Adds the source of resource-maps to the draft version of an application. During + * assessment, Resilience Hub will use these resource-maps to resolve the latest physical + * ID for each resource in the application template. For more information about different types + * of resources supported by Resilience Hub and how to add them in your application, see + * Step + * 2: How is your application managed? in the Resilience Hub User Guide.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript @@ -113,6 +118,10 @@ export interface AddDraftAppVersionResourceMappingsCommandOutput * @throws {@link ResourceNotFoundException} (client fault) *

This exception occurs when the specified resource could not be found.

* + * @throws {@link ServiceQuotaExceededException} (client fault) + *

This exception occurs when you have exceeded your service quota. To perform the requested action, remove some of the + * relevant resources, or use Service Quotas to request a service quota increase.

+ * * @throws {@link ThrottlingException} (client fault) *

This exception occurs when you have exceeded the limit on the number of requests per second.

* diff --git a/clients/client-resiliencehub/src/commands/CreateAppCommand.ts b/clients/client-resiliencehub/src/commands/CreateAppCommand.ts index d4bf7f220481f..5c768b92f8cf0 100644 --- a/clients/client-resiliencehub/src/commands/CreateAppCommand.ts +++ b/clients/client-resiliencehub/src/commands/CreateAppCommand.ts @@ -34,14 +34,15 @@ export interface CreateAppCommandOutput extends CreateAppResponse, __MetadataBea /** *

Creates an Resilience Hub application. An Resilience Hub application is a - * collection of Amazon Web Services resources structured to prevent and recover Amazon Web Services application disruptions. To describe a Resilience Hub application, - * you provide an application name, resources from one or more CloudFormation stacks, Resource Groups, Terraform state files, AppRegistry applications, and an appropriate - * resiliency policy. In addition, you can also add resources that are located on Amazon Elastic Kubernetes Service (Amazon EKS) clusters as optional resources. For more information about the number of resources supported per application, see Service + * collection of Amazon Web Services resources structured to prevent and recover Amazon Web Services application disruptions. To describe a Resilience Hub application, you provide an + * application name, resources from one or more CloudFormation stacks, Resource Groups, Terraform state files, AppRegistry applications, and an appropriate + * resiliency policy. In addition, you can also add resources that are located on Amazon Elastic Kubernetes Service (Amazon EKS) clusters as optional resources. For more information + * about the number of resources supported per application, see Service * quotas.

- *

After you create an Resilience Hub application, you publish it so that you can run a resiliency - * assessment on it. You can then use recommendations from the assessment to improve resiliency - * by running another assessment, comparing results, and then iterating the process until you - * achieve your goals for recovery time objective (RTO) and recovery point objective + *

After you create an Resilience Hub application, you publish it so that you can run + * a resiliency assessment on it. You can then use recommendations from the assessment to improve + * resiliency by running another assessment, comparing results, and then iterating the process + * until you achieve your goals for recovery time objective (RTO) and recovery point objective * (RPO).

* @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-resiliencehub/src/commands/CreateAppVersionAppComponentCommand.ts b/clients/client-resiliencehub/src/commands/CreateAppVersionAppComponentCommand.ts index b386a360adf64..aaf69cacd16cb 100644 --- a/clients/client-resiliencehub/src/commands/CreateAppVersionAppComponentCommand.ts +++ b/clients/client-resiliencehub/src/commands/CreateAppVersionAppComponentCommand.ts @@ -35,7 +35,9 @@ export interface CreateAppVersionAppComponentCommandOutput /** *

Creates a new Application Component in the Resilience Hub application.

* - *

This API updates the Resilience Hub application draft version. To use this Application Component for running assessments, you must publish the Resilience Hub application using the PublishAppVersion API.

+ *

This API updates the Resilience Hub application draft version. To use this + * Application Component for running assessments, you must publish the Resilience Hub + * application using the PublishAppVersion API.

*
* @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-resiliencehub/src/commands/CreateAppVersionResourceCommand.ts b/clients/client-resiliencehub/src/commands/CreateAppVersionResourceCommand.ts index ddc7a64ba2518..7efd1b42b9d3d 100644 --- a/clients/client-resiliencehub/src/commands/CreateAppVersionResourceCommand.ts +++ b/clients/client-resiliencehub/src/commands/CreateAppVersionResourceCommand.ts @@ -29,17 +29,17 @@ export interface CreateAppVersionResourceCommandOutput extends CreateAppVersionR /** *

Adds a resource to the Resilience Hub application and assigns it to the specified - * Application Components. If you specify a new Application Component, Resilience Hub will automatically - * create the Application Component.

+ * Application Components. If you specify a new Application Component, Resilience Hub will + * automatically create the Application Component.

* *
    *
  • *

    This action has no effect outside Resilience Hub.

    *
  • *
  • - *

    This API updates the Resilience Hub application draft version. To use this resource - * for running resiliency assessments, you must publish the Resilience Hub application using - * the PublishAppVersion API.

    + *

    This API updates the Resilience Hub application draft version. To use this + * resource for running resiliency assessments, you must publish the Resilience Hub + * application using the PublishAppVersion API.

    *
  • *
  • *

    To update application version with new physicalResourceID, you must diff --git a/clients/client-resiliencehub/src/commands/CreateResiliencyPolicyCommand.ts b/clients/client-resiliencehub/src/commands/CreateResiliencyPolicyCommand.ts index 6b06c52b874df..3a17716d32683 100644 --- a/clients/client-resiliencehub/src/commands/CreateResiliencyPolicyCommand.ts +++ b/clients/client-resiliencehub/src/commands/CreateResiliencyPolicyCommand.ts @@ -35,9 +35,11 @@ export interface CreateResiliencyPolicyCommandOutput extends CreateResiliencyPol /** *

    Creates a resiliency policy for an application.

    * - *

    Resilience Hub allows you to provide a value of zero for rtoInSecs and - * rpoInSecs of your resiliency policy. But, while assessing your application, the lowest possible assessment result is near zero. Hence, if you provide value - * zero for rtoInSecs and rpoInSecs, the estimated workload RTO and estimated workload RPO result will be near zero and the Compliance + *

    Resilience Hub allows you to provide a value of zero for rtoInSecs + * and rpoInSecs of your resiliency policy. But, while assessing your application, + * the lowest possible assessment result is near zero. Hence, if you provide value zero for + * rtoInSecs and rpoInSecs, the estimated workload RTO and + * estimated workload RPO result will be near zero and the Compliance * status for your application will be set to Policy * breached.

    *
    diff --git a/clients/client-resiliencehub/src/commands/DeleteAppAssessmentCommand.ts b/clients/client-resiliencehub/src/commands/DeleteAppAssessmentCommand.ts index 4a1dab3afc337..076912a649c26 100644 --- a/clients/client-resiliencehub/src/commands/DeleteAppAssessmentCommand.ts +++ b/clients/client-resiliencehub/src/commands/DeleteAppAssessmentCommand.ts @@ -28,8 +28,8 @@ export interface DeleteAppAssessmentCommandInput extends DeleteAppAssessmentRequ export interface DeleteAppAssessmentCommandOutput extends DeleteAppAssessmentResponse, __MetadataBearer {} /** - *

    Deletes an Resilience Hub application assessment. This is a destructive action that can't - * be undone.

    + *

    Deletes an Resilience Hub application assessment. This is a destructive action + * that can't be undone.

    * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-resiliencehub/src/commands/DeleteAppInputSourceCommand.ts b/clients/client-resiliencehub/src/commands/DeleteAppInputSourceCommand.ts index b9a8479f476f6..091dea1a2212a 100644 --- a/clients/client-resiliencehub/src/commands/DeleteAppInputSourceCommand.ts +++ b/clients/client-resiliencehub/src/commands/DeleteAppInputSourceCommand.ts @@ -28,7 +28,8 @@ export interface DeleteAppInputSourceCommandInput extends DeleteAppInputSourceRe export interface DeleteAppInputSourceCommandOutput extends DeleteAppInputSourceResponse, __MetadataBearer {} /** - *

    Deletes the input source and all of its imported resources from the Resilience Hub application.

    + *

    Deletes the input source and all of its imported resources from the Resilience Hub + * application.

    * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-resiliencehub/src/commands/DeleteAppVersionAppComponentCommand.ts b/clients/client-resiliencehub/src/commands/DeleteAppVersionAppComponentCommand.ts index 4d65b2c24db7c..e4938cc13e32a 100644 --- a/clients/client-resiliencehub/src/commands/DeleteAppVersionAppComponentCommand.ts +++ b/clients/client-resiliencehub/src/commands/DeleteAppVersionAppComponentCommand.ts @@ -37,10 +37,13 @@ export interface DeleteAppVersionAppComponentCommandOutput * *
      *
    • - *

      This API updates the Resilience Hub application draft version. To use this Application Component for running assessments, you must publish the Resilience Hub application using the PublishAppVersion API.

      + *

      This API updates the Resilience Hub application draft version. To use this + * Application Component for running assessments, you must publish the Resilience Hub + * application using the PublishAppVersion API.

      *
    • *
    • - *

      You will not be able to delete an Application Component if it has resources associated with it.

      + *

      You will not be able to delete an Application Component if it has resources associated + * with it.

      *
    • *
    *
    diff --git a/clients/client-resiliencehub/src/commands/DeleteAppVersionResourceCommand.ts b/clients/client-resiliencehub/src/commands/DeleteAppVersionResourceCommand.ts index 351005f2b5927..a1635a11d316e 100644 --- a/clients/client-resiliencehub/src/commands/DeleteAppVersionResourceCommand.ts +++ b/clients/client-resiliencehub/src/commands/DeleteAppVersionResourceCommand.ts @@ -32,13 +32,16 @@ export interface DeleteAppVersionResourceCommandOutput extends DeleteAppVersionR * *
      *
    • - *

      You can only delete a manually added resource. To exclude non-manually added resources, use the UpdateAppVersionResource API.

      + *

      You can only delete a manually added resource. To exclude non-manually added + * resources, use the UpdateAppVersionResource API.

      *
    • *
    • *

      This action has no effect outside Resilience Hub.

      *
    • *
    • - *

      This API updates the Resilience Hub application draft version. To use this resource for running resiliency assessments, you must publish the Resilience Hub application using the PublishAppVersion API.

      + *

      This API updates the Resilience Hub application draft version. To use this + * resource for running resiliency assessments, you must publish the Resilience Hub + * application using the PublishAppVersion API.

      *
    • *
    *
    diff --git a/clients/client-resiliencehub/src/commands/DescribeAppAssessmentCommand.ts b/clients/client-resiliencehub/src/commands/DescribeAppAssessmentCommand.ts index 08e4d5f2450a6..61c3243d949f5 100644 --- a/clients/client-resiliencehub/src/commands/DescribeAppAssessmentCommand.ts +++ b/clients/client-resiliencehub/src/commands/DescribeAppAssessmentCommand.ts @@ -122,6 +122,18 @@ export interface DescribeAppAssessmentCommandOutput extends DescribeAppAssessmen * // }, * // versionName: "STRING_VALUE", * // driftStatus: "STRING_VALUE", + * // summary: { // AssessmentSummary + * // summary: "STRING_VALUE", + * // riskRecommendations: [ // AssessmentRiskRecommendationList + * // { // AssessmentRiskRecommendation + * // risk: "STRING_VALUE", + * // recommendation: "STRING_VALUE", + * // appComponents: [ // AppComponentNameList + * // "STRING_VALUE", + * // ], + * // }, + * // ], + * // }, * // }, * // }; * diff --git a/clients/client-resiliencehub/src/commands/DescribeAppVersionResourceCommand.ts b/clients/client-resiliencehub/src/commands/DescribeAppVersionResourceCommand.ts index abd7d8ef7ac2f..a8506c3f38151 100644 --- a/clients/client-resiliencehub/src/commands/DescribeAppVersionResourceCommand.ts +++ b/clients/client-resiliencehub/src/commands/DescribeAppVersionResourceCommand.ts @@ -30,7 +30,7 @@ export interface DescribeAppVersionResourceCommandOutput extends DescribeAppVers /** *

    Describes a resource of the Resilience Hub application.

    * - *

    This API accepts only one of the following parameters to descibe the resource:

    + *

    This API accepts only one of the following parameters to describe the resource:

    *
      *
    • *

      @@ -44,8 +44,8 @@ export interface DescribeAppVersionResourceCommandOutput extends DescribeAppVers *

    • *
    • *

      - * physicalResourceId (Along with physicalResourceId, you can also - * provide awsAccountId, and awsRegion)

      + * physicalResourceId (Along with physicalResourceId, you can + * also provide awsAccountId, and awsRegion)

      *
    • *
    *
    diff --git a/clients/client-resiliencehub/src/commands/DescribeDraftAppVersionResourcesImportStatusCommand.ts b/clients/client-resiliencehub/src/commands/DescribeDraftAppVersionResourcesImportStatusCommand.ts index 47e858c344a8b..11bb94d1d515a 100644 --- a/clients/client-resiliencehub/src/commands/DescribeDraftAppVersionResourcesImportStatusCommand.ts +++ b/clients/client-resiliencehub/src/commands/DescribeDraftAppVersionResourcesImportStatusCommand.ts @@ -41,7 +41,7 @@ export interface DescribeDraftAppVersionResourcesImportStatusCommandOutput * *

    If you get a 404 error with * ResourceImportStatusNotFoundAppMetadataException, you must call - * importResourcesToDraftAppVersion after creating the application and before + * importResourcesToDraftAppVersion after creating the application and before * calling describeDraftAppVersionResourcesImportStatus to obtain the * status.

    *
    diff --git a/clients/client-resiliencehub/src/commands/DescribeResourceGroupingRecommendationTaskCommand.ts b/clients/client-resiliencehub/src/commands/DescribeResourceGroupingRecommendationTaskCommand.ts new file mode 100644 index 0000000000000..e067774daa1d5 --- /dev/null +++ b/clients/client-resiliencehub/src/commands/DescribeResourceGroupingRecommendationTaskCommand.ts @@ -0,0 +1,112 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { + DescribeResourceGroupingRecommendationTaskRequest, + DescribeResourceGroupingRecommendationTaskResponse, +} from "../models/models_0"; +import { + de_DescribeResourceGroupingRecommendationTaskCommand, + se_DescribeResourceGroupingRecommendationTaskCommand, +} from "../protocols/Aws_restJson1"; +import { ResiliencehubClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ResiliencehubClient"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link DescribeResourceGroupingRecommendationTaskCommand}. + */ +export interface DescribeResourceGroupingRecommendationTaskCommandInput + extends DescribeResourceGroupingRecommendationTaskRequest {} +/** + * @public + * + * The output of {@link DescribeResourceGroupingRecommendationTaskCommand}. + */ +export interface DescribeResourceGroupingRecommendationTaskCommandOutput + extends DescribeResourceGroupingRecommendationTaskResponse, + __MetadataBearer {} + +/** + *

    Describes the resource grouping recommendation tasks run by Resilience Hub for your application.

    + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ResiliencehubClient, DescribeResourceGroupingRecommendationTaskCommand } from "@aws-sdk/client-resiliencehub"; // ES Modules import + * // const { ResiliencehubClient, DescribeResourceGroupingRecommendationTaskCommand } = require("@aws-sdk/client-resiliencehub"); // CommonJS import + * const client = new ResiliencehubClient(config); + * const input = { // DescribeResourceGroupingRecommendationTaskRequest + * appArn: "STRING_VALUE", // required + * groupingId: "STRING_VALUE", + * }; + * const command = new DescribeResourceGroupingRecommendationTaskCommand(input); + * const response = await client.send(command); + * // { // DescribeResourceGroupingRecommendationTaskResponse + * // groupingId: "STRING_VALUE", // required + * // status: "STRING_VALUE", // required + * // errorMessage: "STRING_VALUE", + * // }; + * + * ``` + * + * @param DescribeResourceGroupingRecommendationTaskCommandInput - {@link DescribeResourceGroupingRecommendationTaskCommandInput} + * @returns {@link DescribeResourceGroupingRecommendationTaskCommandOutput} + * @see {@link DescribeResourceGroupingRecommendationTaskCommandInput} for command's `input` shape. + * @see {@link DescribeResourceGroupingRecommendationTaskCommandOutput} for command's `response` shape. + * @see {@link ResiliencehubClientResolvedConfig | config} for ResiliencehubClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

    You don't have permissions to perform the requested operation. The user or role that is + * making the request must have at least one IAM permissions policy attached that grants the + * required permissions.

    + * + * @throws {@link InternalServerException} (server fault) + *

    This exception occurs when there is an internal failure in the Resilience Hub + * service.

    + * + * @throws {@link ResourceNotFoundException} (client fault) + *

    This exception occurs when the specified resource could not be found.

    + * + * @throws {@link ThrottlingException} (client fault) + *

    This exception occurs when you have exceeded the limit on the number of requests per second.

    + * + * @throws {@link ValidationException} (client fault) + *

    This exception occurs when a request is not valid.

    + * + * @throws {@link ResiliencehubServiceException} + *

    Base exception class for all service exceptions from Resiliencehub service.

    + * + * @public + */ +export class DescribeResourceGroupingRecommendationTaskCommand extends $Command + .classBuilder< + DescribeResourceGroupingRecommendationTaskCommandInput, + DescribeResourceGroupingRecommendationTaskCommandOutput, + ResiliencehubClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep({ + ...commonParams, + }) + .m(function (this: any, Command: any, cs: any, config: ResiliencehubClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AwsResilienceHub", "DescribeResourceGroupingRecommendationTask", {}) + .n("ResiliencehubClient", "DescribeResourceGroupingRecommendationTaskCommand") + .f(void 0, void 0) + .ser(se_DescribeResourceGroupingRecommendationTaskCommand) + .de(de_DescribeResourceGroupingRecommendationTaskCommand) + .build() {} diff --git a/clients/client-resiliencehub/src/commands/ImportResourcesToDraftAppVersionCommand.ts b/clients/client-resiliencehub/src/commands/ImportResourcesToDraftAppVersionCommand.ts index 3092b2b8885ff..96f65ba97d892 100644 --- a/clients/client-resiliencehub/src/commands/ImportResourcesToDraftAppVersionCommand.ts +++ b/clients/client-resiliencehub/src/commands/ImportResourcesToDraftAppVersionCommand.ts @@ -33,8 +33,9 @@ export interface ImportResourcesToDraftAppVersionCommandOutput __MetadataBearer {} /** - *

    Imports resources to Resilience Hub application draft version from different input sources. For more information about the input sources supported by Resilience Hub, see Discover - * the structure and describe your Resilience Hub application.

    + *

    Imports resources to Resilience Hub application draft version from different input + * sources. For more information about the input sources supported by Resilience Hub, see + * Discover the structure and describe your Resilience Hub application.

    * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-resiliencehub/src/commands/ListAppAssessmentResourceDriftsCommand.ts b/clients/client-resiliencehub/src/commands/ListAppAssessmentResourceDriftsCommand.ts index 564783580d972..601a4d6aa8a56 100644 --- a/clients/client-resiliencehub/src/commands/ListAppAssessmentResourceDriftsCommand.ts +++ b/clients/client-resiliencehub/src/commands/ListAppAssessmentResourceDriftsCommand.ts @@ -33,7 +33,8 @@ export interface ListAppAssessmentResourceDriftsCommandOutput __MetadataBearer {} /** - *

    Indicates the list of resource drifts that were detected while running an assessment.

    + *

    Indicates the list of resource drifts that were detected while running an + * assessment.

    * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-resiliencehub/src/commands/ListAppAssessmentsCommand.ts b/clients/client-resiliencehub/src/commands/ListAppAssessmentsCommand.ts index e4d4efb7be7a2..eceeb7cd7662e 100644 --- a/clients/client-resiliencehub/src/commands/ListAppAssessmentsCommand.ts +++ b/clients/client-resiliencehub/src/commands/ListAppAssessmentsCommand.ts @@ -28,8 +28,8 @@ export interface ListAppAssessmentsCommandInput extends ListAppAssessmentsReques export interface ListAppAssessmentsCommandOutput extends ListAppAssessmentsResponse, __MetadataBearer {} /** - *

    Lists the assessments for an Resilience Hub application. You can use request parameters to - * refine the results for the response object.

    + *

    Lists the assessments for an Resilience Hub application. You can use request + * parameters to refine the results for the response object.

    * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-resiliencehub/src/commands/ListAppInputSourcesCommand.ts b/clients/client-resiliencehub/src/commands/ListAppInputSourcesCommand.ts index 1893de4ffffde..4995d2690d270 100644 --- a/clients/client-resiliencehub/src/commands/ListAppInputSourcesCommand.ts +++ b/clients/client-resiliencehub/src/commands/ListAppInputSourcesCommand.ts @@ -28,8 +28,8 @@ export interface ListAppInputSourcesCommandInput extends ListAppInputSourcesRequ export interface ListAppInputSourcesCommandOutput extends ListAppInputSourcesResponse, __MetadataBearer {} /** - *

    Lists all the input sources of the Resilience Hub application. For more information about the - * input sources supported by Resilience Hub, see Discover + *

    Lists all the input sources of the Resilience Hub application. For more + * information about the input sources supported by Resilience Hub, see Discover * the structure and describe your Resilience Hub application.

    * @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-resiliencehub/src/commands/ListResourceGroupingRecommendationsCommand.ts b/clients/client-resiliencehub/src/commands/ListResourceGroupingRecommendationsCommand.ts new file mode 100644 index 0000000000000..995e268a9c4f7 --- /dev/null +++ b/clients/client-resiliencehub/src/commands/ListResourceGroupingRecommendationsCommand.ts @@ -0,0 +1,150 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { + ListResourceGroupingRecommendationsRequest, + ListResourceGroupingRecommendationsResponse, +} from "../models/models_0"; +import { + de_ListResourceGroupingRecommendationsCommand, + se_ListResourceGroupingRecommendationsCommand, +} from "../protocols/Aws_restJson1"; +import { ResiliencehubClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ResiliencehubClient"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link ListResourceGroupingRecommendationsCommand}. + */ +export interface ListResourceGroupingRecommendationsCommandInput extends ListResourceGroupingRecommendationsRequest {} +/** + * @public + * + * The output of {@link ListResourceGroupingRecommendationsCommand}. + */ +export interface ListResourceGroupingRecommendationsCommandOutput + extends ListResourceGroupingRecommendationsResponse, + __MetadataBearer {} + +/** + *

    Lists the resource grouping recommendations suggested by Resilience Hub for your application.

    + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ResiliencehubClient, ListResourceGroupingRecommendationsCommand } from "@aws-sdk/client-resiliencehub"; // ES Modules import + * // const { ResiliencehubClient, ListResourceGroupingRecommendationsCommand } = require("@aws-sdk/client-resiliencehub"); // CommonJS import + * const client = new ResiliencehubClient(config); + * const input = { // ListResourceGroupingRecommendationsRequest + * appArn: "STRING_VALUE", + * nextToken: "STRING_VALUE", + * maxResults: Number("int"), + * }; + * const command = new ListResourceGroupingRecommendationsCommand(input); + * const response = await client.send(command); + * // { // ListResourceGroupingRecommendationsResponse + * // groupingRecommendations: [ // GroupingRecommendationList // required + * // { // GroupingRecommendation + * // groupingRecommendationId: "STRING_VALUE", // required + * // groupingAppComponent: { // GroupingAppComponent + * // appComponentId: "STRING_VALUE", // required + * // appComponentType: "STRING_VALUE", // required + * // appComponentName: "STRING_VALUE", // required + * // }, + * // resources: [ // GroupingResourceList // required + * // { // GroupingResource + * // resourceName: "STRING_VALUE", // required + * // resourceType: "STRING_VALUE", // required + * // physicalResourceId: { // PhysicalResourceId + * // identifier: "STRING_VALUE", // required + * // type: "STRING_VALUE", // required + * // awsRegion: "STRING_VALUE", + * // awsAccountId: "STRING_VALUE", + * // }, + * // logicalResourceId: { // LogicalResourceId + * // identifier: "STRING_VALUE", // required + * // logicalStackName: "STRING_VALUE", + * // resourceGroupName: "STRING_VALUE", + * // terraformSourceName: "STRING_VALUE", + * // eksSourceName: "STRING_VALUE", + * // }, + * // sourceAppComponentIds: [ // String255List // required + * // "STRING_VALUE", + * // ], + * // }, + * // ], + * // score: Number("double"), // required + * // recommendationReasons: [ // required + * // "STRING_VALUE", + * // ], + * // status: "STRING_VALUE", // required + * // confidenceLevel: "STRING_VALUE", // required + * // creationTime: new Date("TIMESTAMP"), // required + * // rejectionReason: "STRING_VALUE", + * // }, + * // ], + * // nextToken: "STRING_VALUE", + * // }; + * + * ``` + * + * @param ListResourceGroupingRecommendationsCommandInput - {@link ListResourceGroupingRecommendationsCommandInput} + * @returns {@link ListResourceGroupingRecommendationsCommandOutput} + * @see {@link ListResourceGroupingRecommendationsCommandInput} for command's `input` shape. + * @see {@link ListResourceGroupingRecommendationsCommandOutput} for command's `response` shape. + * @see {@link ResiliencehubClientResolvedConfig | config} for ResiliencehubClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

    You don't have permissions to perform the requested operation. The user or role that is + * making the request must have at least one IAM permissions policy attached that grants the + * required permissions.

    + * + * @throws {@link InternalServerException} (server fault) + *

    This exception occurs when there is an internal failure in the Resilience Hub + * service.

    + * + * @throws {@link ResourceNotFoundException} (client fault) + *

    This exception occurs when the specified resource could not be found.

    + * + * @throws {@link ThrottlingException} (client fault) + *

    This exception occurs when you have exceeded the limit on the number of requests per second.

    + * + * @throws {@link ValidationException} (client fault) + *

    This exception occurs when a request is not valid.

    + * + * @throws {@link ResiliencehubServiceException} + *

    Base exception class for all service exceptions from Resiliencehub service.

    + * + * @public + */ +export class ListResourceGroupingRecommendationsCommand extends $Command + .classBuilder< + ListResourceGroupingRecommendationsCommandInput, + ListResourceGroupingRecommendationsCommandOutput, + ResiliencehubClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep({ + ...commonParams, + }) + .m(function (this: any, Command: any, cs: any, config: ResiliencehubClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AwsResilienceHub", "ListResourceGroupingRecommendations", {}) + .n("ResiliencehubClient", "ListResourceGroupingRecommendationsCommand") + .f(void 0, void 0) + .ser(se_ListResourceGroupingRecommendationsCommand) + .de(de_ListResourceGroupingRecommendationsCommand) + .build() {} diff --git a/clients/client-resiliencehub/src/commands/ListSopRecommendationsCommand.ts b/clients/client-resiliencehub/src/commands/ListSopRecommendationsCommand.ts index 1aa1bb1c309ae..ee9897c989c6d 100644 --- a/clients/client-resiliencehub/src/commands/ListSopRecommendationsCommand.ts +++ b/clients/client-resiliencehub/src/commands/ListSopRecommendationsCommand.ts @@ -28,8 +28,7 @@ export interface ListSopRecommendationsCommandInput extends ListSopRecommendatio export interface ListSopRecommendationsCommandOutput extends ListSopRecommendationsResponse, __MetadataBearer {} /** - *

    Lists the standard operating procedure (SOP) recommendations for the Resilience Hub - * applications.

    + *

    Lists the standard operating procedure (SOP) recommendations for the Resilience Hub applications.

    * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-resiliencehub/src/commands/ListSuggestedResiliencyPoliciesCommand.ts b/clients/client-resiliencehub/src/commands/ListSuggestedResiliencyPoliciesCommand.ts index 491532ce0021d..97cdf5f26a9eb 100644 --- a/clients/client-resiliencehub/src/commands/ListSuggestedResiliencyPoliciesCommand.ts +++ b/clients/client-resiliencehub/src/commands/ListSuggestedResiliencyPoliciesCommand.ts @@ -37,7 +37,8 @@ export interface ListSuggestedResiliencyPoliciesCommandOutput __MetadataBearer {} /** - *

    Lists the suggested resiliency policies for the Resilience Hub applications.

    + *

    Lists the suggested resiliency policies for the Resilience Hub + * applications.

    * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-resiliencehub/src/commands/ListUnsupportedAppVersionResourcesCommand.ts b/clients/client-resiliencehub/src/commands/ListUnsupportedAppVersionResourcesCommand.ts index 7bb3bd32714bc..68198e66e74c9 100644 --- a/clients/client-resiliencehub/src/commands/ListUnsupportedAppVersionResourcesCommand.ts +++ b/clients/client-resiliencehub/src/commands/ListUnsupportedAppVersionResourcesCommand.ts @@ -36,9 +36,9 @@ export interface ListUnsupportedAppVersionResourcesCommandOutput __MetadataBearer {} /** - *

    Lists the resources that are not currently supported in Resilience Hub. An unsupported - * resource is a resource that exists in the object that was used to create an app, but is not - * supported by Resilience Hub.

    + *

    Lists the resources that are not currently supported in Resilience Hub. An + * unsupported resource is a resource that exists in the object that was used to create an app, + * but is not supported by Resilience Hub.

    * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-resiliencehub/src/commands/PutDraftAppVersionTemplateCommand.ts b/clients/client-resiliencehub/src/commands/PutDraftAppVersionTemplateCommand.ts index e0207a41d66e8..78cf90fc9620a 100644 --- a/clients/client-resiliencehub/src/commands/PutDraftAppVersionTemplateCommand.ts +++ b/clients/client-resiliencehub/src/commands/PutDraftAppVersionTemplateCommand.ts @@ -28,7 +28,8 @@ export interface PutDraftAppVersionTemplateCommandInput extends PutDraftAppVersi export interface PutDraftAppVersionTemplateCommandOutput extends PutDraftAppVersionTemplateResponse, __MetadataBearer {} /** - *

    Adds or updates the app template for an Resilience Hub application draft version.

    + *

    Adds or updates the app template for an Resilience Hub application draft + * version.

    * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-resiliencehub/src/commands/RejectResourceGroupingRecommendationsCommand.ts b/clients/client-resiliencehub/src/commands/RejectResourceGroupingRecommendationsCommand.ts new file mode 100644 index 0000000000000..05ed7ed6c56a4 --- /dev/null +++ b/clients/client-resiliencehub/src/commands/RejectResourceGroupingRecommendationsCommand.ts @@ -0,0 +1,121 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { + RejectResourceGroupingRecommendationsRequest, + RejectResourceGroupingRecommendationsResponse, +} from "../models/models_0"; +import { + de_RejectResourceGroupingRecommendationsCommand, + se_RejectResourceGroupingRecommendationsCommand, +} from "../protocols/Aws_restJson1"; +import { ResiliencehubClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ResiliencehubClient"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link RejectResourceGroupingRecommendationsCommand}. + */ +export interface RejectResourceGroupingRecommendationsCommandInput + extends RejectResourceGroupingRecommendationsRequest {} +/** + * @public + * + * The output of {@link RejectResourceGroupingRecommendationsCommand}. + */ +export interface RejectResourceGroupingRecommendationsCommandOutput + extends RejectResourceGroupingRecommendationsResponse, + __MetadataBearer {} + +/** + *

    Rejects resource grouping recommendations.

    + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ResiliencehubClient, RejectResourceGroupingRecommendationsCommand } from "@aws-sdk/client-resiliencehub"; // ES Modules import + * // const { ResiliencehubClient, RejectResourceGroupingRecommendationsCommand } = require("@aws-sdk/client-resiliencehub"); // CommonJS import + * const client = new ResiliencehubClient(config); + * const input = { // RejectResourceGroupingRecommendationsRequest + * appArn: "STRING_VALUE", // required + * entries: [ // RejectGroupingRecommendationEntries // required + * { // RejectGroupingRecommendationEntry + * groupingRecommendationId: "STRING_VALUE", // required + * rejectionReason: "STRING_VALUE", + * }, + * ], + * }; + * const command = new RejectResourceGroupingRecommendationsCommand(input); + * const response = await client.send(command); + * // { // RejectResourceGroupingRecommendationsResponse + * // appArn: "STRING_VALUE", // required + * // failedEntries: [ // FailedGroupingRecommendationEntries // required + * // { // FailedGroupingRecommendationEntry + * // groupingRecommendationId: "STRING_VALUE", // required + * // errorMessage: "STRING_VALUE", // required + * // }, + * // ], + * // }; + * + * ``` + * + * @param RejectResourceGroupingRecommendationsCommandInput - {@link RejectResourceGroupingRecommendationsCommandInput} + * @returns {@link RejectResourceGroupingRecommendationsCommandOutput} + * @see {@link RejectResourceGroupingRecommendationsCommandInput} for command's `input` shape. + * @see {@link RejectResourceGroupingRecommendationsCommandOutput} for command's `response` shape. + * @see {@link ResiliencehubClientResolvedConfig | config} for ResiliencehubClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

    You don't have permissions to perform the requested operation. The user or role that is + * making the request must have at least one IAM permissions policy attached that grants the + * required permissions.

    + * + * @throws {@link InternalServerException} (server fault) + *

    This exception occurs when there is an internal failure in the Resilience Hub + * service.

    + * + * @throws {@link ResourceNotFoundException} (client fault) + *

    This exception occurs when the specified resource could not be found.

    + * + * @throws {@link ThrottlingException} (client fault) + *

    This exception occurs when you have exceeded the limit on the number of requests per second.

    + * + * @throws {@link ValidationException} (client fault) + *

    This exception occurs when a request is not valid.

    + * + * @throws {@link ResiliencehubServiceException} + *

    Base exception class for all service exceptions from Resiliencehub service.

    + * + * @public + */ +export class RejectResourceGroupingRecommendationsCommand extends $Command + .classBuilder< + RejectResourceGroupingRecommendationsCommandInput, + RejectResourceGroupingRecommendationsCommandOutput, + ResiliencehubClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep({ + ...commonParams, + }) + .m(function (this: any, Command: any, cs: any, config: ResiliencehubClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AwsResilienceHub", "RejectResourceGroupingRecommendations", {}) + .n("ResiliencehubClient", "RejectResourceGroupingRecommendationsCommand") + .f(void 0, void 0) + .ser(se_RejectResourceGroupingRecommendationsCommand) + .de(de_RejectResourceGroupingRecommendationsCommand) + .build() {} diff --git a/clients/client-resiliencehub/src/commands/StartAppAssessmentCommand.ts b/clients/client-resiliencehub/src/commands/StartAppAssessmentCommand.ts index 2762c10bb57cd..1e69525448ad8 100644 --- a/clients/client-resiliencehub/src/commands/StartAppAssessmentCommand.ts +++ b/clients/client-resiliencehub/src/commands/StartAppAssessmentCommand.ts @@ -129,6 +129,18 @@ export interface StartAppAssessmentCommandOutput extends StartAppAssessmentRespo * // }, * // versionName: "STRING_VALUE", * // driftStatus: "STRING_VALUE", + * // summary: { // AssessmentSummary + * // summary: "STRING_VALUE", + * // riskRecommendations: [ // AssessmentRiskRecommendationList + * // { // AssessmentRiskRecommendation + * // risk: "STRING_VALUE", + * // recommendation: "STRING_VALUE", + * // appComponents: [ // AppComponentNameList + * // "STRING_VALUE", + * // ], + * // }, + * // ], + * // }, * // }, * // }; * diff --git a/clients/client-resiliencehub/src/commands/StartResourceGroupingRecommendationTaskCommand.ts b/clients/client-resiliencehub/src/commands/StartResourceGroupingRecommendationTaskCommand.ts new file mode 100644 index 0000000000000..125d0ddab2047 --- /dev/null +++ b/clients/client-resiliencehub/src/commands/StartResourceGroupingRecommendationTaskCommand.ts @@ -0,0 +1,118 @@ +// smithy-typescript generated code +import { getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { Command as $Command } from "@smithy/smithy-client"; +import { MetadataBearer as __MetadataBearer } from "@smithy/types"; + +import { commonParams } from "../endpoint/EndpointParameters"; +import { + StartResourceGroupingRecommendationTaskRequest, + StartResourceGroupingRecommendationTaskResponse, +} from "../models/models_0"; +import { + de_StartResourceGroupingRecommendationTaskCommand, + se_StartResourceGroupingRecommendationTaskCommand, +} from "../protocols/Aws_restJson1"; +import { ResiliencehubClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ResiliencehubClient"; + +/** + * @public + */ +export type { __MetadataBearer }; +export { $Command }; +/** + * @public + * + * The input for {@link StartResourceGroupingRecommendationTaskCommand}. + */ +export interface StartResourceGroupingRecommendationTaskCommandInput + extends StartResourceGroupingRecommendationTaskRequest {} +/** + * @public + * + * The output of {@link StartResourceGroupingRecommendationTaskCommand}. + */ +export interface StartResourceGroupingRecommendationTaskCommandOutput + extends StartResourceGroupingRecommendationTaskResponse, + __MetadataBearer {} + +/** + *

    Starts grouping recommendation task.

    + * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { ResiliencehubClient, StartResourceGroupingRecommendationTaskCommand } from "@aws-sdk/client-resiliencehub"; // ES Modules import + * // const { ResiliencehubClient, StartResourceGroupingRecommendationTaskCommand } = require("@aws-sdk/client-resiliencehub"); // CommonJS import + * const client = new ResiliencehubClient(config); + * const input = { // StartResourceGroupingRecommendationTaskRequest + * appArn: "STRING_VALUE", // required + * }; + * const command = new StartResourceGroupingRecommendationTaskCommand(input); + * const response = await client.send(command); + * // { // StartResourceGroupingRecommendationTaskResponse + * // appArn: "STRING_VALUE", // required + * // groupingId: "STRING_VALUE", // required + * // status: "STRING_VALUE", // required + * // errorMessage: "STRING_VALUE", + * // }; + * + * ``` + * + * @param StartResourceGroupingRecommendationTaskCommandInput - {@link StartResourceGroupingRecommendationTaskCommandInput} + * @returns {@link StartResourceGroupingRecommendationTaskCommandOutput} + * @see {@link StartResourceGroupingRecommendationTaskCommandInput} for command's `input` shape. + * @see {@link StartResourceGroupingRecommendationTaskCommandOutput} for command's `response` shape. + * @see {@link ResiliencehubClientResolvedConfig | config} for ResiliencehubClient's `config` shape. + * + * @throws {@link AccessDeniedException} (client fault) + *

    You don't have permissions to perform the requested operation. The user or role that is + * making the request must have at least one IAM permissions policy attached that grants the + * required permissions.

    + * + * @throws {@link ConflictException} (client fault) + *

    This exception occurs when a conflict with a previous successful write is detected. This generally occurs + * when the previous write did not have time to propagate to the host serving the current + * request. A retry (with appropriate backoff logic) is the recommended response to this + * exception.

    + * + * @throws {@link InternalServerException} (server fault) + *

    This exception occurs when there is an internal failure in the Resilience Hub + * service.

    + * + * @throws {@link ResourceNotFoundException} (client fault) + *

    This exception occurs when the specified resource could not be found.

    + * + * @throws {@link ThrottlingException} (client fault) + *

    This exception occurs when you have exceeded the limit on the number of requests per second.

    + * + * @throws {@link ValidationException} (client fault) + *

    This exception occurs when a request is not valid.

    + * + * @throws {@link ResiliencehubServiceException} + *

    Base exception class for all service exceptions from Resiliencehub service.

    + * + * @public + */ +export class StartResourceGroupingRecommendationTaskCommand extends $Command + .classBuilder< + StartResourceGroupingRecommendationTaskCommandInput, + StartResourceGroupingRecommendationTaskCommandOutput, + ResiliencehubClientResolvedConfig, + ServiceInputTypes, + ServiceOutputTypes + >() + .ep({ + ...commonParams, + }) + .m(function (this: any, Command: any, cs: any, config: ResiliencehubClientResolvedConfig, o: any) { + return [ + getSerdePlugin(config, this.serialize, this.deserialize), + getEndpointPlugin(config, Command.getEndpointParameterInstructions()), + ]; + }) + .s("AwsResilienceHub", "StartResourceGroupingRecommendationTask", {}) + .n("ResiliencehubClient", "StartResourceGroupingRecommendationTaskCommand") + .f(void 0, void 0) + .ser(se_StartResourceGroupingRecommendationTaskCommand) + .de(de_StartResourceGroupingRecommendationTaskCommand) + .build() {} diff --git a/clients/client-resiliencehub/src/commands/UpdateAppVersionAppComponentCommand.ts b/clients/client-resiliencehub/src/commands/UpdateAppVersionAppComponentCommand.ts index ecd2948efd129..cda12b49bc529 100644 --- a/clients/client-resiliencehub/src/commands/UpdateAppVersionAppComponentCommand.ts +++ b/clients/client-resiliencehub/src/commands/UpdateAppVersionAppComponentCommand.ts @@ -35,7 +35,9 @@ export interface UpdateAppVersionAppComponentCommandOutput /** *

    Updates an existing Application Component in the Resilience Hub application.

    * - *

    This API updates the Resilience Hub application draft version. To use this Application Component for running assessments, you must publish the Resilience Hub application using the PublishAppVersion API.

    + *

    This API updates the Resilience Hub application draft version. To use this + * Application Component for running assessments, you must publish the Resilience Hub + * application using the PublishAppVersion API.

    *
    * @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-resiliencehub/src/commands/UpdateAppVersionCommand.ts b/clients/client-resiliencehub/src/commands/UpdateAppVersionCommand.ts index 8385ca355efa6..5595b267bbad4 100644 --- a/clients/client-resiliencehub/src/commands/UpdateAppVersionCommand.ts +++ b/clients/client-resiliencehub/src/commands/UpdateAppVersionCommand.ts @@ -30,9 +30,9 @@ export interface UpdateAppVersionCommandOutput extends UpdateAppVersionResponse, /** *

    Updates the Resilience Hub application version.

    * - *

    This API updates the Resilience Hub application draft version. To use this information - * for running resiliency assessments, you must publish the Resilience Hub application using the - * PublishAppVersion API.

    + *

    This API updates the Resilience Hub application draft version. To use this + * information for running resiliency assessments, you must publish the Resilience Hub + * application using the PublishAppVersion API.

    *
    * @example * Use a bare-bones client and the command you need to make an API call. diff --git a/clients/client-resiliencehub/src/commands/UpdateAppVersionResourceCommand.ts b/clients/client-resiliencehub/src/commands/UpdateAppVersionResourceCommand.ts index 74a265b40acd3..329a7140520ec 100644 --- a/clients/client-resiliencehub/src/commands/UpdateAppVersionResourceCommand.ts +++ b/clients/client-resiliencehub/src/commands/UpdateAppVersionResourceCommand.ts @@ -35,11 +35,13 @@ export interface UpdateAppVersionResourceCommandOutput extends UpdateAppVersionR *

    This action has no effect outside Resilience Hub.

    *
  • *
  • - *

    This API updates the Resilience Hub application draft version. To use this resource for running resiliency assessments, you must publish the Resilience Hub application using the PublishAppVersion API.

    + *

    This API updates the Resilience Hub application draft version. To use this + * resource for running resiliency assessments, you must publish the Resilience Hub + * application using the PublishAppVersion API.

    *
  • *
  • - *

    To update application version with new physicalResourceID, you must call - * ResolveAppVersionResources API.

    + *

    To update application version with new physicalResourceID, you must + * call ResolveAppVersionResources API.

    *
  • *
*
diff --git a/clients/client-resiliencehub/src/commands/UpdateResiliencyPolicyCommand.ts b/clients/client-resiliencehub/src/commands/UpdateResiliencyPolicyCommand.ts index 3d346e89961c1..1f886bb2458ee 100644 --- a/clients/client-resiliencehub/src/commands/UpdateResiliencyPolicyCommand.ts +++ b/clients/client-resiliencehub/src/commands/UpdateResiliencyPolicyCommand.ts @@ -34,10 +34,10 @@ export interface UpdateResiliencyPolicyCommandOutput extends UpdateResiliencyPol /** *

Updates a resiliency policy.

* - *

Resilience Hub allows you to provide a value of zero for rtoInSecs and - * rpoInSecs of your resiliency policy. But, while assessing your application, - * the lowest possible assessment result is near zero. Hence, if you provide value - * zero for rtoInSecs and rpoInSecs, the estimated workload RTO and + *

Resilience Hub allows you to provide a value of zero for rtoInSecs + * and rpoInSecs of your resiliency policy. But, while assessing your application, + * the lowest possible assessment result is near zero. Hence, if you provide value zero for + * rtoInSecs and rpoInSecs, the estimated workload RTO and * estimated workload RPO result will be near zero and the Compliance * status for your application will be set to Policy * breached.

diff --git a/clients/client-resiliencehub/src/commands/index.ts b/clients/client-resiliencehub/src/commands/index.ts index d281cbb70b1e1..27bc2a751331c 100644 --- a/clients/client-resiliencehub/src/commands/index.ts +++ b/clients/client-resiliencehub/src/commands/index.ts @@ -1,4 +1,5 @@ // smithy-typescript generated code +export * from "./AcceptResourceGroupingRecommendationsCommand"; export * from "./AddDraftAppVersionResourceMappingsCommand"; export * from "./BatchUpdateRecommendationStatusCommand"; export * from "./CreateAppCommand"; @@ -22,6 +23,7 @@ export * from "./DescribeAppVersionResourcesResolutionStatusCommand"; export * from "./DescribeAppVersionTemplateCommand"; export * from "./DescribeDraftAppVersionResourcesImportStatusCommand"; export * from "./DescribeResiliencyPolicyCommand"; +export * from "./DescribeResourceGroupingRecommendationTaskCommand"; export * from "./ImportResourcesToDraftAppVersionCommand"; export * from "./ListAlarmRecommendationsCommand"; export * from "./ListAppAssessmentComplianceDriftsCommand"; @@ -37,6 +39,7 @@ export * from "./ListAppVersionsCommand"; export * from "./ListAppsCommand"; export * from "./ListRecommendationTemplatesCommand"; export * from "./ListResiliencyPoliciesCommand"; +export * from "./ListResourceGroupingRecommendationsCommand"; export * from "./ListSopRecommendationsCommand"; export * from "./ListSuggestedResiliencyPoliciesCommand"; export * from "./ListTagsForResourceCommand"; @@ -44,9 +47,11 @@ export * from "./ListTestRecommendationsCommand"; export * from "./ListUnsupportedAppVersionResourcesCommand"; export * from "./PublishAppVersionCommand"; export * from "./PutDraftAppVersionTemplateCommand"; +export * from "./RejectResourceGroupingRecommendationsCommand"; export * from "./RemoveDraftAppVersionResourceMappingsCommand"; export * from "./ResolveAppVersionResourcesCommand"; export * from "./StartAppAssessmentCommand"; +export * from "./StartResourceGroupingRecommendationTaskCommand"; export * from "./TagResourceCommand"; export * from "./UntagResourceCommand"; export * from "./UpdateAppCommand"; diff --git a/clients/client-resiliencehub/src/models/models_0.ts b/clients/client-resiliencehub/src/models/models_0.ts index 348601c9f5a1b..37ec45f811393 100644 --- a/clients/client-resiliencehub/src/models/models_0.ts +++ b/clients/client-resiliencehub/src/models/models_0.ts @@ -3,6 +3,78 @@ import { ExceptionOptionType as __ExceptionOptionType, SENSITIVE_STRING } from " import { ResiliencehubServiceException as __BaseException } from "./ResiliencehubServiceException"; +/** + *

Indicates the grouping recommendation you have accepted to include in your application.

+ * @public + */ +export interface AcceptGroupingRecommendationEntry { + /** + *

Indicates the identifier of the grouping recommendation.

+ * @public + */ + groupingRecommendationId: string | undefined; +} + +/** + * @public + */ +export interface AcceptResourceGroupingRecommendationsRequest { + /** + *

Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: + * arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, + * see + * Amazon Resource Names (ARNs) in the + * Amazon Web Services General Reference guide.

+ * @public + */ + appArn: string | undefined; + + /** + *

Indicates the list of resource grouping recommendations you want to include in your application.

+ * @public + */ + entries: AcceptGroupingRecommendationEntry[] | undefined; +} + +/** + *

Indicates the accepted grouping recommendation whose implementation failed.

+ * @public + */ +export interface FailedGroupingRecommendationEntry { + /** + *

Indicates the identifier of the grouping recommendation.

+ * @public + */ + groupingRecommendationId: string | undefined; + + /** + *

Indicates the error that occurred while implementing a grouping recommendation.

+ * @public + */ + errorMessage: string | undefined; +} + +/** + * @public + */ +export interface AcceptResourceGroupingRecommendationsResponse { + /** + *

Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: + * arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, + * see + * Amazon Resource Names (ARNs) in the + * Amazon Web Services General Reference guide.

+ * @public + */ + appArn: string | undefined; + + /** + *

Indicates the list of resource grouping recommendations that could not be included in your application.

+ * @public + */ + failedEntries: FailedGroupingRecommendationEntry[] | undefined; +} + /** *

You don't have permissions to perform the requested operation. The user or role that is * making the request must have at least one IAM permissions policy attached that grants the @@ -25,6 +97,108 @@ export class AccessDeniedException extends __BaseException { } } +/** + *

This exception occurs when there is an internal failure in the Resilience Hub + * service.

+ * @public + */ +export class InternalServerException extends __BaseException { + readonly name: "InternalServerException" = "InternalServerException"; + readonly $fault: "server" = "server"; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "InternalServerException", + $fault: "server", + ...opts, + }); + Object.setPrototypeOf(this, InternalServerException.prototype); + } +} + +/** + *

This exception occurs when the specified resource could not be found.

+ * @public + */ +export class ResourceNotFoundException extends __BaseException { + readonly name: "ResourceNotFoundException" = "ResourceNotFoundException"; + readonly $fault: "client" = "client"; + /** + *

The identifier of the resource that the exception applies to.

+ * @public + */ + resourceId?: string; + + /** + *

The type of the resource that the exception applies to.

+ * @public + */ + resourceType?: string; + + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "ResourceNotFoundException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, ResourceNotFoundException.prototype); + this.resourceId = opts.resourceId; + this.resourceType = opts.resourceType; + } +} + +/** + *

This exception occurs when you have exceeded the limit on the number of requests per second.

+ * @public + */ +export class ThrottlingException extends __BaseException { + readonly name: "ThrottlingException" = "ThrottlingException"; + readonly $fault: "client" = "client"; + /** + *

The number of seconds to wait before retrying the operation.

+ * @public + */ + retryAfterSeconds?: number; + + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "ThrottlingException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, ThrottlingException.prototype); + this.retryAfterSeconds = opts.retryAfterSeconds; + } +} + +/** + *

This exception occurs when a request is not valid.

+ * @public + */ +export class ValidationException extends __BaseException { + readonly name: "ValidationException" = "ValidationException"; + readonly $fault: "client" = "client"; + /** + * @internal + */ + constructor(opts: __ExceptionOptionType) { + super({ + name: "ValidationException", + $fault: "client", + ...opts, + }); + Object.setPrototypeOf(this, ValidationException.prototype); + } +} + /** * @public * @enum @@ -373,104 +547,23 @@ export class ConflictException extends __BaseException { } /** - *

This exception occurs when there is an internal failure in the Resilience Hub - * service.

- * @public - */ -export class InternalServerException extends __BaseException { - readonly name: "InternalServerException" = "InternalServerException"; - readonly $fault: "server" = "server"; - /** - * @internal - */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "InternalServerException", - $fault: "server", - ...opts, - }); - Object.setPrototypeOf(this, InternalServerException.prototype); - } -} - -/** - *

This exception occurs when the specified resource could not be found.

- * @public - */ -export class ResourceNotFoundException extends __BaseException { - readonly name: "ResourceNotFoundException" = "ResourceNotFoundException"; - readonly $fault: "client" = "client"; - /** - *

The identifier of the resource that the exception applies to.

- * @public - */ - resourceId?: string; - - /** - *

The type of the resource that the exception applies to.

- * @public - */ - resourceType?: string; - - /** - * @internal - */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "ResourceNotFoundException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, ResourceNotFoundException.prototype); - this.resourceId = opts.resourceId; - this.resourceType = opts.resourceType; - } -} - -/** - *

This exception occurs when you have exceeded the limit on the number of requests per second.

- * @public - */ -export class ThrottlingException extends __BaseException { - readonly name: "ThrottlingException" = "ThrottlingException"; - readonly $fault: "client" = "client"; - /** - *

The number of seconds to wait before retrying the operation.

- * @public - */ - retryAfterSeconds?: number; - - /** - * @internal - */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "ThrottlingException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, ThrottlingException.prototype); - this.retryAfterSeconds = opts.retryAfterSeconds; - } -} - -/** - *

This exception occurs when a request is not valid.

+ *

This exception occurs when you have exceeded your service quota. To perform the requested action, remove some of the + * relevant resources, or use Service Quotas to request a service quota increase.

* @public */ -export class ValidationException extends __BaseException { - readonly name: "ValidationException" = "ValidationException"; +export class ServiceQuotaExceededException extends __BaseException { + readonly name: "ServiceQuotaExceededException" = "ServiceQuotaExceededException"; readonly $fault: "client" = "client"; /** * @internal */ - constructor(opts: __ExceptionOptionType) { + constructor(opts: __ExceptionOptionType) { super({ - name: "ValidationException", + name: "ServiceQuotaExceededException", $fault: "client", ...opts, }); - Object.setPrototypeOf(this, ValidationException.prototype); + Object.setPrototypeOf(this, ServiceQuotaExceededException.prototype); } } @@ -654,6 +747,8 @@ export type AppAssessmentScheduleType = (typeof AppAssessmentScheduleType)[keyof */ export const AppComplianceStatusType = { CHANGES_DETECTED: "ChangesDetected", + MISSING_POLICY: "MissingPolicy", + NOT_APPLICABLE: "NotApplicable", NOT_ASSESSED: "NotAssessed", POLICY_BREACHED: "PolicyBreached", POLICY_MET: "PolicyMet", @@ -976,6 +1071,8 @@ export type DisruptionType = (typeof DisruptionType)[keyof typeof DisruptionType * @enum */ export const ComplianceStatus = { + MISSING_POLICY: "MissingPolicy", + NOT_APPLICABLE: "NotApplicable", POLICY_BREACHED: "PolicyBreached", POLICY_MET: "PolicyMet", } as const; @@ -1386,12 +1483,86 @@ export interface ResourceErrorsDetails { resourceErrors?: ResourceError[]; /** - *

This indicates if there are more errors not listed in the resourceErrors list.

+ *

This indicates if there are more errors not listed in the + * resourceErrors + * list.

* @public */ hasMoreErrors?: boolean; } +/** + *

Indicates a specific risk identified in the Resilience Hub assessment and the corresponding recommendation provided to address that risk.

+ * + *

The assessment summary generated by large language models (LLMs) on Amazon Bedrock are only suggestions. + * The current level of generative AI technology is not perfect and LLMs are not infallible. + * Bias and incorrect answers, although rare, should be expected. Review each recommendation in the assessment summary before you use the output from an LLM. + *

+ *
+ * + *

This property is available only in the US East (N. Virginia) Region.

+ *
+ * @public + */ +export interface AssessmentRiskRecommendation { + /** + *

Indicates the description of the potential risk identified in the application as part of the Resilience Hub assessment.

+ * + *

This property is available only in the US East (N. Virginia) Region.

+ *
+ * @public + */ + risk?: string; + + /** + *

Indicates the recommendation provided by the Resilience Hub to address the identified + * risks in the application.

+ * + *

This property is available only in the US East (N. Virginia) Region.

+ *
+ * @public + */ + recommendation?: string; + + /** + *

Indicates the Application Components (AppComponents) that were assessed as part of the + * assessnent and are associated with the identified risk and recommendation.

+ * + *

This property is available only in the US East (N. Virginia) Region.

+ *
+ * @public + */ + appComponents?: string[]; +} + +/** + *

Indicates the AI-generated summary for the Resilience Hub assessment, providing a concise overview that highlights the top risks and recommendations.

+ * + *

This property is available only in the US East (N. Virginia) Region.

+ *
+ * @public + */ +export interface AssessmentSummary { + /** + *

Indicates a concise summary that provides an overview of the Resilience Hub assessment.

+ * + *

This property is available only in the US East (N. Virginia) Region.

+ *
+ * @public + */ + summary?: string; + + /** + *

Indicates the top risks and recommendations identified by the Resilience Hub assessment, + * each representing a specific risk and the corresponding recommendation to address it.

+ * + *

This property is available only in the US East (N. Virginia) Region.

+ *
+ * @public + */ + riskRecommendations?: AssessmentRiskRecommendation[]; +} + /** *

Defines an application assessment.

* @public @@ -1515,6 +1686,12 @@ export interface AppAssessment { * @public */ driftStatus?: DriftStatus; + + /** + *

Indicates a concise summary that provides an overview of the Resilience Hub assessment.

+ * @public + */ + summary?: AssessmentSummary; } /** @@ -1585,7 +1762,8 @@ export interface AppAssessmentSummary { assessmentArn: string | undefined; /** - *

TCurrent status of compliance for the resiliency policy.

+ *

Current + * status of compliance for the resiliency policy.

* @public */ complianceStatus?: ComplianceStatus; @@ -1967,7 +2145,8 @@ export interface BatchUpdateRecommendationStatusRequest { appArn: string | undefined; /** - *

Defines the list of operational recommendations that need to be included or excluded.

+ *

Defines the list of operational recommendations that need to be included or + * excluded.

* @public */ requestEntries: UpdateRecommendationStatusRequestEntry[] | undefined; @@ -2054,7 +2233,8 @@ export interface BatchUpdateRecommendationStatusResponse { successfulEntries: BatchUpdateRecommendationStatusSuccessfulEntry[] | undefined; /** - *

A list of items with error details about each item, which could not be included or excluded.

+ *

A list of items with error details about each item, which could not be included or + * excluded.

* @public */ failedEntries: BatchUpdateRecommendationStatusFailedEntry[] | undefined; @@ -2101,9 +2281,7 @@ export interface CreateAppRequest { clientToken?: string; /** - *

- * Assessment execution schedule with 'Daily' or 'Disabled' values. - *

+ *

Assessment execution schedule with 'Daily' or 'Disabled' values.

* @public */ assessmentSchedule?: AppAssessmentScheduleType; @@ -2116,7 +2294,9 @@ export interface CreateAppRequest { permissionModel?: PermissionModel; /** - *

The list of events you would like to subscribe and get notification for. Currently, Resilience Hub supports only Drift detected and Scheduled assessment failure events notification.

+ *

The list of events you would like to subscribe and get notification for. Currently, + * Resilience Hub supports only Drift detected and + * Scheduled assessment failure events notification.

* @public */ eventSubscriptions?: EventSubscription[]; @@ -2134,27 +2314,6 @@ export interface CreateAppResponse { app: App | undefined; } -/** - *

This exception occurs when you have exceeded your service quota. To perform the requested action, remove some of the - * relevant resources, or use Service Quotas to request a service quota increase.

- * @public - */ -export class ServiceQuotaExceededException extends __BaseException { - readonly name: "ServiceQuotaExceededException" = "ServiceQuotaExceededException"; - readonly $fault: "client" = "client"; - /** - * @internal - */ - constructor(opts: __ExceptionOptionType) { - super({ - name: "ServiceQuotaExceededException", - $fault: "client", - ...opts, - }); - Object.setPrototypeOf(this, ServiceQuotaExceededException.prototype); - } -} - /** * @public */ @@ -2894,7 +3053,7 @@ export interface DeleteAppInputSourceRequest { /** *

The Amazon Resource Name (ARN) of the imported resource you want to remove from the - * Resilience Hub application. For more information about ARNs, + * Resilience Hub application. For more information about ARNs, * see * Amazon Resource Names (ARNs) in the * Amazon Web Services General Reference guide.

@@ -2903,7 +3062,8 @@ export interface DeleteAppInputSourceRequest { sourceArn?: string; /** - *

The imported Terraform s3 state file you want to remove from the Resilience Hub application.

+ *

The imported Terraform s3 state file you want to remove from the Resilience Hub + * application.

* @public */ terraformSource?: TerraformSource; @@ -2916,7 +3076,8 @@ export interface DeleteAppInputSourceRequest { clientToken?: string; /** - *

The namespace on your Amazon Elastic Kubernetes Service cluster that you want to delete from the Resilience Hub application.

+ *

The namespace on your Amazon Elastic Kubernetes Service cluster that you want to delete from the + * Resilience Hub application.

* @public */ eksSourceClusterNamespace?: EksSourceClusterNamespace; @@ -3196,8 +3357,8 @@ export interface DescribeAppAssessmentRequest { */ export interface DescribeAppAssessmentResponse { /** - *

The assessment for an Resilience Hub application, returned as an object. This object - * includes Amazon Resource Names (ARNs), compliance information, compliance status, cost, + *

The assessment for an Resilience Hub application, returned as an object. This + * object includes Amazon Resource Names (ARNs), compliance information, compliance status, cost, * messages, resiliency scores, and more.

* @public */ @@ -3514,7 +3675,7 @@ export interface DescribeAppVersionTemplateResponse { /** *

A JSON string that provides information about your application structure. To learn more * about the appTemplateBody template, see the sample template provided in the - * Examples section.

+ * Examples section.

*

The appTemplateBody JSON string has the following structure:

*
    *
  • @@ -3872,7 +4033,68 @@ export interface DescribeResiliencyPolicyResponse { * time objective (RTO) and recovery point objective (RPO) in seconds, and more.

    * @public */ - policy: ResiliencyPolicy | undefined; + policy: ResiliencyPolicy | undefined; +} + +/** + * @public + */ +export interface DescribeResourceGroupingRecommendationTaskRequest { + /** + *

    Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: + * arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, + * see + * Amazon Resource Names (ARNs) in the + * Amazon Web Services General Reference guide.

    + * @public + */ + appArn: string | undefined; + + /** + *

    Indicates the identifier of the grouping recommendation task.

    + * @public + */ + groupingId?: string; +} + +/** + * @public + * @enum + */ +export const ResourcesGroupingRecGenStatusType = { + FAILED: "Failed", + IN_PROGRESS: "InProgress", + PENDING: "Pending", + SUCCESS: "Success", +} as const; + +/** + * @public + */ +export type ResourcesGroupingRecGenStatusType = + (typeof ResourcesGroupingRecGenStatusType)[keyof typeof ResourcesGroupingRecGenStatusType]; + +/** + * @public + */ +export interface DescribeResourceGroupingRecommendationTaskResponse { + /** + *

    Indicates the identifier of the grouping recommendation task.

    + * @public + */ + groupingId: string | undefined; + + /** + *

    Status of the action.

    + * @public + */ + status: ResourcesGroupingRecGenStatusType | undefined; + + /** + *

    Indicates the error that occurred while generating a grouping recommendation.

    + * @public + */ + errorMessage?: string; } /** @@ -3984,9 +4206,7 @@ export interface ImportResourcesToDraftAppVersionResponse { status: ResourceImportStatusType | undefined; /** - *

    - * A list of terraform file s3 URLs you have imported. - *

    + *

    A list of terraform file s3 URLs you have imported.

    * @public */ terraformSources?: TerraformSource[]; @@ -4031,8 +4251,8 @@ export interface ListAlarmRecommendationsRequest { */ export interface ListAlarmRecommendationsResponse { /** - *

    The alarm recommendations for an Resilience Hub application, returned as an object. This - * object includes Application Component names, descriptions, information about whether a + *

    The alarm recommendations for an Resilience Hub application, returned as an + * object. This object includes Application Component names, descriptions, information about whether a * recommendation has already been implemented or not, prerequisites, and more.

    * @public */ @@ -4060,13 +4280,13 @@ export interface ListAppAssessmentComplianceDriftsRequest { assessmentArn: string | undefined; /** - *

    Indicates the unique token number of the next application to be checked for compliance and regulatory requirements from the list of applications.

    + *

    Null, or the token from a previous call to get the next set of results.

    * @public */ nextToken?: string; /** - *

    Indicates the maximum number of applications requested.

    + *

    Indicates the maximum number of compliance drifts requested.

    * @public */ maxResults?: number; @@ -4166,7 +4386,8 @@ export interface ComplianceDrift { /** *

    Difference type between actual and expected recovery point objective (RPO) and recovery - * time objective (RTO) values. Currently, Resilience Hub supports only NotEqual difference type.

    + * time objective (RTO) values. Currently, Resilience Hub supports only + * NotEqual difference type.

    * @public */ diffType?: DifferenceType; @@ -4177,13 +4398,14 @@ export interface ComplianceDrift { */ export interface ListAppAssessmentComplianceDriftsResponse { /** - *

    Indicates compliance drifts (recovery time objective (RTO) and recovery point objective (RPO)) detected for an assessed entity.

    + *

    Indicates compliance drifts (recovery time objective (RTO) and recovery point objective + * (RPO)) detected for an assessed entity.

    * @public */ complianceDrifts: ComplianceDrift[] | undefined; /** - *

    Token number of the next application to be checked for compliance and regulatory requirements from the list of applications.

    + *

    Null, or the token from a previous call to get the next set of results.

    * @public */ nextToken?: string; @@ -4210,7 +4432,9 @@ export interface ListAppAssessmentResourceDriftsRequest { nextToken?: string; /** - *

    Indicates the maximum number of drift results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved.

    + *

    Indicates the maximum number of drift results to include in the response. If more results + * exist than the specified MaxResults value, a token is included in the response so + * that the remaining results can be retrieved.

    * @public */ maxResults?: number; @@ -4404,8 +4628,8 @@ export interface ListAppComponentCompliancesRequest { export interface ListAppComponentCompliancesResponse { /** *

    The compliances for an Resilience Hub Application Component, returned as an object. This - * object contains the names of the Application Components, compliances, costs, resiliency scores, outage scores, and - * more.

    + * object contains the names of the Application Components, compliances, costs, resiliency scores, + * outage scores, and more.

    * @public */ componentCompliances: AppComponentCompliance[] | undefined; @@ -4595,6 +4819,7 @@ export const RecommendationComplianceStatus = { BREACHED_CAN_MEET: "BreachedCanMeet", BREACHED_UNATTAINABLE: "BreachedUnattainable", MET_CAN_IMPROVE: "MetCanImprove", + MISSING_POLICY: "MissingPolicy", } as const; /** @@ -4634,9 +4859,9 @@ export interface ComponentRecommendation { */ export interface ListAppComponentRecommendationsResponse { /** - *

    The recommendations for an Resilience Hub Application Component, returned as an object. This - * object contains the names of the Application Components, configuration recommendations, and recommendation - * statuses.

    + *

    The recommendations for an Resilience Hub Application Component, returned as an object. + * This object contains the names of the Application Components, configuration recommendations, and + * recommendation statuses.

    * @public */ componentRecommendations: ComponentRecommendation[] | undefined; @@ -4675,7 +4900,8 @@ export interface ListAppInputSourcesRequest { nextToken?: string; /** - *

    Maximum number of input sources to be displayed per Resilience Hub application.

    + *

    Maximum number of input sources to be displayed per Resilience Hub + * application.

    * @public */ maxResults?: number; @@ -4732,19 +4958,24 @@ export interface ListAppsRequest { appArn?: string; /** - *

    Indicates the lower limit of the range that is used to filter applications based on their last assessment times.

    + *

    Indicates the lower limit of the range that is used to filter applications based on their + * last assessment times.

    * @public */ fromLastAssessmentTime?: Date; /** - *

    Indicates the upper limit of the range that is used to filter the applications based on their last assessment times.

    + *

    Indicates the upper limit of the range that is used to filter the applications based on + * their last assessment times.

    * @public */ toLastAssessmentTime?: Date; /** - *

    The application list is sorted based on the values of lastAppComplianceEvaluationTime field. By default, application list is sorted in ascending order. To sort the appliation list in descending order, set this field to True.

    + *

    The application list is sorted based on the values of + * lastAppComplianceEvaluationTime field. By default, application list is sorted + * in ascending order. To sort the application list in descending order, set this field to + * True.

    * @public */ reverseOrder?: boolean; @@ -5119,6 +5350,218 @@ export interface ListResiliencyPoliciesResponse { nextToken?: string; } +/** + * @public + */ +export interface ListResourceGroupingRecommendationsRequest { + /** + *

    Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: + * arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, + * see + * Amazon Resource Names (ARNs) in the + * Amazon Web Services General Reference guide.

    + * @public + */ + appArn?: string; + + /** + *

    Null, or the token from a previous call to get the next set of results.

    + * @public + */ + nextToken?: string; + + /** + *

    Maximum number of grouping recommendations to be displayed per Resilience Hub application.

    + * @public + */ + maxResults?: number; +} + +/** + * @public + * @enum + */ +export const GroupingRecommendationConfidenceLevel = { + HIGH: "High", + MEDIUM: "Medium", +} as const; + +/** + * @public + */ +export type GroupingRecommendationConfidenceLevel = + (typeof GroupingRecommendationConfidenceLevel)[keyof typeof GroupingRecommendationConfidenceLevel]; + +/** + *

    Creates a new recommended Application Component (AppComponent).

    + * @public + */ +export interface GroupingAppComponent { + /** + *

    Indicates the identifier of an AppComponent.

    + * @public + */ + appComponentId: string | undefined; + + /** + *

    Indicates the type of an AppComponent.

    + * @public + */ + appComponentType: string | undefined; + + /** + *

    Indicates the name of an AppComponent.

    + * @public + */ + appComponentName: string | undefined; +} + +/** + * @public + * @enum + */ +export const GroupingRecommendationRejectionReason = { + DISTINCT_BUSINESS_PURPOSE: "DistinctBusinessPurpose", + DISTINCT_USER_GROUP_HANDLING: "DistinctUserGroupHandling", + OTHER: "Other", + SEPARATE_DATA_CONCERN: "SeparateDataConcern", +} as const; + +/** + * @public + */ +export type GroupingRecommendationRejectionReason = + (typeof GroupingRecommendationRejectionReason)[keyof typeof GroupingRecommendationRejectionReason]; + +/** + *

    Indicates the resource that will be grouped in the recommended Application Component (AppComponent).

    + * @public + */ +export interface GroupingResource { + /** + *

    Indicates the resource name.

    + * @public + */ + resourceName: string | undefined; + + /** + *

    Indicates the resource type.

    + * @public + */ + resourceType: string | undefined; + + /** + *

    Indicates the physical identifier of the resource.

    + * @public + */ + physicalResourceId: PhysicalResourceId | undefined; + + /** + *

    Indicates the logical identifier of the resource.

    + * @public + */ + logicalResourceId: LogicalResourceId | undefined; + + /** + *

    Indicates the identifier of the source AppComponents in which the resources were previously grouped into.

    + * @public + */ + sourceAppComponentIds: string[] | undefined; +} + +/** + * @public + * @enum + */ +export const GroupingRecommendationStatusType = { + ACCEPTED: "Accepted", + PENDING_DECISION: "PendingDecision", + REJECTED: "Rejected", +} as const; + +/** + * @public + */ +export type GroupingRecommendationStatusType = + (typeof GroupingRecommendationStatusType)[keyof typeof GroupingRecommendationStatusType]; + +/** + *

    Creates a new grouping recommendation.

    + * @public + */ +export interface GroupingRecommendation { + /** + *

    Indicates all the reasons available for rejecting a grouping recommendation.

    + * @public + */ + groupingRecommendationId: string | undefined; + + /** + *

    Indicates the name of the recommended Application Component (AppComponent).

    + * @public + */ + groupingAppComponent: GroupingAppComponent | undefined; + + /** + *

    Indicates the resources that are grouped in a recommended AppComponent.

    + * @public + */ + resources: GroupingResource[] | undefined; + + /** + *

    Indicates the confidence level of the grouping recommendation.

    + * @public + */ + score: number | undefined; + + /** + *

    Indicates all the reasons available for rejecting a grouping recommendation.

    + * @public + */ + recommendationReasons: string[] | undefined; + + /** + *

    Indicates the status of grouping resources into AppComponents.

    + * @public + */ + status: GroupingRecommendationStatusType | undefined; + + /** + *

    Indicates the confidence level of Resilience Hub on the grouping recommendation.

    + * @public + */ + confidenceLevel: GroupingRecommendationConfidenceLevel | undefined; + + /** + *

    Indicates the creation time of the grouping recommendation.

    + * @public + */ + creationTime: Date | undefined; + + /** + *

    Indicates the reason you had selected while rejecting a grouping recommendation.

    + * @public + */ + rejectionReason?: GroupingRecommendationRejectionReason; +} + +/** + * @public + */ +export interface ListResourceGroupingRecommendationsResponse { + /** + *

    List of resource grouping recommendations generated by Resilience Hub.

    + * @public + */ + groupingRecommendations: GroupingRecommendation[] | undefined; + + /** + *

    Null, or the token from a previous call to get the next set of results.

    + * @public + */ + nextToken?: string; +} + /** * @public */ @@ -5900,6 +6343,66 @@ export interface PutDraftAppVersionTemplateResponse { appVersion?: string; } +/** + *

    Indicates the rejected grouping recommendation.

    + * @public + */ +export interface RejectGroupingRecommendationEntry { + /** + *

    Indicates the identifier of the grouping recommendation.

    + * @public + */ + groupingRecommendationId: string | undefined; + + /** + *

    Indicates the reason you had selected while rejecting a grouping recommendation.

    + * @public + */ + rejectionReason?: GroupingRecommendationRejectionReason; +} + +/** + * @public + */ +export interface RejectResourceGroupingRecommendationsRequest { + /** + *

    Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: + * arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, + * see + * Amazon Resource Names (ARNs) in the + * Amazon Web Services General Reference guide.

    + * @public + */ + appArn: string | undefined; + + /** + *

    Indicates the list of resource grouping recommendations you have selected to exclude from your application.

    + * @public + */ + entries: RejectGroupingRecommendationEntry[] | undefined; +} + +/** + * @public + */ +export interface RejectResourceGroupingRecommendationsResponse { + /** + *

    Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: + * arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, + * see + * Amazon Resource Names (ARNs) in the + * Amazon Web Services General Reference guide.

    + * @public + */ + appArn: string | undefined; + + /** + *

    Indicates the list of resource grouping recommendations that failed to get excluded in your application.

    + * @public + */ + failedEntries: FailedGroupingRecommendationEntry[] | undefined; +} + /** * @public */ @@ -5927,7 +6430,8 @@ export interface RemoveDraftAppVersionResourceMappingsRequest { logicalStackNames?: string[]; /** - *

    The names of the registered applications you want to remove from the resource mappings.

    + *

    The names of the registered applications you want to remove from the resource + * mappings.

    * @public */ appRegistryAppNames?: string[]; @@ -5945,7 +6449,8 @@ export interface RemoveDraftAppVersionResourceMappingsRequest { terraformSourceNames?: string[]; /** - *

    The names of the Amazon Elastic Kubernetes Service clusters and namespaces you want to remove from the resource mappings.

    + *

    The names of the Amazon Elastic Kubernetes Service clusters and namespaces you want to remove from + * the resource mappings.

    * *

    This parameter accepts values in "eks-cluster/namespace" format.

    *
    @@ -6081,6 +6586,54 @@ export interface StartAppAssessmentResponse { assessment: AppAssessment | undefined; } +/** + * @public + */ +export interface StartResourceGroupingRecommendationTaskRequest { + /** + *

    Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: + * arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, + * see + * Amazon Resource Names (ARNs) in the + * Amazon Web Services General Reference guide.

    + * @public + */ + appArn: string | undefined; +} + +/** + * @public + */ +export interface StartResourceGroupingRecommendationTaskResponse { + /** + *

    Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: + * arn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, + * see + * Amazon Resource Names (ARNs) in the + * Amazon Web Services General Reference guide.

    + * @public + */ + appArn: string | undefined; + + /** + *

    Indicates the identifier of the grouping recommendation task.

    + * @public + */ + groupingId: string | undefined; + + /** + *

    Status of the action.

    + * @public + */ + status: ResourcesGroupingRecGenStatusType | undefined; + + /** + *

    Indicates the error that occurred while executing a grouping recommendation task.

    + * @public + */ + errorMessage?: string; +} + /** * @public */ @@ -6162,9 +6715,7 @@ export interface UpdateAppRequest { clearResiliencyPolicyArn?: boolean; /** - *

    - * Assessment execution schedule with 'Daily' or 'Disabled' values. - *

    + *

    Assessment execution schedule with 'Daily' or 'Disabled' values.

    * @public */ assessmentSchedule?: AppAssessmentScheduleType; @@ -6178,8 +6729,8 @@ export interface UpdateAppRequest { permissionModel?: PermissionModel; /** - *

    The list of events you would like to subscribe and get notification for. - * Currently, Resilience Hub supports notifications only for Drift + *

    The list of events you would like to subscribe and get notification for. Currently, + * Resilience Hub supports notifications only for Drift * detected and Scheduled assessment failure * events.

    * @public @@ -6388,7 +6939,8 @@ export interface UpdateAppVersionResourceRequest { /** *

    Indicates if a resource is excluded from an Resilience Hub application.

    * - *

    You can exclude only imported resources from an Resilience Hub application.

    + *

    You can exclude only imported resources from an Resilience Hub + * application.

    *
    * @public */ diff --git a/clients/client-resiliencehub/src/pagination/ListResourceGroupingRecommendationsPaginator.ts b/clients/client-resiliencehub/src/pagination/ListResourceGroupingRecommendationsPaginator.ts new file mode 100644 index 0000000000000..cbc15d70d65db --- /dev/null +++ b/clients/client-resiliencehub/src/pagination/ListResourceGroupingRecommendationsPaginator.ts @@ -0,0 +1,24 @@ +// smithy-typescript generated code +import { createPaginator } from "@smithy/core"; +import { Paginator } from "@smithy/types"; + +import { + ListResourceGroupingRecommendationsCommand, + ListResourceGroupingRecommendationsCommandInput, + ListResourceGroupingRecommendationsCommandOutput, +} from "../commands/ListResourceGroupingRecommendationsCommand"; +import { ResiliencehubClient } from "../ResiliencehubClient"; +import { ResiliencehubPaginationConfiguration } from "./Interfaces"; + +/** + * @public + */ +export const paginateListResourceGroupingRecommendations: ( + config: ResiliencehubPaginationConfiguration, + input: ListResourceGroupingRecommendationsCommandInput, + ...rest: any[] +) => Paginator = createPaginator< + ResiliencehubPaginationConfiguration, + ListResourceGroupingRecommendationsCommandInput, + ListResourceGroupingRecommendationsCommandOutput +>(ResiliencehubClient, ListResourceGroupingRecommendationsCommand, "nextToken", "nextToken", "maxResults"); diff --git a/clients/client-resiliencehub/src/pagination/index.ts b/clients/client-resiliencehub/src/pagination/index.ts index 1590ba523cf74..26badd62dad88 100644 --- a/clients/client-resiliencehub/src/pagination/index.ts +++ b/clients/client-resiliencehub/src/pagination/index.ts @@ -14,6 +14,7 @@ export * from "./ListAppVersionsPaginator"; export * from "./ListAppsPaginator"; export * from "./ListRecommendationTemplatesPaginator"; export * from "./ListResiliencyPoliciesPaginator"; +export * from "./ListResourceGroupingRecommendationsPaginator"; export * from "./ListSopRecommendationsPaginator"; export * from "./ListSuggestedResiliencyPoliciesPaginator"; export * from "./ListTestRecommendationsPaginator"; diff --git a/clients/client-resiliencehub/src/protocols/Aws_restJson1.ts b/clients/client-resiliencehub/src/protocols/Aws_restJson1.ts index e51a1226f13ab..1a4fae46cc3ea 100644 --- a/clients/client-resiliencehub/src/protocols/Aws_restJson1.ts +++ b/clients/client-resiliencehub/src/protocols/Aws_restJson1.ts @@ -29,6 +29,10 @@ import { } from "@smithy/types"; import { v4 as generateIdempotencyToken } from "uuid"; +import { + AcceptResourceGroupingRecommendationsCommandInput, + AcceptResourceGroupingRecommendationsCommandOutput, +} from "../commands/AcceptResourceGroupingRecommendationsCommand"; import { AddDraftAppVersionResourceMappingsCommandInput, AddDraftAppVersionResourceMappingsCommandOutput, @@ -109,6 +113,10 @@ import { DescribeResiliencyPolicyCommandInput, DescribeResiliencyPolicyCommandOutput, } from "../commands/DescribeResiliencyPolicyCommand"; +import { + DescribeResourceGroupingRecommendationTaskCommandInput, + DescribeResourceGroupingRecommendationTaskCommandOutput, +} from "../commands/DescribeResourceGroupingRecommendationTaskCommand"; import { ImportResourcesToDraftAppVersionCommandInput, ImportResourcesToDraftAppVersionCommandOutput, @@ -160,6 +168,10 @@ import { ListResiliencyPoliciesCommandInput, ListResiliencyPoliciesCommandOutput, } from "../commands/ListResiliencyPoliciesCommand"; +import { + ListResourceGroupingRecommendationsCommandInput, + ListResourceGroupingRecommendationsCommandOutput, +} from "../commands/ListResourceGroupingRecommendationsCommand"; import { ListSopRecommendationsCommandInput, ListSopRecommendationsCommandOutput, @@ -185,6 +197,10 @@ import { PutDraftAppVersionTemplateCommandInput, PutDraftAppVersionTemplateCommandOutput, } from "../commands/PutDraftAppVersionTemplateCommand"; +import { + RejectResourceGroupingRecommendationsCommandInput, + RejectResourceGroupingRecommendationsCommandOutput, +} from "../commands/RejectResourceGroupingRecommendationsCommand"; import { RemoveDraftAppVersionResourceMappingsCommandInput, RemoveDraftAppVersionResourceMappingsCommandOutput, @@ -194,6 +210,10 @@ import { ResolveAppVersionResourcesCommandOutput, } from "../commands/ResolveAppVersionResourcesCommand"; import { StartAppAssessmentCommandInput, StartAppAssessmentCommandOutput } from "../commands/StartAppAssessmentCommand"; +import { + StartResourceGroupingRecommendationTaskCommandInput, + StartResourceGroupingRecommendationTaskCommandOutput, +} from "../commands/StartResourceGroupingRecommendationTaskCommand"; import { TagResourceCommandInput, TagResourceCommandOutput } from "../commands/TagResourceCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "../commands/UntagResourceCommand"; import { UpdateAppCommandInput, UpdateAppCommandOutput } from "../commands/UpdateAppCommand"; @@ -211,6 +231,7 @@ import { UpdateResiliencyPolicyCommandOutput, } from "../commands/UpdateResiliencyPolicyCommand"; import { + AcceptGroupingRecommendationEntry, AccessDeniedException, App, AppAssessment, @@ -227,11 +248,13 @@ import { EksSourceClusterNamespace, EventSubscription, FailurePolicy, + GroupingRecommendation, InternalServerException, LogicalResourceId, PermissionModel, PhysicalResourceId, RecommendationTemplate, + RejectGroupingRecommendationEntry, RenderRecommendationType, ResiliencyPolicy, ResiliencyScore, @@ -248,6 +271,29 @@ import { } from "../models/models_0"; import { ResiliencehubServiceException as __BaseException } from "../models/ResiliencehubServiceException"; +/** + * serializeAws_restJson1AcceptResourceGroupingRecommendationsCommand + */ +export const se_AcceptResourceGroupingRecommendationsCommand = async ( + input: AcceptResourceGroupingRecommendationsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/json", + }; + b.bp("/accept-resource-grouping-recommendations"); + let body: any; + body = JSON.stringify( + take(input, { + appArn: [], + entries: (_) => _json(_), + }) + ); + b.m("POST").h(headers).b(body); + return b.build(); +}; + /** * serializeAws_restJson1AddDraftAppVersionResourceMappingsCommand */ @@ -819,6 +865,29 @@ export const se_DescribeResiliencyPolicyCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1DescribeResourceGroupingRecommendationTaskCommand + */ +export const se_DescribeResourceGroupingRecommendationTaskCommand = async ( + input: DescribeResourceGroupingRecommendationTaskCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/json", + }; + b.bp("/describe-resource-grouping-recommendation-task"); + let body: any; + body = JSON.stringify( + take(input, { + appArn: [], + groupingId: [], + }) + ); + b.m("POST").h(headers).b(body); + return b.build(); +}; + /** * serializeAws_restJson1ImportResourcesToDraftAppVersionCommand */ @@ -1185,6 +1254,26 @@ export const se_ListResiliencyPoliciesCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1ListResourceGroupingRecommendationsCommand + */ +export const se_ListResourceGroupingRecommendationsCommand = async ( + input: ListResourceGroupingRecommendationsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = {}; + b.bp("/list-resource-grouping-recommendations"); + const query: any = map({ + [_aA]: [, input[_aA]!], + [_nT]: [, input[_nT]!], + [_mR]: [() => input.maxResults !== void 0, () => input[_mR]!.toString()], + }); + let body: any; + b.m("GET").h(headers).q(query).b(body); + return b.build(); +}; + /** * serializeAws_restJson1ListSopRecommendationsCommand */ @@ -1340,6 +1429,29 @@ export const se_PutDraftAppVersionTemplateCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1RejectResourceGroupingRecommendationsCommand + */ +export const se_RejectResourceGroupingRecommendationsCommand = async ( + input: RejectResourceGroupingRecommendationsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/json", + }; + b.bp("/reject-resource-grouping-recommendations"); + let body: any; + body = JSON.stringify( + take(input, { + appArn: [], + entries: (_) => _json(_), + }) + ); + b.m("POST").h(headers).b(body); + return b.build(); +}; + /** * serializeAws_restJson1RemoveDraftAppVersionResourceMappingsCommand */ @@ -1417,6 +1529,28 @@ export const se_StartAppAssessmentCommand = async ( return b.build(); }; +/** + * serializeAws_restJson1StartResourceGroupingRecommendationTaskCommand + */ +export const se_StartResourceGroupingRecommendationTaskCommand = async ( + input: StartResourceGroupingRecommendationTaskCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const b = rb(input, context); + const headers: any = { + "content-type": "application/json", + }; + b.bp("/start-resource-grouping-recommendation-task"); + let body: any; + body = JSON.stringify( + take(input, { + appArn: [], + }) + ); + b.m("POST").h(headers).b(body); + return b.build(); +}; + /** * serializeAws_restJson1TagResourceCommand */ @@ -1597,6 +1731,28 @@ export const se_UpdateResiliencyPolicyCommand = async ( return b.build(); }; +/** + * deserializeAws_restJson1AcceptResourceGroupingRecommendationsCommand + */ +export const de_AcceptResourceGroupingRecommendationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + appArn: __expectString, + failedEntries: _json, + }); + Object.assign(contents, doc); + return contents; +}; + /** * deserializeAws_restJson1AddDraftAppVersionResourceMappingsCommand */ @@ -2111,6 +2267,29 @@ export const de_DescribeResiliencyPolicyCommand = async ( return contents; }; +/** + * deserializeAws_restJson1DescribeResourceGroupingRecommendationTaskCommand + */ +export const de_DescribeResourceGroupingRecommendationTaskCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + errorMessage: __expectString, + groupingId: __expectString, + status: __expectString, + }); + Object.assign(contents, doc); + return contents; +}; + /** * deserializeAws_restJson1ImportResourcesToDraftAppVersionCommand */ @@ -2448,6 +2627,28 @@ export const de_ListResiliencyPoliciesCommand = async ( return contents; }; +/** + * deserializeAws_restJson1ListResourceGroupingRecommendationsCommand + */ +export const de_ListResourceGroupingRecommendationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + groupingRecommendations: (_) => de_GroupingRecommendationList(_, context), + nextToken: __expectString, + }); + Object.assign(contents, doc); + return contents; +}; + /** * deserializeAws_restJson1ListSopRecommendationsCommand */ @@ -2604,6 +2805,28 @@ export const de_PutDraftAppVersionTemplateCommand = async ( return contents; }; +/** + * deserializeAws_restJson1RejectResourceGroupingRecommendationsCommand + */ +export const de_RejectResourceGroupingRecommendationsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + appArn: __expectString, + failedEntries: _json, + }); + Object.assign(contents, doc); + return contents; +}; + /** * deserializeAws_restJson1RemoveDraftAppVersionResourceMappingsCommand */ @@ -2671,6 +2894,30 @@ export const de_StartAppAssessmentCommand = async ( return contents; }; +/** + * deserializeAws_restJson1StartResourceGroupingRecommendationTaskCommand + */ +export const de_StartResourceGroupingRecommendationTaskCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode !== 200 && output.statusCode >= 300) { + return de_CommandError(output, context); + } + const contents: any = map({ + $metadata: deserializeMetadata(output), + }); + const data: Record = __expectNonNull(__expectObject(await parseBody(output.body, context)), "body"); + const doc = take(data, { + appArn: __expectString, + errorMessage: __expectString, + groupingId: __expectString, + status: __expectString, + }); + Object.assign(contents, doc); + return contents; +}; + /** * deserializeAws_restJson1TagResourceCommand */ @@ -2829,9 +3076,6 @@ const de_CommandError = async (output: __HttpResponse, context: __SerdeContext): case "AccessDeniedException": case "com.amazonaws.resiliencehub#AccessDeniedException": throw await de_AccessDeniedExceptionRes(parsedOutput, context); - case "ConflictException": - case "com.amazonaws.resiliencehub#ConflictException": - throw await de_ConflictExceptionRes(parsedOutput, context); case "InternalServerException": case "com.amazonaws.resiliencehub#InternalServerException": throw await de_InternalServerExceptionRes(parsedOutput, context); @@ -2844,6 +3088,9 @@ const de_CommandError = async (output: __HttpResponse, context: __SerdeContext): case "ValidationException": case "com.amazonaws.resiliencehub#ValidationException": throw await de_ValidationExceptionRes(parsedOutput, context); + case "ConflictException": + case "com.amazonaws.resiliencehub#ConflictException": + throw await de_ConflictExceptionRes(parsedOutput, context); case "ServiceQuotaExceededException": case "com.amazonaws.resiliencehub#ServiceQuotaExceededException": throw await de_ServiceQuotaExceededExceptionRes(parsedOutput, context); @@ -2994,6 +3241,10 @@ const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeCont return __decorateServiceException(exception, parsedOutput.body); }; +// se_AcceptGroupingRecommendationEntries omitted. + +// se_AcceptGroupingRecommendationEntry omitted. + // se_AdditionalInfoMap omitted. // se_AdditionalInfoValueList omitted. @@ -3030,6 +3281,10 @@ const de_ValidationExceptionRes = async (parsedOutput: any, context: __SerdeCont // se_RecommendationIdList omitted. +// se_RejectGroupingRecommendationEntries omitted. + +// se_RejectGroupingRecommendationEntry omitted. + // se_RenderRecommendationTypeList omitted. // se_ResourceMapping omitted. @@ -3107,6 +3362,7 @@ const de_AppAssessment = (output: any, context: __SerdeContext): AppAssessment = resiliencyScore: (_: any) => de_ResiliencyScore(_, context), resourceErrorsDetails: _json, startTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + summary: _json, tags: _json, versionName: __expectString, }) as any; @@ -3230,6 +3486,12 @@ const de_AppVersionSummary = (output: any, context: __SerdeContext): AppVersionS // de_AssessmentCompliance omitted. +// de_AssessmentRiskRecommendation omitted. + +// de_AssessmentRiskRecommendationList omitted. + +// de_AssessmentSummary omitted. + // de_BatchUpdateRecommendationStatusFailedEntries omitted. // de_BatchUpdateRecommendationStatusFailedEntry omitted. @@ -3350,8 +3612,47 @@ const de_DisruptionResiliencyScore = ( // de_EventSubscriptionList omitted. +// de_FailedGroupingRecommendationEntries omitted. + +// de_FailedGroupingRecommendationEntry omitted. + // de_FailurePolicy omitted. +// de_GroupingAppComponent omitted. + +/** + * deserializeAws_restJson1GroupingRecommendation + */ +const de_GroupingRecommendation = (output: any, context: __SerdeContext): GroupingRecommendation => { + return take(output, { + confidenceLevel: __expectString, + creationTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + groupingAppComponent: _json, + groupingRecommendationId: __expectString, + recommendationReasons: _json, + rejectionReason: __expectString, + resources: _json, + score: __limitedParseDouble, + status: __expectString, + }) as any; +}; + +/** + * deserializeAws_restJson1GroupingRecommendationList + */ +const de_GroupingRecommendationList = (output: any, context: __SerdeContext): GroupingRecommendation[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + return de_GroupingRecommendation(entry, context); + }); + return retVal; +}; + +// de_GroupingResource omitted. + +// de_GroupingResourceList omitted. + // de_IamRoleArnList omitted. // de_LogicalResourceId omitted. @@ -3503,6 +3804,8 @@ const de_ScoringComponentResiliencyScores = ( // de_SopRecommendationList omitted. +// de_String255List omitted. + // de_SuggestedChangesList omitted. // de_TagMap omitted. diff --git a/codegen/sdk-codegen/aws-models/resiliencehub.json b/codegen/sdk-codegen/aws-models/resiliencehub.json index eb920a68708a1..64da7fbb4c729 100644 --- a/codegen/sdk-codegen/aws-models/resiliencehub.json +++ b/codegen/sdk-codegen/aws-models/resiliencehub.json @@ -1,6 +1,111 @@ { "smithy": "2.0", "shapes": { + "com.amazonaws.resiliencehub#AcceptGroupingRecommendationEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.resiliencehub#AcceptGroupingRecommendationEntry" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 30 + } + } + }, + "com.amazonaws.resiliencehub#AcceptGroupingRecommendationEntry": { + "type": "structure", + "members": { + "groupingRecommendationId": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

    Indicates the identifier of the grouping recommendation.

    ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

    Indicates the grouping recommendation you have accepted to include in your application.

    " + } + }, + "com.amazonaws.resiliencehub#AcceptResourceGroupingRecommendations": { + "type": "operation", + "input": { + "target": "com.amazonaws.resiliencehub#AcceptResourceGroupingRecommendationsRequest" + }, + "output": { + "target": "com.amazonaws.resiliencehub#AcceptResourceGroupingRecommendationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.resiliencehub#AccessDeniedException" + }, + { + "target": "com.amazonaws.resiliencehub#InternalServerException" + }, + { + "target": "com.amazonaws.resiliencehub#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.resiliencehub#ThrottlingException" + }, + { + "target": "com.amazonaws.resiliencehub#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

    Accepts the resource grouping recommendations suggested by Resilience Hub for your application.

    ", + "smithy.api#http": { + "method": "POST", + "uri": "/accept-resource-grouping-recommendations", + "code": 200 + } + } + }, + "com.amazonaws.resiliencehub#AcceptResourceGroupingRecommendationsRequest": { + "type": "structure", + "members": { + "appArn": { + "target": "com.amazonaws.resiliencehub#Arn", + "traits": { + "smithy.api#documentation": "

    Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: \narn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, \nsee \n Amazon Resource Names (ARNs) in the \n Amazon Web Services General Reference guide.

    ", + "smithy.api#required": {} + } + }, + "entries": { + "target": "com.amazonaws.resiliencehub#AcceptGroupingRecommendationEntries", + "traits": { + "smithy.api#documentation": "

    Indicates the list of resource grouping recommendations you want to include in your application.

    ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.resiliencehub#AcceptResourceGroupingRecommendationsResponse": { + "type": "structure", + "members": { + "appArn": { + "target": "com.amazonaws.resiliencehub#Arn", + "traits": { + "smithy.api#documentation": "

    Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: \narn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, \nsee \n Amazon Resource Names (ARNs) in the \n Amazon Web Services General Reference guide.

    ", + "smithy.api#required": {} + } + }, + "failedEntries": { + "target": "com.amazonaws.resiliencehub#FailedGroupingRecommendationEntries", + "traits": { + "smithy.api#documentation": "

    Indicates the list of resource grouping recommendations that could not be included in your application.

    ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.resiliencehub#AccessDeniedException": { "type": "structure", "members": { @@ -35,6 +140,9 @@ { "target": "com.amazonaws.resiliencehub#ResourceNotFoundException" }, + { + "target": "com.amazonaws.resiliencehub#ServiceQuotaExceededException" + }, { "target": "com.amazonaws.resiliencehub#ThrottlingException" }, @@ -43,7 +151,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Adds the source of resource-maps to the draft version of an application. During assessment, Resilience Hub will use these resource-maps to resolve the latest physical ID for each resource in the application template. For more information about different types of resources suported by Resilience Hub and how to add them in your application, see Step 2: How is your application managed? in the Resilience Hub User Guide.

    ", + "smithy.api#documentation": "

    Adds the source of resource-maps to the draft version of an application. During\n assessment, Resilience Hub will use these resource-maps to resolve the latest physical\n ID for each resource in the application template. For more information about different types\n of resources supported by Resilience Hub and how to add them in your application, see\n Step\n 2: How is your application managed? in the Resilience Hub User Guide.

    ", "smithy.api#http": { "method": "POST", "uri": "/add-draft-app-version-resource-mappings", @@ -470,6 +578,12 @@ "traits": { "smithy.api#documentation": "

    Indicates if compliance drifts (deviations) were detected while running an assessment for\n your application.

    " } + }, + "summary": { + "target": "com.amazonaws.resiliencehub#AssessmentSummary", + "traits": { + "smithy.api#documentation": "

    Indicates a concise summary that provides an overview of the Resilience Hub assessment.

    " + } } }, "traits": { @@ -553,7 +667,7 @@ "complianceStatus": { "target": "com.amazonaws.resiliencehub#ComplianceStatus", "traits": { - "smithy.api#documentation": "

    TCurrent status of compliance for the resiliency policy.

    " + "smithy.api#documentation": "

    Current\n status of compliance for the resiliency policy.

    " } }, "cost": { @@ -611,6 +725,14 @@ { "value": "ChangesDetected", "name": "CHANGES_DETECTED" + }, + { + "value": "NotApplicable", + "name": "NOT_APPLICABLE" + }, + { + "value": "MissingPolicy", + "name": "MISSING_POLICY" } ] } @@ -619,7 +741,7 @@ "type": "structure", "members": { "name": { - "target": "com.amazonaws.resiliencehub#String255", + "target": "com.amazonaws.resiliencehub#EntityName255", "traits": { "smithy.api#documentation": "

    Name of the Application Component.

    ", "smithy.api#required": {} @@ -633,7 +755,7 @@ } }, "id": { - "target": "com.amazonaws.resiliencehub#String255", + "target": "com.amazonaws.resiliencehub#EntityName255", "traits": { "smithy.api#documentation": "

    Identifier of the Application Component.

    " } @@ -966,6 +1088,38 @@ ] } }, + "com.amazonaws.resiliencehub#AssessmentRiskRecommendation": { + "type": "structure", + "members": { + "risk": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

    Indicates the description of the potential risk identified in the application as part of the Resilience Hub assessment.

    \n \n

    This property is available only in the US East (N. Virginia) Region.

    \n
    " + } + }, + "recommendation": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

    Indicates the recommendation provided by the Resilience Hub to address the identified\n risks in the application.

    \n \n

    This property is available only in the US East (N. Virginia) Region.

    \n
    " + } + }, + "appComponents": { + "target": "com.amazonaws.resiliencehub#AppComponentNameList", + "traits": { + "smithy.api#documentation": "

    Indicates the Application Components (AppComponents) that were assessed as part of the\n assessnent and are associated with the identified risk and recommendation.

    \n \n

    This property is available only in the US East (N. Virginia) Region.

    \n
    " + } + } + }, + "traits": { + "smithy.api#documentation": "

    Indicates a specific risk identified in the Resilience Hub assessment and the corresponding recommendation provided to address that risk.

    \n \n

    The assessment summary generated by large language models (LLMs) on Amazon Bedrock are only suggestions. \n The current level of generative AI technology is not perfect and LLMs are not infallible. \n Bias and incorrect answers, although rare, should be expected. Review each recommendation in the assessment summary before you use the output from an LLM.\n

    \n
    \n \n

    This property is available only in the US East (N. Virginia) Region.

    \n
    " + } + }, + "com.amazonaws.resiliencehub#AssessmentRiskRecommendationList": { + "type": "list", + "member": { + "target": "com.amazonaws.resiliencehub#AssessmentRiskRecommendation" + } + }, "com.amazonaws.resiliencehub#AssessmentStatus": { "type": "string", "traits": { @@ -1001,6 +1155,26 @@ } } }, + "com.amazonaws.resiliencehub#AssessmentSummary": { + "type": "structure", + "members": { + "summary": { + "target": "com.amazonaws.resiliencehub#String500", + "traits": { + "smithy.api#documentation": "

    Indicates a concise summary that provides an overview of the Resilience Hub assessment.

    \n \n

    This property is available only in the US East (N. Virginia) Region.

    \n
    " + } + }, + "riskRecommendations": { + "target": "com.amazonaws.resiliencehub#AssessmentRiskRecommendationList", + "traits": { + "smithy.api#documentation": "

    Indicates the top risks and recommendations identified by the Resilience Hub assessment, \n each representing a specific risk and the corresponding recommendation to address it.

    \n \n

    This property is available only in the US East (N. Virginia) Region.

    \n
    " + } + } + }, + "traits": { + "smithy.api#documentation": "

    Indicates the AI-generated summary for the Resilience Hub assessment, providing a concise overview that highlights the top risks and recommendations.

    \n \n

    This property is available only in the US East (N. Virginia) Region.

    \n
    " + } + }, "com.amazonaws.resiliencehub#AwsRegion": { "type": "string", "traits": { @@ -1011,6 +1185,9 @@ "type": "service", "version": "2020-04-30", "operations": [ + { + "target": "com.amazonaws.resiliencehub#AcceptResourceGroupingRecommendations" + }, { "target": "com.amazonaws.resiliencehub#AddDraftAppVersionResourceMappings" }, @@ -1080,6 +1257,9 @@ { "target": "com.amazonaws.resiliencehub#DescribeResiliencyPolicy" }, + { + "target": "com.amazonaws.resiliencehub#DescribeResourceGroupingRecommendationTask" + }, { "target": "com.amazonaws.resiliencehub#ImportResourcesToDraftAppVersion" }, @@ -1125,6 +1305,9 @@ { "target": "com.amazonaws.resiliencehub#ListResiliencyPolicies" }, + { + "target": "com.amazonaws.resiliencehub#ListResourceGroupingRecommendations" + }, { "target": "com.amazonaws.resiliencehub#ListSopRecommendations" }, @@ -1146,6 +1329,9 @@ { "target": "com.amazonaws.resiliencehub#PutDraftAppVersionTemplate" }, + { + "target": "com.amazonaws.resiliencehub#RejectResourceGroupingRecommendations" + }, { "target": "com.amazonaws.resiliencehub#RemoveDraftAppVersionResourceMappings" }, @@ -1155,6 +1341,9 @@ { "target": "com.amazonaws.resiliencehub#StartAppAssessment" }, + { + "target": "com.amazonaws.resiliencehub#StartResourceGroupingRecommendationTask" + }, { "target": "com.amazonaws.resiliencehub#TagResource" }, @@ -2147,7 +2336,7 @@ "requestEntries": { "target": "com.amazonaws.resiliencehub#UpdateRecommendationStatusRequestEntries", "traits": { - "smithy.api#documentation": "

    Defines the list of operational recommendations that need to be included or excluded.

    ", + "smithy.api#documentation": "

    Defines the list of operational recommendations that need to be included or\n excluded.

    ", "smithy.api#required": {} } } @@ -2176,7 +2365,7 @@ "failedEntries": { "target": "com.amazonaws.resiliencehub#BatchUpdateRecommendationStatusFailedEntries", "traits": { - "smithy.api#documentation": "

    A list of items with error details about each item, which could not be included or excluded.

    ", + "smithy.api#documentation": "

    A list of items with error details about each item, which could not be included or\n excluded.

    ", "smithy.api#required": {} } } @@ -2306,7 +2495,7 @@ "diffType": { "target": "com.amazonaws.resiliencehub#DifferenceType", "traits": { - "smithy.api#documentation": "

    Difference type between actual and expected recovery point objective (RPO) and recovery\n time objective (RTO) values. Currently, Resilience Hub supports only NotEqual difference type.

    " + "smithy.api#documentation": "

    Difference type between actual and expected recovery point objective (RPO) and recovery\n time objective (RTO) values. Currently, Resilience Hub supports only\n NotEqual difference type.

    " } } }, @@ -2331,6 +2520,14 @@ { "value": "PolicyMet", "name": "POLICY_MET" + }, + { + "value": "NotApplicable", + "name": "NOT_APPLICABLE" + }, + { + "value": "MissingPolicy", + "name": "MISSING_POLICY" } ] } @@ -2594,7 +2791,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Creates an Resilience Hub application. An Resilience Hub application is a\n collection of Amazon Web Services resources structured to prevent and recover Amazon Web Services application disruptions. To describe a Resilience Hub application,\n you provide an application name, resources from one or more CloudFormation stacks, Resource Groups, Terraform state files, AppRegistry applications, and an appropriate\n resiliency policy. In addition, you can also add resources that are located on Amazon Elastic Kubernetes Service (Amazon EKS) clusters as optional resources. For more information about the number of resources supported per application, see Service\n quotas.

    \n

    After you create an Resilience Hub application, you publish it so that you can run a resiliency\n assessment on it. You can then use recommendations from the assessment to improve resiliency\n by running another assessment, comparing results, and then iterating the process until you\n achieve your goals for recovery time objective (RTO) and recovery point objective\n (RPO).

    ", + "smithy.api#documentation": "

    Creates an Resilience Hub application. An Resilience Hub application is a\n collection of Amazon Web Services resources structured to prevent and recover Amazon Web Services application disruptions. To describe a Resilience Hub application, you provide an\n application name, resources from one or more CloudFormation stacks, Resource Groups, Terraform state files, AppRegistry applications, and an appropriate\n resiliency policy. In addition, you can also add resources that are located on Amazon Elastic Kubernetes Service (Amazon EKS) clusters as optional resources. For more information\n about the number of resources supported per application, see Service\n quotas.

    \n

    After you create an Resilience Hub application, you publish it so that you can run\n a resiliency assessment on it. You can then use recommendations from the assessment to improve\n resiliency by running another assessment, comparing results, and then iterating the process\n until you achieve your goals for recovery time objective (RTO) and recovery point objective\n (RPO).

    ", "smithy.api#http": { "method": "POST", "uri": "/create-app", @@ -2640,7 +2837,7 @@ "assessmentSchedule": { "target": "com.amazonaws.resiliencehub#AppAssessmentScheduleType", "traits": { - "smithy.api#documentation": "

    \n Assessment execution schedule with 'Daily' or 'Disabled' values.\n

    " + "smithy.api#documentation": "

    Assessment execution schedule with 'Daily' or 'Disabled' values.

    " } }, "permissionModel": { @@ -2652,7 +2849,7 @@ "eventSubscriptions": { "target": "com.amazonaws.resiliencehub#EventSubscriptionList", "traits": { - "smithy.api#documentation": "

    The list of events you would like to subscribe and get notification for. Currently, Resilience Hub supports only Drift detected and Scheduled assessment failure events notification.

    " + "smithy.api#documentation": "

    The list of events you would like to subscribe and get notification for. Currently,\n Resilience Hub supports only Drift detected and\n Scheduled assessment failure events notification.

    " } } } @@ -2701,7 +2898,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Creates a new Application Component in the Resilience Hub application.

    \n \n

    This API updates the Resilience Hub application draft version. To use this Application Component for running assessments, you must publish the Resilience Hub application using the PublishAppVersion API.

    \n
    ", + "smithy.api#documentation": "

    Creates a new Application Component in the Resilience Hub application.

    \n \n

    This API updates the Resilience Hub application draft version. To use this\n Application Component for running assessments, you must publish the Resilience Hub\n application using the PublishAppVersion API.

    \n
    ", "smithy.api#http": { "method": "POST", "uri": "/create-app-version-app-component", @@ -2811,7 +3008,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Adds a resource to the Resilience Hub application and assigns it to the specified\n Application Components. If you specify a new Application Component, Resilience Hub will automatically\n create the Application Component.

    \n \n
      \n
    • \n

      This action has no effect outside Resilience Hub.

      \n
    • \n
    • \n

      This API updates the Resilience Hub application draft version. To use this resource\n for running resiliency assessments, you must publish the Resilience Hub application using\n the PublishAppVersion API.

      \n
    • \n
    • \n

      To update application version with new physicalResourceID, you must\n call ResolveAppVersionResources API.

      \n
    • \n
    \n
    ", + "smithy.api#documentation": "

    Adds a resource to the Resilience Hub application and assigns it to the specified\n Application Components. If you specify a new Application Component, Resilience Hub will\n automatically create the Application Component.

    \n \n
      \n
    • \n

      This action has no effect outside Resilience Hub.

      \n
    • \n
    • \n

      This API updates the Resilience Hub application draft version. To use this\n resource for running resiliency assessments, you must publish the Resilience Hub\n application using the PublishAppVersion API.

      \n
    • \n
    • \n

      To update application version with new physicalResourceID, you must\n call ResolveAppVersionResources API.

      \n
    • \n
    \n
    ", "smithy.api#http": { "method": "POST", "uri": "/create-app-version-resource", @@ -3051,7 +3248,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Creates a resiliency policy for an application.

    \n \n

    Resilience Hub allows you to provide a value of zero for rtoInSecs and\n rpoInSecs of your resiliency policy. But, while assessing your application, the lowest possible assessment result is near zero. Hence, if you provide value\n zero for rtoInSecs and rpoInSecs, the estimated workload RTO and estimated workload RPO result will be near zero and the Compliance\n status for your application will be set to Policy\n breached.

    \n
    ", + "smithy.api#documentation": "

    Creates a resiliency policy for an application.

    \n \n

    Resilience Hub allows you to provide a value of zero for rtoInSecs\n and rpoInSecs of your resiliency policy. But, while assessing your application,\n the lowest possible assessment result is near zero. Hence, if you provide value zero for\n rtoInSecs and rpoInSecs, the estimated workload RTO and\n estimated workload RPO result will be near zero and the Compliance\n status for your application will be set to Policy\n breached.

    \n
    ", "smithy.api#http": { "method": "POST", "uri": "/create-resiliency-policy", @@ -3219,7 +3416,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Deletes an Resilience Hub application assessment. This is a destructive action that can't\n be undone.

    ", + "smithy.api#documentation": "

    Deletes an Resilience Hub application assessment. This is a destructive action\n that can't be undone.

    ", "smithy.api#http": { "method": "POST", "uri": "/delete-app-assessment", @@ -3294,7 +3491,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Deletes the input source and all of its imported resources from the Resilience Hub application.

    ", + "smithy.api#documentation": "

    Deletes the input source and all of its imported resources from the Resilience Hub\n application.

    ", "smithy.api#http": { "method": "POST", "uri": "/delete-app-input-source", @@ -3315,13 +3512,13 @@ "sourceArn": { "target": "com.amazonaws.resiliencehub#Arn", "traits": { - "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the imported resource you want to remove from the\n Resilience Hub application. For more information about ARNs, \nsee \n Amazon Resource Names (ARNs) in the \n Amazon Web Services General Reference guide.

    " + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the imported resource you want to remove from the\n Resilience Hub application. For more information about ARNs, \nsee \n Amazon Resource Names (ARNs) in the \n Amazon Web Services General Reference guide.

    " } }, "terraformSource": { "target": "com.amazonaws.resiliencehub#TerraformSource", "traits": { - "smithy.api#documentation": "

    The imported Terraform s3 state file you want to remove from the Resilience Hub application.

    " + "smithy.api#documentation": "

    The imported Terraform s3 state file you want to remove from the Resilience Hub\n application.

    " } }, "clientToken": { @@ -3334,7 +3531,7 @@ "eksSourceClusterNamespace": { "target": "com.amazonaws.resiliencehub#EksSourceClusterNamespace", "traits": { - "smithy.api#documentation": "

    The namespace on your Amazon Elastic Kubernetes Service cluster that you want to delete from the Resilience Hub application.

    " + "smithy.api#documentation": "

    The namespace on your Amazon Elastic Kubernetes Service cluster that you want to delete from the\n Resilience Hub application.

    " } } } @@ -3422,7 +3619,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Deletes an Application Component from the Resilience Hub application.

    \n \n
      \n
    • \n

      This API updates the Resilience Hub application draft version. To use this Application Component for running assessments, you must publish the Resilience Hub application using the PublishAppVersion API.

      \n
    • \n
    • \n

      You will not be able to delete an Application Component if it has resources associated with it.

      \n
    • \n
    \n
    ", + "smithy.api#documentation": "

    Deletes an Application Component from the Resilience Hub application.

    \n \n
      \n
    • \n

      This API updates the Resilience Hub application draft version. To use this\n Application Component for running assessments, you must publish the Resilience Hub\n application using the PublishAppVersion API.

      \n
    • \n
    • \n

      You will not be able to delete an Application Component if it has resources associated\n with it.

      \n
    • \n
    \n
    ", "smithy.api#http": { "method": "POST", "uri": "/delete-app-version-app-component", @@ -3510,7 +3707,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Deletes a resource from the Resilience Hub application.

    \n \n
      \n
    • \n

      You can only delete a manually added resource. To exclude non-manually added resources, use the UpdateAppVersionResource API.

      \n
    • \n
    • \n

      This action has no effect outside Resilience Hub.

      \n
    • \n
    • \n

      This API updates the Resilience Hub application draft version. To use this resource for running resiliency assessments, you must publish the Resilience Hub application using the PublishAppVersion API.

      \n
    • \n
    \n
    ", + "smithy.api#documentation": "

    Deletes a resource from the Resilience Hub application.

    \n \n
      \n
    • \n

      You can only delete a manually added resource. To exclude non-manually added\n resources, use the UpdateAppVersionResource API.

      \n
    • \n
    • \n

      This action has no effect outside Resilience Hub.

      \n
    • \n
    • \n

      This API updates the Resilience Hub application draft version. To use this\n resource for running resiliency assessments, you must publish the Resilience Hub\n application using the PublishAppVersion API.

      \n
    • \n
    \n
    ", "smithy.api#http": { "method": "POST", "uri": "/delete-app-version-resource", @@ -3818,7 +4015,7 @@ "assessment": { "target": "com.amazonaws.resiliencehub#AppAssessment", "traits": { - "smithy.api#documentation": "

    The assessment for an Resilience Hub application, returned as an object. This object\n includes Amazon Resource Names (ARNs), compliance information, compliance status, cost,\n messages, resiliency scores, and more.

    ", + "smithy.api#documentation": "

    The assessment for an Resilience Hub application, returned as an object. This\n object includes Amazon Resource Names (ARNs), compliance information, compliance status, cost,\n messages, resiliency scores, and more.

    ", "smithy.api#required": {} } } @@ -4018,7 +4215,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Describes a resource of the Resilience Hub application.

    \n \n

    This API accepts only one of the following parameters to descibe the resource:

    \n
      \n
    • \n

      \n resourceName\n

      \n
    • \n
    • \n

      \n logicalResourceId\n

      \n
    • \n
    • \n

      \n physicalResourceId (Along with physicalResourceId, you can also\n provide awsAccountId, and awsRegion)

      \n
    • \n
    \n
    ", + "smithy.api#documentation": "

    Describes a resource of the Resilience Hub application.

    \n \n

    This API accepts only one of the following parameters to describe the resource:

    \n
      \n
    • \n

      \n resourceName\n

      \n
    • \n
    • \n

      \n logicalResourceId\n

      \n
    • \n
    • \n

      \n physicalResourceId (Along with physicalResourceId, you can\n also provide awsAccountId, and awsRegion)

      \n
    • \n
    \n
    ", "smithy.api#http": { "method": "POST", "uri": "/describe-app-version-resource", @@ -4296,7 +4493,7 @@ "appTemplateBody": { "target": "com.amazonaws.resiliencehub#AppTemplateBody", "traits": { - "smithy.api#documentation": "

    A JSON string that provides information about your application structure. To learn more\n about the appTemplateBody template, see the sample template provided in the\n Examples section.

    \n

    The appTemplateBody JSON string has the following structure:

    \n
      \n
    • \n

      \n \n resources\n \n

      \n

      The list of logical resources that must be included in the Resilience Hub\n application.

      \n

      Type: Array

      \n \n

      Don't add the resources that you want to exclude.

      \n
      \n

      Each resources array item includes the following fields:

      \n
        \n
      • \n

        \n \n logicalResourceId\n \n

        \n

        Logical identifier of the resource.

        \n

        Type: Object

        \n

        Each logicalResourceId object includes the following fields:

        \n
          \n
        • \n

          \n identifier\n

          \n

          Identifier of the resource.

          \n

          Type: String

          \n
        • \n
        • \n

          \n logicalStackName\n

          \n

          The name of the CloudFormation stack this resource belongs to.

          \n

          Type: String

          \n
        • \n
        • \n

          \n resourceGroupName\n

          \n

          The name of the resource group this resource belongs to.

          \n

          Type: String

          \n
        • \n
        • \n

          \n terraformSourceName\n

          \n

          The name of the Terraform S3 state file this resource belongs to.

          \n

          Type: String

          \n
        • \n
        • \n

          \n eksSourceName\n

          \n

          Name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to.

          \n \n

          This parameter accepts values in \"eks-cluster/namespace\" format.

          \n
          \n

          Type: String

          \n
        • \n
        \n
      • \n
      • \n

        \n \n type\n \n

        \n

        The type of resource.

        \n

        Type: string

        \n
      • \n
      • \n

        \n \n name\n \n

        \n

        The name of the resource.

        \n

        Type: String

        \n
      • \n
      • \n

        \n additionalInfo\n

        \n

        Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters.

        \n \n

        Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account.

        \n

        Key: \"failover-regions\"\n

        \n

        Value: \"[{\"region\":\"<REGION>\", \"accounts\":[{\"id\":\"<ACCOUNT_ID>\"}]}]\"\n

        \n
        \n
      • \n
      \n
    • \n
    • \n

      \n \n appComponents\n \n

      \n

      List of Application Components that this resource belongs to. If an Application Component is not part of the Resilience Hub application, it will be added.

      \n

      Type: Array

      \n

      Each appComponents array item includes the following fields:

      \n
        \n
      • \n

        \n name\n

        \n

        Name of the Application Component.

        \n

        Type: String

        \n
      • \n
      • \n

        \n type\n

        \n

        Type of Application Component. For more information about the types of Application Component, see Grouping resources in an AppComponent.

        \n

        Type: String

        \n
      • \n
      • \n

        \n resourceNames\n

        \n

        The list of included resources that are assigned to the Application Component.

        \n

        Type: Array of strings

        \n
      • \n
      • \n

        \n additionalInfo\n

        \n

        Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters.

        \n \n

        Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account.

        \n

        Key: \"failover-regions\"\n

        \n

        Value: \"[{\"region\":\"<REGION>\", \"accounts\":[{\"id\":\"<ACCOUNT_ID>\"}]}]\"\n

        \n
        \n
      • \n
      \n
    • \n
    • \n

      \n \n excludedResources\n \n

      \n

      The list of logical resource identifiers to be excluded from the application.

      \n

      Type: Array

      \n \n

      Don't add the resources that you want to include.

      \n
      \n

      Each excludedResources array item includes the following fields:

      \n
        \n
      • \n

        \n \n logicalResourceIds\n \n

        \n

        Logical identifier of the resource.

        \n

        Type: Object

        \n \n

        You can configure only one of the following fields:

        \n
          \n
        • \n

          \n logicalStackName\n

          \n
        • \n
        • \n

          \n resourceGroupName\n

          \n
        • \n
        • \n

          \n terraformSourceName\n

          \n
        • \n
        • \n

          \n eksSourceName\n

          \n
        • \n
        \n
        \n

        Each logicalResourceIds object includes the following fields:

        \n
          \n
        • \n

          \n identifier\n

          \n

          Identifier of the resource.

          \n

          Type: String

          \n
        • \n
        • \n

          \n logicalStackName\n

          \n

          The name of the CloudFormation stack this resource belongs to.

          \n

          Type: String

          \n
        • \n
        • \n

          \n resourceGroupName\n

          \n

          The name of the resource group this resource belongs to.

          \n

          Type: String

          \n
        • \n
        • \n

          \n terraformSourceName\n

          \n

          The name of the Terraform S3 state file this resource belongs to.

          \n

          Type: String

          \n
        • \n
        • \n

          \n eksSourceName\n

          \n

          Name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to.

          \n \n

          This parameter accepts values in \"eks-cluster/namespace\" format.

          \n
          \n

          Type: String

          \n
        • \n
        \n
      • \n
      \n
    • \n
    • \n

      \n \n version\n \n

      \n

      Resilience Hub application version.

      \n
    • \n
    • \n

      \n additionalInfo\n

      \n

      Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters.

      \n \n

      Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account.

      \n

      Key: \"failover-regions\"\n

      \n

      Value: \"[{\"region\":\"<REGION>\", \"accounts\":[{\"id\":\"<ACCOUNT_ID>\"}]}]\"\n

      \n
      \n
    • \n
    ", + "smithy.api#documentation": "

    A JSON string that provides information about your application structure. To learn more\n about the appTemplateBody template, see the sample template provided in the\n Examples section.

    \n

    The appTemplateBody JSON string has the following structure:

    \n
      \n
    • \n

      \n \n resources\n \n

      \n

      The list of logical resources that must be included in the Resilience Hub\n application.

      \n

      Type: Array

      \n \n

      Don't add the resources that you want to exclude.

      \n
      \n

      Each resources array item includes the following fields:

      \n
        \n
      • \n

        \n \n logicalResourceId\n \n

        \n

        Logical identifier of the resource.

        \n

        Type: Object

        \n

        Each logicalResourceId object includes the following fields:

        \n
          \n
        • \n

          \n identifier\n

          \n

          Identifier of the resource.

          \n

          Type: String

          \n
        • \n
        • \n

          \n logicalStackName\n

          \n

          The name of the CloudFormation stack this resource belongs to.

          \n

          Type: String

          \n
        • \n
        • \n

          \n resourceGroupName\n

          \n

          The name of the resource group this resource belongs to.

          \n

          Type: String

          \n
        • \n
        • \n

          \n terraformSourceName\n

          \n

          The name of the Terraform S3 state file this resource belongs to.

          \n

          Type: String

          \n
        • \n
        • \n

          \n eksSourceName\n

          \n

          Name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to.

          \n \n

          This parameter accepts values in \"eks-cluster/namespace\" format.

          \n
          \n

          Type: String

          \n
        • \n
        \n
      • \n
      • \n

        \n \n type\n \n

        \n

        The type of resource.

        \n

        Type: string

        \n
      • \n
      • \n

        \n \n name\n \n

        \n

        The name of the resource.

        \n

        Type: String

        \n
      • \n
      • \n

        \n additionalInfo\n

        \n

        Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters.

        \n \n

        Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account.

        \n

        Key: \"failover-regions\"\n

        \n

        Value: \"[{\"region\":\"<REGION>\", \"accounts\":[{\"id\":\"<ACCOUNT_ID>\"}]}]\"\n

        \n
        \n
      • \n
      \n
    • \n
    • \n

      \n \n appComponents\n \n

      \n

      List of Application Components that this resource belongs to. If an Application Component is not part of the Resilience Hub application, it will be added.

      \n

      Type: Array

      \n

      Each appComponents array item includes the following fields:

      \n
        \n
      • \n

        \n name\n

        \n

        Name of the Application Component.

        \n

        Type: String

        \n
      • \n
      • \n

        \n type\n

        \n

        Type of Application Component. For more information about the types of Application Component, see Grouping resources in an AppComponent.

        \n

        Type: String

        \n
      • \n
      • \n

        \n resourceNames\n

        \n

        The list of included resources that are assigned to the Application Component.

        \n

        Type: Array of strings

        \n
      • \n
      • \n

        \n additionalInfo\n

        \n

        Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters.

        \n \n

        Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account.

        \n

        Key: \"failover-regions\"\n

        \n

        Value: \"[{\"region\":\"<REGION>\", \"accounts\":[{\"id\":\"<ACCOUNT_ID>\"}]}]\"\n

        \n
        \n
      • \n
      \n
    • \n
    • \n

      \n \n excludedResources\n \n

      \n

      The list of logical resource identifiers to be excluded from the application.

      \n

      Type: Array

      \n \n

      Don't add the resources that you want to include.

      \n
      \n

      Each excludedResources array item includes the following fields:

      \n
        \n
      • \n

        \n \n logicalResourceIds\n \n

        \n

        Logical identifier of the resource.

        \n

        Type: Object

        \n \n

        You can configure only one of the following fields:

        \n
          \n
        • \n

          \n logicalStackName\n

          \n
        • \n
        • \n

          \n resourceGroupName\n

          \n
        • \n
        • \n

          \n terraformSourceName\n

          \n
        • \n
        • \n

          \n eksSourceName\n

          \n
        • \n
        \n
        \n

        Each logicalResourceIds object includes the following fields:

        \n
          \n
        • \n

          \n identifier\n

          \n

          Identifier of the resource.

          \n

          Type: String

          \n
        • \n
        • \n

          \n logicalStackName\n

          \n

          The name of the CloudFormation stack this resource belongs to.

          \n

          Type: String

          \n
        • \n
        • \n

          \n resourceGroupName\n

          \n

          The name of the resource group this resource belongs to.

          \n

          Type: String

          \n
        • \n
        • \n

          \n terraformSourceName\n

          \n

          The name of the Terraform S3 state file this resource belongs to.

          \n

          Type: String

          \n
        • \n
        • \n

          \n eksSourceName\n

          \n

          Name of the Amazon Elastic Kubernetes Service cluster and namespace this resource belongs to.

          \n \n

          This parameter accepts values in \"eks-cluster/namespace\" format.

          \n
          \n

          Type: String

          \n
        • \n
        \n
      • \n
      \n
    • \n
    • \n

      \n \n version\n \n

      \n

      Resilience Hub application version.

      \n
    • \n
    • \n

      \n additionalInfo\n

      \n

      Additional configuration parameters for an Resilience Hub application. If you want to implement additionalInfo through the Resilience Hub console rather than using an API call, see Configure the application configuration parameters.

      \n \n

      Currently, this parameter accepts a key-value mapping (in a string format) of only one failover region and one associated account.

      \n

      Key: \"failover-regions\"\n

      \n

      Value: \"[{\"region\":\"<REGION>\", \"accounts\":[{\"id\":\"<ACCOUNT_ID>\"}]}]\"\n

      \n
      \n
    • \n
    ", "smithy.api#required": {} } } @@ -4328,7 +4525,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Describes the status of importing resources to an application version.

    \n \n

    If you get a 404 error with\n ResourceImportStatusNotFoundAppMetadataException, you must call\n importResourcesToDraftAppVersion after creating the application and before\n calling describeDraftAppVersionResourcesImportStatus to obtain the\n status.

    \n
    ", + "smithy.api#documentation": "

    Describes the status of importing resources to an application version.

    \n \n

    If you get a 404 error with\n ResourceImportStatusNotFoundAppMetadataException, you must call\n importResourcesToDraftAppVersion after creating the application and before\n calling describeDraftAppVersionResourcesImportStatus to obtain the\n status.

    \n
    ", "smithy.api#http": { "method": "POST", "uri": "/describe-draft-app-version-resources-import-status", @@ -4445,6 +4642,89 @@ } } }, + "com.amazonaws.resiliencehub#DescribeResourceGroupingRecommendationTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.resiliencehub#DescribeResourceGroupingRecommendationTaskRequest" + }, + "output": { + "target": "com.amazonaws.resiliencehub#DescribeResourceGroupingRecommendationTaskResponse" + }, + "errors": [ + { + "target": "com.amazonaws.resiliencehub#AccessDeniedException" + }, + { + "target": "com.amazonaws.resiliencehub#InternalServerException" + }, + { + "target": "com.amazonaws.resiliencehub#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.resiliencehub#ThrottlingException" + }, + { + "target": "com.amazonaws.resiliencehub#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

    Describes the resource grouping recommendation tasks run by Resilience Hub for your application.

    ", + "smithy.api#http": { + "method": "POST", + "uri": "/describe-resource-grouping-recommendation-task", + "code": 200 + } + } + }, + "com.amazonaws.resiliencehub#DescribeResourceGroupingRecommendationTaskRequest": { + "type": "structure", + "members": { + "appArn": { + "target": "com.amazonaws.resiliencehub#Arn", + "traits": { + "smithy.api#documentation": "

    Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: \narn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, \nsee \n Amazon Resource Names (ARNs) in the \n Amazon Web Services General Reference guide.

    ", + "smithy.api#required": {} + } + }, + "groupingId": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

    Indicates the identifier of the grouping recommendation task.

    " + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.resiliencehub#DescribeResourceGroupingRecommendationTaskResponse": { + "type": "structure", + "members": { + "groupingId": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

    Indicates the identifier of the grouping recommendation task.

    ", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.resiliencehub#ResourcesGroupingRecGenStatusType", + "traits": { + "smithy.api#documentation": "

    Status of the action.

    ", + "smithy.api#required": {} + } + }, + "errorMessage": { + "target": "com.amazonaws.resiliencehub#String500", + "traits": { + "smithy.api#documentation": "

    Indicates the error that occurred while generating a grouping recommendation.

    " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.resiliencehub#DifferenceType": { "type": "string", "traits": { @@ -4714,6 +4994,12 @@ "smithy.api#pattern": "^[A-Za-z0-9][A-Za-z0-9_\\-]{1,59}$" } }, + "com.amazonaws.resiliencehub#EntityName255": { + "type": "string", + "traits": { + "smithy.api#pattern": "^[A-Za-z0-9][A-Za-z0-9_\\-]{0,254}$" + } + }, "com.amazonaws.resiliencehub#EntityNameList": { "type": "list", "member": { @@ -4832,6 +5118,34 @@ ] } }, + "com.amazonaws.resiliencehub#FailedGroupingRecommendationEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.resiliencehub#FailedGroupingRecommendationEntry" + } + }, + "com.amazonaws.resiliencehub#FailedGroupingRecommendationEntry": { + "type": "structure", + "members": { + "groupingRecommendationId": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

    Indicates the identifier of the grouping recommendation.

    ", + "smithy.api#required": {} + } + }, + "errorMessage": { + "target": "com.amazonaws.resiliencehub#ErrorMessage", + "traits": { + "smithy.api#documentation": "

    Indicates the error that occurred while implementing a grouping recommendation.

    ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

    Indicates the accepted grouping recommendation whose implementation failed.

    " + } + }, "com.amazonaws.resiliencehub#FailurePolicy": { "type": "structure", "members": { @@ -4856,12 +5170,224 @@ "smithy.api#documentation": "

    Defines a failure policy.

    " } }, - "com.amazonaws.resiliencehub#HaArchitecture": { - "type": "string", - "traits": { - "smithy.api#enum": [ - { - "value": "MultiSite", + "com.amazonaws.resiliencehub#GroupingAppComponent": { + "type": "structure", + "members": { + "appComponentId": { + "target": "com.amazonaws.resiliencehub#EntityName255", + "traits": { + "smithy.api#documentation": "

    Indicates the identifier of an AppComponent.

    ", + "smithy.api#required": {} + } + }, + "appComponentType": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

    Indicates the type of an AppComponent.

    ", + "smithy.api#required": {} + } + }, + "appComponentName": { + "target": "com.amazonaws.resiliencehub#EntityName255", + "traits": { + "smithy.api#documentation": "

    Indicates the name of an AppComponent.

    ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

    Creates a new recommended Application Component (AppComponent).

    " + } + }, + "com.amazonaws.resiliencehub#GroupingRecommendation": { + "type": "structure", + "members": { + "groupingRecommendationId": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

    Indicates all the reasons available for rejecting a grouping recommendation.

    ", + "smithy.api#required": {} + } + }, + "groupingAppComponent": { + "target": "com.amazonaws.resiliencehub#GroupingAppComponent", + "traits": { + "smithy.api#documentation": "

    Indicates the name of the recommended Application Component (AppComponent).

    ", + "smithy.api#required": {} + } + }, + "resources": { + "target": "com.amazonaws.resiliencehub#GroupingResourceList", + "traits": { + "smithy.api#documentation": "

    Indicates the resources that are grouped in a recommended AppComponent.

    ", + "smithy.api#required": {} + } + }, + "score": { + "target": "com.amazonaws.resiliencehub#Double", + "traits": { + "smithy.api#default": 0, + "smithy.api#documentation": "

    Indicates the confidence level of the grouping recommendation.

    ", + "smithy.api#required": {} + } + }, + "recommendationReasons": { + "target": "com.amazonaws.resiliencehub#String255List", + "traits": { + "smithy.api#documentation": "

    Indicates all the reasons available for rejecting a grouping recommendation.

    ", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.resiliencehub#GroupingRecommendationStatusType", + "traits": { + "smithy.api#documentation": "

    Indicates the status of grouping resources into AppComponents.

    ", + "smithy.api#required": {} + } + }, + "confidenceLevel": { + "target": "com.amazonaws.resiliencehub#GroupingRecommendationConfidenceLevel", + "traits": { + "smithy.api#documentation": "

    Indicates the confidence level of Resilience Hub on the grouping recommendation.

    ", + "smithy.api#required": {} + } + }, + "creationTime": { + "target": "com.amazonaws.resiliencehub#TimeStamp", + "traits": { + "smithy.api#documentation": "

    Indicates the creation time of the grouping recommendation.

    ", + "smithy.api#required": {} + } + }, + "rejectionReason": { + "target": "com.amazonaws.resiliencehub#GroupingRecommendationRejectionReason", + "traits": { + "smithy.api#documentation": "

    Indicates the reason you had selected while rejecting a grouping recommendation.

    " + } + } + }, + "traits": { + "smithy.api#documentation": "

    Creates a new grouping recommendation.

    " + } + }, + "com.amazonaws.resiliencehub#GroupingRecommendationConfidenceLevel": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "HIGH", + "value": "High" + }, + { + "name": "MEDIUM", + "value": "Medium" + } + ] + } + }, + "com.amazonaws.resiliencehub#GroupingRecommendationList": { + "type": "list", + "member": { + "target": "com.amazonaws.resiliencehub#GroupingRecommendation" + } + }, + "com.amazonaws.resiliencehub#GroupingRecommendationRejectionReason": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "DISTINCT_BUSINESS_PURPOSE", + "value": "DistinctBusinessPurpose" + }, + { + "name": "SEPARATE_DATA_CONCERN", + "value": "SeparateDataConcern" + }, + { + "name": "DISTINCT_USER_GROUP_HANDLING", + "value": "DistinctUserGroupHandling" + }, + { + "name": "OTHER", + "value": "Other" + } + ] + } + }, + "com.amazonaws.resiliencehub#GroupingRecommendationStatusType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "ACCEPTED", + "value": "Accepted" + }, + { + "name": "REJECTED", + "value": "Rejected" + }, + { + "name": "PENDING_DECISION", + "value": "PendingDecision" + } + ] + } + }, + "com.amazonaws.resiliencehub#GroupingResource": { + "type": "structure", + "members": { + "resourceName": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

    Indicates the resource name.

    ", + "smithy.api#required": {} + } + }, + "resourceType": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

    Indicates the resource type.

    ", + "smithy.api#required": {} + } + }, + "physicalResourceId": { + "target": "com.amazonaws.resiliencehub#PhysicalResourceId", + "traits": { + "smithy.api#documentation": "

    Indicates the physical identifier of the resource.

    ", + "smithy.api#required": {} + } + }, + "logicalResourceId": { + "target": "com.amazonaws.resiliencehub#LogicalResourceId", + "traits": { + "smithy.api#documentation": "

    Indicates the logical identifier of the resource.

    ", + "smithy.api#required": {} + } + }, + "sourceAppComponentIds": { + "target": "com.amazonaws.resiliencehub#String255List", + "traits": { + "smithy.api#documentation": "

    Indicates the identifier of the source AppComponents in which the resources were previously grouped into.

    ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

    Indicates the resource that will be grouped in the recommended Application Component (AppComponent).

    " + } + }, + "com.amazonaws.resiliencehub#GroupingResourceList": { + "type": "list", + "member": { + "target": "com.amazonaws.resiliencehub#GroupingResource" + } + }, + "com.amazonaws.resiliencehub#HaArchitecture": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "MultiSite", "name": "MULTI_SITE" }, { @@ -4939,7 +5465,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Imports resources to Resilience Hub application draft version from different input sources. For more information about the input sources supported by Resilience Hub, see Discover\n the structure and describe your Resilience Hub application.

    ", + "smithy.api#documentation": "

    Imports resources to Resilience Hub application draft version from different input\n sources. For more information about the input sources supported by Resilience Hub, see\n Discover the structure and describe your Resilience Hub application.

    ", "smithy.api#http": { "method": "POST", "uri": "/import-resources-to-draft-app-version", @@ -5016,7 +5542,7 @@ "terraformSources": { "target": "com.amazonaws.resiliencehub#TerraformSourceList", "traits": { - "smithy.api#documentation": "

    \n A list of terraform file s3 URLs you have imported.\n

    " + "smithy.api#documentation": "

    A list of terraform file s3 URLs you have imported.

    " } }, "eksSources": { @@ -5118,7 +5644,7 @@ "alarmRecommendations": { "target": "com.amazonaws.resiliencehub#AlarmRecommendationList", "traits": { - "smithy.api#documentation": "

    The alarm recommendations for an Resilience Hub application, returned as an object. This\n object includes Application Component names, descriptions, information about whether a\n recommendation has already been implemented or not, prerequisites, and more.

    ", + "smithy.api#documentation": "

    The alarm recommendations for an Resilience Hub application, returned as an\n object. This object includes Application Component names, descriptions, information about whether a\n recommendation has already been implemented or not, prerequisites, and more.

    ", "smithy.api#required": {} } }, @@ -5179,13 +5705,13 @@ "nextToken": { "target": "com.amazonaws.resiliencehub#NextToken", "traits": { - "smithy.api#documentation": "

    Indicates the unique token number of the next application to be checked for compliance and regulatory requirements from the list of applications.

    " + "smithy.api#documentation": "

    Null, or the token from a previous call to get the next set of results.

    " } }, "maxResults": { "target": "com.amazonaws.resiliencehub#MaxResults", "traits": { - "smithy.api#documentation": "

    Indicates the maximum number of applications requested.

    " + "smithy.api#documentation": "

    Indicates the maximum number of compliance drifts requested.

    " } } }, @@ -5199,14 +5725,14 @@ "complianceDrifts": { "target": "com.amazonaws.resiliencehub#ComplianceDriftList", "traits": { - "smithy.api#documentation": "

    Indicates compliance drifts (recovery time objective (RTO) and recovery point objective (RPO)) detected for an assessed entity.

    ", + "smithy.api#documentation": "

    Indicates compliance drifts (recovery time objective (RTO) and recovery point objective\n (RPO)) detected for an assessed entity.

    ", "smithy.api#required": {} } }, "nextToken": { "target": "com.amazonaws.resiliencehub#NextToken", "traits": { - "smithy.api#documentation": "

    Token number of the next application to be checked for compliance and regulatory requirements from the list of applications.

    " + "smithy.api#documentation": "

    Null, or the token from a previous call to get the next set of results.

    " } } }, @@ -5237,7 +5763,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Indicates the list of resource drifts that were detected while running an assessment.

    ", + "smithy.api#documentation": "

    Indicates the list of resource drifts that were detected while running an\n assessment.

    ", "smithy.api#http": { "method": "POST", "uri": "/list-app-assessment-resource-drifts", @@ -5270,7 +5796,7 @@ "maxResults": { "target": "com.amazonaws.resiliencehub#MaxResults", "traits": { - "smithy.api#documentation": "

    Indicates the maximum number of drift results to include in the response. If more results exist than the specified MaxResults value, a token is included in the response so that the remaining results can be retrieved.

    " + "smithy.api#documentation": "

    Indicates the maximum number of drift results to include in the response. If more results\n exist than the specified MaxResults value, a token is included in the response so\n that the remaining results can be retrieved.

    " } } }, @@ -5325,7 +5851,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Lists the assessments for an Resilience Hub application. You can use request parameters to\n refine the results for the response object.

    ", + "smithy.api#documentation": "

    Lists the assessments for an Resilience Hub application. You can use request\n parameters to refine the results for the response object.

    ", "smithy.api#http": { "method": "GET", "uri": "/list-app-assessments", @@ -5487,7 +6013,7 @@ "componentCompliances": { "target": "com.amazonaws.resiliencehub#ComponentCompliancesList", "traits": { - "smithy.api#documentation": "

    The compliances for an Resilience Hub Application Component, returned as an object. This\n object contains the names of the Application Components, compliances, costs, resiliency scores, outage scores, and\n more.

    ", + "smithy.api#documentation": "

    The compliances for an Resilience Hub Application Component, returned as an object. This\n object contains the names of the Application Components, compliances, costs, resiliency scores,\n outage scores, and more.

    ", "smithy.api#required": {} } }, @@ -5568,7 +6094,7 @@ "componentRecommendations": { "target": "com.amazonaws.resiliencehub#ComponentRecommendationList", "traits": { - "smithy.api#documentation": "

    The recommendations for an Resilience Hub Application Component, returned as an object. This\n object contains the names of the Application Components, configuration recommendations, and recommendation\n statuses.

    ", + "smithy.api#documentation": "

    The recommendations for an Resilience Hub Application Component, returned as an object.\n This object contains the names of the Application Components, configuration recommendations, and\n recommendation statuses.

    ", "smithy.api#required": {} } }, @@ -5606,7 +6132,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Lists all the input sources of the Resilience Hub application. For more information about the\n input sources supported by Resilience Hub, see Discover\n the structure and describe your Resilience Hub application.

    ", + "smithy.api#documentation": "

    Lists all the input sources of the Resilience Hub application. For more\n information about the input sources supported by Resilience Hub, see Discover\n the structure and describe your Resilience Hub application.

    ", "smithy.api#http": { "method": "POST", "uri": "/list-app-input-sources", @@ -5645,7 +6171,7 @@ "maxResults": { "target": "com.amazonaws.resiliencehub#MaxResults", "traits": { - "smithy.api#documentation": "

    Maximum number of input sources to be displayed per Resilience Hub application.

    " + "smithy.api#documentation": "

    Maximum number of input sources to be displayed per Resilience Hub\n application.

    " } } } @@ -6125,21 +6651,21 @@ "fromLastAssessmentTime": { "target": "com.amazonaws.resiliencehub#TimeStamp", "traits": { - "smithy.api#documentation": "

    Indicates the lower limit of the range that is used to filter applications based on their last assessment times.

    ", + "smithy.api#documentation": "

    Indicates the lower limit of the range that is used to filter applications based on their\n last assessment times.

    ", "smithy.api#httpQuery": "fromLastAssessmentTime" } }, "toLastAssessmentTime": { "target": "com.amazonaws.resiliencehub#TimeStamp", "traits": { - "smithy.api#documentation": "

    Indicates the upper limit of the range that is used to filter the applications based on their last assessment times.

    ", + "smithy.api#documentation": "

    Indicates the upper limit of the range that is used to filter the applications based on\n their last assessment times.

    ", "smithy.api#httpQuery": "toLastAssessmentTime" } }, "reverseOrder": { "target": "com.amazonaws.resiliencehub#BooleanOptional", "traits": { - "smithy.api#documentation": "

    The application list is sorted based on the values of lastAppComplianceEvaluationTime field. By default, application list is sorted in ascending order. To sort the appliation list in descending order, set this field to True.

    ", + "smithy.api#documentation": "

    The application list is sorted based on the values of\n lastAppComplianceEvaluationTime field. By default, application list is sorted\n in ascending order. To sort the application list in descending order, set this field to\n True.

    ", "smithy.api#httpQuery": "reverseOrder" } } @@ -6355,6 +6881,97 @@ } } }, + "com.amazonaws.resiliencehub#ListResourceGroupingRecommendations": { + "type": "operation", + "input": { + "target": "com.amazonaws.resiliencehub#ListResourceGroupingRecommendationsRequest" + }, + "output": { + "target": "com.amazonaws.resiliencehub#ListResourceGroupingRecommendationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.resiliencehub#AccessDeniedException" + }, + { + "target": "com.amazonaws.resiliencehub#InternalServerException" + }, + { + "target": "com.amazonaws.resiliencehub#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.resiliencehub#ThrottlingException" + }, + { + "target": "com.amazonaws.resiliencehub#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

    Lists the resource grouping recommendations suggested by Resilience Hub for your application.

    ", + "smithy.api#http": { + "method": "GET", + "uri": "/list-resource-grouping-recommendations", + "code": 200 + }, + "smithy.api#paginated": { + "inputToken": "nextToken", + "outputToken": "nextToken", + "pageSize": "maxResults", + "items": "groupingRecommendations" + }, + "smithy.api#readonly": {} + } + }, + "com.amazonaws.resiliencehub#ListResourceGroupingRecommendationsRequest": { + "type": "structure", + "members": { + "appArn": { + "target": "com.amazonaws.resiliencehub#Arn", + "traits": { + "smithy.api#documentation": "

    Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: \narn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, \nsee \n Amazon Resource Names (ARNs) in the \n Amazon Web Services General Reference guide.

    ", + "smithy.api#httpQuery": "appArn" + } + }, + "nextToken": { + "target": "com.amazonaws.resiliencehub#NextToken", + "traits": { + "smithy.api#documentation": "

    Null, or the token from a previous call to get the next set of results.

    ", + "smithy.api#httpQuery": "nextToken" + } + }, + "maxResults": { + "target": "com.amazonaws.resiliencehub#MaxResults", + "traits": { + "smithy.api#documentation": "

    Maximum number of grouping recommendations to be displayed per Resilience Hub application.

    ", + "smithy.api#httpQuery": "maxResults" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.resiliencehub#ListResourceGroupingRecommendationsResponse": { + "type": "structure", + "members": { + "groupingRecommendations": { + "target": "com.amazonaws.resiliencehub#GroupingRecommendationList", + "traits": { + "smithy.api#documentation": "

    List of resource grouping recommendations generated by Resilience Hub.

    ", + "smithy.api#required": {} + } + }, + "nextToken": { + "target": "com.amazonaws.resiliencehub#NextToken", + "traits": { + "smithy.api#documentation": "

    Null, or the token from a previous call to get the next set of results.

    " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.resiliencehub#ListSopRecommendations": { "type": "operation", "input": { @@ -6384,7 +7001,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Lists the standard operating procedure (SOP) recommendations for the Resilience Hub\n applications.

    ", + "smithy.api#documentation": "

    Lists the standard operating procedure (SOP) recommendations for the Resilience Hub applications.

    ", "smithy.api#http": { "method": "POST", "uri": "/list-sop-recommendations", @@ -6465,7 +7082,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Lists the suggested resiliency policies for the Resilience Hub applications.

    ", + "smithy.api#documentation": "

    Lists the suggested resiliency policies for the Resilience Hub\n applications.

    ", "smithy.api#http": { "method": "GET", "uri": "/list-suggested-resiliency-policies", @@ -6688,7 +7305,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Lists the resources that are not currently supported in Resilience Hub. An unsupported\n resource is a resource that exists in the object that was used to create an app, but is not\n supported by Resilience Hub.

    ", + "smithy.api#documentation": "

    Lists the resources that are not currently supported in Resilience Hub. An\n unsupported resource is a resource that exists in the object that was used to create an app,\n but is not supported by Resilience Hub.

    ", "smithy.api#http": { "method": "POST", "uri": "/list-unsupported-app-version-resources", @@ -7102,7 +7719,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Adds or updates the app template for an Resilience Hub application draft version.

    ", + "smithy.api#documentation": "

    Adds or updates the app template for an Resilience Hub application draft\n version.

    ", "smithy.api#http": { "method": "POST", "uri": "/put-draft-app-version-template", @@ -7170,6 +7787,10 @@ { "value": "MetCanImprove", "name": "MET_CAN_IMPROVE" + }, + { + "value": "MissingPolicy", + "name": "MISSING_POLICY" } ] } @@ -7439,6 +8060,117 @@ } } }, + "com.amazonaws.resiliencehub#RejectGroupingRecommendationEntries": { + "type": "list", + "member": { + "target": "com.amazonaws.resiliencehub#RejectGroupingRecommendationEntry" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 30 + } + } + }, + "com.amazonaws.resiliencehub#RejectGroupingRecommendationEntry": { + "type": "structure", + "members": { + "groupingRecommendationId": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

    Indicates the identifier of the grouping recommendation.

    ", + "smithy.api#required": {} + } + }, + "rejectionReason": { + "target": "com.amazonaws.resiliencehub#GroupingRecommendationRejectionReason", + "traits": { + "smithy.api#documentation": "

    Indicates the reason you had selected while rejecting a grouping recommendation.

    " + } + } + }, + "traits": { + "smithy.api#documentation": "

    Indicates the rejected grouping recommendation.

    " + } + }, + "com.amazonaws.resiliencehub#RejectResourceGroupingRecommendations": { + "type": "operation", + "input": { + "target": "com.amazonaws.resiliencehub#RejectResourceGroupingRecommendationsRequest" + }, + "output": { + "target": "com.amazonaws.resiliencehub#RejectResourceGroupingRecommendationsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.resiliencehub#AccessDeniedException" + }, + { + "target": "com.amazonaws.resiliencehub#InternalServerException" + }, + { + "target": "com.amazonaws.resiliencehub#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.resiliencehub#ThrottlingException" + }, + { + "target": "com.amazonaws.resiliencehub#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

    Rejects resource grouping recommendations.

    ", + "smithy.api#http": { + "method": "POST", + "uri": "/reject-resource-grouping-recommendations", + "code": 200 + } + } + }, + "com.amazonaws.resiliencehub#RejectResourceGroupingRecommendationsRequest": { + "type": "structure", + "members": { + "appArn": { + "target": "com.amazonaws.resiliencehub#Arn", + "traits": { + "smithy.api#documentation": "

    Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: \narn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, \nsee \n Amazon Resource Names (ARNs) in the \n Amazon Web Services General Reference guide.

    ", + "smithy.api#required": {} + } + }, + "entries": { + "target": "com.amazonaws.resiliencehub#RejectGroupingRecommendationEntries", + "traits": { + "smithy.api#documentation": "

    Indicates the list of resource grouping recommendations you have selected to exclude from your application.

    ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.resiliencehub#RejectResourceGroupingRecommendationsResponse": { + "type": "structure", + "members": { + "appArn": { + "target": "com.amazonaws.resiliencehub#Arn", + "traits": { + "smithy.api#documentation": "

    Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: \narn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, \nsee \n Amazon Resource Names (ARNs) in the \n Amazon Web Services General Reference guide.

    ", + "smithy.api#required": {} + } + }, + "failedEntries": { + "target": "com.amazonaws.resiliencehub#FailedGroupingRecommendationEntries", + "traits": { + "smithy.api#documentation": "

    Indicates the list of resource grouping recommendations that failed to get excluded in your application.

    ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.resiliencehub#RemoveDraftAppVersionResourceMappings": { "type": "operation", "input": { @@ -7501,7 +8233,7 @@ "appRegistryAppNames": { "target": "com.amazonaws.resiliencehub#EntityNameList", "traits": { - "smithy.api#documentation": "

    The names of the registered applications you want to remove from the resource mappings.

    " + "smithy.api#documentation": "

    The names of the registered applications you want to remove from the resource\n mappings.

    " } }, "resourceGroupNames": { @@ -7519,7 +8251,7 @@ "eksSourceNames": { "target": "com.amazonaws.resiliencehub#String255List", "traits": { - "smithy.api#documentation": "

    The names of the Amazon Elastic Kubernetes Service clusters and namespaces you want to remove from the resource mappings.

    \n \n

    This parameter accepts values in \"eks-cluster/namespace\" format.

    \n
    " + "smithy.api#documentation": "

    The names of the Amazon Elastic Kubernetes Service clusters and namespaces you want to remove from\n the resource mappings.

    \n \n

    This parameter accepts values in \"eks-cluster/namespace\" format.

    \n
    " } } } @@ -7900,7 +8632,7 @@ "hasMoreErrors": { "target": "com.amazonaws.resiliencehub#BooleanOptional", "traits": { - "smithy.api#documentation": "

    This indicates if there are more errors not listed in the resourceErrors list.

    " + "smithy.api#documentation": "

    This indicates if there are more errors not listed in the\n resourceErrors\n list.

    " } } }, @@ -8136,6 +8868,29 @@ "smithy.api#pattern": ".*" } }, + "com.amazonaws.resiliencehub#ResourcesGroupingRecGenStatusType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "name": "PENDING", + "value": "Pending" + }, + { + "name": "IN_PROGRESS", + "value": "InProgress" + }, + { + "name": "FAILED", + "value": "Failed" + }, + { + "name": "SUCCESS", + "value": "Success" + } + ] + } + }, "com.amazonaws.resiliencehub#RetryAfterSeconds": { "type": "integer" }, @@ -8417,6 +9172,93 @@ } } }, + "com.amazonaws.resiliencehub#StartResourceGroupingRecommendationTask": { + "type": "operation", + "input": { + "target": "com.amazonaws.resiliencehub#StartResourceGroupingRecommendationTaskRequest" + }, + "output": { + "target": "com.amazonaws.resiliencehub#StartResourceGroupingRecommendationTaskResponse" + }, + "errors": [ + { + "target": "com.amazonaws.resiliencehub#AccessDeniedException" + }, + { + "target": "com.amazonaws.resiliencehub#ConflictException" + }, + { + "target": "com.amazonaws.resiliencehub#InternalServerException" + }, + { + "target": "com.amazonaws.resiliencehub#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.resiliencehub#ThrottlingException" + }, + { + "target": "com.amazonaws.resiliencehub#ValidationException" + } + ], + "traits": { + "smithy.api#documentation": "

    Starts grouping recommendation task.

    ", + "smithy.api#http": { + "method": "POST", + "uri": "/start-resource-grouping-recommendation-task", + "code": 200 + } + } + }, + "com.amazonaws.resiliencehub#StartResourceGroupingRecommendationTaskRequest": { + "type": "structure", + "members": { + "appArn": { + "target": "com.amazonaws.resiliencehub#Arn", + "traits": { + "smithy.api#documentation": "

    Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: \narn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, \nsee \n Amazon Resource Names (ARNs) in the \n Amazon Web Services General Reference guide.

    ", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.resiliencehub#StartResourceGroupingRecommendationTaskResponse": { + "type": "structure", + "members": { + "appArn": { + "target": "com.amazonaws.resiliencehub#Arn", + "traits": { + "smithy.api#documentation": "

    Amazon Resource Name (ARN) of the Resilience Hub application. The format for this ARN is: \narn:partition:resiliencehub:region:account:app/app-id. For more information about ARNs, \nsee \n Amazon Resource Names (ARNs) in the \n Amazon Web Services General Reference guide.

    ", + "smithy.api#required": {} + } + }, + "groupingId": { + "target": "com.amazonaws.resiliencehub#String255", + "traits": { + "smithy.api#documentation": "

    Indicates the identifier of the grouping recommendation task.

    ", + "smithy.api#required": {} + } + }, + "status": { + "target": "com.amazonaws.resiliencehub#ResourcesGroupingRecGenStatusType", + "traits": { + "smithy.api#documentation": "

    Status of the action.

    ", + "smithy.api#required": {} + } + }, + "errorMessage": { + "target": "com.amazonaws.resiliencehub#String500", + "traits": { + "smithy.api#documentation": "

    Indicates the error that occurred while executing a grouping recommendation task.

    " + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.resiliencehub#String1024": { "type": "string", "traits": { @@ -8933,7 +9775,7 @@ "assessmentSchedule": { "target": "com.amazonaws.resiliencehub#AppAssessmentScheduleType", "traits": { - "smithy.api#documentation": "

    \n Assessment execution schedule with 'Daily' or 'Disabled' values.\n

    " + "smithy.api#documentation": "

    Assessment execution schedule with 'Daily' or 'Disabled' values.

    " } }, "permissionModel": { @@ -8945,7 +9787,7 @@ "eventSubscriptions": { "target": "com.amazonaws.resiliencehub#EventSubscriptionList", "traits": { - "smithy.api#documentation": "

    The list of events you would like to subscribe and get notification for.\n Currently, Resilience Hub supports notifications only for Drift\n detected and Scheduled assessment failure\n events.

    " + "smithy.api#documentation": "

    The list of events you would like to subscribe and get notification for. Currently,\n Resilience Hub supports notifications only for Drift\n detected and Scheduled assessment failure\n events.

    " } } } @@ -8991,7 +9833,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Updates the Resilience Hub application version.

    \n \n

    This API updates the Resilience Hub application draft version. To use this information\n for running resiliency assessments, you must publish the Resilience Hub application using the\n PublishAppVersion API.

    \n
    ", + "smithy.api#documentation": "

    Updates the Resilience Hub application version.

    \n \n

    This API updates the Resilience Hub application draft version. To use this\n information for running resiliency assessments, you must publish the Resilience Hub\n application using the PublishAppVersion API.

    \n
    ", "smithy.api#http": { "method": "POST", "uri": "/update-app-version", @@ -9028,7 +9870,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Updates an existing Application Component in the Resilience Hub application.

    \n \n

    This API updates the Resilience Hub application draft version. To use this Application Component for running assessments, you must publish the Resilience Hub application using the PublishAppVersion API.

    \n
    ", + "smithy.api#documentation": "

    Updates an existing Application Component in the Resilience Hub application.

    \n \n

    This API updates the Resilience Hub application draft version. To use this\n Application Component for running assessments, you must publish the Resilience Hub\n application using the PublishAppVersion API.

    \n
    ", "smithy.api#http": { "method": "POST", "uri": "/update-app-version-app-component", @@ -9148,7 +9990,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Updates the resource details in the Resilience Hub application.

    \n \n
      \n
    • \n

      This action has no effect outside Resilience Hub.

      \n
    • \n
    • \n

      This API updates the Resilience Hub application draft version. To use this resource for running resiliency assessments, you must publish the Resilience Hub application using the PublishAppVersion API.

      \n
    • \n
    • \n

      To update application version with new physicalResourceID, you must call\n ResolveAppVersionResources API.

      \n
    • \n
    \n
    ", + "smithy.api#documentation": "

    Updates the resource details in the Resilience Hub application.

    \n \n
      \n
    • \n

      This action has no effect outside Resilience Hub.

      \n
    • \n
    • \n

      This API updates the Resilience Hub application draft version. To use this\n resource for running resiliency assessments, you must publish the Resilience Hub\n application using the PublishAppVersion API.

      \n
    • \n
    • \n

      To update application version with new physicalResourceID, you must\n call ResolveAppVersionResources API.

      \n
    • \n
    \n
    ", "smithy.api#http": { "method": "POST", "uri": "/update-app-version-resource", @@ -9217,7 +10059,7 @@ "excluded": { "target": "com.amazonaws.resiliencehub#BooleanOptional", "traits": { - "smithy.api#documentation": "

    Indicates if a resource is excluded from an Resilience Hub application.

    \n \n

    You can exclude only imported resources from an Resilience Hub application.

    \n
    " + "smithy.api#documentation": "

    Indicates if a resource is excluded from an Resilience Hub application.

    \n \n

    You can exclude only imported resources from an Resilience Hub\n application.

    \n
    " } } } @@ -9381,7 +10223,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Updates a resiliency policy.

    \n \n

    Resilience Hub allows you to provide a value of zero for rtoInSecs and\n rpoInSecs of your resiliency policy. But, while assessing your application,\n the lowest possible assessment result is near zero. Hence, if you provide value\n zero for rtoInSecs and rpoInSecs, the estimated workload RTO and\n estimated workload RPO result will be near zero and the Compliance\n status for your application will be set to Policy\n breached.

    \n
    ", + "smithy.api#documentation": "

    Updates a resiliency policy.

    \n \n

    Resilience Hub allows you to provide a value of zero for rtoInSecs\n and rpoInSecs of your resiliency policy. But, while assessing your application,\n the lowest possible assessment result is near zero. Hence, if you provide value zero for\n rtoInSecs and rpoInSecs, the estimated workload RTO and\n estimated workload RPO result will be near zero and the Compliance\n status for your application will be set to Policy\n breached.

    \n
    ", "smithy.api#http": { "method": "POST", "uri": "/update-resiliency-policy",