1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package elastictranscoder
4
5import (
6	"fmt"
7
8	"github.com/aws/aws-sdk-go/aws"
9	"github.com/aws/aws-sdk-go/aws/awsutil"
10	"github.com/aws/aws-sdk-go/aws/request"
11)
12
13const opCancelJob = "CancelJob"
14
15// CancelJobRequest generates a "aws/request.Request" representing the
16// client's request for the CancelJob operation. The "output" return
17// value will be populated with the request's response once the request complets
18// successfuly.
19//
20// Use "Send" method on the returned Request to send the API call to the service.
21// the "output" return value is not valid until after Send returns without error.
22//
23// See CancelJob for more information on using the CancelJob
24// API call, and error handling.
25//
26// This method is useful when you want to inject custom logic or configuration
27// into the SDK's request lifecycle. Such as custom headers, or retry logic.
28//
29//
30//    // Example sending a request using the CancelJobRequest method.
31//    req, resp := client.CancelJobRequest(params)
32//
33//    err := req.Send()
34//    if err == nil { // resp is now filled
35//        fmt.Println(resp)
36//    }
37func (c *ElasticTranscoder) CancelJobRequest(input *CancelJobInput) (req *request.Request, output *CancelJobOutput) {
38	op := &request.Operation{
39		Name:       opCancelJob,
40		HTTPMethod: "DELETE",
41		HTTPPath:   "/2012-09-25/jobs/{Id}",
42	}
43
44	if input == nil {
45		input = &CancelJobInput{}
46	}
47
48	output = &CancelJobOutput{}
49	req = c.newRequest(op, input, output)
50	return
51}
52
53// CancelJob API operation for Amazon Elastic Transcoder.
54//
55// The CancelJob operation cancels an unfinished job.
56//
57// You can only cancel a job that has a status of Submitted. To prevent a pipeline
58// from starting to process a job while you're getting the job identifier, use
59// UpdatePipelineStatus to temporarily pause the pipeline.
60//
61// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
62// with awserr.Error's Code and Message methods to get detailed information about
63// the error.
64//
65// See the AWS API reference guide for Amazon Elastic Transcoder's
66// API operation CancelJob for usage and error information.
67//
68// Returned Error Codes:
69//   * ErrCodeValidationException "ValidationException"
70//   One or more required parameter values were not provided in the request.
71//
72//   * ErrCodeIncompatibleVersionException "IncompatibleVersionException"
73//
74//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
75//   The requested resource does not exist or is not available. For example, the
76//   pipeline to which you're trying to add a job doesn't exist or is still being
77//   created.
78//
79//   * ErrCodeResourceInUseException "ResourceInUseException"
80//   The resource you are attempting to change is in use. For example, you are
81//   attempting to delete a pipeline that is currently in use.
82//
83//   * ErrCodeAccessDeniedException "AccessDeniedException"
84//   General authentication failure. The request was not signed correctly.
85//
86//   * ErrCodeInternalServiceException "InternalServiceException"
87//   Elastic Transcoder encountered an unexpected exception while trying to fulfill
88//   the request.
89//
90func (c *ElasticTranscoder) CancelJob(input *CancelJobInput) (*CancelJobOutput, error) {
91	req, out := c.CancelJobRequest(input)
92	return out, req.Send()
93}
94
95// CancelJobWithContext is the same as CancelJob with the addition of
96// the ability to pass a context and additional request options.
97//
98// See CancelJob for details on how to use this API operation.
99//
100// The context must be non-nil and will be used for request cancellation. If
101// the context is nil a panic will occur. In the future the SDK may create
102// sub-contexts for http.Requests. See https://golang.org/pkg/context/
103// for more information on using Contexts.
104func (c *ElasticTranscoder) CancelJobWithContext(ctx aws.Context, input *CancelJobInput, opts ...request.Option) (*CancelJobOutput, error) {
105	req, out := c.CancelJobRequest(input)
106	req.SetContext(ctx)
107	req.ApplyOptions(opts...)
108	return out, req.Send()
109}
110
111const opCreateJob = "CreateJob"
112
113// CreateJobRequest generates a "aws/request.Request" representing the
114// client's request for the CreateJob operation. The "output" return
115// value will be populated with the request's response once the request complets
116// successfuly.
117//
118// Use "Send" method on the returned Request to send the API call to the service.
119// the "output" return value is not valid until after Send returns without error.
120//
121// See CreateJob for more information on using the CreateJob
122// API call, and error handling.
123//
124// This method is useful when you want to inject custom logic or configuration
125// into the SDK's request lifecycle. Such as custom headers, or retry logic.
126//
127//
128//    // Example sending a request using the CreateJobRequest method.
129//    req, resp := client.CreateJobRequest(params)
130//
131//    err := req.Send()
132//    if err == nil { // resp is now filled
133//        fmt.Println(resp)
134//    }
135func (c *ElasticTranscoder) CreateJobRequest(input *CreateJobInput) (req *request.Request, output *CreateJobResponse) {
136	op := &request.Operation{
137		Name:       opCreateJob,
138		HTTPMethod: "POST",
139		HTTPPath:   "/2012-09-25/jobs",
140	}
141
142	if input == nil {
143		input = &CreateJobInput{}
144	}
145
146	output = &CreateJobResponse{}
147	req = c.newRequest(op, input, output)
148	return
149}
150
151// CreateJob API operation for Amazon Elastic Transcoder.
152//
153// When you create a job, Elastic Transcoder returns JSON data that includes
154// the values that you specified plus information about the job that is created.
155//
156// If you have specified more than one output for your jobs (for example, one
157// output for the Kindle Fire and another output for the Apple iPhone 4s), you
158// currently must use the Elastic Transcoder API to list the jobs (as opposed
159// to the AWS Console).
160//
161// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
162// with awserr.Error's Code and Message methods to get detailed information about
163// the error.
164//
165// See the AWS API reference guide for Amazon Elastic Transcoder's
166// API operation CreateJob for usage and error information.
167//
168// Returned Error Codes:
169//   * ErrCodeValidationException "ValidationException"
170//   One or more required parameter values were not provided in the request.
171//
172//   * ErrCodeIncompatibleVersionException "IncompatibleVersionException"
173//
174//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
175//   The requested resource does not exist or is not available. For example, the
176//   pipeline to which you're trying to add a job doesn't exist or is still being
177//   created.
178//
179//   * ErrCodeAccessDeniedException "AccessDeniedException"
180//   General authentication failure. The request was not signed correctly.
181//
182//   * ErrCodeLimitExceededException "LimitExceededException"
183//   Too many operations for a given AWS account. For example, the number of pipelines
184//   exceeds the maximum allowed.
185//
186//   * ErrCodeInternalServiceException "InternalServiceException"
187//   Elastic Transcoder encountered an unexpected exception while trying to fulfill
188//   the request.
189//
190func (c *ElasticTranscoder) CreateJob(input *CreateJobInput) (*CreateJobResponse, error) {
191	req, out := c.CreateJobRequest(input)
192	return out, req.Send()
193}
194
195// CreateJobWithContext is the same as CreateJob with the addition of
196// the ability to pass a context and additional request options.
197//
198// See CreateJob for details on how to use this API operation.
199//
200// The context must be non-nil and will be used for request cancellation. If
201// the context is nil a panic will occur. In the future the SDK may create
202// sub-contexts for http.Requests. See https://golang.org/pkg/context/
203// for more information on using Contexts.
204func (c *ElasticTranscoder) CreateJobWithContext(ctx aws.Context, input *CreateJobInput, opts ...request.Option) (*CreateJobResponse, error) {
205	req, out := c.CreateJobRequest(input)
206	req.SetContext(ctx)
207	req.ApplyOptions(opts...)
208	return out, req.Send()
209}
210
211const opCreatePipeline = "CreatePipeline"
212
213// CreatePipelineRequest generates a "aws/request.Request" representing the
214// client's request for the CreatePipeline operation. The "output" return
215// value will be populated with the request's response once the request complets
216// successfuly.
217//
218// Use "Send" method on the returned Request to send the API call to the service.
219// the "output" return value is not valid until after Send returns without error.
220//
221// See CreatePipeline for more information on using the CreatePipeline
222// API call, and error handling.
223//
224// This method is useful when you want to inject custom logic or configuration
225// into the SDK's request lifecycle. Such as custom headers, or retry logic.
226//
227//
228//    // Example sending a request using the CreatePipelineRequest method.
229//    req, resp := client.CreatePipelineRequest(params)
230//
231//    err := req.Send()
232//    if err == nil { // resp is now filled
233//        fmt.Println(resp)
234//    }
235func (c *ElasticTranscoder) CreatePipelineRequest(input *CreatePipelineInput) (req *request.Request, output *CreatePipelineOutput) {
236	op := &request.Operation{
237		Name:       opCreatePipeline,
238		HTTPMethod: "POST",
239		HTTPPath:   "/2012-09-25/pipelines",
240	}
241
242	if input == nil {
243		input = &CreatePipelineInput{}
244	}
245
246	output = &CreatePipelineOutput{}
247	req = c.newRequest(op, input, output)
248	return
249}
250
251// CreatePipeline API operation for Amazon Elastic Transcoder.
252//
253// The CreatePipeline operation creates a pipeline with settings that you specify.
254//
255// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
256// with awserr.Error's Code and Message methods to get detailed information about
257// the error.
258//
259// See the AWS API reference guide for Amazon Elastic Transcoder's
260// API operation CreatePipeline for usage and error information.
261//
262// Returned Error Codes:
263//   * ErrCodeValidationException "ValidationException"
264//   One or more required parameter values were not provided in the request.
265//
266//   * ErrCodeIncompatibleVersionException "IncompatibleVersionException"
267//
268//   * ErrCodeAccessDeniedException "AccessDeniedException"
269//   General authentication failure. The request was not signed correctly.
270//
271//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
272//   The requested resource does not exist or is not available. For example, the
273//   pipeline to which you're trying to add a job doesn't exist or is still being
274//   created.
275//
276//   * ErrCodeLimitExceededException "LimitExceededException"
277//   Too many operations for a given AWS account. For example, the number of pipelines
278//   exceeds the maximum allowed.
279//
280//   * ErrCodeInternalServiceException "InternalServiceException"
281//   Elastic Transcoder encountered an unexpected exception while trying to fulfill
282//   the request.
283//
284func (c *ElasticTranscoder) CreatePipeline(input *CreatePipelineInput) (*CreatePipelineOutput, error) {
285	req, out := c.CreatePipelineRequest(input)
286	return out, req.Send()
287}
288
289// CreatePipelineWithContext is the same as CreatePipeline with the addition of
290// the ability to pass a context and additional request options.
291//
292// See CreatePipeline for details on how to use this API operation.
293//
294// The context must be non-nil and will be used for request cancellation. If
295// the context is nil a panic will occur. In the future the SDK may create
296// sub-contexts for http.Requests. See https://golang.org/pkg/context/
297// for more information on using Contexts.
298func (c *ElasticTranscoder) CreatePipelineWithContext(ctx aws.Context, input *CreatePipelineInput, opts ...request.Option) (*CreatePipelineOutput, error) {
299	req, out := c.CreatePipelineRequest(input)
300	req.SetContext(ctx)
301	req.ApplyOptions(opts...)
302	return out, req.Send()
303}
304
305const opCreatePreset = "CreatePreset"
306
307// CreatePresetRequest generates a "aws/request.Request" representing the
308// client's request for the CreatePreset operation. The "output" return
309// value will be populated with the request's response once the request complets
310// successfuly.
311//
312// Use "Send" method on the returned Request to send the API call to the service.
313// the "output" return value is not valid until after Send returns without error.
314//
315// See CreatePreset for more information on using the CreatePreset
316// API call, and error handling.
317//
318// This method is useful when you want to inject custom logic or configuration
319// into the SDK's request lifecycle. Such as custom headers, or retry logic.
320//
321//
322//    // Example sending a request using the CreatePresetRequest method.
323//    req, resp := client.CreatePresetRequest(params)
324//
325//    err := req.Send()
326//    if err == nil { // resp is now filled
327//        fmt.Println(resp)
328//    }
329func (c *ElasticTranscoder) CreatePresetRequest(input *CreatePresetInput) (req *request.Request, output *CreatePresetOutput) {
330	op := &request.Operation{
331		Name:       opCreatePreset,
332		HTTPMethod: "POST",
333		HTTPPath:   "/2012-09-25/presets",
334	}
335
336	if input == nil {
337		input = &CreatePresetInput{}
338	}
339
340	output = &CreatePresetOutput{}
341	req = c.newRequest(op, input, output)
342	return
343}
344
345// CreatePreset API operation for Amazon Elastic Transcoder.
346//
347// The CreatePreset operation creates a preset with settings that you specify.
348//
349// Elastic Transcoder checks the CreatePreset settings to ensure that they meet
350// Elastic Transcoder requirements and to determine whether they comply with
351// H.264 standards. If your settings are not valid for Elastic Transcoder, Elastic
352// Transcoder returns an HTTP 400 response (ValidationException) and does not
353// create the preset. If the settings are valid for Elastic Transcoder but aren't
354// strictly compliant with the H.264 standard, Elastic Transcoder creates the
355// preset and returns a warning message in the response. This helps you determine
356// whether your settings comply with the H.264 standard while giving you greater
357// flexibility with respect to the video that Elastic Transcoder produces.
358//
359// Elastic Transcoder uses the H.264 video-compression format. For more information,
360// see the International Telecommunication Union publication Recommendation
361// ITU-T H.264: Advanced video coding for generic audiovisual services.
362//
363// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
364// with awserr.Error's Code and Message methods to get detailed information about
365// the error.
366//
367// See the AWS API reference guide for Amazon Elastic Transcoder's
368// API operation CreatePreset for usage and error information.
369//
370// Returned Error Codes:
371//   * ErrCodeValidationException "ValidationException"
372//   One or more required parameter values were not provided in the request.
373//
374//   * ErrCodeIncompatibleVersionException "IncompatibleVersionException"
375//
376//   * ErrCodeAccessDeniedException "AccessDeniedException"
377//   General authentication failure. The request was not signed correctly.
378//
379//   * ErrCodeLimitExceededException "LimitExceededException"
380//   Too many operations for a given AWS account. For example, the number of pipelines
381//   exceeds the maximum allowed.
382//
383//   * ErrCodeInternalServiceException "InternalServiceException"
384//   Elastic Transcoder encountered an unexpected exception while trying to fulfill
385//   the request.
386//
387func (c *ElasticTranscoder) CreatePreset(input *CreatePresetInput) (*CreatePresetOutput, error) {
388	req, out := c.CreatePresetRequest(input)
389	return out, req.Send()
390}
391
392// CreatePresetWithContext is the same as CreatePreset with the addition of
393// the ability to pass a context and additional request options.
394//
395// See CreatePreset for details on how to use this API operation.
396//
397// The context must be non-nil and will be used for request cancellation. If
398// the context is nil a panic will occur. In the future the SDK may create
399// sub-contexts for http.Requests. See https://golang.org/pkg/context/
400// for more information on using Contexts.
401func (c *ElasticTranscoder) CreatePresetWithContext(ctx aws.Context, input *CreatePresetInput, opts ...request.Option) (*CreatePresetOutput, error) {
402	req, out := c.CreatePresetRequest(input)
403	req.SetContext(ctx)
404	req.ApplyOptions(opts...)
405	return out, req.Send()
406}
407
408const opDeletePipeline = "DeletePipeline"
409
410// DeletePipelineRequest generates a "aws/request.Request" representing the
411// client's request for the DeletePipeline operation. The "output" return
412// value will be populated with the request's response once the request complets
413// successfuly.
414//
415// Use "Send" method on the returned Request to send the API call to the service.
416// the "output" return value is not valid until after Send returns without error.
417//
418// See DeletePipeline for more information on using the DeletePipeline
419// API call, and error handling.
420//
421// This method is useful when you want to inject custom logic or configuration
422// into the SDK's request lifecycle. Such as custom headers, or retry logic.
423//
424//
425//    // Example sending a request using the DeletePipelineRequest method.
426//    req, resp := client.DeletePipelineRequest(params)
427//
428//    err := req.Send()
429//    if err == nil { // resp is now filled
430//        fmt.Println(resp)
431//    }
432func (c *ElasticTranscoder) DeletePipelineRequest(input *DeletePipelineInput) (req *request.Request, output *DeletePipelineOutput) {
433	op := &request.Operation{
434		Name:       opDeletePipeline,
435		HTTPMethod: "DELETE",
436		HTTPPath:   "/2012-09-25/pipelines/{Id}",
437	}
438
439	if input == nil {
440		input = &DeletePipelineInput{}
441	}
442
443	output = &DeletePipelineOutput{}
444	req = c.newRequest(op, input, output)
445	return
446}
447
448// DeletePipeline API operation for Amazon Elastic Transcoder.
449//
450// The DeletePipeline operation removes a pipeline.
451//
452// You can only delete a pipeline that has never been used or that is not currently
453// in use (doesn't contain any active jobs). If the pipeline is currently in
454// use, DeletePipeline returns an error.
455//
456// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
457// with awserr.Error's Code and Message methods to get detailed information about
458// the error.
459//
460// See the AWS API reference guide for Amazon Elastic Transcoder's
461// API operation DeletePipeline for usage and error information.
462//
463// Returned Error Codes:
464//   * ErrCodeValidationException "ValidationException"
465//   One or more required parameter values were not provided in the request.
466//
467//   * ErrCodeIncompatibleVersionException "IncompatibleVersionException"
468//
469//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
470//   The requested resource does not exist or is not available. For example, the
471//   pipeline to which you're trying to add a job doesn't exist or is still being
472//   created.
473//
474//   * ErrCodeResourceInUseException "ResourceInUseException"
475//   The resource you are attempting to change is in use. For example, you are
476//   attempting to delete a pipeline that is currently in use.
477//
478//   * ErrCodeAccessDeniedException "AccessDeniedException"
479//   General authentication failure. The request was not signed correctly.
480//
481//   * ErrCodeInternalServiceException "InternalServiceException"
482//   Elastic Transcoder encountered an unexpected exception while trying to fulfill
483//   the request.
484//
485func (c *ElasticTranscoder) DeletePipeline(input *DeletePipelineInput) (*DeletePipelineOutput, error) {
486	req, out := c.DeletePipelineRequest(input)
487	return out, req.Send()
488}
489
490// DeletePipelineWithContext is the same as DeletePipeline with the addition of
491// the ability to pass a context and additional request options.
492//
493// See DeletePipeline for details on how to use this API operation.
494//
495// The context must be non-nil and will be used for request cancellation. If
496// the context is nil a panic will occur. In the future the SDK may create
497// sub-contexts for http.Requests. See https://golang.org/pkg/context/
498// for more information on using Contexts.
499func (c *ElasticTranscoder) DeletePipelineWithContext(ctx aws.Context, input *DeletePipelineInput, opts ...request.Option) (*DeletePipelineOutput, error) {
500	req, out := c.DeletePipelineRequest(input)
501	req.SetContext(ctx)
502	req.ApplyOptions(opts...)
503	return out, req.Send()
504}
505
506const opDeletePreset = "DeletePreset"
507
508// DeletePresetRequest generates a "aws/request.Request" representing the
509// client's request for the DeletePreset operation. The "output" return
510// value will be populated with the request's response once the request complets
511// successfuly.
512//
513// Use "Send" method on the returned Request to send the API call to the service.
514// the "output" return value is not valid until after Send returns without error.
515//
516// See DeletePreset for more information on using the DeletePreset
517// API call, and error handling.
518//
519// This method is useful when you want to inject custom logic or configuration
520// into the SDK's request lifecycle. Such as custom headers, or retry logic.
521//
522//
523//    // Example sending a request using the DeletePresetRequest method.
524//    req, resp := client.DeletePresetRequest(params)
525//
526//    err := req.Send()
527//    if err == nil { // resp is now filled
528//        fmt.Println(resp)
529//    }
530func (c *ElasticTranscoder) DeletePresetRequest(input *DeletePresetInput) (req *request.Request, output *DeletePresetOutput) {
531	op := &request.Operation{
532		Name:       opDeletePreset,
533		HTTPMethod: "DELETE",
534		HTTPPath:   "/2012-09-25/presets/{Id}",
535	}
536
537	if input == nil {
538		input = &DeletePresetInput{}
539	}
540
541	output = &DeletePresetOutput{}
542	req = c.newRequest(op, input, output)
543	return
544}
545
546// DeletePreset API operation for Amazon Elastic Transcoder.
547//
548// The DeletePreset operation removes a preset that you've added in an AWS region.
549//
550// You can't delete the default presets that are included with Elastic Transcoder.
551//
552// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
553// with awserr.Error's Code and Message methods to get detailed information about
554// the error.
555//
556// See the AWS API reference guide for Amazon Elastic Transcoder's
557// API operation DeletePreset for usage and error information.
558//
559// Returned Error Codes:
560//   * ErrCodeValidationException "ValidationException"
561//   One or more required parameter values were not provided in the request.
562//
563//   * ErrCodeIncompatibleVersionException "IncompatibleVersionException"
564//
565//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
566//   The requested resource does not exist or is not available. For example, the
567//   pipeline to which you're trying to add a job doesn't exist or is still being
568//   created.
569//
570//   * ErrCodeAccessDeniedException "AccessDeniedException"
571//   General authentication failure. The request was not signed correctly.
572//
573//   * ErrCodeInternalServiceException "InternalServiceException"
574//   Elastic Transcoder encountered an unexpected exception while trying to fulfill
575//   the request.
576//
577func (c *ElasticTranscoder) DeletePreset(input *DeletePresetInput) (*DeletePresetOutput, error) {
578	req, out := c.DeletePresetRequest(input)
579	return out, req.Send()
580}
581
582// DeletePresetWithContext is the same as DeletePreset with the addition of
583// the ability to pass a context and additional request options.
584//
585// See DeletePreset for details on how to use this API operation.
586//
587// The context must be non-nil and will be used for request cancellation. If
588// the context is nil a panic will occur. In the future the SDK may create
589// sub-contexts for http.Requests. See https://golang.org/pkg/context/
590// for more information on using Contexts.
591func (c *ElasticTranscoder) DeletePresetWithContext(ctx aws.Context, input *DeletePresetInput, opts ...request.Option) (*DeletePresetOutput, error) {
592	req, out := c.DeletePresetRequest(input)
593	req.SetContext(ctx)
594	req.ApplyOptions(opts...)
595	return out, req.Send()
596}
597
598const opListJobsByPipeline = "ListJobsByPipeline"
599
600// ListJobsByPipelineRequest generates a "aws/request.Request" representing the
601// client's request for the ListJobsByPipeline operation. The "output" return
602// value will be populated with the request's response once the request complets
603// successfuly.
604//
605// Use "Send" method on the returned Request to send the API call to the service.
606// the "output" return value is not valid until after Send returns without error.
607//
608// See ListJobsByPipeline for more information on using the ListJobsByPipeline
609// API call, and error handling.
610//
611// This method is useful when you want to inject custom logic or configuration
612// into the SDK's request lifecycle. Such as custom headers, or retry logic.
613//
614//
615//    // Example sending a request using the ListJobsByPipelineRequest method.
616//    req, resp := client.ListJobsByPipelineRequest(params)
617//
618//    err := req.Send()
619//    if err == nil { // resp is now filled
620//        fmt.Println(resp)
621//    }
622func (c *ElasticTranscoder) ListJobsByPipelineRequest(input *ListJobsByPipelineInput) (req *request.Request, output *ListJobsByPipelineOutput) {
623	op := &request.Operation{
624		Name:       opListJobsByPipeline,
625		HTTPMethod: "GET",
626		HTTPPath:   "/2012-09-25/jobsByPipeline/{PipelineId}",
627		Paginator: &request.Paginator{
628			InputTokens:     []string{"PageToken"},
629			OutputTokens:    []string{"NextPageToken"},
630			LimitToken:      "",
631			TruncationToken: "",
632		},
633	}
634
635	if input == nil {
636		input = &ListJobsByPipelineInput{}
637	}
638
639	output = &ListJobsByPipelineOutput{}
640	req = c.newRequest(op, input, output)
641	return
642}
643
644// ListJobsByPipeline API operation for Amazon Elastic Transcoder.
645//
646// The ListJobsByPipeline operation gets a list of the jobs currently in a pipeline.
647//
648// Elastic Transcoder returns all of the jobs currently in the specified pipeline.
649// The response body contains one element for each job that satisfies the search
650// criteria.
651//
652// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
653// with awserr.Error's Code and Message methods to get detailed information about
654// the error.
655//
656// See the AWS API reference guide for Amazon Elastic Transcoder's
657// API operation ListJobsByPipeline for usage and error information.
658//
659// Returned Error Codes:
660//   * ErrCodeValidationException "ValidationException"
661//   One or more required parameter values were not provided in the request.
662//
663//   * ErrCodeIncompatibleVersionException "IncompatibleVersionException"
664//
665//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
666//   The requested resource does not exist or is not available. For example, the
667//   pipeline to which you're trying to add a job doesn't exist or is still being
668//   created.
669//
670//   * ErrCodeAccessDeniedException "AccessDeniedException"
671//   General authentication failure. The request was not signed correctly.
672//
673//   * ErrCodeInternalServiceException "InternalServiceException"
674//   Elastic Transcoder encountered an unexpected exception while trying to fulfill
675//   the request.
676//
677func (c *ElasticTranscoder) ListJobsByPipeline(input *ListJobsByPipelineInput) (*ListJobsByPipelineOutput, error) {
678	req, out := c.ListJobsByPipelineRequest(input)
679	return out, req.Send()
680}
681
682// ListJobsByPipelineWithContext is the same as ListJobsByPipeline with the addition of
683// the ability to pass a context and additional request options.
684//
685// See ListJobsByPipeline for details on how to use this API operation.
686//
687// The context must be non-nil and will be used for request cancellation. If
688// the context is nil a panic will occur. In the future the SDK may create
689// sub-contexts for http.Requests. See https://golang.org/pkg/context/
690// for more information on using Contexts.
691func (c *ElasticTranscoder) ListJobsByPipelineWithContext(ctx aws.Context, input *ListJobsByPipelineInput, opts ...request.Option) (*ListJobsByPipelineOutput, error) {
692	req, out := c.ListJobsByPipelineRequest(input)
693	req.SetContext(ctx)
694	req.ApplyOptions(opts...)
695	return out, req.Send()
696}
697
698// ListJobsByPipelinePages iterates over the pages of a ListJobsByPipeline operation,
699// calling the "fn" function with the response data for each page. To stop
700// iterating, return false from the fn function.
701//
702// See ListJobsByPipeline method for more information on how to use this operation.
703//
704// Note: This operation can generate multiple requests to a service.
705//
706//    // Example iterating over at most 3 pages of a ListJobsByPipeline operation.
707//    pageNum := 0
708//    err := client.ListJobsByPipelinePages(params,
709//        func(page *ListJobsByPipelineOutput, lastPage bool) bool {
710//            pageNum++
711//            fmt.Println(page)
712//            return pageNum <= 3
713//        })
714//
715func (c *ElasticTranscoder) ListJobsByPipelinePages(input *ListJobsByPipelineInput, fn func(*ListJobsByPipelineOutput, bool) bool) error {
716	return c.ListJobsByPipelinePagesWithContext(aws.BackgroundContext(), input, fn)
717}
718
719// ListJobsByPipelinePagesWithContext same as ListJobsByPipelinePages except
720// it takes a Context and allows setting request options on the pages.
721//
722// The context must be non-nil and will be used for request cancellation. If
723// the context is nil a panic will occur. In the future the SDK may create
724// sub-contexts for http.Requests. See https://golang.org/pkg/context/
725// for more information on using Contexts.
726func (c *ElasticTranscoder) ListJobsByPipelinePagesWithContext(ctx aws.Context, input *ListJobsByPipelineInput, fn func(*ListJobsByPipelineOutput, bool) bool, opts ...request.Option) error {
727	p := request.Pagination{
728		NewRequest: func() (*request.Request, error) {
729			var inCpy *ListJobsByPipelineInput
730			if input != nil {
731				tmp := *input
732				inCpy = &tmp
733			}
734			req, _ := c.ListJobsByPipelineRequest(inCpy)
735			req.SetContext(ctx)
736			req.ApplyOptions(opts...)
737			return req, nil
738		},
739	}
740
741	cont := true
742	for p.Next() && cont {
743		cont = fn(p.Page().(*ListJobsByPipelineOutput), !p.HasNextPage())
744	}
745	return p.Err()
746}
747
748const opListJobsByStatus = "ListJobsByStatus"
749
750// ListJobsByStatusRequest generates a "aws/request.Request" representing the
751// client's request for the ListJobsByStatus operation. The "output" return
752// value will be populated with the request's response once the request complets
753// successfuly.
754//
755// Use "Send" method on the returned Request to send the API call to the service.
756// the "output" return value is not valid until after Send returns without error.
757//
758// See ListJobsByStatus for more information on using the ListJobsByStatus
759// API call, and error handling.
760//
761// This method is useful when you want to inject custom logic or configuration
762// into the SDK's request lifecycle. Such as custom headers, or retry logic.
763//
764//
765//    // Example sending a request using the ListJobsByStatusRequest method.
766//    req, resp := client.ListJobsByStatusRequest(params)
767//
768//    err := req.Send()
769//    if err == nil { // resp is now filled
770//        fmt.Println(resp)
771//    }
772func (c *ElasticTranscoder) ListJobsByStatusRequest(input *ListJobsByStatusInput) (req *request.Request, output *ListJobsByStatusOutput) {
773	op := &request.Operation{
774		Name:       opListJobsByStatus,
775		HTTPMethod: "GET",
776		HTTPPath:   "/2012-09-25/jobsByStatus/{Status}",
777		Paginator: &request.Paginator{
778			InputTokens:     []string{"PageToken"},
779			OutputTokens:    []string{"NextPageToken"},
780			LimitToken:      "",
781			TruncationToken: "",
782		},
783	}
784
785	if input == nil {
786		input = &ListJobsByStatusInput{}
787	}
788
789	output = &ListJobsByStatusOutput{}
790	req = c.newRequest(op, input, output)
791	return
792}
793
794// ListJobsByStatus API operation for Amazon Elastic Transcoder.
795//
796// The ListJobsByStatus operation gets a list of jobs that have a specified
797// status. The response body contains one element for each job that satisfies
798// the search criteria.
799//
800// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
801// with awserr.Error's Code and Message methods to get detailed information about
802// the error.
803//
804// See the AWS API reference guide for Amazon Elastic Transcoder's
805// API operation ListJobsByStatus for usage and error information.
806//
807// Returned Error Codes:
808//   * ErrCodeValidationException "ValidationException"
809//   One or more required parameter values were not provided in the request.
810//
811//   * ErrCodeIncompatibleVersionException "IncompatibleVersionException"
812//
813//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
814//   The requested resource does not exist or is not available. For example, the
815//   pipeline to which you're trying to add a job doesn't exist or is still being
816//   created.
817//
818//   * ErrCodeAccessDeniedException "AccessDeniedException"
819//   General authentication failure. The request was not signed correctly.
820//
821//   * ErrCodeInternalServiceException "InternalServiceException"
822//   Elastic Transcoder encountered an unexpected exception while trying to fulfill
823//   the request.
824//
825func (c *ElasticTranscoder) ListJobsByStatus(input *ListJobsByStatusInput) (*ListJobsByStatusOutput, error) {
826	req, out := c.ListJobsByStatusRequest(input)
827	return out, req.Send()
828}
829
830// ListJobsByStatusWithContext is the same as ListJobsByStatus with the addition of
831// the ability to pass a context and additional request options.
832//
833// See ListJobsByStatus for details on how to use this API operation.
834//
835// The context must be non-nil and will be used for request cancellation. If
836// the context is nil a panic will occur. In the future the SDK may create
837// sub-contexts for http.Requests. See https://golang.org/pkg/context/
838// for more information on using Contexts.
839func (c *ElasticTranscoder) ListJobsByStatusWithContext(ctx aws.Context, input *ListJobsByStatusInput, opts ...request.Option) (*ListJobsByStatusOutput, error) {
840	req, out := c.ListJobsByStatusRequest(input)
841	req.SetContext(ctx)
842	req.ApplyOptions(opts...)
843	return out, req.Send()
844}
845
846// ListJobsByStatusPages iterates over the pages of a ListJobsByStatus operation,
847// calling the "fn" function with the response data for each page. To stop
848// iterating, return false from the fn function.
849//
850// See ListJobsByStatus method for more information on how to use this operation.
851//
852// Note: This operation can generate multiple requests to a service.
853//
854//    // Example iterating over at most 3 pages of a ListJobsByStatus operation.
855//    pageNum := 0
856//    err := client.ListJobsByStatusPages(params,
857//        func(page *ListJobsByStatusOutput, lastPage bool) bool {
858//            pageNum++
859//            fmt.Println(page)
860//            return pageNum <= 3
861//        })
862//
863func (c *ElasticTranscoder) ListJobsByStatusPages(input *ListJobsByStatusInput, fn func(*ListJobsByStatusOutput, bool) bool) error {
864	return c.ListJobsByStatusPagesWithContext(aws.BackgroundContext(), input, fn)
865}
866
867// ListJobsByStatusPagesWithContext same as ListJobsByStatusPages except
868// it takes a Context and allows setting request options on the pages.
869//
870// The context must be non-nil and will be used for request cancellation. If
871// the context is nil a panic will occur. In the future the SDK may create
872// sub-contexts for http.Requests. See https://golang.org/pkg/context/
873// for more information on using Contexts.
874func (c *ElasticTranscoder) ListJobsByStatusPagesWithContext(ctx aws.Context, input *ListJobsByStatusInput, fn func(*ListJobsByStatusOutput, bool) bool, opts ...request.Option) error {
875	p := request.Pagination{
876		NewRequest: func() (*request.Request, error) {
877			var inCpy *ListJobsByStatusInput
878			if input != nil {
879				tmp := *input
880				inCpy = &tmp
881			}
882			req, _ := c.ListJobsByStatusRequest(inCpy)
883			req.SetContext(ctx)
884			req.ApplyOptions(opts...)
885			return req, nil
886		},
887	}
888
889	cont := true
890	for p.Next() && cont {
891		cont = fn(p.Page().(*ListJobsByStatusOutput), !p.HasNextPage())
892	}
893	return p.Err()
894}
895
896const opListPipelines = "ListPipelines"
897
898// ListPipelinesRequest generates a "aws/request.Request" representing the
899// client's request for the ListPipelines operation. The "output" return
900// value will be populated with the request's response once the request complets
901// successfuly.
902//
903// Use "Send" method on the returned Request to send the API call to the service.
904// the "output" return value is not valid until after Send returns without error.
905//
906// See ListPipelines for more information on using the ListPipelines
907// API call, and error handling.
908//
909// This method is useful when you want to inject custom logic or configuration
910// into the SDK's request lifecycle. Such as custom headers, or retry logic.
911//
912//
913//    // Example sending a request using the ListPipelinesRequest method.
914//    req, resp := client.ListPipelinesRequest(params)
915//
916//    err := req.Send()
917//    if err == nil { // resp is now filled
918//        fmt.Println(resp)
919//    }
920func (c *ElasticTranscoder) ListPipelinesRequest(input *ListPipelinesInput) (req *request.Request, output *ListPipelinesOutput) {
921	op := &request.Operation{
922		Name:       opListPipelines,
923		HTTPMethod: "GET",
924		HTTPPath:   "/2012-09-25/pipelines",
925		Paginator: &request.Paginator{
926			InputTokens:     []string{"PageToken"},
927			OutputTokens:    []string{"NextPageToken"},
928			LimitToken:      "",
929			TruncationToken: "",
930		},
931	}
932
933	if input == nil {
934		input = &ListPipelinesInput{}
935	}
936
937	output = &ListPipelinesOutput{}
938	req = c.newRequest(op, input, output)
939	return
940}
941
942// ListPipelines API operation for Amazon Elastic Transcoder.
943//
944// The ListPipelines operation gets a list of the pipelines associated with
945// the current AWS account.
946//
947// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
948// with awserr.Error's Code and Message methods to get detailed information about
949// the error.
950//
951// See the AWS API reference guide for Amazon Elastic Transcoder's
952// API operation ListPipelines for usage and error information.
953//
954// Returned Error Codes:
955//   * ErrCodeValidationException "ValidationException"
956//   One or more required parameter values were not provided in the request.
957//
958//   * ErrCodeIncompatibleVersionException "IncompatibleVersionException"
959//
960//   * ErrCodeAccessDeniedException "AccessDeniedException"
961//   General authentication failure. The request was not signed correctly.
962//
963//   * ErrCodeInternalServiceException "InternalServiceException"
964//   Elastic Transcoder encountered an unexpected exception while trying to fulfill
965//   the request.
966//
967func (c *ElasticTranscoder) ListPipelines(input *ListPipelinesInput) (*ListPipelinesOutput, error) {
968	req, out := c.ListPipelinesRequest(input)
969	return out, req.Send()
970}
971
972// ListPipelinesWithContext is the same as ListPipelines with the addition of
973// the ability to pass a context and additional request options.
974//
975// See ListPipelines for details on how to use this API operation.
976//
977// The context must be non-nil and will be used for request cancellation. If
978// the context is nil a panic will occur. In the future the SDK may create
979// sub-contexts for http.Requests. See https://golang.org/pkg/context/
980// for more information on using Contexts.
981func (c *ElasticTranscoder) ListPipelinesWithContext(ctx aws.Context, input *ListPipelinesInput, opts ...request.Option) (*ListPipelinesOutput, error) {
982	req, out := c.ListPipelinesRequest(input)
983	req.SetContext(ctx)
984	req.ApplyOptions(opts...)
985	return out, req.Send()
986}
987
988// ListPipelinesPages iterates over the pages of a ListPipelines operation,
989// calling the "fn" function with the response data for each page. To stop
990// iterating, return false from the fn function.
991//
992// See ListPipelines method for more information on how to use this operation.
993//
994// Note: This operation can generate multiple requests to a service.
995//
996//    // Example iterating over at most 3 pages of a ListPipelines operation.
997//    pageNum := 0
998//    err := client.ListPipelinesPages(params,
999//        func(page *ListPipelinesOutput, lastPage bool) bool {
1000//            pageNum++
1001//            fmt.Println(page)
1002//            return pageNum <= 3
1003//        })
1004//
1005func (c *ElasticTranscoder) ListPipelinesPages(input *ListPipelinesInput, fn func(*ListPipelinesOutput, bool) bool) error {
1006	return c.ListPipelinesPagesWithContext(aws.BackgroundContext(), input, fn)
1007}
1008
1009// ListPipelinesPagesWithContext same as ListPipelinesPages except
1010// it takes a Context and allows setting request options on the pages.
1011//
1012// The context must be non-nil and will be used for request cancellation. If
1013// the context is nil a panic will occur. In the future the SDK may create
1014// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1015// for more information on using Contexts.
1016func (c *ElasticTranscoder) ListPipelinesPagesWithContext(ctx aws.Context, input *ListPipelinesInput, fn func(*ListPipelinesOutput, bool) bool, opts ...request.Option) error {
1017	p := request.Pagination{
1018		NewRequest: func() (*request.Request, error) {
1019			var inCpy *ListPipelinesInput
1020			if input != nil {
1021				tmp := *input
1022				inCpy = &tmp
1023			}
1024			req, _ := c.ListPipelinesRequest(inCpy)
1025			req.SetContext(ctx)
1026			req.ApplyOptions(opts...)
1027			return req, nil
1028		},
1029	}
1030
1031	cont := true
1032	for p.Next() && cont {
1033		cont = fn(p.Page().(*ListPipelinesOutput), !p.HasNextPage())
1034	}
1035	return p.Err()
1036}
1037
1038const opListPresets = "ListPresets"
1039
1040// ListPresetsRequest generates a "aws/request.Request" representing the
1041// client's request for the ListPresets operation. The "output" return
1042// value will be populated with the request's response once the request complets
1043// successfuly.
1044//
1045// Use "Send" method on the returned Request to send the API call to the service.
1046// the "output" return value is not valid until after Send returns without error.
1047//
1048// See ListPresets for more information on using the ListPresets
1049// API call, and error handling.
1050//
1051// This method is useful when you want to inject custom logic or configuration
1052// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1053//
1054//
1055//    // Example sending a request using the ListPresetsRequest method.
1056//    req, resp := client.ListPresetsRequest(params)
1057//
1058//    err := req.Send()
1059//    if err == nil { // resp is now filled
1060//        fmt.Println(resp)
1061//    }
1062func (c *ElasticTranscoder) ListPresetsRequest(input *ListPresetsInput) (req *request.Request, output *ListPresetsOutput) {
1063	op := &request.Operation{
1064		Name:       opListPresets,
1065		HTTPMethod: "GET",
1066		HTTPPath:   "/2012-09-25/presets",
1067		Paginator: &request.Paginator{
1068			InputTokens:     []string{"PageToken"},
1069			OutputTokens:    []string{"NextPageToken"},
1070			LimitToken:      "",
1071			TruncationToken: "",
1072		},
1073	}
1074
1075	if input == nil {
1076		input = &ListPresetsInput{}
1077	}
1078
1079	output = &ListPresetsOutput{}
1080	req = c.newRequest(op, input, output)
1081	return
1082}
1083
1084// ListPresets API operation for Amazon Elastic Transcoder.
1085//
1086// The ListPresets operation gets a list of the default presets included with
1087// Elastic Transcoder and the presets that you've added in an AWS region.
1088//
1089// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1090// with awserr.Error's Code and Message methods to get detailed information about
1091// the error.
1092//
1093// See the AWS API reference guide for Amazon Elastic Transcoder's
1094// API operation ListPresets for usage and error information.
1095//
1096// Returned Error Codes:
1097//   * ErrCodeValidationException "ValidationException"
1098//   One or more required parameter values were not provided in the request.
1099//
1100//   * ErrCodeIncompatibleVersionException "IncompatibleVersionException"
1101//
1102//   * ErrCodeAccessDeniedException "AccessDeniedException"
1103//   General authentication failure. The request was not signed correctly.
1104//
1105//   * ErrCodeInternalServiceException "InternalServiceException"
1106//   Elastic Transcoder encountered an unexpected exception while trying to fulfill
1107//   the request.
1108//
1109func (c *ElasticTranscoder) ListPresets(input *ListPresetsInput) (*ListPresetsOutput, error) {
1110	req, out := c.ListPresetsRequest(input)
1111	return out, req.Send()
1112}
1113
1114// ListPresetsWithContext is the same as ListPresets with the addition of
1115// the ability to pass a context and additional request options.
1116//
1117// See ListPresets for details on how to use this API operation.
1118//
1119// The context must be non-nil and will be used for request cancellation. If
1120// the context is nil a panic will occur. In the future the SDK may create
1121// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1122// for more information on using Contexts.
1123func (c *ElasticTranscoder) ListPresetsWithContext(ctx aws.Context, input *ListPresetsInput, opts ...request.Option) (*ListPresetsOutput, error) {
1124	req, out := c.ListPresetsRequest(input)
1125	req.SetContext(ctx)
1126	req.ApplyOptions(opts...)
1127	return out, req.Send()
1128}
1129
1130// ListPresetsPages iterates over the pages of a ListPresets operation,
1131// calling the "fn" function with the response data for each page. To stop
1132// iterating, return false from the fn function.
1133//
1134// See ListPresets method for more information on how to use this operation.
1135//
1136// Note: This operation can generate multiple requests to a service.
1137//
1138//    // Example iterating over at most 3 pages of a ListPresets operation.
1139//    pageNum := 0
1140//    err := client.ListPresetsPages(params,
1141//        func(page *ListPresetsOutput, lastPage bool) bool {
1142//            pageNum++
1143//            fmt.Println(page)
1144//            return pageNum <= 3
1145//        })
1146//
1147func (c *ElasticTranscoder) ListPresetsPages(input *ListPresetsInput, fn func(*ListPresetsOutput, bool) bool) error {
1148	return c.ListPresetsPagesWithContext(aws.BackgroundContext(), input, fn)
1149}
1150
1151// ListPresetsPagesWithContext same as ListPresetsPages except
1152// it takes a Context and allows setting request options on the pages.
1153//
1154// The context must be non-nil and will be used for request cancellation. If
1155// the context is nil a panic will occur. In the future the SDK may create
1156// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1157// for more information on using Contexts.
1158func (c *ElasticTranscoder) ListPresetsPagesWithContext(ctx aws.Context, input *ListPresetsInput, fn func(*ListPresetsOutput, bool) bool, opts ...request.Option) error {
1159	p := request.Pagination{
1160		NewRequest: func() (*request.Request, error) {
1161			var inCpy *ListPresetsInput
1162			if input != nil {
1163				tmp := *input
1164				inCpy = &tmp
1165			}
1166			req, _ := c.ListPresetsRequest(inCpy)
1167			req.SetContext(ctx)
1168			req.ApplyOptions(opts...)
1169			return req, nil
1170		},
1171	}
1172
1173	cont := true
1174	for p.Next() && cont {
1175		cont = fn(p.Page().(*ListPresetsOutput), !p.HasNextPage())
1176	}
1177	return p.Err()
1178}
1179
1180const opReadJob = "ReadJob"
1181
1182// ReadJobRequest generates a "aws/request.Request" representing the
1183// client's request for the ReadJob operation. The "output" return
1184// value will be populated with the request's response once the request complets
1185// successfuly.
1186//
1187// Use "Send" method on the returned Request to send the API call to the service.
1188// the "output" return value is not valid until after Send returns without error.
1189//
1190// See ReadJob for more information on using the ReadJob
1191// API call, and error handling.
1192//
1193// This method is useful when you want to inject custom logic or configuration
1194// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1195//
1196//
1197//    // Example sending a request using the ReadJobRequest method.
1198//    req, resp := client.ReadJobRequest(params)
1199//
1200//    err := req.Send()
1201//    if err == nil { // resp is now filled
1202//        fmt.Println(resp)
1203//    }
1204func (c *ElasticTranscoder) ReadJobRequest(input *ReadJobInput) (req *request.Request, output *ReadJobOutput) {
1205	op := &request.Operation{
1206		Name:       opReadJob,
1207		HTTPMethod: "GET",
1208		HTTPPath:   "/2012-09-25/jobs/{Id}",
1209	}
1210
1211	if input == nil {
1212		input = &ReadJobInput{}
1213	}
1214
1215	output = &ReadJobOutput{}
1216	req = c.newRequest(op, input, output)
1217	return
1218}
1219
1220// ReadJob API operation for Amazon Elastic Transcoder.
1221//
1222// The ReadJob operation returns detailed information about a job.
1223//
1224// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1225// with awserr.Error's Code and Message methods to get detailed information about
1226// the error.
1227//
1228// See the AWS API reference guide for Amazon Elastic Transcoder's
1229// API operation ReadJob for usage and error information.
1230//
1231// Returned Error Codes:
1232//   * ErrCodeValidationException "ValidationException"
1233//   One or more required parameter values were not provided in the request.
1234//
1235//   * ErrCodeIncompatibleVersionException "IncompatibleVersionException"
1236//
1237//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1238//   The requested resource does not exist or is not available. For example, the
1239//   pipeline to which you're trying to add a job doesn't exist or is still being
1240//   created.
1241//
1242//   * ErrCodeAccessDeniedException "AccessDeniedException"
1243//   General authentication failure. The request was not signed correctly.
1244//
1245//   * ErrCodeInternalServiceException "InternalServiceException"
1246//   Elastic Transcoder encountered an unexpected exception while trying to fulfill
1247//   the request.
1248//
1249func (c *ElasticTranscoder) ReadJob(input *ReadJobInput) (*ReadJobOutput, error) {
1250	req, out := c.ReadJobRequest(input)
1251	return out, req.Send()
1252}
1253
1254// ReadJobWithContext is the same as ReadJob with the addition of
1255// the ability to pass a context and additional request options.
1256//
1257// See ReadJob for details on how to use this API operation.
1258//
1259// The context must be non-nil and will be used for request cancellation. If
1260// the context is nil a panic will occur. In the future the SDK may create
1261// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1262// for more information on using Contexts.
1263func (c *ElasticTranscoder) ReadJobWithContext(ctx aws.Context, input *ReadJobInput, opts ...request.Option) (*ReadJobOutput, error) {
1264	req, out := c.ReadJobRequest(input)
1265	req.SetContext(ctx)
1266	req.ApplyOptions(opts...)
1267	return out, req.Send()
1268}
1269
1270const opReadPipeline = "ReadPipeline"
1271
1272// ReadPipelineRequest generates a "aws/request.Request" representing the
1273// client's request for the ReadPipeline operation. The "output" return
1274// value will be populated with the request's response once the request complets
1275// successfuly.
1276//
1277// Use "Send" method on the returned Request to send the API call to the service.
1278// the "output" return value is not valid until after Send returns without error.
1279//
1280// See ReadPipeline for more information on using the ReadPipeline
1281// API call, and error handling.
1282//
1283// This method is useful when you want to inject custom logic or configuration
1284// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1285//
1286//
1287//    // Example sending a request using the ReadPipelineRequest method.
1288//    req, resp := client.ReadPipelineRequest(params)
1289//
1290//    err := req.Send()
1291//    if err == nil { // resp is now filled
1292//        fmt.Println(resp)
1293//    }
1294func (c *ElasticTranscoder) ReadPipelineRequest(input *ReadPipelineInput) (req *request.Request, output *ReadPipelineOutput) {
1295	op := &request.Operation{
1296		Name:       opReadPipeline,
1297		HTTPMethod: "GET",
1298		HTTPPath:   "/2012-09-25/pipelines/{Id}",
1299	}
1300
1301	if input == nil {
1302		input = &ReadPipelineInput{}
1303	}
1304
1305	output = &ReadPipelineOutput{}
1306	req = c.newRequest(op, input, output)
1307	return
1308}
1309
1310// ReadPipeline API operation for Amazon Elastic Transcoder.
1311//
1312// The ReadPipeline operation gets detailed information about a pipeline.
1313//
1314// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1315// with awserr.Error's Code and Message methods to get detailed information about
1316// the error.
1317//
1318// See the AWS API reference guide for Amazon Elastic Transcoder's
1319// API operation ReadPipeline for usage and error information.
1320//
1321// Returned Error Codes:
1322//   * ErrCodeValidationException "ValidationException"
1323//   One or more required parameter values were not provided in the request.
1324//
1325//   * ErrCodeIncompatibleVersionException "IncompatibleVersionException"
1326//
1327//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1328//   The requested resource does not exist or is not available. For example, the
1329//   pipeline to which you're trying to add a job doesn't exist or is still being
1330//   created.
1331//
1332//   * ErrCodeAccessDeniedException "AccessDeniedException"
1333//   General authentication failure. The request was not signed correctly.
1334//
1335//   * ErrCodeInternalServiceException "InternalServiceException"
1336//   Elastic Transcoder encountered an unexpected exception while trying to fulfill
1337//   the request.
1338//
1339func (c *ElasticTranscoder) ReadPipeline(input *ReadPipelineInput) (*ReadPipelineOutput, error) {
1340	req, out := c.ReadPipelineRequest(input)
1341	return out, req.Send()
1342}
1343
1344// ReadPipelineWithContext is the same as ReadPipeline with the addition of
1345// the ability to pass a context and additional request options.
1346//
1347// See ReadPipeline for details on how to use this API operation.
1348//
1349// The context must be non-nil and will be used for request cancellation. If
1350// the context is nil a panic will occur. In the future the SDK may create
1351// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1352// for more information on using Contexts.
1353func (c *ElasticTranscoder) ReadPipelineWithContext(ctx aws.Context, input *ReadPipelineInput, opts ...request.Option) (*ReadPipelineOutput, error) {
1354	req, out := c.ReadPipelineRequest(input)
1355	req.SetContext(ctx)
1356	req.ApplyOptions(opts...)
1357	return out, req.Send()
1358}
1359
1360const opReadPreset = "ReadPreset"
1361
1362// ReadPresetRequest generates a "aws/request.Request" representing the
1363// client's request for the ReadPreset operation. The "output" return
1364// value will be populated with the request's response once the request complets
1365// successfuly.
1366//
1367// Use "Send" method on the returned Request to send the API call to the service.
1368// the "output" return value is not valid until after Send returns without error.
1369//
1370// See ReadPreset for more information on using the ReadPreset
1371// API call, and error handling.
1372//
1373// This method is useful when you want to inject custom logic or configuration
1374// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1375//
1376//
1377//    // Example sending a request using the ReadPresetRequest method.
1378//    req, resp := client.ReadPresetRequest(params)
1379//
1380//    err := req.Send()
1381//    if err == nil { // resp is now filled
1382//        fmt.Println(resp)
1383//    }
1384func (c *ElasticTranscoder) ReadPresetRequest(input *ReadPresetInput) (req *request.Request, output *ReadPresetOutput) {
1385	op := &request.Operation{
1386		Name:       opReadPreset,
1387		HTTPMethod: "GET",
1388		HTTPPath:   "/2012-09-25/presets/{Id}",
1389	}
1390
1391	if input == nil {
1392		input = &ReadPresetInput{}
1393	}
1394
1395	output = &ReadPresetOutput{}
1396	req = c.newRequest(op, input, output)
1397	return
1398}
1399
1400// ReadPreset API operation for Amazon Elastic Transcoder.
1401//
1402// The ReadPreset operation gets detailed information about a preset.
1403//
1404// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1405// with awserr.Error's Code and Message methods to get detailed information about
1406// the error.
1407//
1408// See the AWS API reference guide for Amazon Elastic Transcoder's
1409// API operation ReadPreset for usage and error information.
1410//
1411// Returned Error Codes:
1412//   * ErrCodeValidationException "ValidationException"
1413//   One or more required parameter values were not provided in the request.
1414//
1415//   * ErrCodeIncompatibleVersionException "IncompatibleVersionException"
1416//
1417//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1418//   The requested resource does not exist or is not available. For example, the
1419//   pipeline to which you're trying to add a job doesn't exist or is still being
1420//   created.
1421//
1422//   * ErrCodeAccessDeniedException "AccessDeniedException"
1423//   General authentication failure. The request was not signed correctly.
1424//
1425//   * ErrCodeInternalServiceException "InternalServiceException"
1426//   Elastic Transcoder encountered an unexpected exception while trying to fulfill
1427//   the request.
1428//
1429func (c *ElasticTranscoder) ReadPreset(input *ReadPresetInput) (*ReadPresetOutput, error) {
1430	req, out := c.ReadPresetRequest(input)
1431	return out, req.Send()
1432}
1433
1434// ReadPresetWithContext is the same as ReadPreset with the addition of
1435// the ability to pass a context and additional request options.
1436//
1437// See ReadPreset for details on how to use this API operation.
1438//
1439// The context must be non-nil and will be used for request cancellation. If
1440// the context is nil a panic will occur. In the future the SDK may create
1441// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1442// for more information on using Contexts.
1443func (c *ElasticTranscoder) ReadPresetWithContext(ctx aws.Context, input *ReadPresetInput, opts ...request.Option) (*ReadPresetOutput, error) {
1444	req, out := c.ReadPresetRequest(input)
1445	req.SetContext(ctx)
1446	req.ApplyOptions(opts...)
1447	return out, req.Send()
1448}
1449
1450const opTestRole = "TestRole"
1451
1452// TestRoleRequest generates a "aws/request.Request" representing the
1453// client's request for the TestRole operation. The "output" return
1454// value will be populated with the request's response once the request complets
1455// successfuly.
1456//
1457// Use "Send" method on the returned Request to send the API call to the service.
1458// the "output" return value is not valid until after Send returns without error.
1459//
1460// See TestRole for more information on using the TestRole
1461// API call, and error handling.
1462//
1463// This method is useful when you want to inject custom logic or configuration
1464// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1465//
1466//
1467//    // Example sending a request using the TestRoleRequest method.
1468//    req, resp := client.TestRoleRequest(params)
1469//
1470//    err := req.Send()
1471//    if err == nil { // resp is now filled
1472//        fmt.Println(resp)
1473//    }
1474func (c *ElasticTranscoder) TestRoleRequest(input *TestRoleInput) (req *request.Request, output *TestRoleOutput) {
1475	if c.Client.Config.Logger != nil {
1476		c.Client.Config.Logger.Log("This operation, TestRole, has been deprecated")
1477	}
1478	op := &request.Operation{
1479		Name:       opTestRole,
1480		HTTPMethod: "POST",
1481		HTTPPath:   "/2012-09-25/roleTests",
1482	}
1483
1484	if input == nil {
1485		input = &TestRoleInput{}
1486	}
1487
1488	output = &TestRoleOutput{}
1489	req = c.newRequest(op, input, output)
1490	return
1491}
1492
1493// TestRole API operation for Amazon Elastic Transcoder.
1494//
1495// The TestRole operation tests the IAM role used to create the pipeline.
1496//
1497// The TestRole action lets you determine whether the IAM role you are using
1498// has sufficient permissions to let Elastic Transcoder perform tasks associated
1499// with the transcoding process. The action attempts to assume the specified
1500// IAM role, checks read access to the input and output buckets, and tries to
1501// send a test notification to Amazon SNS topics that you specify.
1502//
1503// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1504// with awserr.Error's Code and Message methods to get detailed information about
1505// the error.
1506//
1507// See the AWS API reference guide for Amazon Elastic Transcoder's
1508// API operation TestRole for usage and error information.
1509//
1510// Returned Error Codes:
1511//   * ErrCodeValidationException "ValidationException"
1512//   One or more required parameter values were not provided in the request.
1513//
1514//   * ErrCodeIncompatibleVersionException "IncompatibleVersionException"
1515//
1516//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1517//   The requested resource does not exist or is not available. For example, the
1518//   pipeline to which you're trying to add a job doesn't exist or is still being
1519//   created.
1520//
1521//   * ErrCodeAccessDeniedException "AccessDeniedException"
1522//   General authentication failure. The request was not signed correctly.
1523//
1524//   * ErrCodeInternalServiceException "InternalServiceException"
1525//   Elastic Transcoder encountered an unexpected exception while trying to fulfill
1526//   the request.
1527//
1528func (c *ElasticTranscoder) TestRole(input *TestRoleInput) (*TestRoleOutput, error) {
1529	req, out := c.TestRoleRequest(input)
1530	return out, req.Send()
1531}
1532
1533// TestRoleWithContext is the same as TestRole with the addition of
1534// the ability to pass a context and additional request options.
1535//
1536// See TestRole for details on how to use this API operation.
1537//
1538// The context must be non-nil and will be used for request cancellation. If
1539// the context is nil a panic will occur. In the future the SDK may create
1540// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1541// for more information on using Contexts.
1542func (c *ElasticTranscoder) TestRoleWithContext(ctx aws.Context, input *TestRoleInput, opts ...request.Option) (*TestRoleOutput, error) {
1543	req, out := c.TestRoleRequest(input)
1544	req.SetContext(ctx)
1545	req.ApplyOptions(opts...)
1546	return out, req.Send()
1547}
1548
1549const opUpdatePipeline = "UpdatePipeline"
1550
1551// UpdatePipelineRequest generates a "aws/request.Request" representing the
1552// client's request for the UpdatePipeline operation. The "output" return
1553// value will be populated with the request's response once the request complets
1554// successfuly.
1555//
1556// Use "Send" method on the returned Request to send the API call to the service.
1557// the "output" return value is not valid until after Send returns without error.
1558//
1559// See UpdatePipeline for more information on using the UpdatePipeline
1560// API call, and error handling.
1561//
1562// This method is useful when you want to inject custom logic or configuration
1563// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1564//
1565//
1566//    // Example sending a request using the UpdatePipelineRequest method.
1567//    req, resp := client.UpdatePipelineRequest(params)
1568//
1569//    err := req.Send()
1570//    if err == nil { // resp is now filled
1571//        fmt.Println(resp)
1572//    }
1573func (c *ElasticTranscoder) UpdatePipelineRequest(input *UpdatePipelineInput) (req *request.Request, output *UpdatePipelineOutput) {
1574	op := &request.Operation{
1575		Name:       opUpdatePipeline,
1576		HTTPMethod: "PUT",
1577		HTTPPath:   "/2012-09-25/pipelines/{Id}",
1578	}
1579
1580	if input == nil {
1581		input = &UpdatePipelineInput{}
1582	}
1583
1584	output = &UpdatePipelineOutput{}
1585	req = c.newRequest(op, input, output)
1586	return
1587}
1588
1589// UpdatePipeline API operation for Amazon Elastic Transcoder.
1590//
1591// Use the UpdatePipeline operation to update settings for a pipeline.
1592//
1593// When you change pipeline settings, your changes take effect immediately.
1594// Jobs that you have already submitted and that Elastic Transcoder has not
1595// started to process are affected in addition to jobs that you submit after
1596// you change settings.
1597//
1598// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1599// with awserr.Error's Code and Message methods to get detailed information about
1600// the error.
1601//
1602// See the AWS API reference guide for Amazon Elastic Transcoder's
1603// API operation UpdatePipeline for usage and error information.
1604//
1605// Returned Error Codes:
1606//   * ErrCodeValidationException "ValidationException"
1607//   One or more required parameter values were not provided in the request.
1608//
1609//   * ErrCodeIncompatibleVersionException "IncompatibleVersionException"
1610//
1611//   * ErrCodeAccessDeniedException "AccessDeniedException"
1612//   General authentication failure. The request was not signed correctly.
1613//
1614//   * ErrCodeResourceInUseException "ResourceInUseException"
1615//   The resource you are attempting to change is in use. For example, you are
1616//   attempting to delete a pipeline that is currently in use.
1617//
1618//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1619//   The requested resource does not exist or is not available. For example, the
1620//   pipeline to which you're trying to add a job doesn't exist or is still being
1621//   created.
1622//
1623//   * ErrCodeInternalServiceException "InternalServiceException"
1624//   Elastic Transcoder encountered an unexpected exception while trying to fulfill
1625//   the request.
1626//
1627func (c *ElasticTranscoder) UpdatePipeline(input *UpdatePipelineInput) (*UpdatePipelineOutput, error) {
1628	req, out := c.UpdatePipelineRequest(input)
1629	return out, req.Send()
1630}
1631
1632// UpdatePipelineWithContext is the same as UpdatePipeline with the addition of
1633// the ability to pass a context and additional request options.
1634//
1635// See UpdatePipeline for details on how to use this API operation.
1636//
1637// The context must be non-nil and will be used for request cancellation. If
1638// the context is nil a panic will occur. In the future the SDK may create
1639// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1640// for more information on using Contexts.
1641func (c *ElasticTranscoder) UpdatePipelineWithContext(ctx aws.Context, input *UpdatePipelineInput, opts ...request.Option) (*UpdatePipelineOutput, error) {
1642	req, out := c.UpdatePipelineRequest(input)
1643	req.SetContext(ctx)
1644	req.ApplyOptions(opts...)
1645	return out, req.Send()
1646}
1647
1648const opUpdatePipelineNotifications = "UpdatePipelineNotifications"
1649
1650// UpdatePipelineNotificationsRequest generates a "aws/request.Request" representing the
1651// client's request for the UpdatePipelineNotifications operation. The "output" return
1652// value will be populated with the request's response once the request complets
1653// successfuly.
1654//
1655// Use "Send" method on the returned Request to send the API call to the service.
1656// the "output" return value is not valid until after Send returns without error.
1657//
1658// See UpdatePipelineNotifications for more information on using the UpdatePipelineNotifications
1659// API call, and error handling.
1660//
1661// This method is useful when you want to inject custom logic or configuration
1662// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1663//
1664//
1665//    // Example sending a request using the UpdatePipelineNotificationsRequest method.
1666//    req, resp := client.UpdatePipelineNotificationsRequest(params)
1667//
1668//    err := req.Send()
1669//    if err == nil { // resp is now filled
1670//        fmt.Println(resp)
1671//    }
1672func (c *ElasticTranscoder) UpdatePipelineNotificationsRequest(input *UpdatePipelineNotificationsInput) (req *request.Request, output *UpdatePipelineNotificationsOutput) {
1673	op := &request.Operation{
1674		Name:       opUpdatePipelineNotifications,
1675		HTTPMethod: "POST",
1676		HTTPPath:   "/2012-09-25/pipelines/{Id}/notifications",
1677	}
1678
1679	if input == nil {
1680		input = &UpdatePipelineNotificationsInput{}
1681	}
1682
1683	output = &UpdatePipelineNotificationsOutput{}
1684	req = c.newRequest(op, input, output)
1685	return
1686}
1687
1688// UpdatePipelineNotifications API operation for Amazon Elastic Transcoder.
1689//
1690// With the UpdatePipelineNotifications operation, you can update Amazon Simple
1691// Notification Service (Amazon SNS) notifications for a pipeline.
1692//
1693// When you update notifications for a pipeline, Elastic Transcoder returns
1694// the values that you specified in the request.
1695//
1696// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1697// with awserr.Error's Code and Message methods to get detailed information about
1698// the error.
1699//
1700// See the AWS API reference guide for Amazon Elastic Transcoder's
1701// API operation UpdatePipelineNotifications for usage and error information.
1702//
1703// Returned Error Codes:
1704//   * ErrCodeValidationException "ValidationException"
1705//   One or more required parameter values were not provided in the request.
1706//
1707//   * ErrCodeIncompatibleVersionException "IncompatibleVersionException"
1708//
1709//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1710//   The requested resource does not exist or is not available. For example, the
1711//   pipeline to which you're trying to add a job doesn't exist or is still being
1712//   created.
1713//
1714//   * ErrCodeResourceInUseException "ResourceInUseException"
1715//   The resource you are attempting to change is in use. For example, you are
1716//   attempting to delete a pipeline that is currently in use.
1717//
1718//   * ErrCodeAccessDeniedException "AccessDeniedException"
1719//   General authentication failure. The request was not signed correctly.
1720//
1721//   * ErrCodeInternalServiceException "InternalServiceException"
1722//   Elastic Transcoder encountered an unexpected exception while trying to fulfill
1723//   the request.
1724//
1725func (c *ElasticTranscoder) UpdatePipelineNotifications(input *UpdatePipelineNotificationsInput) (*UpdatePipelineNotificationsOutput, error) {
1726	req, out := c.UpdatePipelineNotificationsRequest(input)
1727	return out, req.Send()
1728}
1729
1730// UpdatePipelineNotificationsWithContext is the same as UpdatePipelineNotifications with the addition of
1731// the ability to pass a context and additional request options.
1732//
1733// See UpdatePipelineNotifications for details on how to use this API operation.
1734//
1735// The context must be non-nil and will be used for request cancellation. If
1736// the context is nil a panic will occur. In the future the SDK may create
1737// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1738// for more information on using Contexts.
1739func (c *ElasticTranscoder) UpdatePipelineNotificationsWithContext(ctx aws.Context, input *UpdatePipelineNotificationsInput, opts ...request.Option) (*UpdatePipelineNotificationsOutput, error) {
1740	req, out := c.UpdatePipelineNotificationsRequest(input)
1741	req.SetContext(ctx)
1742	req.ApplyOptions(opts...)
1743	return out, req.Send()
1744}
1745
1746const opUpdatePipelineStatus = "UpdatePipelineStatus"
1747
1748// UpdatePipelineStatusRequest generates a "aws/request.Request" representing the
1749// client's request for the UpdatePipelineStatus operation. The "output" return
1750// value will be populated with the request's response once the request complets
1751// successfuly.
1752//
1753// Use "Send" method on the returned Request to send the API call to the service.
1754// the "output" return value is not valid until after Send returns without error.
1755//
1756// See UpdatePipelineStatus for more information on using the UpdatePipelineStatus
1757// API call, and error handling.
1758//
1759// This method is useful when you want to inject custom logic or configuration
1760// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1761//
1762//
1763//    // Example sending a request using the UpdatePipelineStatusRequest method.
1764//    req, resp := client.UpdatePipelineStatusRequest(params)
1765//
1766//    err := req.Send()
1767//    if err == nil { // resp is now filled
1768//        fmt.Println(resp)
1769//    }
1770func (c *ElasticTranscoder) UpdatePipelineStatusRequest(input *UpdatePipelineStatusInput) (req *request.Request, output *UpdatePipelineStatusOutput) {
1771	op := &request.Operation{
1772		Name:       opUpdatePipelineStatus,
1773		HTTPMethod: "POST",
1774		HTTPPath:   "/2012-09-25/pipelines/{Id}/status",
1775	}
1776
1777	if input == nil {
1778		input = &UpdatePipelineStatusInput{}
1779	}
1780
1781	output = &UpdatePipelineStatusOutput{}
1782	req = c.newRequest(op, input, output)
1783	return
1784}
1785
1786// UpdatePipelineStatus API operation for Amazon Elastic Transcoder.
1787//
1788// The UpdatePipelineStatus operation pauses or reactivates a pipeline, so that
1789// the pipeline stops or restarts the processing of jobs.
1790//
1791// Changing the pipeline status is useful if you want to cancel one or more
1792// jobs. You can't cancel jobs after Elastic Transcoder has started processing
1793// them; if you pause the pipeline to which you submitted the jobs, you have
1794// more time to get the job IDs for the jobs that you want to cancel, and to
1795// send a CancelJob request.
1796//
1797// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1798// with awserr.Error's Code and Message methods to get detailed information about
1799// the error.
1800//
1801// See the AWS API reference guide for Amazon Elastic Transcoder's
1802// API operation UpdatePipelineStatus for usage and error information.
1803//
1804// Returned Error Codes:
1805//   * ErrCodeValidationException "ValidationException"
1806//   One or more required parameter values were not provided in the request.
1807//
1808//   * ErrCodeIncompatibleVersionException "IncompatibleVersionException"
1809//
1810//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1811//   The requested resource does not exist or is not available. For example, the
1812//   pipeline to which you're trying to add a job doesn't exist or is still being
1813//   created.
1814//
1815//   * ErrCodeResourceInUseException "ResourceInUseException"
1816//   The resource you are attempting to change is in use. For example, you are
1817//   attempting to delete a pipeline that is currently in use.
1818//
1819//   * ErrCodeAccessDeniedException "AccessDeniedException"
1820//   General authentication failure. The request was not signed correctly.
1821//
1822//   * ErrCodeInternalServiceException "InternalServiceException"
1823//   Elastic Transcoder encountered an unexpected exception while trying to fulfill
1824//   the request.
1825//
1826func (c *ElasticTranscoder) UpdatePipelineStatus(input *UpdatePipelineStatusInput) (*UpdatePipelineStatusOutput, error) {
1827	req, out := c.UpdatePipelineStatusRequest(input)
1828	return out, req.Send()
1829}
1830
1831// UpdatePipelineStatusWithContext is the same as UpdatePipelineStatus with the addition of
1832// the ability to pass a context and additional request options.
1833//
1834// See UpdatePipelineStatus for details on how to use this API operation.
1835//
1836// The context must be non-nil and will be used for request cancellation. If
1837// the context is nil a panic will occur. In the future the SDK may create
1838// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1839// for more information on using Contexts.
1840func (c *ElasticTranscoder) UpdatePipelineStatusWithContext(ctx aws.Context, input *UpdatePipelineStatusInput, opts ...request.Option) (*UpdatePipelineStatusOutput, error) {
1841	req, out := c.UpdatePipelineStatusRequest(input)
1842	req.SetContext(ctx)
1843	req.ApplyOptions(opts...)
1844	return out, req.Send()
1845}
1846
1847// The file to be used as album art. There can be multiple artworks associated
1848// with an audio file, to a maximum of 20.
1849//
1850// To remove artwork or leave the artwork empty, you can either set Artwork
1851// to null, or set the Merge Policy to "Replace" and use an empty Artwork array.
1852//
1853// To pass through existing artwork unchanged, set the Merge Policy to "Prepend",
1854// "Append", or "Fallback", and use an empty Artwork array.
1855type Artwork struct {
1856	_ struct{} `type:"structure"`
1857
1858	// The format of album art, if any. Valid formats are .jpg and .png.
1859	AlbumArtFormat *string `type:"string"`
1860
1861	// The encryption settings, if any, that you want Elastic Transcoder to apply
1862	// to your artwork.
1863	Encryption *Encryption `type:"structure"`
1864
1865	// The name of the file to be used as album art. To determine which Amazon S3
1866	// bucket contains the specified file, Elastic Transcoder checks the pipeline
1867	// specified by PipelineId; the InputBucket object in that pipeline identifies
1868	// the bucket.
1869	//
1870	// If the file name includes a prefix, for example, cooking/pie.jpg, include
1871	// the prefix in the key. If the file isn't in the specified bucket, Elastic
1872	// Transcoder returns an error.
1873	InputKey *string `min:"1" type:"string"`
1874
1875	// The maximum height of the output album art in pixels. If you specify auto,
1876	// Elastic Transcoder uses 600 as the default value. If you specify a numeric
1877	// value, enter an even integer between 32 and 3072, inclusive.
1878	MaxHeight *string `type:"string"`
1879
1880	// The maximum width of the output album art in pixels. If you specify auto,
1881	// Elastic Transcoder uses 600 as the default value. If you specify a numeric
1882	// value, enter an even integer between 32 and 4096, inclusive.
1883	MaxWidth *string `type:"string"`
1884
1885	// When you set PaddingPolicy to Pad, Elastic Transcoder may add white bars
1886	// to the top and bottom and/or left and right sides of the output album art
1887	// to make the total size of the output art match the values that you specified
1888	// for MaxWidth and MaxHeight.
1889	PaddingPolicy *string `type:"string"`
1890
1891	// Specify one of the following values to control scaling of the output album
1892	// art:
1893	//
1894	//    * Fit: Elastic Transcoder scales the output art so it matches the value
1895	//    that you specified in either MaxWidth or MaxHeight without exceeding the
1896	//    other value.
1897	//
1898	//    * Fill: Elastic Transcoder scales the output art so it matches the value
1899	//    that you specified in either MaxWidth or MaxHeight and matches or exceeds
1900	//    the other value. Elastic Transcoder centers the output art and then crops
1901	//    it in the dimension (if any) that exceeds the maximum value.
1902	//
1903	//    * Stretch: Elastic Transcoder stretches the output art to match the values
1904	//    that you specified for MaxWidth and MaxHeight. If the relative proportions
1905	//    of the input art and the output art are different, the output art will
1906	//    be distorted.
1907	//
1908	//    * Keep: Elastic Transcoder does not scale the output art. If either dimension
1909	//    of the input art exceeds the values that you specified for MaxWidth and
1910	//    MaxHeight, Elastic Transcoder crops the output art.
1911	//
1912	//    * ShrinkToFit: Elastic Transcoder scales the output art down so that its
1913	//    dimensions match the values that you specified for at least one of MaxWidth
1914	//    and MaxHeight without exceeding either value. If you specify this option,
1915	//    Elastic Transcoder does not scale the art up.
1916	//
1917	//    * ShrinkToFill Elastic Transcoder scales the output art down so that its
1918	//    dimensions match the values that you specified for at least one of MaxWidth
1919	//    and MaxHeight without dropping below either value. If you specify this
1920	//    option, Elastic Transcoder does not scale the art up.
1921	SizingPolicy *string `type:"string"`
1922}
1923
1924// String returns the string representation
1925func (s Artwork) String() string {
1926	return awsutil.Prettify(s)
1927}
1928
1929// GoString returns the string representation
1930func (s Artwork) GoString() string {
1931	return s.String()
1932}
1933
1934// Validate inspects the fields of the type to determine if they are valid.
1935func (s *Artwork) Validate() error {
1936	invalidParams := request.ErrInvalidParams{Context: "Artwork"}
1937	if s.InputKey != nil && len(*s.InputKey) < 1 {
1938		invalidParams.Add(request.NewErrParamMinLen("InputKey", 1))
1939	}
1940
1941	if invalidParams.Len() > 0 {
1942		return invalidParams
1943	}
1944	return nil
1945}
1946
1947// SetAlbumArtFormat sets the AlbumArtFormat field's value.
1948func (s *Artwork) SetAlbumArtFormat(v string) *Artwork {
1949	s.AlbumArtFormat = &v
1950	return s
1951}
1952
1953// SetEncryption sets the Encryption field's value.
1954func (s *Artwork) SetEncryption(v *Encryption) *Artwork {
1955	s.Encryption = v
1956	return s
1957}
1958
1959// SetInputKey sets the InputKey field's value.
1960func (s *Artwork) SetInputKey(v string) *Artwork {
1961	s.InputKey = &v
1962	return s
1963}
1964
1965// SetMaxHeight sets the MaxHeight field's value.
1966func (s *Artwork) SetMaxHeight(v string) *Artwork {
1967	s.MaxHeight = &v
1968	return s
1969}
1970
1971// SetMaxWidth sets the MaxWidth field's value.
1972func (s *Artwork) SetMaxWidth(v string) *Artwork {
1973	s.MaxWidth = &v
1974	return s
1975}
1976
1977// SetPaddingPolicy sets the PaddingPolicy field's value.
1978func (s *Artwork) SetPaddingPolicy(v string) *Artwork {
1979	s.PaddingPolicy = &v
1980	return s
1981}
1982
1983// SetSizingPolicy sets the SizingPolicy field's value.
1984func (s *Artwork) SetSizingPolicy(v string) *Artwork {
1985	s.SizingPolicy = &v
1986	return s
1987}
1988
1989// Options associated with your audio codec.
1990type AudioCodecOptions struct {
1991	_ struct{} `type:"structure"`
1992
1993	// You can only choose an audio bit depth when you specify flac or pcm for the
1994	// value of Audio:Codec.
1995	//
1996	// The bit depth of a sample is how many bits of information are included in
1997	// the audio samples. The higher the bit depth, the better the audio, but the
1998	// larger the file.
1999	//
2000	// Valid values are 16 and 24.
2001	//
2002	// The most common bit depth is 24.
2003	BitDepth *string `type:"string"`
2004
2005	// You can only choose an audio bit order when you specify pcm for the value
2006	// of Audio:Codec.
2007	//
2008	// The order the bits of a PCM sample are stored in.
2009	//
2010	// The supported value is LittleEndian.
2011	BitOrder *string `type:"string"`
2012
2013	// You can only choose an audio profile when you specify AAC for the value of
2014	// Audio:Codec.
2015	//
2016	// Specify the AAC profile for the output file. Elastic Transcoder supports
2017	// the following profiles:
2018	//
2019	//    * auto: If you specify auto, Elastic Transcoder selects the profile based
2020	//    on the bit rate selected for the output file.
2021	//
2022	//    * AAC-LC: The most common AAC profile. Use for bit rates larger than 64
2023	//    kbps.
2024	//
2025	//    * HE-AAC: Not supported on some older players and devices. Use for bit
2026	//    rates between 40 and 80 kbps.
2027	//
2028	//    * HE-AACv2: Not supported on some players and devices. Use for bit rates
2029	//    less than 48 kbps.
2030	//
2031	// All outputs in a Smooth playlist must have the same value for Profile.
2032	//
2033	// If you created any presets before AAC profiles were added, Elastic Transcoder
2034	// automatically updated your presets to use AAC-LC. You can change the value
2035	// as required.
2036	Profile *string `type:"string"`
2037
2038	// You can only choose whether an audio sample is signed when you specify pcm
2039	// for the value of Audio:Codec.
2040	//
2041	// Whether audio samples are represented with negative and positive numbers
2042	// (signed) or only positive numbers (unsigned).
2043	//
2044	// The supported value is Signed.
2045	Signed *string `type:"string"`
2046}
2047
2048// String returns the string representation
2049func (s AudioCodecOptions) String() string {
2050	return awsutil.Prettify(s)
2051}
2052
2053// GoString returns the string representation
2054func (s AudioCodecOptions) GoString() string {
2055	return s.String()
2056}
2057
2058// SetBitDepth sets the BitDepth field's value.
2059func (s *AudioCodecOptions) SetBitDepth(v string) *AudioCodecOptions {
2060	s.BitDepth = &v
2061	return s
2062}
2063
2064// SetBitOrder sets the BitOrder field's value.
2065func (s *AudioCodecOptions) SetBitOrder(v string) *AudioCodecOptions {
2066	s.BitOrder = &v
2067	return s
2068}
2069
2070// SetProfile sets the Profile field's value.
2071func (s *AudioCodecOptions) SetProfile(v string) *AudioCodecOptions {
2072	s.Profile = &v
2073	return s
2074}
2075
2076// SetSigned sets the Signed field's value.
2077func (s *AudioCodecOptions) SetSigned(v string) *AudioCodecOptions {
2078	s.Signed = &v
2079	return s
2080}
2081
2082// Parameters required for transcoding audio.
2083type AudioParameters struct {
2084	_ struct{} `type:"structure"`
2085
2086	// The method of organizing audio channels and tracks. Use Audio:Channels to
2087	// specify the number of channels in your output, and Audio:AudioPackingMode
2088	// to specify the number of tracks and their relation to the channels. If you
2089	// do not specify an Audio:AudioPackingMode, Elastic Transcoder uses SingleTrack.
2090	//
2091	// The following values are valid:
2092	//
2093	// SingleTrack, OneChannelPerTrack, and OneChannelPerTrackWithMosTo8Tracks
2094	//
2095	// When you specify SingleTrack, Elastic Transcoder creates a single track for
2096	// your output. The track can have up to eight channels. Use SingleTrack for
2097	// all non-mxf containers.
2098	//
2099	// The outputs of SingleTrack for a specific channel value and inputs are as
2100	// follows:
2101	//
2102	//    * 0 channels with any input: Audio omitted from the output
2103	//
2104	//    * 1, 2, or auto channels with no audio input: Audio omitted from the output
2105	//
2106	//    * 1 channel with any input with audio: One track with one channel, downmixed
2107	//    if necessary
2108	//
2109	//    * 2 channels with one track with one channel: One track with two identical
2110	//    channels
2111	//
2112	//    * 2 or auto channels with two tracks with one channel each: One track
2113	//    with two channels
2114	//
2115	//    * 2 or auto channels with one track with two channels: One track with
2116	//    two channels
2117	//
2118	//    * 2 channels with one track with multiple channels: One track with two
2119	//    channels
2120	//
2121	//    * auto channels with one track with one channel: One track with one channel
2122	//
2123	//    * auto channels with one track with multiple channels: One track with
2124	//    multiple channels
2125	//
2126	// When you specify OneChannelPerTrack, Elastic Transcoder creates a new track
2127	// for every channel in your output. Your output can have up to eight single-channel
2128	// tracks.
2129	//
2130	// The outputs of OneChannelPerTrack for a specific channel value and inputs
2131	// are as follows:
2132	//
2133	//    * 0 channels with any input: Audio omitted from the output
2134	//
2135	//    * 1, 2, or auto channels with no audio input: Audio omitted from the output
2136	//
2137	//    * 1 channel with any input with audio: One track with one channel, downmixed
2138	//    if necessary
2139	//
2140	//    * 2 channels with one track with one channel: Two tracks with one identical
2141	//    channel each
2142	//
2143	//    * 2 or auto channels with two tracks with one channel each: Two tracks
2144	//    with one channel each
2145	//
2146	//    * 2 or auto channels with one track with two channels: Two tracks with
2147	//    one channel each
2148	//
2149	//    * 2 channels with one track with multiple channels: Two tracks with one
2150	//    channel each
2151	//
2152	//    * auto channels with one track with one channel: One track with one channel
2153	//
2154	//    * auto channels with one track with multiple channels: Up to eight tracks
2155	//    with one channel each
2156	//
2157	// When you specify OneChannelPerTrackWithMosTo8Tracks, Elastic Transcoder creates
2158	// eight single-channel tracks for your output. All tracks that do not contain
2159	// audio data from an input channel are MOS, or Mit Out Sound, tracks.
2160	//
2161	// The outputs of OneChannelPerTrackWithMosTo8Tracks for a specific channel
2162	// value and inputs are as follows:
2163	//
2164	//    * 0 channels with any input: Audio omitted from the output
2165	//
2166	//    * 1, 2, or auto channels with no audio input: Audio omitted from the output
2167	//
2168	//    * 1 channel with any input with audio: One track with one channel, downmixed
2169	//    if necessary, plus six MOS tracks
2170	//
2171	//    * 2 channels with one track with one channel: Two tracks with one identical
2172	//    channel each, plus six MOS tracks
2173	//
2174	//    * 2 or auto channels with two tracks with one channel each: Two tracks
2175	//    with one channel each, plus six MOS tracks
2176	//
2177	//    * 2 or auto channels with one track with two channels: Two tracks with
2178	//    one channel each, plus six MOS tracks
2179	//
2180	//    * 2 channels with one track with multiple channels: Two tracks with one
2181	//    channel each, plus six MOS tracks
2182	//
2183	//    * auto channels with one track with one channel: One track with one channel,
2184	//    plus seven MOS tracks
2185	//
2186	//    * auto channels with one track with multiple channels: Up to eight tracks
2187	//    with one channel each, plus MOS tracks until there are eight tracks in
2188	//    all
2189	AudioPackingMode *string `type:"string"`
2190
2191	// The bit rate of the audio stream in the output file, in kilobits/second.
2192	// Enter an integer between 64 and 320, inclusive.
2193	BitRate *string `type:"string"`
2194
2195	// The number of audio channels in the output file. The following values are
2196	// valid:
2197	//
2198	// auto, 0, 1, 2
2199	//
2200	// One channel carries the information played by a single speaker. For example,
2201	// a stereo track with two channels sends one channel to the left speaker, and
2202	// the other channel to the right speaker. The output channels are organized
2203	// into tracks. If you want Elastic Transcoder to automatically detect the number
2204	// of audio channels in the input file and use that value for the output file,
2205	// select auto.
2206	//
2207	// The output of a specific channel value and inputs are as follows:
2208	//
2209	//    * auto channel specified, with any input: Pass through up to eight input
2210	//    channels.
2211	//
2212	//    * 0 channels specified, with any input: Audio omitted from the output.
2213	//
2214	//    * 1 channel specified, with at least one input channel: Mono sound.
2215	//
2216	//    * 2 channels specified, with any input: Two identical mono channels or
2217	//    stereo. For more information about tracks, see Audio:AudioPackingMode.
2218	//
2219	// For more information about how Elastic Transcoder organizes channels and
2220	// tracks, see Audio:AudioPackingMode.
2221	Channels *string `type:"string"`
2222
2223	// The audio codec for the output file. Valid values include aac, flac, mp2,
2224	// mp3, pcm, and vorbis.
2225	Codec *string `type:"string"`
2226
2227	// If you specified AAC for Audio:Codec, this is the AAC compression profile
2228	// to use. Valid values include:
2229	//
2230	// auto, AAC-LC, HE-AAC, HE-AACv2
2231	//
2232	// If you specify auto, Elastic Transcoder chooses a profile based on the bit
2233	// rate of the output file.
2234	CodecOptions *AudioCodecOptions `type:"structure"`
2235
2236	// The sample rate of the audio stream in the output file, in Hertz. Valid values
2237	// include:
2238	//
2239	// auto, 22050, 32000, 44100, 48000, 96000
2240	//
2241	// If you specify auto, Elastic Transcoder automatically detects the sample
2242	// rate.
2243	SampleRate *string `type:"string"`
2244}
2245
2246// String returns the string representation
2247func (s AudioParameters) String() string {
2248	return awsutil.Prettify(s)
2249}
2250
2251// GoString returns the string representation
2252func (s AudioParameters) GoString() string {
2253	return s.String()
2254}
2255
2256// SetAudioPackingMode sets the AudioPackingMode field's value.
2257func (s *AudioParameters) SetAudioPackingMode(v string) *AudioParameters {
2258	s.AudioPackingMode = &v
2259	return s
2260}
2261
2262// SetBitRate sets the BitRate field's value.
2263func (s *AudioParameters) SetBitRate(v string) *AudioParameters {
2264	s.BitRate = &v
2265	return s
2266}
2267
2268// SetChannels sets the Channels field's value.
2269func (s *AudioParameters) SetChannels(v string) *AudioParameters {
2270	s.Channels = &v
2271	return s
2272}
2273
2274// SetCodec sets the Codec field's value.
2275func (s *AudioParameters) SetCodec(v string) *AudioParameters {
2276	s.Codec = &v
2277	return s
2278}
2279
2280// SetCodecOptions sets the CodecOptions field's value.
2281func (s *AudioParameters) SetCodecOptions(v *AudioCodecOptions) *AudioParameters {
2282	s.CodecOptions = v
2283	return s
2284}
2285
2286// SetSampleRate sets the SampleRate field's value.
2287func (s *AudioParameters) SetSampleRate(v string) *AudioParameters {
2288	s.SampleRate = &v
2289	return s
2290}
2291
2292// The CancelJobRequest structure.
2293type CancelJobInput struct {
2294	_ struct{} `type:"structure"`
2295
2296	// The identifier of the job that you want to cancel.
2297	//
2298	// To get a list of the jobs (including their jobId) that have a status of Submitted,
2299	// use the ListJobsByStatus API action.
2300	//
2301	// Id is a required field
2302	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
2303}
2304
2305// String returns the string representation
2306func (s CancelJobInput) String() string {
2307	return awsutil.Prettify(s)
2308}
2309
2310// GoString returns the string representation
2311func (s CancelJobInput) GoString() string {
2312	return s.String()
2313}
2314
2315// Validate inspects the fields of the type to determine if they are valid.
2316func (s *CancelJobInput) Validate() error {
2317	invalidParams := request.ErrInvalidParams{Context: "CancelJobInput"}
2318	if s.Id == nil {
2319		invalidParams.Add(request.NewErrParamRequired("Id"))
2320	}
2321
2322	if invalidParams.Len() > 0 {
2323		return invalidParams
2324	}
2325	return nil
2326}
2327
2328// SetId sets the Id field's value.
2329func (s *CancelJobInput) SetId(v string) *CancelJobInput {
2330	s.Id = &v
2331	return s
2332}
2333
2334// The response body contains a JSON object. If the job is successfully canceled,
2335// the value of Success is true.
2336type CancelJobOutput struct {
2337	_ struct{} `type:"structure"`
2338}
2339
2340// String returns the string representation
2341func (s CancelJobOutput) String() string {
2342	return awsutil.Prettify(s)
2343}
2344
2345// GoString returns the string representation
2346func (s CancelJobOutput) GoString() string {
2347	return s.String()
2348}
2349
2350// The file format of the output captions. If you leave this value blank, Elastic
2351// Transcoder returns an error.
2352type CaptionFormat struct {
2353	_ struct{} `type:"structure"`
2354
2355	// The encryption settings, if any, that you want Elastic Transcoder to apply
2356	// to your caption formats.
2357	Encryption *Encryption `type:"structure"`
2358
2359	// The format you specify determines whether Elastic Transcoder generates an
2360	// embedded or sidecar caption for this output.
2361	//
2362	//    * Valid Embedded Caption Formats:
2363	//
2364	// for FLAC: None
2365	//
2366	// For MP3: None
2367	//
2368	// For MP4: mov-text
2369	//
2370	// For MPEG-TS: None
2371	//
2372	// For ogg: None
2373	//
2374	// For webm: None
2375	//
2376	//    * Valid Sidecar Caption Formats: Elastic Transcoder supports dfxp (first
2377	//    div element only), scc, srt, and webvtt. If you want ttml or smpte-tt
2378	//    compatible captions, specify dfxp as your output format.
2379	//
2380	// For FMP4: dfxp
2381	//
2382	// Non-FMP4 outputs: All sidecar types
2383	//
2384	// fmp4 captions have an extension of .ismt
2385	Format *string `type:"string"`
2386
2387	// The prefix for caption filenames, in the form description-{language}, where:
2388	//
2389	//    * description is a description of the video.
2390	//
2391	//    * {language} is a literal value that Elastic Transcoder replaces with
2392	//    the two- or three-letter code for the language of the caption in the output
2393	//    file names.
2394	//
2395	// If you don't include {language} in the file name pattern, Elastic Transcoder
2396	// automatically appends "{language}" to the value that you specify for the
2397	// description. In addition, Elastic Transcoder automatically appends the count
2398	// to the end of the segment files.
2399	//
2400	// For example, suppose you're transcoding into srt format. When you enter "Sydney-{language}-sunrise",
2401	// and the language of the captions is English (en), the name of the first caption
2402	// file is be Sydney-en-sunrise00000.srt.
2403	Pattern *string `type:"string"`
2404}
2405
2406// String returns the string representation
2407func (s CaptionFormat) String() string {
2408	return awsutil.Prettify(s)
2409}
2410
2411// GoString returns the string representation
2412func (s CaptionFormat) GoString() string {
2413	return s.String()
2414}
2415
2416// SetEncryption sets the Encryption field's value.
2417func (s *CaptionFormat) SetEncryption(v *Encryption) *CaptionFormat {
2418	s.Encryption = v
2419	return s
2420}
2421
2422// SetFormat sets the Format field's value.
2423func (s *CaptionFormat) SetFormat(v string) *CaptionFormat {
2424	s.Format = &v
2425	return s
2426}
2427
2428// SetPattern sets the Pattern field's value.
2429func (s *CaptionFormat) SetPattern(v string) *CaptionFormat {
2430	s.Pattern = &v
2431	return s
2432}
2433
2434// A source file for the input sidecar captions used during the transcoding
2435// process.
2436type CaptionSource struct {
2437	_ struct{} `type:"structure"`
2438
2439	// The encryption settings, if any, that Elastic Transcoder needs to decyrpt
2440	// your caption sources, or that you want Elastic Transcoder to apply to your
2441	// caption sources.
2442	Encryption *Encryption `type:"structure"`
2443
2444	// The name of the sidecar caption file that you want Elastic Transcoder to
2445	// include in the output file.
2446	Key *string `min:"1" type:"string"`
2447
2448	// The label of the caption shown in the player when choosing a language. We
2449	// recommend that you put the caption language name here, in the language of
2450	// the captions.
2451	Label *string `min:"1" type:"string"`
2452
2453	// A string that specifies the language of the caption. If you specified multiple
2454	// inputs with captions, the caption language must match in order to be included
2455	// in the output. Specify this as one of:
2456	//
2457	//    * 2-character ISO 639-1 code
2458	//
2459	//    * 3-character ISO 639-2 code
2460	//
2461	// For more information on ISO language codes and language names, see the List
2462	// of ISO 639-1 codes.
2463	Language *string `min:"1" type:"string"`
2464
2465	// For clip generation or captions that do not start at the same time as the
2466	// associated video file, the TimeOffset tells Elastic Transcoder how much of
2467	// the video to encode before including captions.
2468	//
2469	// Specify the TimeOffset in the form [+-]SS.sss or [+-]HH:mm:SS.ss.
2470	TimeOffset *string `type:"string"`
2471}
2472
2473// String returns the string representation
2474func (s CaptionSource) String() string {
2475	return awsutil.Prettify(s)
2476}
2477
2478// GoString returns the string representation
2479func (s CaptionSource) GoString() string {
2480	return s.String()
2481}
2482
2483// Validate inspects the fields of the type to determine if they are valid.
2484func (s *CaptionSource) Validate() error {
2485	invalidParams := request.ErrInvalidParams{Context: "CaptionSource"}
2486	if s.Key != nil && len(*s.Key) < 1 {
2487		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
2488	}
2489	if s.Label != nil && len(*s.Label) < 1 {
2490		invalidParams.Add(request.NewErrParamMinLen("Label", 1))
2491	}
2492	if s.Language != nil && len(*s.Language) < 1 {
2493		invalidParams.Add(request.NewErrParamMinLen("Language", 1))
2494	}
2495
2496	if invalidParams.Len() > 0 {
2497		return invalidParams
2498	}
2499	return nil
2500}
2501
2502// SetEncryption sets the Encryption field's value.
2503func (s *CaptionSource) SetEncryption(v *Encryption) *CaptionSource {
2504	s.Encryption = v
2505	return s
2506}
2507
2508// SetKey sets the Key field's value.
2509func (s *CaptionSource) SetKey(v string) *CaptionSource {
2510	s.Key = &v
2511	return s
2512}
2513
2514// SetLabel sets the Label field's value.
2515func (s *CaptionSource) SetLabel(v string) *CaptionSource {
2516	s.Label = &v
2517	return s
2518}
2519
2520// SetLanguage sets the Language field's value.
2521func (s *CaptionSource) SetLanguage(v string) *CaptionSource {
2522	s.Language = &v
2523	return s
2524}
2525
2526// SetTimeOffset sets the TimeOffset field's value.
2527func (s *CaptionSource) SetTimeOffset(v string) *CaptionSource {
2528	s.TimeOffset = &v
2529	return s
2530}
2531
2532// The captions to be created, if any.
2533type Captions struct {
2534	_ struct{} `type:"structure"`
2535
2536	// The array of file formats for the output captions. If you leave this value
2537	// blank, Elastic Transcoder returns an error.
2538	CaptionFormats []*CaptionFormat `type:"list"`
2539
2540	// Source files for the input sidecar captions used during the transcoding process.
2541	// To omit all sidecar captions, leave CaptionSources blank.
2542	CaptionSources []*CaptionSource `deprecated:"true" type:"list"`
2543
2544	// A policy that determines how Elastic Transcoder handles the existence of
2545	// multiple captions.
2546	//
2547	//    * MergeOverride: Elastic Transcoder transcodes both embedded and sidecar
2548	//    captions into outputs. If captions for a language are embedded in the
2549	//    input file and also appear in a sidecar file, Elastic Transcoder uses
2550	//    the sidecar captions and ignores the embedded captions for that language.
2551	//
2552	//    * MergeRetain: Elastic Transcoder transcodes both embedded and sidecar
2553	//    captions into outputs. If captions for a language are embedded in the
2554	//    input file and also appear in a sidecar file, Elastic Transcoder uses
2555	//    the embedded captions and ignores the sidecar captions for that language.
2556	//    If CaptionSources is empty, Elastic Transcoder omits all sidecar captions
2557	//    from the output files.
2558	//
2559	//    * Override: Elastic Transcoder transcodes only the sidecar captions that
2560	//    you specify in CaptionSources.
2561	//
2562	// MergePolicy cannot be null.
2563	MergePolicy *string `deprecated:"true" type:"string"`
2564}
2565
2566// String returns the string representation
2567func (s Captions) String() string {
2568	return awsutil.Prettify(s)
2569}
2570
2571// GoString returns the string representation
2572func (s Captions) GoString() string {
2573	return s.String()
2574}
2575
2576// Validate inspects the fields of the type to determine if they are valid.
2577func (s *Captions) Validate() error {
2578	invalidParams := request.ErrInvalidParams{Context: "Captions"}
2579	if s.CaptionSources != nil {
2580		for i, v := range s.CaptionSources {
2581			if v == nil {
2582				continue
2583			}
2584			if err := v.Validate(); err != nil {
2585				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CaptionSources", i), err.(request.ErrInvalidParams))
2586			}
2587		}
2588	}
2589
2590	if invalidParams.Len() > 0 {
2591		return invalidParams
2592	}
2593	return nil
2594}
2595
2596// SetCaptionFormats sets the CaptionFormats field's value.
2597func (s *Captions) SetCaptionFormats(v []*CaptionFormat) *Captions {
2598	s.CaptionFormats = v
2599	return s
2600}
2601
2602// SetCaptionSources sets the CaptionSources field's value.
2603func (s *Captions) SetCaptionSources(v []*CaptionSource) *Captions {
2604	s.CaptionSources = v
2605	return s
2606}
2607
2608// SetMergePolicy sets the MergePolicy field's value.
2609func (s *Captions) SetMergePolicy(v string) *Captions {
2610	s.MergePolicy = &v
2611	return s
2612}
2613
2614// Settings for one clip in a composition. All jobs in a playlist must have
2615// the same clip settings.
2616type Clip struct {
2617	_ struct{} `deprecated:"true" type:"structure"`
2618
2619	// Settings that determine when a clip begins and how long it lasts.
2620	TimeSpan *TimeSpan `type:"structure"`
2621}
2622
2623// String returns the string representation
2624func (s Clip) String() string {
2625	return awsutil.Prettify(s)
2626}
2627
2628// GoString returns the string representation
2629func (s Clip) GoString() string {
2630	return s.String()
2631}
2632
2633// SetTimeSpan sets the TimeSpan field's value.
2634func (s *Clip) SetTimeSpan(v *TimeSpan) *Clip {
2635	s.TimeSpan = v
2636	return s
2637}
2638
2639// The CreateJobRequest structure.
2640type CreateJobInput struct {
2641	_ struct{} `type:"structure"`
2642
2643	// A section of the request body that provides information about the file that
2644	// is being transcoded.
2645	Input *JobInput `type:"structure"`
2646
2647	// A section of the request body that provides information about the files that
2648	// are being transcoded.
2649	Inputs []*JobInput `type:"list"`
2650
2651	// A section of the request body that provides information about the transcoded
2652	// (target) file. We strongly recommend that you use the Outputs syntax instead
2653	// of the Output syntax.
2654	Output *CreateJobOutput `type:"structure"`
2655
2656	// The value, if any, that you want Elastic Transcoder to prepend to the names
2657	// of all files that this job creates, including output files, thumbnails, and
2658	// playlists.
2659	OutputKeyPrefix *string `min:"1" type:"string"`
2660
2661	// A section of the request body that provides information about the transcoded
2662	// (target) files. We recommend that you use the Outputs syntax instead of the
2663	// Output syntax.
2664	Outputs []*CreateJobOutput `type:"list"`
2665
2666	// The Id of the pipeline that you want Elastic Transcoder to use for transcoding.
2667	// The pipeline determines several settings, including the Amazon S3 bucket
2668	// from which Elastic Transcoder gets the files to transcode and the bucket
2669	// into which Elastic Transcoder puts the transcoded files.
2670	//
2671	// PipelineId is a required field
2672	PipelineId *string `type:"string" required:"true"`
2673
2674	// If you specify a preset in PresetId for which the value of Container is fmp4
2675	// (Fragmented MP4) or ts (MPEG-TS), Playlists contains information about the
2676	// master playlists that you want Elastic Transcoder to create.
2677	//
2678	// The maximum number of master playlists in a job is 30.
2679	Playlists []*CreateJobPlaylist `type:"list"`
2680
2681	// User-defined metadata that you want to associate with an Elastic Transcoder
2682	// job. You specify metadata in key/value pairs, and you can add up to 10 key/value
2683	// pairs per job. Elastic Transcoder does not guarantee that key/value pairs
2684	// are returned in the same order in which you specify them.
2685	UserMetadata map[string]*string `type:"map"`
2686}
2687
2688// String returns the string representation
2689func (s CreateJobInput) String() string {
2690	return awsutil.Prettify(s)
2691}
2692
2693// GoString returns the string representation
2694func (s CreateJobInput) GoString() string {
2695	return s.String()
2696}
2697
2698// Validate inspects the fields of the type to determine if they are valid.
2699func (s *CreateJobInput) Validate() error {
2700	invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
2701	if s.OutputKeyPrefix != nil && len(*s.OutputKeyPrefix) < 1 {
2702		invalidParams.Add(request.NewErrParamMinLen("OutputKeyPrefix", 1))
2703	}
2704	if s.PipelineId == nil {
2705		invalidParams.Add(request.NewErrParamRequired("PipelineId"))
2706	}
2707	if s.Input != nil {
2708		if err := s.Input.Validate(); err != nil {
2709			invalidParams.AddNested("Input", err.(request.ErrInvalidParams))
2710		}
2711	}
2712	if s.Inputs != nil {
2713		for i, v := range s.Inputs {
2714			if v == nil {
2715				continue
2716			}
2717			if err := v.Validate(); err != nil {
2718				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Inputs", i), err.(request.ErrInvalidParams))
2719			}
2720		}
2721	}
2722	if s.Output != nil {
2723		if err := s.Output.Validate(); err != nil {
2724			invalidParams.AddNested("Output", err.(request.ErrInvalidParams))
2725		}
2726	}
2727	if s.Outputs != nil {
2728		for i, v := range s.Outputs {
2729			if v == nil {
2730				continue
2731			}
2732			if err := v.Validate(); err != nil {
2733				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Outputs", i), err.(request.ErrInvalidParams))
2734			}
2735		}
2736	}
2737	if s.Playlists != nil {
2738		for i, v := range s.Playlists {
2739			if v == nil {
2740				continue
2741			}
2742			if err := v.Validate(); err != nil {
2743				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Playlists", i), err.(request.ErrInvalidParams))
2744			}
2745		}
2746	}
2747
2748	if invalidParams.Len() > 0 {
2749		return invalidParams
2750	}
2751	return nil
2752}
2753
2754// SetInput sets the Input field's value.
2755func (s *CreateJobInput) SetInput(v *JobInput) *CreateJobInput {
2756	s.Input = v
2757	return s
2758}
2759
2760// SetInputs sets the Inputs field's value.
2761func (s *CreateJobInput) SetInputs(v []*JobInput) *CreateJobInput {
2762	s.Inputs = v
2763	return s
2764}
2765
2766// SetOutput sets the Output field's value.
2767func (s *CreateJobInput) SetOutput(v *CreateJobOutput) *CreateJobInput {
2768	s.Output = v
2769	return s
2770}
2771
2772// SetOutputKeyPrefix sets the OutputKeyPrefix field's value.
2773func (s *CreateJobInput) SetOutputKeyPrefix(v string) *CreateJobInput {
2774	s.OutputKeyPrefix = &v
2775	return s
2776}
2777
2778// SetOutputs sets the Outputs field's value.
2779func (s *CreateJobInput) SetOutputs(v []*CreateJobOutput) *CreateJobInput {
2780	s.Outputs = v
2781	return s
2782}
2783
2784// SetPipelineId sets the PipelineId field's value.
2785func (s *CreateJobInput) SetPipelineId(v string) *CreateJobInput {
2786	s.PipelineId = &v
2787	return s
2788}
2789
2790// SetPlaylists sets the Playlists field's value.
2791func (s *CreateJobInput) SetPlaylists(v []*CreateJobPlaylist) *CreateJobInput {
2792	s.Playlists = v
2793	return s
2794}
2795
2796// SetUserMetadata sets the UserMetadata field's value.
2797func (s *CreateJobInput) SetUserMetadata(v map[string]*string) *CreateJobInput {
2798	s.UserMetadata = v
2799	return s
2800}
2801
2802// The CreateJobOutput structure.
2803type CreateJobOutput struct {
2804	_ struct{} `type:"structure"`
2805
2806	// Information about the album art that you want Elastic Transcoder to add to
2807	// the file during transcoding. You can specify up to twenty album artworks
2808	// for each output. Settings for each artwork must be defined in the job for
2809	// the current output.
2810	AlbumArt *JobAlbumArt `type:"structure"`
2811
2812	// You can configure Elastic Transcoder to transcode captions, or subtitles,
2813	// from one format to another. All captions must be in UTF-8. Elastic Transcoder
2814	// supports two types of captions:
2815	//
2816	//    * Embedded: Embedded captions are included in the same file as the audio
2817	//    and video. Elastic Transcoder supports only one embedded caption per language,
2818	//    to a maximum of 300 embedded captions per file.
2819	//
2820	// Valid input values include: CEA-608 (EIA-608, first non-empty channel only),
2821	//    CEA-708 (EIA-708, first non-empty channel only), and mov-text
2822	//
2823	// Valid outputs include: mov-text
2824	//
2825	// Elastic Transcoder supports a maximum of one embedded format per output.
2826	//
2827	//    * Sidecar: Sidecar captions are kept in a separate metadata file from
2828	//    the audio and video data. Sidecar captions require a player that is capable
2829	//    of understanding the relationship between the video file and the sidecar
2830	//    file. Elastic Transcoder supports only one sidecar caption per language,
2831	//    to a maximum of 20 sidecar captions per file.
2832	//
2833	// Valid input values include: dfxp (first div element only), ebu-tt, scc, smpt,
2834	//    srt, ttml (first div element only), and webvtt
2835	//
2836	// Valid outputs include: dfxp (first div element only), scc, srt, and webvtt.
2837	//
2838	// If you want ttml or smpte-tt compatible captions, specify dfxp as your output
2839	// format.
2840	//
2841	// Elastic Transcoder does not support OCR (Optical Character Recognition),
2842	// does not accept pictures as a valid input for captions, and is not available
2843	// for audio-only transcoding. Elastic Transcoder does not preserve text formatting
2844	// (for example, italics) during the transcoding process.
2845	//
2846	// To remove captions or leave the captions empty, set Captions to null. To
2847	// pass through existing captions unchanged, set the MergePolicy to MergeRetain,
2848	// and pass in a null CaptionSources array.
2849	//
2850	// For more information on embedded files, see the Subtitles Wikipedia page.
2851	//
2852	// For more information on sidecar files, see the Extensible Metadata Platform
2853	// and Sidecar file Wikipedia pages.
2854	Captions *Captions `type:"structure"`
2855
2856	// You can create an output file that contains an excerpt from the input file.
2857	// This excerpt, called a clip, can come from the beginning, middle, or end
2858	// of the file. The Composition object contains settings for the clips that
2859	// make up an output file. For the current release, you can only specify settings
2860	// for a single clip per output file. The Composition object cannot be null.
2861	Composition []*Clip `deprecated:"true" type:"list"`
2862
2863	// You can specify encryption settings for any output files that you want to
2864	// use for a transcoding job. This includes the output file and any watermarks,
2865	// thumbnails, album art, or captions that you want to use. You must specify
2866	// encryption settings for each file individually.
2867	Encryption *Encryption `type:"structure"`
2868
2869	// The name to assign to the transcoded file. Elastic Transcoder saves the file
2870	// in the Amazon S3 bucket specified by the OutputBucket object in the pipeline
2871	// that is specified by the pipeline ID. If a file with the specified name already
2872	// exists in the output bucket, the job fails.
2873	Key *string `min:"1" type:"string"`
2874
2875	// The Id of the preset to use for this job. The preset determines the audio,
2876	// video, and thumbnail settings that Elastic Transcoder uses for transcoding.
2877	PresetId *string `type:"string"`
2878
2879	// The number of degrees clockwise by which you want Elastic Transcoder to rotate
2880	// the output relative to the input. Enter one of the following values: auto,
2881	// 0, 90, 180, 270. The value auto generally works only if the file that you're
2882	// transcoding contains rotation metadata.
2883	Rotate *string `type:"string"`
2884
2885	// (Outputs in Fragmented MP4 or MPEG-TS format only.
2886	//
2887	// If you specify a preset in PresetId for which the value of Container is fmp4
2888	// (Fragmented MP4) or ts (MPEG-TS), SegmentDuration is the target maximum duration
2889	// of each segment in seconds. For HLSv3 format playlists, each media segment
2890	// is stored in a separate .ts file. For HLSv4 and Smooth playlists, all media
2891	// segments for an output are stored in a single file. Each segment is approximately
2892	// the length of the SegmentDuration, though individual segments might be shorter
2893	// or longer.
2894	//
2895	// The range of valid values is 1 to 60 seconds. If the duration of the video
2896	// is not evenly divisible by SegmentDuration, the duration of the last segment
2897	// is the remainder of total length/SegmentDuration.
2898	//
2899	// Elastic Transcoder creates an output-specific playlist for each output HLS
2900	// output that you specify in OutputKeys. To add an output to the master playlist
2901	// for this job, include it in the OutputKeys of the associated playlist.
2902	SegmentDuration *string `type:"string"`
2903
2904	// The encryption settings, if any, that you want Elastic Transcoder to apply
2905	// to your thumbnail.
2906	ThumbnailEncryption *Encryption `type:"structure"`
2907
2908	// Whether you want Elastic Transcoder to create thumbnails for your videos
2909	// and, if so, how you want Elastic Transcoder to name the files.
2910	//
2911	// If you don't want Elastic Transcoder to create thumbnails, specify "".
2912	//
2913	// If you do want Elastic Transcoder to create thumbnails, specify the information
2914	// that you want to include in the file name for each thumbnail. You can specify
2915	// the following values in any sequence:
2916	//
2917	//    * {count} (Required): If you want to create thumbnails, you must include
2918	//    {count} in the ThumbnailPattern object. Wherever you specify {count},
2919	//    Elastic Transcoder adds a five-digit sequence number (beginning with 00001)
2920	//    to thumbnail file names. The number indicates where a given thumbnail
2921	//    appears in the sequence of thumbnails for a transcoded file.
2922	//
2923	// If you specify a literal value and/or {resolution} but you omit {count},
2924	//    Elastic Transcoder returns a validation error and does not create the
2925	//    job.
2926	//
2927	//    * Literal values (Optional): You can specify literal values anywhere in
2928	//    the ThumbnailPattern object. For example, you can include them as a file
2929	//    name prefix or as a delimiter between {resolution} and {count}.
2930	//
2931	//    * {resolution} (Optional): If you want Elastic Transcoder to include the
2932	//    resolution in the file name, include {resolution} in the ThumbnailPattern
2933	//    object.
2934	//
2935	// When creating thumbnails, Elastic Transcoder automatically saves the files
2936	// in the format (.jpg or .png) that appears in the preset that you specified
2937	// in the PresetID value of CreateJobOutput. Elastic Transcoder also appends
2938	// the applicable file name extension.
2939	ThumbnailPattern *string `type:"string"`
2940
2941	// Information about the watermarks that you want Elastic Transcoder to add
2942	// to the video during transcoding. You can specify up to four watermarks for
2943	// each output. Settings for each watermark must be defined in the preset for
2944	// the current output.
2945	Watermarks []*JobWatermark `type:"list"`
2946}
2947
2948// String returns the string representation
2949func (s CreateJobOutput) String() string {
2950	return awsutil.Prettify(s)
2951}
2952
2953// GoString returns the string representation
2954func (s CreateJobOutput) GoString() string {
2955	return s.String()
2956}
2957
2958// Validate inspects the fields of the type to determine if they are valid.
2959func (s *CreateJobOutput) Validate() error {
2960	invalidParams := request.ErrInvalidParams{Context: "CreateJobOutput"}
2961	if s.Key != nil && len(*s.Key) < 1 {
2962		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
2963	}
2964	if s.AlbumArt != nil {
2965		if err := s.AlbumArt.Validate(); err != nil {
2966			invalidParams.AddNested("AlbumArt", err.(request.ErrInvalidParams))
2967		}
2968	}
2969	if s.Captions != nil {
2970		if err := s.Captions.Validate(); err != nil {
2971			invalidParams.AddNested("Captions", err.(request.ErrInvalidParams))
2972		}
2973	}
2974	if s.Watermarks != nil {
2975		for i, v := range s.Watermarks {
2976			if v == nil {
2977				continue
2978			}
2979			if err := v.Validate(); err != nil {
2980				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Watermarks", i), err.(request.ErrInvalidParams))
2981			}
2982		}
2983	}
2984
2985	if invalidParams.Len() > 0 {
2986		return invalidParams
2987	}
2988	return nil
2989}
2990
2991// SetAlbumArt sets the AlbumArt field's value.
2992func (s *CreateJobOutput) SetAlbumArt(v *JobAlbumArt) *CreateJobOutput {
2993	s.AlbumArt = v
2994	return s
2995}
2996
2997// SetCaptions sets the Captions field's value.
2998func (s *CreateJobOutput) SetCaptions(v *Captions) *CreateJobOutput {
2999	s.Captions = v
3000	return s
3001}
3002
3003// SetComposition sets the Composition field's value.
3004func (s *CreateJobOutput) SetComposition(v []*Clip) *CreateJobOutput {
3005	s.Composition = v
3006	return s
3007}
3008
3009// SetEncryption sets the Encryption field's value.
3010func (s *CreateJobOutput) SetEncryption(v *Encryption) *CreateJobOutput {
3011	s.Encryption = v
3012	return s
3013}
3014
3015// SetKey sets the Key field's value.
3016func (s *CreateJobOutput) SetKey(v string) *CreateJobOutput {
3017	s.Key = &v
3018	return s
3019}
3020
3021// SetPresetId sets the PresetId field's value.
3022func (s *CreateJobOutput) SetPresetId(v string) *CreateJobOutput {
3023	s.PresetId = &v
3024	return s
3025}
3026
3027// SetRotate sets the Rotate field's value.
3028func (s *CreateJobOutput) SetRotate(v string) *CreateJobOutput {
3029	s.Rotate = &v
3030	return s
3031}
3032
3033// SetSegmentDuration sets the SegmentDuration field's value.
3034func (s *CreateJobOutput) SetSegmentDuration(v string) *CreateJobOutput {
3035	s.SegmentDuration = &v
3036	return s
3037}
3038
3039// SetThumbnailEncryption sets the ThumbnailEncryption field's value.
3040func (s *CreateJobOutput) SetThumbnailEncryption(v *Encryption) *CreateJobOutput {
3041	s.ThumbnailEncryption = v
3042	return s
3043}
3044
3045// SetThumbnailPattern sets the ThumbnailPattern field's value.
3046func (s *CreateJobOutput) SetThumbnailPattern(v string) *CreateJobOutput {
3047	s.ThumbnailPattern = &v
3048	return s
3049}
3050
3051// SetWatermarks sets the Watermarks field's value.
3052func (s *CreateJobOutput) SetWatermarks(v []*JobWatermark) *CreateJobOutput {
3053	s.Watermarks = v
3054	return s
3055}
3056
3057// Information about the master playlist.
3058type CreateJobPlaylist struct {
3059	_ struct{} `type:"structure"`
3060
3061	// The format of the output playlist. Valid formats include HLSv3, HLSv4, and
3062	// Smooth.
3063	Format *string `type:"string"`
3064
3065	// The HLS content protection settings, if any, that you want Elastic Transcoder
3066	// to apply to the output files associated with this playlist.
3067	HlsContentProtection *HlsContentProtection `type:"structure"`
3068
3069	// The name that you want Elastic Transcoder to assign to the master playlist,
3070	// for example, nyc-vacation.m3u8. If the name includes a / character, the section
3071	// of the name before the last / must be identical for all Name objects. If
3072	// you create more than one master playlist, the values of all Name objects
3073	// must be unique.
3074	//
3075	// Elastic Transcoder automatically appends the relevant file extension to the
3076	// file name (.m3u8 for HLSv3 and HLSv4 playlists, and .ism and .ismc for Smooth
3077	// playlists). If you include a file extension in Name, the file name will have
3078	// two extensions.
3079	Name *string `min:"1" type:"string"`
3080
3081	// For each output in this job that you want to include in a master playlist,
3082	// the value of the Outputs:Key object.
3083	//
3084	//    * If your output is not HLS or does not have a segment duration set, the
3085	//    name of the output file is a concatenation of OutputKeyPrefix and Outputs:Key:
3086	//
3087	// OutputKeyPrefixOutputs:Key
3088	//
3089	//    * If your output is HLSv3 and has a segment duration set, or is not included
3090	//    in a playlist, Elastic Transcoder creates an output playlist file with
3091	//    a file extension of .m3u8, and a series of .ts files that include a five-digit
3092	//    sequential counter beginning with 00000:
3093	//
3094	// OutputKeyPrefixOutputs:Key.m3u8
3095	//
3096	// OutputKeyPrefixOutputs:Key00000.ts
3097	//
3098	//    * If your output is HLSv4, has a segment duration set, and is included
3099	//    in an HLSv4 playlist, Elastic Transcoder creates an output playlist file
3100	//    with a file extension of _v4.m3u8. If the output is video, Elastic Transcoder
3101	//    also creates an output file with an extension of _iframe.m3u8:
3102	//
3103	// OutputKeyPrefixOutputs:Key_v4.m3u8
3104	//
3105	// OutputKeyPrefixOutputs:Key_iframe.m3u8
3106	//
3107	// OutputKeyPrefixOutputs:Key.ts
3108	//
3109	// Elastic Transcoder automatically appends the relevant file extension to the
3110	// file name. If you include a file extension in Output Key, the file name will
3111	// have two extensions.
3112	//
3113	// If you include more than one output in a playlist, any segment duration settings,
3114	// clip settings, or caption settings must be the same for all outputs in the
3115	// playlist. For Smooth playlists, the Audio:Profile, Video:Profile, and Video:FrameRate
3116	// to Video:KeyframesMaxDist ratio must be the same for all outputs.
3117	OutputKeys []*string `type:"list"`
3118
3119	// The DRM settings, if any, that you want Elastic Transcoder to apply to the
3120	// output files associated with this playlist.
3121	PlayReadyDrm *PlayReadyDrm `type:"structure"`
3122}
3123
3124// String returns the string representation
3125func (s CreateJobPlaylist) String() string {
3126	return awsutil.Prettify(s)
3127}
3128
3129// GoString returns the string representation
3130func (s CreateJobPlaylist) GoString() string {
3131	return s.String()
3132}
3133
3134// Validate inspects the fields of the type to determine if they are valid.
3135func (s *CreateJobPlaylist) Validate() error {
3136	invalidParams := request.ErrInvalidParams{Context: "CreateJobPlaylist"}
3137	if s.Name != nil && len(*s.Name) < 1 {
3138		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
3139	}
3140	if s.PlayReadyDrm != nil {
3141		if err := s.PlayReadyDrm.Validate(); err != nil {
3142			invalidParams.AddNested("PlayReadyDrm", err.(request.ErrInvalidParams))
3143		}
3144	}
3145
3146	if invalidParams.Len() > 0 {
3147		return invalidParams
3148	}
3149	return nil
3150}
3151
3152// SetFormat sets the Format field's value.
3153func (s *CreateJobPlaylist) SetFormat(v string) *CreateJobPlaylist {
3154	s.Format = &v
3155	return s
3156}
3157
3158// SetHlsContentProtection sets the HlsContentProtection field's value.
3159func (s *CreateJobPlaylist) SetHlsContentProtection(v *HlsContentProtection) *CreateJobPlaylist {
3160	s.HlsContentProtection = v
3161	return s
3162}
3163
3164// SetName sets the Name field's value.
3165func (s *CreateJobPlaylist) SetName(v string) *CreateJobPlaylist {
3166	s.Name = &v
3167	return s
3168}
3169
3170// SetOutputKeys sets the OutputKeys field's value.
3171func (s *CreateJobPlaylist) SetOutputKeys(v []*string) *CreateJobPlaylist {
3172	s.OutputKeys = v
3173	return s
3174}
3175
3176// SetPlayReadyDrm sets the PlayReadyDrm field's value.
3177func (s *CreateJobPlaylist) SetPlayReadyDrm(v *PlayReadyDrm) *CreateJobPlaylist {
3178	s.PlayReadyDrm = v
3179	return s
3180}
3181
3182// The CreateJobResponse structure.
3183type CreateJobResponse struct {
3184	_ struct{} `type:"structure"`
3185
3186	// A section of the response body that provides information about the job that
3187	// is created.
3188	Job *Job `type:"structure"`
3189}
3190
3191// String returns the string representation
3192func (s CreateJobResponse) String() string {
3193	return awsutil.Prettify(s)
3194}
3195
3196// GoString returns the string representation
3197func (s CreateJobResponse) GoString() string {
3198	return s.String()
3199}
3200
3201// SetJob sets the Job field's value.
3202func (s *CreateJobResponse) SetJob(v *Job) *CreateJobResponse {
3203	s.Job = v
3204	return s
3205}
3206
3207// The CreatePipelineRequest structure.
3208type CreatePipelineInput struct {
3209	_ struct{} `type:"structure"`
3210
3211	// The AWS Key Management Service (AWS KMS) key that you want to use with this
3212	// pipeline.
3213	//
3214	// If you use either S3 or S3-AWS-KMS as your Encryption:Mode, you don't need
3215	// to provide a key with your job because a default key, known as an AWS-KMS
3216	// key, is created for you automatically. You need to provide an AWS-KMS key
3217	// only if you want to use a non-default AWS-KMS key, or if you are using an
3218	// Encryption:Mode of AES-PKCS7, AES-CTR, or AES-GCM.
3219	AwsKmsKeyArn *string `type:"string"`
3220
3221	// The optional ContentConfig object specifies information about the Amazon
3222	// S3 bucket in which you want Elastic Transcoder to save transcoded files and
3223	// playlists: which bucket to use, which users you want to have access to the
3224	// files, the type of access you want users to have, and the storage class that
3225	// you want to assign to the files.
3226	//
3227	// If you specify values for ContentConfig, you must also specify values for
3228	// ThumbnailConfig.
3229	//
3230	// If you specify values for ContentConfig and ThumbnailConfig, omit the OutputBucket
3231	// object.
3232	//
3233	//    * Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to
3234	//    save transcoded files and playlists.
3235	//
3236	//    * Permissions (Optional): The Permissions object specifies which users
3237	//    you want to have access to transcoded files and the type of access you
3238	//    want them to have. You can grant permissions to a maximum of 30 users
3239	//    and/or predefined Amazon S3 groups.
3240	//
3241	//    * Grantee Type: Specify the type of value that appears in the Grantee
3242	//    object:
3243	//
3244	// Canonical: The value in the Grantee object is either the canonical user ID
3245	//    for an AWS account or an origin access identity for an Amazon CloudFront
3246	//    distribution. For more information about canonical user IDs, see Access
3247	//    Control List (ACL) Overview in the Amazon Simple Storage Service Developer
3248	//    Guide. For more information about using CloudFront origin access identities
3249	//    to require that users use CloudFront URLs instead of Amazon S3 URLs, see
3250	//    Using an Origin Access Identity to Restrict Access to Your Amazon S3 Content.
3251	//
3252	// A canonical user ID is not the same as an AWS account number.
3253	//
3254	// Email: The value in the Grantee object is the registered email address of
3255	//    an AWS account.
3256	//
3257	// Group: The value in the Grantee object is one of the following predefined
3258	//    Amazon S3 groups: AllUsers, AuthenticatedUsers, or LogDelivery.
3259	//
3260	//    * Grantee: The AWS user or group that you want to have access to transcoded
3261	//    files and playlists. To identify the user or group, you can specify the
3262	//    canonical user ID for an AWS account, an origin access identity for a
3263	//    CloudFront distribution, the registered email address of an AWS account,
3264	//    or a predefined Amazon S3 group
3265	//
3266	//    * Access: The permission that you want to give to the AWS user that you
3267	//    specified in Grantee. Permissions are granted on the files that Elastic
3268	//    Transcoder adds to the bucket, including playlists and video files. Valid
3269	//    values include:
3270	//
3271	// READ: The grantee can read the objects and metadata for objects that Elastic
3272	//    Transcoder adds to the Amazon S3 bucket.
3273	//
3274	// READ_ACP: The grantee can read the object ACL for objects that Elastic Transcoder
3275	//    adds to the Amazon S3 bucket.
3276	//
3277	// WRITE_ACP: The grantee can write the ACL for the objects that Elastic Transcoder
3278	//    adds to the Amazon S3 bucket.
3279	//
3280	// FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP permissions for
3281	//    the objects that Elastic Transcoder adds to the Amazon S3 bucket.
3282	//
3283	//    * StorageClass: The Amazon S3 storage class, Standard or ReducedRedundancy,
3284	//    that you want Elastic Transcoder to assign to the video files and playlists
3285	//    that it stores in your Amazon S3 bucket.
3286	ContentConfig *PipelineOutputConfig `type:"structure"`
3287
3288	// The Amazon S3 bucket in which you saved the media files that you want to
3289	// transcode.
3290	//
3291	// InputBucket is a required field
3292	InputBucket *string `type:"string" required:"true"`
3293
3294	// The name of the pipeline. We recommend that the name be unique within the
3295	// AWS account, but uniqueness is not enforced.
3296	//
3297	// Constraints: Maximum 40 characters.
3298	//
3299	// Name is a required field
3300	Name *string `min:"1" type:"string" required:"true"`
3301
3302	// The Amazon Simple Notification Service (Amazon SNS) topic that you want to
3303	// notify to report job status.
3304	//
3305	// To receive notifications, you must also subscribe to the new topic in the
3306	// Amazon SNS console.
3307	//
3308	//    * Progressing: The topic ARN for the Amazon Simple Notification Service
3309	//    (Amazon SNS) topic that you want to notify when Elastic Transcoder has
3310	//    started to process a job in this pipeline. This is the ARN that Amazon
3311	//    SNS returned when you created the topic. For more information, see Create
3312	//    a Topic in the Amazon Simple Notification Service Developer Guide.
3313	//
3314	//    * Completed: The topic ARN for the Amazon SNS topic that you want to notify
3315	//    when Elastic Transcoder has finished processing a job in this pipeline.
3316	//    This is the ARN that Amazon SNS returned when you created the topic.
3317	//
3318	//    * Warning: The topic ARN for the Amazon SNS topic that you want to notify
3319	//    when Elastic Transcoder encounters a warning condition while processing
3320	//    a job in this pipeline. This is the ARN that Amazon SNS returned when
3321	//    you created the topic.
3322	//
3323	//    * Error: The topic ARN for the Amazon SNS topic that you want to notify
3324	//    when Elastic Transcoder encounters an error condition while processing
3325	//    a job in this pipeline. This is the ARN that Amazon SNS returned when
3326	//    you created the topic.
3327	Notifications *Notifications `type:"structure"`
3328
3329	// The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded
3330	// files. (Use this, or use ContentConfig:Bucket plus ThumbnailConfig:Bucket.)
3331	//
3332	// Specify this value when all of the following are true:
3333	//
3334	//    * You want to save transcoded files, thumbnails (if any), and playlists
3335	//    (if any) together in one bucket.
3336	//
3337	//    * You do not want to specify the users or groups who have access to the
3338	//    transcoded files, thumbnails, and playlists.
3339	//
3340	//    * You do not want to specify the permissions that Elastic Transcoder grants
3341	//    to the files.
3342	//
3343	// When Elastic Transcoder saves files in OutputBucket, it grants full control
3344	//    over the files only to the AWS account that owns the role that is specified
3345	//    by Role.
3346	//
3347	//    * You want to associate the transcoded files and thumbnails with the Amazon
3348	//    S3 Standard storage class.
3349	//
3350	// If you want to save transcoded files and playlists in one bucket and thumbnails
3351	// in another bucket, specify which users can access the transcoded files or
3352	// the permissions the users have, or change the Amazon S3 storage class, omit
3353	// OutputBucket and specify values for ContentConfig and ThumbnailConfig instead.
3354	OutputBucket *string `type:"string"`
3355
3356	// The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder
3357	// to use to create the pipeline.
3358	//
3359	// Role is a required field
3360	Role *string `type:"string" required:"true"`
3361
3362	// The ThumbnailConfig object specifies several values, including the Amazon
3363	// S3 bucket in which you want Elastic Transcoder to save thumbnail files, which
3364	// users you want to have access to the files, the type of access you want users
3365	// to have, and the storage class that you want to assign to the files.
3366	//
3367	// If you specify values for ContentConfig, you must also specify values for
3368	// ThumbnailConfig even if you don't want to create thumbnails.
3369	//
3370	// If you specify values for ContentConfig and ThumbnailConfig, omit the OutputBucket
3371	// object.
3372	//
3373	//    * Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to
3374	//    save thumbnail files.
3375	//
3376	//    * Permissions (Optional): The Permissions object specifies which users
3377	//    and/or predefined Amazon S3 groups you want to have access to thumbnail
3378	//    files, and the type of access you want them to have. You can grant permissions
3379	//    to a maximum of 30 users and/or predefined Amazon S3 groups.
3380	//
3381	//    * GranteeType: Specify the type of value that appears in the Grantee object:
3382	//
3383	//
3384	// Canonical: The value in the Grantee object is either the canonical user ID
3385	//    for an AWS account or an origin access identity for an Amazon CloudFront
3386	//    distribution.
3387	//
3388	// A canonical user ID is not the same as an AWS account number.
3389	//
3390	// Email: The value in the Grantee object is the registered email address of
3391	//    an AWS account.
3392	//
3393	// Group: The value in the Grantee object is one of the following predefined
3394	//    Amazon S3 groups: AllUsers, AuthenticatedUsers, or LogDelivery.
3395	//
3396	//    * Grantee: The AWS user or group that you want to have access to thumbnail
3397	//    files. To identify the user or group, you can specify the canonical user
3398	//    ID for an AWS account, an origin access identity for a CloudFront distribution,
3399	//    the registered email address of an AWS account, or a predefined Amazon
3400	//    S3 group.
3401	//
3402	//    * Access: The permission that you want to give to the AWS user that you
3403	//    specified in Grantee. Permissions are granted on the thumbnail files that
3404	//    Elastic Transcoder adds to the bucket. Valid values include:
3405	//
3406	// READ: The grantee can read the thumbnails and metadata for objects that Elastic
3407	//    Transcoder adds to the Amazon S3 bucket.
3408	//
3409	// READ_ACP: The grantee can read the object ACL for thumbnails that Elastic
3410	//    Transcoder adds to the Amazon S3 bucket.
3411	//
3412	// WRITE_ACP: The grantee can write the ACL for the thumbnails that Elastic
3413	//    Transcoder adds to the Amazon S3 bucket.
3414	//
3415	// FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP permissions for
3416	//    the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
3417	//
3418	//    * StorageClass: The Amazon S3 storage class, Standard or ReducedRedundancy,
3419	//    that you want Elastic Transcoder to assign to the thumbnails that it stores
3420	//    in your Amazon S3 bucket.
3421	ThumbnailConfig *PipelineOutputConfig `type:"structure"`
3422}
3423
3424// String returns the string representation
3425func (s CreatePipelineInput) String() string {
3426	return awsutil.Prettify(s)
3427}
3428
3429// GoString returns the string representation
3430func (s CreatePipelineInput) GoString() string {
3431	return s.String()
3432}
3433
3434// Validate inspects the fields of the type to determine if they are valid.
3435func (s *CreatePipelineInput) Validate() error {
3436	invalidParams := request.ErrInvalidParams{Context: "CreatePipelineInput"}
3437	if s.InputBucket == nil {
3438		invalidParams.Add(request.NewErrParamRequired("InputBucket"))
3439	}
3440	if s.Name == nil {
3441		invalidParams.Add(request.NewErrParamRequired("Name"))
3442	}
3443	if s.Name != nil && len(*s.Name) < 1 {
3444		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
3445	}
3446	if s.Role == nil {
3447		invalidParams.Add(request.NewErrParamRequired("Role"))
3448	}
3449	if s.ContentConfig != nil {
3450		if err := s.ContentConfig.Validate(); err != nil {
3451			invalidParams.AddNested("ContentConfig", err.(request.ErrInvalidParams))
3452		}
3453	}
3454	if s.ThumbnailConfig != nil {
3455		if err := s.ThumbnailConfig.Validate(); err != nil {
3456			invalidParams.AddNested("ThumbnailConfig", err.(request.ErrInvalidParams))
3457		}
3458	}
3459
3460	if invalidParams.Len() > 0 {
3461		return invalidParams
3462	}
3463	return nil
3464}
3465
3466// SetAwsKmsKeyArn sets the AwsKmsKeyArn field's value.
3467func (s *CreatePipelineInput) SetAwsKmsKeyArn(v string) *CreatePipelineInput {
3468	s.AwsKmsKeyArn = &v
3469	return s
3470}
3471
3472// SetContentConfig sets the ContentConfig field's value.
3473func (s *CreatePipelineInput) SetContentConfig(v *PipelineOutputConfig) *CreatePipelineInput {
3474	s.ContentConfig = v
3475	return s
3476}
3477
3478// SetInputBucket sets the InputBucket field's value.
3479func (s *CreatePipelineInput) SetInputBucket(v string) *CreatePipelineInput {
3480	s.InputBucket = &v
3481	return s
3482}
3483
3484// SetName sets the Name field's value.
3485func (s *CreatePipelineInput) SetName(v string) *CreatePipelineInput {
3486	s.Name = &v
3487	return s
3488}
3489
3490// SetNotifications sets the Notifications field's value.
3491func (s *CreatePipelineInput) SetNotifications(v *Notifications) *CreatePipelineInput {
3492	s.Notifications = v
3493	return s
3494}
3495
3496// SetOutputBucket sets the OutputBucket field's value.
3497func (s *CreatePipelineInput) SetOutputBucket(v string) *CreatePipelineInput {
3498	s.OutputBucket = &v
3499	return s
3500}
3501
3502// SetRole sets the Role field's value.
3503func (s *CreatePipelineInput) SetRole(v string) *CreatePipelineInput {
3504	s.Role = &v
3505	return s
3506}
3507
3508// SetThumbnailConfig sets the ThumbnailConfig field's value.
3509func (s *CreatePipelineInput) SetThumbnailConfig(v *PipelineOutputConfig) *CreatePipelineInput {
3510	s.ThumbnailConfig = v
3511	return s
3512}
3513
3514// When you create a pipeline, Elastic Transcoder returns the values that you
3515// specified in the request.
3516type CreatePipelineOutput struct {
3517	_ struct{} `type:"structure"`
3518
3519	// A section of the response body that provides information about the pipeline
3520	// that is created.
3521	Pipeline *Pipeline `type:"structure"`
3522
3523	// Elastic Transcoder returns a warning if the resources used by your pipeline
3524	// are not in the same region as the pipeline.
3525	//
3526	// Using resources in the same region, such as your Amazon S3 buckets, Amazon
3527	// SNS notification topics, and AWS KMS key, reduces processing time and prevents
3528	// cross-regional charges.
3529	Warnings []*Warning `type:"list"`
3530}
3531
3532// String returns the string representation
3533func (s CreatePipelineOutput) String() string {
3534	return awsutil.Prettify(s)
3535}
3536
3537// GoString returns the string representation
3538func (s CreatePipelineOutput) GoString() string {
3539	return s.String()
3540}
3541
3542// SetPipeline sets the Pipeline field's value.
3543func (s *CreatePipelineOutput) SetPipeline(v *Pipeline) *CreatePipelineOutput {
3544	s.Pipeline = v
3545	return s
3546}
3547
3548// SetWarnings sets the Warnings field's value.
3549func (s *CreatePipelineOutput) SetWarnings(v []*Warning) *CreatePipelineOutput {
3550	s.Warnings = v
3551	return s
3552}
3553
3554// The CreatePresetRequest structure.
3555type CreatePresetInput struct {
3556	_ struct{} `type:"structure"`
3557
3558	// A section of the request body that specifies the audio parameters.
3559	Audio *AudioParameters `type:"structure"`
3560
3561	// The container type for the output file. Valid values include flac, flv, fmp4,
3562	// gif, mp3, mp4, mpg, mxf, oga, ogg, ts, and webm.
3563	//
3564	// Container is a required field
3565	Container *string `type:"string" required:"true"`
3566
3567	// A description of the preset.
3568	Description *string `type:"string"`
3569
3570	// The name of the preset. We recommend that the name be unique within the AWS
3571	// account, but uniqueness is not enforced.
3572	//
3573	// Name is a required field
3574	Name *string `min:"1" type:"string" required:"true"`
3575
3576	// A section of the request body that specifies the thumbnail parameters, if
3577	// any.
3578	Thumbnails *Thumbnails `type:"structure"`
3579
3580	// A section of the request body that specifies the video parameters.
3581	Video *VideoParameters `type:"structure"`
3582}
3583
3584// String returns the string representation
3585func (s CreatePresetInput) String() string {
3586	return awsutil.Prettify(s)
3587}
3588
3589// GoString returns the string representation
3590func (s CreatePresetInput) GoString() string {
3591	return s.String()
3592}
3593
3594// Validate inspects the fields of the type to determine if they are valid.
3595func (s *CreatePresetInput) Validate() error {
3596	invalidParams := request.ErrInvalidParams{Context: "CreatePresetInput"}
3597	if s.Container == nil {
3598		invalidParams.Add(request.NewErrParamRequired("Container"))
3599	}
3600	if s.Name == nil {
3601		invalidParams.Add(request.NewErrParamRequired("Name"))
3602	}
3603	if s.Name != nil && len(*s.Name) < 1 {
3604		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
3605	}
3606	if s.Video != nil {
3607		if err := s.Video.Validate(); err != nil {
3608			invalidParams.AddNested("Video", err.(request.ErrInvalidParams))
3609		}
3610	}
3611
3612	if invalidParams.Len() > 0 {
3613		return invalidParams
3614	}
3615	return nil
3616}
3617
3618// SetAudio sets the Audio field's value.
3619func (s *CreatePresetInput) SetAudio(v *AudioParameters) *CreatePresetInput {
3620	s.Audio = v
3621	return s
3622}
3623
3624// SetContainer sets the Container field's value.
3625func (s *CreatePresetInput) SetContainer(v string) *CreatePresetInput {
3626	s.Container = &v
3627	return s
3628}
3629
3630// SetDescription sets the Description field's value.
3631func (s *CreatePresetInput) SetDescription(v string) *CreatePresetInput {
3632	s.Description = &v
3633	return s
3634}
3635
3636// SetName sets the Name field's value.
3637func (s *CreatePresetInput) SetName(v string) *CreatePresetInput {
3638	s.Name = &v
3639	return s
3640}
3641
3642// SetThumbnails sets the Thumbnails field's value.
3643func (s *CreatePresetInput) SetThumbnails(v *Thumbnails) *CreatePresetInput {
3644	s.Thumbnails = v
3645	return s
3646}
3647
3648// SetVideo sets the Video field's value.
3649func (s *CreatePresetInput) SetVideo(v *VideoParameters) *CreatePresetInput {
3650	s.Video = v
3651	return s
3652}
3653
3654// The CreatePresetResponse structure.
3655type CreatePresetOutput struct {
3656	_ struct{} `type:"structure"`
3657
3658	// A section of the response body that provides information about the preset
3659	// that is created.
3660	Preset *Preset `type:"structure"`
3661
3662	// If the preset settings don't comply with the standards for the video codec
3663	// but Elastic Transcoder created the preset, this message explains the reason
3664	// the preset settings don't meet the standard. Elastic Transcoder created the
3665	// preset because the settings might produce acceptable output.
3666	Warning *string `type:"string"`
3667}
3668
3669// String returns the string representation
3670func (s CreatePresetOutput) String() string {
3671	return awsutil.Prettify(s)
3672}
3673
3674// GoString returns the string representation
3675func (s CreatePresetOutput) GoString() string {
3676	return s.String()
3677}
3678
3679// SetPreset sets the Preset field's value.
3680func (s *CreatePresetOutput) SetPreset(v *Preset) *CreatePresetOutput {
3681	s.Preset = v
3682	return s
3683}
3684
3685// SetWarning sets the Warning field's value.
3686func (s *CreatePresetOutput) SetWarning(v string) *CreatePresetOutput {
3687	s.Warning = &v
3688	return s
3689}
3690
3691// The DeletePipelineRequest structure.
3692type DeletePipelineInput struct {
3693	_ struct{} `type:"structure"`
3694
3695	// The identifier of the pipeline that you want to delete.
3696	//
3697	// Id is a required field
3698	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
3699}
3700
3701// String returns the string representation
3702func (s DeletePipelineInput) String() string {
3703	return awsutil.Prettify(s)
3704}
3705
3706// GoString returns the string representation
3707func (s DeletePipelineInput) GoString() string {
3708	return s.String()
3709}
3710
3711// Validate inspects the fields of the type to determine if they are valid.
3712func (s *DeletePipelineInput) Validate() error {
3713	invalidParams := request.ErrInvalidParams{Context: "DeletePipelineInput"}
3714	if s.Id == nil {
3715		invalidParams.Add(request.NewErrParamRequired("Id"))
3716	}
3717
3718	if invalidParams.Len() > 0 {
3719		return invalidParams
3720	}
3721	return nil
3722}
3723
3724// SetId sets the Id field's value.
3725func (s *DeletePipelineInput) SetId(v string) *DeletePipelineInput {
3726	s.Id = &v
3727	return s
3728}
3729
3730// The DeletePipelineResponse structure.
3731type DeletePipelineOutput struct {
3732	_ struct{} `type:"structure"`
3733}
3734
3735// String returns the string representation
3736func (s DeletePipelineOutput) String() string {
3737	return awsutil.Prettify(s)
3738}
3739
3740// GoString returns the string representation
3741func (s DeletePipelineOutput) GoString() string {
3742	return s.String()
3743}
3744
3745// The DeletePresetRequest structure.
3746type DeletePresetInput struct {
3747	_ struct{} `type:"structure"`
3748
3749	// The identifier of the preset for which you want to get detailed information.
3750	//
3751	// Id is a required field
3752	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
3753}
3754
3755// String returns the string representation
3756func (s DeletePresetInput) String() string {
3757	return awsutil.Prettify(s)
3758}
3759
3760// GoString returns the string representation
3761func (s DeletePresetInput) GoString() string {
3762	return s.String()
3763}
3764
3765// Validate inspects the fields of the type to determine if they are valid.
3766func (s *DeletePresetInput) Validate() error {
3767	invalidParams := request.ErrInvalidParams{Context: "DeletePresetInput"}
3768	if s.Id == nil {
3769		invalidParams.Add(request.NewErrParamRequired("Id"))
3770	}
3771
3772	if invalidParams.Len() > 0 {
3773		return invalidParams
3774	}
3775	return nil
3776}
3777
3778// SetId sets the Id field's value.
3779func (s *DeletePresetInput) SetId(v string) *DeletePresetInput {
3780	s.Id = &v
3781	return s
3782}
3783
3784// The DeletePresetResponse structure.
3785type DeletePresetOutput struct {
3786	_ struct{} `type:"structure"`
3787}
3788
3789// String returns the string representation
3790func (s DeletePresetOutput) String() string {
3791	return awsutil.Prettify(s)
3792}
3793
3794// GoString returns the string representation
3795func (s DeletePresetOutput) GoString() string {
3796	return s.String()
3797}
3798
3799// The detected properties of the input file. Elastic Transcoder identifies
3800// these values from the input file.
3801type DetectedProperties struct {
3802	_ struct{} `type:"structure"`
3803
3804	// The detected duration of the input file, in milliseconds.
3805	DurationMillis *int64 `type:"long"`
3806
3807	// The detected file size of the input file, in bytes.
3808	FileSize *int64 `type:"long"`
3809
3810	// The detected frame rate of the input file, in frames per second.
3811	FrameRate *string `type:"string"`
3812
3813	// The detected height of the input file, in pixels.
3814	Height *int64 `type:"integer"`
3815
3816	// The detected width of the input file, in pixels.
3817	Width *int64 `type:"integer"`
3818}
3819
3820// String returns the string representation
3821func (s DetectedProperties) String() string {
3822	return awsutil.Prettify(s)
3823}
3824
3825// GoString returns the string representation
3826func (s DetectedProperties) GoString() string {
3827	return s.String()
3828}
3829
3830// SetDurationMillis sets the DurationMillis field's value.
3831func (s *DetectedProperties) SetDurationMillis(v int64) *DetectedProperties {
3832	s.DurationMillis = &v
3833	return s
3834}
3835
3836// SetFileSize sets the FileSize field's value.
3837func (s *DetectedProperties) SetFileSize(v int64) *DetectedProperties {
3838	s.FileSize = &v
3839	return s
3840}
3841
3842// SetFrameRate sets the FrameRate field's value.
3843func (s *DetectedProperties) SetFrameRate(v string) *DetectedProperties {
3844	s.FrameRate = &v
3845	return s
3846}
3847
3848// SetHeight sets the Height field's value.
3849func (s *DetectedProperties) SetHeight(v int64) *DetectedProperties {
3850	s.Height = &v
3851	return s
3852}
3853
3854// SetWidth sets the Width field's value.
3855func (s *DetectedProperties) SetWidth(v int64) *DetectedProperties {
3856	s.Width = &v
3857	return s
3858}
3859
3860// The encryption settings, if any, that are used for decrypting your input
3861// files or encrypting your output files. If your input file is encrypted, you
3862// must specify the mode that Elastic Transcoder uses to decrypt your file,
3863// otherwise you must specify the mode you want Elastic Transcoder to use to
3864// encrypt your output files.
3865type Encryption struct {
3866	_ struct{} `type:"structure"`
3867
3868	// The series of random bits created by a random bit generator, unique for every
3869	// encryption operation, that you used to encrypt your input files or that you
3870	// want Elastic Transcoder to use to encrypt your output files. The initialization
3871	// vector must be base64-encoded, and it must be exactly 16 bytes long before
3872	// being base64-encoded.
3873	InitializationVector *string `type:"string"`
3874
3875	// The data encryption key that you want Elastic Transcoder to use to encrypt
3876	// your output file, or that was used to encrypt your input file. The key must
3877	// be base64-encoded and it must be one of the following bit lengths before
3878	// being base64-encoded:
3879	//
3880	// 128, 192, or 256.
3881	//
3882	// The key must also be encrypted by using the Amazon Key Management Service.
3883	Key *string `type:"string"`
3884
3885	// The MD5 digest of the key that you used to encrypt your input file, or that
3886	// you want Elastic Transcoder to use to encrypt your output file. Elastic Transcoder
3887	// uses the key digest as a checksum to make sure your key was not corrupted
3888	// in transit. The key MD5 must be base64-encoded, and it must be exactly 16
3889	// bytes long before being base64-encoded.
3890	KeyMd5 *string `type:"string"`
3891
3892	// The specific server-side encryption mode that you want Elastic Transcoder
3893	// to use when decrypting your input files or encrypting your output files.
3894	// Elastic Transcoder supports the following options:
3895	//
3896	//    * S3: Amazon S3 creates and manages the keys used for encrypting your
3897	//    files.
3898	//
3899	//    * S3-AWS-KMS: Amazon S3 calls the Amazon Key Management Service, which
3900	//    creates and manages the keys that are used for encrypting your files.
3901	//    If you specify S3-AWS-KMS and you don't want to use the default key, you
3902	//    must add the AWS-KMS key that you want to use to your pipeline.
3903	//
3904	//    * AES-CBC-PKCS7: A padded cipher-block mode of operation originally used
3905	//    for HLS files.
3906	//
3907	//    * AES-CTR: AES Counter Mode.
3908	//
3909	//    * AES-GCM: AES Galois Counter Mode, a mode of operation that is an authenticated
3910	//    encryption format, meaning that a file, key, or initialization vector
3911	//    that has been tampered with fails the decryption process.
3912	//
3913	// For all three AES options, you must provide the following settings, which
3914	// must be base64-encoded:
3915	//
3916	//    * Key
3917	//
3918	//    * Key MD5
3919	//
3920	//    * Initialization Vector
3921	//
3922	// For the AES modes, your private encryption keys and your unencrypted data
3923	// are never stored by AWS; therefore, it is important that you safely manage
3924	// your encryption keys. If you lose them, you won't be able to unencrypt your
3925	// data.
3926	Mode *string `type:"string"`
3927}
3928
3929// String returns the string representation
3930func (s Encryption) String() string {
3931	return awsutil.Prettify(s)
3932}
3933
3934// GoString returns the string representation
3935func (s Encryption) GoString() string {
3936	return s.String()
3937}
3938
3939// SetInitializationVector sets the InitializationVector field's value.
3940func (s *Encryption) SetInitializationVector(v string) *Encryption {
3941	s.InitializationVector = &v
3942	return s
3943}
3944
3945// SetKey sets the Key field's value.
3946func (s *Encryption) SetKey(v string) *Encryption {
3947	s.Key = &v
3948	return s
3949}
3950
3951// SetKeyMd5 sets the KeyMd5 field's value.
3952func (s *Encryption) SetKeyMd5(v string) *Encryption {
3953	s.KeyMd5 = &v
3954	return s
3955}
3956
3957// SetMode sets the Mode field's value.
3958func (s *Encryption) SetMode(v string) *Encryption {
3959	s.Mode = &v
3960	return s
3961}
3962
3963// The HLS content protection settings, if any, that you want Elastic Transcoder
3964// to apply to your output files.
3965type HlsContentProtection struct {
3966	_ struct{} `type:"structure"`
3967
3968	// If Elastic Transcoder is generating your key for you, you must leave this
3969	// field blank.
3970	//
3971	// The series of random bits created by a random bit generator, unique for every
3972	// encryption operation, that you want Elastic Transcoder to use to encrypt
3973	// your output files. The initialization vector must be base64-encoded, and
3974	// it must be exactly 16 bytes before being base64-encoded.
3975	InitializationVector *string `type:"string"`
3976
3977	// If you want Elastic Transcoder to generate a key for you, leave this field
3978	// blank.
3979	//
3980	// If you choose to supply your own key, you must encrypt the key by using AWS
3981	// KMS. The key must be base64-encoded, and it must be one of the following
3982	// bit lengths before being base64-encoded:
3983	//
3984	// 128, 192, or 256.
3985	Key *string `type:"string"`
3986
3987	// If Elastic Transcoder is generating your key for you, you must leave this
3988	// field blank.
3989	//
3990	// The MD5 digest of the key that you want Elastic Transcoder to use to encrypt
3991	// your output file, and that you want Elastic Transcoder to use as a checksum
3992	// to make sure your key was not corrupted in transit. The key MD5 must be base64-encoded,
3993	// and it must be exactly 16 bytes before being base64- encoded.
3994	KeyMd5 *string `type:"string"`
3995
3996	// Specify whether you want Elastic Transcoder to write your HLS license key
3997	// to an Amazon S3 bucket. If you choose WithVariantPlaylists, LicenseAcquisitionUrl
3998	// must be left blank and Elastic Transcoder writes your data key into the same
3999	// bucket as the associated playlist.
4000	KeyStoragePolicy *string `type:"string"`
4001
4002	// The location of the license key required to decrypt your HLS playlist. The
4003	// URL must be an absolute path, and is referenced in the URI attribute of the
4004	// EXT-X-KEY metadata tag in the playlist file.
4005	LicenseAcquisitionUrl *string `type:"string"`
4006
4007	// The content protection method for your output. The only valid value is: aes-128.
4008	//
4009	// This value is written into the method attribute of the EXT-X-KEY metadata
4010	// tag in the output playlist.
4011	Method *string `type:"string"`
4012}
4013
4014// String returns the string representation
4015func (s HlsContentProtection) String() string {
4016	return awsutil.Prettify(s)
4017}
4018
4019// GoString returns the string representation
4020func (s HlsContentProtection) GoString() string {
4021	return s.String()
4022}
4023
4024// SetInitializationVector sets the InitializationVector field's value.
4025func (s *HlsContentProtection) SetInitializationVector(v string) *HlsContentProtection {
4026	s.InitializationVector = &v
4027	return s
4028}
4029
4030// SetKey sets the Key field's value.
4031func (s *HlsContentProtection) SetKey(v string) *HlsContentProtection {
4032	s.Key = &v
4033	return s
4034}
4035
4036// SetKeyMd5 sets the KeyMd5 field's value.
4037func (s *HlsContentProtection) SetKeyMd5(v string) *HlsContentProtection {
4038	s.KeyMd5 = &v
4039	return s
4040}
4041
4042// SetKeyStoragePolicy sets the KeyStoragePolicy field's value.
4043func (s *HlsContentProtection) SetKeyStoragePolicy(v string) *HlsContentProtection {
4044	s.KeyStoragePolicy = &v
4045	return s
4046}
4047
4048// SetLicenseAcquisitionUrl sets the LicenseAcquisitionUrl field's value.
4049func (s *HlsContentProtection) SetLicenseAcquisitionUrl(v string) *HlsContentProtection {
4050	s.LicenseAcquisitionUrl = &v
4051	return s
4052}
4053
4054// SetMethod sets the Method field's value.
4055func (s *HlsContentProtection) SetMethod(v string) *HlsContentProtection {
4056	s.Method = &v
4057	return s
4058}
4059
4060// The captions to be created, if any.
4061type InputCaptions struct {
4062	_ struct{} `type:"structure"`
4063
4064	// Source files for the input sidecar captions used during the transcoding process.
4065	// To omit all sidecar captions, leave CaptionSources blank.
4066	CaptionSources []*CaptionSource `type:"list"`
4067
4068	// A policy that determines how Elastic Transcoder handles the existence of
4069	// multiple captions.
4070	//
4071	//    * MergeOverride: Elastic Transcoder transcodes both embedded and sidecar
4072	//    captions into outputs. If captions for a language are embedded in the
4073	//    input file and also appear in a sidecar file, Elastic Transcoder uses
4074	//    the sidecar captions and ignores the embedded captions for that language.
4075	//
4076	//    * MergeRetain: Elastic Transcoder transcodes both embedded and sidecar
4077	//    captions into outputs. If captions for a language are embedded in the
4078	//    input file and also appear in a sidecar file, Elastic Transcoder uses
4079	//    the embedded captions and ignores the sidecar captions for that language.
4080	//    If CaptionSources is empty, Elastic Transcoder omits all sidecar captions
4081	//    from the output files.
4082	//
4083	//    * Override: Elastic Transcoder transcodes only the sidecar captions that
4084	//    you specify in CaptionSources.
4085	//
4086	// MergePolicy cannot be null.
4087	MergePolicy *string `type:"string"`
4088}
4089
4090// String returns the string representation
4091func (s InputCaptions) String() string {
4092	return awsutil.Prettify(s)
4093}
4094
4095// GoString returns the string representation
4096func (s InputCaptions) GoString() string {
4097	return s.String()
4098}
4099
4100// Validate inspects the fields of the type to determine if they are valid.
4101func (s *InputCaptions) Validate() error {
4102	invalidParams := request.ErrInvalidParams{Context: "InputCaptions"}
4103	if s.CaptionSources != nil {
4104		for i, v := range s.CaptionSources {
4105			if v == nil {
4106				continue
4107			}
4108			if err := v.Validate(); err != nil {
4109				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CaptionSources", i), err.(request.ErrInvalidParams))
4110			}
4111		}
4112	}
4113
4114	if invalidParams.Len() > 0 {
4115		return invalidParams
4116	}
4117	return nil
4118}
4119
4120// SetCaptionSources sets the CaptionSources field's value.
4121func (s *InputCaptions) SetCaptionSources(v []*CaptionSource) *InputCaptions {
4122	s.CaptionSources = v
4123	return s
4124}
4125
4126// SetMergePolicy sets the MergePolicy field's value.
4127func (s *InputCaptions) SetMergePolicy(v string) *InputCaptions {
4128	s.MergePolicy = &v
4129	return s
4130}
4131
4132// A section of the response body that provides information about the job that
4133// is created.
4134type Job struct {
4135	_ struct{} `type:"structure"`
4136
4137	// The Amazon Resource Name (ARN) for the job.
4138	Arn *string `type:"string"`
4139
4140	// The identifier that Elastic Transcoder assigned to the job. You use this
4141	// value to get settings for the job or to delete the job.
4142	Id *string `type:"string"`
4143
4144	// A section of the request or response body that provides information about
4145	// the file that is being transcoded.
4146	Input *JobInput `type:"structure"`
4147
4148	// Information about the files that you're transcoding. If you specified multiple
4149	// files for this job, Elastic Transcoder stitches the files together to make
4150	// one output.
4151	Inputs []*JobInput `type:"list"`
4152
4153	// If you specified one output for a job, information about that output. If
4154	// you specified multiple outputs for a job, the Output object lists information
4155	// about the first output. This duplicates the information that is listed for
4156	// the first output in the Outputs object.
4157	//
4158	// Outputs recommended instead.
4159	//
4160	// A section of the request or response body that provides information about
4161	// the transcoded (target) file.
4162	Output *JobOutput `type:"structure"`
4163
4164	// The value, if any, that you want Elastic Transcoder to prepend to the names
4165	// of all files that this job creates, including output files, thumbnails, and
4166	// playlists. We recommend that you add a / or some other delimiter to the end
4167	// of the OutputKeyPrefix.
4168	OutputKeyPrefix *string `min:"1" type:"string"`
4169
4170	// Information about the output files. We recommend that you use the Outputs
4171	// syntax for all jobs, even when you want Elastic Transcoder to transcode a
4172	// file into only one format. Do not use both the Outputs and Output syntaxes
4173	// in the same request. You can create a maximum of 30 outputs per job.
4174	//
4175	// If you specify more than one output for a job, Elastic Transcoder creates
4176	// the files for each output in the order in which you specify them in the job.
4177	Outputs []*JobOutput `type:"list"`
4178
4179	// The Id of the pipeline that you want Elastic Transcoder to use for transcoding.
4180	// The pipeline determines several settings, including the Amazon S3 bucket
4181	// from which Elastic Transcoder gets the files to transcode and the bucket
4182	// into which Elastic Transcoder puts the transcoded files.
4183	PipelineId *string `type:"string"`
4184
4185	// Outputs in Fragmented MP4 or MPEG-TS format only.
4186	//
4187	// If you specify a preset in PresetId for which the value of Container is fmp4
4188	// (Fragmented MP4) or ts (MPEG-TS), Playlists contains information about the
4189	// master playlists that you want Elastic Transcoder to create.
4190	//
4191	// The maximum number of master playlists in a job is 30.
4192	Playlists []*Playlist `type:"list"`
4193
4194	// The status of the job: Submitted, Progressing, Complete, Canceled, or Error.
4195	Status *string `type:"string"`
4196
4197	// Details about the timing of a job.
4198	Timing *Timing `type:"structure"`
4199
4200	// User-defined metadata that you want to associate with an Elastic Transcoder
4201	// job. You specify metadata in key/value pairs, and you can add up to 10 key/value
4202	// pairs per job. Elastic Transcoder does not guarantee that key/value pairs
4203	// are returned in the same order in which you specify them.
4204	//
4205	// Metadata keys and values must use characters from the following list:
4206	//
4207	//    * 0-9
4208	//
4209	//    * A-Z and a-z
4210	//
4211	//    * Space
4212	//
4213	//    * The following symbols: _.:/=+-%@
4214	UserMetadata map[string]*string `type:"map"`
4215}
4216
4217// String returns the string representation
4218func (s Job) String() string {
4219	return awsutil.Prettify(s)
4220}
4221
4222// GoString returns the string representation
4223func (s Job) GoString() string {
4224	return s.String()
4225}
4226
4227// SetArn sets the Arn field's value.
4228func (s *Job) SetArn(v string) *Job {
4229	s.Arn = &v
4230	return s
4231}
4232
4233// SetId sets the Id field's value.
4234func (s *Job) SetId(v string) *Job {
4235	s.Id = &v
4236	return s
4237}
4238
4239// SetInput sets the Input field's value.
4240func (s *Job) SetInput(v *JobInput) *Job {
4241	s.Input = v
4242	return s
4243}
4244
4245// SetInputs sets the Inputs field's value.
4246func (s *Job) SetInputs(v []*JobInput) *Job {
4247	s.Inputs = v
4248	return s
4249}
4250
4251// SetOutput sets the Output field's value.
4252func (s *Job) SetOutput(v *JobOutput) *Job {
4253	s.Output = v
4254	return s
4255}
4256
4257// SetOutputKeyPrefix sets the OutputKeyPrefix field's value.
4258func (s *Job) SetOutputKeyPrefix(v string) *Job {
4259	s.OutputKeyPrefix = &v
4260	return s
4261}
4262
4263// SetOutputs sets the Outputs field's value.
4264func (s *Job) SetOutputs(v []*JobOutput) *Job {
4265	s.Outputs = v
4266	return s
4267}
4268
4269// SetPipelineId sets the PipelineId field's value.
4270func (s *Job) SetPipelineId(v string) *Job {
4271	s.PipelineId = &v
4272	return s
4273}
4274
4275// SetPlaylists sets the Playlists field's value.
4276func (s *Job) SetPlaylists(v []*Playlist) *Job {
4277	s.Playlists = v
4278	return s
4279}
4280
4281// SetStatus sets the Status field's value.
4282func (s *Job) SetStatus(v string) *Job {
4283	s.Status = &v
4284	return s
4285}
4286
4287// SetTiming sets the Timing field's value.
4288func (s *Job) SetTiming(v *Timing) *Job {
4289	s.Timing = v
4290	return s
4291}
4292
4293// SetUserMetadata sets the UserMetadata field's value.
4294func (s *Job) SetUserMetadata(v map[string]*string) *Job {
4295	s.UserMetadata = v
4296	return s
4297}
4298
4299// The .jpg or .png file associated with an audio file.
4300type JobAlbumArt struct {
4301	_ struct{} `type:"structure"`
4302
4303	// The file to be used as album art. There can be multiple artworks associated
4304	// with an audio file, to a maximum of 20. Valid formats are .jpg and .png
4305	Artwork []*Artwork `type:"list"`
4306
4307	// A policy that determines how Elastic Transcoder handles the existence of
4308	// multiple album artwork files.
4309	//
4310	//    * Replace: The specified album art replaces any existing album art.
4311	//
4312	//    * Prepend: The specified album art is placed in front of any existing
4313	//    album art.
4314	//
4315	//    * Append: The specified album art is placed after any existing album art.
4316	//
4317	//    * Fallback: If the original input file contains artwork, Elastic Transcoder
4318	//    uses that artwork for the output. If the original input does not contain
4319	//    artwork, Elastic Transcoder uses the specified album art file.
4320	MergePolicy *string `type:"string"`
4321}
4322
4323// String returns the string representation
4324func (s JobAlbumArt) String() string {
4325	return awsutil.Prettify(s)
4326}
4327
4328// GoString returns the string representation
4329func (s JobAlbumArt) GoString() string {
4330	return s.String()
4331}
4332
4333// Validate inspects the fields of the type to determine if they are valid.
4334func (s *JobAlbumArt) Validate() error {
4335	invalidParams := request.ErrInvalidParams{Context: "JobAlbumArt"}
4336	if s.Artwork != nil {
4337		for i, v := range s.Artwork {
4338			if v == nil {
4339				continue
4340			}
4341			if err := v.Validate(); err != nil {
4342				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Artwork", i), err.(request.ErrInvalidParams))
4343			}
4344		}
4345	}
4346
4347	if invalidParams.Len() > 0 {
4348		return invalidParams
4349	}
4350	return nil
4351}
4352
4353// SetArtwork sets the Artwork field's value.
4354func (s *JobAlbumArt) SetArtwork(v []*Artwork) *JobAlbumArt {
4355	s.Artwork = v
4356	return s
4357}
4358
4359// SetMergePolicy sets the MergePolicy field's value.
4360func (s *JobAlbumArt) SetMergePolicy(v string) *JobAlbumArt {
4361	s.MergePolicy = &v
4362	return s
4363}
4364
4365// Information about the file that you're transcoding.
4366type JobInput struct {
4367	_ struct{} `type:"structure"`
4368
4369	// The aspect ratio of the input file. If you want Elastic Transcoder to automatically
4370	// detect the aspect ratio of the input file, specify auto. If you want to specify
4371	// the aspect ratio for the output file, enter one of the following values:
4372	//
4373	// 1:1, 4:3, 3:2, 16:9
4374	//
4375	// If you specify a value other than auto, Elastic Transcoder disables automatic
4376	// detection of the aspect ratio.
4377	AspectRatio *string `type:"string"`
4378
4379	// The container type for the input file. If you want Elastic Transcoder to
4380	// automatically detect the container type of the input file, specify auto.
4381	// If you want to specify the container type for the input file, enter one of
4382	// the following values:
4383	//
4384	// 3gp, aac, asf, avi, divx, flv, m4a, mkv, mov, mp3, mp4, mpeg, mpeg-ps, mpeg-ts,
4385	// mxf, ogg, vob, wav, webm
4386	Container *string `type:"string"`
4387
4388	// The detected properties of the input file.
4389	DetectedProperties *DetectedProperties `type:"structure"`
4390
4391	// The encryption settings, if any, that are used for decrypting your input
4392	// files. If your input file is encrypted, you must specify the mode that Elastic
4393	// Transcoder uses to decrypt your file.
4394	Encryption *Encryption `type:"structure"`
4395
4396	// The frame rate of the input file. If you want Elastic Transcoder to automatically
4397	// detect the frame rate of the input file, specify auto. If you want to specify
4398	// the frame rate for the input file, enter one of the following values:
4399	//
4400	// 10, 15, 23.97, 24, 25, 29.97, 30, 60
4401	//
4402	// If you specify a value other than auto, Elastic Transcoder disables automatic
4403	// detection of the frame rate.
4404	FrameRate *string `type:"string"`
4405
4406	// You can configure Elastic Transcoder to transcode captions, or subtitles,
4407	// from one format to another. All captions must be in UTF-8. Elastic Transcoder
4408	// supports two types of captions:
4409	//
4410	//    * Embedded: Embedded captions are included in the same file as the audio
4411	//    and video. Elastic Transcoder supports only one embedded caption per language,
4412	//    to a maximum of 300 embedded captions per file.
4413	//
4414	// Valid input values include: CEA-608 (EIA-608, first non-empty channel only),
4415	//    CEA-708 (EIA-708, first non-empty channel only), and mov-text
4416	//
4417	// Valid outputs include: mov-text
4418	//
4419	// Elastic Transcoder supports a maximum of one embedded format per output.
4420	//
4421	//    * Sidecar: Sidecar captions are kept in a separate metadata file from
4422	//    the audio and video data. Sidecar captions require a player that is capable
4423	//    of understanding the relationship between the video file and the sidecar
4424	//    file. Elastic Transcoder supports only one sidecar caption per language,
4425	//    to a maximum of 20 sidecar captions per file.
4426	//
4427	// Valid input values include: dfxp (first div element only), ebu-tt, scc, smpt,
4428	//    srt, ttml (first div element only), and webvtt
4429	//
4430	// Valid outputs include: dfxp (first div element only), scc, srt, and webvtt.
4431	//
4432	// If you want ttml or smpte-tt compatible captions, specify dfxp as your output
4433	// format.
4434	//
4435	// Elastic Transcoder does not support OCR (Optical Character Recognition),
4436	// does not accept pictures as a valid input for captions, and is not available
4437	// for audio-only transcoding. Elastic Transcoder does not preserve text formatting
4438	// (for example, italics) during the transcoding process.
4439	//
4440	// To remove captions or leave the captions empty, set Captions to null. To
4441	// pass through existing captions unchanged, set the MergePolicy to MergeRetain,
4442	// and pass in a null CaptionSources array.
4443	//
4444	// For more information on embedded files, see the Subtitles Wikipedia page.
4445	//
4446	// For more information on sidecar files, see the Extensible Metadata Platform
4447	// and Sidecar file Wikipedia pages.
4448	InputCaptions *InputCaptions `type:"structure"`
4449
4450	// Whether the input file is interlaced. If you want Elastic Transcoder to automatically
4451	// detect whether the input file is interlaced, specify auto. If you want to
4452	// specify whether the input file is interlaced, enter one of the following
4453	// values:
4454	//
4455	// true, false
4456	//
4457	// If you specify a value other than auto, Elastic Transcoder disables automatic
4458	// detection of interlacing.
4459	Interlaced *string `type:"string"`
4460
4461	// The name of the file to transcode. Elsewhere in the body of the JSON block
4462	// is the the ID of the pipeline to use for processing the job. The InputBucket
4463	// object in that pipeline tells Elastic Transcoder which Amazon S3 bucket to
4464	// get the file from.
4465	//
4466	// If the file name includes a prefix, such as cooking/lasagna.mpg, include
4467	// the prefix in the key. If the file isn't in the specified bucket, Elastic
4468	// Transcoder returns an error.
4469	Key *string `min:"1" type:"string"`
4470
4471	// This value must be auto, which causes Elastic Transcoder to automatically
4472	// detect the resolution of the input file.
4473	Resolution *string `type:"string"`
4474
4475	// Settings for clipping an input. Each input can have different clip settings.
4476	TimeSpan *TimeSpan `type:"structure"`
4477}
4478
4479// String returns the string representation
4480func (s JobInput) String() string {
4481	return awsutil.Prettify(s)
4482}
4483
4484// GoString returns the string representation
4485func (s JobInput) GoString() string {
4486	return s.String()
4487}
4488
4489// Validate inspects the fields of the type to determine if they are valid.
4490func (s *JobInput) Validate() error {
4491	invalidParams := request.ErrInvalidParams{Context: "JobInput"}
4492	if s.Key != nil && len(*s.Key) < 1 {
4493		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
4494	}
4495	if s.InputCaptions != nil {
4496		if err := s.InputCaptions.Validate(); err != nil {
4497			invalidParams.AddNested("InputCaptions", err.(request.ErrInvalidParams))
4498		}
4499	}
4500
4501	if invalidParams.Len() > 0 {
4502		return invalidParams
4503	}
4504	return nil
4505}
4506
4507// SetAspectRatio sets the AspectRatio field's value.
4508func (s *JobInput) SetAspectRatio(v string) *JobInput {
4509	s.AspectRatio = &v
4510	return s
4511}
4512
4513// SetContainer sets the Container field's value.
4514func (s *JobInput) SetContainer(v string) *JobInput {
4515	s.Container = &v
4516	return s
4517}
4518
4519// SetDetectedProperties sets the DetectedProperties field's value.
4520func (s *JobInput) SetDetectedProperties(v *DetectedProperties) *JobInput {
4521	s.DetectedProperties = v
4522	return s
4523}
4524
4525// SetEncryption sets the Encryption field's value.
4526func (s *JobInput) SetEncryption(v *Encryption) *JobInput {
4527	s.Encryption = v
4528	return s
4529}
4530
4531// SetFrameRate sets the FrameRate field's value.
4532func (s *JobInput) SetFrameRate(v string) *JobInput {
4533	s.FrameRate = &v
4534	return s
4535}
4536
4537// SetInputCaptions sets the InputCaptions field's value.
4538func (s *JobInput) SetInputCaptions(v *InputCaptions) *JobInput {
4539	s.InputCaptions = v
4540	return s
4541}
4542
4543// SetInterlaced sets the Interlaced field's value.
4544func (s *JobInput) SetInterlaced(v string) *JobInput {
4545	s.Interlaced = &v
4546	return s
4547}
4548
4549// SetKey sets the Key field's value.
4550func (s *JobInput) SetKey(v string) *JobInput {
4551	s.Key = &v
4552	return s
4553}
4554
4555// SetResolution sets the Resolution field's value.
4556func (s *JobInput) SetResolution(v string) *JobInput {
4557	s.Resolution = &v
4558	return s
4559}
4560
4561// SetTimeSpan sets the TimeSpan field's value.
4562func (s *JobInput) SetTimeSpan(v *TimeSpan) *JobInput {
4563	s.TimeSpan = v
4564	return s
4565}
4566
4567// Outputs recommended instead.
4568//
4569// If you specified one output for a job, information about that output. If
4570// you specified multiple outputs for a job, the Output object lists information
4571// about the first output. This duplicates the information that is listed for
4572// the first output in the Outputs object.
4573type JobOutput struct {
4574	_ struct{} `type:"structure"`
4575
4576	// The album art to be associated with the output file, if any.
4577	AlbumArt *JobAlbumArt `type:"structure"`
4578
4579	// If Elastic Transcoder used a preset with a ColorSpaceConversionMode to transcode
4580	// the output file, the AppliedColorSpaceConversion parameter shows the conversion
4581	// used. If no ColorSpaceConversionMode was defined in the preset, this parameter
4582	// is not be included in the job response.
4583	AppliedColorSpaceConversion *string `type:"string"`
4584
4585	// You can configure Elastic Transcoder to transcode captions, or subtitles,
4586	// from one format to another. All captions must be in UTF-8. Elastic Transcoder
4587	// supports two types of captions:
4588	//
4589	//    * Embedded: Embedded captions are included in the same file as the audio
4590	//    and video. Elastic Transcoder supports only one embedded caption per language,
4591	//    to a maximum of 300 embedded captions per file.
4592	//
4593	// Valid input values include: CEA-608 (EIA-608, first non-empty channel only),
4594	//    CEA-708 (EIA-708, first non-empty channel only), and mov-text
4595	//
4596	// Valid outputs include: mov-text
4597	//
4598	// Elastic Transcoder supports a maximum of one embedded format per output.
4599	//
4600	//    * Sidecar: Sidecar captions are kept in a separate metadata file from
4601	//    the audio and video data. Sidecar captions require a player that is capable
4602	//    of understanding the relationship between the video file and the sidecar
4603	//    file. Elastic Transcoder supports only one sidecar caption per language,
4604	//    to a maximum of 20 sidecar captions per file.
4605	//
4606	// Valid input values include: dfxp (first div element only), ebu-tt, scc, smpt,
4607	//    srt, ttml (first div element only), and webvtt
4608	//
4609	// Valid outputs include: dfxp (first div element only), scc, srt, and webvtt.
4610	//
4611	// If you want ttml or smpte-tt compatible captions, specify dfxp as your output
4612	// format.
4613	//
4614	// Elastic Transcoder does not support OCR (Optical Character Recognition),
4615	// does not accept pictures as a valid input for captions, and is not available
4616	// for audio-only transcoding. Elastic Transcoder does not preserve text formatting
4617	// (for example, italics) during the transcoding process.
4618	//
4619	// To remove captions or leave the captions empty, set Captions to null. To
4620	// pass through existing captions unchanged, set the MergePolicy to MergeRetain,
4621	// and pass in a null CaptionSources array.
4622	//
4623	// For more information on embedded files, see the Subtitles Wikipedia page.
4624	//
4625	// For more information on sidecar files, see the Extensible Metadata Platform
4626	// and Sidecar file Wikipedia pages.
4627	Captions *Captions `type:"structure"`
4628
4629	// You can create an output file that contains an excerpt from the input file.
4630	// This excerpt, called a clip, can come from the beginning, middle, or end
4631	// of the file. The Composition object contains settings for the clips that
4632	// make up an output file. For the current release, you can only specify settings
4633	// for a single clip per output file. The Composition object cannot be null.
4634	Composition []*Clip `deprecated:"true" type:"list"`
4635
4636	// Duration of the output file, in seconds.
4637	Duration *int64 `type:"long"`
4638
4639	// Duration of the output file, in milliseconds.
4640	DurationMillis *int64 `type:"long"`
4641
4642	// The encryption settings, if any, that you want Elastic Transcoder to apply
4643	// to your output files. If you choose to use encryption, you must specify a
4644	// mode to use. If you choose not to use encryption, Elastic Transcoder writes
4645	// an unencrypted file to your Amazon S3 bucket.
4646	Encryption *Encryption `type:"structure"`
4647
4648	// File size of the output file, in bytes.
4649	FileSize *int64 `type:"long"`
4650
4651	// Frame rate of the output file, in frames per second.
4652	FrameRate *string `type:"string"`
4653
4654	// Height of the output file, in pixels.
4655	Height *int64 `type:"integer"`
4656
4657	// A sequential counter, starting with 1, that identifies an output among the
4658	// outputs from the current job. In the Output syntax, this value is always
4659	// 1.
4660	Id *string `type:"string"`
4661
4662	// The name to assign to the transcoded file. Elastic Transcoder saves the file
4663	// in the Amazon S3 bucket specified by the OutputBucket object in the pipeline
4664	// that is specified by the pipeline ID.
4665	Key *string `min:"1" type:"string"`
4666
4667	// The value of the Id object for the preset that you want to use for this job.
4668	// The preset determines the audio, video, and thumbnail settings that Elastic
4669	// Transcoder uses for transcoding. To use a preset that you created, specify
4670	// the preset ID that Elastic Transcoder returned in the response when you created
4671	// the preset. You can also use the Elastic Transcoder system presets, which
4672	// you can get with ListPresets.
4673	PresetId *string `type:"string"`
4674
4675	// The number of degrees clockwise by which you want Elastic Transcoder to rotate
4676	// the output relative to the input. Enter one of the following values:
4677	//
4678	// auto, 0, 90, 180, 270
4679	//
4680	// The value auto generally works only if the file that you're transcoding contains
4681	// rotation metadata.
4682	Rotate *string `type:"string"`
4683
4684	// (Outputs in Fragmented MP4 or MPEG-TS format only.
4685	//
4686	// If you specify a preset in PresetId for which the value of Container is fmp4
4687	// (Fragmented MP4) or ts (MPEG-TS), SegmentDuration is the target maximum duration
4688	// of each segment in seconds. For HLSv3 format playlists, each media segment
4689	// is stored in a separate .ts file. For HLSv4, MPEG-DASH, and Smooth playlists,
4690	// all media segments for an output are stored in a single file. Each segment
4691	// is approximately the length of the SegmentDuration, though individual segments
4692	// might be shorter or longer.
4693	//
4694	// The range of valid values is 1 to 60 seconds. If the duration of the video
4695	// is not evenly divisible by SegmentDuration, the duration of the last segment
4696	// is the remainder of total length/SegmentDuration.
4697	//
4698	// Elastic Transcoder creates an output-specific playlist for each output HLS
4699	// output that you specify in OutputKeys. To add an output to the master playlist
4700	// for this job, include it in the OutputKeys of the associated playlist.
4701	SegmentDuration *string `type:"string"`
4702
4703	// The status of one output in a job. If you specified only one output for the
4704	// job, Outputs:Status is always the same as Job:Status. If you specified more
4705	// than one output:
4706	//
4707	//    * Job:Status and Outputs:Status for all of the outputs is Submitted until
4708	//    Elastic Transcoder starts to process the first output.
4709	//
4710	//    * When Elastic Transcoder starts to process the first output, Outputs:Status
4711	//    for that output and Job:Status both change to Progressing. For each output,
4712	//    the value of Outputs:Status remains Submitted until Elastic Transcoder
4713	//    starts to process the output.
4714	//
4715	//    * Job:Status remains Progressing until all of the outputs reach a terminal
4716	//    status, either Complete or Error.
4717	//
4718	//    * When all of the outputs reach a terminal status, Job:Status changes
4719	//    to Complete only if Outputs:Status for all of the outputs is Complete.
4720	//    If Outputs:Status for one or more outputs is Error, the terminal status
4721	//    for Job:Status is also Error.
4722	//
4723	// The value of Status is one of the following: Submitted, Progressing, Complete,
4724	// Canceled, or Error.
4725	Status *string `type:"string"`
4726
4727	// Information that further explains Status.
4728	StatusDetail *string `type:"string"`
4729
4730	// The encryption settings, if any, that you want Elastic Transcoder to apply
4731	// to your thumbnail.
4732	ThumbnailEncryption *Encryption `type:"structure"`
4733
4734	// Whether you want Elastic Transcoder to create thumbnails for your videos
4735	// and, if so, how you want Elastic Transcoder to name the files.
4736	//
4737	// If you don't want Elastic Transcoder to create thumbnails, specify "".
4738	//
4739	// If you do want Elastic Transcoder to create thumbnails, specify the information
4740	// that you want to include in the file name for each thumbnail. You can specify
4741	// the following values in any sequence:
4742	//
4743	//    * {count} (Required): If you want to create thumbnails, you must include
4744	//    {count} in the ThumbnailPattern object. Wherever you specify {count},
4745	//    Elastic Transcoder adds a five-digit sequence number (beginning with 00001)
4746	//    to thumbnail file names. The number indicates where a given thumbnail
4747	//    appears in the sequence of thumbnails for a transcoded file.
4748	//
4749	// If you specify a literal value and/or {resolution} but you omit {count},
4750	//    Elastic Transcoder returns a validation error and does not create the
4751	//    job.
4752	//
4753	//    * Literal values (Optional): You can specify literal values anywhere in
4754	//    the ThumbnailPattern object. For example, you can include them as a file
4755	//    name prefix or as a delimiter between {resolution} and {count}.
4756	//
4757	//    * {resolution} (Optional): If you want Elastic Transcoder to include the
4758	//    resolution in the file name, include {resolution} in the ThumbnailPattern
4759	//    object.
4760	//
4761	// When creating thumbnails, Elastic Transcoder automatically saves the files
4762	// in the format (.jpg or .png) that appears in the preset that you specified
4763	// in the PresetID value of CreateJobOutput. Elastic Transcoder also appends
4764	// the applicable file name extension.
4765	ThumbnailPattern *string `type:"string"`
4766
4767	// Information about the watermarks that you want Elastic Transcoder to add
4768	// to the video during transcoding. You can specify up to four watermarks for
4769	// each output. Settings for each watermark must be defined in the preset that
4770	// you specify in Preset for the current output.
4771	//
4772	// Watermarks are added to the output video in the sequence in which you list
4773	// them in the job output—the first watermark in the list is added to the output
4774	// video first, the second watermark in the list is added next, and so on. As
4775	// a result, if the settings in a preset cause Elastic Transcoder to place all
4776	// watermarks in the same location, the second watermark that you add covers
4777	// the first one, the third one covers the second, and the fourth one covers
4778	// the third.
4779	Watermarks []*JobWatermark `type:"list"`
4780
4781	// Specifies the width of the output file in pixels.
4782	Width *int64 `type:"integer"`
4783}
4784
4785// String returns the string representation
4786func (s JobOutput) String() string {
4787	return awsutil.Prettify(s)
4788}
4789
4790// GoString returns the string representation
4791func (s JobOutput) GoString() string {
4792	return s.String()
4793}
4794
4795// SetAlbumArt sets the AlbumArt field's value.
4796func (s *JobOutput) SetAlbumArt(v *JobAlbumArt) *JobOutput {
4797	s.AlbumArt = v
4798	return s
4799}
4800
4801// SetAppliedColorSpaceConversion sets the AppliedColorSpaceConversion field's value.
4802func (s *JobOutput) SetAppliedColorSpaceConversion(v string) *JobOutput {
4803	s.AppliedColorSpaceConversion = &v
4804	return s
4805}
4806
4807// SetCaptions sets the Captions field's value.
4808func (s *JobOutput) SetCaptions(v *Captions) *JobOutput {
4809	s.Captions = v
4810	return s
4811}
4812
4813// SetComposition sets the Composition field's value.
4814func (s *JobOutput) SetComposition(v []*Clip) *JobOutput {
4815	s.Composition = v
4816	return s
4817}
4818
4819// SetDuration sets the Duration field's value.
4820func (s *JobOutput) SetDuration(v int64) *JobOutput {
4821	s.Duration = &v
4822	return s
4823}
4824
4825// SetDurationMillis sets the DurationMillis field's value.
4826func (s *JobOutput) SetDurationMillis(v int64) *JobOutput {
4827	s.DurationMillis = &v
4828	return s
4829}
4830
4831// SetEncryption sets the Encryption field's value.
4832func (s *JobOutput) SetEncryption(v *Encryption) *JobOutput {
4833	s.Encryption = v
4834	return s
4835}
4836
4837// SetFileSize sets the FileSize field's value.
4838func (s *JobOutput) SetFileSize(v int64) *JobOutput {
4839	s.FileSize = &v
4840	return s
4841}
4842
4843// SetFrameRate sets the FrameRate field's value.
4844func (s *JobOutput) SetFrameRate(v string) *JobOutput {
4845	s.FrameRate = &v
4846	return s
4847}
4848
4849// SetHeight sets the Height field's value.
4850func (s *JobOutput) SetHeight(v int64) *JobOutput {
4851	s.Height = &v
4852	return s
4853}
4854
4855// SetId sets the Id field's value.
4856func (s *JobOutput) SetId(v string) *JobOutput {
4857	s.Id = &v
4858	return s
4859}
4860
4861// SetKey sets the Key field's value.
4862func (s *JobOutput) SetKey(v string) *JobOutput {
4863	s.Key = &v
4864	return s
4865}
4866
4867// SetPresetId sets the PresetId field's value.
4868func (s *JobOutput) SetPresetId(v string) *JobOutput {
4869	s.PresetId = &v
4870	return s
4871}
4872
4873// SetRotate sets the Rotate field's value.
4874func (s *JobOutput) SetRotate(v string) *JobOutput {
4875	s.Rotate = &v
4876	return s
4877}
4878
4879// SetSegmentDuration sets the SegmentDuration field's value.
4880func (s *JobOutput) SetSegmentDuration(v string) *JobOutput {
4881	s.SegmentDuration = &v
4882	return s
4883}
4884
4885// SetStatus sets the Status field's value.
4886func (s *JobOutput) SetStatus(v string) *JobOutput {
4887	s.Status = &v
4888	return s
4889}
4890
4891// SetStatusDetail sets the StatusDetail field's value.
4892func (s *JobOutput) SetStatusDetail(v string) *JobOutput {
4893	s.StatusDetail = &v
4894	return s
4895}
4896
4897// SetThumbnailEncryption sets the ThumbnailEncryption field's value.
4898func (s *JobOutput) SetThumbnailEncryption(v *Encryption) *JobOutput {
4899	s.ThumbnailEncryption = v
4900	return s
4901}
4902
4903// SetThumbnailPattern sets the ThumbnailPattern field's value.
4904func (s *JobOutput) SetThumbnailPattern(v string) *JobOutput {
4905	s.ThumbnailPattern = &v
4906	return s
4907}
4908
4909// SetWatermarks sets the Watermarks field's value.
4910func (s *JobOutput) SetWatermarks(v []*JobWatermark) *JobOutput {
4911	s.Watermarks = v
4912	return s
4913}
4914
4915// SetWidth sets the Width field's value.
4916func (s *JobOutput) SetWidth(v int64) *JobOutput {
4917	s.Width = &v
4918	return s
4919}
4920
4921// Watermarks can be in .png or .jpg format. If you want to display a watermark
4922// that is not rectangular, use the .png format, which supports transparency.
4923type JobWatermark struct {
4924	_ struct{} `type:"structure"`
4925
4926	// The encryption settings, if any, that you want Elastic Transcoder to apply
4927	// to your watermarks.
4928	Encryption *Encryption `type:"structure"`
4929
4930	// The name of the .png or .jpg file that you want to use for the watermark.
4931	// To determine which Amazon S3 bucket contains the specified file, Elastic
4932	// Transcoder checks the pipeline specified by Pipeline; the Input Bucket object
4933	// in that pipeline identifies the bucket.
4934	//
4935	// If the file name includes a prefix, for example, logos/128x64.png, include
4936	// the prefix in the key. If the file isn't in the specified bucket, Elastic
4937	// Transcoder returns an error.
4938	InputKey *string `min:"1" type:"string"`
4939
4940	// The ID of the watermark settings that Elastic Transcoder uses to add watermarks
4941	// to the video during transcoding. The settings are in the preset specified
4942	// by Preset for the current output. In that preset, the value of Watermarks
4943	// Id tells Elastic Transcoder which settings to use.
4944	PresetWatermarkId *string `min:"1" type:"string"`
4945}
4946
4947// String returns the string representation
4948func (s JobWatermark) String() string {
4949	return awsutil.Prettify(s)
4950}
4951
4952// GoString returns the string representation
4953func (s JobWatermark) GoString() string {
4954	return s.String()
4955}
4956
4957// Validate inspects the fields of the type to determine if they are valid.
4958func (s *JobWatermark) Validate() error {
4959	invalidParams := request.ErrInvalidParams{Context: "JobWatermark"}
4960	if s.InputKey != nil && len(*s.InputKey) < 1 {
4961		invalidParams.Add(request.NewErrParamMinLen("InputKey", 1))
4962	}
4963	if s.PresetWatermarkId != nil && len(*s.PresetWatermarkId) < 1 {
4964		invalidParams.Add(request.NewErrParamMinLen("PresetWatermarkId", 1))
4965	}
4966
4967	if invalidParams.Len() > 0 {
4968		return invalidParams
4969	}
4970	return nil
4971}
4972
4973// SetEncryption sets the Encryption field's value.
4974func (s *JobWatermark) SetEncryption(v *Encryption) *JobWatermark {
4975	s.Encryption = v
4976	return s
4977}
4978
4979// SetInputKey sets the InputKey field's value.
4980func (s *JobWatermark) SetInputKey(v string) *JobWatermark {
4981	s.InputKey = &v
4982	return s
4983}
4984
4985// SetPresetWatermarkId sets the PresetWatermarkId field's value.
4986func (s *JobWatermark) SetPresetWatermarkId(v string) *JobWatermark {
4987	s.PresetWatermarkId = &v
4988	return s
4989}
4990
4991// The ListJobsByPipelineRequest structure.
4992type ListJobsByPipelineInput struct {
4993	_ struct{} `type:"structure"`
4994
4995	// To list jobs in chronological order by the date and time that they were submitted,
4996	// enter true. To list jobs in reverse chronological order, enter false.
4997	Ascending *string `location:"querystring" locationName:"Ascending" type:"string"`
4998
4999	// When Elastic Transcoder returns more than one page of results, use pageToken
5000	// in subsequent GET requests to get each successive page of results.
5001	PageToken *string `location:"querystring" locationName:"PageToken" type:"string"`
5002
5003	// The ID of the pipeline for which you want to get job information.
5004	//
5005	// PipelineId is a required field
5006	PipelineId *string `location:"uri" locationName:"PipelineId" type:"string" required:"true"`
5007}
5008
5009// String returns the string representation
5010func (s ListJobsByPipelineInput) String() string {
5011	return awsutil.Prettify(s)
5012}
5013
5014// GoString returns the string representation
5015func (s ListJobsByPipelineInput) GoString() string {
5016	return s.String()
5017}
5018
5019// Validate inspects the fields of the type to determine if they are valid.
5020func (s *ListJobsByPipelineInput) Validate() error {
5021	invalidParams := request.ErrInvalidParams{Context: "ListJobsByPipelineInput"}
5022	if s.PipelineId == nil {
5023		invalidParams.Add(request.NewErrParamRequired("PipelineId"))
5024	}
5025
5026	if invalidParams.Len() > 0 {
5027		return invalidParams
5028	}
5029	return nil
5030}
5031
5032// SetAscending sets the Ascending field's value.
5033func (s *ListJobsByPipelineInput) SetAscending(v string) *ListJobsByPipelineInput {
5034	s.Ascending = &v
5035	return s
5036}
5037
5038// SetPageToken sets the PageToken field's value.
5039func (s *ListJobsByPipelineInput) SetPageToken(v string) *ListJobsByPipelineInput {
5040	s.PageToken = &v
5041	return s
5042}
5043
5044// SetPipelineId sets the PipelineId field's value.
5045func (s *ListJobsByPipelineInput) SetPipelineId(v string) *ListJobsByPipelineInput {
5046	s.PipelineId = &v
5047	return s
5048}
5049
5050// The ListJobsByPipelineResponse structure.
5051type ListJobsByPipelineOutput struct {
5052	_ struct{} `type:"structure"`
5053
5054	// An array of Job objects that are in the specified pipeline.
5055	Jobs []*Job `type:"list"`
5056
5057	// A value that you use to access the second and subsequent pages of results,
5058	// if any. When the jobs in the specified pipeline fit on one page or when you've
5059	// reached the last page of results, the value of NextPageToken is null.
5060	NextPageToken *string `type:"string"`
5061}
5062
5063// String returns the string representation
5064func (s ListJobsByPipelineOutput) String() string {
5065	return awsutil.Prettify(s)
5066}
5067
5068// GoString returns the string representation
5069func (s ListJobsByPipelineOutput) GoString() string {
5070	return s.String()
5071}
5072
5073// SetJobs sets the Jobs field's value.
5074func (s *ListJobsByPipelineOutput) SetJobs(v []*Job) *ListJobsByPipelineOutput {
5075	s.Jobs = v
5076	return s
5077}
5078
5079// SetNextPageToken sets the NextPageToken field's value.
5080func (s *ListJobsByPipelineOutput) SetNextPageToken(v string) *ListJobsByPipelineOutput {
5081	s.NextPageToken = &v
5082	return s
5083}
5084
5085// The ListJobsByStatusRequest structure.
5086type ListJobsByStatusInput struct {
5087	_ struct{} `type:"structure"`
5088
5089	// To list jobs in chronological order by the date and time that they were submitted,
5090	// enter true. To list jobs in reverse chronological order, enter false.
5091	Ascending *string `location:"querystring" locationName:"Ascending" type:"string"`
5092
5093	// When Elastic Transcoder returns more than one page of results, use pageToken
5094	// in subsequent GET requests to get each successive page of results.
5095	PageToken *string `location:"querystring" locationName:"PageToken" type:"string"`
5096
5097	// To get information about all of the jobs associated with the current AWS
5098	// account that have a given status, specify the following status: Submitted,
5099	// Progressing, Complete, Canceled, or Error.
5100	//
5101	// Status is a required field
5102	Status *string `location:"uri" locationName:"Status" type:"string" required:"true"`
5103}
5104
5105// String returns the string representation
5106func (s ListJobsByStatusInput) String() string {
5107	return awsutil.Prettify(s)
5108}
5109
5110// GoString returns the string representation
5111func (s ListJobsByStatusInput) GoString() string {
5112	return s.String()
5113}
5114
5115// Validate inspects the fields of the type to determine if they are valid.
5116func (s *ListJobsByStatusInput) Validate() error {
5117	invalidParams := request.ErrInvalidParams{Context: "ListJobsByStatusInput"}
5118	if s.Status == nil {
5119		invalidParams.Add(request.NewErrParamRequired("Status"))
5120	}
5121
5122	if invalidParams.Len() > 0 {
5123		return invalidParams
5124	}
5125	return nil
5126}
5127
5128// SetAscending sets the Ascending field's value.
5129func (s *ListJobsByStatusInput) SetAscending(v string) *ListJobsByStatusInput {
5130	s.Ascending = &v
5131	return s
5132}
5133
5134// SetPageToken sets the PageToken field's value.
5135func (s *ListJobsByStatusInput) SetPageToken(v string) *ListJobsByStatusInput {
5136	s.PageToken = &v
5137	return s
5138}
5139
5140// SetStatus sets the Status field's value.
5141func (s *ListJobsByStatusInput) SetStatus(v string) *ListJobsByStatusInput {
5142	s.Status = &v
5143	return s
5144}
5145
5146// The ListJobsByStatusResponse structure.
5147type ListJobsByStatusOutput struct {
5148	_ struct{} `type:"structure"`
5149
5150	// An array of Job objects that have the specified status.
5151	Jobs []*Job `type:"list"`
5152
5153	// A value that you use to access the second and subsequent pages of results,
5154	// if any. When the jobs in the specified pipeline fit on one page or when you've
5155	// reached the last page of results, the value of NextPageToken is null.
5156	NextPageToken *string `type:"string"`
5157}
5158
5159// String returns the string representation
5160func (s ListJobsByStatusOutput) String() string {
5161	return awsutil.Prettify(s)
5162}
5163
5164// GoString returns the string representation
5165func (s ListJobsByStatusOutput) GoString() string {
5166	return s.String()
5167}
5168
5169// SetJobs sets the Jobs field's value.
5170func (s *ListJobsByStatusOutput) SetJobs(v []*Job) *ListJobsByStatusOutput {
5171	s.Jobs = v
5172	return s
5173}
5174
5175// SetNextPageToken sets the NextPageToken field's value.
5176func (s *ListJobsByStatusOutput) SetNextPageToken(v string) *ListJobsByStatusOutput {
5177	s.NextPageToken = &v
5178	return s
5179}
5180
5181// The ListPipelineRequest structure.
5182type ListPipelinesInput struct {
5183	_ struct{} `type:"structure"`
5184
5185	// To list pipelines in chronological order by the date and time that they were
5186	// created, enter true. To list pipelines in reverse chronological order, enter
5187	// false.
5188	Ascending *string `location:"querystring" locationName:"Ascending" type:"string"`
5189
5190	// When Elastic Transcoder returns more than one page of results, use pageToken
5191	// in subsequent GET requests to get each successive page of results.
5192	PageToken *string `location:"querystring" locationName:"PageToken" type:"string"`
5193}
5194
5195// String returns the string representation
5196func (s ListPipelinesInput) String() string {
5197	return awsutil.Prettify(s)
5198}
5199
5200// GoString returns the string representation
5201func (s ListPipelinesInput) GoString() string {
5202	return s.String()
5203}
5204
5205// SetAscending sets the Ascending field's value.
5206func (s *ListPipelinesInput) SetAscending(v string) *ListPipelinesInput {
5207	s.Ascending = &v
5208	return s
5209}
5210
5211// SetPageToken sets the PageToken field's value.
5212func (s *ListPipelinesInput) SetPageToken(v string) *ListPipelinesInput {
5213	s.PageToken = &v
5214	return s
5215}
5216
5217// A list of the pipelines associated with the current AWS account.
5218type ListPipelinesOutput struct {
5219	_ struct{} `type:"structure"`
5220
5221	// A value that you use to access the second and subsequent pages of results,
5222	// if any. When the pipelines fit on one page or when you've reached the last
5223	// page of results, the value of NextPageToken is null.
5224	NextPageToken *string `type:"string"`
5225
5226	// An array of Pipeline objects.
5227	Pipelines []*Pipeline `type:"list"`
5228}
5229
5230// String returns the string representation
5231func (s ListPipelinesOutput) String() string {
5232	return awsutil.Prettify(s)
5233}
5234
5235// GoString returns the string representation
5236func (s ListPipelinesOutput) GoString() string {
5237	return s.String()
5238}
5239
5240// SetNextPageToken sets the NextPageToken field's value.
5241func (s *ListPipelinesOutput) SetNextPageToken(v string) *ListPipelinesOutput {
5242	s.NextPageToken = &v
5243	return s
5244}
5245
5246// SetPipelines sets the Pipelines field's value.
5247func (s *ListPipelinesOutput) SetPipelines(v []*Pipeline) *ListPipelinesOutput {
5248	s.Pipelines = v
5249	return s
5250}
5251
5252// The ListPresetsRequest structure.
5253type ListPresetsInput struct {
5254	_ struct{} `type:"structure"`
5255
5256	// To list presets in chronological order by the date and time that they were
5257	// created, enter true. To list presets in reverse chronological order, enter
5258	// false.
5259	Ascending *string `location:"querystring" locationName:"Ascending" type:"string"`
5260
5261	// When Elastic Transcoder returns more than one page of results, use pageToken
5262	// in subsequent GET requests to get each successive page of results.
5263	PageToken *string `location:"querystring" locationName:"PageToken" type:"string"`
5264}
5265
5266// String returns the string representation
5267func (s ListPresetsInput) String() string {
5268	return awsutil.Prettify(s)
5269}
5270
5271// GoString returns the string representation
5272func (s ListPresetsInput) GoString() string {
5273	return s.String()
5274}
5275
5276// SetAscending sets the Ascending field's value.
5277func (s *ListPresetsInput) SetAscending(v string) *ListPresetsInput {
5278	s.Ascending = &v
5279	return s
5280}
5281
5282// SetPageToken sets the PageToken field's value.
5283func (s *ListPresetsInput) SetPageToken(v string) *ListPresetsInput {
5284	s.PageToken = &v
5285	return s
5286}
5287
5288// The ListPresetsResponse structure.
5289type ListPresetsOutput struct {
5290	_ struct{} `type:"structure"`
5291
5292	// A value that you use to access the second and subsequent pages of results,
5293	// if any. When the presets fit on one page or when you've reached the last
5294	// page of results, the value of NextPageToken is null.
5295	NextPageToken *string `type:"string"`
5296
5297	// An array of Preset objects.
5298	Presets []*Preset `type:"list"`
5299}
5300
5301// String returns the string representation
5302func (s ListPresetsOutput) String() string {
5303	return awsutil.Prettify(s)
5304}
5305
5306// GoString returns the string representation
5307func (s ListPresetsOutput) GoString() string {
5308	return s.String()
5309}
5310
5311// SetNextPageToken sets the NextPageToken field's value.
5312func (s *ListPresetsOutput) SetNextPageToken(v string) *ListPresetsOutput {
5313	s.NextPageToken = &v
5314	return s
5315}
5316
5317// SetPresets sets the Presets field's value.
5318func (s *ListPresetsOutput) SetPresets(v []*Preset) *ListPresetsOutput {
5319	s.Presets = v
5320	return s
5321}
5322
5323// The Amazon Simple Notification Service (Amazon SNS) topic or topics to notify
5324// in order to report job status.
5325//
5326// To receive notifications, you must also subscribe to the new topic in the
5327// Amazon SNS console.
5328type Notifications struct {
5329	_ struct{} `type:"structure"`
5330
5331	// The Amazon SNS topic that you want to notify when Elastic Transcoder has
5332	// finished processing the job.
5333	Completed *string `type:"string"`
5334
5335	// The Amazon SNS topic that you want to notify when Elastic Transcoder encounters
5336	// an error condition.
5337	Error *string `type:"string"`
5338
5339	// The Amazon Simple Notification Service (Amazon SNS) topic that you want to
5340	// notify when Elastic Transcoder has started to process the job.
5341	Progressing *string `type:"string"`
5342
5343	// The Amazon SNS topic that you want to notify when Elastic Transcoder encounters
5344	// a warning condition.
5345	Warning *string `type:"string"`
5346}
5347
5348// String returns the string representation
5349func (s Notifications) String() string {
5350	return awsutil.Prettify(s)
5351}
5352
5353// GoString returns the string representation
5354func (s Notifications) GoString() string {
5355	return s.String()
5356}
5357
5358// SetCompleted sets the Completed field's value.
5359func (s *Notifications) SetCompleted(v string) *Notifications {
5360	s.Completed = &v
5361	return s
5362}
5363
5364// SetError sets the Error field's value.
5365func (s *Notifications) SetError(v string) *Notifications {
5366	s.Error = &v
5367	return s
5368}
5369
5370// SetProgressing sets the Progressing field's value.
5371func (s *Notifications) SetProgressing(v string) *Notifications {
5372	s.Progressing = &v
5373	return s
5374}
5375
5376// SetWarning sets the Warning field's value.
5377func (s *Notifications) SetWarning(v string) *Notifications {
5378	s.Warning = &v
5379	return s
5380}
5381
5382// The Permission structure.
5383type Permission struct {
5384	_ struct{} `type:"structure"`
5385
5386	// The permission that you want to give to the AWS user that is listed in Grantee.
5387	// Valid values include:
5388	//
5389	//    * READ: The grantee can read the thumbnails and metadata for thumbnails
5390	//    that Elastic Transcoder adds to the Amazon S3 bucket.
5391	//
5392	//    * READ_ACP: The grantee can read the object ACL for thumbnails that Elastic
5393	//    Transcoder adds to the Amazon S3 bucket.
5394	//
5395	//    * WRITE_ACP: The grantee can write the ACL for the thumbnails that Elastic
5396	//    Transcoder adds to the Amazon S3 bucket.
5397	//
5398	//    * FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP permissions
5399	//    for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
5400	Access []*string `type:"list"`
5401
5402	// The AWS user or group that you want to have access to transcoded files and
5403	// playlists. To identify the user or group, you can specify the canonical user
5404	// ID for an AWS account, an origin access identity for a CloudFront distribution,
5405	// the registered email address of an AWS account, or a predefined Amazon S3
5406	// group.
5407	Grantee *string `min:"1" type:"string"`
5408
5409	// The type of value that appears in the Grantee object:
5410	//
5411	//    * Canonical: Either the canonical user ID for an AWS account or an origin
5412	//    access identity for an Amazon CloudFront distribution.
5413	//
5414	// A canonical user ID is not the same as an AWS account number.
5415	//
5416	//    * Email: The registered email address of an AWS account.
5417	//
5418	//    * Group: One of the following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers,
5419	//    or LogDelivery.
5420	GranteeType *string `type:"string"`
5421}
5422
5423// String returns the string representation
5424func (s Permission) String() string {
5425	return awsutil.Prettify(s)
5426}
5427
5428// GoString returns the string representation
5429func (s Permission) GoString() string {
5430	return s.String()
5431}
5432
5433// Validate inspects the fields of the type to determine if they are valid.
5434func (s *Permission) Validate() error {
5435	invalidParams := request.ErrInvalidParams{Context: "Permission"}
5436	if s.Grantee != nil && len(*s.Grantee) < 1 {
5437		invalidParams.Add(request.NewErrParamMinLen("Grantee", 1))
5438	}
5439
5440	if invalidParams.Len() > 0 {
5441		return invalidParams
5442	}
5443	return nil
5444}
5445
5446// SetAccess sets the Access field's value.
5447func (s *Permission) SetAccess(v []*string) *Permission {
5448	s.Access = v
5449	return s
5450}
5451
5452// SetGrantee sets the Grantee field's value.
5453func (s *Permission) SetGrantee(v string) *Permission {
5454	s.Grantee = &v
5455	return s
5456}
5457
5458// SetGranteeType sets the GranteeType field's value.
5459func (s *Permission) SetGranteeType(v string) *Permission {
5460	s.GranteeType = &v
5461	return s
5462}
5463
5464// The pipeline (queue) that is used to manage jobs.
5465type Pipeline struct {
5466	_ struct{} `type:"structure"`
5467
5468	// The Amazon Resource Name (ARN) for the pipeline.
5469	Arn *string `type:"string"`
5470
5471	// The AWS Key Management Service (AWS KMS) key that you want to use with this
5472	// pipeline.
5473	//
5474	// If you use either S3 or S3-AWS-KMS as your Encryption:Mode, you don't need
5475	// to provide a key with your job because a default key, known as an AWS-KMS
5476	// key, is created for you automatically. You need to provide an AWS-KMS key
5477	// only if you want to use a non-default AWS-KMS key, or if you are using an
5478	// Encryption:Mode of AES-PKCS7, AES-CTR, or AES-GCM.
5479	AwsKmsKeyArn *string `type:"string"`
5480
5481	// Information about the Amazon S3 bucket in which you want Elastic Transcoder
5482	// to save transcoded files and playlists. Either you specify both ContentConfig
5483	// and ThumbnailConfig, or you specify OutputBucket.
5484	//
5485	//    * Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to
5486	//    save transcoded files and playlists.
5487	//
5488	//    * Permissions: A list of the users and/or predefined Amazon S3 groups
5489	//    you want to have access to transcoded files and playlists, and the type
5490	//    of access that you want them to have.
5491	//
5492	// GranteeType: The type of value that appears in the Grantee object:
5493	//
5494	// Canonical: Either the canonical user ID for an AWS account or an origin access
5495	//    identity for an Amazon CloudFront distribution.
5496	//
5497	// Email: The registered email address of an AWS account.
5498	//
5499	// Group: One of the following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers,
5500	//    or LogDelivery.
5501	//
5502	// Grantee: The AWS user or group that you want to have access to transcoded
5503	//    files and playlists.
5504	//
5505	// Access: The permission that you want to give to the AWS user that is listed
5506	//    in Grantee. Valid values include:
5507	//
5508	// READ: The grantee can read the objects and metadata for objects that Elastic
5509	//    Transcoder adds to the Amazon S3 bucket.
5510	//
5511	// READ_ACP: The grantee can read the object ACL for objects that Elastic Transcoder
5512	//    adds to the Amazon S3 bucket.
5513	//
5514	// WRITE_ACP: The grantee can write the ACL for the objects that Elastic Transcoder
5515	//    adds to the Amazon S3 bucket.
5516	//
5517	// FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP permissions for
5518	//    the objects that Elastic Transcoder adds to the Amazon S3 bucket.
5519	//
5520	//    * StorageClass: The Amazon S3 storage class, Standard or ReducedRedundancy,
5521	//    that you want Elastic Transcoder to assign to the video files and playlists
5522	//    that it stores in your Amazon S3 bucket.
5523	ContentConfig *PipelineOutputConfig `type:"structure"`
5524
5525	// The identifier for the pipeline. You use this value to identify the pipeline
5526	// in which you want to perform a variety of operations, such as creating a
5527	// job or a preset.
5528	Id *string `type:"string"`
5529
5530	// The Amazon S3 bucket from which Elastic Transcoder gets media files for transcoding
5531	// and the graphics files, if any, that you want to use for watermarks.
5532	InputBucket *string `type:"string"`
5533
5534	// The name of the pipeline. We recommend that the name be unique within the
5535	// AWS account, but uniqueness is not enforced.
5536	//
5537	// Constraints: Maximum 40 characters
5538	Name *string `min:"1" type:"string"`
5539
5540	// The Amazon Simple Notification Service (Amazon SNS) topic that you want to
5541	// notify to report job status.
5542	//
5543	// To receive notifications, you must also subscribe to the new topic in the
5544	// Amazon SNS console.
5545	//
5546	//    * Progressing (optional): The Amazon Simple Notification Service (Amazon
5547	//    SNS) topic that you want to notify when Elastic Transcoder has started
5548	//    to process the job.
5549	//
5550	//    * Completed (optional): The Amazon SNS topic that you want to notify when
5551	//    Elastic Transcoder has finished processing the job.
5552	//
5553	//    * Warning (optional): The Amazon SNS topic that you want to notify when
5554	//    Elastic Transcoder encounters a warning condition.
5555	//
5556	//    * Error (optional): The Amazon SNS topic that you want to notify when
5557	//    Elastic Transcoder encounters an error condition.
5558	Notifications *Notifications `type:"structure"`
5559
5560	// The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded
5561	// files, thumbnails, and playlists. Either you specify this value, or you specify
5562	// both ContentConfig and ThumbnailConfig.
5563	OutputBucket *string `type:"string"`
5564
5565	// The IAM Amazon Resource Name (ARN) for the role that Elastic Transcoder uses
5566	// to transcode jobs for this pipeline.
5567	Role *string `type:"string"`
5568
5569	// The current status of the pipeline:
5570	//
5571	//    * Active: The pipeline is processing jobs.
5572	//
5573	//    * Paused: The pipeline is not currently processing jobs.
5574	Status *string `type:"string"`
5575
5576	// Information about the Amazon S3 bucket in which you want Elastic Transcoder
5577	// to save thumbnail files. Either you specify both ContentConfig and ThumbnailConfig,
5578	// or you specify OutputBucket.
5579	//
5580	//    * Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to
5581	//    save thumbnail files.
5582	//
5583	//    * Permissions: A list of the users and/or predefined Amazon S3 groups
5584	//    you want to have access to thumbnail files, and the type of access that
5585	//    you want them to have.
5586	//
5587	// GranteeType: The type of value that appears in the Grantee object:
5588	//
5589	// Canonical: Either the canonical user ID for an AWS account or an origin access
5590	//    identity for an Amazon CloudFront distribution.
5591	//
5592	// A canonical user ID is not the same as an AWS account number.
5593	//
5594	// Email: The registered email address of an AWS account.
5595	//
5596	// Group: One of the following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers,
5597	//    or LogDelivery.
5598	//
5599	// Grantee: The AWS user or group that you want to have access to thumbnail
5600	//    files.
5601	//
5602	// Access: The permission that you want to give to the AWS user that is listed
5603	//    in Grantee. Valid values include:
5604	//
5605	// READ: The grantee can read the thumbnails and metadata for thumbnails that
5606	//    Elastic Transcoder adds to the Amazon S3 bucket.
5607	//
5608	// READ_ACP: The grantee can read the object ACL for thumbnails that Elastic
5609	//    Transcoder adds to the Amazon S3 bucket.
5610	//
5611	// WRITE_ACP: The grantee can write the ACL for the thumbnails that Elastic
5612	//    Transcoder adds to the Amazon S3 bucket.
5613	//
5614	// FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP permissions for
5615	//    the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
5616	//
5617	//    * StorageClass: The Amazon S3 storage class, Standard or ReducedRedundancy,
5618	//    that you want Elastic Transcoder to assign to the thumbnails that it stores
5619	//    in your Amazon S3 bucket.
5620	ThumbnailConfig *PipelineOutputConfig `type:"structure"`
5621}
5622
5623// String returns the string representation
5624func (s Pipeline) String() string {
5625	return awsutil.Prettify(s)
5626}
5627
5628// GoString returns the string representation
5629func (s Pipeline) GoString() string {
5630	return s.String()
5631}
5632
5633// SetArn sets the Arn field's value.
5634func (s *Pipeline) SetArn(v string) *Pipeline {
5635	s.Arn = &v
5636	return s
5637}
5638
5639// SetAwsKmsKeyArn sets the AwsKmsKeyArn field's value.
5640func (s *Pipeline) SetAwsKmsKeyArn(v string) *Pipeline {
5641	s.AwsKmsKeyArn = &v
5642	return s
5643}
5644
5645// SetContentConfig sets the ContentConfig field's value.
5646func (s *Pipeline) SetContentConfig(v *PipelineOutputConfig) *Pipeline {
5647	s.ContentConfig = v
5648	return s
5649}
5650
5651// SetId sets the Id field's value.
5652func (s *Pipeline) SetId(v string) *Pipeline {
5653	s.Id = &v
5654	return s
5655}
5656
5657// SetInputBucket sets the InputBucket field's value.
5658func (s *Pipeline) SetInputBucket(v string) *Pipeline {
5659	s.InputBucket = &v
5660	return s
5661}
5662
5663// SetName sets the Name field's value.
5664func (s *Pipeline) SetName(v string) *Pipeline {
5665	s.Name = &v
5666	return s
5667}
5668
5669// SetNotifications sets the Notifications field's value.
5670func (s *Pipeline) SetNotifications(v *Notifications) *Pipeline {
5671	s.Notifications = v
5672	return s
5673}
5674
5675// SetOutputBucket sets the OutputBucket field's value.
5676func (s *Pipeline) SetOutputBucket(v string) *Pipeline {
5677	s.OutputBucket = &v
5678	return s
5679}
5680
5681// SetRole sets the Role field's value.
5682func (s *Pipeline) SetRole(v string) *Pipeline {
5683	s.Role = &v
5684	return s
5685}
5686
5687// SetStatus sets the Status field's value.
5688func (s *Pipeline) SetStatus(v string) *Pipeline {
5689	s.Status = &v
5690	return s
5691}
5692
5693// SetThumbnailConfig sets the ThumbnailConfig field's value.
5694func (s *Pipeline) SetThumbnailConfig(v *PipelineOutputConfig) *Pipeline {
5695	s.ThumbnailConfig = v
5696	return s
5697}
5698
5699// The PipelineOutputConfig structure.
5700type PipelineOutputConfig struct {
5701	_ struct{} `type:"structure"`
5702
5703	// The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded
5704	// files. Specify this value when all of the following are true:
5705	//
5706	//    * You want to save transcoded files, thumbnails (if any), and playlists
5707	//    (if any) together in one bucket.
5708	//
5709	//    * You do not want to specify the users or groups who have access to the
5710	//    transcoded files, thumbnails, and playlists.
5711	//
5712	//    * You do not want to specify the permissions that Elastic Transcoder grants
5713	//    to the files.
5714	//
5715	//    * You want to associate the transcoded files and thumbnails with the Amazon
5716	//    S3 Standard storage class.
5717	//
5718	// If you want to save transcoded files and playlists in one bucket and thumbnails
5719	// in another bucket, specify which users can access the transcoded files or
5720	// the permissions the users have, or change the Amazon S3 storage class, omit
5721	// OutputBucket and specify values for ContentConfig and ThumbnailConfig instead.
5722	Bucket *string `type:"string"`
5723
5724	// Optional. The Permissions object specifies which users and/or predefined
5725	// Amazon S3 groups you want to have access to transcoded files and playlists,
5726	// and the type of access you want them to have. You can grant permissions to
5727	// a maximum of 30 users and/or predefined Amazon S3 groups.
5728	//
5729	// If you include Permissions, Elastic Transcoder grants only the permissions
5730	// that you specify. It does not grant full permissions to the owner of the
5731	// role specified by Role. If you want that user to have full control, you must
5732	// explicitly grant full control to the user.
5733	//
5734	// If you omit Permissions, Elastic Transcoder grants full control over the
5735	// transcoded files and playlists to the owner of the role specified by Role,
5736	// and grants no other permissions to any other user or group.
5737	Permissions []*Permission `type:"list"`
5738
5739	// The Amazon S3 storage class, Standard or ReducedRedundancy, that you want
5740	// Elastic Transcoder to assign to the video files and playlists that it stores
5741	// in your Amazon S3 bucket.
5742	StorageClass *string `type:"string"`
5743}
5744
5745// String returns the string representation
5746func (s PipelineOutputConfig) String() string {
5747	return awsutil.Prettify(s)
5748}
5749
5750// GoString returns the string representation
5751func (s PipelineOutputConfig) GoString() string {
5752	return s.String()
5753}
5754
5755// Validate inspects the fields of the type to determine if they are valid.
5756func (s *PipelineOutputConfig) Validate() error {
5757	invalidParams := request.ErrInvalidParams{Context: "PipelineOutputConfig"}
5758	if s.Permissions != nil {
5759		for i, v := range s.Permissions {
5760			if v == nil {
5761				continue
5762			}
5763			if err := v.Validate(); err != nil {
5764				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Permissions", i), err.(request.ErrInvalidParams))
5765			}
5766		}
5767	}
5768
5769	if invalidParams.Len() > 0 {
5770		return invalidParams
5771	}
5772	return nil
5773}
5774
5775// SetBucket sets the Bucket field's value.
5776func (s *PipelineOutputConfig) SetBucket(v string) *PipelineOutputConfig {
5777	s.Bucket = &v
5778	return s
5779}
5780
5781// SetPermissions sets the Permissions field's value.
5782func (s *PipelineOutputConfig) SetPermissions(v []*Permission) *PipelineOutputConfig {
5783	s.Permissions = v
5784	return s
5785}
5786
5787// SetStorageClass sets the StorageClass field's value.
5788func (s *PipelineOutputConfig) SetStorageClass(v string) *PipelineOutputConfig {
5789	s.StorageClass = &v
5790	return s
5791}
5792
5793// The PlayReady DRM settings, if any, that you want Elastic Transcoder to apply
5794// to the output files associated with this playlist.
5795//
5796// PlayReady DRM encrypts your media files using AES-CTR encryption.
5797//
5798// If you use DRM for an HLSv3 playlist, your outputs must have a master playlist.
5799type PlayReadyDrm struct {
5800	_ struct{} `type:"structure"`
5801
5802	// The type of DRM, if any, that you want Elastic Transcoder to apply to the
5803	// output files associated with this playlist.
5804	Format *string `type:"string"`
5805
5806	// The series of random bits created by a random bit generator, unique for every
5807	// encryption operation, that you want Elastic Transcoder to use to encrypt
5808	// your files. The initialization vector must be base64-encoded, and it must
5809	// be exactly 8 bytes long before being base64-encoded. If no initialization
5810	// vector is provided, Elastic Transcoder generates one for you.
5811	InitializationVector *string `type:"string"`
5812
5813	// The DRM key for your file, provided by your DRM license provider. The key
5814	// must be base64-encoded, and it must be one of the following bit lengths before
5815	// being base64-encoded:
5816	//
5817	// 128, 192, or 256.
5818	//
5819	// The key must also be encrypted by using AWS KMS.
5820	Key *string `type:"string"`
5821
5822	// The ID for your DRM key, so that your DRM license provider knows which key
5823	// to provide.
5824	//
5825	// The key ID must be provided in big endian, and Elastic Transcoder converts
5826	// it to little endian before inserting it into the PlayReady DRM headers. If
5827	// you are unsure whether your license server provides your key ID in big or
5828	// little endian, check with your DRM provider.
5829	KeyId *string `type:"string"`
5830
5831	// The MD5 digest of the key used for DRM on your file, and that you want Elastic
5832	// Transcoder to use as a checksum to make sure your key was not corrupted in
5833	// transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes
5834	// before being base64-encoded.
5835	KeyMd5 *string `type:"string"`
5836
5837	// The location of the license key required to play DRM content. The URL must
5838	// be an absolute path, and is referenced by the PlayReady header. The PlayReady
5839	// header is referenced in the protection header of the client manifest for
5840	// Smooth Streaming outputs, and in the EXT-X-DXDRM and EXT-XDXDRMINFO metadata
5841	// tags for HLS playlist outputs. An example URL looks like this: https://www.example.com/exampleKey/
5842	LicenseAcquisitionUrl *string `min:"1" type:"string"`
5843}
5844
5845// String returns the string representation
5846func (s PlayReadyDrm) String() string {
5847	return awsutil.Prettify(s)
5848}
5849
5850// GoString returns the string representation
5851func (s PlayReadyDrm) GoString() string {
5852	return s.String()
5853}
5854
5855// Validate inspects the fields of the type to determine if they are valid.
5856func (s *PlayReadyDrm) Validate() error {
5857	invalidParams := request.ErrInvalidParams{Context: "PlayReadyDrm"}
5858	if s.LicenseAcquisitionUrl != nil && len(*s.LicenseAcquisitionUrl) < 1 {
5859		invalidParams.Add(request.NewErrParamMinLen("LicenseAcquisitionUrl", 1))
5860	}
5861
5862	if invalidParams.Len() > 0 {
5863		return invalidParams
5864	}
5865	return nil
5866}
5867
5868// SetFormat sets the Format field's value.
5869func (s *PlayReadyDrm) SetFormat(v string) *PlayReadyDrm {
5870	s.Format = &v
5871	return s
5872}
5873
5874// SetInitializationVector sets the InitializationVector field's value.
5875func (s *PlayReadyDrm) SetInitializationVector(v string) *PlayReadyDrm {
5876	s.InitializationVector = &v
5877	return s
5878}
5879
5880// SetKey sets the Key field's value.
5881func (s *PlayReadyDrm) SetKey(v string) *PlayReadyDrm {
5882	s.Key = &v
5883	return s
5884}
5885
5886// SetKeyId sets the KeyId field's value.
5887func (s *PlayReadyDrm) SetKeyId(v string) *PlayReadyDrm {
5888	s.KeyId = &v
5889	return s
5890}
5891
5892// SetKeyMd5 sets the KeyMd5 field's value.
5893func (s *PlayReadyDrm) SetKeyMd5(v string) *PlayReadyDrm {
5894	s.KeyMd5 = &v
5895	return s
5896}
5897
5898// SetLicenseAcquisitionUrl sets the LicenseAcquisitionUrl field's value.
5899func (s *PlayReadyDrm) SetLicenseAcquisitionUrl(v string) *PlayReadyDrm {
5900	s.LicenseAcquisitionUrl = &v
5901	return s
5902}
5903
5904// Use Only for Fragmented MP4 or MPEG-TS Outputs. If you specify a preset for
5905// which the value of Container is fmp4 (Fragmented MP4) or ts (MPEG-TS), Playlists
5906// contains information about the master playlists that you want Elastic Transcoder
5907// to create. We recommend that you create only one master playlist per output
5908// format. The maximum number of master playlists in a job is 30.
5909type Playlist struct {
5910	_ struct{} `type:"structure"`
5911
5912	// The format of the output playlist. Valid formats include HLSv3, HLSv4, and
5913	// Smooth.
5914	Format *string `type:"string"`
5915
5916	// The HLS content protection settings, if any, that you want Elastic Transcoder
5917	// to apply to the output files associated with this playlist.
5918	HlsContentProtection *HlsContentProtection `type:"structure"`
5919
5920	// The name that you want Elastic Transcoder to assign to the master playlist,
5921	// for example, nyc-vacation.m3u8. If the name includes a / character, the section
5922	// of the name before the last / must be identical for all Name objects. If
5923	// you create more than one master playlist, the values of all Name objects
5924	// must be unique.
5925	//
5926	// Elastic Transcoder automatically appends the relevant file extension to the
5927	// file name (.m3u8 for HLSv3 and HLSv4 playlists, and .ism and .ismc for Smooth
5928	// playlists). If you include a file extension in Name, the file name will have
5929	// two extensions.
5930	Name *string `min:"1" type:"string"`
5931
5932	// For each output in this job that you want to include in a master playlist,
5933	// the value of the Outputs:Key object.
5934	//
5935	//    * If your output is not HLS or does not have a segment duration set, the
5936	//    name of the output file is a concatenation of OutputKeyPrefix and Outputs:Key:
5937	//
5938	// OutputKeyPrefixOutputs:Key
5939	//
5940	//    * If your output is HLSv3 and has a segment duration set, or is not included
5941	//    in a playlist, Elastic Transcoder creates an output playlist file with
5942	//    a file extension of .m3u8, and a series of .ts files that include a five-digit
5943	//    sequential counter beginning with 00000:
5944	//
5945	// OutputKeyPrefixOutputs:Key.m3u8
5946	//
5947	// OutputKeyPrefixOutputs:Key00000.ts
5948	//
5949	//    * If your output is HLSv4, has a segment duration set, and is included
5950	//    in an HLSv4 playlist, Elastic Transcoder creates an output playlist file
5951	//    with a file extension of _v4.m3u8. If the output is video, Elastic Transcoder
5952	//    also creates an output file with an extension of _iframe.m3u8:
5953	//
5954	// OutputKeyPrefixOutputs:Key_v4.m3u8
5955	//
5956	// OutputKeyPrefixOutputs:Key_iframe.m3u8
5957	//
5958	// OutputKeyPrefixOutputs:Key.ts
5959	//
5960	// Elastic Transcoder automatically appends the relevant file extension to the
5961	// file name. If you include a file extension in Output Key, the file name will
5962	// have two extensions.
5963	//
5964	// If you include more than one output in a playlist, any segment duration settings,
5965	// clip settings, or caption settings must be the same for all outputs in the
5966	// playlist. For Smooth playlists, the Audio:Profile, Video:Profile, and Video:FrameRate
5967	// to Video:KeyframesMaxDist ratio must be the same for all outputs.
5968	OutputKeys []*string `type:"list"`
5969
5970	// The DRM settings, if any, that you want Elastic Transcoder to apply to the
5971	// output files associated with this playlist.
5972	PlayReadyDrm *PlayReadyDrm `type:"structure"`
5973
5974	// The status of the job with which the playlist is associated.
5975	Status *string `type:"string"`
5976
5977	// Information that further explains the status.
5978	StatusDetail *string `type:"string"`
5979}
5980
5981// String returns the string representation
5982func (s Playlist) String() string {
5983	return awsutil.Prettify(s)
5984}
5985
5986// GoString returns the string representation
5987func (s Playlist) GoString() string {
5988	return s.String()
5989}
5990
5991// SetFormat sets the Format field's value.
5992func (s *Playlist) SetFormat(v string) *Playlist {
5993	s.Format = &v
5994	return s
5995}
5996
5997// SetHlsContentProtection sets the HlsContentProtection field's value.
5998func (s *Playlist) SetHlsContentProtection(v *HlsContentProtection) *Playlist {
5999	s.HlsContentProtection = v
6000	return s
6001}
6002
6003// SetName sets the Name field's value.
6004func (s *Playlist) SetName(v string) *Playlist {
6005	s.Name = &v
6006	return s
6007}
6008
6009// SetOutputKeys sets the OutputKeys field's value.
6010func (s *Playlist) SetOutputKeys(v []*string) *Playlist {
6011	s.OutputKeys = v
6012	return s
6013}
6014
6015// SetPlayReadyDrm sets the PlayReadyDrm field's value.
6016func (s *Playlist) SetPlayReadyDrm(v *PlayReadyDrm) *Playlist {
6017	s.PlayReadyDrm = v
6018	return s
6019}
6020
6021// SetStatus sets the Status field's value.
6022func (s *Playlist) SetStatus(v string) *Playlist {
6023	s.Status = &v
6024	return s
6025}
6026
6027// SetStatusDetail sets the StatusDetail field's value.
6028func (s *Playlist) SetStatusDetail(v string) *Playlist {
6029	s.StatusDetail = &v
6030	return s
6031}
6032
6033// Presets are templates that contain most of the settings for transcoding media
6034// files from one format to another. Elastic Transcoder includes some default
6035// presets for common formats, for example, several iPod and iPhone versions.
6036// You can also create your own presets for formats that aren't included among
6037// the default presets. You specify which preset you want to use when you create
6038// a job.
6039type Preset struct {
6040	_ struct{} `type:"structure"`
6041
6042	// The Amazon Resource Name (ARN) for the preset.
6043	Arn *string `type:"string"`
6044
6045	// A section of the response body that provides information about the audio
6046	// preset values.
6047	Audio *AudioParameters `type:"structure"`
6048
6049	// The container type for the output file. Valid values include flac, flv, fmp4,
6050	// gif, mp3, mp4, mpg, mxf, oga, ogg, ts, and webm.
6051	Container *string `type:"string"`
6052
6053	// A description of the preset.
6054	Description *string `type:"string"`
6055
6056	// Identifier for the new preset. You use this value to get settings for the
6057	// preset or to delete it.
6058	Id *string `type:"string"`
6059
6060	// The name of the preset.
6061	Name *string `min:"1" type:"string"`
6062
6063	// A section of the response body that provides information about the thumbnail
6064	// preset values, if any.
6065	Thumbnails *Thumbnails `type:"structure"`
6066
6067	// Whether the preset is a default preset provided by Elastic Transcoder (System)
6068	// or a preset that you have defined (Custom).
6069	Type *string `type:"string"`
6070
6071	// A section of the response body that provides information about the video
6072	// preset values.
6073	Video *VideoParameters `type:"structure"`
6074}
6075
6076// String returns the string representation
6077func (s Preset) String() string {
6078	return awsutil.Prettify(s)
6079}
6080
6081// GoString returns the string representation
6082func (s Preset) GoString() string {
6083	return s.String()
6084}
6085
6086// SetArn sets the Arn field's value.
6087func (s *Preset) SetArn(v string) *Preset {
6088	s.Arn = &v
6089	return s
6090}
6091
6092// SetAudio sets the Audio field's value.
6093func (s *Preset) SetAudio(v *AudioParameters) *Preset {
6094	s.Audio = v
6095	return s
6096}
6097
6098// SetContainer sets the Container field's value.
6099func (s *Preset) SetContainer(v string) *Preset {
6100	s.Container = &v
6101	return s
6102}
6103
6104// SetDescription sets the Description field's value.
6105func (s *Preset) SetDescription(v string) *Preset {
6106	s.Description = &v
6107	return s
6108}
6109
6110// SetId sets the Id field's value.
6111func (s *Preset) SetId(v string) *Preset {
6112	s.Id = &v
6113	return s
6114}
6115
6116// SetName sets the Name field's value.
6117func (s *Preset) SetName(v string) *Preset {
6118	s.Name = &v
6119	return s
6120}
6121
6122// SetThumbnails sets the Thumbnails field's value.
6123func (s *Preset) SetThumbnails(v *Thumbnails) *Preset {
6124	s.Thumbnails = v
6125	return s
6126}
6127
6128// SetType sets the Type field's value.
6129func (s *Preset) SetType(v string) *Preset {
6130	s.Type = &v
6131	return s
6132}
6133
6134// SetVideo sets the Video field's value.
6135func (s *Preset) SetVideo(v *VideoParameters) *Preset {
6136	s.Video = v
6137	return s
6138}
6139
6140// Settings for the size, location, and opacity of graphics that you want Elastic
6141// Transcoder to overlay over videos that are transcoded using this preset.
6142// You can specify settings for up to four watermarks. Watermarks appear in
6143// the specified size and location, and with the specified opacity for the duration
6144// of the transcoded video.
6145//
6146// Watermarks can be in .png or .jpg format. If you want to display a watermark
6147// that is not rectangular, use the .png format, which supports transparency.
6148//
6149// When you create a job that uses this preset, you specify the .png or .jpg
6150// graphics that you want Elastic Transcoder to include in the transcoded videos.
6151// You can specify fewer graphics in the job than you specify watermark settings
6152// in the preset, which allows you to use the same preset for up to four watermarks
6153// that have different dimensions.
6154type PresetWatermark struct {
6155	_ struct{} `type:"structure"`
6156
6157	// The horizontal position of the watermark unless you specify a non-zero value
6158	// for HorizontalOffset:
6159	//
6160	//    * Left: The left edge of the watermark is aligned with the left border
6161	//    of the video.
6162	//
6163	//    * Right: The right edge of the watermark is aligned with the right border
6164	//    of the video.
6165	//
6166	//    * Center: The watermark is centered between the left and right borders.
6167	HorizontalAlign *string `type:"string"`
6168
6169	// The amount by which you want the horizontal position of the watermark to
6170	// be offset from the position specified by HorizontalAlign:
6171	//
6172	//    * number of pixels (px): The minimum value is 0 pixels, and the maximum
6173	//    value is the value of MaxWidth.
6174	//
6175	//    * integer percentage (%): The range of valid values is 0 to 100.
6176	//
6177	// For example, if you specify Left for HorizontalAlign and 5px for HorizontalOffset,
6178	// the left side of the watermark appears 5 pixels from the left border of the
6179	// output video.
6180	//
6181	// HorizontalOffset is only valid when the value of HorizontalAlign is Left
6182	// or Right. If you specify an offset that causes the watermark to extend beyond
6183	// the left or right border and Elastic Transcoder has not added black bars,
6184	// the watermark is cropped. If Elastic Transcoder has added black bars, the
6185	// watermark extends into the black bars. If the watermark extends beyond the
6186	// black bars, it is cropped.
6187	//
6188	// Use the value of Target to specify whether you want to include the black
6189	// bars that are added by Elastic Transcoder, if any, in the offset calculation.
6190	HorizontalOffset *string `type:"string"`
6191
6192	// A unique identifier for the settings for one watermark. The value of Id can
6193	// be up to 40 characters long.
6194	Id *string `min:"1" type:"string"`
6195
6196	// The maximum height of the watermark in one of the following formats:
6197	//
6198	//    * number of pixels (px): The minimum value is 16 pixels, and the maximum
6199	//    value is the value of MaxHeight.
6200	//
6201	//    * integer percentage (%): The range of valid values is 0 to 100. Use the
6202	//    value of Target to specify whether you want Elastic Transcoder to include
6203	//    the black bars that are added by Elastic Transcoder, if any, in the calculation.
6204	//
6205	// If you specify the value in pixels, it must be less than or equal to the
6206	// value of MaxHeight.
6207	MaxHeight *string `type:"string"`
6208
6209	// The maximum width of the watermark in one of the following formats:
6210	//
6211	//    * number of pixels (px): The minimum value is 16 pixels, and the maximum
6212	//    value is the value of MaxWidth.
6213	//
6214	//    * integer percentage (%): The range of valid values is 0 to 100. Use the
6215	//    value of Target to specify whether you want Elastic Transcoder to include
6216	//    the black bars that are added by Elastic Transcoder, if any, in the calculation.
6217	//
6218	// If you specify the value in pixels, it must be less than or equal to the
6219	//    value of MaxWidth.
6220	MaxWidth *string `type:"string"`
6221
6222	// A percentage that indicates how much you want a watermark to obscure the
6223	// video in the location where it appears. Valid values are 0 (the watermark
6224	// is invisible) to 100 (the watermark completely obscures the video in the
6225	// specified location). The datatype of Opacity is float.
6226	//
6227	// Elastic Transcoder supports transparent .png graphics. If you use a transparent
6228	// .png, the transparent portion of the video appears as if you had specified
6229	// a value of 0 for Opacity. The .jpg file format doesn't support transparency.
6230	Opacity *string `type:"string"`
6231
6232	// A value that controls scaling of the watermark:
6233	//
6234	//    * Fit: Elastic Transcoder scales the watermark so it matches the value
6235	//    that you specified in either MaxWidth or MaxHeight without exceeding the
6236	//    other value.
6237	//
6238	//    * Stretch: Elastic Transcoder stretches the watermark to match the values
6239	//    that you specified for MaxWidth and MaxHeight. If the relative proportions
6240	//    of the watermark and the values of MaxWidth and MaxHeight are different,
6241	//    the watermark will be distorted.
6242	//
6243	//    * ShrinkToFit: Elastic Transcoder scales the watermark down so that its
6244	//    dimensions match the values that you specified for at least one of MaxWidth
6245	//    and MaxHeight without exceeding either value. If you specify this option,
6246	//    Elastic Transcoder does not scale the watermark up.
6247	SizingPolicy *string `type:"string"`
6248
6249	// A value that determines how Elastic Transcoder interprets values that you
6250	// specified for HorizontalOffset, VerticalOffset, MaxWidth, and MaxHeight:
6251	//
6252	//    * Content: HorizontalOffset and VerticalOffset values are calculated based
6253	//    on the borders of the video excluding black bars added by Elastic Transcoder,
6254	//    if any. In addition, MaxWidth and MaxHeight, if specified as a percentage,
6255	//    are calculated based on the borders of the video excluding black bars
6256	//    added by Elastic Transcoder, if any.
6257	//
6258	//    * Frame: HorizontalOffset and VerticalOffset values are calculated based
6259	//    on the borders of the video including black bars added by Elastic Transcoder,
6260	//    if any. In addition, MaxWidth and MaxHeight, if specified as a percentage,
6261	//    are calculated based on the borders of the video including black bars
6262	//    added by Elastic Transcoder, if any.
6263	Target *string `type:"string"`
6264
6265	// The vertical position of the watermark unless you specify a non-zero value
6266	// for VerticalOffset:
6267	//
6268	//    * Top: The top edge of the watermark is aligned with the top border of
6269	//    the video.
6270	//
6271	//    * Bottom: The bottom edge of the watermark is aligned with the bottom
6272	//    border of the video.
6273	//
6274	//    * Center: The watermark is centered between the top and bottom borders.
6275	VerticalAlign *string `type:"string"`
6276
6277	// VerticalOffset
6278	//
6279	// The amount by which you want the vertical position of the watermark to be
6280	// offset from the position specified by VerticalAlign:
6281	//
6282	//    * number of pixels (px): The minimum value is 0 pixels, and the maximum
6283	//    value is the value of MaxHeight.
6284	//
6285	//    * integer percentage (%): The range of valid values is 0 to 100.
6286	//
6287	// For example, if you specify Top for VerticalAlign and 5px for VerticalOffset,
6288	// the top of the watermark appears 5 pixels from the top border of the output
6289	// video.
6290	//
6291	// VerticalOffset is only valid when the value of VerticalAlign is Top or Bottom.
6292	//
6293	// If you specify an offset that causes the watermark to extend beyond the top
6294	// or bottom border and Elastic Transcoder has not added black bars, the watermark
6295	// is cropped. If Elastic Transcoder has added black bars, the watermark extends
6296	// into the black bars. If the watermark extends beyond the black bars, it is
6297	// cropped.
6298	//
6299	// Use the value of Target to specify whether you want Elastic Transcoder to
6300	// include the black bars that are added by Elastic Transcoder, if any, in the
6301	// offset calculation.
6302	VerticalOffset *string `type:"string"`
6303}
6304
6305// String returns the string representation
6306func (s PresetWatermark) String() string {
6307	return awsutil.Prettify(s)
6308}
6309
6310// GoString returns the string representation
6311func (s PresetWatermark) GoString() string {
6312	return s.String()
6313}
6314
6315// Validate inspects the fields of the type to determine if they are valid.
6316func (s *PresetWatermark) Validate() error {
6317	invalidParams := request.ErrInvalidParams{Context: "PresetWatermark"}
6318	if s.Id != nil && len(*s.Id) < 1 {
6319		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
6320	}
6321
6322	if invalidParams.Len() > 0 {
6323		return invalidParams
6324	}
6325	return nil
6326}
6327
6328// SetHorizontalAlign sets the HorizontalAlign field's value.
6329func (s *PresetWatermark) SetHorizontalAlign(v string) *PresetWatermark {
6330	s.HorizontalAlign = &v
6331	return s
6332}
6333
6334// SetHorizontalOffset sets the HorizontalOffset field's value.
6335func (s *PresetWatermark) SetHorizontalOffset(v string) *PresetWatermark {
6336	s.HorizontalOffset = &v
6337	return s
6338}
6339
6340// SetId sets the Id field's value.
6341func (s *PresetWatermark) SetId(v string) *PresetWatermark {
6342	s.Id = &v
6343	return s
6344}
6345
6346// SetMaxHeight sets the MaxHeight field's value.
6347func (s *PresetWatermark) SetMaxHeight(v string) *PresetWatermark {
6348	s.MaxHeight = &v
6349	return s
6350}
6351
6352// SetMaxWidth sets the MaxWidth field's value.
6353func (s *PresetWatermark) SetMaxWidth(v string) *PresetWatermark {
6354	s.MaxWidth = &v
6355	return s
6356}
6357
6358// SetOpacity sets the Opacity field's value.
6359func (s *PresetWatermark) SetOpacity(v string) *PresetWatermark {
6360	s.Opacity = &v
6361	return s
6362}
6363
6364// SetSizingPolicy sets the SizingPolicy field's value.
6365func (s *PresetWatermark) SetSizingPolicy(v string) *PresetWatermark {
6366	s.SizingPolicy = &v
6367	return s
6368}
6369
6370// SetTarget sets the Target field's value.
6371func (s *PresetWatermark) SetTarget(v string) *PresetWatermark {
6372	s.Target = &v
6373	return s
6374}
6375
6376// SetVerticalAlign sets the VerticalAlign field's value.
6377func (s *PresetWatermark) SetVerticalAlign(v string) *PresetWatermark {
6378	s.VerticalAlign = &v
6379	return s
6380}
6381
6382// SetVerticalOffset sets the VerticalOffset field's value.
6383func (s *PresetWatermark) SetVerticalOffset(v string) *PresetWatermark {
6384	s.VerticalOffset = &v
6385	return s
6386}
6387
6388// The ReadJobRequest structure.
6389type ReadJobInput struct {
6390	_ struct{} `type:"structure"`
6391
6392	// The identifier of the job for which you want to get detailed information.
6393	//
6394	// Id is a required field
6395	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
6396}
6397
6398// String returns the string representation
6399func (s ReadJobInput) String() string {
6400	return awsutil.Prettify(s)
6401}
6402
6403// GoString returns the string representation
6404func (s ReadJobInput) GoString() string {
6405	return s.String()
6406}
6407
6408// Validate inspects the fields of the type to determine if they are valid.
6409func (s *ReadJobInput) Validate() error {
6410	invalidParams := request.ErrInvalidParams{Context: "ReadJobInput"}
6411	if s.Id == nil {
6412		invalidParams.Add(request.NewErrParamRequired("Id"))
6413	}
6414
6415	if invalidParams.Len() > 0 {
6416		return invalidParams
6417	}
6418	return nil
6419}
6420
6421// SetId sets the Id field's value.
6422func (s *ReadJobInput) SetId(v string) *ReadJobInput {
6423	s.Id = &v
6424	return s
6425}
6426
6427// The ReadJobResponse structure.
6428type ReadJobOutput struct {
6429	_ struct{} `type:"structure"`
6430
6431	// A section of the response body that provides information about the job.
6432	Job *Job `type:"structure"`
6433}
6434
6435// String returns the string representation
6436func (s ReadJobOutput) String() string {
6437	return awsutil.Prettify(s)
6438}
6439
6440// GoString returns the string representation
6441func (s ReadJobOutput) GoString() string {
6442	return s.String()
6443}
6444
6445// SetJob sets the Job field's value.
6446func (s *ReadJobOutput) SetJob(v *Job) *ReadJobOutput {
6447	s.Job = v
6448	return s
6449}
6450
6451// The ReadPipelineRequest structure.
6452type ReadPipelineInput struct {
6453	_ struct{} `type:"structure"`
6454
6455	// The identifier of the pipeline to read.
6456	//
6457	// Id is a required field
6458	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
6459}
6460
6461// String returns the string representation
6462func (s ReadPipelineInput) String() string {
6463	return awsutil.Prettify(s)
6464}
6465
6466// GoString returns the string representation
6467func (s ReadPipelineInput) GoString() string {
6468	return s.String()
6469}
6470
6471// Validate inspects the fields of the type to determine if they are valid.
6472func (s *ReadPipelineInput) Validate() error {
6473	invalidParams := request.ErrInvalidParams{Context: "ReadPipelineInput"}
6474	if s.Id == nil {
6475		invalidParams.Add(request.NewErrParamRequired("Id"))
6476	}
6477
6478	if invalidParams.Len() > 0 {
6479		return invalidParams
6480	}
6481	return nil
6482}
6483
6484// SetId sets the Id field's value.
6485func (s *ReadPipelineInput) SetId(v string) *ReadPipelineInput {
6486	s.Id = &v
6487	return s
6488}
6489
6490// The ReadPipelineResponse structure.
6491type ReadPipelineOutput struct {
6492	_ struct{} `type:"structure"`
6493
6494	// A section of the response body that provides information about the pipeline.
6495	Pipeline *Pipeline `type:"structure"`
6496
6497	// Elastic Transcoder returns a warning if the resources used by your pipeline
6498	// are not in the same region as the pipeline.
6499	//
6500	// Using resources in the same region, such as your Amazon S3 buckets, Amazon
6501	// SNS notification topics, and AWS KMS key, reduces processing time and prevents
6502	// cross-regional charges.
6503	Warnings []*Warning `type:"list"`
6504}
6505
6506// String returns the string representation
6507func (s ReadPipelineOutput) String() string {
6508	return awsutil.Prettify(s)
6509}
6510
6511// GoString returns the string representation
6512func (s ReadPipelineOutput) GoString() string {
6513	return s.String()
6514}
6515
6516// SetPipeline sets the Pipeline field's value.
6517func (s *ReadPipelineOutput) SetPipeline(v *Pipeline) *ReadPipelineOutput {
6518	s.Pipeline = v
6519	return s
6520}
6521
6522// SetWarnings sets the Warnings field's value.
6523func (s *ReadPipelineOutput) SetWarnings(v []*Warning) *ReadPipelineOutput {
6524	s.Warnings = v
6525	return s
6526}
6527
6528// The ReadPresetRequest structure.
6529type ReadPresetInput struct {
6530	_ struct{} `type:"structure"`
6531
6532	// The identifier of the preset for which you want to get detailed information.
6533	//
6534	// Id is a required field
6535	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
6536}
6537
6538// String returns the string representation
6539func (s ReadPresetInput) String() string {
6540	return awsutil.Prettify(s)
6541}
6542
6543// GoString returns the string representation
6544func (s ReadPresetInput) GoString() string {
6545	return s.String()
6546}
6547
6548// Validate inspects the fields of the type to determine if they are valid.
6549func (s *ReadPresetInput) Validate() error {
6550	invalidParams := request.ErrInvalidParams{Context: "ReadPresetInput"}
6551	if s.Id == nil {
6552		invalidParams.Add(request.NewErrParamRequired("Id"))
6553	}
6554
6555	if invalidParams.Len() > 0 {
6556		return invalidParams
6557	}
6558	return nil
6559}
6560
6561// SetId sets the Id field's value.
6562func (s *ReadPresetInput) SetId(v string) *ReadPresetInput {
6563	s.Id = &v
6564	return s
6565}
6566
6567// The ReadPresetResponse structure.
6568type ReadPresetOutput struct {
6569	_ struct{} `type:"structure"`
6570
6571	// A section of the response body that provides information about the preset.
6572	Preset *Preset `type:"structure"`
6573}
6574
6575// String returns the string representation
6576func (s ReadPresetOutput) String() string {
6577	return awsutil.Prettify(s)
6578}
6579
6580// GoString returns the string representation
6581func (s ReadPresetOutput) GoString() string {
6582	return s.String()
6583}
6584
6585// SetPreset sets the Preset field's value.
6586func (s *ReadPresetOutput) SetPreset(v *Preset) *ReadPresetOutput {
6587	s.Preset = v
6588	return s
6589}
6590
6591// The TestRoleRequest structure.
6592type TestRoleInput struct {
6593	_ struct{} `deprecated:"true" type:"structure"`
6594
6595	// The Amazon S3 bucket that contains media files to be transcoded. The action
6596	// attempts to read from this bucket.
6597	//
6598	// InputBucket is a required field
6599	InputBucket *string `type:"string" required:"true"`
6600
6601	// The Amazon S3 bucket that Elastic Transcoder writes transcoded media files
6602	// to. The action attempts to read from this bucket.
6603	//
6604	// OutputBucket is a required field
6605	OutputBucket *string `type:"string" required:"true"`
6606
6607	// The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder
6608	// to test.
6609	//
6610	// Role is a required field
6611	Role *string `type:"string" required:"true"`
6612
6613	// The ARNs of one or more Amazon Simple Notification Service (Amazon SNS) topics
6614	// that you want the action to send a test notification to.
6615	//
6616	// Topics is a required field
6617	Topics []*string `type:"list" required:"true"`
6618}
6619
6620// String returns the string representation
6621func (s TestRoleInput) String() string {
6622	return awsutil.Prettify(s)
6623}
6624
6625// GoString returns the string representation
6626func (s TestRoleInput) GoString() string {
6627	return s.String()
6628}
6629
6630// Validate inspects the fields of the type to determine if they are valid.
6631func (s *TestRoleInput) Validate() error {
6632	invalidParams := request.ErrInvalidParams{Context: "TestRoleInput"}
6633	if s.InputBucket == nil {
6634		invalidParams.Add(request.NewErrParamRequired("InputBucket"))
6635	}
6636	if s.OutputBucket == nil {
6637		invalidParams.Add(request.NewErrParamRequired("OutputBucket"))
6638	}
6639	if s.Role == nil {
6640		invalidParams.Add(request.NewErrParamRequired("Role"))
6641	}
6642	if s.Topics == nil {
6643		invalidParams.Add(request.NewErrParamRequired("Topics"))
6644	}
6645
6646	if invalidParams.Len() > 0 {
6647		return invalidParams
6648	}
6649	return nil
6650}
6651
6652// SetInputBucket sets the InputBucket field's value.
6653func (s *TestRoleInput) SetInputBucket(v string) *TestRoleInput {
6654	s.InputBucket = &v
6655	return s
6656}
6657
6658// SetOutputBucket sets the OutputBucket field's value.
6659func (s *TestRoleInput) SetOutputBucket(v string) *TestRoleInput {
6660	s.OutputBucket = &v
6661	return s
6662}
6663
6664// SetRole sets the Role field's value.
6665func (s *TestRoleInput) SetRole(v string) *TestRoleInput {
6666	s.Role = &v
6667	return s
6668}
6669
6670// SetTopics sets the Topics field's value.
6671func (s *TestRoleInput) SetTopics(v []*string) *TestRoleInput {
6672	s.Topics = v
6673	return s
6674}
6675
6676// The TestRoleResponse structure.
6677type TestRoleOutput struct {
6678	_ struct{} `deprecated:"true" type:"structure"`
6679
6680	// If the Success element contains false, this value is an array of one or more
6681	// error messages that were generated during the test process.
6682	Messages []*string `type:"list"`
6683
6684	// If the operation is successful, this value is true; otherwise, the value
6685	// is false.
6686	Success *string `type:"string"`
6687}
6688
6689// String returns the string representation
6690func (s TestRoleOutput) String() string {
6691	return awsutil.Prettify(s)
6692}
6693
6694// GoString returns the string representation
6695func (s TestRoleOutput) GoString() string {
6696	return s.String()
6697}
6698
6699// SetMessages sets the Messages field's value.
6700func (s *TestRoleOutput) SetMessages(v []*string) *TestRoleOutput {
6701	s.Messages = v
6702	return s
6703}
6704
6705// SetSuccess sets the Success field's value.
6706func (s *TestRoleOutput) SetSuccess(v string) *TestRoleOutput {
6707	s.Success = &v
6708	return s
6709}
6710
6711// Thumbnails for videos.
6712type Thumbnails struct {
6713	_ struct{} `type:"structure"`
6714
6715	// To better control resolution and aspect ratio of thumbnails, we recommend
6716	// that you use the values MaxWidth, MaxHeight, SizingPolicy, and PaddingPolicy
6717	// instead of Resolution and AspectRatio. The two groups of settings are mutually
6718	// exclusive. Do not use them together.
6719	//
6720	// The aspect ratio of thumbnails. Valid values include:
6721	//
6722	// auto, 1:1, 4:3, 3:2, 16:9
6723	//
6724	// If you specify auto, Elastic Transcoder tries to preserve the aspect ratio
6725	// of the video in the output file.
6726	AspectRatio *string `type:"string"`
6727
6728	// The format of thumbnails, if any. Valid values are jpg and png.
6729	//
6730	// You specify whether you want Elastic Transcoder to create thumbnails when
6731	// you create a job.
6732	Format *string `type:"string"`
6733
6734	// The approximate number of seconds between thumbnails. Specify an integer
6735	// value.
6736	Interval *string `type:"string"`
6737
6738	// The maximum height of thumbnails in pixels. If you specify auto, Elastic
6739	// Transcoder uses 1080 (Full HD) as the default value. If you specify a numeric
6740	// value, enter an even integer between 32 and 3072.
6741	MaxHeight *string `type:"string"`
6742
6743	// The maximum width of thumbnails in pixels. If you specify auto, Elastic Transcoder
6744	// uses 1920 (Full HD) as the default value. If you specify a numeric value,
6745	// enter an even integer between 32 and 4096.
6746	MaxWidth *string `type:"string"`
6747
6748	// When you set PaddingPolicy to Pad, Elastic Transcoder may add black bars
6749	// to the top and bottom and/or left and right sides of thumbnails to make the
6750	// total size of the thumbnails match the values that you specified for thumbnail
6751	// MaxWidth and MaxHeight settings.
6752	PaddingPolicy *string `type:"string"`
6753
6754	// To better control resolution and aspect ratio of thumbnails, we recommend
6755	// that you use the values MaxWidth, MaxHeight, SizingPolicy, and PaddingPolicy
6756	// instead of Resolution and AspectRatio. The two groups of settings are mutually
6757	// exclusive. Do not use them together.
6758	//
6759	// The width and height of thumbnail files in pixels. Specify a value in the
6760	// format width x height where both values are even integers. The values cannot
6761	// exceed the width and height that you specified in the Video:Resolution object.
6762	Resolution *string `type:"string"`
6763
6764	// Specify one of the following values to control scaling of thumbnails:
6765	//
6766	//    * Fit: Elastic Transcoder scales thumbnails so they match the value that
6767	//    you specified in thumbnail MaxWidth or MaxHeight settings without exceeding
6768	//    the other value.
6769	//
6770	//    * Fill: Elastic Transcoder scales thumbnails so they match the value that
6771	//    you specified in thumbnail MaxWidth or MaxHeight settings and matches
6772	//    or exceeds the other value. Elastic Transcoder centers the image in thumbnails
6773	//    and then crops in the dimension (if any) that exceeds the maximum value.
6774	//
6775	//    * Stretch: Elastic Transcoder stretches thumbnails to match the values
6776	//    that you specified for thumbnail MaxWidth and MaxHeight settings. If the
6777	//    relative proportions of the input video and thumbnails are different,
6778	//    the thumbnails will be distorted.
6779	//
6780	//    * Keep: Elastic Transcoder does not scale thumbnails. If either dimension
6781	//    of the input video exceeds the values that you specified for thumbnail
6782	//    MaxWidth and MaxHeight settings, Elastic Transcoder crops the thumbnails.
6783	//
6784	//    * ShrinkToFit: Elastic Transcoder scales thumbnails down so that their
6785	//    dimensions match the values that you specified for at least one of thumbnail
6786	//    MaxWidth and MaxHeight without exceeding either value. If you specify
6787	//    this option, Elastic Transcoder does not scale thumbnails up.
6788	//
6789	//    * ShrinkToFill: Elastic Transcoder scales thumbnails down so that their
6790	//    dimensions match the values that you specified for at least one of MaxWidth
6791	//    and MaxHeight without dropping below either value. If you specify this
6792	//    option, Elastic Transcoder does not scale thumbnails up.
6793	SizingPolicy *string `type:"string"`
6794}
6795
6796// String returns the string representation
6797func (s Thumbnails) String() string {
6798	return awsutil.Prettify(s)
6799}
6800
6801// GoString returns the string representation
6802func (s Thumbnails) GoString() string {
6803	return s.String()
6804}
6805
6806// SetAspectRatio sets the AspectRatio field's value.
6807func (s *Thumbnails) SetAspectRatio(v string) *Thumbnails {
6808	s.AspectRatio = &v
6809	return s
6810}
6811
6812// SetFormat sets the Format field's value.
6813func (s *Thumbnails) SetFormat(v string) *Thumbnails {
6814	s.Format = &v
6815	return s
6816}
6817
6818// SetInterval sets the Interval field's value.
6819func (s *Thumbnails) SetInterval(v string) *Thumbnails {
6820	s.Interval = &v
6821	return s
6822}
6823
6824// SetMaxHeight sets the MaxHeight field's value.
6825func (s *Thumbnails) SetMaxHeight(v string) *Thumbnails {
6826	s.MaxHeight = &v
6827	return s
6828}
6829
6830// SetMaxWidth sets the MaxWidth field's value.
6831func (s *Thumbnails) SetMaxWidth(v string) *Thumbnails {
6832	s.MaxWidth = &v
6833	return s
6834}
6835
6836// SetPaddingPolicy sets the PaddingPolicy field's value.
6837func (s *Thumbnails) SetPaddingPolicy(v string) *Thumbnails {
6838	s.PaddingPolicy = &v
6839	return s
6840}
6841
6842// SetResolution sets the Resolution field's value.
6843func (s *Thumbnails) SetResolution(v string) *Thumbnails {
6844	s.Resolution = &v
6845	return s
6846}
6847
6848// SetSizingPolicy sets the SizingPolicy field's value.
6849func (s *Thumbnails) SetSizingPolicy(v string) *Thumbnails {
6850	s.SizingPolicy = &v
6851	return s
6852}
6853
6854// Settings that determine when a clip begins and how long it lasts.
6855type TimeSpan struct {
6856	_ struct{} `type:"structure"`
6857
6858	// The duration of the clip. The format can be either HH:mm:ss.SSS (maximum
6859	// value: 23:59:59.999; SSS is thousandths of a second) or sssss.SSS (maximum
6860	// value: 86399.999). If you don't specify a value, Elastic Transcoder creates
6861	// an output file from StartTime to the end of the file.
6862	//
6863	// If you specify a value longer than the duration of the input file, Elastic
6864	// Transcoder transcodes the file and returns a warning message.
6865	Duration *string `type:"string"`
6866
6867	// The place in the input file where you want a clip to start. The format can
6868	// be either HH:mm:ss.SSS (maximum value: 23:59:59.999; SSS is thousandths of
6869	// a second) or sssss.SSS (maximum value: 86399.999). If you don't specify a
6870	// value, Elastic Transcoder starts at the beginning of the input file.
6871	StartTime *string `type:"string"`
6872}
6873
6874// String returns the string representation
6875func (s TimeSpan) String() string {
6876	return awsutil.Prettify(s)
6877}
6878
6879// GoString returns the string representation
6880func (s TimeSpan) GoString() string {
6881	return s.String()
6882}
6883
6884// SetDuration sets the Duration field's value.
6885func (s *TimeSpan) SetDuration(v string) *TimeSpan {
6886	s.Duration = &v
6887	return s
6888}
6889
6890// SetStartTime sets the StartTime field's value.
6891func (s *TimeSpan) SetStartTime(v string) *TimeSpan {
6892	s.StartTime = &v
6893	return s
6894}
6895
6896// Details about the timing of a job.
6897type Timing struct {
6898	_ struct{} `type:"structure"`
6899
6900	// The time the job finished transcoding, in epoch milliseconds.
6901	FinishTimeMillis *int64 `type:"long"`
6902
6903	// The time the job began transcoding, in epoch milliseconds.
6904	StartTimeMillis *int64 `type:"long"`
6905
6906	// The time the job was submitted to Elastic Transcoder, in epoch milliseconds.
6907	SubmitTimeMillis *int64 `type:"long"`
6908}
6909
6910// String returns the string representation
6911func (s Timing) String() string {
6912	return awsutil.Prettify(s)
6913}
6914
6915// GoString returns the string representation
6916func (s Timing) GoString() string {
6917	return s.String()
6918}
6919
6920// SetFinishTimeMillis sets the FinishTimeMillis field's value.
6921func (s *Timing) SetFinishTimeMillis(v int64) *Timing {
6922	s.FinishTimeMillis = &v
6923	return s
6924}
6925
6926// SetStartTimeMillis sets the StartTimeMillis field's value.
6927func (s *Timing) SetStartTimeMillis(v int64) *Timing {
6928	s.StartTimeMillis = &v
6929	return s
6930}
6931
6932// SetSubmitTimeMillis sets the SubmitTimeMillis field's value.
6933func (s *Timing) SetSubmitTimeMillis(v int64) *Timing {
6934	s.SubmitTimeMillis = &v
6935	return s
6936}
6937
6938// The UpdatePipelineRequest structure.
6939type UpdatePipelineInput struct {
6940	_ struct{} `type:"structure"`
6941
6942	// The AWS Key Management Service (AWS KMS) key that you want to use with this
6943	// pipeline.
6944	//
6945	// If you use either S3 or S3-AWS-KMS as your Encryption:Mode, you don't need
6946	// to provide a key with your job because a default key, known as an AWS-KMS
6947	// key, is created for you automatically. You need to provide an AWS-KMS key
6948	// only if you want to use a non-default AWS-KMS key, or if you are using an
6949	// Encryption:Mode of AES-PKCS7, AES-CTR, or AES-GCM.
6950	AwsKmsKeyArn *string `type:"string"`
6951
6952	// The optional ContentConfig object specifies information about the Amazon
6953	// S3 bucket in which you want Elastic Transcoder to save transcoded files and
6954	// playlists: which bucket to use, which users you want to have access to the
6955	// files, the type of access you want users to have, and the storage class that
6956	// you want to assign to the files.
6957	//
6958	// If you specify values for ContentConfig, you must also specify values for
6959	// ThumbnailConfig.
6960	//
6961	// If you specify values for ContentConfig and ThumbnailConfig, omit the OutputBucket
6962	// object.
6963	//
6964	//    * Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to
6965	//    save transcoded files and playlists.
6966	//
6967	//    * Permissions (Optional): The Permissions object specifies which users
6968	//    you want to have access to transcoded files and the type of access you
6969	//    want them to have. You can grant permissions to a maximum of 30 users
6970	//    and/or predefined Amazon S3 groups.
6971	//
6972	//    * Grantee Type: Specify the type of value that appears in the Grantee
6973	//    object:
6974	//
6975	// Canonical: The value in the Grantee object is either the canonical user ID
6976	//    for an AWS account or an origin access identity for an Amazon CloudFront
6977	//    distribution. For more information about canonical user IDs, see Access
6978	//    Control List (ACL) Overview in the Amazon Simple Storage Service Developer
6979	//    Guide. For more information about using CloudFront origin access identities
6980	//    to require that users use CloudFront URLs instead of Amazon S3 URLs, see
6981	//    Using an Origin Access Identity to Restrict Access to Your Amazon S3 Content.
6982	//
6983	// A canonical user ID is not the same as an AWS account number.
6984	//
6985	// Email: The value in the Grantee object is the registered email address of
6986	//    an AWS account.
6987	//
6988	// Group: The value in the Grantee object is one of the following predefined
6989	//    Amazon S3 groups: AllUsers, AuthenticatedUsers, or LogDelivery.
6990	//
6991	//    * Grantee: The AWS user or group that you want to have access to transcoded
6992	//    files and playlists. To identify the user or group, you can specify the
6993	//    canonical user ID for an AWS account, an origin access identity for a
6994	//    CloudFront distribution, the registered email address of an AWS account,
6995	//    or a predefined Amazon S3 group
6996	//
6997	//    * Access: The permission that you want to give to the AWS user that you
6998	//    specified in Grantee. Permissions are granted on the files that Elastic
6999	//    Transcoder adds to the bucket, including playlists and video files. Valid
7000	//    values include:
7001	//
7002	// READ: The grantee can read the objects and metadata for objects that Elastic
7003	//    Transcoder adds to the Amazon S3 bucket.
7004	//
7005	// READ_ACP: The grantee can read the object ACL for objects that Elastic Transcoder
7006	//    adds to the Amazon S3 bucket.
7007	//
7008	// WRITE_ACP: The grantee can write the ACL for the objects that Elastic Transcoder
7009	//    adds to the Amazon S3 bucket.
7010	//
7011	// FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP permissions for
7012	//    the objects that Elastic Transcoder adds to the Amazon S3 bucket.
7013	//
7014	//    * StorageClass: The Amazon S3 storage class, Standard or ReducedRedundancy,
7015	//    that you want Elastic Transcoder to assign to the video files and playlists
7016	//    that it stores in your Amazon S3 bucket.
7017	ContentConfig *PipelineOutputConfig `type:"structure"`
7018
7019	// The ID of the pipeline that you want to update.
7020	//
7021	// Id is a required field
7022	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
7023
7024	// The Amazon S3 bucket in which you saved the media files that you want to
7025	// transcode and the graphics that you want to use as watermarks.
7026	InputBucket *string `type:"string"`
7027
7028	// The name of the pipeline. We recommend that the name be unique within the
7029	// AWS account, but uniqueness is not enforced.
7030	//
7031	// Constraints: Maximum 40 characters
7032	Name *string `min:"1" type:"string"`
7033
7034	// The topic ARN for the Amazon Simple Notification Service (Amazon SNS) topic
7035	// that you want to notify to report job status.
7036	//
7037	// To receive notifications, you must also subscribe to the new topic in the
7038	// Amazon SNS console.
7039	//
7040	//    * Progressing: The topic ARN for the Amazon Simple Notification Service
7041	//    (Amazon SNS) topic that you want to notify when Elastic Transcoder has
7042	//    started to process jobs that are added to this pipeline. This is the ARN
7043	//    that Amazon SNS returned when you created the topic.
7044	//
7045	//    * Completed: The topic ARN for the Amazon SNS topic that you want to notify
7046	//    when Elastic Transcoder has finished processing a job. This is the ARN
7047	//    that Amazon SNS returned when you created the topic.
7048	//
7049	//    * Warning: The topic ARN for the Amazon SNS topic that you want to notify
7050	//    when Elastic Transcoder encounters a warning condition. This is the ARN
7051	//    that Amazon SNS returned when you created the topic.
7052	//
7053	//    * Error: The topic ARN for the Amazon SNS topic that you want to notify
7054	//    when Elastic Transcoder encounters an error condition. This is the ARN
7055	//    that Amazon SNS returned when you created the topic.
7056	Notifications *Notifications `type:"structure"`
7057
7058	// The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder
7059	// to use to transcode jobs for this pipeline.
7060	Role *string `type:"string"`
7061
7062	// The ThumbnailConfig object specifies several values, including the Amazon
7063	// S3 bucket in which you want Elastic Transcoder to save thumbnail files, which
7064	// users you want to have access to the files, the type of access you want users
7065	// to have, and the storage class that you want to assign to the files.
7066	//
7067	// If you specify values for ContentConfig, you must also specify values for
7068	// ThumbnailConfig even if you don't want to create thumbnails.
7069	//
7070	// If you specify values for ContentConfig and ThumbnailConfig, omit the OutputBucket
7071	// object.
7072	//
7073	//    * Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to
7074	//    save thumbnail files.
7075	//
7076	//    * Permissions (Optional): The Permissions object specifies which users
7077	//    and/or predefined Amazon S3 groups you want to have access to thumbnail
7078	//    files, and the type of access you want them to have. You can grant permissions
7079	//    to a maximum of 30 users and/or predefined Amazon S3 groups.
7080	//
7081	//    * GranteeType: Specify the type of value that appears in the Grantee object:
7082	//
7083	// Canonical: The value in the Grantee object is either the canonical user ID
7084	//    for an AWS account or an origin access identity for an Amazon CloudFront
7085	//    distribution.
7086	//
7087	// A canonical user ID is not the same as an AWS account number.
7088	//
7089	// Email: The value in the Grantee object is the registered email address of
7090	//    an AWS account.
7091	//
7092	// Group: The value in the Grantee object is one of the following predefined
7093	//    Amazon S3 groups: AllUsers, AuthenticatedUsers, or LogDelivery.
7094	//
7095	//    * Grantee: The AWS user or group that you want to have access to thumbnail
7096	//    files. To identify the user or group, you can specify the canonical user
7097	//    ID for an AWS account, an origin access identity for a CloudFront distribution,
7098	//    the registered email address of an AWS account, or a predefined Amazon
7099	//    S3 group.
7100	//
7101	//    * Access: The permission that you want to give to the AWS user that you
7102	//    specified in Grantee. Permissions are granted on the thumbnail files that
7103	//    Elastic Transcoder adds to the bucket. Valid values include:
7104	//
7105	// READ: The grantee can read the thumbnails and metadata for objects that Elastic
7106	//    Transcoder adds to the Amazon S3 bucket.
7107	//
7108	// READ_ACP: The grantee can read the object ACL for thumbnails that Elastic
7109	//    Transcoder adds to the Amazon S3 bucket.
7110	//
7111	// WRITE_ACP: The grantee can write the ACL for the thumbnails that Elastic
7112	//    Transcoder adds to the Amazon S3 bucket.
7113	//
7114	// FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP permissions for
7115	//    the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
7116	//
7117	//    * StorageClass: The Amazon S3 storage class, Standard or ReducedRedundancy,
7118	//    that you want Elastic Transcoder to assign to the thumbnails that it stores
7119	//    in your Amazon S3 bucket.
7120	ThumbnailConfig *PipelineOutputConfig `type:"structure"`
7121}
7122
7123// String returns the string representation
7124func (s UpdatePipelineInput) String() string {
7125	return awsutil.Prettify(s)
7126}
7127
7128// GoString returns the string representation
7129func (s UpdatePipelineInput) GoString() string {
7130	return s.String()
7131}
7132
7133// Validate inspects the fields of the type to determine if they are valid.
7134func (s *UpdatePipelineInput) Validate() error {
7135	invalidParams := request.ErrInvalidParams{Context: "UpdatePipelineInput"}
7136	if s.Id == nil {
7137		invalidParams.Add(request.NewErrParamRequired("Id"))
7138	}
7139	if s.Name != nil && len(*s.Name) < 1 {
7140		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
7141	}
7142	if s.ContentConfig != nil {
7143		if err := s.ContentConfig.Validate(); err != nil {
7144			invalidParams.AddNested("ContentConfig", err.(request.ErrInvalidParams))
7145		}
7146	}
7147	if s.ThumbnailConfig != nil {
7148		if err := s.ThumbnailConfig.Validate(); err != nil {
7149			invalidParams.AddNested("ThumbnailConfig", err.(request.ErrInvalidParams))
7150		}
7151	}
7152
7153	if invalidParams.Len() > 0 {
7154		return invalidParams
7155	}
7156	return nil
7157}
7158
7159// SetAwsKmsKeyArn sets the AwsKmsKeyArn field's value.
7160func (s *UpdatePipelineInput) SetAwsKmsKeyArn(v string) *UpdatePipelineInput {
7161	s.AwsKmsKeyArn = &v
7162	return s
7163}
7164
7165// SetContentConfig sets the ContentConfig field's value.
7166func (s *UpdatePipelineInput) SetContentConfig(v *PipelineOutputConfig) *UpdatePipelineInput {
7167	s.ContentConfig = v
7168	return s
7169}
7170
7171// SetId sets the Id field's value.
7172func (s *UpdatePipelineInput) SetId(v string) *UpdatePipelineInput {
7173	s.Id = &v
7174	return s
7175}
7176
7177// SetInputBucket sets the InputBucket field's value.
7178func (s *UpdatePipelineInput) SetInputBucket(v string) *UpdatePipelineInput {
7179	s.InputBucket = &v
7180	return s
7181}
7182
7183// SetName sets the Name field's value.
7184func (s *UpdatePipelineInput) SetName(v string) *UpdatePipelineInput {
7185	s.Name = &v
7186	return s
7187}
7188
7189// SetNotifications sets the Notifications field's value.
7190func (s *UpdatePipelineInput) SetNotifications(v *Notifications) *UpdatePipelineInput {
7191	s.Notifications = v
7192	return s
7193}
7194
7195// SetRole sets the Role field's value.
7196func (s *UpdatePipelineInput) SetRole(v string) *UpdatePipelineInput {
7197	s.Role = &v
7198	return s
7199}
7200
7201// SetThumbnailConfig sets the ThumbnailConfig field's value.
7202func (s *UpdatePipelineInput) SetThumbnailConfig(v *PipelineOutputConfig) *UpdatePipelineInput {
7203	s.ThumbnailConfig = v
7204	return s
7205}
7206
7207// The UpdatePipelineNotificationsRequest structure.
7208type UpdatePipelineNotificationsInput struct {
7209	_ struct{} `type:"structure"`
7210
7211	// The identifier of the pipeline for which you want to change notification
7212	// settings.
7213	//
7214	// Id is a required field
7215	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
7216
7217	// The topic ARN for the Amazon Simple Notification Service (Amazon SNS) topic
7218	// that you want to notify to report job status.
7219	//
7220	// To receive notifications, you must also subscribe to the new topic in the
7221	// Amazon SNS console.
7222	//
7223	//    * Progressing: The topic ARN for the Amazon Simple Notification Service
7224	//    (Amazon SNS) topic that you want to notify when Elastic Transcoder has
7225	//    started to process jobs that are added to this pipeline. This is the ARN
7226	//    that Amazon SNS returned when you created the topic.
7227	//
7228	//    * Completed: The topic ARN for the Amazon SNS topic that you want to notify
7229	//    when Elastic Transcoder has finished processing a job. This is the ARN
7230	//    that Amazon SNS returned when you created the topic.
7231	//
7232	//    * Warning: The topic ARN for the Amazon SNS topic that you want to notify
7233	//    when Elastic Transcoder encounters a warning condition. This is the ARN
7234	//    that Amazon SNS returned when you created the topic.
7235	//
7236	//    * Error: The topic ARN for the Amazon SNS topic that you want to notify
7237	//    when Elastic Transcoder encounters an error condition. This is the ARN
7238	//    that Amazon SNS returned when you created the topic.
7239	//
7240	// Notifications is a required field
7241	Notifications *Notifications `type:"structure" required:"true"`
7242}
7243
7244// String returns the string representation
7245func (s UpdatePipelineNotificationsInput) String() string {
7246	return awsutil.Prettify(s)
7247}
7248
7249// GoString returns the string representation
7250func (s UpdatePipelineNotificationsInput) GoString() string {
7251	return s.String()
7252}
7253
7254// Validate inspects the fields of the type to determine if they are valid.
7255func (s *UpdatePipelineNotificationsInput) Validate() error {
7256	invalidParams := request.ErrInvalidParams{Context: "UpdatePipelineNotificationsInput"}
7257	if s.Id == nil {
7258		invalidParams.Add(request.NewErrParamRequired("Id"))
7259	}
7260	if s.Notifications == nil {
7261		invalidParams.Add(request.NewErrParamRequired("Notifications"))
7262	}
7263
7264	if invalidParams.Len() > 0 {
7265		return invalidParams
7266	}
7267	return nil
7268}
7269
7270// SetId sets the Id field's value.
7271func (s *UpdatePipelineNotificationsInput) SetId(v string) *UpdatePipelineNotificationsInput {
7272	s.Id = &v
7273	return s
7274}
7275
7276// SetNotifications sets the Notifications field's value.
7277func (s *UpdatePipelineNotificationsInput) SetNotifications(v *Notifications) *UpdatePipelineNotificationsInput {
7278	s.Notifications = v
7279	return s
7280}
7281
7282// The UpdatePipelineNotificationsResponse structure.
7283type UpdatePipelineNotificationsOutput struct {
7284	_ struct{} `type:"structure"`
7285
7286	// A section of the response body that provides information about the pipeline
7287	// associated with this notification.
7288	Pipeline *Pipeline `type:"structure"`
7289}
7290
7291// String returns the string representation
7292func (s UpdatePipelineNotificationsOutput) String() string {
7293	return awsutil.Prettify(s)
7294}
7295
7296// GoString returns the string representation
7297func (s UpdatePipelineNotificationsOutput) GoString() string {
7298	return s.String()
7299}
7300
7301// SetPipeline sets the Pipeline field's value.
7302func (s *UpdatePipelineNotificationsOutput) SetPipeline(v *Pipeline) *UpdatePipelineNotificationsOutput {
7303	s.Pipeline = v
7304	return s
7305}
7306
7307// When you update a pipeline, Elastic Transcoder returns the values that you
7308// specified in the request.
7309type UpdatePipelineOutput struct {
7310	_ struct{} `type:"structure"`
7311
7312	// The pipeline updated by this UpdatePipelineResponse call.
7313	Pipeline *Pipeline `type:"structure"`
7314
7315	// Elastic Transcoder returns a warning if the resources used by your pipeline
7316	// are not in the same region as the pipeline.
7317	//
7318	// Using resources in the same region, such as your Amazon S3 buckets, Amazon
7319	// SNS notification topics, and AWS KMS key, reduces processing time and prevents
7320	// cross-regional charges.
7321	Warnings []*Warning `type:"list"`
7322}
7323
7324// String returns the string representation
7325func (s UpdatePipelineOutput) String() string {
7326	return awsutil.Prettify(s)
7327}
7328
7329// GoString returns the string representation
7330func (s UpdatePipelineOutput) GoString() string {
7331	return s.String()
7332}
7333
7334// SetPipeline sets the Pipeline field's value.
7335func (s *UpdatePipelineOutput) SetPipeline(v *Pipeline) *UpdatePipelineOutput {
7336	s.Pipeline = v
7337	return s
7338}
7339
7340// SetWarnings sets the Warnings field's value.
7341func (s *UpdatePipelineOutput) SetWarnings(v []*Warning) *UpdatePipelineOutput {
7342	s.Warnings = v
7343	return s
7344}
7345
7346// The UpdatePipelineStatusRequest structure.
7347type UpdatePipelineStatusInput struct {
7348	_ struct{} `type:"structure"`
7349
7350	// The identifier of the pipeline to update.
7351	//
7352	// Id is a required field
7353	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
7354
7355	// The desired status of the pipeline:
7356	//
7357	//    * Active: The pipeline is processing jobs.
7358	//
7359	//    * Paused: The pipeline is not currently processing jobs.
7360	//
7361	// Status is a required field
7362	Status *string `type:"string" required:"true"`
7363}
7364
7365// String returns the string representation
7366func (s UpdatePipelineStatusInput) String() string {
7367	return awsutil.Prettify(s)
7368}
7369
7370// GoString returns the string representation
7371func (s UpdatePipelineStatusInput) GoString() string {
7372	return s.String()
7373}
7374
7375// Validate inspects the fields of the type to determine if they are valid.
7376func (s *UpdatePipelineStatusInput) Validate() error {
7377	invalidParams := request.ErrInvalidParams{Context: "UpdatePipelineStatusInput"}
7378	if s.Id == nil {
7379		invalidParams.Add(request.NewErrParamRequired("Id"))
7380	}
7381	if s.Status == nil {
7382		invalidParams.Add(request.NewErrParamRequired("Status"))
7383	}
7384
7385	if invalidParams.Len() > 0 {
7386		return invalidParams
7387	}
7388	return nil
7389}
7390
7391// SetId sets the Id field's value.
7392func (s *UpdatePipelineStatusInput) SetId(v string) *UpdatePipelineStatusInput {
7393	s.Id = &v
7394	return s
7395}
7396
7397// SetStatus sets the Status field's value.
7398func (s *UpdatePipelineStatusInput) SetStatus(v string) *UpdatePipelineStatusInput {
7399	s.Status = &v
7400	return s
7401}
7402
7403// When you update status for a pipeline, Elastic Transcoder returns the values
7404// that you specified in the request.
7405type UpdatePipelineStatusOutput struct {
7406	_ struct{} `type:"structure"`
7407
7408	// A section of the response body that provides information about the pipeline.
7409	Pipeline *Pipeline `type:"structure"`
7410}
7411
7412// String returns the string representation
7413func (s UpdatePipelineStatusOutput) String() string {
7414	return awsutil.Prettify(s)
7415}
7416
7417// GoString returns the string representation
7418func (s UpdatePipelineStatusOutput) GoString() string {
7419	return s.String()
7420}
7421
7422// SetPipeline sets the Pipeline field's value.
7423func (s *UpdatePipelineStatusOutput) SetPipeline(v *Pipeline) *UpdatePipelineStatusOutput {
7424	s.Pipeline = v
7425	return s
7426}
7427
7428// The VideoParameters structure.
7429type VideoParameters struct {
7430	_ struct{} `type:"structure"`
7431
7432	// To better control resolution and aspect ratio of output videos, we recommend
7433	// that you use the values MaxWidth, MaxHeight, SizingPolicy, PaddingPolicy,
7434	// and DisplayAspectRatio instead of Resolution and AspectRatio. The two groups
7435	// of settings are mutually exclusive. Do not use them together.
7436	//
7437	// The display aspect ratio of the video in the output file. Valid values include:
7438	//
7439	// auto, 1:1, 4:3, 3:2, 16:9
7440	//
7441	// If you specify auto, Elastic Transcoder tries to preserve the aspect ratio
7442	// of the input file.
7443	//
7444	// If you specify an aspect ratio for the output file that differs from aspect
7445	// ratio of the input file, Elastic Transcoder adds pillarboxing (black bars
7446	// on the sides) or letterboxing (black bars on the top and bottom) to maintain
7447	// the aspect ratio of the active region of the video.
7448	AspectRatio *string `type:"string"`
7449
7450	// The bit rate of the video stream in the output file, in kilobits/second.
7451	// Valid values depend on the values of Level and Profile. If you specify auto,
7452	// Elastic Transcoder uses the detected bit rate of the input source. If you
7453	// specify a value other than auto, we recommend that you specify a value less
7454	// than or equal to the maximum H.264-compliant value listed for your level
7455	// and profile:
7456	//
7457	// Level - Maximum video bit rate in kilobits/second (baseline and main Profile)
7458	// : maximum video bit rate in kilobits/second (high Profile)
7459	//
7460	//    * 1 - 64 : 80
7461	//
7462	//    * 1b - 128 : 160
7463	//
7464	//    * 1.1 - 192 : 240
7465	//
7466	//    * 1.2 - 384 : 480
7467	//
7468	//    * 1.3 - 768 : 960
7469	//
7470	//    * 2 - 2000 : 2500
7471	//
7472	//    * 3 - 10000 : 12500
7473	//
7474	//    * 3.1 - 14000 : 17500
7475	//
7476	//    * 3.2 - 20000 : 25000
7477	//
7478	//    * 4 - 20000 : 25000
7479	//
7480	//    * 4.1 - 50000 : 62500
7481	BitRate *string `type:"string"`
7482
7483	// The video codec for the output file. Valid values include gif, H.264, mpeg2,
7484	// vp8, and vp9. You can only specify vp8 and vp9 when the container type is
7485	// webm, gif when the container type is gif, and mpeg2 when the container type
7486	// is mpg.
7487	Codec *string `type:"string"`
7488
7489	// Profile (H.264/VP8/VP9 Only)
7490	//
7491	// The H.264 profile that you want to use for the output file. Elastic Transcoder
7492	// supports the following profiles:
7493	//
7494	//    * baseline: The profile most commonly used for videoconferencing and for
7495	//    mobile applications.
7496	//
7497	//    * main: The profile used for standard-definition digital TV broadcasts.
7498	//
7499	//    * high: The profile used for high-definition digital TV broadcasts and
7500	//    for Blu-ray discs.
7501	//
7502	// Level (H.264 Only)
7503	//
7504	// The H.264 level that you want to use for the output file. Elastic Transcoder
7505	// supports the following levels:
7506	//
7507	// 1, 1b, 1.1, 1.2, 1.3, 2, 2.1, 2.2, 3, 3.1, 3.2, 4, 4.1
7508	//
7509	// MaxReferenceFrames (H.264 Only)
7510	//
7511	// Applicable only when the value of Video:Codec is H.264. The maximum number
7512	// of previously decoded frames to use as a reference for decoding future frames.
7513	// Valid values are integers 0 through 16, but we recommend that you not use
7514	// a value greater than the following:
7515	//
7516	// Min(Floor(Maximum decoded picture buffer in macroblocks * 256 / (Width in
7517	// pixels * Height in pixels)), 16)
7518	//
7519	// where Width in pixels and Height in pixels represent either MaxWidth and
7520	// MaxHeight, or Resolution. Maximum decoded picture buffer in macroblocks depends
7521	// on the value of the Level object. See the list below. (A macroblock is a
7522	// block of pixels measuring 16x16.)
7523	//
7524	//    * 1 - 396
7525	//
7526	//    * 1b - 396
7527	//
7528	//    * 1.1 - 900
7529	//
7530	//    * 1.2 - 2376
7531	//
7532	//    * 1.3 - 2376
7533	//
7534	//    * 2 - 2376
7535	//
7536	//    * 2.1 - 4752
7537	//
7538	//    * 2.2 - 8100
7539	//
7540	//    * 3 - 8100
7541	//
7542	//    * 3.1 - 18000
7543	//
7544	//    * 3.2 - 20480
7545	//
7546	//    * 4 - 32768
7547	//
7548	//    * 4.1 - 32768
7549	//
7550	// MaxBitRate (Optional, H.264/MPEG2/VP8/VP9 only)
7551	//
7552	// The maximum number of bits per second in a video buffer; the size of the
7553	// buffer is specified by BufferSize. Specify a value between 16 and 62,500.
7554	// You can reduce the bandwidth required to stream a video by reducing the maximum
7555	// bit rate, but this also reduces the quality of the video.
7556	//
7557	// BufferSize (Optional, H.264/MPEG2/VP8/VP9 only)
7558	//
7559	// The maximum number of bits in any x seconds of the output video. This window
7560	// is commonly 10 seconds, the standard segment duration when you're using FMP4
7561	// or MPEG-TS for the container type of the output video. Specify an integer
7562	// greater than 0. If you specify MaxBitRate and omit BufferSize, Elastic Transcoder
7563	// sets BufferSize to 10 times the value of MaxBitRate.
7564	//
7565	// InterlacedMode (Optional, H.264/MPEG2 Only)
7566	//
7567	// The interlace mode for the output video.
7568	//
7569	// Interlaced video is used to double the perceived frame rate for a video by
7570	// interlacing two fields (one field on every other line, the other field on
7571	// the other lines) so that the human eye registers multiple pictures per frame.
7572	// Interlacing reduces the bandwidth required for transmitting a video, but
7573	// can result in blurred images and flickering.
7574	//
7575	// Valid values include Progressive (no interlacing, top to bottom), TopFirst
7576	// (top field first), BottomFirst (bottom field first), and Auto.
7577	//
7578	// If InterlaceMode is not specified, Elastic Transcoder uses Progressive for
7579	// the output. If Auto is specified, Elastic Transcoder interlaces the output.
7580	//
7581	// ColorSpaceConversionMode (Optional, H.264/MPEG2 Only)
7582	//
7583	// The color space conversion Elastic Transcoder applies to the output video.
7584	// Color spaces are the algorithms used by the computer to store information
7585	// about how to render color. Bt.601 is the standard for standard definition
7586	// video, while Bt.709 is the standard for high definition video.
7587	//
7588	// Valid values include None, Bt709toBt601, Bt601toBt709, and Auto.
7589	//
7590	// If you chose Auto for ColorSpaceConversionMode and your output is interlaced,
7591	// your frame rate is one of 23.97, 24, 25, 29.97, 50, or 60, your SegmentDuration
7592	// is null, and you are using one of the resolution changes from the list below,
7593	// Elastic Transcoder applies the following color space conversions:
7594	//
7595	//    * Standard to HD, 720x480 to 1920x1080 - Elastic Transcoder applies Bt601ToBt709
7596	//
7597	//    * Standard to HD, 720x576 to 1920x1080 - Elastic Transcoder applies Bt601ToBt709
7598	//
7599	//    * HD to Standard, 1920x1080 to 720x480 - Elastic Transcoder applies Bt709ToBt601
7600	//
7601	//    * HD to Standard, 1920x1080 to 720x576 - Elastic Transcoder applies Bt709ToBt601
7602	//
7603	// Elastic Transcoder may change the behavior of the ColorspaceConversionModeAuto
7604	// mode in the future. All outputs in a playlist must use the same ColorSpaceConversionMode.
7605	//
7606	// If you do not specify a ColorSpaceConversionMode, Elastic Transcoder does
7607	// not change the color space of a file. If you are unsure what ColorSpaceConversionMode
7608	// was applied to your output file, you can check the AppliedColorSpaceConversion
7609	// parameter included in your job response. If your job does not have an AppliedColorSpaceConversion
7610	// in its response, no ColorSpaceConversionMode was applied.
7611	//
7612	// ChromaSubsampling
7613	//
7614	// The sampling pattern for the chroma (color) channels of the output video.
7615	// Valid values include yuv420p and yuv422p.
7616	//
7617	// yuv420p samples the chroma information of every other horizontal and every
7618	// other vertical line, yuv422p samples the color information of every horizontal
7619	// line and every other vertical line.
7620	//
7621	// LoopCount (Gif Only)
7622	//
7623	// The number of times you want the output gif to loop. Valid values include
7624	// Infinite and integers between 0 and 100, inclusive.
7625	CodecOptions map[string]*string `type:"map"`
7626
7627	// The value that Elastic Transcoder adds to the metadata in the output file.
7628	DisplayAspectRatio *string `type:"string"`
7629
7630	// Applicable only when the value of Video:Codec is one of H.264, MPEG2, or
7631	// VP8.
7632	//
7633	// Whether to use a fixed value for FixedGOP. Valid values are true and false:
7634	//
7635	//    * true: Elastic Transcoder uses the value of KeyframesMaxDist for the
7636	//    distance between key frames (the number of frames in a group of pictures,
7637	//    or GOP).
7638	//
7639	//    * false: The distance between key frames can vary.
7640	//
7641	// FixedGOP must be set to true for fmp4 containers.
7642	FixedGOP *string `type:"string"`
7643
7644	// The frames per second for the video stream in the output file. Valid values
7645	// include:
7646	//
7647	// auto, 10, 15, 23.97, 24, 25, 29.97, 30, 60
7648	//
7649	// If you specify auto, Elastic Transcoder uses the detected frame rate of the
7650	// input source. If you specify a frame rate, we recommend that you perform
7651	// the following calculation:
7652	//
7653	// Frame rate = maximum recommended decoding speed in luma samples/second /
7654	// (width in pixels * height in pixels)
7655	//
7656	// where:
7657	//
7658	//    * width in pixels and height in pixels represent the Resolution of the
7659	//    output video.
7660	//
7661	//    * maximum recommended decoding speed in Luma samples/second is less than
7662	//    or equal to the maximum value listed in the following table, based on
7663	//    the value that you specified for Level.
7664	//
7665	// The maximum recommended decoding speed in Luma samples/second for each level
7666	// is described in the following list (Level - Decoding speed):
7667	//
7668	//    * 1 - 380160
7669	//
7670	//    * 1b - 380160
7671	//
7672	//    * 1.1 - 76800
7673	//
7674	//    * 1.2 - 1536000
7675	//
7676	//    * 1.3 - 3041280
7677	//
7678	//    * 2 - 3041280
7679	//
7680	//    * 2.1 - 5068800
7681	//
7682	//    * 2.2 - 5184000
7683	//
7684	//    * 3 - 10368000
7685	//
7686	//    * 3.1 - 27648000
7687	//
7688	//    * 3.2 - 55296000
7689	//
7690	//    * 4 - 62914560
7691	//
7692	//    * 4.1 - 62914560
7693	FrameRate *string `type:"string"`
7694
7695	// Applicable only when the value of Video:Codec is one of H.264, MPEG2, or
7696	// VP8.
7697	//
7698	// The maximum number of frames between key frames. Key frames are fully encoded
7699	// frames; the frames between key frames are encoded based, in part, on the
7700	// content of the key frames. The value is an integer formatted as a string;
7701	// valid values are between 1 (every frame is a key frame) and 100000, inclusive.
7702	// A higher value results in higher compression but may also discernibly decrease
7703	// video quality.
7704	//
7705	// For Smooth outputs, the FrameRate must have a constant ratio to the KeyframesMaxDist.
7706	// This allows Smooth playlists to switch between different quality levels while
7707	// the file is being played.
7708	//
7709	// For example, an input file can have a FrameRate of 30 with a KeyframesMaxDist
7710	// of 90. The output file then needs to have a ratio of 1:3. Valid outputs would
7711	// have FrameRate of 30, 25, and 10, and KeyframesMaxDist of 90, 75, and 30,
7712	// respectively.
7713	//
7714	// Alternately, this can be achieved by setting FrameRate to auto and having
7715	// the same values for MaxFrameRate and KeyframesMaxDist.
7716	KeyframesMaxDist *string `type:"string"`
7717
7718	// If you specify auto for FrameRate, Elastic Transcoder uses the frame rate
7719	// of the input video for the frame rate of the output video. Specify the maximum
7720	// frame rate that you want Elastic Transcoder to use when the frame rate of
7721	// the input video is greater than the desired maximum frame rate of the output
7722	// video. Valid values include: 10, 15, 23.97, 24, 25, 29.97, 30, 60.
7723	MaxFrameRate *string `type:"string"`
7724
7725	// The maximum height of the output video in pixels. If you specify auto, Elastic
7726	// Transcoder uses 1080 (Full HD) as the default value. If you specify a numeric
7727	// value, enter an even integer between 96 and 3072.
7728	MaxHeight *string `type:"string"`
7729
7730	// The maximum width of the output video in pixels. If you specify auto, Elastic
7731	// Transcoder uses 1920 (Full HD) as the default value. If you specify a numeric
7732	// value, enter an even integer between 128 and 4096.
7733	MaxWidth *string `type:"string"`
7734
7735	// When you set PaddingPolicy to Pad, Elastic Transcoder may add black bars
7736	// to the top and bottom and/or left and right sides of the output video to
7737	// make the total size of the output video match the values that you specified
7738	// for MaxWidth and MaxHeight.
7739	PaddingPolicy *string `type:"string"`
7740
7741	// To better control resolution and aspect ratio of output videos, we recommend
7742	// that you use the values MaxWidth, MaxHeight, SizingPolicy, PaddingPolicy,
7743	// and DisplayAspectRatio instead of Resolution and AspectRatio. The two groups
7744	// of settings are mutually exclusive. Do not use them together.
7745	//
7746	// The width and height of the video in the output file, in pixels. Valid values
7747	// are auto and width x height:
7748	//
7749	//    * auto: Elastic Transcoder attempts to preserve the width and height of
7750	//    the input file, subject to the following rules.
7751	//
7752	//    * width x height: The width and height of the output video in pixels.
7753	//
7754	// Note the following about specifying the width and height:
7755	//
7756	//    * The width must be an even integer between 128 and 4096, inclusive.
7757	//
7758	//    * The height must be an even integer between 96 and 3072, inclusive.
7759	//
7760	//    * If you specify a resolution that is less than the resolution of the
7761	//    input file, Elastic Transcoder rescales the output file to the lower resolution.
7762	//
7763	//    * If you specify a resolution that is greater than the resolution of the
7764	//    input file, Elastic Transcoder rescales the output to the higher resolution.
7765	//
7766	//    * We recommend that you specify a resolution for which the product of
7767	//    width and height is less than or equal to the applicable value in the
7768	//    following list (List - Max width x height value):
7769	//
7770	// 1 - 25344
7771	//
7772	// 1b - 25344
7773	//
7774	// 1.1 - 101376
7775	//
7776	// 1.2 - 101376
7777	//
7778	// 1.3 - 101376
7779	//
7780	// 2 - 101376
7781	//
7782	// 2.1 - 202752
7783	//
7784	// 2.2 - 404720
7785	//
7786	// 3 - 404720
7787	//
7788	// 3.1 - 921600
7789	//
7790	// 3.2 - 1310720
7791	//
7792	// 4 - 2097152
7793	//
7794	// 4.1 - 2097152
7795	Resolution *string `type:"string"`
7796
7797	// Specify one of the following values to control scaling of the output video:
7798	//
7799	//    * Fit: Elastic Transcoder scales the output video so it matches the value
7800	//    that you specified in either MaxWidth or MaxHeight without exceeding the
7801	//    other value.
7802	//
7803	//    * Fill: Elastic Transcoder scales the output video so it matches the value
7804	//    that you specified in either MaxWidth or MaxHeight and matches or exceeds
7805	//    the other value. Elastic Transcoder centers the output video and then
7806	//    crops it in the dimension (if any) that exceeds the maximum value.
7807	//
7808	//    * Stretch: Elastic Transcoder stretches the output video to match the
7809	//    values that you specified for MaxWidth and MaxHeight. If the relative
7810	//    proportions of the input video and the output video are different, the
7811	//    output video will be distorted.
7812	//
7813	//    * Keep: Elastic Transcoder does not scale the output video. If either
7814	//    dimension of the input video exceeds the values that you specified for
7815	//    MaxWidth and MaxHeight, Elastic Transcoder crops the output video.
7816	//
7817	//    * ShrinkToFit: Elastic Transcoder scales the output video down so that
7818	//    its dimensions match the values that you specified for at least one of
7819	//    MaxWidth and MaxHeight without exceeding either value. If you specify
7820	//    this option, Elastic Transcoder does not scale the video up.
7821	//
7822	//    * ShrinkToFill: Elastic Transcoder scales the output video down so that
7823	//    its dimensions match the values that you specified for at least one of
7824	//    MaxWidth and MaxHeight without dropping below either value. If you specify
7825	//    this option, Elastic Transcoder does not scale the video up.
7826	SizingPolicy *string `type:"string"`
7827
7828	// Settings for the size, location, and opacity of graphics that you want Elastic
7829	// Transcoder to overlay over videos that are transcoded using this preset.
7830	// You can specify settings for up to four watermarks. Watermarks appear in
7831	// the specified size and location, and with the specified opacity for the duration
7832	// of the transcoded video.
7833	//
7834	// Watermarks can be in .png or .jpg format. If you want to display a watermark
7835	// that is not rectangular, use the .png format, which supports transparency.
7836	//
7837	// When you create a job that uses this preset, you specify the .png or .jpg
7838	// graphics that you want Elastic Transcoder to include in the transcoded videos.
7839	// You can specify fewer graphics in the job than you specify watermark settings
7840	// in the preset, which allows you to use the same preset for up to four watermarks
7841	// that have different dimensions.
7842	Watermarks []*PresetWatermark `type:"list"`
7843}
7844
7845// String returns the string representation
7846func (s VideoParameters) String() string {
7847	return awsutil.Prettify(s)
7848}
7849
7850// GoString returns the string representation
7851func (s VideoParameters) GoString() string {
7852	return s.String()
7853}
7854
7855// Validate inspects the fields of the type to determine if they are valid.
7856func (s *VideoParameters) Validate() error {
7857	invalidParams := request.ErrInvalidParams{Context: "VideoParameters"}
7858	if s.Watermarks != nil {
7859		for i, v := range s.Watermarks {
7860			if v == nil {
7861				continue
7862			}
7863			if err := v.Validate(); err != nil {
7864				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Watermarks", i), err.(request.ErrInvalidParams))
7865			}
7866		}
7867	}
7868
7869	if invalidParams.Len() > 0 {
7870		return invalidParams
7871	}
7872	return nil
7873}
7874
7875// SetAspectRatio sets the AspectRatio field's value.
7876func (s *VideoParameters) SetAspectRatio(v string) *VideoParameters {
7877	s.AspectRatio = &v
7878	return s
7879}
7880
7881// SetBitRate sets the BitRate field's value.
7882func (s *VideoParameters) SetBitRate(v string) *VideoParameters {
7883	s.BitRate = &v
7884	return s
7885}
7886
7887// SetCodec sets the Codec field's value.
7888func (s *VideoParameters) SetCodec(v string) *VideoParameters {
7889	s.Codec = &v
7890	return s
7891}
7892
7893// SetCodecOptions sets the CodecOptions field's value.
7894func (s *VideoParameters) SetCodecOptions(v map[string]*string) *VideoParameters {
7895	s.CodecOptions = v
7896	return s
7897}
7898
7899// SetDisplayAspectRatio sets the DisplayAspectRatio field's value.
7900func (s *VideoParameters) SetDisplayAspectRatio(v string) *VideoParameters {
7901	s.DisplayAspectRatio = &v
7902	return s
7903}
7904
7905// SetFixedGOP sets the FixedGOP field's value.
7906func (s *VideoParameters) SetFixedGOP(v string) *VideoParameters {
7907	s.FixedGOP = &v
7908	return s
7909}
7910
7911// SetFrameRate sets the FrameRate field's value.
7912func (s *VideoParameters) SetFrameRate(v string) *VideoParameters {
7913	s.FrameRate = &v
7914	return s
7915}
7916
7917// SetKeyframesMaxDist sets the KeyframesMaxDist field's value.
7918func (s *VideoParameters) SetKeyframesMaxDist(v string) *VideoParameters {
7919	s.KeyframesMaxDist = &v
7920	return s
7921}
7922
7923// SetMaxFrameRate sets the MaxFrameRate field's value.
7924func (s *VideoParameters) SetMaxFrameRate(v string) *VideoParameters {
7925	s.MaxFrameRate = &v
7926	return s
7927}
7928
7929// SetMaxHeight sets the MaxHeight field's value.
7930func (s *VideoParameters) SetMaxHeight(v string) *VideoParameters {
7931	s.MaxHeight = &v
7932	return s
7933}
7934
7935// SetMaxWidth sets the MaxWidth field's value.
7936func (s *VideoParameters) SetMaxWidth(v string) *VideoParameters {
7937	s.MaxWidth = &v
7938	return s
7939}
7940
7941// SetPaddingPolicy sets the PaddingPolicy field's value.
7942func (s *VideoParameters) SetPaddingPolicy(v string) *VideoParameters {
7943	s.PaddingPolicy = &v
7944	return s
7945}
7946
7947// SetResolution sets the Resolution field's value.
7948func (s *VideoParameters) SetResolution(v string) *VideoParameters {
7949	s.Resolution = &v
7950	return s
7951}
7952
7953// SetSizingPolicy sets the SizingPolicy field's value.
7954func (s *VideoParameters) SetSizingPolicy(v string) *VideoParameters {
7955	s.SizingPolicy = &v
7956	return s
7957}
7958
7959// SetWatermarks sets the Watermarks field's value.
7960func (s *VideoParameters) SetWatermarks(v []*PresetWatermark) *VideoParameters {
7961	s.Watermarks = v
7962	return s
7963}
7964
7965// Elastic Transcoder returns a warning if the resources used by your pipeline
7966// are not in the same region as the pipeline.
7967//
7968// Using resources in the same region, such as your Amazon S3 buckets, Amazon
7969// SNS notification topics, and AWS KMS key, reduces processing time and prevents
7970// cross-regional charges.
7971type Warning struct {
7972	_ struct{} `type:"structure"`
7973
7974	// The code of the cross-regional warning.
7975	Code *string `type:"string"`
7976
7977	// The message explaining what resources are in a different region from the
7978	// pipeline.
7979	//
7980	// AWS KMS keys must be in the same region as the pipeline.
7981	Message *string `type:"string"`
7982}
7983
7984// String returns the string representation
7985func (s Warning) String() string {
7986	return awsutil.Prettify(s)
7987}
7988
7989// GoString returns the string representation
7990func (s Warning) GoString() string {
7991	return s.String()
7992}
7993
7994// SetCode sets the Code field's value.
7995func (s *Warning) SetCode(v string) *Warning {
7996	s.Code = &v
7997	return s
7998}
7999
8000// SetMessage sets the Message field's value.
8001func (s *Warning) SetMessage(v string) *Warning {
8002	s.Message = &v
8003	return s
8004}
8005