/* * 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); }