import { Command as $Command } from "@smithy/smithy-client"; import type { MetadataBearer as __MetadataBearer } from "@smithy/types"; import type { ElastiCacheClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../ElastiCacheClient"; import type { PurchaseReservedCacheNodesOfferingMessage, PurchaseReservedCacheNodesOfferingResult } from "../models/models_0"; /** * @public */ export type { __MetadataBearer }; export { $Command }; /** * @public * * The input for {@link PurchaseReservedCacheNodesOfferingCommand}. */ export interface PurchaseReservedCacheNodesOfferingCommandInput extends PurchaseReservedCacheNodesOfferingMessage { } /** * @public * * The output of {@link PurchaseReservedCacheNodesOfferingCommand}. */ export interface PurchaseReservedCacheNodesOfferingCommandOutput extends PurchaseReservedCacheNodesOfferingResult, __MetadataBearer { } declare const PurchaseReservedCacheNodesOfferingCommand_base: { new (input: PurchaseReservedCacheNodesOfferingCommandInput): import("@smithy/smithy-client").CommandImpl; new (input: PurchaseReservedCacheNodesOfferingCommandInput): import("@smithy/smithy-client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions; }; /** *

Allows you to purchase a reserved cache node offering. Reserved nodes are not eligible * for cancellation and are non-refundable. For more information, see Managing Costs with Reserved Nodes.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { ElastiCacheClient, PurchaseReservedCacheNodesOfferingCommand } from "@aws-sdk/client-elasticache"; // ES Modules import * // const { ElastiCacheClient, PurchaseReservedCacheNodesOfferingCommand } = require("@aws-sdk/client-elasticache"); // CommonJS import * // import type { ElastiCacheClientConfig } from "@aws-sdk/client-elasticache"; * const config = {}; // type is ElastiCacheClientConfig * const client = new ElastiCacheClient(config); * const input = { // PurchaseReservedCacheNodesOfferingMessage * ReservedCacheNodesOfferingId: "STRING_VALUE", // required * ReservedCacheNodeId: "STRING_VALUE", * CacheNodeCount: Number("int"), * Tags: [ // TagList * { // Tag * Key: "STRING_VALUE", * Value: "STRING_VALUE", * }, * ], * }; * const command = new PurchaseReservedCacheNodesOfferingCommand(input); * const response = await client.send(command); * // { // PurchaseReservedCacheNodesOfferingResult * // ReservedCacheNode: { // ReservedCacheNode * // ReservedCacheNodeId: "STRING_VALUE", * // ReservedCacheNodesOfferingId: "STRING_VALUE", * // CacheNodeType: "STRING_VALUE", * // StartTime: new Date("TIMESTAMP"), * // Duration: Number("int"), * // FixedPrice: Number("double"), * // UsagePrice: Number("double"), * // CacheNodeCount: Number("int"), * // ProductDescription: "STRING_VALUE", * // OfferingType: "STRING_VALUE", * // State: "STRING_VALUE", * // RecurringCharges: [ // RecurringChargeList * // { // RecurringCharge * // RecurringChargeAmount: Number("double"), * // RecurringChargeFrequency: "STRING_VALUE", * // }, * // ], * // ReservationARN: "STRING_VALUE", * // }, * // }; * * ``` * * @param PurchaseReservedCacheNodesOfferingCommandInput - {@link PurchaseReservedCacheNodesOfferingCommandInput} * @returns {@link PurchaseReservedCacheNodesOfferingCommandOutput} * @see {@link PurchaseReservedCacheNodesOfferingCommandInput} for command's `input` shape. * @see {@link PurchaseReservedCacheNodesOfferingCommandOutput} for command's `response` shape. * @see {@link ElastiCacheClientResolvedConfig | config} for ElastiCacheClient's `config` shape. * * @throws {@link InvalidParameterCombinationException} (client fault) *

Two or more incompatible parameters were specified.

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

The value for a parameter is invalid.

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

You already have a reservation with the given identifier.

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

The request cannot be processed because it would exceed the user's cache node * quota.

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

The requested cache node offering does not exist.

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

The request cannot be processed because it would cause the resource to have more than * the allowed number of tags. The maximum number of tags permitted on a resource is * 50.

* * @throws {@link ElastiCacheServiceException} *

Base exception class for all service exceptions from ElastiCache service.

* * * @example PurchaseReservedCacheNodesOfferings * ```javascript * // Allows you to purchase a reserved cache node offering. * const input = { * ReservedCacheNodesOfferingId: "1ef01f5b-94ff-433f-a530-61a56bfc8e7a" * }; * const command = new PurchaseReservedCacheNodesOfferingCommand(input); * const response = await client.send(command); * /* response is * { /* metadata only *\/ } * *\/ * ``` * * @public */ export declare class PurchaseReservedCacheNodesOfferingCommand extends PurchaseReservedCacheNodesOfferingCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: PurchaseReservedCacheNodesOfferingMessage; output: PurchaseReservedCacheNodesOfferingResult; }; sdk: { input: PurchaseReservedCacheNodesOfferingCommandInput; output: PurchaseReservedCacheNodesOfferingCommandOutput; }; }; }