/* * Copyright 2010-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 com.amazonaws.*; import com.amazonaws.regions.*; import com.amazonaws.services.kinesisvideo.model.*; /** * Interface for accessing AWSKinesisVideoFrontend *
**/ public interface AWSKinesisVideo { /** * Overrides the default endpoint for this client * ("https://https://kinesisvideo.us-west-2.amazonaws.com"). Callers can use * this method to control which AWS region they want to work with. ** Callers can pass in just the endpoint (ex: * "https://kinesisvideo.us-west-2.amazonaws.com") or a full URL, including * the protocol (ex: * "https://https://kinesisvideo.us-west-2.amazonaws.com"). If the protocol * is not specified here, the default protocol from this client's * {@link ClientConfiguration} will be used, which by default is HTTPS. *
* For more information on using AWS regions with the AWS SDK for Java, and * a complete list of all available endpoints for all AWS services, see: http://developer.amazonwebservices.com/connect/entry.jspa?externalID= * 3912 *
* This method is not threadsafe. An endpoint should be configured when * the client is created and before any service requests are made. Changing * it afterwards creates inevitable race conditions for any service requests * in transit or retrying. * * @param endpoint The endpoint (ex: * "https://kinesisvideo.us-west-2.amazonaws.com") or a full URL, * including the protocol (ex: * "https://https://kinesisvideo.us-west-2.amazonaws.com") of the * region specific AWS endpoint this client will communicate * with. * @throws IllegalArgumentException If any problems are detected with the * specified endpoint. */ public void setEndpoint(String endpoint) throws java.lang.IllegalArgumentException; /** * An alternative to {@link AWSKinesisVideo#setEndpoint(String)}, sets the * regional endpoint for this client's service calls. Callers can use this * method to control which AWS region they want to work with. *
* By default, all service endpoints in all regions use the https protocol. * To use http instead, specify it in the {@link ClientConfiguration} * supplied at construction. *
* This method is not threadsafe. A region should be configured when the * client is created and before any service requests are made. Changing it * afterwards creates inevitable race conditions for any service requests in * transit or retrying. * * @param region The region this client will communicate with. See * {@link Region#getRegion(com.amazonaws.regions.Regions)} for * accessing a given region. * @throws java.lang.IllegalArgumentException If the given region is null, * or if this service isn't available in the given region. See * {@link Region#isServiceSupported(String)} * @see Region#getRegion(com.amazonaws.regions.Regions) * @see Region#createClient(Class, * com.amazonaws.auth.AWSCredentialsProvider, ClientConfiguration) */ public void setRegion(Region region) throws java.lang.IllegalArgumentException; /** *
* Creates a signaling channel. *
*
     * CreateSignalingChannel is an asynchronous operation.
     * 
* 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.
     * 
* 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 deleteEdgeConfigurationResult The response from the * DeleteEdgeConfiguration service method, as returned by * AWSKinesisVideoFrontend. * @throws AccessDeniedException * @throws ClientLimitExceededException * @throws InvalidArgumentException * @throws ResourceNotFoundException * @throws StreamEdgeConfigurationNotFoundException * @throws AmazonClientException If any internal errors are encountered * inside the client while attempting to make the request or * handle the response. For example if a network connection is * not available. * @throws AmazonServiceException If an error response is returned by * AWSKinesisVideoFrontend indicating either a problem with the * data in the request, or a server side issue. */ DeleteEdgeConfigurationResult deleteEdgeConfiguration( DeleteEdgeConfigurationRequest deleteEdgeConfigurationRequest) throws AmazonClientException, AmazonServiceException; /** *
     * 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.
     * 
* 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.
     * 
     * 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.
     * 
     * Gets the ImageGenerationConfiguration for a given Kinesis
     * video stream.
     * 
     * Returns the most current information about the stream. The
     * streamName or streamARN should be provided in
     * the input.
     * 
     * Returns the most current information about the channel. Specify the
     * ChannelName or ChannelARN in the input.
     * 
     * Gets the NotificationConfiguration for a given Kinesis video
     * stream.
     * 
* 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 describeSignalingChannelResult The response from the * DescribeSignalingChannel service method, as returned by * AWSKinesisVideoFrontend. * @throws InvalidArgumentException * @throws ClientLimitExceededException * @throws ResourceNotFoundException * @throws AccessDeniedException * @throws AmazonClientException If any internal errors are encountered * inside the client while attempting to make the request or * handle the response. For example if a network connection is * not available. * @throws AmazonServiceException If an error response is returned by * AWSKinesisVideoFrontend indicating either a problem with the * data in the request, or a server side issue. */ DescribeSignalingChannelResult describeSignalingChannel( DescribeSignalingChannelRequest describeSignalingChannelRequest) throws AmazonClientException, AmazonServiceException; /** *
     * Returns the most current information about the specified stream. You must
     * specify either the StreamName or the StreamARN.
     * 
     * 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.
     * 
     * 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.
     * 
* Returns an array of edge configurations associated with the specified * Edge Agent. *
*
     * In the request, you must specify the Edge Agent HubDeviceArn
     * .
     * 
     * 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.
     * 
     * 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.
     * 
* Returns a list of tags associated with the specified signaling channel. *
* * @param listTagsForResourceRequest * @return listTagsForResourceResult The response from the * ListTagsForResource service method, as returned by * AWSKinesisVideoFrontend. * @throws InvalidArgumentException * @throws ClientLimitExceededException * @throws ResourceNotFoundException * @throws AccessDeniedException * @throws AmazonClientException If any internal errors are encountered * inside the client while attempting to make the request or * handle the response. For example if a network connection is * not available. * @throws AmazonServiceException If an error response is returned by * AWSKinesisVideoFrontend indicating either a problem with the * data in the request, or a server side issue. */ ListTagsForResourceResult listTagsForResource( ListTagsForResourceRequest listTagsForResourceRequest) throws AmazonClientException, AmazonServiceException; /** ** Returns a list of tags associated with the specified stream. *
*
     * In the request, you must specify either the StreamName or
     * the StreamARN.
     * 
     * 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.
     * 
* 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 tagResourceResult The response from the TagResource service * method, as returned by AWSKinesisVideoFrontend. * @throws InvalidArgumentException * @throws ClientLimitExceededException * @throws ResourceNotFoundException * @throws AccessDeniedException * @throws TagsPerResourceExceededLimitException * @throws AmazonClientException If any internal errors are encountered * inside the client while attempting to make the request or * handle the response. For example if a network connection is * not available. * @throws AmazonServiceException If an error response is returned by * AWSKinesisVideoFrontend indicating either a problem with the * data in the request, or a server side issue. */ TagResourceResult tagResource(TagResourceRequest tagResourceRequest) throws AmazonClientException, AmazonServiceException; /** ** 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 tagStreamResult The response from the TagStream service method, * as returned by AWSKinesisVideoFrontend. * @throws ClientLimitExceededException * @throws InvalidArgumentException * @throws ResourceNotFoundException * @throws NotAuthorizedException * @throws InvalidResourceFormatException * @throws TagsPerResourceExceededLimitException * @throws AmazonClientException If any internal errors are encountered * inside the client while attempting to make the request or * handle the response. For example if a network connection is * not available. * @throws AmazonServiceException If an error response is returned by * AWSKinesisVideoFrontend indicating either a problem with the * data in the request, or a server side issue. */ TagStreamResult tagStream(TagStreamRequest tagStreamRequest) throws AmazonClientException, AmazonServiceException; /** ** 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 untagResourceResult The response from the UntagResource service * method, as returned by AWSKinesisVideoFrontend. * @throws InvalidArgumentException * @throws ClientLimitExceededException * @throws ResourceNotFoundException * @throws AccessDeniedException * @throws AmazonClientException If any internal errors are encountered * inside the client while attempting to make the request or * handle the response. For example if a network connection is * not available. * @throws AmazonServiceException If an error response is returned by * AWSKinesisVideoFrontend indicating either a problem with the * data in the request, or a server side issue. */ UntagResourceResult untagResource(UntagResourceRequest untagResourceRequest) throws AmazonClientException, AmazonServiceException; /** ** 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.
     * 
     * 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. *
*
     * Updates the StreamInfo and
     * ImageProcessingConfiguration fields.
     * 
     * 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.
     * 
* Updates the notification information for a stream. *
* * @param updateNotificationConfigurationRequest * @return updateNotificationConfigurationResult The response from the * UpdateNotificationConfiguration service method, as returned by * AWSKinesisVideoFrontend. * @throws InvalidArgumentException * @throws ClientLimitExceededException * @throws ResourceNotFoundException * @throws AccessDeniedException * @throws ResourceInUseException * @throws NoDataRetentionException * @throws AmazonClientException If any internal errors are encountered * inside the client while attempting to make the request or * handle the response. For example if a network connection is * not available. * @throws AmazonServiceException If an error response is returned by * AWSKinesisVideoFrontend indicating either a problem with the * data in the request, or a server side issue. */ UpdateNotificationConfigurationResult updateNotificationConfiguration( UpdateNotificationConfigurationRequest updateNotificationConfigurationRequest) throws AmazonClientException, AmazonServiceException; /** ** 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.
     * 
* 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.
     * 
* 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. */ public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request); }