import { Command as $Command } from "@smithy/smithy-client"; import type { MetadataBearer as __MetadataBearer } from "@smithy/types"; import type { AppStreamClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../AppStreamClient"; import type { DrainSessionInstanceRequest, DrainSessionInstanceResult } from "../models/models_0"; /** * @public */ export type { __MetadataBearer }; export { $Command }; /** * @public * * The input for {@link DrainSessionInstanceCommand}. */ export interface DrainSessionInstanceCommandInput extends DrainSessionInstanceRequest { } /** * @public * * The output of {@link DrainSessionInstanceCommand}. */ export interface DrainSessionInstanceCommandOutput extends DrainSessionInstanceResult, __MetadataBearer { } declare const DrainSessionInstanceCommand_base: { new (input: DrainSessionInstanceCommandInput): import("@smithy/smithy-client").CommandImpl; new (input: DrainSessionInstanceCommandInput): import("@smithy/smithy-client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions; }; /** *

Drains the instance hosting the specified streaming session. The instance stops accepting new sessions while existing sessions continue uninterrupted. Once all sessions end, the instance is reclaimed and replaced. This only applies to multi-session fleets.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { AppStreamClient, DrainSessionInstanceCommand } from "@aws-sdk/client-appstream"; // ES Modules import * // const { AppStreamClient, DrainSessionInstanceCommand } = require("@aws-sdk/client-appstream"); // CommonJS import * // import type { AppStreamClientConfig } from "@aws-sdk/client-appstream"; * const config = {}; // type is AppStreamClientConfig * const client = new AppStreamClient(config); * const input = { // DrainSessionInstanceRequest * SessionId: "STRING_VALUE", // required * }; * const command = new DrainSessionInstanceCommand(input); * const response = await client.send(command); * // {}; * * ``` * * @param DrainSessionInstanceCommandInput - {@link DrainSessionInstanceCommandInput} * @returns {@link DrainSessionInstanceCommandOutput} * @see {@link DrainSessionInstanceCommandInput} for command's `input` shape. * @see {@link DrainSessionInstanceCommandOutput} for command's `response` shape. * @see {@link AppStreamClientResolvedConfig | config} for AppStreamClient's `config` shape. * * @throws {@link ConcurrentModificationException} (client fault) *

An API error occurred. Wait a few minutes and try again.

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

The attempted operation is not permitted.

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

The specified resource was not found.

* * @throws {@link AppStreamServiceException} *

Base exception class for all service exceptions from AppStream service.

* * * @public */ export declare class DrainSessionInstanceCommand extends DrainSessionInstanceCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: DrainSessionInstanceRequest; output: {}; }; sdk: { input: DrainSessionInstanceCommandInput; output: DrainSessionInstanceCommandOutput; }; }; }