/* * 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 org.w3c.dom.*; import java.net.*; import java.util.*; import javax.annotation.Generated; import org.apache.commons.logging.*; import com.amazonaws.*; import com.amazonaws.annotation.SdkInternalApi; import com.amazonaws.auth.*; import com.amazonaws.handlers.*; import com.amazonaws.http.*; import com.amazonaws.internal.*; import com.amazonaws.internal.auth.*; import com.amazonaws.metrics.*; import com.amazonaws.regions.*; import com.amazonaws.transform.*; import com.amazonaws.util.*; import com.amazonaws.protocol.json.*; import com.amazonaws.util.AWSRequestMetrics.Field; import com.amazonaws.annotation.ThreadSafe; import com.amazonaws.client.AwsSyncClientParams; import com.amazonaws.client.builder.AdvancedConfig; import com.amazonaws.services.kinesisvideo.AmazonKinesisVideoClientBuilder; import com.amazonaws.AmazonServiceException; import com.amazonaws.services.kinesisvideo.model.*; import com.amazonaws.services.kinesisvideo.model.transform.*; /** * Client for accessing Kinesis Video. All service calls made using this client are blocking, and will not return until * the service call completes. *
*
*/ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AmazonKinesisVideoClient extends AmazonWebServiceClient implements AmazonKinesisVideo { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AmazonKinesisVideo.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "kinesisvideo"; /** Client configuration factory providing ClientConfigurations tailored to this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); private final AdvancedConfig advancedConfig; private static final com.amazonaws.protocol.json.SdkJsonProtocolFactory protocolFactory = new com.amazonaws.protocol.json.SdkJsonProtocolFactory( new JsonClientMetadata() .withProtocolVersion("1.1") .withSupportsCbor(false) .withSupportsIon(false) .withContentTypeOverride("application/json") .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("AccountStreamLimitExceededException").withExceptionUnmarshaller( com.amazonaws.services.kinesisvideo.model.transform.AccountStreamLimitExceededExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceInUseException").withExceptionUnmarshaller( com.amazonaws.services.kinesisvideo.model.transform.ResourceInUseExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("VersionMismatchException").withExceptionUnmarshaller( com.amazonaws.services.kinesisvideo.model.transform.VersionMismatchExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("AccountChannelLimitExceededException").withExceptionUnmarshaller( com.amazonaws.services.kinesisvideo.model.transform.AccountChannelLimitExceededExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ClientLimitExceededException").withExceptionUnmarshaller( com.amazonaws.services.kinesisvideo.model.transform.ClientLimitExceededExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("StreamEdgeConfigurationNotFoundException").withExceptionUnmarshaller( com.amazonaws.services.kinesisvideo.model.transform.StreamEdgeConfigurationNotFoundExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidResourceFormatException").withExceptionUnmarshaller( com.amazonaws.services.kinesisvideo.model.transform.InvalidResourceFormatExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("AccessDeniedException").withExceptionUnmarshaller( com.amazonaws.services.kinesisvideo.model.transform.AccessDeniedExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidArgumentException").withExceptionUnmarshaller( com.amazonaws.services.kinesisvideo.model.transform.InvalidArgumentExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NoDataRetentionException").withExceptionUnmarshaller( com.amazonaws.services.kinesisvideo.model.transform.NoDataRetentionExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceNotFoundException").withExceptionUnmarshaller( com.amazonaws.services.kinesisvideo.model.transform.ResourceNotFoundExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidDeviceException").withExceptionUnmarshaller( com.amazonaws.services.kinesisvideo.model.transform.InvalidDeviceExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("TagsPerResourceExceededLimitException").withExceptionUnmarshaller( com.amazonaws.services.kinesisvideo.model.transform.TagsPerResourceExceededLimitExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("DeviceStreamLimitExceededException").withExceptionUnmarshaller( com.amazonaws.services.kinesisvideo.model.transform.DeviceStreamLimitExceededExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NotAuthorizedException").withExceptionUnmarshaller( com.amazonaws.services.kinesisvideo.model.transform.NotAuthorizedExceptionUnmarshaller.getInstance())) .withBaseServiceExceptionClass(com.amazonaws.services.kinesisvideo.model.AmazonKinesisVideoException.class)); public static AmazonKinesisVideoClientBuilder builder() { return AmazonKinesisVideoClientBuilder.standard(); } /** * Constructs a new client to invoke service methods on Kinesis Video using the specified parameters. * ** All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AmazonKinesisVideoClient(AwsSyncClientParams clientParams) { this(clientParams, false); } /** * Constructs a new client to invoke service methods on Kinesis Video using the specified parameters. * *
* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AmazonKinesisVideoClient(AwsSyncClientParams clientParams, boolean endpointDiscoveryEnabled) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); this.advancedConfig = clientParams.getAdvancedConfig(); init(); } private void init() { setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly setEndpoint("kinesisvideo.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/kinesisvideo/request.handlers")); requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/kinesisvideo/request.handler2s")); requestHandler2s.addAll(chainFactory.getGlobalHandlers()); } /** *
* Creates a signaling channel. *
*
* CreateSignalingChannel
is an asynchronous operation.
*
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 :
*
*
* The DescribeMediaStorageConfiguration
API to determine what the stream given channel is
* mapped to.
*
* The DescribeMappedResourceConfiguration
API to determine the channel that the given stream
* is mapped to.
*
* The DescribeStream
or DescribeSignalingChannel
API to determine the status of
* the resource.
*
* 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.
*
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 :
*
*
* The DescribeMediaStorageConfiguration
API to determine what the stream given channel is
* mapped to.
*
* The DescribeMappedResourceConfiguration
API to determine the channel that the given stream
* is mapped to.
*
* The DescribeStream
or DescribeSignalingChannel
API to determine the status of
* the resource.
*
* 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 */ @Override public DeleteEdgeConfigurationResult deleteEdgeConfiguration(DeleteEdgeConfigurationRequest request) { request = beforeClientExecution(request); return executeDeleteEdgeConfiguration(request); } @SdkInternalApi final DeleteEdgeConfigurationResult executeDeleteEdgeConfiguration(DeleteEdgeConfigurationRequest deleteEdgeConfigurationRequest) { ExecutionContext executionContext = createExecutionContext(deleteEdgeConfigurationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request
* 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.
*
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 :
*
*
* The DescribeMediaStorageConfiguration
API to determine what the stream given channel is
* mapped to.
*
* The DescribeMappedResourceConfiguration
API to determine the channel that the given stream
* is mapped to.
*
* The DescribeStream
or DescribeSignalingChannel
API to determine the status of
* the resource.
*
* 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.
*
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 :
*
*
* The DescribeMediaStorageConfiguration
API to determine what the stream given channel is
* mapped to.
*
* The DescribeMappedResourceConfiguration
API to determine the channel that the given stream
* is mapped to.
*
* The DescribeStream
or DescribeSignalingChannel
API to determine the status of
* the resource.
*
* 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 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 */ @Override public DescribeSignalingChannelResult describeSignalingChannel(DescribeSignalingChannelRequest request) { request = beforeClientExecution(request); return executeDescribeSignalingChannel(request); } @SdkInternalApi final DescribeSignalingChannelResult executeDescribeSignalingChannel(DescribeSignalingChannelRequest describeSignalingChannelRequest) { ExecutionContext executionContext = createExecutionContext(describeSignalingChannelRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request
* 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
.
*
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 :
*
*
* The DescribeMediaStorageConfiguration
API to determine what the stream given channel is
* mapped to.
*
* The DescribeMappedResourceConfiguration
API to determine the channel that the given stream
* is mapped to.
*
* The DescribeStream
or DescribeSignalingChannel
API to determine the status of
* the resource.
*
* 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 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 */ @Override public ListTagsForResourceResult listTagsForResource(ListTagsForResourceRequest request) { request = beforeClientExecution(request); return executeListTagsForResource(request); } @SdkInternalApi final ListTagsForResourceResult executeListTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest) { ExecutionContext executionContext = createExecutionContext(listTagsForResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Returns a list of tags associated with the specified stream. *
*
* In the request, you must specify either the StreamName
or the StreamARN
.
*
StreamARN
is invalid.
* @sample AmazonKinesisVideo.ListTagsForStream
* @see AWS
* API Documentation
*/
@Override
public ListTagsForStreamResult listTagsForStream(ListTagsForStreamRequest request) {
request = beforeClientExecution(request);
return executeListTagsForStream(request);
}
@SdkInternalApi
final ListTagsForStreamResult executeListTagsForStream(ListTagsForStreamRequest listTagsForStreamRequest) {
ExecutionContext executionContext = createExecutionContext(listTagsForStreamRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request
* 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.
*
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 :
*
*
* The DescribeMediaStorageConfiguration
API to determine what the stream given channel is
* mapped to.
*
* The DescribeMappedResourceConfiguration
API to determine the channel that the given stream
* is mapped to.
*
* The DescribeStream
or DescribeSignalingChannel
API to determine the status of
* the resource.
*
* 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 */ @Override public TagResourceResult tagResource(TagResourceRequest request) { request = beforeClientExecution(request); return executeTagResource(request); } @SdkInternalApi final TagResourceResult executeTagResource(TagResourceRequest tagResourceRequest) { ExecutionContext executionContext = createExecutionContext(tagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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 theStreamARN
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
*/
@Override
public TagStreamResult tagStream(TagStreamRequest request) {
request = beforeClientExecution(request);
return executeTagStream(request);
}
@SdkInternalApi
final TagStreamResult executeTagStream(TagStreamRequest tagStreamRequest) {
ExecutionContext executionContext = createExecutionContext(tagStreamRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request* 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 */ @Override public UntagResourceResult untagResource(UntagResourceRequest request) { request = beforeClientExecution(request); return executeUntagResource(request); } @SdkInternalApi final UntagResourceResult executeUntagResource(UntagResourceRequest untagResourceRequest) { ExecutionContext executionContext = createExecutionContext(untagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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
.
*
StreamARN
is invalid.
* @sample AmazonKinesisVideo.UntagStream
* @see AWS API
* Documentation
*/
@Override
public UntagStreamResult untagStream(UntagStreamRequest request) {
request = beforeClientExecution(request);
return executeUntagStream(request);
}
@SdkInternalApi
final UntagStreamResult executeUntagStream(UntagStreamRequest untagStreamRequest) {
ExecutionContext executionContext = createExecutionContext(untagStreamRequest);
AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics();
awsRequestMetrics.startEvent(Field.ClientExecuteTime);
Request
* 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. *
*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 :
*
*
* The DescribeMediaStorageConfiguration
API to determine what the stream given channel is
* mapped to.
*
* The DescribeMappedResourceConfiguration
API to determine the channel that the given stream
* is mapped to.
*
* The DescribeStream
or DescribeSignalingChannel
API to determine the status of
* the resource.
*
* Updates the StreamInfo
and ImageProcessingConfiguration
fields.
*
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 :
*
*
* The DescribeMediaStorageConfiguration
API to determine what the stream given channel is
* mapped to.
*
* The DescribeMappedResourceConfiguration
API to determine the channel that the given stream
* is mapped to.
*
* The DescribeStream
or DescribeSignalingChannel
API to determine the status of
* the resource.
*
* 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.
*
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 :
*
*
* The DescribeMediaStorageConfiguration
API to determine what the stream given channel is
* mapped to.
*
* The DescribeMappedResourceConfiguration
API to determine the channel that the given stream
* is mapped to.
*
* The DescribeStream
or DescribeSignalingChannel
API to determine the status of
* the resource.
*
* 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 inputStreamARN
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 :
*
*
* The DescribeMediaStorageConfiguration
API to determine what the stream given channel is
* mapped to.
*
* The DescribeMappedResourceConfiguration
API to determine the channel that the given stream
* is mapped to.
*
* The DescribeStream
or DescribeSignalingChannel
API to determine the status of
* the resource.
*
* 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.
*
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 :
*
*
* The DescribeMediaStorageConfiguration
API to determine what the stream given channel is
* mapped to.
*
* The DescribeMappedResourceConfiguration
API to determine the channel that the given stream
* is mapped to.
*
* The DescribeStream
or DescribeSignalingChannel
API to determine the status of
* the resource.
*
* 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.
*
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 :
*
*
* The DescribeMediaStorageConfiguration
API to determine what the stream given channel is
* mapped to.
*
* The DescribeMappedResourceConfiguration
API to determine the channel that the given stream
* is mapped to.
*
* The DescribeStream
or DescribeSignalingChannel
API to determine the status of
* the resource.
*
* 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 the 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) {
return client.getResponseMetadataForRequest(request);
}
/**
* Normal invoke with authentication. Credentials are required and may be overriden at the request level.
**/
private