import type { MetadataBearer as __MetadataBearer } from "@smithy/types"; import type { PutWarmPoolAnswer, PutWarmPoolType } from "../models/models_0"; /** * @public */ export type { __MetadataBearer }; /** * @public * * The input for {@link PutWarmPoolCommand}. */ export interface PutWarmPoolCommandInput extends PutWarmPoolType { } /** * @public * * The output of {@link PutWarmPoolCommand}. */ export interface PutWarmPoolCommandOutput extends PutWarmPoolAnswer, __MetadataBearer { } declare const PutWarmPoolCommand_base: { new (input: PutWarmPoolCommandInput): import("@smithy/core/client").CommandImpl; new (input: PutWarmPoolCommandInput): import("@smithy/core/client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/types").EndpointParameterInstructions; }; /** *

Creates or updates a warm pool for the specified Auto Scaling group. A warm pool is a pool of * pre-initialized EC2 instances that sits alongside the Auto Scaling group. Whenever your * application needs to scale out, the Auto Scaling group can draw on the warm pool to meet its new * desired capacity.

*

This operation must be called from the Region in which the Auto Scaling group was * created.

*

You can view the instances in the warm pool using the DescribeWarmPool API call. * If you are no longer using a warm pool, you can delete it by calling the DeleteWarmPool API.

*

For more information, see Warm pools for * Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { AutoScalingClient, PutWarmPoolCommand } from "@aws-sdk/client-auto-scaling"; // ES Modules import * // const { AutoScalingClient, PutWarmPoolCommand } = require("@aws-sdk/client-auto-scaling"); // CommonJS import * // import type { AutoScalingClientConfig } from "@aws-sdk/client-auto-scaling"; * const config = {}; // type is AutoScalingClientConfig * const client = new AutoScalingClient(config); * const input = { // PutWarmPoolType * AutoScalingGroupName: "STRING_VALUE", // required * MaxGroupPreparedCapacity: Number("int"), * MinSize: Number("int"), * PoolState: "Stopped" || "Running" || "Hibernated", * InstanceReusePolicy: { // InstanceReusePolicy * ReuseOnScaleIn: true || false, * }, * }; * const command = new PutWarmPoolCommand(input); * const response = await client.send(command); * // {}; * * ``` * * @param PutWarmPoolCommandInput - {@link PutWarmPoolCommandInput} * @returns {@link PutWarmPoolCommandOutput} * @see {@link PutWarmPoolCommandInput} for command's `input` shape. * @see {@link PutWarmPoolCommandOutput} for command's `response` shape. * @see {@link AutoScalingClientResolvedConfig | config} for AutoScalingClient's `config` shape. * * @throws {@link InstanceRefreshInProgressFault} (client fault) *

The request failed because an active instance refresh already exists for the specified * Auto Scaling group.

* * @throws {@link LimitExceededFault} (client fault) *

You have already reached a limit for your Amazon EC2 Auto Scaling * resources (for example, Auto Scaling groups, launch configurations, or lifecycle hooks). For * more information, see DescribeAccountLimits in the Amazon EC2 Auto Scaling API * Reference.

* * @throws {@link ResourceContentionFault} (server fault) *

You already have a pending update to an Amazon EC2 Auto Scaling resource (for example, an Auto Scaling group, * instance, or load balancer).

* * @throws {@link AutoScalingServiceException} *

Base exception class for all service exceptions from AutoScaling service.

* * * @example To create a warm pool for an Auto Scaling group * ```javascript * // This example creates a warm pool for the specified Auto Scaling group. * const input = { * AutoScalingGroupName: "my-auto-scaling-group", * InstanceReusePolicy: { * ReuseOnScaleIn: true * }, * MinSize: 30, * PoolState: "Hibernated" * }; * const command = new PutWarmPoolCommand(input); * const response = await client.send(command); * /* response is * { /* metadata only *\/ } * *\/ * ``` * * @public */ export declare class PutWarmPoolCommand extends PutWarmPoolCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: PutWarmPoolType; output: {}; }; sdk: { input: PutWarmPoolCommandInput; output: PutWarmPoolCommandOutput; }; }; }