/*
* 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
{
///
/// Identifies the chunk on the Kinesis video stream where you want the GetMedia
/// API to start returning media data. You have the following options to identify the
/// starting chunk:
///
/// -
///
/// Choose the latest (or oldest) chunk.
///
///
-
///
/// Identify a specific chunk. You can identify a specific chunk either by providing a
/// fragment number or timestamp (server or producer).
///
///
-
///
/// Each chunk's metadata includes a continuation token as a Matroska (MKV) tag (
AWS_KINESISVIDEO_CONTINUATION_TOKEN
).
/// If your previous GetMedia
request terminated, you can use this tag value
/// in your next GetMedia
request. The API then starts returning chunks starting
/// where the last API ended.
///
///
///
public partial class StartSelector
{
private string _afterFragmentNumber;
private string _continuationToken;
private StartSelectorType _startSelectorType;
private DateTime? _startTimestamp;
///
/// Gets and sets the property AfterFragmentNumber.
///
/// Specifies the fragment number from where you want the GetMedia
API to
/// start returning the fragments.
///
///
[AWSProperty(Min=1, Max=128)]
public string AfterFragmentNumber
{
get { return this._afterFragmentNumber; }
set { this._afterFragmentNumber = value; }
}
// Check to see if AfterFragmentNumber property is set
internal bool IsSetAfterFragmentNumber()
{
return this._afterFragmentNumber != null;
}
///
/// Gets and sets the property ContinuationToken.
///
/// Continuation token that Kinesis Video Streams returned in the previous GetMedia
/// response. The GetMedia
API then starts with the chunk identified by the
/// continuation token.
///
///
[AWSProperty(Min=1, Max=128)]
public string ContinuationToken
{
get { return this._continuationToken; }
set { this._continuationToken = value; }
}
// Check to see if ContinuationToken property is set
internal bool IsSetContinuationToken()
{
return this._continuationToken != null;
}
///
/// Gets and sets the property StartSelectorType.
///
/// Identifies the fragment on the Kinesis video stream where you want to start getting
/// the data from.
///
/// -
///
/// NOW - Start with the latest chunk on the stream.
///
///
-
///
/// EARLIEST - Start with earliest available chunk on the stream.
///
///
-
///
/// FRAGMENT_NUMBER - Start with the chunk after a specific fragment. You must also specify
/// the
AfterFragmentNumber
parameter.
///
/// -
///
/// PRODUCER_TIMESTAMP or SERVER_TIMESTAMP - Start with the chunk containing a fragment
/// with the specified producer or server timestamp. You specify the timestamp by adding
///
StartTimestamp
.
///
/// -
///
/// CONTINUATION_TOKEN - Read using the specified continuation token.
///
///
///
/// If you choose the NOW, EARLIEST, or CONTINUATION_TOKEN as the startSelectorType
,
/// you don't provide any additional information in the startSelector
.
///
///
///
[AWSProperty(Required=true)]
public StartSelectorType StartSelectorType
{
get { return this._startSelectorType; }
set { this._startSelectorType = value; }
}
// Check to see if StartSelectorType property is set
internal bool IsSetStartSelectorType()
{
return this._startSelectorType != null;
}
///
/// Gets and sets the property StartTimestamp.
///
/// A timestamp value. This value is required if you choose the PRODUCER_TIMESTAMP or
/// the SERVER_TIMESTAMP as the startSelectorType
. The GetMedia
/// API then starts with the chunk containing the fragment that has the specified timestamp.
///
///
public DateTime StartTimestamp
{
get { return this._startTimestamp.GetValueOrDefault(); }
set { this._startTimestamp = value; }
}
// Check to see if StartTimestamp property is set
internal bool IsSetStartTimestamp()
{
return this._startTimestamp.HasValue;
}
}
}