import type { MetadataBearer as __MetadataBearer } from "@smithy/types"; import type { RotateTunnelAccessTokenRequest, RotateTunnelAccessTokenResponse } from "../models/models_0"; /** * @public */ export type { __MetadataBearer }; /** * @public * * The input for {@link RotateTunnelAccessTokenCommand}. */ export interface RotateTunnelAccessTokenCommandInput extends RotateTunnelAccessTokenRequest { } /** * @public * * The output of {@link RotateTunnelAccessTokenCommand}. */ export interface RotateTunnelAccessTokenCommandOutput extends RotateTunnelAccessTokenResponse, __MetadataBearer { } declare const RotateTunnelAccessTokenCommand_base: { new (input: RotateTunnelAccessTokenCommandInput): import("@smithy/core/client").CommandImpl; new (input: RotateTunnelAccessTokenCommandInput): import("@smithy/core/client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/types").EndpointParameterInstructions; }; /** *

Revokes the current client access token (CAT) and returns new CAT for clients to * use when reconnecting to secure tunneling to access the same tunnel.

*

Requires permission to access the RotateTunnelAccessToken action.

* *

Rotating the CAT doesn't extend the tunnel duration. For example, say the tunnel * duration is 12 hours and the tunnel has already been open for 4 hours. When you * rotate the access tokens, the new tokens that are generated can only be used for the * remaining 8 hours.

*
* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { IoTSecureTunnelingClient, RotateTunnelAccessTokenCommand } from "@aws-sdk/client-iotsecuretunneling"; // ES Modules import * // const { IoTSecureTunnelingClient, RotateTunnelAccessTokenCommand } = require("@aws-sdk/client-iotsecuretunneling"); // CommonJS import * // import type { IoTSecureTunnelingClientConfig } from "@aws-sdk/client-iotsecuretunneling"; * const config = {}; // type is IoTSecureTunnelingClientConfig * const client = new IoTSecureTunnelingClient(config); * const input = { // RotateTunnelAccessTokenRequest * tunnelId: "STRING_VALUE", // required * clientMode: "SOURCE" || "DESTINATION" || "ALL", // required * destinationConfig: { // DestinationConfig * thingName: "STRING_VALUE", * services: [ // ServiceList // required * "STRING_VALUE", * ], * }, * }; * const command = new RotateTunnelAccessTokenCommand(input); * const response = await client.send(command); * // { // RotateTunnelAccessTokenResponse * // tunnelArn: "STRING_VALUE", * // sourceAccessToken: "STRING_VALUE", * // destinationAccessToken: "STRING_VALUE", * // }; * * ``` * * @param RotateTunnelAccessTokenCommandInput - {@link RotateTunnelAccessTokenCommandInput} * @returns {@link RotateTunnelAccessTokenCommandOutput} * @see {@link RotateTunnelAccessTokenCommandInput} for command's `input` shape. * @see {@link RotateTunnelAccessTokenCommandOutput} for command's `response` shape. * @see {@link IoTSecureTunnelingClientResolvedConfig | config} for IoTSecureTunnelingClient's `config` shape. * * @throws {@link ResourceNotFoundException} (client fault) *

Thrown when an operation is attempted on a resource that does not exist.

* * @throws {@link IoTSecureTunnelingServiceException} *

Base exception class for all service exceptions from IoTSecureTunneling service.

* * * @public */ export declare class RotateTunnelAccessTokenCommand extends RotateTunnelAccessTokenCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: RotateTunnelAccessTokenRequest; output: RotateTunnelAccessTokenResponse; }; sdk: { input: RotateTunnelAccessTokenCommandInput; output: RotateTunnelAccessTokenCommandOutput; }; }; }