package Paws::ElasticTranscoder::CreateJobPlaylist;
  use Moose;
  has Format => (is => 'ro', isa => 'Str');
  has HlsContentProtection => (is => 'ro', isa => 'Paws::ElasticTranscoder::HlsContentProtection');
  has Name => (is => 'ro', isa => 'Str');
  has OutputKeys => (is => 'ro', isa => 'ArrayRef[Str]');
  has PlayReadyDrm => (is => 'ro', isa => 'Paws::ElasticTranscoder::PlayReadyDrm');
1;

### main pod documentation begin ###

=head1 NAME

Paws::ElasticTranscoder::CreateJobPlaylist

=head1 USAGE

This class represents one of two things:

=head3 Arguments in a call to a service

Use the attributes of this class as arguments to methods. You shouldn't make instances of this class. 
Each attribute should be used as a named argument in the calls that expect this type of object.

As an example, if Att1 is expected to be a Paws::ElasticTranscoder::CreateJobPlaylist object:

  $service_obj->Method(Att1 => { Format => $value, ..., PlayReadyDrm => $value  });

=head3 Results returned from an API call

Use accessors for each attribute. If Att1 is expected to be an Paws::ElasticTranscoder::CreateJobPlaylist object:

  $result = $service_obj->Method(...);
  $result->Att1->Format

=head1 DESCRIPTION

Information about the master playlist.

=head1 ATTRIBUTES


=head2 Format => Str

  The format of the output playlist. Valid formats include C<HLSv3>,
C<HLSv4>, and C<Smooth>.


=head2 HlsContentProtection => L<Paws::ElasticTranscoder::HlsContentProtection>

  The HLS content protection settings, if any, that you want Elastic
Transcoder to apply to the output files associated with this playlist.


=head2 Name => Str

  The name that you want Elastic Transcoder to assign to the master
playlist, for example, nyc-vacation.m3u8. If the name includes a C</>
character, the section of the name before the last C</> must be
identical for all C<Name> objects. If you create more than one master
playlist, the values of all C<Name> objects must be unique.

B<Note:> Elastic Transcoder automatically appends the relevant file
extension to the file name (C<.m3u8> for C<HLSv3> and C<HLSv4>
playlists, and C<.ism> and C<.ismc> for C<Smooth> playlists). If you
include a file extension in C<Name>, the file name will have two
extensions.


=head2 OutputKeys => ArrayRef[Str]

  For each output in this job that you want to include in a master
playlist, the value of the C<Outputs:Key> object.

=over

=item *

If your output is not C<HLS> or does not have a segment duration set,
the name of the output file is a concatenation of C<OutputKeyPrefix>
and C<Outputs:Key>:

OutputKeyPrefixC<Outputs:Key>

=item *

If your output is C<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 C<.m3u8>, and a series of C<.ts> files
that include a five-digit sequential counter beginning with 00000:

OutputKeyPrefixC<Outputs:Key>.m3u8

OutputKeyPrefixC<Outputs:Key>00000.ts

=item *

If your output is C<HLSv4>, has a segment duration set, and is included
in an C<HLSv4> playlist, Elastic Transcoder creates an output playlist
file with a file extension of C<_v4.m3u8>. If the output is video,
Elastic Transcoder also creates an output file with an extension of
C<_iframe.m3u8>:

OutputKeyPrefixC<Outputs:Key>_v4.m3u8

OutputKeyPrefixC<Outputs:Key>_iframe.m3u8

OutputKeyPrefixC<Outputs:Key>.ts

=back

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 C<Smooth> playlists, the C<Audio:Profile>,
C<Video:Profile>, and C<Video:FrameRate> to C<Video:KeyframesMaxDist>
ratio must be the same for all outputs.


=head2 PlayReadyDrm => L<Paws::ElasticTranscoder::PlayReadyDrm>

  The DRM settings, if any, that you want Elastic Transcoder to apply to
the output files associated with this playlist.



=head1 SEE ALSO

This class forms part of L<Paws>, describing an object used in L<Paws::ElasticTranscoder>

=head1 BUGS and CONTRIBUTIONS

The source code is located here: https://github.com/pplu/aws-sdk-perl

Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues

=cut

