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