/*
* 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-media-2017-09-30.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.KinesisVideoMedia.Model
{
///
/// Container for the parameters to the GetMedia operation.
/// Use this API to retrieve media content from a Kinesis video stream. In the request,
/// you identify the stream name or stream Amazon Resource Name (ARN), and the starting
/// chunk. Kinesis Video Streams then returns a stream of chunks in order by fragment
/// number.
///
///
///
/// You must first call the GetDataEndpoint
API to get an endpoint. Then
/// send the GetMedia
requests to this endpoint using the --endpoint-url
/// parameter.
///
///
///
/// When you put media data (fragments) on a stream, Kinesis Video Streams stores each
/// incoming fragment and related metadata in what is called a "chunk." For more information,
/// see PutMedia.
/// The GetMedia
API returns a stream of these chunks starting from the chunk
/// that you specify in the request.
///
///
///
/// The following limits apply when using the GetMedia
API:
///
/// -
///
/// A client can call
GetMedia
up to five times per second per stream.
///
/// -
///
/// Kinesis Video Streams sends media data at a rate of up to 25 megabytes per second
/// (or 200 megabits per second) during a
GetMedia
session.
///
///
///
/// If an error is thrown after invoking a Kinesis Video Streams media API, in addition
/// to the HTTP status code and the response body, it includes the following pieces of
/// information:
///
/// -
///
///
x-amz-ErrorType
HTTP header – contains a more specific error type in
/// addition to what the HTTP status code provides.
///
/// -
///
///
x-amz-RequestId
HTTP header – if you want to report an issue to AWS,
/// the support team can better diagnose the problem if given the Request Id.
///
///
///
/// Both the HTTP status code and the ErrorType header can be utilized to make programmatic
/// decisions about whether errors are retry-able and under what conditions, as well as
/// provide information on what actions the client programmer might need to take in order
/// to successfully try again.
///
///
///
/// For more information, see the Errors section at the bottom of this topic, as
/// well as Common
/// Errors.
///
///
///
public partial class GetMediaRequest : AmazonKinesisVideoMediaRequest
{
private StartSelector _startSelector;
private string _streamARN;
private string _streamName;
///
/// Gets and sets the property StartSelector.
///
/// Identifies the starting chunk to get from the specified stream.
///
///
[AWSProperty(Required=true)]
public StartSelector StartSelector
{
get { return this._startSelector; }
set { this._startSelector = value; }
}
// Check to see if StartSelector property is set
internal bool IsSetStartSelector()
{
return this._startSelector != null;
}
///
/// Gets and sets the property StreamARN.
///
/// The ARN of the stream from where you want to get the media content. If you don't specify
/// the streamARN
, you must specify the streamName
.
///
///
[AWSProperty(Min=1, Max=1024)]
public string StreamARN
{
get { return this._streamARN; }
set { this._streamARN = value; }
}
// Check to see if StreamARN property is set
internal bool IsSetStreamARN()
{
return this._streamARN != null;
}
///
/// Gets and sets the property StreamName.
///
/// The Kinesis video stream name from where you want to get the media content. If you
/// don't specify the streamName
, you must specify the streamARN
.
///
///
[AWSProperty(Min=1, Max=256)]
public string StreamName
{
get { return this._streamName; }
set { this._streamName = value; }
}
// Check to see if StreamName property is set
internal bool IsSetStreamName()
{
return this._streamName != null;
}
}
}