1// Code generated by smithy-go-codegen DO NOT EDIT.
2
3package types
4
5// The file to be used as album art. There can be multiple artworks associated with
6// an audio file, to a maximum of 20. To remove artwork or leave the artwork empty,
7// you can either set Artwork to null, or set the Merge Policy to "Replace" and use
8// an empty Artwork array. To pass through existing artwork unchanged, set the
9// Merge Policy to "Prepend", "Append", or "Fallback", and use an empty Artwork
10// array.
11type Artwork struct {
12
13	// The format of album art, if any. Valid formats are .jpg and .png.
14	AlbumArtFormat *string
15
16	// The encryption settings, if any, that you want Elastic Transcoder to apply to
17	// your artwork.
18	Encryption *Encryption
19
20	// The name of the file to be used as album art. To determine which Amazon S3
21	// bucket contains the specified file, Elastic Transcoder checks the pipeline
22	// specified by PipelineId; the InputBucket object in that pipeline identifies the
23	// bucket. If the file name includes a prefix, for example, cooking/pie.jpg,
24	// include the prefix in the key. If the file isn't in the specified bucket,
25	// Elastic Transcoder returns an error.
26	InputKey *string
27
28	// The maximum height of the output album art in pixels. If you specify auto,
29	// Elastic Transcoder uses 600 as the default value. If you specify a numeric
30	// value, enter an even integer between 32 and 3072, inclusive.
31	MaxHeight *string
32
33	// The maximum width of the output album art in pixels. If you specify auto,
34	// Elastic Transcoder uses 600 as the default value. If you specify a numeric
35	// value, enter an even integer between 32 and 4096, inclusive.
36	MaxWidth *string
37
38	// When you set PaddingPolicy to Pad, Elastic Transcoder may add white bars to the
39	// top and bottom and/or left and right sides of the output album art to make the
40	// total size of the output art match the values that you specified for MaxWidth
41	// and MaxHeight.
42	PaddingPolicy *string
43
44	// Specify one of the following values to control scaling of the output album
45	// art:
46	//
47	// * Fit: Elastic Transcoder scales the output art so it matches the value
48	// that you specified in either MaxWidth or MaxHeight without exceeding the other
49	// value.
50	//
51	// * Fill: Elastic Transcoder scales the output art so it matches the value
52	// that you specified in either MaxWidth or MaxHeight and matches or exceeds the
53	// other value. Elastic Transcoder centers the output art and then crops it in the
54	// dimension (if any) that exceeds the maximum value.
55	//
56	// * Stretch: Elastic
57	// Transcoder stretches the output art to match the values that you specified for
58	// MaxWidth and MaxHeight. If the relative proportions of the input art and the
59	// output art are different, the output art will be distorted.
60	//
61	// * Keep: Elastic
62	// Transcoder does not scale the output art. If either dimension of the input art
63	// exceeds the values that you specified for MaxWidth and MaxHeight, Elastic
64	// Transcoder crops the output art.
65	//
66	// * ShrinkToFit: Elastic Transcoder scales the
67	// output art down so that its dimensions match the values that you specified for
68	// at least one of MaxWidth and MaxHeight without exceeding either value. If you
69	// specify this option, Elastic Transcoder does not scale the art up.
70	//
71	// *
72	// ShrinkToFill Elastic Transcoder scales the output art down so that its
73	// dimensions match the values that you specified for at least one of MaxWidth and
74	// MaxHeight without dropping below either value. If you specify this option,
75	// Elastic Transcoder does not scale the art up.
76	SizingPolicy *string
77}
78
79// Options associated with your audio codec.
80type AudioCodecOptions struct {
81
82	// You can only choose an audio bit depth when you specify flac or pcm for the
83	// value of Audio:Codec. The bit depth of a sample is how many bits of information
84	// are included in the audio samples. The higher the bit depth, the better the
85	// audio, but the larger the file. Valid values are 16 and 24. The most common bit
86	// depth is 24.
87	BitDepth *string
88
89	// You can only choose an audio bit order when you specify pcm for the value of
90	// Audio:Codec. The order the bits of a PCM sample are stored in. The supported
91	// value is LittleEndian.
92	BitOrder *string
93
94	// You can only choose an audio profile when you specify AAC for the value of
95	// Audio:Codec. Specify the AAC profile for the output file. Elastic Transcoder
96	// supports the following profiles:
97	//
98	// * auto: If you specify auto, Elastic
99	// Transcoder selects the profile based on the bit rate selected for the output
100	// file.
101	//
102	// * AAC-LC: The most common AAC profile. Use for bit rates larger than 64
103	// kbps.
104	//
105	// * HE-AAC: Not supported on some older players and devices. Use for bit
106	// rates between 40 and 80 kbps.
107	//
108	// * HE-AACv2: Not supported on some players and
109	// devices. Use for bit rates less than 48 kbps.
110	//
111	// All outputs in a Smooth playlist
112	// must have the same value for Profile. If you created any presets before AAC
113	// profiles were added, Elastic Transcoder automatically updated your presets to
114	// use AAC-LC. You can change the value as required.
115	Profile *string
116
117	// You can only choose whether an audio sample is signed when you specify pcm for
118	// the value of Audio:Codec. Whether audio samples are represented with negative
119	// and positive numbers (signed) or only positive numbers (unsigned). The supported
120	// value is Signed.
121	Signed *string
122}
123
124// Parameters required for transcoding audio.
125type AudioParameters struct {
126
127	// The method of organizing audio channels and tracks. Use Audio:Channels to
128	// specify the number of channels in your output, and Audio:AudioPackingMode to
129	// specify the number of tracks and their relation to the channels. If you do not
130	// specify an Audio:AudioPackingMode, Elastic Transcoder uses SingleTrack. The
131	// following values are valid: SingleTrack, OneChannelPerTrack, and
132	// OneChannelPerTrackWithMosTo8Tracks When you specify SingleTrack, Elastic
133	// Transcoder creates a single track for your output. The track can have up to
134	// eight channels. Use SingleTrack for all non-mxf containers. The outputs of
135	// SingleTrack for a specific channel value and inputs are as follows:
136	//
137	// * 0
138	// channels with any input: Audio omitted from the output
139	//
140	// * 1, 2, or auto
141	// channels with no audio input: Audio omitted from the output
142	//
143	// * 1  channel with
144	// any input with audio: One track with one channel, downmixed if necessary
145	//
146	// * 2
147	// channels with one track with one channel: One track with two identical
148	// channels
149	//
150	// * 2 or auto  channels with two tracks with one channel each: One track
151	// with two channels
152	//
153	// * 2 or auto  channels with one track with two channels: One
154	// track with two channels
155	//
156	// * 2  channels with one track with multiple channels:
157	// One track with two channels
158	//
159	// * auto  channels with one track with one channel:
160	// One track with one channel
161	//
162	// * auto  channels with one track with multiple
163	// channels: One track with multiple channels
164	//
165	// When you specify OneChannelPerTrack,
166	// Elastic Transcoder creates a new track for every channel in your output. Your
167	// output can have up to eight single-channel tracks. The outputs of
168	// OneChannelPerTrack for a specific channel value and inputs are as follows:
169	//
170	// * 0
171	// channels with any input: Audio omitted from the output
172	//
173	// * 1, 2, or auto
174	// channels with no audio input: Audio omitted from the output
175	//
176	// * 1  channel with
177	// any input with audio: One track with one channel, downmixed if necessary
178	//
179	// * 2
180	// channels with one track with one channel: Two tracks with one identical channel
181	// each
182	//
183	// * 2 or auto  channels with two tracks with one channel each: Two tracks
184	// with one channel each
185	//
186	// * 2 or auto  channels with one track with two channels:
187	// Two tracks with one channel each
188	//
189	// * 2  channels with one track with multiple
190	// channels: Two tracks with one channel each
191	//
192	// * auto  channels with one track with
193	// one channel: One track with one channel
194	//
195	// * auto  channels with one track with
196	// multiple channels: Up to eight tracks with one channel each
197	//
198	// When you specify
199	// OneChannelPerTrackWithMosTo8Tracks, Elastic Transcoder creates eight
200	// single-channel tracks for your output. All tracks that do not contain audio data
201	// from an input channel are MOS, or Mit Out Sound, tracks. The outputs of
202	// OneChannelPerTrackWithMosTo8Tracks for a specific channel value and inputs are
203	// as follows:
204	//
205	// * 0  channels with any input: Audio omitted from the output
206	//
207	// * 1,
208	// 2, or auto  channels with no audio input: Audio omitted from the output
209	//
210	// * 1
211	// channel with any input with audio: One track with one channel, downmixed if
212	// necessary, plus six MOS tracks
213	//
214	// * 2  channels with one track with one channel:
215	// Two tracks with one identical channel each, plus six MOS tracks
216	//
217	// * 2 or auto
218	// channels with two tracks with one channel each: Two tracks with one channel
219	// each, plus six MOS tracks
220	//
221	// * 2 or auto  channels with one track with two
222	// channels: Two tracks with one channel each, plus six MOS tracks
223	//
224	// * 2  channels
225	// with one track with multiple channels: Two tracks with one channel each, plus
226	// six MOS tracks
227	//
228	// * auto  channels with one track with one channel: One track with
229	// one channel, plus seven MOS tracks
230	//
231	// * auto  channels with one track with
232	// multiple channels: Up to eight tracks with one channel each, plus MOS tracks
233	// until there are eight tracks in all
234	AudioPackingMode *string
235
236	// The bit rate of the audio stream in the output file, in kilobits/second. Enter
237	// an integer between 64 and 320, inclusive.
238	BitRate *string
239
240	// The number of audio channels in the output file. The following values are valid:
241	// auto, 0, 1, 2 One channel carries the information played by a single speaker.
242	// For example, a stereo track with two channels sends one channel to the left
243	// speaker, and the other channel to the right speaker. The output channels are
244	// organized into tracks. If you want Elastic Transcoder to automatically detect
245	// the number of audio channels in the input file and use that value for the output
246	// file, select auto. The output of a specific channel value and inputs are as
247	// follows:
248	//
249	// * auto channel specified, with any input: Pass through up to eight
250	// input channels.
251	//
252	// * 0 channels specified, with any input: Audio omitted from the
253	// output.
254	//
255	// * 1 channel specified, with at least one input channel: Mono sound.
256	//
257	// *
258	// 2 channels specified, with any input: Two identical mono channels or stereo. For
259	// more information about tracks, see Audio:AudioPackingMode.
260	//
261	// For more information
262	// about how Elastic Transcoder organizes channels and tracks, see
263	// Audio:AudioPackingMode.
264	Channels *string
265
266	// The audio codec for the output file. Valid values include aac, flac, mp2, mp3,
267	// pcm, and vorbis.
268	Codec *string
269
270	// If you specified AAC for Audio:Codec, this is the AAC compression profile to
271	// use. Valid values include: auto, AAC-LC, HE-AAC, HE-AACv2 If you specify auto,
272	// Elastic Transcoder chooses a profile based on the bit rate of the output file.
273	CodecOptions *AudioCodecOptions
274
275	// The sample rate of the audio stream in the output file, in Hertz. Valid values
276	// include: auto, 22050, 32000, 44100, 48000, 96000 If you specify auto, Elastic
277	// Transcoder automatically detects the sample rate.
278	SampleRate *string
279}
280
281// The file format of the output captions. If you leave this value blank, Elastic
282// Transcoder returns an error.
283type CaptionFormat struct {
284
285	// The encryption settings, if any, that you want Elastic Transcoder to apply to
286	// your caption formats.
287	Encryption *Encryption
288
289	// The format you specify determines whether Elastic Transcoder generates an
290	// embedded or sidecar caption for this output.
291	//
292	// * Valid Embedded Caption
293	// Formats:
294	//
295	// * for FLAC: None
296	//
297	// * For MP3: None
298	//
299	// * For MP4: mov-text
300	//
301	// * For MPEG-TS:
302	// None
303	//
304	// * For ogg: None
305	//
306	// * For webm: None
307	//
308	// * Valid Sidecar Caption Formats:
309	// Elastic Transcoder supports dfxp (first div element only), scc, srt, and webvtt.
310	// If you want ttml or smpte-tt compatible captions, specify dfxp as your output
311	// format.
312	//
313	// * For FMP4: dfxp
314	//
315	// * Non-FMP4 outputs: All sidecar types
316	//
317	// fmp4 captions
318	// have an extension of .ismt
319	Format *string
320
321	// The prefix for caption filenames, in the form description-{language}, where:
322	//
323	// *
324	// description is a description of the video.
325	//
326	// * {language} is a literal value that
327	// Elastic Transcoder replaces with the two- or three-letter code for the language
328	// of the caption in the output file names.
329	//
330	// If you don't include {language} in the
331	// file name pattern, Elastic Transcoder automatically appends "{language}" to the
332	// value that you specify for the description. In addition, Elastic Transcoder
333	// automatically appends the count to the end of the segment files. For example,
334	// suppose you're transcoding into srt format. When you enter
335	// "Sydney-{language}-sunrise", and the language of the captions is English (en),
336	// the name of the first caption file is be Sydney-en-sunrise00000.srt.
337	Pattern *string
338}
339
340// The captions to be created, if any.
341type Captions struct {
342
343	// The array of file formats for the output captions. If you leave this value
344	// blank, Elastic Transcoder returns an error.
345	CaptionFormats []CaptionFormat
346
347	// Source files for the input sidecar captions used during the transcoding process.
348	// To omit all sidecar captions, leave CaptionSources blank.
349	//
350	// Deprecated: This member has been deprecated.
351	CaptionSources []CaptionSource
352
353	// A policy that determines how Elastic Transcoder handles the existence of
354	// multiple captions.
355	//
356	// * MergeOverride: Elastic Transcoder transcodes both embedded
357	// and sidecar captions into outputs. If captions for a language are embedded in
358	// the input file and also appear in a sidecar file, Elastic Transcoder uses the
359	// sidecar captions and ignores the embedded captions for that language.
360	//
361	// *
362	// MergeRetain: Elastic Transcoder transcodes both embedded and sidecar captions
363	// into outputs. If captions for a language are embedded in the input file and also
364	// appear in a sidecar file, Elastic Transcoder uses the embedded captions and
365	// ignores the sidecar captions for that language. If CaptionSources is empty,
366	// Elastic Transcoder omits all sidecar captions from the output files.
367	//
368	// *
369	// Override: Elastic Transcoder transcodes only the sidecar captions that you
370	// specify in CaptionSources.
371	//
372	// MergePolicy cannot be null.
373	//
374	// Deprecated: This member has been deprecated.
375	MergePolicy *string
376}
377
378// A source file for the input sidecar captions used during the transcoding
379// process.
380type CaptionSource struct {
381
382	// The encryption settings, if any, that Elastic Transcoder needs to decyrpt your
383	// caption sources, or that you want Elastic Transcoder to apply to your caption
384	// sources.
385	Encryption *Encryption
386
387	// The name of the sidecar caption file that you want Elastic Transcoder to include
388	// in the output file.
389	Key *string
390
391	// The label of the caption shown in the player when choosing a language. We
392	// recommend that you put the caption language name here, in the language of the
393	// captions.
394	Label *string
395
396	// A string that specifies the language of the caption. If you specified multiple
397	// inputs with captions, the caption language must match in order to be included in
398	// the output. Specify this as one of:
399	//
400	// * 2-character ISO 639-1 code
401	//
402	// * 3-character
403	// ISO 639-2 code
404	//
405	// For more information on ISO language codes and language names,
406	// see the List of ISO 639-1 codes.
407	Language *string
408
409	// For clip generation or captions that do not start at the same time as the
410	// associated video file, the TimeOffset tells Elastic Transcoder how much of the
411	// video to encode before including captions. Specify the TimeOffset in the form
412	// [+-]SS.sss or [+-]HH:mm:SS.ss.
413	TimeOffset *string
414}
415
416// Settings for one clip in a composition. All jobs in a playlist must have the
417// same clip settings.
418type Clip struct {
419
420	// Settings that determine when a clip begins and how long it lasts.
421	TimeSpan *TimeSpan
422}
423
424// The CreateJobOutput structure.
425type CreateJobOutput struct {
426
427	// Information about the album art that you want Elastic Transcoder to add to the
428	// file during transcoding. You can specify up to twenty album artworks for each
429	// output. Settings for each artwork must be defined in the job for the current
430	// output.
431	AlbumArt *JobAlbumArt
432
433	// You can configure Elastic Transcoder to transcode captions, or subtitles, from
434	// one format to another. All captions must be in UTF-8. Elastic Transcoder
435	// supports two types of captions:
436	//
437	// * Embedded: Embedded captions are included in
438	// the same file as the audio and video. Elastic Transcoder supports only one
439	// embedded caption per language, to a maximum of 300 embedded captions per file.
440	// Valid input values include: CEA-608 (EIA-608, first non-empty channel only),
441	// CEA-708 (EIA-708, first non-empty channel only), and mov-text Valid outputs
442	// include: mov-text Elastic Transcoder supports a maximum of one embedded format
443	// per output.
444	//
445	// * Sidecar: Sidecar captions are kept in a separate metadata file
446	// from the audio and video data. Sidecar captions require a player that is capable
447	// of understanding the relationship between the video file and the sidecar file.
448	// Elastic Transcoder supports only one sidecar caption per language, to a maximum
449	// of 20 sidecar captions per file. Valid input values include: dfxp (first div
450	// element only), ebu-tt, scc, smpt, srt, ttml (first div element only), and webvtt
451	// Valid outputs include: dfxp (first div element only), scc, srt, and webvtt.
452	//
453	// If
454	// you want ttml or smpte-tt compatible captions, specify dfxp as your output
455	// format. Elastic Transcoder does not support OCR (Optical Character Recognition),
456	// does not accept pictures as a valid input for captions, and is not available for
457	// audio-only transcoding. Elastic Transcoder does not preserve text formatting
458	// (for example, italics) during the transcoding process. To remove captions or
459	// leave the captions empty, set Captions to null. To pass through existing
460	// captions unchanged, set the MergePolicy to MergeRetain, and pass in a null
461	// CaptionSources array. For more information on embedded files, see the Subtitles
462	// Wikipedia page. For more information on sidecar files, see the Extensible
463	// Metadata Platform and Sidecar file Wikipedia pages.
464	Captions *Captions
465
466	// You can create an output file that contains an excerpt from the input file. This
467	// excerpt, called a clip, can come from the beginning, middle, or end of the file.
468	// The Composition object contains settings for the clips that make up an output
469	// file. For the current release, you can only specify settings for a single clip
470	// per output file. The Composition object cannot be null.
471	//
472	// Deprecated: This member has been deprecated.
473	Composition []Clip
474
475	// You can specify encryption settings for any output files that you want to use
476	// for a transcoding job. This includes the output file and any watermarks,
477	// thumbnails, album art, or captions that you want to use. You must specify
478	// encryption settings for each file individually.
479	Encryption *Encryption
480
481	// The name to assign to the transcoded file. Elastic Transcoder saves the file in
482	// the Amazon S3 bucket specified by the OutputBucket object in the pipeline that
483	// is specified by the pipeline ID. If a file with the specified name already
484	// exists in the output bucket, the job fails.
485	Key *string
486
487	// The Id of the preset to use for this job. The preset determines the audio,
488	// video, and thumbnail settings that Elastic Transcoder uses for transcoding.
489	PresetId *string
490
491	// The number of degrees clockwise by which you want Elastic Transcoder to rotate
492	// the output relative to the input. Enter one of the following values: auto, 0,
493	// 90, 180, 270. The value auto generally works only if the file that you're
494	// transcoding contains rotation metadata.
495	Rotate *string
496
497	// (Outputs in Fragmented MP4 or MPEG-TS format only. If you specify a preset in
498	// PresetId for which the value of Container is fmp4 (Fragmented MP4) or ts
499	// (MPEG-TS), SegmentDuration is the target maximum duration of each segment in
500	// seconds. For HLSv3 format playlists, each media segment is stored in a separate
501	// .ts file. For HLSv4 and Smooth playlists, all media segments for an output are
502	// stored in a single file. Each segment is approximately the length of the
503	// SegmentDuration, though individual segments might be shorter or longer. The
504	// range of valid values is 1 to 60 seconds. If the duration of the video is not
505	// evenly divisible by SegmentDuration, the duration of the last segment is the
506	// remainder of total length/SegmentDuration. Elastic Transcoder creates an
507	// output-specific playlist for each output HLS output that you specify in
508	// OutputKeys. To add an output to the master playlist for this job, include it in
509	// the OutputKeys of the associated playlist.
510	SegmentDuration *string
511
512	// The encryption settings, if any, that you want Elastic Transcoder to apply to
513	// your thumbnail.
514	ThumbnailEncryption *Encryption
515
516	// Whether you want Elastic Transcoder to create thumbnails for your videos and, if
517	// so, how you want Elastic Transcoder to name the files. If you don't want Elastic
518	// Transcoder to create thumbnails, specify "". If you do want Elastic Transcoder
519	// to create thumbnails, specify the information that you want to include in the
520	// file name for each thumbnail. You can specify the following values in any
521	// sequence:
522	//
523	// * {count} (Required): If you want to create thumbnails, you must
524	// include {count} in the ThumbnailPattern object. Wherever you specify {count},
525	// Elastic Transcoder adds a five-digit sequence number (beginning with 00001) to
526	// thumbnail file names. The number indicates where a given thumbnail appears in
527	// the sequence of thumbnails for a transcoded file. If you specify a literal value
528	// and/or {resolution} but you omit {count}, Elastic Transcoder returns a
529	// validation error and does not create the job.
530	//
531	// * Literal values (Optional): You
532	// can specify literal values anywhere in the ThumbnailPattern object. For example,
533	// you can include them as a file name prefix or as a delimiter between
534	// {resolution} and {count}.
535	//
536	// * {resolution} (Optional): If you want Elastic
537	// Transcoder to include the resolution in the file name, include {resolution} in
538	// the ThumbnailPattern object.
539	//
540	// When creating thumbnails, Elastic Transcoder
541	// automatically saves the files in the format (.jpg or .png) that appears in the
542	// preset that you specified in the PresetID value of CreateJobOutput. Elastic
543	// Transcoder also appends the applicable file name extension.
544	ThumbnailPattern *string
545
546	// Information about the watermarks that you want Elastic Transcoder to add to the
547	// video during transcoding. You can specify up to four watermarks for each output.
548	// Settings for each watermark must be defined in the preset for the current
549	// output.
550	Watermarks []JobWatermark
551}
552
553// Information about the master playlist.
554type CreateJobPlaylist struct {
555
556	// The format of the output playlist. Valid formats include HLSv3, HLSv4, and
557	// Smooth.
558	Format *string
559
560	// The HLS content protection settings, if any, that you want Elastic Transcoder to
561	// apply to the output files associated with this playlist.
562	HlsContentProtection *HlsContentProtection
563
564	// The name that you want Elastic Transcoder to assign to the master playlist, for
565	// example, nyc-vacation.m3u8. If the name includes a / character, the section of
566	// the name before the last / must be identical for all Name objects. If you create
567	// more than one master playlist, the values of all Name objects must be unique.
568	// Elastic Transcoder automatically appends the relevant file extension to the file
569	// name (.m3u8 for HLSv3 and HLSv4 playlists, and .ism and .ismc for Smooth
570	// playlists). If you include a file extension in Name, the file name will have two
571	// extensions.
572	Name *string
573
574	// For each output in this job that you want to include in a master playlist, the
575	// value of the Outputs:Key object.
576	//
577	// * If your output is not HLS or does not have a
578	// segment duration set, the name of the output file is a concatenation of
579	// OutputKeyPrefix and Outputs:Key: OutputKeyPrefixOutputs:Key
580	//
581	// * If your output is
582	// HLSv3 and has a segment duration set, or is not included in a playlist, Elastic
583	// Transcoder creates an output playlist file with a file extension of .m3u8, and a
584	// series of .ts files that include a five-digit sequential counter beginning with
585	// 00000: OutputKeyPrefixOutputs:Key.m3u8 OutputKeyPrefixOutputs:Key00000.ts
586	//
587	// * If
588	// your output is HLSv4, has a segment duration set, and is included in an HLSv4
589	// playlist, Elastic Transcoder creates an output playlist file with a file
590	// extension of _v4.m3u8. If the output is video, Elastic Transcoder also creates
591	// an output file with an extension of _iframe.m3u8:
592	// OutputKeyPrefixOutputs:Key_v4.m3u8 OutputKeyPrefixOutputs:Key_iframe.m3u8
593	// OutputKeyPrefixOutputs:Key.ts
594	//
595	// Elastic Transcoder automatically appends the
596	// relevant file extension to the file name. If you include a file extension in
597	// Output Key, the file name will have two extensions. If you include more than one
598	// output in a playlist, any segment duration settings, clip settings, or caption
599	// settings must be the same for all outputs in the playlist. For Smooth playlists,
600	// the Audio:Profile, Video:Profile, and Video:FrameRate to Video:KeyframesMaxDist
601	// ratio must be the same for all outputs.
602	OutputKeys []string
603
604	// The DRM settings, if any, that you want Elastic Transcoder to apply to the
605	// output files associated with this playlist.
606	PlayReadyDrm *PlayReadyDrm
607}
608
609// The detected properties of the input file. Elastic Transcoder identifies these
610// values from the input file.
611type DetectedProperties struct {
612
613	// The detected duration of the input file, in milliseconds.
614	DurationMillis *int64
615
616	// The detected file size of the input file, in bytes.
617	FileSize *int64
618
619	// The detected frame rate of the input file, in frames per second.
620	FrameRate *string
621
622	// The detected height of the input file, in pixels.
623	Height *int32
624
625	// The detected width of the input file, in pixels.
626	Width *int32
627}
628
629// The encryption settings, if any, that are used for decrypting your input files
630// or encrypting your output files. If your input file is encrypted, you must
631// specify the mode that Elastic Transcoder uses to decrypt your file, otherwise
632// you must specify the mode you want Elastic Transcoder to use to encrypt your
633// output files.
634type Encryption struct {
635
636	// The series of random bits created by a random bit generator, unique for every
637	// encryption operation, that you used to encrypt your input files or that you want
638	// Elastic Transcoder to use to encrypt your output files. The initialization
639	// vector must be base64-encoded, and it must be exactly 16 bytes long before being
640	// base64-encoded.
641	InitializationVector *string
642
643	// The data encryption key that you want Elastic Transcoder to use to encrypt your
644	// output file, or that was used to encrypt your input file. The key must be
645	// base64-encoded and it must be one of the following bit lengths before being
646	// base64-encoded: 128, 192, or 256. The key must also be encrypted by using the
647	// Amazon Key Management Service.
648	Key *string
649
650	// The MD5 digest of the key that you used to encrypt your input file, or that you
651	// want Elastic Transcoder to use to encrypt your output file. Elastic Transcoder
652	// uses the key digest as a checksum to make sure your key was not corrupted in
653	// transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes
654	// long before being base64-encoded.
655	KeyMd5 *string
656
657	// The specific server-side encryption mode that you want Elastic Transcoder to use
658	// when decrypting your input files or encrypting your output files. Elastic
659	// Transcoder supports the following options:
660	//
661	// * s3: Amazon S3 creates and manages
662	// the keys used for encrypting your files.
663	//
664	// * s3-aws-kms: Amazon S3 calls the
665	// Amazon Key Management Service, which creates and manages the keys that are used
666	// for encrypting your files. If you specify s3-aws-kms and you don't want to use
667	// the default key, you must add the AWS-KMS key that you want to use to your
668	// pipeline.
669	//
670	// * aes-cbc-pkcs7: A padded cipher-block mode of operation originally
671	// used for HLS files.
672	//
673	// * aes-ctr: AES Counter Mode.
674	//
675	// * aes-gcm: AES Galois Counter
676	// Mode, a mode of operation that is an authenticated encryption format, meaning
677	// that a file, key, or initialization vector that has been tampered with fails the
678	// decryption process.
679	//
680	// For all three AES options, you must provide the following
681	// settings, which must be base64-encoded:
682	//
683	// * Key
684	//
685	// * Key MD5
686	//
687	// * Initialization
688	// Vector
689	//
690	// For the AES modes, your private encryption keys and your unencrypted
691	// data are never stored by AWS; therefore, it is important that you safely manage
692	// your encryption keys. If you lose them, you won't be able to unencrypt your
693	// data.
694	Mode *string
695}
696
697// The HLS content protection settings, if any, that you want Elastic Transcoder to
698// apply to your output files.
699type HlsContentProtection struct {
700
701	// If Elastic Transcoder is generating your key for you, you must leave this field
702	// blank. The series of random bits created by a random bit generator, unique for
703	// every encryption operation, that you want Elastic Transcoder to use to encrypt
704	// your output files. The initialization vector must be base64-encoded, and it must
705	// be exactly 16 bytes before being base64-encoded.
706	InitializationVector *string
707
708	// If you want Elastic Transcoder to generate a key for you, leave this field
709	// blank. If you choose to supply your own key, you must encrypt the key by using
710	// AWS KMS. The key must be base64-encoded, and it must be one of the following bit
711	// lengths before being base64-encoded: 128, 192, or 256.
712	Key *string
713
714	// If Elastic Transcoder is generating your key for you, you must leave this field
715	// blank. The MD5 digest of the key that you want Elastic Transcoder to use to
716	// encrypt your output file, and that you want Elastic Transcoder to use as a
717	// checksum to make sure your key was not corrupted in transit. The key MD5 must be
718	// base64-encoded, and it must be exactly 16 bytes before being base64- encoded.
719	KeyMd5 *string
720
721	// Specify whether you want Elastic Transcoder to write your HLS license key to an
722	// Amazon S3 bucket. If you choose WithVariantPlaylists, LicenseAcquisitionUrl must
723	// be left blank and Elastic Transcoder writes your data key into the same bucket
724	// as the associated playlist.
725	KeyStoragePolicy *string
726
727	// The location of the license key required to decrypt your HLS playlist. The URL
728	// must be an absolute path, and is referenced in the URI attribute of the
729	// EXT-X-KEY metadata tag in the playlist file.
730	LicenseAcquisitionUrl *string
731
732	// The content protection method for your output. The only valid value is: aes-128.
733	// This value is written into the method attribute of the EXT-X-KEY metadata tag in
734	// the output playlist.
735	Method *string
736}
737
738// The captions to be created, if any.
739type InputCaptions struct {
740
741	// Source files for the input sidecar captions used during the transcoding process.
742	// To omit all sidecar captions, leave CaptionSources blank.
743	CaptionSources []CaptionSource
744
745	// A policy that determines how Elastic Transcoder handles the existence of
746	// multiple captions.
747	//
748	// * MergeOverride: Elastic Transcoder transcodes both embedded
749	// and sidecar captions into outputs. If captions for a language are embedded in
750	// the input file and also appear in a sidecar file, Elastic Transcoder uses the
751	// sidecar captions and ignores the embedded captions for that language.
752	//
753	// *
754	// MergeRetain: Elastic Transcoder transcodes both embedded and sidecar captions
755	// into outputs. If captions for a language are embedded in the input file and also
756	// appear in a sidecar file, Elastic Transcoder uses the embedded captions and
757	// ignores the sidecar captions for that language. If CaptionSources is empty,
758	// Elastic Transcoder omits all sidecar captions from the output files.
759	//
760	// *
761	// Override: Elastic Transcoder transcodes only the sidecar captions that you
762	// specify in CaptionSources.
763	//
764	// MergePolicy cannot be null.
765	MergePolicy *string
766}
767
768// A section of the response body that provides information about the job that is
769// created.
770type Job struct {
771
772	// The Amazon Resource Name (ARN) for the job.
773	Arn *string
774
775	// The identifier that Elastic Transcoder assigned to the job. You use this value
776	// to get settings for the job or to delete the job.
777	Id *string
778
779	// A section of the request or response body that provides information about the
780	// file that is being transcoded.
781	Input *JobInput
782
783	// Information about the files that you're transcoding. If you specified multiple
784	// files for this job, Elastic Transcoder stitches the files together to make one
785	// output.
786	Inputs []JobInput
787
788	// If you specified one output for a job, information about that output. If you
789	// specified multiple outputs for a job, the Output object lists information about
790	// the first output. This duplicates the information that is listed for the first
791	// output in the Outputs object. Outputs recommended instead. A section of the
792	// request or response body that provides information about the transcoded (target)
793	// file.
794	Output *JobOutput
795
796	// The value, if any, that you want Elastic Transcoder to prepend to the names of
797	// all files that this job creates, including output files, thumbnails, and
798	// playlists. We recommend that you add a / or some other delimiter to the end of
799	// the OutputKeyPrefix.
800	OutputKeyPrefix *string
801
802	// Information about the output files. We recommend that you use the Outputs syntax
803	// for all jobs, even when you want Elastic Transcoder to transcode a file into
804	// only one format. Do not use both the Outputs and Output syntaxes in the same
805	// request. You can create a maximum of 30 outputs per job. If you specify more
806	// than one output for a job, Elastic Transcoder creates the files for each output
807	// in the order in which you specify them in the job.
808	Outputs []JobOutput
809
810	// The Id of the pipeline that you want Elastic Transcoder to use for transcoding.
811	// The pipeline determines several settings, including the Amazon S3 bucket from
812	// which Elastic Transcoder gets the files to transcode and the bucket into which
813	// Elastic Transcoder puts the transcoded files.
814	PipelineId *string
815
816	// Outputs in Fragmented MP4 or MPEG-TS format only. If you specify a preset in
817	// PresetId for which the value of Container is fmp4 (Fragmented MP4) or ts
818	// (MPEG-TS), Playlists contains information about the master playlists that you
819	// want Elastic Transcoder to create. The maximum number of master playlists in a
820	// job is 30.
821	Playlists []Playlist
822
823	// The status of the job: Submitted, Progressing, Complete, Canceled, or Error.
824	Status *string
825
826	// Details about the timing of a job.
827	Timing *Timing
828
829	// User-defined metadata that you want to associate with an Elastic Transcoder job.
830	// You specify metadata in key/value pairs, and you can add up to 10 key/value
831	// pairs per job. Elastic Transcoder does not guarantee that key/value pairs are
832	// returned in the same order in which you specify them. Metadata keys and values
833	// must use characters from the following list:
834	//
835	// * 0-9
836	//
837	// * A-Z and a-z
838	//
839	// * Space
840	//
841	// *
842	// The following symbols: _.:/=+-%@
843	UserMetadata map[string]string
844}
845
846// The .jpg or .png file associated with an audio file.
847type JobAlbumArt struct {
848
849	// The file to be used as album art. There can be multiple artworks associated with
850	// an audio file, to a maximum of 20. Valid formats are .jpg and .png
851	Artwork []Artwork
852
853	// A policy that determines how Elastic Transcoder handles the existence of
854	// multiple album artwork files.
855	//
856	// * Replace: The specified album art replaces any
857	// existing album art.
858	//
859	// * Prepend: The specified album art is placed in front of
860	// any existing album art.
861	//
862	// * Append: The specified album art is placed after any
863	// existing album art.
864	//
865	// * Fallback: If the original input file contains artwork,
866	// Elastic Transcoder uses that artwork for the output. If the original input does
867	// not contain artwork, Elastic Transcoder uses the specified album art file.
868	MergePolicy *string
869}
870
871// Information about the file that you're transcoding.
872type JobInput struct {
873
874	// The aspect ratio of the input file. If you want Elastic Transcoder to
875	// automatically detect the aspect ratio of the input file, specify auto. If you
876	// want to specify the aspect ratio for the output file, enter one of the following
877	// values: 1:1, 4:3, 3:2, 16:9 If you specify a value other than auto, Elastic
878	// Transcoder disables automatic detection of the aspect ratio.
879	AspectRatio *string
880
881	// The container type for the input file. If you want Elastic Transcoder to
882	// automatically detect the container type of the input file, specify auto. If you
883	// want to specify the container type for the input file, enter one of the
884	// following values: 3gp, aac, asf, avi, divx, flv, m4a, mkv, mov, mp3, mp4, mpeg,
885	// mpeg-ps, mpeg-ts, mxf, ogg, vob, wav, webm
886	Container *string
887
888	// The detected properties of the input file.
889	DetectedProperties *DetectedProperties
890
891	// The encryption settings, if any, that are used for decrypting your input files.
892	// If your input file is encrypted, you must specify the mode that Elastic
893	// Transcoder uses to decrypt your file.
894	Encryption *Encryption
895
896	// The frame rate of the input file. If you want Elastic Transcoder to
897	// automatically detect the frame rate of the input file, specify auto. If you want
898	// to specify the frame rate for the input file, enter one of the following values:
899	// 10, 15, 23.97, 24, 25, 29.97, 30, 60 If you specify a value other than auto,
900	// Elastic Transcoder disables automatic detection of the frame rate.
901	FrameRate *string
902
903	// You can configure Elastic Transcoder to transcode captions, or subtitles, from
904	// one format to another. All captions must be in UTF-8. Elastic Transcoder
905	// supports two types of captions:
906	//
907	// * Embedded: Embedded captions are included in
908	// the same file as the audio and video. Elastic Transcoder supports only one
909	// embedded caption per language, to a maximum of 300 embedded captions per file.
910	// Valid input values include: CEA-608 (EIA-608, first non-empty channel only),
911	// CEA-708 (EIA-708, first non-empty channel only), and mov-text Valid outputs
912	// include: mov-text Elastic Transcoder supports a maximum of one embedded format
913	// per output.
914	//
915	// * Sidecar: Sidecar captions are kept in a separate metadata file
916	// from the audio and video data. Sidecar captions require a player that is capable
917	// of understanding the relationship between the video file and the sidecar file.
918	// Elastic Transcoder supports only one sidecar caption per language, to a maximum
919	// of 20 sidecar captions per file. Valid input values include: dfxp (first div
920	// element only), ebu-tt, scc, smpt, srt, ttml (first div element only), and webvtt
921	// Valid outputs include: dfxp (first div element only), scc, srt, and webvtt.
922	//
923	// If
924	// you want ttml or smpte-tt compatible captions, specify dfxp as your output
925	// format. Elastic Transcoder does not support OCR (Optical Character Recognition),
926	// does not accept pictures as a valid input for captions, and is not available for
927	// audio-only transcoding. Elastic Transcoder does not preserve text formatting
928	// (for example, italics) during the transcoding process. To remove captions or
929	// leave the captions empty, set Captions to null. To pass through existing
930	// captions unchanged, set the MergePolicy to MergeRetain, and pass in a null
931	// CaptionSources array. For more information on embedded files, see the Subtitles
932	// Wikipedia page. For more information on sidecar files, see the Extensible
933	// Metadata Platform and Sidecar file Wikipedia pages.
934	InputCaptions *InputCaptions
935
936	// Whether the input file is interlaced. If you want Elastic Transcoder to
937	// automatically detect whether the input file is interlaced, specify auto. If you
938	// want to specify whether the input file is interlaced, enter one of the following
939	// values: true, false If you specify a value other than auto, Elastic Transcoder
940	// disables automatic detection of interlacing.
941	Interlaced *string
942
943	// The name of the file to transcode. Elsewhere in the body of the JSON block is
944	// the the ID of the pipeline to use for processing the job. The InputBucket object
945	// in that pipeline tells Elastic Transcoder which Amazon S3 bucket to get the file
946	// from. If the file name includes a prefix, such as cooking/lasagna.mpg, include
947	// the prefix in the key. If the file isn't in the specified bucket, Elastic
948	// Transcoder returns an error.
949	Key *string
950
951	// This value must be auto, which causes Elastic Transcoder to automatically detect
952	// the resolution of the input file.
953	Resolution *string
954
955	// Settings for clipping an input. Each input can have different clip settings.
956	TimeSpan *TimeSpan
957}
958
959// Outputs recommended instead. If you specified one output for a job, information
960// about that output. If you specified multiple outputs for a job, the Output
961// object lists information about the first output. This duplicates the information
962// that is listed for the first output in the Outputs object.
963type JobOutput struct {
964
965	// The album art to be associated with the output file, if any.
966	AlbumArt *JobAlbumArt
967
968	// If Elastic Transcoder used a preset with a ColorSpaceConversionMode to transcode
969	// the output file, the AppliedColorSpaceConversion parameter shows the conversion
970	// used. If no ColorSpaceConversionMode was defined in the preset, this parameter
971	// is not be included in the job response.
972	AppliedColorSpaceConversion *string
973
974	// You can configure Elastic Transcoder to transcode captions, or subtitles, from
975	// one format to another. All captions must be in UTF-8. Elastic Transcoder
976	// supports two types of captions:
977	//
978	// * Embedded: Embedded captions are included in
979	// the same file as the audio and video. Elastic Transcoder supports only one
980	// embedded caption per language, to a maximum of 300 embedded captions per file.
981	// Valid input values include: CEA-608 (EIA-608, first non-empty channel only),
982	// CEA-708 (EIA-708, first non-empty channel only), and mov-text Valid outputs
983	// include: mov-text Elastic Transcoder supports a maximum of one embedded format
984	// per output.
985	//
986	// * Sidecar: Sidecar captions are kept in a separate metadata file
987	// from the audio and video data. Sidecar captions require a player that is capable
988	// of understanding the relationship between the video file and the sidecar file.
989	// Elastic Transcoder supports only one sidecar caption per language, to a maximum
990	// of 20 sidecar captions per file. Valid input values include: dfxp (first div
991	// element only), ebu-tt, scc, smpt, srt, ttml (first div element only), and webvtt
992	// Valid outputs include: dfxp (first div element only), scc, srt, and webvtt.
993	//
994	// If
995	// you want ttml or smpte-tt compatible captions, specify dfxp as your output
996	// format. Elastic Transcoder does not support OCR (Optical Character Recognition),
997	// does not accept pictures as a valid input for captions, and is not available for
998	// audio-only transcoding. Elastic Transcoder does not preserve text formatting
999	// (for example, italics) during the transcoding process. To remove captions or
1000	// leave the captions empty, set Captions to null. To pass through existing
1001	// captions unchanged, set the MergePolicy to MergeRetain, and pass in a null
1002	// CaptionSources array. For more information on embedded files, see the Subtitles
1003	// Wikipedia page. For more information on sidecar files, see the Extensible
1004	// Metadata Platform and Sidecar file Wikipedia pages.
1005	Captions *Captions
1006
1007	// You can create an output file that contains an excerpt from the input file. This
1008	// excerpt, called a clip, can come from the beginning, middle, or end of the file.
1009	// The Composition object contains settings for the clips that make up an output
1010	// file. For the current release, you can only specify settings for a single clip
1011	// per output file. The Composition object cannot be null.
1012	//
1013	// Deprecated: This member has been deprecated.
1014	Composition []Clip
1015
1016	// Duration of the output file, in seconds.
1017	Duration *int64
1018
1019	// Duration of the output file, in milliseconds.
1020	DurationMillis *int64
1021
1022	// The encryption settings, if any, that you want Elastic Transcoder to apply to
1023	// your output files. If you choose to use encryption, you must specify a mode to
1024	// use. If you choose not to use encryption, Elastic Transcoder writes an
1025	// unencrypted file to your Amazon S3 bucket.
1026	Encryption *Encryption
1027
1028	// File size of the output file, in bytes.
1029	FileSize *int64
1030
1031	// Frame rate of the output file, in frames per second.
1032	FrameRate *string
1033
1034	// Height of the output file, in pixels.
1035	Height *int32
1036
1037	// A sequential counter, starting with 1, that identifies an output among the
1038	// outputs from the current job. In the Output syntax, this value is always 1.
1039	Id *string
1040
1041	// The name to assign to the transcoded file. Elastic Transcoder saves the file in
1042	// the Amazon S3 bucket specified by the OutputBucket object in the pipeline that
1043	// is specified by the pipeline ID.
1044	Key *string
1045
1046	// The value of the Id object for the preset that you want to use for this job. The
1047	// preset determines the audio, video, and thumbnail settings that Elastic
1048	// Transcoder uses for transcoding. To use a preset that you created, specify the
1049	// preset ID that Elastic Transcoder returned in the response when you created the
1050	// preset. You can also use the Elastic Transcoder system presets, which you can
1051	// get with ListPresets.
1052	PresetId *string
1053
1054	// The number of degrees clockwise by which you want Elastic Transcoder to rotate
1055	// the output relative to the input. Enter one of the following values: auto, 0,
1056	// 90, 180, 270 The value auto generally works only if the file that you're
1057	// transcoding contains rotation metadata.
1058	Rotate *string
1059
1060	// (Outputs in Fragmented MP4 or MPEG-TS format only. If you specify a preset in
1061	// PresetId for which the value of Container is fmp4 (Fragmented MP4) or ts
1062	// (MPEG-TS), SegmentDuration is the target maximum duration of each segment in
1063	// seconds. For HLSv3 format playlists, each media segment is stored in a separate
1064	// .ts file. For HLSv4, MPEG-DASH, and Smooth playlists, all media segments for an
1065	// output are stored in a single file. Each segment is approximately the length of
1066	// the SegmentDuration, though individual segments might be shorter or longer. The
1067	// range of valid values is 1 to 60 seconds. If the duration of the video is not
1068	// evenly divisible by SegmentDuration, the duration of the last segment is the
1069	// remainder of total length/SegmentDuration. Elastic Transcoder creates an
1070	// output-specific playlist for each output HLS output that you specify in
1071	// OutputKeys. To add an output to the master playlist for this job, include it in
1072	// the OutputKeys of the associated playlist.
1073	SegmentDuration *string
1074
1075	// The status of one output in a job. If you specified only one output for the job,
1076	// Outputs:Status is always the same as Job:Status. If you specified more than one
1077	// output:
1078	//
1079	// * Job:Status and Outputs:Status for all of the outputs is Submitted
1080	// until Elastic Transcoder starts to process the first output.
1081	//
1082	// * When Elastic
1083	// Transcoder starts to process the first output, Outputs:Status for that output
1084	// and Job:Status both change to Progressing. For each output, the value of
1085	// Outputs:Status remains Submitted until Elastic Transcoder starts to process the
1086	// output.
1087	//
1088	// * Job:Status remains Progressing until all of the outputs reach a
1089	// terminal status, either Complete or Error.
1090	//
1091	// * When all of the outputs reach a
1092	// terminal status, Job:Status changes to Complete only if Outputs:Status for all
1093	// of the outputs is Complete. If Outputs:Status for one or more outputs is Error,
1094	// the terminal status for Job:Status is also Error.
1095	//
1096	// The value of Status is one of
1097	// the following: Submitted, Progressing, Complete, Canceled, or Error.
1098	Status *string
1099
1100	// Information that further explains Status.
1101	StatusDetail *string
1102
1103	// The encryption settings, if any, that you want Elastic Transcoder to apply to
1104	// your thumbnail.
1105	ThumbnailEncryption *Encryption
1106
1107	// Whether you want Elastic Transcoder to create thumbnails for your videos and, if
1108	// so, how you want Elastic Transcoder to name the files. If you don't want Elastic
1109	// Transcoder to create thumbnails, specify "". If you do want Elastic Transcoder
1110	// to create thumbnails, specify the information that you want to include in the
1111	// file name for each thumbnail. You can specify the following values in any
1112	// sequence:
1113	//
1114	// * {count} (Required): If you want to create thumbnails, you must
1115	// include {count} in the ThumbnailPattern object. Wherever you specify {count},
1116	// Elastic Transcoder adds a five-digit sequence number (beginning with 00001) to
1117	// thumbnail file names. The number indicates where a given thumbnail appears in
1118	// the sequence of thumbnails for a transcoded file. If you specify a literal value
1119	// and/or {resolution} but you omit {count}, Elastic Transcoder returns a
1120	// validation error and does not create the job.
1121	//
1122	// * Literal values (Optional): You
1123	// can specify literal values anywhere in the ThumbnailPattern object. For example,
1124	// you can include them as a file name prefix or as a delimiter between
1125	// {resolution} and {count}.
1126	//
1127	// * {resolution} (Optional): If you want Elastic
1128	// Transcoder to include the resolution in the file name, include {resolution} in
1129	// the ThumbnailPattern object.
1130	//
1131	// When creating thumbnails, Elastic Transcoder
1132	// automatically saves the files in the format (.jpg or .png) that appears in the
1133	// preset that you specified in the PresetID value of CreateJobOutput. Elastic
1134	// Transcoder also appends the applicable file name extension.
1135	ThumbnailPattern *string
1136
1137	// Information about the watermarks that you want Elastic Transcoder to add to the
1138	// video during transcoding. You can specify up to four watermarks for each output.
1139	// Settings for each watermark must be defined in the preset that you specify in
1140	// Preset for the current output. Watermarks are added to the output video in the
1141	// sequence in which you list them in the job output—the first watermark in the
1142	// list is added to the output video first, the second watermark in the list is
1143	// added next, and so on. As a result, if the settings in a preset cause Elastic
1144	// Transcoder to place all watermarks in the same location, the second watermark
1145	// that you add covers the first one, the third one covers the second, and the
1146	// fourth one covers the third.
1147	Watermarks []JobWatermark
1148
1149	// Specifies the width of the output file in pixels.
1150	Width *int32
1151}
1152
1153// Watermarks can be in .png or .jpg format. If you want to display a watermark
1154// that is not rectangular, use the .png format, which supports transparency.
1155type JobWatermark struct {
1156
1157	// The encryption settings, if any, that you want Elastic Transcoder to apply to
1158	// your watermarks.
1159	Encryption *Encryption
1160
1161	// The name of the .png or .jpg file that you want to use for the watermark. To
1162	// determine which Amazon S3 bucket contains the specified file, Elastic Transcoder
1163	// checks the pipeline specified by Pipeline; the Input Bucket object in that
1164	// pipeline identifies the bucket. If the file name includes a prefix, for example,
1165	// logos/128x64.png, include the prefix in the key. If the file isn't in the
1166	// specified bucket, Elastic Transcoder returns an error.
1167	InputKey *string
1168
1169	// The ID of the watermark settings that Elastic Transcoder uses to add watermarks
1170	// to the video during transcoding. The settings are in the preset specified by
1171	// Preset for the current output. In that preset, the value of Watermarks Id tells
1172	// Elastic Transcoder which settings to use.
1173	PresetWatermarkId *string
1174}
1175
1176// The Amazon Simple Notification Service (Amazon SNS) topic or topics to notify in
1177// order to report job status. To receive notifications, you must also subscribe to
1178// the new topic in the Amazon SNS console.
1179type Notifications struct {
1180
1181	// The Amazon SNS topic that you want to notify when Elastic Transcoder has
1182	// finished processing the job.
1183	Completed *string
1184
1185	// The Amazon SNS topic that you want to notify when Elastic Transcoder encounters
1186	// an error condition.
1187	Error *string
1188
1189	// The Amazon Simple Notification Service (Amazon SNS) topic that you want to
1190	// notify when Elastic Transcoder has started to process the job.
1191	Progressing *string
1192
1193	// The Amazon SNS topic that you want to notify when Elastic Transcoder encounters
1194	// a warning condition.
1195	Warning *string
1196}
1197
1198// The Permission structure.
1199type Permission struct {
1200
1201	// The permission that you want to give to the AWS user that is listed in Grantee.
1202	// Valid values include:
1203	//
1204	// * READ: The grantee can read the thumbnails and metadata
1205	// for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
1206	//
1207	// *
1208	// READ_ACP: The grantee can read the object ACL for thumbnails that Elastic
1209	// Transcoder adds to the Amazon S3 bucket.
1210	//
1211	// * WRITE_ACP: The grantee can write the
1212	// ACL for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
1213	//
1214	// *
1215	// FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP permissions for the
1216	// thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
1217	Access []string
1218
1219	// The AWS user or group that you want to have access to transcoded files and
1220	// playlists. To identify the user or group, you can specify the canonical user ID
1221	// for an AWS account, an origin access identity for a CloudFront distribution, the
1222	// registered email address of an AWS account, or a predefined Amazon S3 group.
1223	Grantee *string
1224
1225	// The type of value that appears in the Grantee object:
1226	//
1227	// * Canonical: Either the
1228	// canonical user ID for an AWS account or an origin access identity for an Amazon
1229	// CloudFront distribution. A canonical user ID is not the same as an AWS account
1230	// number.
1231	//
1232	// * Email: The registered email address of an AWS account.
1233	//
1234	// * Group: One
1235	// of the following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers, or
1236	// LogDelivery.
1237	GranteeType *string
1238}
1239
1240// The pipeline (queue) that is used to manage jobs.
1241type Pipeline struct {
1242
1243	// The Amazon Resource Name (ARN) for the pipeline.
1244	Arn *string
1245
1246	// The AWS Key Management Service (AWS KMS) key that you want to use with this
1247	// pipeline. If you use either s3 or s3-aws-kms as your Encryption:Mode, you don't
1248	// need to provide a key with your job because a default key, known as an AWS-KMS
1249	// key, is created for you automatically. You need to provide an AWS-KMS key only
1250	// if you want to use a non-default AWS-KMS key, or if you are using an
1251	// Encryption:Mode of aes-cbc-pkcs7, aes-ctr, or aes-gcm.
1252	AwsKmsKeyArn *string
1253
1254	// Information about the Amazon S3 bucket in which you want Elastic Transcoder to
1255	// save transcoded files and playlists. Either you specify both ContentConfig and
1256	// ThumbnailConfig, or you specify OutputBucket.
1257	//
1258	// * Bucket: The Amazon S3 bucket in
1259	// which you want Elastic Transcoder to save transcoded files and playlists.
1260	//
1261	// *
1262	// Permissions: A list of the users and/or predefined Amazon S3 groups you want to
1263	// have access to transcoded files and playlists, and the type of access that you
1264	// want them to have.
1265	//
1266	// * GranteeType: The type of value that appears in the Grantee
1267	// object:
1268	//
1269	// * Canonical: Either the canonical user ID for an AWS account or an
1270	// origin access identity for an Amazon CloudFront distribution.
1271	//
1272	// * Email: The
1273	// registered email address of an AWS account.
1274	//
1275	// * Group: One of the following
1276	// predefined Amazon S3 groups: AllUsers, AuthenticatedUsers, or LogDelivery.
1277	//
1278	// *
1279	// Grantee: The AWS user or group that you want to have access to transcoded files
1280	// and playlists.
1281	//
1282	// * Access: The permission that you want to give to the AWS user
1283	// that is listed in Grantee. Valid values include:
1284	//
1285	// * READ: The grantee can read
1286	// the objects and metadata for objects that Elastic Transcoder adds to the Amazon
1287	// S3 bucket.
1288	//
1289	// * READ_ACP: The grantee can read the object ACL for objects that
1290	// Elastic Transcoder adds to the Amazon S3 bucket.
1291	//
1292	// * WRITE_ACP: The grantee can
1293	// write the ACL for the objects that Elastic Transcoder adds to the Amazon S3
1294	// bucket.
1295	//
1296	// * FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP
1297	// permissions for the objects that Elastic Transcoder adds to the Amazon S3
1298	// bucket.
1299	//
1300	// * StorageClass: The Amazon S3 storage class, Standard or
1301	// ReducedRedundancy, that you want Elastic Transcoder to assign to the video files
1302	// and playlists that it stores in your Amazon S3 bucket.
1303	ContentConfig *PipelineOutputConfig
1304
1305	// The identifier for the pipeline. You use this value to identify the pipeline in
1306	// which you want to perform a variety of operations, such as creating a job or a
1307	// preset.
1308	Id *string
1309
1310	// The Amazon S3 bucket from which Elastic Transcoder gets media files for
1311	// transcoding and the graphics files, if any, that you want to use for watermarks.
1312	InputBucket *string
1313
1314	// The name of the pipeline. We recommend that the name be unique within the AWS
1315	// account, but uniqueness is not enforced. Constraints: Maximum 40 characters
1316	Name *string
1317
1318	// The Amazon Simple Notification Service (Amazon SNS) topic that you want to
1319	// notify to report job status. To receive notifications, you must also subscribe
1320	// to the new topic in the Amazon SNS console.
1321	//
1322	// * Progressing (optional): The
1323	// Amazon Simple Notification Service (Amazon SNS) topic that you want to notify
1324	// when Elastic Transcoder has started to process the job.
1325	//
1326	// * Complete (optional):
1327	// The Amazon SNS topic that you want to notify when Elastic Transcoder has
1328	// finished processing the job.
1329	//
1330	// * Warning (optional): The Amazon SNS topic that
1331	// you want to notify when Elastic Transcoder encounters a warning condition.
1332	//
1333	// *
1334	// Error (optional): The Amazon SNS topic that you want to notify when Elastic
1335	// Transcoder encounters an error condition.
1336	Notifications *Notifications
1337
1338	// The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded
1339	// files, thumbnails, and playlists. Either you specify this value, or you specify
1340	// both ContentConfig and ThumbnailConfig.
1341	OutputBucket *string
1342
1343	// The IAM Amazon Resource Name (ARN) for the role that Elastic Transcoder uses to
1344	// transcode jobs for this pipeline.
1345	Role *string
1346
1347	// The current status of the pipeline:
1348	//
1349	// * Active: The pipeline is processing
1350	// jobs.
1351	//
1352	// * Paused: The pipeline is not currently processing jobs.
1353	Status *string
1354
1355	// Information about the Amazon S3 bucket in which you want Elastic Transcoder to
1356	// save thumbnail files. Either you specify both ContentConfig and ThumbnailConfig,
1357	// or you specify OutputBucket.
1358	//
1359	// * Bucket: The Amazon S3 bucket in which you want
1360	// Elastic Transcoder to save thumbnail files.
1361	//
1362	// * Permissions: A list of the users
1363	// and/or predefined Amazon S3 groups you want to have access to thumbnail files,
1364	// and the type of access that you want them to have.
1365	//
1366	// * GranteeType: The type of
1367	// value that appears in the Grantee object:
1368	//
1369	// * Canonical: Either the canonical
1370	// user ID for an AWS account or an origin access identity for an Amazon CloudFront
1371	// distribution. A canonical user ID is not the same as an AWS account number.
1372	//
1373	// *
1374	// Email: The registered email address of an AWS account.
1375	//
1376	// * Group: One of the
1377	// following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers, or
1378	// LogDelivery.
1379	//
1380	// * Grantee: The AWS user or group that you want to have access to
1381	// thumbnail files.
1382	//
1383	// * Access: The permission that you want to give to the AWS user
1384	// that is listed in Grantee. Valid values include:
1385	//
1386	// * READ: The grantee can read
1387	// the thumbnails and metadata for thumbnails that Elastic Transcoder adds to the
1388	// Amazon S3 bucket.
1389	//
1390	// * READ_ACP: The grantee can read the object ACL for
1391	// thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
1392	//
1393	// * WRITE_ACP:
1394	// The grantee can write the ACL for the thumbnails that Elastic Transcoder adds to
1395	// the Amazon S3 bucket.
1396	//
1397	// * FULL_CONTROL: The grantee has READ, READ_ACP, and
1398	// WRITE_ACP permissions for the thumbnails that Elastic Transcoder adds to the
1399	// Amazon S3 bucket.
1400	//
1401	// * StorageClass: The Amazon S3 storage class, Standard or
1402	// ReducedRedundancy, that you want Elastic Transcoder to assign to the thumbnails
1403	// that it stores in your Amazon S3 bucket.
1404	ThumbnailConfig *PipelineOutputConfig
1405}
1406
1407// The PipelineOutputConfig structure.
1408type PipelineOutputConfig struct {
1409
1410	// The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded
1411	// files. Specify this value when all of the following are true:
1412	//
1413	// * You want to
1414	// save transcoded files, thumbnails (if any), and playlists (if any) together in
1415	// one bucket.
1416	//
1417	// * You do not want to specify the users or groups who have access to
1418	// the transcoded files, thumbnails, and playlists.
1419	//
1420	// * You do not want to specify
1421	// the permissions that Elastic Transcoder grants to the files.
1422	//
1423	// * You want to
1424	// associate the transcoded files and thumbnails with the Amazon S3 Standard
1425	// storage class.
1426	//
1427	// If you want to save transcoded files and playlists in one bucket
1428	// and thumbnails in another bucket, specify which users can access the transcoded
1429	// files or the permissions the users have, or change the Amazon S3 storage class,
1430	// omit OutputBucket and specify values for ContentConfig and ThumbnailConfig
1431	// instead.
1432	Bucket *string
1433
1434	// Optional. The Permissions object specifies which users and/or predefined Amazon
1435	// S3 groups you want to have access to transcoded files and playlists, and the
1436	// type of access you want them to have. You can grant permissions to a maximum of
1437	// 30 users and/or predefined Amazon S3 groups. If you include Permissions, Elastic
1438	// Transcoder grants only the permissions that you specify. It does not grant full
1439	// permissions to the owner of the role specified by Role. If you want that user to
1440	// have full control, you must explicitly grant full control to the user. If you
1441	// omit Permissions, Elastic Transcoder grants full control over the transcoded
1442	// files and playlists to the owner of the role specified by Role, and grants no
1443	// other permissions to any other user or group.
1444	Permissions []Permission
1445
1446	// The Amazon S3 storage class, Standard or ReducedRedundancy, that you want
1447	// Elastic Transcoder to assign to the video files and playlists that it stores in
1448	// your Amazon S3 bucket.
1449	StorageClass *string
1450}
1451
1452// Use Only for Fragmented MP4 or MPEG-TS Outputs. If you specify a preset for
1453// which the value of Container is fmp4 (Fragmented MP4) or ts (MPEG-TS), Playlists
1454// contains information about the master playlists that you want Elastic Transcoder
1455// to create. We recommend that you create only one master playlist per output
1456// format. The maximum number of master playlists in a job is 30.
1457type Playlist struct {
1458
1459	// The format of the output playlist. Valid formats include HLSv3, HLSv4, and
1460	// Smooth.
1461	Format *string
1462
1463	// The HLS content protection settings, if any, that you want Elastic Transcoder to
1464	// apply to the output files associated with this playlist.
1465	HlsContentProtection *HlsContentProtection
1466
1467	// The name that you want Elastic Transcoder to assign to the master playlist, for
1468	// example, nyc-vacation.m3u8. If the name includes a / character, the section of
1469	// the name before the last / must be identical for all Name objects. If you create
1470	// more than one master playlist, the values of all Name objects must be unique.
1471	// Elastic Transcoder automatically appends the relevant file extension to the file
1472	// name (.m3u8 for HLSv3 and HLSv4 playlists, and .ism and .ismc for Smooth
1473	// playlists). If you include a file extension in Name, the file name will have two
1474	// extensions.
1475	Name *string
1476
1477	// For each output in this job that you want to include in a master playlist, the
1478	// value of the Outputs:Key object.
1479	//
1480	// * If your output is not HLS or does not have a
1481	// segment duration set, the name of the output file is a concatenation of
1482	// OutputKeyPrefix and Outputs:Key: OutputKeyPrefixOutputs:Key
1483	//
1484	// * If your output is
1485	// HLSv3 and has a segment duration set, or is not included in a playlist, Elastic
1486	// Transcoder creates an output playlist file with a file extension of .m3u8, and a
1487	// series of .ts files that include a five-digit sequential counter beginning with
1488	// 00000: OutputKeyPrefixOutputs:Key.m3u8 OutputKeyPrefixOutputs:Key00000.ts
1489	//
1490	// * If
1491	// your output is HLSv4, has a segment duration set, and is included in an HLSv4
1492	// playlist, Elastic Transcoder creates an output playlist file with a file
1493	// extension of _v4.m3u8. If the output is video, Elastic Transcoder also creates
1494	// an output file with an extension of _iframe.m3u8:
1495	// OutputKeyPrefixOutputs:Key_v4.m3u8 OutputKeyPrefixOutputs:Key_iframe.m3u8
1496	// OutputKeyPrefixOutputs:Key.ts
1497	//
1498	// Elastic Transcoder automatically appends the
1499	// relevant file extension to the file name. If you include a file extension in
1500	// Output Key, the file name will have two extensions.
1501	//
1502	// If you include more than
1503	// one output in a playlist, any segment duration settings, clip settings, or
1504	// caption settings must be the same for all outputs in the playlist. For Smooth
1505	// playlists, the Audio:Profile, Video:Profile, and Video:FrameRate to
1506	// Video:KeyframesMaxDist ratio must be the same for all outputs.
1507	OutputKeys []string
1508
1509	// The DRM settings, if any, that you want Elastic Transcoder to apply to the
1510	// output files associated with this playlist.
1511	PlayReadyDrm *PlayReadyDrm
1512
1513	// The status of the job with which the playlist is associated.
1514	Status *string
1515
1516	// Information that further explains the status.
1517	StatusDetail *string
1518}
1519
1520// The PlayReady DRM settings, if any, that you want Elastic Transcoder to apply to
1521// the output files associated with this playlist. PlayReady DRM encrypts your
1522// media files using aes-ctr encryption. If you use DRM for an HLSv3 playlist, your
1523// outputs must have a master playlist.
1524type PlayReadyDrm struct {
1525
1526	// The type of DRM, if any, that you want Elastic Transcoder to apply to the output
1527	// files associated with this playlist.
1528	Format *string
1529
1530	// The series of random bits created by a random bit generator, unique for every
1531	// encryption operation, that you want Elastic Transcoder to use to encrypt your
1532	// files. The initialization vector must be base64-encoded, and it must be exactly
1533	// 8 bytes long before being base64-encoded. If no initialization vector is
1534	// provided, Elastic Transcoder generates one for you.
1535	InitializationVector *string
1536
1537	// The DRM key for your file, provided by your DRM license provider. The key must
1538	// be base64-encoded, and it must be one of the following bit lengths before being
1539	// base64-encoded: 128, 192, or 256. The key must also be encrypted by using AWS
1540	// KMS.
1541	Key *string
1542
1543	// The ID for your DRM key, so that your DRM license provider knows which key to
1544	// provide. The key ID must be provided in big endian, and Elastic Transcoder
1545	// converts it to little endian before inserting it into the PlayReady DRM headers.
1546	// If you are unsure whether your license server provides your key ID in big or
1547	// little endian, check with your DRM provider.
1548	KeyId *string
1549
1550	// The MD5 digest of the key used for DRM on your file, and that you want Elastic
1551	// Transcoder to use as a checksum to make sure your key was not corrupted in
1552	// transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes
1553	// before being base64-encoded.
1554	KeyMd5 *string
1555
1556	// The location of the license key required to play DRM content. The URL must be an
1557	// absolute path, and is referenced by the PlayReady header. The PlayReady header
1558	// is referenced in the protection header of the client manifest for Smooth
1559	// Streaming outputs, and in the EXT-X-DXDRM and EXT-XDXDRMINFO metadata tags for
1560	// HLS playlist outputs. An example URL looks like this:
1561	// https://www.example.com/exampleKey/
1562	LicenseAcquisitionUrl *string
1563}
1564
1565// Presets are templates that contain most of the settings for transcoding media
1566// files from one format to another. Elastic Transcoder includes some default
1567// presets for common formats, for example, several iPod and iPhone versions. You
1568// can also create your own presets for formats that aren't included among the
1569// default presets. You specify which preset you want to use when you create a job.
1570type Preset struct {
1571
1572	// The Amazon Resource Name (ARN) for the preset.
1573	Arn *string
1574
1575	// A section of the response body that provides information about the audio preset
1576	// values.
1577	Audio *AudioParameters
1578
1579	// The container type for the output file. Valid values include flac, flv, fmp4,
1580	// gif, mp3, mp4, mpg, mxf, oga, ogg, ts, and webm.
1581	Container *string
1582
1583	// A description of the preset.
1584	Description *string
1585
1586	// Identifier for the new preset. You use this value to get settings for the preset
1587	// or to delete it.
1588	Id *string
1589
1590	// The name of the preset.
1591	Name *string
1592
1593	// A section of the response body that provides information about the thumbnail
1594	// preset values, if any.
1595	Thumbnails *Thumbnails
1596
1597	// Whether the preset is a default preset provided by Elastic Transcoder (System)
1598	// or a preset that you have defined (Custom).
1599	Type *string
1600
1601	// A section of the response body that provides information about the video preset
1602	// values.
1603	Video *VideoParameters
1604}
1605
1606// Settings for the size, location, and opacity of graphics that you want Elastic
1607// Transcoder to overlay over videos that are transcoded using this preset. You can
1608// specify settings for up to four watermarks. Watermarks appear in the specified
1609// size and location, and with the specified opacity for the duration of the
1610// transcoded video. Watermarks can be in .png or .jpg format. If you want to
1611// display a watermark that is not rectangular, use the .png format, which supports
1612// transparency. When you create a job that uses this preset, you specify the .png
1613// or .jpg graphics that you want Elastic Transcoder to include in the transcoded
1614// videos. You can specify fewer graphics in the job than you specify watermark
1615// settings in the preset, which allows you to use the same preset for up to four
1616// watermarks that have different dimensions.
1617type PresetWatermark struct {
1618
1619	// The horizontal position of the watermark unless you specify a non-zero value for
1620	// HorizontalOffset:
1621	//
1622	// * Left: The left edge of the watermark is aligned with the
1623	// left border of the video.
1624	//
1625	// * Right: The right edge of the watermark is aligned
1626	// with the right border of the video.
1627	//
1628	// * Center: The watermark is centered between
1629	// the left and right borders.
1630	HorizontalAlign *string
1631
1632	// The amount by which you want the horizontal position of the watermark to be
1633	// offset from the position specified by HorizontalAlign:
1634	//
1635	// * number of pixels (px):
1636	// The minimum value is 0 pixels, and the maximum value is the value of
1637	// MaxWidth.
1638	//
1639	// * integer percentage (%): The range of valid values is 0 to 100.
1640	//
1641	// For
1642	// example, if you specify Left for HorizontalAlign and 5px for HorizontalOffset,
1643	// the left side of the watermark appears 5 pixels from the left border of the
1644	// output video. HorizontalOffset is only valid when the value of HorizontalAlign
1645	// is Left or Right. If you specify an offset that causes the watermark to extend
1646	// beyond the left or right border and Elastic Transcoder has not added black bars,
1647	// the watermark is cropped. If Elastic Transcoder has added black bars, the
1648	// watermark extends into the black bars. If the watermark extends beyond the black
1649	// bars, it is cropped. Use the value of Target to specify whether you want to
1650	// include the black bars that are added by Elastic Transcoder, if any, in the
1651	// offset calculation.
1652	HorizontalOffset *string
1653
1654	// A unique identifier for the settings for one watermark. The value of Id can be
1655	// up to 40 characters long.
1656	Id *string
1657
1658	// The maximum height of the watermark in one of the following formats:
1659	//
1660	// * number
1661	// of pixels (px): The minimum value is 16 pixels, and the maximum value is the
1662	// value of MaxHeight.
1663	//
1664	// * integer percentage (%): The range of valid values is 0 to
1665	// 100. Use the value of Target to specify whether you want Elastic Transcoder to
1666	// include the black bars that are added by Elastic Transcoder, if any, in the
1667	// calculation.
1668	//
1669	// If you specify the value in pixels, it must be less than or equal
1670	// to the value of MaxHeight.
1671	MaxHeight *string
1672
1673	// The maximum width of the watermark in one of the following formats:
1674	//
1675	// * number of
1676	// pixels (px): The minimum value is 16 pixels, and the maximum value is the value
1677	// of MaxWidth.
1678	//
1679	// * integer percentage (%): The range of valid values is 0 to 100.
1680	// Use the value of Target to specify whether you want Elastic Transcoder to
1681	// include the black bars that are added by Elastic Transcoder, if any, in the
1682	// calculation. If you specify the value in pixels, it must be less than or equal
1683	// to the value of MaxWidth.
1684	MaxWidth *string
1685
1686	// A percentage that indicates how much you want a watermark to obscure the video
1687	// in the location where it appears. Valid values are 0 (the watermark is
1688	// invisible) to 100 (the watermark completely obscures the video in the specified
1689	// location). The datatype of Opacity is float. Elastic Transcoder supports
1690	// transparent .png graphics. If you use a transparent .png, the transparent
1691	// portion of the video appears as if you had specified a value of 0 for Opacity.
1692	// The .jpg file format doesn't support transparency.
1693	Opacity *string
1694
1695	// A value that controls scaling of the watermark:
1696	//
1697	// * Fit: Elastic Transcoder
1698	// scales the watermark so it matches the value that you specified in either
1699	// MaxWidth or MaxHeight without exceeding the other value.
1700	//
1701	// * Stretch: Elastic
1702	// Transcoder stretches the watermark to match the values that you specified for
1703	// MaxWidth and MaxHeight. If the relative proportions of the watermark and the
1704	// values of MaxWidth and MaxHeight are different, the watermark will be
1705	// distorted.
1706	//
1707	// * ShrinkToFit: Elastic Transcoder scales the watermark down so that
1708	// its dimensions match the values that you specified for at least one of MaxWidth
1709	// and MaxHeight without exceeding either value. If you specify this option,
1710	// Elastic Transcoder does not scale the watermark up.
1711	SizingPolicy *string
1712
1713	// A value that determines how Elastic Transcoder interprets values that you
1714	// specified for HorizontalOffset, VerticalOffset, MaxWidth, and MaxHeight:
1715	//
1716	// *
1717	// Content: HorizontalOffset and VerticalOffset values are calculated based on the
1718	// borders of the video excluding black bars added by Elastic Transcoder, if any.
1719	// In addition, MaxWidth and MaxHeight, if specified as a percentage, are
1720	// calculated based on the borders of the video excluding black bars added by
1721	// Elastic Transcoder, if any.
1722	//
1723	// * Frame: HorizontalOffset and VerticalOffset values
1724	// are calculated based on the borders of the video including black bars added by
1725	// Elastic Transcoder, if any. In addition, MaxWidth and MaxHeight, if specified as
1726	// a percentage, are calculated based on the borders of the video including black
1727	// bars added by Elastic Transcoder, if any.
1728	Target *string
1729
1730	// The vertical position of the watermark unless you specify a non-zero value for
1731	// VerticalOffset:
1732	//
1733	// * Top: The top edge of the watermark is aligned with the top
1734	// border of the video.
1735	//
1736	// * Bottom: The bottom edge of the watermark is aligned with
1737	// the bottom border of the video.
1738	//
1739	// * Center: The watermark is centered between the
1740	// top and bottom borders.
1741	VerticalAlign *string
1742
1743	// VerticalOffset The amount by which you want the vertical position of the
1744	// watermark to be offset from the position specified by VerticalAlign:
1745	//
1746	// * number
1747	// of pixels (px): The minimum value is 0 pixels, and the maximum value is the
1748	// value of MaxHeight.
1749	//
1750	// * integer percentage (%): The range of valid values is 0 to
1751	// 100.
1752	//
1753	// For example, if you specify Top for VerticalAlign and 5px for
1754	// VerticalOffset, the top of the watermark appears 5 pixels from the top border of
1755	// the output video. VerticalOffset is only valid when the value of VerticalAlign
1756	// is Top or Bottom. If you specify an offset that causes the watermark to extend
1757	// beyond the top or bottom border and Elastic Transcoder has not added black bars,
1758	// the watermark is cropped. If Elastic Transcoder has added black bars, the
1759	// watermark extends into the black bars. If the watermark extends beyond the black
1760	// bars, it is cropped. Use the value of Target to specify whether you want Elastic
1761	// Transcoder to include the black bars that are added by Elastic Transcoder, if
1762	// any, in the offset calculation.
1763	VerticalOffset *string
1764}
1765
1766// Thumbnails for videos.
1767type Thumbnails struct {
1768
1769	// To better control resolution and aspect ratio of thumbnails, we recommend that
1770	// you use the values MaxWidth, MaxHeight, SizingPolicy, and PaddingPolicy instead
1771	// of Resolution and AspectRatio. The two groups of settings are mutually
1772	// exclusive. Do not use them together. The aspect ratio of thumbnails. Valid
1773	// values include: auto, 1:1, 4:3, 3:2, 16:9 If you specify auto, Elastic
1774	// Transcoder tries to preserve the aspect ratio of the video in the output file.
1775	AspectRatio *string
1776
1777	// The format of thumbnails, if any. Valid values are jpg and png. You specify
1778	// whether you want Elastic Transcoder to create thumbnails when you create a job.
1779	Format *string
1780
1781	// The approximate number of seconds between thumbnails. Specify an integer value.
1782	Interval *string
1783
1784	// The maximum height of thumbnails in pixels. If you specify auto, Elastic
1785	// Transcoder uses 1080 (Full HD) as the default value. If you specify a numeric
1786	// value, enter an even integer between 32 and 3072.
1787	MaxHeight *string
1788
1789	// The maximum width of thumbnails in pixels. If you specify auto, Elastic
1790	// Transcoder uses 1920 (Full HD) as the default value. If you specify a numeric
1791	// value, enter an even integer between 32 and 4096.
1792	MaxWidth *string
1793
1794	// When you set PaddingPolicy to Pad, Elastic Transcoder may add black bars to the
1795	// top and bottom and/or left and right sides of thumbnails to make the total size
1796	// of the thumbnails match the values that you specified for thumbnail MaxWidth and
1797	// MaxHeight settings.
1798	PaddingPolicy *string
1799
1800	// To better control resolution and aspect ratio of thumbnails, we recommend that
1801	// you use the values MaxWidth, MaxHeight, SizingPolicy, and PaddingPolicy instead
1802	// of Resolution and AspectRatio. The two groups of settings are mutually
1803	// exclusive. Do not use them together. The width and height of thumbnail files in
1804	// pixels. Specify a value in the format  width  x  height  where both values are
1805	// even integers. The values cannot exceed the width and height that you specified
1806	// in the Video:Resolution object.
1807	Resolution *string
1808
1809	// Specify one of the following values to control scaling of thumbnails:
1810	//
1811	// * Fit:
1812	// Elastic Transcoder scales thumbnails so they match the value that you specified
1813	// in thumbnail MaxWidth or MaxHeight settings without exceeding the other
1814	// value.
1815	//
1816	// * Fill: Elastic Transcoder scales thumbnails so they match the value
1817	// that you specified in thumbnail MaxWidth or MaxHeight settings and matches or
1818	// exceeds the other value. Elastic Transcoder centers the image in thumbnails and
1819	// then crops in the dimension (if any) that exceeds the maximum value.
1820	//
1821	// * Stretch:
1822	// Elastic Transcoder stretches thumbnails to match the values that you specified
1823	// for thumbnail MaxWidth and MaxHeight settings. If the relative proportions of
1824	// the input video and thumbnails are different, the thumbnails will be
1825	// distorted.
1826	//
1827	// * Keep: Elastic Transcoder does not scale thumbnails. If either
1828	// dimension of the input video exceeds the values that you specified for thumbnail
1829	// MaxWidth and MaxHeight settings, Elastic Transcoder crops the thumbnails.
1830	//
1831	// *
1832	// ShrinkToFit: Elastic Transcoder scales thumbnails down so that their dimensions
1833	// match the values that you specified for at least one of thumbnail MaxWidth and
1834	// MaxHeight without exceeding either value. If you specify this option, Elastic
1835	// Transcoder does not scale thumbnails up.
1836	//
1837	// * ShrinkToFill: Elastic Transcoder
1838	// scales thumbnails down so that their dimensions match the values that you
1839	// specified for at least one of MaxWidth and MaxHeight without dropping below
1840	// either value. If you specify this option, Elastic Transcoder does not scale
1841	// thumbnails up.
1842	SizingPolicy *string
1843}
1844
1845// Settings that determine when a clip begins and how long it lasts.
1846type TimeSpan struct {
1847
1848	// The duration of the clip. The format can be either HH:mm:ss.SSS (maximum value:
1849	// 23:59:59.999; SSS is thousandths of a second) or sssss.SSS (maximum value:
1850	// 86399.999). If you don't specify a value, Elastic Transcoder creates an output
1851	// file from StartTime to the end of the file. If you specify a value longer than
1852	// the duration of the input file, Elastic Transcoder transcodes the file and
1853	// returns a warning message.
1854	Duration *string
1855
1856	// The place in the input file where you want a clip to start. The format can be
1857	// either HH:mm:ss.SSS (maximum value: 23:59:59.999; SSS is thousandths of a
1858	// second) or sssss.SSS (maximum value: 86399.999). If you don't specify a value,
1859	// Elastic Transcoder starts at the beginning of the input file.
1860	StartTime *string
1861}
1862
1863// Details about the timing of a job.
1864type Timing struct {
1865
1866	// The time the job finished transcoding, in epoch milliseconds.
1867	FinishTimeMillis *int64
1868
1869	// The time the job began transcoding, in epoch milliseconds.
1870	StartTimeMillis *int64
1871
1872	// The time the job was submitted to Elastic Transcoder, in epoch milliseconds.
1873	SubmitTimeMillis *int64
1874}
1875
1876// The VideoParameters structure.
1877type VideoParameters struct {
1878
1879	// To better control resolution and aspect ratio of output videos, we recommend
1880	// that you use the values MaxWidth, MaxHeight, SizingPolicy, PaddingPolicy, and
1881	// DisplayAspectRatio instead of Resolution and AspectRatio. The two groups of
1882	// settings are mutually exclusive. Do not use them together. The display aspect
1883	// ratio of the video in the output file. Valid values include: auto, 1:1, 4:3,
1884	// 3:2, 16:9 If you specify auto, Elastic Transcoder tries to preserve the aspect
1885	// ratio of the input file. If you specify an aspect ratio for the output file that
1886	// differs from aspect ratio of the input file, Elastic Transcoder adds
1887	// pillarboxing (black bars on the sides) or letterboxing (black bars on the top
1888	// and bottom) to maintain the aspect ratio of the active region of the video.
1889	AspectRatio *string
1890
1891	// The bit rate of the video stream in the output file, in kilobits/second. Valid
1892	// values depend on the values of Level and Profile. If you specify auto, Elastic
1893	// Transcoder uses the detected bit rate of the input source. If you specify a
1894	// value other than auto, we recommend that you specify a value less than or equal
1895	// to the maximum H.264-compliant value listed for your level and profile: Level -
1896	// Maximum video bit rate in kilobits/second (baseline and main Profile) : maximum
1897	// video bit rate in kilobits/second (high Profile)
1898	//
1899	// * 1 - 64 : 80
1900	//
1901	// * 1b - 128 :
1902	// 160
1903	//
1904	// * 1.1 - 192 : 240
1905	//
1906	// * 1.2 - 384 : 480
1907	//
1908	// * 1.3 - 768 : 960
1909	//
1910	// * 2 - 2000 :
1911	// 2500
1912	//
1913	// * 3 - 10000 : 12500
1914	//
1915	// * 3.1 - 14000 : 17500
1916	//
1917	// * 3.2 - 20000 : 25000
1918	//
1919	// * 4 -
1920	// 20000 : 25000
1921	//
1922	// * 4.1 - 50000 : 62500
1923	BitRate *string
1924
1925	// The video codec for the output file. Valid values include gif, H.264, mpeg2,
1926	// vp8, and vp9. You can only specify vp8 and vp9 when the container type is webm,
1927	// gif when the container type is gif, and mpeg2 when the container type is mpg.
1928	Codec *string
1929
1930	// Profile (H.264/VP8/VP9 Only) The H.264 profile that you want to use for the
1931	// output file. Elastic Transcoder supports the following profiles:
1932	//
1933	// * baseline:
1934	// The profile most commonly used for videoconferencing and for mobile
1935	// applications.
1936	//
1937	// * main: The profile used for standard-definition digital TV
1938	// broadcasts.
1939	//
1940	// * high: The profile used for high-definition digital TV broadcasts
1941	// and for Blu-ray discs.
1942	//
1943	// Level (H.264 Only) The H.264 level that you want to use
1944	// for the output file. Elastic Transcoder supports the following levels: 1, 1b,
1945	// 1.1, 1.2, 1.3, 2, 2.1, 2.2, 3, 3.1, 3.2, 4, 4.1 MaxReferenceFrames (H.264 Only)
1946	// Applicable only when the value of Video:Codec is H.264. The maximum number of
1947	// previously decoded frames to use as a reference for decoding future frames.
1948	// Valid values are integers 0 through 16, but we recommend that you not use a
1949	// value greater than the following: Min(Floor(Maximum decoded picture buffer in
1950	// macroblocks * 256 / (Width in pixels * Height in pixels)), 16) where Width in
1951	// pixels and Height in pixels represent either MaxWidth and MaxHeight, or
1952	// Resolution. Maximum decoded picture buffer in macroblocks depends on the value
1953	// of the Level object. See the list below. (A macroblock is a block of pixels
1954	// measuring 16x16.)
1955	//
1956	// * 1 - 396
1957	//
1958	// * 1b - 396
1959	//
1960	// * 1.1 - 900
1961	//
1962	// * 1.2 - 2376
1963	//
1964	// * 1.3 -
1965	// 2376
1966	//
1967	// * 2 - 2376
1968	//
1969	// * 2.1 - 4752
1970	//
1971	// * 2.2 - 8100
1972	//
1973	// * 3 - 8100
1974	//
1975	// * 3.1 - 18000
1976	//
1977	// * 3.2 -
1978	// 20480
1979	//
1980	// * 4 - 32768
1981	//
1982	// * 4.1 - 32768
1983	//
1984	// MaxBitRate (Optional, H.264/MPEG2/VP8/VP9
1985	// only) The maximum number of bits per second in a video buffer; the size of the
1986	// buffer is specified by BufferSize. Specify a value between 16 and 62,500. You
1987	// can reduce the bandwidth required to stream a video by reducing the maximum bit
1988	// rate, but this also reduces the quality of the video. BufferSize (Optional,
1989	// H.264/MPEG2/VP8/VP9 only) The maximum number of bits in any x seconds of the
1990	// output video. This window is commonly 10 seconds, the standard segment duration
1991	// when you're using FMP4 or MPEG-TS for the container type of the output video.
1992	// Specify an integer greater than 0. If you specify MaxBitRate and omit
1993	// BufferSize, Elastic Transcoder sets BufferSize to 10 times the value of
1994	// MaxBitRate. InterlacedMode (Optional, H.264/MPEG2 Only) The interlace mode for
1995	// the output video. Interlaced video is used to double the perceived frame rate
1996	// for a video by interlacing two fields (one field on every other line, the other
1997	// field on the other lines) so that the human eye registers multiple pictures per
1998	// frame. Interlacing reduces the bandwidth required for transmitting a video, but
1999	// can result in blurred images and flickering. Valid values include Progressive
2000	// (no interlacing, top to bottom), TopFirst (top field first), BottomFirst (bottom
2001	// field first), and Auto. If InterlaceMode is not specified, Elastic Transcoder
2002	// uses Progressive for the output. If Auto is specified, Elastic Transcoder
2003	// interlaces the output. ColorSpaceConversionMode (Optional, H.264/MPEG2 Only) The
2004	// color space conversion Elastic Transcoder applies to the output video. Color
2005	// spaces are the algorithms used by the computer to store information about how to
2006	// render color. Bt.601 is the standard for standard definition video, while Bt.709
2007	// is the standard for high definition video. Valid values include None,
2008	// Bt709toBt601, Bt601toBt709, and Auto. If you chose Auto for
2009	// ColorSpaceConversionMode and your output is interlaced, your frame rate is one
2010	// of 23.97, 24, 25, 29.97, 50, or 60, your SegmentDuration is null, and you are
2011	// using one of the resolution changes from the list below, Elastic Transcoder
2012	// applies the following color space conversions:
2013	//
2014	// * Standard to HD, 720x480 to
2015	// 1920x1080 - Elastic Transcoder applies Bt601ToBt709
2016	//
2017	// * Standard to HD, 720x576
2018	// to 1920x1080 - Elastic Transcoder applies Bt601ToBt709
2019	//
2020	// * HD to Standard,
2021	// 1920x1080 to 720x480 - Elastic Transcoder applies Bt709ToBt601
2022	//
2023	// * HD to
2024	// Standard, 1920x1080 to 720x576 - Elastic Transcoder applies
2025	// Bt709ToBt601
2026	//
2027	// Elastic Transcoder may change the behavior of the
2028	// ColorspaceConversionModeAuto mode in the future. All outputs in a playlist must
2029	// use the same ColorSpaceConversionMode. If you do not specify a
2030	// ColorSpaceConversionMode, Elastic Transcoder does not change the color space of
2031	// a file. If you are unsure what ColorSpaceConversionMode was applied to your
2032	// output file, you can check the AppliedColorSpaceConversion parameter included in
2033	// your job response. If your job does not have an AppliedColorSpaceConversion in
2034	// its response, no ColorSpaceConversionMode was applied. ChromaSubsampling The
2035	// sampling pattern for the chroma (color) channels of the output video. Valid
2036	// values include yuv420p and yuv422p. yuv420p samples the chroma information of
2037	// every other horizontal and every other vertical line, yuv422p samples the color
2038	// information of every horizontal line and every other vertical line. LoopCount
2039	// (Gif Only) The number of times you want the output gif to loop. Valid values
2040	// include Infinite and integers between 0 and 100, inclusive.
2041	CodecOptions map[string]string
2042
2043	// The value that Elastic Transcoder adds to the metadata in the output file.
2044	DisplayAspectRatio *string
2045
2046	// Applicable only when the value of Video:Codec is one of H.264, MPEG2, or VP8.
2047	// Whether to use a fixed value for FixedGOP. Valid values are true and false:
2048	//
2049	// *
2050	// true: Elastic Transcoder uses the value of KeyframesMaxDist for the distance
2051	// between key frames (the number of frames in a group of pictures, or GOP).
2052	//
2053	// *
2054	// false: The distance between key frames can vary.
2055	//
2056	// FixedGOP must be set to true
2057	// for fmp4 containers.
2058	FixedGOP *string
2059
2060	// The frames per second for the video stream in the output file. Valid values
2061	// include: auto, 10, 15, 23.97, 24, 25, 29.97, 30, 60 If you specify auto, Elastic
2062	// Transcoder uses the detected frame rate of the input source. If you specify a
2063	// frame rate, we recommend that you perform the following calculation: Frame rate
2064	// = maximum recommended decoding speed in luma samples/second / (width in pixels *
2065	// height in pixels) where:
2066	//
2067	// * width in pixels and height in pixels represent the
2068	// Resolution of the output video.
2069	//
2070	// * maximum recommended decoding speed in Luma
2071	// samples/second is less than or equal to the maximum value listed in the
2072	// following table, based on the value that you specified for Level.
2073	//
2074	// The maximum
2075	// recommended decoding speed in Luma samples/second for each level is described in
2076	// the following list (Level - Decoding speed):
2077	//
2078	// * 1 - 380160
2079	//
2080	// * 1b - 380160
2081	//
2082	// * 1.1
2083	// - 76800
2084	//
2085	// * 1.2 - 1536000
2086	//
2087	// * 1.3 - 3041280
2088	//
2089	// * 2 - 3041280
2090	//
2091	// * 2.1 - 5068800
2092	//
2093	// * 2.2
2094	// - 5184000
2095	//
2096	// * 3 - 10368000
2097	//
2098	// * 3.1 - 27648000
2099	//
2100	// * 3.2 - 55296000
2101	//
2102	// * 4 - 62914560
2103	//
2104	// *
2105	// 4.1 - 62914560
2106	FrameRate *string
2107
2108	// Applicable only when the value of Video:Codec is one of H.264, MPEG2, or VP8.
2109	// The maximum number of frames between key frames. Key frames are fully encoded
2110	// frames; the frames between key frames are encoded based, in part, on the content
2111	// of the key frames. The value is an integer formatted as a string; valid values
2112	// are between 1 (every frame is a key frame) and 100000, inclusive. A higher value
2113	// results in higher compression but may also discernibly decrease video quality.
2114	// For Smooth outputs, the FrameRate must have a constant ratio to the
2115	// KeyframesMaxDist. This allows Smooth playlists to switch between different
2116	// quality levels while the file is being played. For example, an input file can
2117	// have a FrameRate of 30 with a KeyframesMaxDist of 90. The output file then needs
2118	// to have a ratio of 1:3. Valid outputs would have FrameRate of 30, 25, and 10,
2119	// and KeyframesMaxDist of 90, 75, and 30, respectively. Alternately, this can be
2120	// achieved by setting FrameRate to auto and having the same values for
2121	// MaxFrameRate and KeyframesMaxDist.
2122	KeyframesMaxDist *string
2123
2124	// If you specify auto for FrameRate, Elastic Transcoder uses the frame rate of the
2125	// input video for the frame rate of the output video. Specify the maximum frame
2126	// rate that you want Elastic Transcoder to use when the frame rate of the input
2127	// video is greater than the desired maximum frame rate of the output video. Valid
2128	// values include: 10, 15, 23.97, 24, 25, 29.97, 30, 60.
2129	MaxFrameRate *string
2130
2131	// The maximum height of the output video in pixels. If you specify auto, Elastic
2132	// Transcoder uses 1080 (Full HD) as the default value. If you specify a numeric
2133	// value, enter an even integer between 96 and 3072.
2134	MaxHeight *string
2135
2136	// The maximum width of the output video in pixels. If you specify auto, Elastic
2137	// Transcoder uses 1920 (Full HD) as the default value. If you specify a numeric
2138	// value, enter an even integer between 128 and 4096.
2139	MaxWidth *string
2140
2141	// When you set PaddingPolicy to Pad, Elastic Transcoder may add black bars to the
2142	// top and bottom and/or left and right sides of the output video to make the total
2143	// size of the output video match the values that you specified for MaxWidth and
2144	// MaxHeight.
2145	PaddingPolicy *string
2146
2147	// To better control resolution and aspect ratio of output videos, we recommend
2148	// that you use the values MaxWidth, MaxHeight, SizingPolicy, PaddingPolicy, and
2149	// DisplayAspectRatio instead of Resolution and AspectRatio. The two groups of
2150	// settings are mutually exclusive. Do not use them together. The width and height
2151	// of the video in the output file, in pixels. Valid values are auto and width x
2152	// height:
2153	//
2154	// * auto: Elastic Transcoder attempts to preserve the width and height of
2155	// the input file, subject to the following rules.
2156	//
2157	// * width x height : The width
2158	// and height of the output video in pixels.
2159	//
2160	// Note the following about specifying
2161	// the width and height:
2162	//
2163	// * The width must be an even integer between 128 and 4096,
2164	// inclusive.
2165	//
2166	// * The height must be an even integer between 96 and 3072,
2167	// inclusive.
2168	//
2169	// * If you specify a resolution that is less than the resolution of
2170	// the input file, Elastic Transcoder rescales the output file to the lower
2171	// resolution.
2172	//
2173	// * If you specify a resolution that is greater than the resolution
2174	// of the input file, Elastic Transcoder rescales the output to the higher
2175	// resolution.
2176	//
2177	// * We recommend that you specify a resolution for which the product
2178	// of width and height is less than or equal to the applicable value in the
2179	// following list (List - Max width x height value):
2180	//
2181	// * 1 - 25344
2182	//
2183	// * 1b - 25344
2184	//
2185	// *
2186	// 1.1 - 101376
2187	//
2188	// * 1.2 - 101376
2189	//
2190	// * 1.3 - 101376
2191	//
2192	// * 2 - 101376
2193	//
2194	// * 2.1 - 202752
2195	//
2196	// *
2197	// 2.2 - 404720
2198	//
2199	// * 3 - 404720
2200	//
2201	// * 3.1 - 921600
2202	//
2203	// * 3.2 - 1310720
2204	//
2205	// * 4 - 2097152
2206	//
2207	// *
2208	// 4.1 - 2097152
2209	Resolution *string
2210
2211	// Specify one of the following values to control scaling of the output video:
2212	//
2213	// *
2214	// Fit: Elastic Transcoder scales the output video so it matches the value that you
2215	// specified in either MaxWidth or MaxHeight without exceeding the other value.
2216	//
2217	// *
2218	// Fill: Elastic Transcoder scales the output video so it matches the value that
2219	// you specified in either MaxWidth or MaxHeight and matches or exceeds the other
2220	// value. Elastic Transcoder centers the output video and then crops it in the
2221	// dimension (if any) that exceeds the maximum value.
2222	//
2223	// * Stretch: Elastic
2224	// Transcoder stretches the output video to match the values that you specified for
2225	// MaxWidth and MaxHeight. If the relative proportions of the input video and the
2226	// output video are different, the output video will be distorted.
2227	//
2228	// * Keep: Elastic
2229	// Transcoder does not scale the output video. If either dimension of the input
2230	// video exceeds the values that you specified for MaxWidth and MaxHeight, Elastic
2231	// Transcoder crops the output video.
2232	//
2233	// * ShrinkToFit: Elastic Transcoder scales the
2234	// output video down so that its dimensions match the values that you specified for
2235	// at least one of MaxWidth and MaxHeight without exceeding either value. If you
2236	// specify this option, Elastic Transcoder does not scale the video up.
2237	//
2238	// *
2239	// ShrinkToFill: Elastic Transcoder scales the output video down so that its
2240	// dimensions match the values that you specified for at least one of MaxWidth and
2241	// MaxHeight without dropping below either value. If you specify this option,
2242	// Elastic Transcoder does not scale the video up.
2243	SizingPolicy *string
2244
2245	// Settings for the size, location, and opacity of graphics that you want Elastic
2246	// Transcoder to overlay over videos that are transcoded using this preset. You can
2247	// specify settings for up to four watermarks. Watermarks appear in the specified
2248	// size and location, and with the specified opacity for the duration of the
2249	// transcoded video. Watermarks can be in .png or .jpg format. If you want to
2250	// display a watermark that is not rectangular, use the .png format, which supports
2251	// transparency. When you create a job that uses this preset, you specify the .png
2252	// or .jpg graphics that you want Elastic Transcoder to include in the transcoded
2253	// videos. You can specify fewer graphics in the job than you specify watermark
2254	// settings in the preset, which allows you to use the same preset for up to four
2255	// watermarks that have different dimensions.
2256	Watermarks []PresetWatermark
2257}
2258
2259// Elastic Transcoder returns a warning if the resources used by your pipeline are
2260// not in the same region as the pipeline. Using resources in the same region, such
2261// as your Amazon S3 buckets, Amazon SNS notification topics, and AWS KMS key,
2262// reduces processing time and prevents cross-regional charges.
2263type Warning struct {
2264
2265	// The code of the cross-regional warning.
2266	Code *string
2267
2268	// The message explaining what resources are in a different region from the
2269	// pipeline. AWS KMS keys must be in the same region as the pipeline.
2270	Message *string
2271}
2272