/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace KinesisVideo { /** *

*/ class AWS_KINESISVIDEO_API KinesisVideoClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods { public: typedef Aws::Client::AWSJsonClient BASECLASS; static const char* SERVICE_NAME; static const char* ALLOCATION_TAG; typedef KinesisVideoClientConfiguration ClientConfigurationType; typedef KinesisVideoEndpointProvider EndpointProviderType; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ KinesisVideoClient(const Aws::KinesisVideo::KinesisVideoClientConfiguration& clientConfiguration = Aws::KinesisVideo::KinesisVideoClientConfiguration(), std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG)); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ KinesisVideoClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::KinesisVideo::KinesisVideoClientConfiguration& clientConfiguration = Aws::KinesisVideo::KinesisVideoClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ KinesisVideoClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::KinesisVideo::KinesisVideoClientConfiguration& clientConfiguration = Aws::KinesisVideo::KinesisVideoClientConfiguration()); /* Legacy constructors due deprecation */ /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ KinesisVideoClient(const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ KinesisVideoClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ KinesisVideoClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~KinesisVideoClient(); /** *

Creates a signaling channel.

CreateSignalingChannel is * an asynchronous operation.

See Also:

AWS * API Reference

*/ virtual Model::CreateSignalingChannelOutcome CreateSignalingChannel(const Model::CreateSignalingChannelRequest& request) const; /** * A Callable wrapper for CreateSignalingChannel that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateSignalingChannelOutcomeCallable CreateSignalingChannelCallable(const CreateSignalingChannelRequestT& request) const { return SubmitCallable(&KinesisVideoClient::CreateSignalingChannel, request); } /** * An Async wrapper for CreateSignalingChannel that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateSignalingChannelAsync(const CreateSignalingChannelRequestT& request, const CreateSignalingChannelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::CreateSignalingChannel, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::CreateStreamOutcome CreateStream(const Model::CreateStreamRequest& request) const; /** * A Callable wrapper for CreateStream that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateStreamOutcomeCallable CreateStreamCallable(const CreateStreamRequestT& request) const { return SubmitCallable(&KinesisVideoClient::CreateStream, request); } /** * An Async wrapper for CreateStream that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateStreamAsync(const CreateStreamRequestT& request, const CreateStreamResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::CreateStream, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::DeleteEdgeConfigurationOutcome DeleteEdgeConfiguration(const Model::DeleteEdgeConfigurationRequest& request) const; /** * A Callable wrapper for DeleteEdgeConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteEdgeConfigurationOutcomeCallable DeleteEdgeConfigurationCallable(const DeleteEdgeConfigurationRequestT& request) const { return SubmitCallable(&KinesisVideoClient::DeleteEdgeConfiguration, request); } /** * An Async wrapper for DeleteEdgeConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteEdgeConfigurationAsync(const DeleteEdgeConfigurationRequestT& request, const DeleteEdgeConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::DeleteEdgeConfiguration, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::DeleteSignalingChannelOutcome DeleteSignalingChannel(const Model::DeleteSignalingChannelRequest& request) const; /** * A Callable wrapper for DeleteSignalingChannel that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteSignalingChannelOutcomeCallable DeleteSignalingChannelCallable(const DeleteSignalingChannelRequestT& request) const { return SubmitCallable(&KinesisVideoClient::DeleteSignalingChannel, request); } /** * An Async wrapper for DeleteSignalingChannel that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteSignalingChannelAsync(const DeleteSignalingChannelRequestT& request, const DeleteSignalingChannelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::DeleteSignalingChannel, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::DeleteStreamOutcome DeleteStream(const Model::DeleteStreamRequest& request) const; /** * A Callable wrapper for DeleteStream that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteStreamOutcomeCallable DeleteStreamCallable(const DeleteStreamRequestT& request) const { return SubmitCallable(&KinesisVideoClient::DeleteStream, request); } /** * An Async wrapper for DeleteStream that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteStreamAsync(const DeleteStreamRequestT& request, const DeleteStreamResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::DeleteStream, request, handler, context); } /** *

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.

See Also:

* AWS * API Reference

*/ virtual Model::DescribeEdgeConfigurationOutcome DescribeEdgeConfiguration(const Model::DescribeEdgeConfigurationRequest& request) const; /** * A Callable wrapper for DescribeEdgeConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeEdgeConfigurationOutcomeCallable DescribeEdgeConfigurationCallable(const DescribeEdgeConfigurationRequestT& request) const { return SubmitCallable(&KinesisVideoClient::DescribeEdgeConfiguration, request); } /** * An Async wrapper for DescribeEdgeConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeEdgeConfigurationAsync(const DescribeEdgeConfigurationRequestT& request, const DescribeEdgeConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::DescribeEdgeConfiguration, request, handler, context); } /** *

Gets the ImageGenerationConfiguration for a given Kinesis video * stream.

See Also:

AWS * API Reference

*/ virtual Model::DescribeImageGenerationConfigurationOutcome DescribeImageGenerationConfiguration(const Model::DescribeImageGenerationConfigurationRequest& request) const; /** * A Callable wrapper for DescribeImageGenerationConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeImageGenerationConfigurationOutcomeCallable DescribeImageGenerationConfigurationCallable(const DescribeImageGenerationConfigurationRequestT& request) const { return SubmitCallable(&KinesisVideoClient::DescribeImageGenerationConfiguration, request); } /** * An Async wrapper for DescribeImageGenerationConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeImageGenerationConfigurationAsync(const DescribeImageGenerationConfigurationRequestT& request, const DescribeImageGenerationConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::DescribeImageGenerationConfiguration, request, handler, context); } /** *

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

See Also:

AWS * API Reference

*/ virtual Model::DescribeMappedResourceConfigurationOutcome DescribeMappedResourceConfiguration(const Model::DescribeMappedResourceConfigurationRequest& request) const; /** * A Callable wrapper for DescribeMappedResourceConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeMappedResourceConfigurationOutcomeCallable DescribeMappedResourceConfigurationCallable(const DescribeMappedResourceConfigurationRequestT& request) const { return SubmitCallable(&KinesisVideoClient::DescribeMappedResourceConfiguration, request); } /** * An Async wrapper for DescribeMappedResourceConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeMappedResourceConfigurationAsync(const DescribeMappedResourceConfigurationRequestT& request, const DescribeMappedResourceConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::DescribeMappedResourceConfiguration, request, handler, context); } /** *

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

See * Also:

AWS * API Reference

*/ virtual Model::DescribeMediaStorageConfigurationOutcome DescribeMediaStorageConfiguration(const Model::DescribeMediaStorageConfigurationRequest& request) const; /** * A Callable wrapper for DescribeMediaStorageConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeMediaStorageConfigurationOutcomeCallable DescribeMediaStorageConfigurationCallable(const DescribeMediaStorageConfigurationRequestT& request) const { return SubmitCallable(&KinesisVideoClient::DescribeMediaStorageConfiguration, request); } /** * An Async wrapper for DescribeMediaStorageConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeMediaStorageConfigurationAsync(const DescribeMediaStorageConfigurationRequestT& request, const DescribeMediaStorageConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::DescribeMediaStorageConfiguration, request, handler, context); } /** *

Gets the NotificationConfiguration for a given Kinesis video * stream.

See Also:

AWS * API Reference

*/ virtual Model::DescribeNotificationConfigurationOutcome DescribeNotificationConfiguration(const Model::DescribeNotificationConfigurationRequest& request) const; /** * A Callable wrapper for DescribeNotificationConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeNotificationConfigurationOutcomeCallable DescribeNotificationConfigurationCallable(const DescribeNotificationConfigurationRequestT& request) const { return SubmitCallable(&KinesisVideoClient::DescribeNotificationConfiguration, request); } /** * An Async wrapper for DescribeNotificationConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeNotificationConfigurationAsync(const DescribeNotificationConfigurationRequestT& request, const DescribeNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::DescribeNotificationConfiguration, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::DescribeSignalingChannelOutcome DescribeSignalingChannel(const Model::DescribeSignalingChannelRequest& request) const; /** * A Callable wrapper for DescribeSignalingChannel that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeSignalingChannelOutcomeCallable DescribeSignalingChannelCallable(const DescribeSignalingChannelRequestT& request) const { return SubmitCallable(&KinesisVideoClient::DescribeSignalingChannel, request); } /** * An Async wrapper for DescribeSignalingChannel that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeSignalingChannelAsync(const DescribeSignalingChannelRequestT& request, const DescribeSignalingChannelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::DescribeSignalingChannel, request, handler, context); } /** *

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

See Also:

AWS * API Reference

*/ virtual Model::DescribeStreamOutcome DescribeStream(const Model::DescribeStreamRequest& request) const; /** * A Callable wrapper for DescribeStream that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeStreamOutcomeCallable DescribeStreamCallable(const DescribeStreamRequestT& request) const { return SubmitCallable(&KinesisVideoClient::DescribeStream, request); } /** * An Async wrapper for DescribeStream that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeStreamAsync(const DescribeStreamRequestT& request, const DescribeStreamResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::DescribeStream, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::GetDataEndpointOutcome GetDataEndpoint(const Model::GetDataEndpointRequest& request) const; /** * A Callable wrapper for GetDataEndpoint that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetDataEndpointOutcomeCallable GetDataEndpointCallable(const GetDataEndpointRequestT& request) const { return SubmitCallable(&KinesisVideoClient::GetDataEndpoint, request); } /** * An Async wrapper for GetDataEndpoint that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetDataEndpointAsync(const GetDataEndpointRequestT& request, const GetDataEndpointResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::GetDataEndpoint, request, handler, context); } /** *

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

See Also:

AWS * API Reference

*/ virtual Model::GetSignalingChannelEndpointOutcome GetSignalingChannelEndpoint(const Model::GetSignalingChannelEndpointRequest& request) const; /** * A Callable wrapper for GetSignalingChannelEndpoint that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetSignalingChannelEndpointOutcomeCallable GetSignalingChannelEndpointCallable(const GetSignalingChannelEndpointRequestT& request) const { return SubmitCallable(&KinesisVideoClient::GetSignalingChannelEndpoint, request); } /** * An Async wrapper for GetSignalingChannelEndpoint that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetSignalingChannelEndpointAsync(const GetSignalingChannelEndpointRequestT& request, const GetSignalingChannelEndpointResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::GetSignalingChannelEndpoint, request, handler, context); } /** *

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

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

See Also:

AWS * API Reference

*/ virtual Model::ListEdgeAgentConfigurationsOutcome ListEdgeAgentConfigurations(const Model::ListEdgeAgentConfigurationsRequest& request) const; /** * A Callable wrapper for ListEdgeAgentConfigurations that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListEdgeAgentConfigurationsOutcomeCallable ListEdgeAgentConfigurationsCallable(const ListEdgeAgentConfigurationsRequestT& request) const { return SubmitCallable(&KinesisVideoClient::ListEdgeAgentConfigurations, request); } /** * An Async wrapper for ListEdgeAgentConfigurations that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListEdgeAgentConfigurationsAsync(const ListEdgeAgentConfigurationsRequestT& request, const ListEdgeAgentConfigurationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::ListEdgeAgentConfigurations, request, handler, context); } /** *

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.

See * Also:

AWS * API Reference

*/ virtual Model::ListSignalingChannelsOutcome ListSignalingChannels(const Model::ListSignalingChannelsRequest& request) const; /** * A Callable wrapper for ListSignalingChannels that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListSignalingChannelsOutcomeCallable ListSignalingChannelsCallable(const ListSignalingChannelsRequestT& request) const { return SubmitCallable(&KinesisVideoClient::ListSignalingChannels, request); } /** * An Async wrapper for ListSignalingChannels that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListSignalingChannelsAsync(const ListSignalingChannelsRequestT& request, const ListSignalingChannelsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::ListSignalingChannels, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::ListStreamsOutcome ListStreams(const Model::ListStreamsRequest& request) const; /** * A Callable wrapper for ListStreams that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListStreamsOutcomeCallable ListStreamsCallable(const ListStreamsRequestT& request) const { return SubmitCallable(&KinesisVideoClient::ListStreams, request); } /** * An Async wrapper for ListStreams that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListStreamsAsync(const ListStreamsRequestT& request, const ListStreamsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::ListStreams, request, handler, context); } /** *

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

See Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** * A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const { return SubmitCallable(&KinesisVideoClient::ListTagsForResource, request); } /** * An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::ListTagsForResource, request, handler, context); } /** *

Returns a list of tags associated with the specified stream.

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

See Also:

AWS * API Reference

*/ virtual Model::ListTagsForStreamOutcome ListTagsForStream(const Model::ListTagsForStreamRequest& request) const; /** * A Callable wrapper for ListTagsForStream that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTagsForStreamOutcomeCallable ListTagsForStreamCallable(const ListTagsForStreamRequestT& request) const { return SubmitCallable(&KinesisVideoClient::ListTagsForStream, request); } /** * An Async wrapper for ListTagsForStream that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTagsForStreamAsync(const ListTagsForStreamRequestT& request, const ListTagsForStreamResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::ListTagsForStream, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::StartEdgeConfigurationUpdateOutcome StartEdgeConfigurationUpdate(const Model::StartEdgeConfigurationUpdateRequest& request) const; /** * A Callable wrapper for StartEdgeConfigurationUpdate that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartEdgeConfigurationUpdateOutcomeCallable StartEdgeConfigurationUpdateCallable(const StartEdgeConfigurationUpdateRequestT& request) const { return SubmitCallable(&KinesisVideoClient::StartEdgeConfigurationUpdate, request); } /** * An Async wrapper for StartEdgeConfigurationUpdate that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartEdgeConfigurationUpdateAsync(const StartEdgeConfigurationUpdateRequestT& request, const StartEdgeConfigurationUpdateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::StartEdgeConfigurationUpdate, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** * A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const { return SubmitCallable(&KinesisVideoClient::TagResource, request); } /** * An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::TagResource, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::TagStreamOutcome TagStream(const Model::TagStreamRequest& request) const; /** * A Callable wrapper for TagStream that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TagStreamOutcomeCallable TagStreamCallable(const TagStreamRequestT& request) const { return SubmitCallable(&KinesisVideoClient::TagStream, request); } /** * An Async wrapper for TagStream that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TagStreamAsync(const TagStreamRequestT& request, const TagStreamResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::TagStream, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** * A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const { return SubmitCallable(&KinesisVideoClient::UntagResource, request); } /** * An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::UntagResource, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::UntagStreamOutcome UntagStream(const Model::UntagStreamRequest& request) const; /** * A Callable wrapper for UntagStream that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UntagStreamOutcomeCallable UntagStreamCallable(const UntagStreamRequestT& request) const { return SubmitCallable(&KinesisVideoClient::UntagStream, request); } /** * An Async wrapper for UntagStream that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UntagStreamAsync(const UntagStreamRequestT& request, const UntagStreamResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::UntagStream, request, handler, context); } /** *

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.

  • *

See Also:

AWS * API Reference

*/ virtual Model::UpdateDataRetentionOutcome UpdateDataRetention(const Model::UpdateDataRetentionRequest& request) const; /** * A Callable wrapper for UpdateDataRetention that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateDataRetentionOutcomeCallable UpdateDataRetentionCallable(const UpdateDataRetentionRequestT& request) const { return SubmitCallable(&KinesisVideoClient::UpdateDataRetention, request); } /** * An Async wrapper for UpdateDataRetention that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateDataRetentionAsync(const UpdateDataRetentionRequestT& request, const UpdateDataRetentionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::UpdateDataRetention, request, handler, context); } /** *

Updates the StreamInfo and * ImageProcessingConfiguration fields.

See Also:

AWS * API Reference

*/ virtual Model::UpdateImageGenerationConfigurationOutcome UpdateImageGenerationConfiguration(const Model::UpdateImageGenerationConfigurationRequest& request) const; /** * A Callable wrapper for UpdateImageGenerationConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateImageGenerationConfigurationOutcomeCallable UpdateImageGenerationConfigurationCallable(const UpdateImageGenerationConfigurationRequestT& request) const { return SubmitCallable(&KinesisVideoClient::UpdateImageGenerationConfiguration, request); } /** * An Async wrapper for UpdateImageGenerationConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateImageGenerationConfigurationAsync(const UpdateImageGenerationConfigurationRequestT& request, const UpdateImageGenerationConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::UpdateImageGenerationConfiguration, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::UpdateMediaStorageConfigurationOutcome UpdateMediaStorageConfiguration(const Model::UpdateMediaStorageConfigurationRequest& request) const; /** * A Callable wrapper for UpdateMediaStorageConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateMediaStorageConfigurationOutcomeCallable UpdateMediaStorageConfigurationCallable(const UpdateMediaStorageConfigurationRequestT& request) const { return SubmitCallable(&KinesisVideoClient::UpdateMediaStorageConfiguration, request); } /** * An Async wrapper for UpdateMediaStorageConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateMediaStorageConfigurationAsync(const UpdateMediaStorageConfigurationRequestT& request, const UpdateMediaStorageConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::UpdateMediaStorageConfiguration, request, handler, context); } /** *

Updates the notification information for a stream.

See Also:

* AWS * API Reference

*/ virtual Model::UpdateNotificationConfigurationOutcome UpdateNotificationConfiguration(const Model::UpdateNotificationConfigurationRequest& request) const; /** * A Callable wrapper for UpdateNotificationConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateNotificationConfigurationOutcomeCallable UpdateNotificationConfigurationCallable(const UpdateNotificationConfigurationRequestT& request) const { return SubmitCallable(&KinesisVideoClient::UpdateNotificationConfiguration, request); } /** * An Async wrapper for UpdateNotificationConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateNotificationConfigurationAsync(const UpdateNotificationConfigurationRequestT& request, const UpdateNotificationConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::UpdateNotificationConfiguration, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::UpdateSignalingChannelOutcome UpdateSignalingChannel(const Model::UpdateSignalingChannelRequest& request) const; /** * A Callable wrapper for UpdateSignalingChannel that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateSignalingChannelOutcomeCallable UpdateSignalingChannelCallable(const UpdateSignalingChannelRequestT& request) const { return SubmitCallable(&KinesisVideoClient::UpdateSignalingChannel, request); } /** * An Async wrapper for UpdateSignalingChannel that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateSignalingChannelAsync(const UpdateSignalingChannelRequestT& request, const UpdateSignalingChannelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::UpdateSignalingChannel, request, handler, context); } /** *

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.

See Also:

* AWS * API Reference

*/ virtual Model::UpdateStreamOutcome UpdateStream(const Model::UpdateStreamRequest& request) const; /** * A Callable wrapper for UpdateStream that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateStreamOutcomeCallable UpdateStreamCallable(const UpdateStreamRequestT& request) const { return SubmitCallable(&KinesisVideoClient::UpdateStream, request); } /** * An Async wrapper for UpdateStream that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateStreamAsync(const UpdateStreamRequestT& request, const UpdateStreamResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&KinesisVideoClient::UpdateStream, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const KinesisVideoClientConfiguration& clientConfiguration); KinesisVideoClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace KinesisVideo } // namespace Aws