/* * 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.Collections.Generic; using System.Net; using Amazon.KinesisVideoSignalingChannels.Model; using Amazon.KinesisVideoSignalingChannels.Model.Internal.MarshallTransformations; using Amazon.KinesisVideoSignalingChannels.Internal; using Amazon.Runtime; using Amazon.Runtime.Internal; using Amazon.Runtime.Internal.Auth; using Amazon.Runtime.Internal.Transform; namespace Amazon.KinesisVideoSignalingChannels { /// /// Implementation 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 class AmazonKinesisVideoSignalingChannelsClient : AmazonServiceClient, IAmazonKinesisVideoSignalingChannels { private static IServiceMetadata serviceMetadata = new AmazonKinesisVideoSignalingChannelsMetadata(); #region Constructors /// /// Constructs AmazonKinesisVideoSignalingChannelsClient with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSProfileName" value="AWS Default"/> /// </appSettings> /// </configuration> /// /// /// public AmazonKinesisVideoSignalingChannelsClient() : base(FallbackCredentialsFactory.GetCredentials(), new AmazonKinesisVideoSignalingChannelsConfig()) { } /// /// Constructs AmazonKinesisVideoSignalingChannelsClient with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSProfileName" value="AWS Default"/> /// </appSettings> /// </configuration> /// /// /// /// The region to connect. public AmazonKinesisVideoSignalingChannelsClient(RegionEndpoint region) : base(FallbackCredentialsFactory.GetCredentials(), new AmazonKinesisVideoSignalingChannelsConfig{RegionEndpoint = region}) { } /// /// Constructs AmazonKinesisVideoSignalingChannelsClient with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSProfileName" value="AWS Default"/> /// </appSettings> /// </configuration> /// /// /// /// The AmazonKinesisVideoSignalingChannelsClient Configuration Object public AmazonKinesisVideoSignalingChannelsClient(AmazonKinesisVideoSignalingChannelsConfig config) : base(FallbackCredentialsFactory.GetCredentials(config), config){} /// /// Constructs AmazonKinesisVideoSignalingChannelsClient with AWS Credentials /// /// AWS Credentials public AmazonKinesisVideoSignalingChannelsClient(AWSCredentials credentials) : this(credentials, new AmazonKinesisVideoSignalingChannelsConfig()) { } /// /// Constructs AmazonKinesisVideoSignalingChannelsClient with AWS Credentials /// /// AWS Credentials /// The region to connect. public AmazonKinesisVideoSignalingChannelsClient(AWSCredentials credentials, RegionEndpoint region) : this(credentials, new AmazonKinesisVideoSignalingChannelsConfig{RegionEndpoint = region}) { } /// /// Constructs AmazonKinesisVideoSignalingChannelsClient with AWS Credentials and an /// AmazonKinesisVideoSignalingChannelsClient Configuration object. /// /// AWS Credentials /// The AmazonKinesisVideoSignalingChannelsClient Configuration Object public AmazonKinesisVideoSignalingChannelsClient(AWSCredentials credentials, AmazonKinesisVideoSignalingChannelsConfig clientConfig) : base(credentials, clientConfig) { } /// /// Constructs AmazonKinesisVideoSignalingChannelsClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key public AmazonKinesisVideoSignalingChannelsClient(string awsAccessKeyId, string awsSecretAccessKey) : this(awsAccessKeyId, awsSecretAccessKey, new AmazonKinesisVideoSignalingChannelsConfig()) { } /// /// Constructs AmazonKinesisVideoSignalingChannelsClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key /// The region to connect. public AmazonKinesisVideoSignalingChannelsClient(string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint region) : this(awsAccessKeyId, awsSecretAccessKey, new AmazonKinesisVideoSignalingChannelsConfig() {RegionEndpoint=region}) { } /// /// Constructs AmazonKinesisVideoSignalingChannelsClient with AWS Access Key ID, AWS Secret Key and an /// AmazonKinesisVideoSignalingChannelsClient Configuration object. /// /// AWS Access Key ID /// AWS Secret Access Key /// The AmazonKinesisVideoSignalingChannelsClient Configuration Object public AmazonKinesisVideoSignalingChannelsClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonKinesisVideoSignalingChannelsConfig clientConfig) : base(awsAccessKeyId, awsSecretAccessKey, clientConfig) { } /// /// Constructs AmazonKinesisVideoSignalingChannelsClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key /// AWS Session Token public AmazonKinesisVideoSignalingChannelsClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken) : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonKinesisVideoSignalingChannelsConfig()) { } /// /// Constructs AmazonKinesisVideoSignalingChannelsClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key /// AWS Session Token /// The region to connect. public AmazonKinesisVideoSignalingChannelsClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, RegionEndpoint region) : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonKinesisVideoSignalingChannelsConfig{RegionEndpoint = region}) { } /// /// Constructs AmazonKinesisVideoSignalingChannelsClient with AWS Access Key ID, AWS Secret Key and an /// AmazonKinesisVideoSignalingChannelsClient Configuration object. /// /// AWS Access Key ID /// AWS Secret Access Key /// AWS Session Token /// The AmazonKinesisVideoSignalingChannelsClient Configuration Object public AmazonKinesisVideoSignalingChannelsClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonKinesisVideoSignalingChannelsConfig clientConfig) : base(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, clientConfig) { } #endregion #region Overrides /// /// Creates the signer for the service. /// protected override AbstractAWSSigner CreateSigner() { return new AWS4Signer(); } /// /// Customize the pipeline /// /// protected override void CustomizeRuntimePipeline(RuntimePipeline pipeline) { pipeline.RemoveHandler(); pipeline.AddHandlerAfter(new AmazonKinesisVideoSignalingChannelsEndpointResolver()); } /// /// Capture metadata for the service. /// protected override IServiceMetadata ServiceMetadata { get { return serviceMetadata; } } #endregion #region Dispose /// /// Disposes the service client. /// protected override void Dispose(bool disposing) { base.Dispose(disposing); } #endregion #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 public virtual GetIceServerConfigResponse GetIceServerConfig(GetIceServerConfigRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = GetIceServerConfigRequestMarshaller.Instance; options.ResponseUnmarshaller = GetIceServerConfigResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Initiates the asynchronous execution of the GetIceServerConfig operation. /// /// /// Container for the necessary parameters to execute the GetIceServerConfig operation on AmazonKinesisVideoSignalingChannelsClient. /// An AsyncCallback delegate that is invoked when the operation completes. /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback /// procedure using the AsyncState property. /// /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetIceServerConfig /// operation. /// REST API Reference for GetIceServerConfig Operation public virtual IAsyncResult BeginGetIceServerConfig(GetIceServerConfigRequest request, AsyncCallback callback, object state) { var options = new InvokeOptions(); options.RequestMarshaller = GetIceServerConfigRequestMarshaller.Instance; options.ResponseUnmarshaller = GetIceServerConfigResponseUnmarshaller.Instance; return BeginInvoke(request, options, callback, state); } /// /// Finishes the asynchronous execution of the GetIceServerConfig operation. /// /// /// The IAsyncResult returned by the call to BeginGetIceServerConfig. /// /// Returns a GetIceServerConfigResult from KinesisVideoSignalingChannels. /// REST API Reference for GetIceServerConfig Operation public virtual GetIceServerConfigResponse EndGetIceServerConfig(IAsyncResult asyncResult) { return EndInvoke(asyncResult); } #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 public virtual SendAlexaOfferToMasterResponse SendAlexaOfferToMaster(SendAlexaOfferToMasterRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = SendAlexaOfferToMasterRequestMarshaller.Instance; options.ResponseUnmarshaller = SendAlexaOfferToMasterResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Initiates the asynchronous execution of the SendAlexaOfferToMaster operation. /// /// /// Container for the necessary parameters to execute the SendAlexaOfferToMaster operation on AmazonKinesisVideoSignalingChannelsClient. /// An AsyncCallback delegate that is invoked when the operation completes. /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback /// procedure using the AsyncState property. /// /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndSendAlexaOfferToMaster /// operation. /// REST API Reference for SendAlexaOfferToMaster Operation public virtual IAsyncResult BeginSendAlexaOfferToMaster(SendAlexaOfferToMasterRequest request, AsyncCallback callback, object state) { var options = new InvokeOptions(); options.RequestMarshaller = SendAlexaOfferToMasterRequestMarshaller.Instance; options.ResponseUnmarshaller = SendAlexaOfferToMasterResponseUnmarshaller.Instance; return BeginInvoke(request, options, callback, state); } /// /// Finishes the asynchronous execution of the SendAlexaOfferToMaster operation. /// /// /// The IAsyncResult returned by the call to BeginSendAlexaOfferToMaster. /// /// Returns a SendAlexaOfferToMasterResult from KinesisVideoSignalingChannels. /// REST API Reference for SendAlexaOfferToMaster Operation public virtual SendAlexaOfferToMasterResponse EndSendAlexaOfferToMaster(IAsyncResult asyncResult) { return EndInvoke(asyncResult); } #endregion } }