import { Command as $Command } from "@smithy/smithy-client"; import type { MetadataBearer as __MetadataBearer } from "@smithy/types"; import type { KinesisVideoClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../KinesisVideoClient"; import type { UpdateDataRetentionInput, UpdateDataRetentionOutput } from "../models/models_0"; /** * @public */ export type { __MetadataBearer }; export { $Command }; /** * @public * * The input for {@link UpdateDataRetentionCommand}. */ export interface UpdateDataRetentionCommandInput extends UpdateDataRetentionInput { } /** * @public * * The output of {@link UpdateDataRetentionCommand}. */ export interface UpdateDataRetentionCommandOutput extends UpdateDataRetentionOutput, __MetadataBearer { } declare const UpdateDataRetentionCommand_base: { new (input: UpdateDataRetentionCommandInput): import("@smithy/smithy-client").CommandImpl; new (input: UpdateDataRetentionCommandInput): import("@smithy/smithy-client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/middleware-endpoint").EndpointParameterInstructions; }; /** *

Increases or decreases the stream's data retention period by the value that you * specify. To indicate whether you want to increase or decrease the data retention period, * specify the Operation parameter in the request body. In the request, you * must specify either the StreamName or the StreamARN.

*

This operation requires permission for the * KinesisVideo:UpdateDataRetention action.

*

Changing the data retention period affects the data in the stream as * follows:

* * @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { KinesisVideoClient, UpdateDataRetentionCommand } from "@aws-sdk/client-kinesis-video"; // ES Modules import * // const { KinesisVideoClient, UpdateDataRetentionCommand } = require("@aws-sdk/client-kinesis-video"); // CommonJS import * // import type { KinesisVideoClientConfig } from "@aws-sdk/client-kinesis-video"; * const config = {}; // type is KinesisVideoClientConfig * const client = new KinesisVideoClient(config); * const input = { // UpdateDataRetentionInput * StreamName: "STRING_VALUE", * StreamARN: "STRING_VALUE", * CurrentVersion: "STRING_VALUE", // required * Operation: "INCREASE_DATA_RETENTION" || "DECREASE_DATA_RETENTION", // required * DataRetentionChangeInHours: Number("int"), // required * }; * const command = new UpdateDataRetentionCommand(input); * const response = await client.send(command); * // {}; * * ``` * * @param UpdateDataRetentionCommandInput - {@link UpdateDataRetentionCommandInput} * @returns {@link UpdateDataRetentionCommandOutput} * @see {@link UpdateDataRetentionCommandInput} for command's `input` shape. * @see {@link UpdateDataRetentionCommandOutput} for command's `response` shape. * @see {@link KinesisVideoClientResolvedConfig | config} for KinesisVideoClient's `config` shape. * * @throws {@link ClientLimitExceededException} (client fault) *

Kinesis Video Streams has throttled the request because you have exceeded the limit of * allowed client calls. Try making the call later.

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

The value for this input parameter is invalid.

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

The caller is not authorized to perform this operation.

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

When the input StreamARN or ChannelARN * in CLOUD_STORAGE_MODE is already mapped to a different * Kinesis Video Stream resource, or if the provided input StreamARN * or ChannelARN is not in Active status, try one of the following :

*
    *
  1. *

    The DescribeMediaStorageConfiguration API to determine what the stream given channel is mapped to. *

    *
  2. *
  3. *

    The DescribeMappedResourceConfiguration API to determine the channel that the given stream is mapped to. *

    *
  4. *
  5. *

    The DescribeStream or DescribeSignalingChannel API to determine the status of the resource. *

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

Amazon Kinesis Video Streams can't find the stream that you specified.

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

The stream version that you specified is not the latest version. To get the latest * version, use the DescribeStream * API.

* * @throws {@link KinesisVideoServiceException} *

Base exception class for all service exceptions from KinesisVideo service.

* * * @public */ export declare class UpdateDataRetentionCommand extends UpdateDataRetentionCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: UpdateDataRetentionInput; output: {}; }; sdk: { input: UpdateDataRetentionCommandInput; output: UpdateDataRetentionCommandOutput; }; }; }