/*
* 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 elastictranscoder-2012-09-25.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.ElasticTranscoder.Model
{
///
/// Use Only for Fragmented MP4 or MPEG-TS Outputs. If you specify a preset for which
/// the value of Container is fmp4 (Fragmented MP4) or ts (MPEG-TS),
/// Playlists contains information about the master playlists that you want Elastic Transcoder
/// to create. We recommend that you create only one master playlist per output format.
/// The maximum number of master playlists in a job is 30.
///
public partial class Playlist
{
private string _format;
private HlsContentProtection _hlsContentProtection;
private string _name;
private List _outputKeys = new List();
private PlayReadyDrm _playReadyDrm;
private string _status;
private string _statusDetail;
///
/// Gets and sets the property Format.
///
/// The format of the output playlist. Valid formats include HLSv3, HLSv4,
/// and Smooth.
///
///
public string Format
{
get { return this._format; }
set { this._format = value; }
}
// Check to see if Format property is set
internal bool IsSetFormat()
{
return this._format != null;
}
///
/// Gets and sets the property HlsContentProtection.
///
/// The HLS content protection settings, if any, that you want Elastic Transcoder to apply
/// to the output files associated with this playlist.
///
///
public HlsContentProtection HlsContentProtection
{
get { return this._hlsContentProtection; }
set { this._hlsContentProtection = value; }
}
// Check to see if HlsContentProtection property is set
internal bool IsSetHlsContentProtection()
{
return this._hlsContentProtection != null;
}
///
/// Gets and sets the property Name.
///
/// The name that you want Elastic Transcoder to assign to the master playlist, for example,
/// nyc-vacation.m3u8. If the name includes a / character, the section of
/// the name before the last / must be identical for all Name
/// objects. If you create more than one master playlist, the values of all Name
/// objects must be unique.
///
///
///
/// Elastic Transcoder automatically appends the relevant file extension to the file name
/// (.m3u8 for HLSv3 and HLSv4 playlists, and .ism
/// and .ismc for Smooth playlists). If you include a file extension
/// in Name, the file name will have two extensions.
///
///
///
[AWSProperty(Min=1, Max=255)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property OutputKeys.
///
/// For each output in this job that you want to include in a master playlist, the value
/// of the Outputs:Key object.
///
/// -
///
/// If your output is not
HLS or does not have a segment duration set, the
/// name of the output file is a concatenation of OutputKeyPrefix and Outputs:Key:
///
///
///
/// OutputKeyPrefixOutputs:Key
///
/// -
///
/// If your output is
HLSv3 and has a segment duration set, or is not included
/// in a playlist, Elastic Transcoder creates an output playlist file with a file extension
/// of .m3u8, and a series of .ts files that include a five-digit
/// sequential counter beginning with 00000:
///
///
///
/// OutputKeyPrefixOutputs:Key.m3u8
///
///
///
/// OutputKeyPrefixOutputs:Key00000.ts
///
/// -
///
/// If your output is
HLSv4, has a segment duration set, and is included
/// in an HLSv4 playlist, Elastic Transcoder creates an output playlist file
/// with a file extension of _v4.m3u8. If the output is video, Elastic Transcoder
/// also creates an output file with an extension of _iframe.m3u8:
///
///
///
/// OutputKeyPrefixOutputs:Key_v4.m3u8
///
///
///
/// OutputKeyPrefixOutputs:Key_iframe.m3u8
///
///
///
/// OutputKeyPrefixOutputs:Key.ts
///
///
///
/// Elastic Transcoder automatically appends the relevant file extension to the file name.
/// If you include a file extension in Output Key, the file name will have two extensions.
///
///
///
/// If you include more than one output in a playlist, any segment duration settings,
/// clip settings, or caption settings must be the same for all outputs in the playlist.
/// For Smooth playlists, the Audio:Profile, Video:Profile,
/// and Video:FrameRate to Video:KeyframesMaxDist ratio must
/// be the same for all outputs.
///
///
[AWSProperty(Max=30)]
public List OutputKeys
{
get { return this._outputKeys; }
set { this._outputKeys = value; }
}
// Check to see if OutputKeys property is set
internal bool IsSetOutputKeys()
{
return this._outputKeys != null && this._outputKeys.Count > 0;
}
///
/// Gets and sets the property PlayReadyDrm.
///
/// The DRM settings, if any, that you want Elastic Transcoder to apply to the output
/// files associated with this playlist.
///
///
public PlayReadyDrm PlayReadyDrm
{
get { return this._playReadyDrm; }
set { this._playReadyDrm = value; }
}
// Check to see if PlayReadyDrm property is set
internal bool IsSetPlayReadyDrm()
{
return this._playReadyDrm != null;
}
///
/// Gets and sets the property Status.
///
/// The status of the job with which the playlist is associated.
///
///
public string Status
{
get { return this._status; }
set { this._status = value; }
}
// Check to see if Status property is set
internal bool IsSetStatus()
{
return this._status != null;
}
///
/// Gets and sets the property StatusDetail.
///
/// Information that further explains the status.
///
///
[AWSProperty(Min=0, Max=255)]
public string StatusDetail
{
get { return this._statusDetail; }
set { this._statusDetail = value; }
}
// Check to see if StatusDetail property is set
internal bool IsSetStatusDetail()
{
return this._statusDetail != null;
}
}
}