import type { MetadataBearer as __MetadataBearer } from "@smithy/types"; import type { CreateAppRequest, CreateAppResponse } from "../models/models_0"; /** * @public */ export type { __MetadataBearer }; /** * @public * * The input for {@link CreateAppCommand}. */ export interface CreateAppCommandInput extends CreateAppRequest { } /** * @public * * The output of {@link CreateAppCommand}. */ export interface CreateAppCommandOutput extends CreateAppResponse, __MetadataBearer { } declare const CreateAppCommand_base: { new (input: CreateAppCommandInput): import("@smithy/core/client").CommandImpl; new (input: CreateAppCommandInput): import("@smithy/core/client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/types").EndpointParameterInstructions; }; /** *

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 * 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 * (RPO).

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { ResiliencehubClient, CreateAppCommand } from "@aws-sdk/client-resiliencehub"; // ES Modules import * // const { ResiliencehubClient, CreateAppCommand } = require("@aws-sdk/client-resiliencehub"); // CommonJS import * // import type { ResiliencehubClientConfig } from "@aws-sdk/client-resiliencehub"; * const config = {}; // type is ResiliencehubClientConfig * const client = new ResiliencehubClient(config); * const input = { // CreateAppRequest * name: "STRING_VALUE", // required * description: "STRING_VALUE", * policyArn: "STRING_VALUE", * tags: { // TagMap * "": "STRING_VALUE", * }, * clientToken: "STRING_VALUE", * assessmentSchedule: "Disabled" || "Daily", * permissionModel: { // PermissionModel * type: "LegacyIAMUser" || "RoleBased", // required * invokerRoleName: "STRING_VALUE", * crossAccountRoleArns: [ // IamRoleArnList * "STRING_VALUE", * ], * }, * eventSubscriptions: [ // EventSubscriptionList * { // EventSubscription * name: "STRING_VALUE", // required * eventType: "ScheduledAssessmentFailure" || "DriftDetected", // required * snsTopicArn: "STRING_VALUE", * }, * ], * awsApplicationArn: "STRING_VALUE", * }; * const command = new CreateAppCommand(input); * const response = await client.send(command); * // { // CreateAppResponse * // app: { // App * // appArn: "STRING_VALUE", // required * // name: "STRING_VALUE", // required * // description: "STRING_VALUE", * // policyArn: "STRING_VALUE", * // creationTime: new Date("TIMESTAMP"), // required * // status: "Active" || "Deleting", * // complianceStatus: "PolicyBreached" || "PolicyMet" || "NotAssessed" || "ChangesDetected" || "NotApplicable" || "MissingPolicy", * // lastAppComplianceEvaluationTime: new Date("TIMESTAMP"), * // resiliencyScore: Number("double"), * // lastResiliencyScoreEvaluationTime: new Date("TIMESTAMP"), * // tags: { // TagMap * // "": "STRING_VALUE", * // }, * // assessmentSchedule: "Disabled" || "Daily", * // permissionModel: { // PermissionModel * // type: "LegacyIAMUser" || "RoleBased", // required * // invokerRoleName: "STRING_VALUE", * // crossAccountRoleArns: [ // IamRoleArnList * // "STRING_VALUE", * // ], * // }, * // eventSubscriptions: [ // EventSubscriptionList * // { // EventSubscription * // name: "STRING_VALUE", // required * // eventType: "ScheduledAssessmentFailure" || "DriftDetected", // required * // snsTopicArn: "STRING_VALUE", * // }, * // ], * // driftStatus: "NotChecked" || "NotDetected" || "Detected", * // lastDriftEvaluationTime: new Date("TIMESTAMP"), * // rtoInSecs: Number("int"), * // rpoInSecs: Number("int"), * // awsApplicationArn: "STRING_VALUE", * // }, * // }; * * ``` * * @param CreateAppCommandInput - {@link CreateAppCommandInput} * @returns {@link CreateAppCommandOutput} * @see {@link CreateAppCommandInput} for command's `input` shape. * @see {@link CreateAppCommandOutput} 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 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.

* * @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 declare class CreateAppCommand extends CreateAppCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: CreateAppRequest; output: CreateAppResponse; }; sdk: { input: CreateAppCommandInput; output: CreateAppCommandOutput; }; }; }