/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include 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. See Also:
AWS
* API Reference
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.
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.
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.
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.
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.
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.
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.
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.
The format of the output playlist. Valid formats include HLSv3
,
* HLSv4
, and Smooth
.
The format of the output playlist. Valid formats include HLSv3
,
* HLSv4
, and Smooth
.
The format of the output playlist. Valid formats include HLSv3
,
* HLSv4
, and Smooth
.
The format of the output playlist. Valid formats include HLSv3
,
* HLSv4
, and Smooth
.
The format of the output playlist. Valid formats include HLSv3
,
* HLSv4
, and Smooth
.
The format of the output playlist. Valid formats include HLSv3
,
* HLSv4
, and Smooth
.
The format of the output playlist. Valid formats include HLSv3
,
* HLSv4
, and Smooth
.
The format of the output playlist. Valid formats include HLSv3
,
* HLSv4
, and Smooth
.
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:Key
00000.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.
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:Key
00000.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.
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:Key
00000.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.
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:Key
00000.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.
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:Key
00000.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.
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:Key
00000.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.
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:Key
00000.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.
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:Key
00000.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.
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:Key
00000.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.
The HLS content protection settings, if any, that you want Elastic Transcoder * to apply to the output files associated with this playlist.
*/ inline const HlsContentProtection& GetHlsContentProtection() const{ return m_hlsContentProtection; } /** *The HLS content protection settings, if any, that you want Elastic Transcoder * to apply to the output files associated with this playlist.
*/ inline bool HlsContentProtectionHasBeenSet() const { return m_hlsContentProtectionHasBeenSet; } /** *The HLS content protection settings, if any, that you want Elastic Transcoder * to apply to the output files associated with this playlist.
*/ inline void SetHlsContentProtection(const HlsContentProtection& value) { m_hlsContentProtectionHasBeenSet = true; m_hlsContentProtection = value; } /** *The HLS content protection settings, if any, that you want Elastic Transcoder * to apply to the output files associated with this playlist.
*/ inline void SetHlsContentProtection(HlsContentProtection&& value) { m_hlsContentProtectionHasBeenSet = true; m_hlsContentProtection = std::move(value); } /** *The HLS content protection settings, if any, that you want Elastic Transcoder * to apply to the output files associated with this playlist.
*/ inline Playlist& WithHlsContentProtection(const HlsContentProtection& value) { SetHlsContentProtection(value); return *this;} /** *The HLS content protection settings, if any, that you want Elastic Transcoder * to apply to the output files associated with this playlist.
*/ inline Playlist& WithHlsContentProtection(HlsContentProtection&& value) { SetHlsContentProtection(std::move(value)); return *this;} /** *The DRM settings, if any, that you want Elastic Transcoder to apply to the * output files associated with this playlist.
*/ inline const PlayReadyDrm& GetPlayReadyDrm() const{ return m_playReadyDrm; } /** *The DRM settings, if any, that you want Elastic Transcoder to apply to the * output files associated with this playlist.
*/ inline bool PlayReadyDrmHasBeenSet() const { return m_playReadyDrmHasBeenSet; } /** *The DRM settings, if any, that you want Elastic Transcoder to apply to the * output files associated with this playlist.
*/ inline void SetPlayReadyDrm(const PlayReadyDrm& value) { m_playReadyDrmHasBeenSet = true; m_playReadyDrm = value; } /** *The DRM settings, if any, that you want Elastic Transcoder to apply to the * output files associated with this playlist.
*/ inline void SetPlayReadyDrm(PlayReadyDrm&& value) { m_playReadyDrmHasBeenSet = true; m_playReadyDrm = std::move(value); } /** *The DRM settings, if any, that you want Elastic Transcoder to apply to the * output files associated with this playlist.
*/ inline Playlist& WithPlayReadyDrm(const PlayReadyDrm& value) { SetPlayReadyDrm(value); return *this;} /** *The DRM settings, if any, that you want Elastic Transcoder to apply to the * output files associated with this playlist.
*/ inline Playlist& WithPlayReadyDrm(PlayReadyDrm&& value) { SetPlayReadyDrm(std::move(value)); return *this;} /** *The status of the job with which the playlist is associated.
*/ inline const Aws::String& GetStatus() const{ return m_status; } /** *The status of the job with which the playlist is associated.
*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *The status of the job with which the playlist is associated.
*/ inline void SetStatus(const Aws::String& value) { m_statusHasBeenSet = true; m_status = value; } /** *The status of the job with which the playlist is associated.
*/ inline void SetStatus(Aws::String&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *The status of the job with which the playlist is associated.
*/ inline void SetStatus(const char* value) { m_statusHasBeenSet = true; m_status.assign(value); } /** *The status of the job with which the playlist is associated.
*/ inline Playlist& WithStatus(const Aws::String& value) { SetStatus(value); return *this;} /** *The status of the job with which the playlist is associated.
*/ inline Playlist& WithStatus(Aws::String&& value) { SetStatus(std::move(value)); return *this;} /** *The status of the job with which the playlist is associated.
*/ inline Playlist& WithStatus(const char* value) { SetStatus(value); return *this;} /** *Information that further explains the status.
*/ inline const Aws::String& GetStatusDetail() const{ return m_statusDetail; } /** *Information that further explains the status.
*/ inline bool StatusDetailHasBeenSet() const { return m_statusDetailHasBeenSet; } /** *Information that further explains the status.
*/ inline void SetStatusDetail(const Aws::String& value) { m_statusDetailHasBeenSet = true; m_statusDetail = value; } /** *Information that further explains the status.
*/ inline void SetStatusDetail(Aws::String&& value) { m_statusDetailHasBeenSet = true; m_statusDetail = std::move(value); } /** *Information that further explains the status.
*/ inline void SetStatusDetail(const char* value) { m_statusDetailHasBeenSet = true; m_statusDetail.assign(value); } /** *Information that further explains the status.
*/ inline Playlist& WithStatusDetail(const Aws::String& value) { SetStatusDetail(value); return *this;} /** *Information that further explains the status.
*/ inline Playlist& WithStatusDetail(Aws::String&& value) { SetStatusDetail(std::move(value)); return *this;} /** *Information that further explains the status.
*/ inline Playlist& WithStatusDetail(const char* value) { SetStatusDetail(value); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_format; bool m_formatHasBeenSet = false; Aws::Vector