/*
* Copyright 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.
*/
/*
* Do not modify this file. This file is generated from the kinesis-video-signaling-2019-12-04.normal.json service model.
*/
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using Amazon.Runtime;
using Amazon.KinesisVideoSignalingChannels.Model;
namespace Amazon.KinesisVideoSignalingChannels
{
///
/// Interface for accessing KinesisVideoSignalingChannels
///
/// Kinesis Video Streams Signaling Service is a intermediate service that establishes
/// a communication channel for discovering peers, transmitting offers and answers in
/// order to establish peer-to-peer connection in webRTC technology.
///
public partial interface IAmazonKinesisVideoSignalingChannels : IAmazonService, IDisposable
{
#region GetIceServerConfig
///
/// Gets the Interactive Connectivity Establishment (ICE) server configuration information,
/// including URIs, username, and password which can be used to configure the WebRTC connection.
/// The ICE component uses this configuration information to setup the WebRTC connection,
/// including authenticating with the Traversal Using Relays around NAT (TURN) relay server.
///
///
///
///
/// TURN is a protocol that is used to improve the connectivity of peer-to-peer applications.
/// By providing a cloud-based relay service, TURN ensures that a connection can be established
/// even when one or more peers are incapable of a direct peer-to-peer connection. For
/// more information, see A
/// REST API For Access To TURN Services.
///
///
///
/// You can invoke this API to establish a fallback mechanism in case either of the peers
/// is unable to establish a direct peer-to-peer connection over a signaling channel.
/// You must specify either a signaling channel ARN or the client ID in order to invoke
/// this API.
///
///
/// Container for the necessary parameters to execute the GetIceServerConfig service method.
///
/// The response from the GetIceServerConfig service method, as returned by KinesisVideoSignalingChannels.
///
/// Your request was throttled because you have exceeded the limit of allowed client calls.
/// Try making the call later.
///
///
/// The value for this input parameter is invalid.
///
///
/// The specified client is invalid.
///
///
/// The caller is not authorized to perform this operation.
///
///
/// The specified resource is not found.
///
///
/// If the client session is expired. Once the client is connected, the session is valid
/// for 45 minutes. Client should reconnect to the channel to continue sending/receiving
/// messages.
///
/// REST API Reference for GetIceServerConfig Operation
GetIceServerConfigResponse GetIceServerConfig(GetIceServerConfigRequest request);
///
/// Gets the Interactive Connectivity Establishment (ICE) server configuration information,
/// including URIs, username, and password which can be used to configure the WebRTC connection.
/// The ICE component uses this configuration information to setup the WebRTC connection,
/// including authenticating with the Traversal Using Relays around NAT (TURN) relay server.
///
///
///
///
/// TURN is a protocol that is used to improve the connectivity of peer-to-peer applications.
/// By providing a cloud-based relay service, TURN ensures that a connection can be established
/// even when one or more peers are incapable of a direct peer-to-peer connection. For
/// more information, see A
/// REST API For Access To TURN Services.
///
///
///
/// You can invoke this API to establish a fallback mechanism in case either of the peers
/// is unable to establish a direct peer-to-peer connection over a signaling channel.
/// You must specify either a signaling channel ARN or the client ID in order to invoke
/// this API.
///
///
/// Container for the necessary parameters to execute the GetIceServerConfig service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the GetIceServerConfig service method, as returned by KinesisVideoSignalingChannels.
///
/// Your request was throttled because you have exceeded the limit of allowed client calls.
/// Try making the call later.
///
///
/// The value for this input parameter is invalid.
///
///
/// The specified client is invalid.
///
///
/// The caller is not authorized to perform this operation.
///
///
/// The specified resource is not found.
///
///
/// If the client session is expired. Once the client is connected, the session is valid
/// for 45 minutes. Client should reconnect to the channel to continue sending/receiving
/// messages.
///
/// REST API Reference for GetIceServerConfig Operation
Task GetIceServerConfigAsync(GetIceServerConfigRequest request, CancellationToken cancellationToken = default(CancellationToken));
#endregion
#region SendAlexaOfferToMaster
///
/// This API allows you to connect WebRTC-enabled devices with Alexa display devices.
/// When invoked, it sends the Alexa Session Description Protocol (SDP) offer to the master
/// peer. The offer is delivered as soon as the master is connected to the specified signaling
/// channel. This API returns the SDP answer from the connected master. If the master
/// is not connected to the signaling channel, redelivery requests are made until the
/// message expires.
///
/// Container for the necessary parameters to execute the SendAlexaOfferToMaster service method.
///
/// The response from the SendAlexaOfferToMaster service method, as returned by KinesisVideoSignalingChannels.
///
/// Your request was throttled because you have exceeded the limit of allowed client calls.
/// Try making the call later.
///
///
/// The value for this input parameter is invalid.
///
///
/// The caller is not authorized to perform this operation.
///
///
/// The specified resource is not found.
///
/// REST API Reference for SendAlexaOfferToMaster Operation
SendAlexaOfferToMasterResponse SendAlexaOfferToMaster(SendAlexaOfferToMasterRequest request);
///
/// This API allows you to connect WebRTC-enabled devices with Alexa display devices.
/// When invoked, it sends the Alexa Session Description Protocol (SDP) offer to the master
/// peer. The offer is delivered as soon as the master is connected to the specified signaling
/// channel. This API returns the SDP answer from the connected master. If the master
/// is not connected to the signaling channel, redelivery requests are made until the
/// message expires.
///
/// Container for the necessary parameters to execute the SendAlexaOfferToMaster service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the SendAlexaOfferToMaster service method, as returned by KinesisVideoSignalingChannels.
///
/// Your request was throttled because you have exceeded the limit of allowed client calls.
/// Try making the call later.
///
///
/// The value for this input parameter is invalid.
///
///
/// The caller is not authorized to perform this operation.
///
///
/// The specified resource is not found.
///
/// REST API Reference for SendAlexaOfferToMaster Operation
Task SendAlexaOfferToMasterAsync(SendAlexaOfferToMasterRequest request, CancellationToken cancellationToken = default(CancellationToken));
#endregion
}
}