/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.kinesisvideo; import javax.annotation.Generated; import com.amazonaws.*; import com.amazonaws.regions.*; import com.amazonaws.services.kinesisvideo.model.*; /** * Interface for accessing Kinesis Video. *

* Note: Do not directly implement this interface, new methods are added to it regularly. Extend from * {@link com.amazonaws.services.kinesisvideo.AbstractAmazonKinesisVideo} instead. *

*

*

*/ @Generated("com.amazonaws:aws-java-sdk-code-generator") public interface AmazonKinesisVideo { /** * The region metadata service name for computing region endpoints. You can use this value to retrieve metadata * (such as supported regions) of the service. * * @see RegionUtils#getRegionsForService(String) */ String ENDPOINT_PREFIX = "kinesisvideo"; /** *

* Creates a signaling channel. *

*

* CreateSignalingChannel is an asynchronous operation. *

* * @param createSignalingChannelRequest * @return Result of the CreateSignalingChannel operation returned by the service. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws AccountChannelLimitExceededException * You have reached the maximum limit of active signaling channels for this Amazon Web Services account in * this region. * @throws ResourceInUseException * 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 AccessDeniedException * You do not have required permissions to perform this operation. * @throws TagsPerResourceExceededLimitException * You have exceeded the limit of tags that you can associate with the resource. A Kinesis video stream can * support up to 50 tags. * @sample AmazonKinesisVideo.CreateSignalingChannel * @see AWS API Documentation */ CreateSignalingChannelResult createSignalingChannel(CreateSignalingChannelRequest createSignalingChannelRequest); /** *

    * Creates a new Kinesis video stream. *

    *

    * When you create a new stream, Kinesis Video Streams assigns it a version number. When you change the stream's * metadata, Kinesis Video Streams updates the version. *

    *

    * CreateStream is an asynchronous operation. *

    *

    * For information about how the service works, see How it Works. *

    *

    * You must have permissions for the KinesisVideo:CreateStream action. *

    * * @param createStreamRequest * @return Result of the CreateStream operation returned by the service. * @throws AccountStreamLimitExceededException * The number of streams created for the account is too high. * @throws DeviceStreamLimitExceededException * Not implemented. * @throws ResourceInUseException * 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 InvalidDeviceException * Not implemented. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws TagsPerResourceExceededLimitException * You have exceeded the limit of tags that you can associate with the resource. A Kinesis video stream can * support up to 50 tags. * @sample AmazonKinesisVideo.CreateStream * @see AWS API * Documentation */ CreateStreamResult createStream(CreateStreamRequest createStreamRequest); /** *

      * An asynchronous API that deletes a stream’s existing edge configuration, as well as the corresponding media from * the Edge Agent. *

      *

      * When you invoke this API, the sync status is set to DELETING. A deletion process starts, in which * active edge jobs are stopped and all media is deleted from the edge device. The time to delete varies, depending * on the total amount of stored media. If the deletion process fails, the sync status changes to * DELETE_FAILED. You will need to re-try the deletion. *

      *

      * When the deletion process has completed successfully, the edge configuration is no longer accessible. *

      * * @param deleteEdgeConfigurationRequest * @return Result of the DeleteEdgeConfiguration operation returned by the service. * @throws AccessDeniedException * You do not have required permissions to perform this operation. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws StreamEdgeConfigurationNotFoundException * The Exception rendered when the Amazon Kinesis Video Stream can't find a stream's edge configuration that * you specified. * @sample AmazonKinesisVideo.DeleteEdgeConfiguration * @see AWS API Documentation */ DeleteEdgeConfigurationResult deleteEdgeConfiguration(DeleteEdgeConfigurationRequest deleteEdgeConfigurationRequest); /** *

      * Deletes a specified signaling channel. DeleteSignalingChannel is an asynchronous operation. If you * don't specify the channel's current version, the most recent version is deleted. *

      * * @param deleteSignalingChannelRequest * @return Result of the DeleteSignalingChannel operation returned by the service. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws AccessDeniedException * You do not have required permissions to perform this operation. * @throws VersionMismatchException * The stream version that you specified is not the latest version. To get the latest version, use the DescribeStream * API. * @throws ResourceInUseException * 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. * @sample AmazonKinesisVideo.DeleteSignalingChannel * @see AWS API Documentation */ DeleteSignalingChannelResult deleteSignalingChannel(DeleteSignalingChannelRequest deleteSignalingChannelRequest); /** *

        * Deletes a Kinesis video stream and the data contained in the stream. *

        *

        * This method marks the stream for deletion, and makes the data in the stream inaccessible immediately. *

        *

        *

        *

        * To ensure that you have the latest version of the stream before deleting it, you can specify the stream version. * Kinesis Video Streams assigns a version to each stream. When you update a stream, Kinesis Video Streams assigns a * new version number. To get the latest stream version, use the DescribeStream API. *

        *

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

        * * @param deleteStreamRequest * @return Result of the DeleteStream operation returned by the service. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws NotAuthorizedException * The caller is not authorized to perform this operation. * @throws VersionMismatchException * The stream version that you specified is not the latest version. To get the latest version, use the DescribeStream * API. * @throws ResourceInUseException * 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. * @sample AmazonKinesisVideo.DeleteStream * @see AWS API * Documentation */ DeleteStreamResult deleteStream(DeleteStreamRequest deleteStreamRequest); /** *

          * Describes a stream’s edge configuration that was set using the StartEdgeConfigurationUpdate API and * the latest status of the edge agent's recorder and uploader jobs. Use this API to get the status of the * configuration to determine if the configuration is in sync with the Edge Agent. Use this API to evaluate the * health of the Edge Agent. *

          * * @param describeEdgeConfigurationRequest * @return Result of the DescribeEdgeConfiguration operation returned by the service. * @throws AccessDeniedException * You do not have required permissions to perform this operation. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws StreamEdgeConfigurationNotFoundException * The Exception rendered when the Amazon Kinesis Video Stream can't find a stream's edge configuration that * you specified. * @sample AmazonKinesisVideo.DescribeEdgeConfiguration * @see AWS API Documentation */ DescribeEdgeConfigurationResult describeEdgeConfiguration(DescribeEdgeConfigurationRequest describeEdgeConfigurationRequest); /** *

          * Gets the ImageGenerationConfiguration for a given Kinesis video stream. *

          * * @param describeImageGenerationConfigurationRequest * @return Result of the DescribeImageGenerationConfiguration operation returned by the service. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws AccessDeniedException * You do not have required permissions to perform this operation. * @sample AmazonKinesisVideo.DescribeImageGenerationConfiguration * @see AWS API Documentation */ DescribeImageGenerationConfigurationResult describeImageGenerationConfiguration( DescribeImageGenerationConfigurationRequest describeImageGenerationConfigurationRequest); /** *

          * Returns the most current information about the stream. The streamName or streamARN * should be provided in the input. *

          * * @param describeMappedResourceConfigurationRequest * @return Result of the DescribeMappedResourceConfiguration operation returned by the service. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws AccessDeniedException * You do not have required permissions to perform this operation. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @sample AmazonKinesisVideo.DescribeMappedResourceConfiguration * @see AWS API Documentation */ DescribeMappedResourceConfigurationResult describeMappedResourceConfiguration( DescribeMappedResourceConfigurationRequest describeMappedResourceConfigurationRequest); /** *

          * Returns the most current information about the channel. Specify the ChannelName or * ChannelARN in the input. *

          * * @param describeMediaStorageConfigurationRequest * @return Result of the DescribeMediaStorageConfiguration operation returned by the service. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws AccessDeniedException * You do not have required permissions to perform this operation. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @sample AmazonKinesisVideo.DescribeMediaStorageConfiguration * @see AWS API Documentation */ DescribeMediaStorageConfigurationResult describeMediaStorageConfiguration(DescribeMediaStorageConfigurationRequest describeMediaStorageConfigurationRequest); /** *

          * Gets the NotificationConfiguration for a given Kinesis video stream. *

          * * @param describeNotificationConfigurationRequest * @return Result of the DescribeNotificationConfiguration operation returned by the service. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws AccessDeniedException * You do not have required permissions to perform this operation. * @sample AmazonKinesisVideo.DescribeNotificationConfiguration * @see AWS API Documentation */ DescribeNotificationConfigurationResult describeNotificationConfiguration(DescribeNotificationConfigurationRequest describeNotificationConfigurationRequest); /** *

          * Returns the most current information about the signaling channel. You must specify either the name or the Amazon * Resource Name (ARN) of the channel that you want to describe. *

          * * @param describeSignalingChannelRequest * @return Result of the DescribeSignalingChannel operation returned by the service. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws AccessDeniedException * You do not have required permissions to perform this operation. * @sample AmazonKinesisVideo.DescribeSignalingChannel * @see AWS API Documentation */ DescribeSignalingChannelResult describeSignalingChannel(DescribeSignalingChannelRequest describeSignalingChannelRequest); /** *

          * Returns the most current information about the specified stream. You must specify either the * StreamName or the StreamARN. *

          * * @param describeStreamRequest * @return Result of the DescribeStream operation returned by the service. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws NotAuthorizedException * The caller is not authorized to perform this operation. * @sample AmazonKinesisVideo.DescribeStream * @see AWS * API Documentation */ DescribeStreamResult describeStream(DescribeStreamRequest describeStreamRequest); /** *

          * Gets an endpoint for a specified stream for either reading or writing. Use this endpoint in your application to * read from the specified stream (using the GetMedia or GetMediaForFragmentList * operations) or write to it (using the PutMedia operation). *

          * *

          * The returned endpoint does not have the API name appended. The client needs to add the API name to the returned * endpoint. *

          *
          *

          * In the request, specify the stream either by StreamName or StreamARN. *

          * * @param getDataEndpointRequest * @return Result of the GetDataEndpoint operation returned by the service. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws NotAuthorizedException * The caller is not authorized to perform this operation. * @sample AmazonKinesisVideo.GetDataEndpoint * @see AWS * API Documentation */ GetDataEndpointResult getDataEndpoint(GetDataEndpointRequest getDataEndpointRequest); /** *

          * Provides an endpoint for the specified signaling channel to send and receive messages. This API uses the * SingleMasterChannelEndpointConfiguration input parameter, which consists of the * Protocols and Role properties. *

          *

          * Protocols is used to determine the communication mechanism. For example, if you specify * WSS as the protocol, this API produces a secure websocket endpoint. If you specify * HTTPS as the protocol, this API generates an HTTPS endpoint. *

          *

          * Role determines the messaging permissions. A MASTER role results in this API generating * an endpoint that a client can use to communicate with any of the viewers on the channel. A VIEWER * role results in this API generating an endpoint that a client can use to communicate only with a * MASTER. *

          * * @param getSignalingChannelEndpointRequest * @return Result of the GetSignalingChannelEndpoint operation returned by the service. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws ResourceInUseException * 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 AccessDeniedException * You do not have required permissions to perform this operation. * @sample AmazonKinesisVideo.GetSignalingChannelEndpoint * @see AWS API Documentation */ GetSignalingChannelEndpointResult getSignalingChannelEndpoint(GetSignalingChannelEndpointRequest getSignalingChannelEndpointRequest); /** *

            * Returns an array of edge configurations associated with the specified Edge Agent. *

            *

            * In the request, you must specify the Edge Agent HubDeviceArn. *

            * * @param listEdgeAgentConfigurationsRequest * @return Result of the ListEdgeAgentConfigurations operation returned by the service. * @throws NotAuthorizedException * The caller is not authorized to perform this operation. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @sample AmazonKinesisVideo.ListEdgeAgentConfigurations * @see AWS API Documentation */ ListEdgeAgentConfigurationsResult listEdgeAgentConfigurations(ListEdgeAgentConfigurationsRequest listEdgeAgentConfigurationsRequest); /** *

            * Returns an array of ChannelInfo objects. Each object describes a signaling channel. To retrieve only * those channels that satisfy a specific condition, you can specify a ChannelNameCondition. *

            * * @param listSignalingChannelsRequest * @return Result of the ListSignalingChannels operation returned by the service. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws AccessDeniedException * You do not have required permissions to perform this operation. * @sample AmazonKinesisVideo.ListSignalingChannels * @see AWS API Documentation */ ListSignalingChannelsResult listSignalingChannels(ListSignalingChannelsRequest listSignalingChannelsRequest); /** *

            * Returns an array of StreamInfo objects. Each object describes a stream. To retrieve only streams * that satisfy a specific condition, you can specify a StreamNameCondition. *

            * * @param listStreamsRequest * @return Result of the ListStreams operation returned by the service. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @sample AmazonKinesisVideo.ListStreams * @see AWS API * Documentation */ ListStreamsResult listStreams(ListStreamsRequest listStreamsRequest); /** *

            * Returns a list of tags associated with the specified signaling channel. *

            * * @param listTagsForResourceRequest * @return Result of the ListTagsForResource operation returned by the service. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws AccessDeniedException * You do not have required permissions to perform this operation. * @sample AmazonKinesisVideo.ListTagsForResource * @see AWS API Documentation */ ListTagsForResourceResult listTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest); /** *

            * Returns a list of tags associated with the specified stream. *

            *

            * In the request, you must specify either the StreamName or the StreamARN. *

            * * @param listTagsForStreamRequest * @return Result of the ListTagsForStream operation returned by the service. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws NotAuthorizedException * The caller is not authorized to perform this operation. * @throws InvalidResourceFormatException * The format of the StreamARN is invalid. * @sample AmazonKinesisVideo.ListTagsForStream * @see AWS * API Documentation */ ListTagsForStreamResult listTagsForStream(ListTagsForStreamRequest listTagsForStreamRequest); /** *

            * An asynchronous API that updates a stream’s existing edge configuration. The Kinesis Video Stream will sync the * stream’s edge configuration with the Edge Agent IoT Greengrass component that runs on an IoT Hub Device, setup at * your premise. The time to sync can vary and depends on the connectivity of the Hub Device. The * SyncStatus will be updated as the edge configuration is acknowledged, and synced with the Edge * Agent. *

            *

            * If this API is invoked for the first time, a new edge configuration will be created for the stream, and the sync * status will be set to SYNCING. You will have to wait for the sync status to reach a terminal state * such as: IN_SYNC, or SYNC_FAILED, before using this API again. If you invoke this API * during the syncing process, a ResourceInUseException will be thrown. The connectivity of the * stream’s edge configuration and the Edge Agent will be retried for 15 minutes. After 15 minutes, the status will * transition into the SYNC_FAILED state. *

            * * @param startEdgeConfigurationUpdateRequest * @return Result of the StartEdgeConfigurationUpdate operation returned by the service. * @throws AccessDeniedException * You do not have required permissions to perform this operation. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws NoDataRetentionException * The Stream data retention in hours is equal to zero. * @throws ResourceInUseException * 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 ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @sample AmazonKinesisVideo.StartEdgeConfigurationUpdate * @see AWS API Documentation */ StartEdgeConfigurationUpdateResult startEdgeConfigurationUpdate(StartEdgeConfigurationUpdateRequest startEdgeConfigurationUpdateRequest); /** *

              * Adds one or more tags to a signaling channel. A tag is a key-value pair (the value is optional) that you * can define and assign to Amazon Web Services resources. If you specify a tag that already exists, the tag value * is replaced with the value that you specify in the request. For more information, see Using Cost Allocation * Tags in the Billing and Cost Management and Cost Management User Guide. *

              * * @param tagResourceRequest * @return Result of the TagResource operation returned by the service. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws AccessDeniedException * You do not have required permissions to perform this operation. * @throws TagsPerResourceExceededLimitException * You have exceeded the limit of tags that you can associate with the resource. A Kinesis video stream can * support up to 50 tags. * @sample AmazonKinesisVideo.TagResource * @see AWS API * Documentation */ TagResourceResult tagResource(TagResourceRequest tagResourceRequest); /** *

              * Adds one or more tags to a stream. A tag is a key-value pair (the value is optional) that you can define * and assign to Amazon Web Services resources. If you specify a tag that already exists, the tag value is replaced * with the value that you specify in the request. For more information, see Using Cost Allocation * Tags in the Billing and Cost Management and Cost Management User Guide. *

              *

              * You must provide either the StreamName or the StreamARN. *

              *

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

              *

              * A Kinesis video stream can support up to 50 tags. *

              * * @param tagStreamRequest * @return Result of the TagStream operation returned by the service. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws NotAuthorizedException * The caller is not authorized to perform this operation. * @throws InvalidResourceFormatException * The format of the StreamARN is invalid. * @throws TagsPerResourceExceededLimitException * You have exceeded the limit of tags that you can associate with the resource. A Kinesis video stream can * support up to 50 tags. * @sample AmazonKinesisVideo.TagStream * @see AWS API * Documentation */ TagStreamResult tagStream(TagStreamRequest tagStreamRequest); /** *

              * Removes one or more tags from a signaling channel. In the request, specify only a tag key or keys; don't specify * the value. If you specify a tag key that does not exist, it's ignored. *

              * * @param untagResourceRequest * @return Result of the UntagResource operation returned by the service. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws AccessDeniedException * You do not have required permissions to perform this operation. * @sample AmazonKinesisVideo.UntagResource * @see AWS API * Documentation */ UntagResourceResult untagResource(UntagResourceRequest untagResourceRequest); /** *

              * Removes one or more tags from a stream. In the request, specify only a tag key or keys; don't specify the value. * If you specify a tag key that does not exist, it's ignored. *

              *

              * In the request, you must provide the StreamName or StreamARN. *

              * * @param untagStreamRequest * @return Result of the UntagStream operation returned by the service. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws NotAuthorizedException * The caller is not authorized to perform this operation. * @throws InvalidResourceFormatException * The format of the StreamARN is invalid. * @sample AmazonKinesisVideo.UntagStream * @see AWS API * Documentation */ UntagStreamResult untagStream(UntagStreamRequest untagStreamRequest); /** *

              * 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. *

              * *

              * The retention period that you specify replaces the current value. *

              *
              *

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

              *

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

              *
                *
              • *

                * If the data retention period is increased, existing data is retained for the new retention period. For example, * if the data retention period is increased from one hour to seven hours, all existing data is retained for seven * hours. *

                *
              • *
              • *

                * If the data retention period is decreased, existing data is retained for the new retention period. For example, * if the data retention period is decreased from seven hours to one hour, all existing data is retained for one * hour, and any data older than one hour is deleted immediately. *

                *
              • *
              * * @param updateDataRetentionRequest * @return Result of the UpdateDataRetention operation returned by the service. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws ResourceInUseException * 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 NotAuthorizedException * The caller is not authorized to perform this operation. * @throws VersionMismatchException * The stream version that you specified is not the latest version. To get the latest version, use the DescribeStream * API. * @sample AmazonKinesisVideo.UpdateDataRetention * @see AWS API Documentation */ UpdateDataRetentionResult updateDataRetention(UpdateDataRetentionRequest updateDataRetentionRequest); /** *

                * Updates the StreamInfo and ImageProcessingConfiguration fields. *

                * * @param updateImageGenerationConfigurationRequest * @return Result of the UpdateImageGenerationConfiguration operation returned by the service. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws AccessDeniedException * You do not have required permissions to perform this operation. * @throws ResourceInUseException * 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 NoDataRetentionException * The Stream data retention in hours is equal to zero. * @sample AmazonKinesisVideo.UpdateImageGenerationConfiguration * @see AWS API Documentation */ UpdateImageGenerationConfigurationResult updateImageGenerationConfiguration( UpdateImageGenerationConfigurationRequest updateImageGenerationConfigurationRequest); /** *

                  * Associates a SignalingChannel to a stream to store the media. There are two signaling modes that can * specified : *

                  *
                    *
                  • *

                    * If the StorageStatus is disabled, no data will be stored, and the StreamARN parameter * will not be needed. *

                    *
                  • *
                  • *

                    * If the StorageStatus is enabled, the data will be stored in the StreamARN provided. *

                    *
                  • *
                  * * @param updateMediaStorageConfigurationRequest * @return Result of the UpdateMediaStorageConfiguration operation returned by the service. * @throws ResourceInUseException * 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 InvalidArgumentException * The value for this input parameter is invalid. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws AccessDeniedException * You do not have required permissions to perform this operation. * @throws NoDataRetentionException * The Stream data retention in hours is equal to zero. * @sample AmazonKinesisVideo.UpdateMediaStorageConfiguration * @see AWS API Documentation */ UpdateMediaStorageConfigurationResult updateMediaStorageConfiguration(UpdateMediaStorageConfigurationRequest updateMediaStorageConfigurationRequest); /** *

                    * Updates the notification information for a stream. *

                    * * @param updateNotificationConfigurationRequest * @return Result of the UpdateNotificationConfiguration operation returned by the service. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws AccessDeniedException * You do not have required permissions to perform this operation. * @throws ResourceInUseException * 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 NoDataRetentionException * The Stream data retention in hours is equal to zero. * @sample AmazonKinesisVideo.UpdateNotificationConfiguration * @see AWS API Documentation */ UpdateNotificationConfigurationResult updateNotificationConfiguration(UpdateNotificationConfigurationRequest updateNotificationConfigurationRequest); /** *

                      * Updates the existing signaling channel. This is an asynchronous operation and takes time to complete. *

                      *

                      * If the MessageTtlSeconds value is updated (either increased or reduced), it only applies to new * messages sent via this channel after it's been updated. Existing messages are still expired as per the previous * MessageTtlSeconds value. *

                      * * @param updateSignalingChannelRequest * @return Result of the UpdateSignalingChannel operation returned by the service. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws ResourceInUseException * 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 AccessDeniedException * You do not have required permissions to perform this operation. * @throws VersionMismatchException * The stream version that you specified is not the latest version. To get the latest version, use the DescribeStream * API. * @sample AmazonKinesisVideo.UpdateSignalingChannel * @see AWS API Documentation */ UpdateSignalingChannelResult updateSignalingChannel(UpdateSignalingChannelRequest updateSignalingChannelRequest); /** *

                        * Updates stream metadata, such as the device name and media type. *

                        *

                        * You must provide the stream name or the Amazon Resource Name (ARN) of the stream. *

                        *

                        * To make sure that you have the latest version of the stream before updating it, you can specify the stream * version. Kinesis Video Streams assigns a version to each stream. When you update a stream, Kinesis Video Streams * assigns a new version number. To get the latest stream version, use the DescribeStream API. *

                        *

                        * UpdateStream is an asynchronous operation, and takes time to complete. *

                        * * @param updateStreamRequest * @return Result of the UpdateStream operation returned by the service. * @throws ClientLimitExceededException * Kinesis Video Streams has throttled the request because you have exceeded the limit of allowed client * calls. Try making the call later. * @throws InvalidArgumentException * The value for this input parameter is invalid. * @throws ResourceNotFoundException * Amazon Kinesis Video Streams can't find the stream that you specified. * @throws ResourceInUseException * 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 NotAuthorizedException * The caller is not authorized to perform this operation. * @throws VersionMismatchException * The stream version that you specified is not the latest version. To get the latest version, use the DescribeStream * API. * @sample AmazonKinesisVideo.UpdateStream * @see AWS API * Documentation */ UpdateStreamResult updateStream(UpdateStreamRequest updateStreamRequest); /** * Shuts down this client object, releasing any resources that might be held open. This is an optional method, and * callers are not expected to call it, but can if they want to explicitly release any open resources. Once a client * has been shutdown, it should not be used to make any more requests. */ void shutdown(); /** * Returns additional metadata for a previously executed successful request, typically used for debugging issues * where a service isn't acting as expected. This data isn't considered part of the result data returned by an * operation, so it's available through this separate, diagnostic interface. *

                          * Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic * information for an executed request, you should use this method to retrieve it as soon as possible after * executing a request. * * @param request * The originally executed request. * * @return The response metadata for the specified request, or null if none is available. */ ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request); }