import { Command as $Command } from "@smithy/smithy-client"; import type { MetadataBearer as __MetadataBearer } from "@smithy/types"; import type { KinesisClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../KinesisClient"; import type { UpdateShardCountInput, UpdateShardCountOutput } from "../models/models_0"; /** * @public */ export type { __MetadataBearer }; export { $Command }; /** * @public * * The input for {@link UpdateShardCountCommand}. */ export interface UpdateShardCountCommandInput extends UpdateShardCountInput { } /** * @public * * The output of {@link UpdateShardCountCommand}. */ export interface UpdateShardCountCommandOutput extends UpdateShardCountOutput, __MetadataBearer { } declare const UpdateShardCountCommand_base: { new (input: UpdateShardCountCommandInput): import("@smithy/smithy-client").CommandImpl; new (input: UpdateShardCountCommandInput): import("@smithy/smithy-client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions; }; /** *

Updates the shard count of the specified stream to the specified number of shards. * This API is only supported for the data streams with the provisioned capacity * mode.

* *

When invoking this API, you must use either the StreamARN or the * StreamName parameter, or both. It is recommended that you use the * StreamARN input parameter when you invoke this API.

*
*

Updating the shard count is an asynchronous operation. Upon receiving the request, * Kinesis Data Streams returns immediately and sets the status of the stream to * UPDATING. After the update is complete, Kinesis Data Streams sets the * status of the stream back to ACTIVE. Depending on the size of the stream, * the scaling action could take a few minutes to complete. You can continue to read and * write data to your stream while its status is UPDATING.

*

To update the shard count, Kinesis Data Streams performs splits or merges on * individual shards. This can cause short-lived shards to be created, in addition to the * final shards. These short-lived shards count towards your total shard limit for your * account in the Region.

*

When using this operation, we recommend that you specify a target shard count that is * a multiple of 25% (25%, 50%, 75%, 100%). You can specify any target value within your * shard limit. However, if you specify a target that isn't a multiple of 25%, the scaling * action might take longer to complete.

*

This operation has the following default limits. By default, you cannot do the * following:

* *

For the default limits for an Amazon Web Services account, see Streams * Limits in the Amazon Kinesis Data Streams Developer * Guide. To request an increase in the call rate limit, the shard limit for * this API, or your overall shard limit, use the limits form.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { KinesisClient, UpdateShardCountCommand } from "@aws-sdk/client-kinesis"; // ES Modules import * // const { KinesisClient, UpdateShardCountCommand } = require("@aws-sdk/client-kinesis"); // CommonJS import * // import type { KinesisClientConfig } from "@aws-sdk/client-kinesis"; * const config = {}; // type is KinesisClientConfig * const client = new KinesisClient(config); * const input = { // UpdateShardCountInput * StreamName: "STRING_VALUE", * TargetShardCount: Number("int"), // required * ScalingType: "UNIFORM_SCALING", // required * StreamARN: "STRING_VALUE", * StreamId: "STRING_VALUE", * }; * const command = new UpdateShardCountCommand(input); * const response = await client.send(command); * // { // UpdateShardCountOutput * // StreamName: "STRING_VALUE", * // CurrentShardCount: Number("int"), * // TargetShardCount: Number("int"), * // StreamARN: "STRING_VALUE", * // }; * * ``` * * @param UpdateShardCountCommandInput - {@link UpdateShardCountCommandInput} * @returns {@link UpdateShardCountCommandOutput} * @see {@link UpdateShardCountCommandInput} for command's `input` shape. * @see {@link UpdateShardCountCommandOutput} for command's `response` shape. * @see {@link KinesisClientResolvedConfig | config} for KinesisClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) *

Specifies that you do not have the permissions required to perform this * operation.

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

A specified parameter exceeds its restrictions, is not supported, or can't be used. * For more information, see the returned message.

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

The requested resource exceeds the maximum number allowed, or the number of concurrent * stream requests exceeds the maximum number allowed.

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

The resource is not available for this operation. For successful operation, the * resource must be in the ACTIVE state.

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

The requested resource could not be found. The stream might not be specified * correctly.

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

Specifies that you tried to invoke this API for a data stream with the on-demand * capacity mode. This API is only supported for data streams with the provisioned capacity * mode.

* * @throws {@link KinesisServiceException} *

Base exception class for all service exceptions from Kinesis service.

* * * @public */ export declare class UpdateShardCountCommand extends UpdateShardCountCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: UpdateShardCountInput; output: UpdateShardCountOutput; }; sdk: { input: UpdateShardCountCommandInput; output: UpdateShardCountCommandOutput; }; }; }