/*
* 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-webrtc-storage-2018-05-10.normal.json service model.
*/
using System;
using System.Collections.Generic;
using Amazon.Runtime;
using Amazon.KinesisVideoWebRTCStorage.Model;
namespace Amazon.KinesisVideoWebRTCStorage
{
///
/// Interface for accessing KinesisVideoWebRTCStorage
///
///
///
public partial interface IAmazonKinesisVideoWebRTCStorage : IAmazonService, IDisposable
{
#region JoinStorageSession
///
/// Join the ongoing one way-video and/or multi-way audio WebRTC session as a video producing
/// device for an input channel. If there’s no existing session for the channel, a new
/// streaming session needs to be created, and the Amazon Resource Name (ARN) of the signaling
/// channel must be provided.
///
///
///
/// Currently for the SINGLE_MASTER
type, a video producing device is able
/// to ingest both audio and video media into a stream, while viewers can only ingest
/// audio. Both a video producing device and viewers can join the session first, and wait
/// for other participants.
///
///
///
/// While participants are having peer to peer conversations through webRTC, the ingested
/// media session will be stored into the Kinesis Video Stream. Multiple viewers are able
/// to playback real-time media.
///
///
///
/// Customers can also use existing Kinesis Video Streams features like HLS
/// or DASH
playback, Image generation, and more with ingested WebRTC media.
///
///
///
/// Assume that only one video producing device client can be associated with a session
/// for the channel. If more than one client joins the session of a specific channel as
/// a video producing device, the most recent client request takes precedence.
///
///
///
/// Container for the necessary parameters to execute the JoinStorageSession service method.
///
/// The response from the JoinStorageSession service method, as returned by KinesisVideoWebRTCStorage.
///
/// You do not have required permissions to perform this operation.
///
///
/// Kinesis Video Streams has throttled the request 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 resource is not found.
///
/// REST API Reference for JoinStorageSession Operation
JoinStorageSessionResponse JoinStorageSession(JoinStorageSessionRequest request);
///
/// Initiates the asynchronous execution of the JoinStorageSession operation.
///
///
/// Container for the necessary parameters to execute the JoinStorageSession operation on AmazonKinesisVideoWebRTCStorageClient.
/// 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 EndJoinStorageSession
/// operation.
/// REST API Reference for JoinStorageSession Operation
IAsyncResult BeginJoinStorageSession(JoinStorageSessionRequest request, AsyncCallback callback, object state);
///
/// Finishes the asynchronous execution of the JoinStorageSession operation.
///
///
/// The IAsyncResult returned by the call to BeginJoinStorageSession.
///
/// Returns a JoinStorageSessionResult from KinesisVideoWebRTCStorage.
/// REST API Reference for JoinStorageSession Operation
JoinStorageSessionResponse EndJoinStorageSession(IAsyncResult asyncResult);
#endregion
}
}