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 Types:
72//   * ValidationException
73//   One or more required parameter values were not provided in the request.
74//
75//   * IncompatibleVersionException
76//
77//   * 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//   * 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//   * AccessDeniedException
87//   General authentication failure. The request was not signed correctly.
88//
89//   * 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 Types:
172//   * ValidationException
173//   One or more required parameter values were not provided in the request.
174//
175//   * IncompatibleVersionException
176//
177//   * 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//   * AccessDeniedException
183//   General authentication failure. The request was not signed correctly.
184//
185//   * LimitExceededException
186//   Too many operations for a given AWS account. For example, the number of pipelines
187//   exceeds the maximum allowed.
188//
189//   * 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 Types:
266//   * ValidationException
267//   One or more required parameter values were not provided in the request.
268//
269//   * IncompatibleVersionException
270//
271//   * AccessDeniedException
272//   General authentication failure. The request was not signed correctly.
273//
274//   * 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//   * LimitExceededException
280//   Too many operations for a given AWS account. For example, the number of pipelines
281//   exceeds the maximum allowed.
282//
283//   * 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 Types:
374//   * ValidationException
375//   One or more required parameter values were not provided in the request.
376//
377//   * IncompatibleVersionException
378//
379//   * AccessDeniedException
380//   General authentication failure. The request was not signed correctly.
381//
382//   * LimitExceededException
383//   Too many operations for a given AWS account. For example, the number of pipelines
384//   exceeds the maximum allowed.
385//
386//   * 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 Types:
468//   * ValidationException
469//   One or more required parameter values were not provided in the request.
470//
471//   * IncompatibleVersionException
472//
473//   * 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//   * 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//   * AccessDeniedException
483//   General authentication failure. The request was not signed correctly.
484//
485//   * 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 Types:
565//   * ValidationException
566//   One or more required parameter values were not provided in the request.
567//
568//   * IncompatibleVersionException
569//
570//   * 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//   * AccessDeniedException
576//   General authentication failure. The request was not signed correctly.
577//
578//   * 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 Types:
665//   * ValidationException
666//   One or more required parameter values were not provided in the request.
667//
668//   * IncompatibleVersionException
669//
670//   * 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//   * AccessDeniedException
676//   General authentication failure. The request was not signed correctly.
677//
678//   * 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 Types:
815//   * ValidationException
816//   One or more required parameter values were not provided in the request.
817//
818//   * IncompatibleVersionException
819//
820//   * 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//   * AccessDeniedException
826//   General authentication failure. The request was not signed correctly.
827//
828//   * 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 Types:
964//   * ValidationException
965//   One or more required parameter values were not provided in the request.
966//
967//   * IncompatibleVersionException
968//
969//   * AccessDeniedException
970//   General authentication failure. The request was not signed correctly.
971//
972//   * 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 Types:
1108//   * ValidationException
1109//   One or more required parameter values were not provided in the request.
1110//
1111//   * IncompatibleVersionException
1112//
1113//   * AccessDeniedException
1114//   General authentication failure. The request was not signed correctly.
1115//
1116//   * 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 Types:
1245//   * ValidationException
1246//   One or more required parameter values were not provided in the request.
1247//
1248//   * IncompatibleVersionException
1249//
1250//   * 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//   * AccessDeniedException
1256//   General authentication failure. The request was not signed correctly.
1257//
1258//   * 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 Types:
1335//   * ValidationException
1336//   One or more required parameter values were not provided in the request.
1337//
1338//   * IncompatibleVersionException
1339//
1340//   * 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//   * AccessDeniedException
1346//   General authentication failure. The request was not signed correctly.
1347//
1348//   * 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 Types:
1425//   * ValidationException
1426//   One or more required parameter values were not provided in the request.
1427//
1428//   * IncompatibleVersionException
1429//
1430//   * 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//   * AccessDeniedException
1436//   General authentication failure. The request was not signed correctly.
1437//
1438//   * 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 Types:
1526//   * ValidationException
1527//   One or more required parameter values were not provided in the request.
1528//
1529//   * IncompatibleVersionException
1530//
1531//   * 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//   * AccessDeniedException
1537//   General authentication failure. The request was not signed correctly.
1538//
1539//   * 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 Types:
1625//   * ValidationException
1626//   One or more required parameter values were not provided in the request.
1627//
1628//   * IncompatibleVersionException
1629//
1630//   * AccessDeniedException
1631//   General authentication failure. The request was not signed correctly.
1632//
1633//   * 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//   * 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//   * 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 Types:
1723//   * ValidationException
1724//   One or more required parameter values were not provided in the request.
1725//
1726//   * IncompatibleVersionException
1727//
1728//   * 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//   * 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//   * AccessDeniedException
1738//   General authentication failure. The request was not signed correctly.
1739//
1740//   * 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 Types:
1824//   * ValidationException
1825//   One or more required parameter values were not provided in the request.
1826//
1827//   * IncompatibleVersionException
1828//
1829//   * 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//   * 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//   * AccessDeniedException
1839//   General authentication failure. The request was not signed correctly.
1840//
1841//   * 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// General authentication failure. The request was not signed correctly.
1867type AccessDeniedException struct {
1868	_            struct{}                  `type:"structure"`
1869	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
1870
1871	Message_ *string `locationName:"message" type:"string"`
1872}
1873
1874// String returns the string representation.
1875//
1876// API parameter values that are decorated as "sensitive" in the API will not
1877// be included in the string output. The member name will be present, but the
1878// value will be replaced with "sensitive".
1879func (s AccessDeniedException) String() string {
1880	return awsutil.Prettify(s)
1881}
1882
1883// GoString returns the string representation.
1884//
1885// API parameter values that are decorated as "sensitive" in the API will not
1886// be included in the string output. The member name will be present, but the
1887// value will be replaced with "sensitive".
1888func (s AccessDeniedException) GoString() string {
1889	return s.String()
1890}
1891
1892func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
1893	return &AccessDeniedException{
1894		RespMetadata: v,
1895	}
1896}
1897
1898// Code returns the exception type name.
1899func (s *AccessDeniedException) Code() string {
1900	return "AccessDeniedException"
1901}
1902
1903// Message returns the exception's message.
1904func (s *AccessDeniedException) Message() string {
1905	if s.Message_ != nil {
1906		return *s.Message_
1907	}
1908	return ""
1909}
1910
1911// OrigErr always returns nil, satisfies awserr.Error interface.
1912func (s *AccessDeniedException) OrigErr() error {
1913	return nil
1914}
1915
1916func (s *AccessDeniedException) Error() string {
1917	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
1918}
1919
1920// Status code returns the HTTP status code for the request's response error.
1921func (s *AccessDeniedException) StatusCode() int {
1922	return s.RespMetadata.StatusCode
1923}
1924
1925// RequestID returns the service's response RequestID for request.
1926func (s *AccessDeniedException) RequestID() string {
1927	return s.RespMetadata.RequestID
1928}
1929
1930// The file to be used as album art. There can be multiple artworks associated
1931// with an audio file, to a maximum of 20.
1932//
1933// To remove artwork or leave the artwork empty, you can either set Artwork
1934// to null, or set the Merge Policy to "Replace" and use an empty Artwork array.
1935//
1936// To pass through existing artwork unchanged, set the Merge Policy to "Prepend",
1937// "Append", or "Fallback", and use an empty Artwork array.
1938type Artwork struct {
1939	_ struct{} `type:"structure"`
1940
1941	// The format of album art, if any. Valid formats are .jpg and .png.
1942	AlbumArtFormat *string `type:"string"`
1943
1944	// The encryption settings, if any, that you want Elastic Transcoder to apply
1945	// to your artwork.
1946	Encryption *Encryption `type:"structure"`
1947
1948	// The name of the file to be used as album art. To determine which Amazon S3
1949	// bucket contains the specified file, Elastic Transcoder checks the pipeline
1950	// specified by PipelineId; the InputBucket object in that pipeline identifies
1951	// the bucket.
1952	//
1953	// If the file name includes a prefix, for example, cooking/pie.jpg, include
1954	// the prefix in the key. If the file isn't in the specified bucket, Elastic
1955	// Transcoder returns an error.
1956	InputKey *string `min:"1" type:"string"`
1957
1958	// The maximum height of the output album art in pixels. If you specify auto,
1959	// Elastic Transcoder uses 600 as the default value. If you specify a numeric
1960	// value, enter an even integer between 32 and 3072, inclusive.
1961	MaxHeight *string `type:"string"`
1962
1963	// The maximum width of the output album art in pixels. If you specify auto,
1964	// Elastic Transcoder uses 600 as the default value. If you specify a numeric
1965	// value, enter an even integer between 32 and 4096, inclusive.
1966	MaxWidth *string `type:"string"`
1967
1968	// When you set PaddingPolicy to Pad, Elastic Transcoder may add white bars
1969	// to the top and bottom and/or left and right sides of the output album art
1970	// to make the total size of the output art match the values that you specified
1971	// for MaxWidth and MaxHeight.
1972	PaddingPolicy *string `type:"string"`
1973
1974	// Specify one of the following values to control scaling of the output album
1975	// art:
1976	//
1977	//    * Fit: Elastic Transcoder scales the output art so it matches the value
1978	//    that you specified in either MaxWidth or MaxHeight without exceeding the
1979	//    other value.
1980	//
1981	//    * Fill: Elastic Transcoder scales the output art so it matches the value
1982	//    that you specified in either MaxWidth or MaxHeight and matches or exceeds
1983	//    the other value. Elastic Transcoder centers the output art and then crops
1984	//    it in the dimension (if any) that exceeds the maximum value.
1985	//
1986	//    * Stretch: Elastic Transcoder stretches the output art to match the values
1987	//    that you specified for MaxWidth and MaxHeight. If the relative proportions
1988	//    of the input art and the output art are different, the output art will
1989	//    be distorted.
1990	//
1991	//    * Keep: Elastic Transcoder does not scale the output art. If either dimension
1992	//    of the input art exceeds the values that you specified for MaxWidth and
1993	//    MaxHeight, Elastic Transcoder crops the output art.
1994	//
1995	//    * ShrinkToFit: Elastic Transcoder scales the output art down so that its
1996	//    dimensions match the values that you specified for at least one of MaxWidth
1997	//    and MaxHeight without exceeding either value. If you specify this option,
1998	//    Elastic Transcoder does not scale the art up.
1999	//
2000	//    * ShrinkToFill Elastic Transcoder scales the output art down so that its
2001	//    dimensions match the values that you specified for at least one of MaxWidth
2002	//    and MaxHeight without dropping below either value. If you specify this
2003	//    option, Elastic Transcoder does not scale the art up.
2004	SizingPolicy *string `type:"string"`
2005}
2006
2007// String returns the string representation.
2008//
2009// API parameter values that are decorated as "sensitive" in the API will not
2010// be included in the string output. The member name will be present, but the
2011// value will be replaced with "sensitive".
2012func (s Artwork) String() string {
2013	return awsutil.Prettify(s)
2014}
2015
2016// GoString returns the string representation.
2017//
2018// API parameter values that are decorated as "sensitive" in the API will not
2019// be included in the string output. The member name will be present, but the
2020// value will be replaced with "sensitive".
2021func (s Artwork) GoString() string {
2022	return s.String()
2023}
2024
2025// Validate inspects the fields of the type to determine if they are valid.
2026func (s *Artwork) Validate() error {
2027	invalidParams := request.ErrInvalidParams{Context: "Artwork"}
2028	if s.InputKey != nil && len(*s.InputKey) < 1 {
2029		invalidParams.Add(request.NewErrParamMinLen("InputKey", 1))
2030	}
2031
2032	if invalidParams.Len() > 0 {
2033		return invalidParams
2034	}
2035	return nil
2036}
2037
2038// SetAlbumArtFormat sets the AlbumArtFormat field's value.
2039func (s *Artwork) SetAlbumArtFormat(v string) *Artwork {
2040	s.AlbumArtFormat = &v
2041	return s
2042}
2043
2044// SetEncryption sets the Encryption field's value.
2045func (s *Artwork) SetEncryption(v *Encryption) *Artwork {
2046	s.Encryption = v
2047	return s
2048}
2049
2050// SetInputKey sets the InputKey field's value.
2051func (s *Artwork) SetInputKey(v string) *Artwork {
2052	s.InputKey = &v
2053	return s
2054}
2055
2056// SetMaxHeight sets the MaxHeight field's value.
2057func (s *Artwork) SetMaxHeight(v string) *Artwork {
2058	s.MaxHeight = &v
2059	return s
2060}
2061
2062// SetMaxWidth sets the MaxWidth field's value.
2063func (s *Artwork) SetMaxWidth(v string) *Artwork {
2064	s.MaxWidth = &v
2065	return s
2066}
2067
2068// SetPaddingPolicy sets the PaddingPolicy field's value.
2069func (s *Artwork) SetPaddingPolicy(v string) *Artwork {
2070	s.PaddingPolicy = &v
2071	return s
2072}
2073
2074// SetSizingPolicy sets the SizingPolicy field's value.
2075func (s *Artwork) SetSizingPolicy(v string) *Artwork {
2076	s.SizingPolicy = &v
2077	return s
2078}
2079
2080// Options associated with your audio codec.
2081type AudioCodecOptions struct {
2082	_ struct{} `type:"structure"`
2083
2084	// You can only choose an audio bit depth when you specify flac or pcm for the
2085	// value of Audio:Codec.
2086	//
2087	// The bit depth of a sample is how many bits of information are included in
2088	// the audio samples. The higher the bit depth, the better the audio, but the
2089	// larger the file.
2090	//
2091	// Valid values are 16 and 24.
2092	//
2093	// The most common bit depth is 24.
2094	BitDepth *string `type:"string"`
2095
2096	// You can only choose an audio bit order when you specify pcm for the value
2097	// of Audio:Codec.
2098	//
2099	// The order the bits of a PCM sample are stored in.
2100	//
2101	// The supported value is LittleEndian.
2102	BitOrder *string `type:"string"`
2103
2104	// You can only choose an audio profile when you specify AAC for the value of
2105	// Audio:Codec.
2106	//
2107	// Specify the AAC profile for the output file. Elastic Transcoder supports
2108	// the following profiles:
2109	//
2110	//    * auto: If you specify auto, Elastic Transcoder selects the profile based
2111	//    on the bit rate selected for the output file.
2112	//
2113	//    * AAC-LC: The most common AAC profile. Use for bit rates larger than 64
2114	//    kbps.
2115	//
2116	//    * HE-AAC: Not supported on some older players and devices. Use for bit
2117	//    rates between 40 and 80 kbps.
2118	//
2119	//    * HE-AACv2: Not supported on some players and devices. Use for bit rates
2120	//    less than 48 kbps.
2121	//
2122	// All outputs in a Smooth playlist must have the same value for Profile.
2123	//
2124	// If you created any presets before AAC profiles were added, Elastic Transcoder
2125	// automatically updated your presets to use AAC-LC. You can change the value
2126	// as required.
2127	Profile *string `type:"string"`
2128
2129	// You can only choose whether an audio sample is signed when you specify pcm
2130	// for the value of Audio:Codec.
2131	//
2132	// Whether audio samples are represented with negative and positive numbers
2133	// (signed) or only positive numbers (unsigned).
2134	//
2135	// The supported value is Signed.
2136	Signed *string `type:"string"`
2137}
2138
2139// String returns the string representation.
2140//
2141// API parameter values that are decorated as "sensitive" in the API will not
2142// be included in the string output. The member name will be present, but the
2143// value will be replaced with "sensitive".
2144func (s AudioCodecOptions) String() string {
2145	return awsutil.Prettify(s)
2146}
2147
2148// GoString returns the string representation.
2149//
2150// API parameter values that are decorated as "sensitive" in the API will not
2151// be included in the string output. The member name will be present, but the
2152// value will be replaced with "sensitive".
2153func (s AudioCodecOptions) GoString() string {
2154	return s.String()
2155}
2156
2157// SetBitDepth sets the BitDepth field's value.
2158func (s *AudioCodecOptions) SetBitDepth(v string) *AudioCodecOptions {
2159	s.BitDepth = &v
2160	return s
2161}
2162
2163// SetBitOrder sets the BitOrder field's value.
2164func (s *AudioCodecOptions) SetBitOrder(v string) *AudioCodecOptions {
2165	s.BitOrder = &v
2166	return s
2167}
2168
2169// SetProfile sets the Profile field's value.
2170func (s *AudioCodecOptions) SetProfile(v string) *AudioCodecOptions {
2171	s.Profile = &v
2172	return s
2173}
2174
2175// SetSigned sets the Signed field's value.
2176func (s *AudioCodecOptions) SetSigned(v string) *AudioCodecOptions {
2177	s.Signed = &v
2178	return s
2179}
2180
2181// Parameters required for transcoding audio.
2182type AudioParameters struct {
2183	_ struct{} `type:"structure"`
2184
2185	// The method of organizing audio channels and tracks. Use Audio:Channels to
2186	// specify the number of channels in your output, and Audio:AudioPackingMode
2187	// to specify the number of tracks and their relation to the channels. If you
2188	// do not specify an Audio:AudioPackingMode, Elastic Transcoder uses SingleTrack.
2189	//
2190	// The following values are valid:
2191	//
2192	// SingleTrack, OneChannelPerTrack, and OneChannelPerTrackWithMosTo8Tracks
2193	//
2194	// When you specify SingleTrack, Elastic Transcoder creates a single track for
2195	// your output. The track can have up to eight channels. Use SingleTrack for
2196	// all non-mxf containers.
2197	//
2198	// The outputs of SingleTrack for a specific channel value and inputs are as
2199	// follows:
2200	//
2201	//    * 0 channels with any input: Audio omitted from the output
2202	//
2203	//    * 1, 2, or auto channels with no audio input: Audio omitted from the output
2204	//
2205	//    * 1 channel with any input with audio: One track with one channel, downmixed
2206	//    if necessary
2207	//
2208	//    * 2 channels with one track with one channel: One track with two identical
2209	//    channels
2210	//
2211	//    * 2 or auto channels with two tracks with one channel each: One track
2212	//    with two channels
2213	//
2214	//    * 2 or auto channels with one track with two channels: One track with
2215	//    two channels
2216	//
2217	//    * 2 channels with one track with multiple channels: One track with two
2218	//    channels
2219	//
2220	//    * auto channels with one track with one channel: One track with one channel
2221	//
2222	//    * auto channels with one track with multiple channels: One track with
2223	//    multiple channels
2224	//
2225	// When you specify OneChannelPerTrack, Elastic Transcoder creates a new track
2226	// for every channel in your output. Your output can have up to eight single-channel
2227	// tracks.
2228	//
2229	// The outputs of OneChannelPerTrack for a specific channel value and inputs
2230	// are as follows:
2231	//
2232	//    * 0 channels with any input: Audio omitted from the output
2233	//
2234	//    * 1, 2, or auto channels with no audio input: Audio omitted from the output
2235	//
2236	//    * 1 channel with any input with audio: One track with one channel, downmixed
2237	//    if necessary
2238	//
2239	//    * 2 channels with one track with one channel: Two tracks with one identical
2240	//    channel each
2241	//
2242	//    * 2 or auto channels with two tracks with one channel each: Two tracks
2243	//    with one channel each
2244	//
2245	//    * 2 or auto channels with one track with two channels: Two tracks with
2246	//    one channel each
2247	//
2248	//    * 2 channels with one track with multiple channels: Two tracks with one
2249	//    channel each
2250	//
2251	//    * auto channels with one track with one channel: One track with one channel
2252	//
2253	//    * auto channels with one track with multiple channels: Up to eight tracks
2254	//    with one channel each
2255	//
2256	// When you specify OneChannelPerTrackWithMosTo8Tracks, Elastic Transcoder creates
2257	// eight single-channel tracks for your output. All tracks that do not contain
2258	// audio data from an input channel are MOS, or Mit Out Sound, tracks.
2259	//
2260	// The outputs of OneChannelPerTrackWithMosTo8Tracks for a specific channel
2261	// value and inputs are as follows:
2262	//
2263	//    * 0 channels with any input: Audio omitted from the output
2264	//
2265	//    * 1, 2, or auto channels with no audio input: Audio omitted from the output
2266	//
2267	//    * 1 channel with any input with audio: One track with one channel, downmixed
2268	//    if necessary, plus six MOS tracks
2269	//
2270	//    * 2 channels with one track with one channel: Two tracks with one identical
2271	//    channel each, plus six MOS tracks
2272	//
2273	//    * 2 or auto channels with two tracks with one channel each: Two tracks
2274	//    with one channel each, plus six MOS tracks
2275	//
2276	//    * 2 or auto channels with one track with two channels: Two tracks with
2277	//    one channel each, plus six MOS tracks
2278	//
2279	//    * 2 channels with one track with multiple channels: Two tracks with one
2280	//    channel each, plus six MOS tracks
2281	//
2282	//    * auto channels with one track with one channel: One track with one channel,
2283	//    plus seven MOS tracks
2284	//
2285	//    * auto channels with one track with multiple channels: Up to eight tracks
2286	//    with one channel each, plus MOS tracks until there are eight tracks in
2287	//    all
2288	AudioPackingMode *string `type:"string"`
2289
2290	// The bit rate of the audio stream in the output file, in kilobits/second.
2291	// Enter an integer between 64 and 320, inclusive.
2292	BitRate *string `type:"string"`
2293
2294	// The number of audio channels in the output file. The following values are
2295	// valid:
2296	//
2297	// auto, 0, 1, 2
2298	//
2299	// One channel carries the information played by a single speaker. For example,
2300	// a stereo track with two channels sends one channel to the left speaker, and
2301	// the other channel to the right speaker. The output channels are organized
2302	// into tracks. If you want Elastic Transcoder to automatically detect the number
2303	// of audio channels in the input file and use that value for the output file,
2304	// select auto.
2305	//
2306	// The output of a specific channel value and inputs are as follows:
2307	//
2308	//    * auto channel specified, with any input: Pass through up to eight input
2309	//    channels.
2310	//
2311	//    * 0 channels specified, with any input: Audio omitted from the output.
2312	//
2313	//    * 1 channel specified, with at least one input channel: Mono sound.
2314	//
2315	//    * 2 channels specified, with any input: Two identical mono channels or
2316	//    stereo. For more information about tracks, see Audio:AudioPackingMode.
2317	//
2318	// For more information about how Elastic Transcoder organizes channels and
2319	// tracks, see Audio:AudioPackingMode.
2320	Channels *string `type:"string"`
2321
2322	// The audio codec for the output file. Valid values include aac, flac, mp2,
2323	// mp3, pcm, and vorbis.
2324	Codec *string `type:"string"`
2325
2326	// If you specified AAC for Audio:Codec, this is the AAC compression profile
2327	// to use. Valid values include:
2328	//
2329	// auto, AAC-LC, HE-AAC, HE-AACv2
2330	//
2331	// If you specify auto, Elastic Transcoder chooses a profile based on the bit
2332	// rate of the output file.
2333	CodecOptions *AudioCodecOptions `type:"structure"`
2334
2335	// The sample rate of the audio stream in the output file, in Hertz. Valid values
2336	// include:
2337	//
2338	// auto, 22050, 32000, 44100, 48000, 96000
2339	//
2340	// If you specify auto, Elastic Transcoder automatically detects the sample
2341	// rate.
2342	SampleRate *string `type:"string"`
2343}
2344
2345// String returns the string representation.
2346//
2347// API parameter values that are decorated as "sensitive" in the API will not
2348// be included in the string output. The member name will be present, but the
2349// value will be replaced with "sensitive".
2350func (s AudioParameters) String() string {
2351	return awsutil.Prettify(s)
2352}
2353
2354// GoString returns the string representation.
2355//
2356// API parameter values that are decorated as "sensitive" in the API will not
2357// be included in the string output. The member name will be present, but the
2358// value will be replaced with "sensitive".
2359func (s AudioParameters) GoString() string {
2360	return s.String()
2361}
2362
2363// SetAudioPackingMode sets the AudioPackingMode field's value.
2364func (s *AudioParameters) SetAudioPackingMode(v string) *AudioParameters {
2365	s.AudioPackingMode = &v
2366	return s
2367}
2368
2369// SetBitRate sets the BitRate field's value.
2370func (s *AudioParameters) SetBitRate(v string) *AudioParameters {
2371	s.BitRate = &v
2372	return s
2373}
2374
2375// SetChannels sets the Channels field's value.
2376func (s *AudioParameters) SetChannels(v string) *AudioParameters {
2377	s.Channels = &v
2378	return s
2379}
2380
2381// SetCodec sets the Codec field's value.
2382func (s *AudioParameters) SetCodec(v string) *AudioParameters {
2383	s.Codec = &v
2384	return s
2385}
2386
2387// SetCodecOptions sets the CodecOptions field's value.
2388func (s *AudioParameters) SetCodecOptions(v *AudioCodecOptions) *AudioParameters {
2389	s.CodecOptions = v
2390	return s
2391}
2392
2393// SetSampleRate sets the SampleRate field's value.
2394func (s *AudioParameters) SetSampleRate(v string) *AudioParameters {
2395	s.SampleRate = &v
2396	return s
2397}
2398
2399// The CancelJobRequest structure.
2400type CancelJobInput struct {
2401	_ struct{} `type:"structure" nopayload:"true"`
2402
2403	// The identifier of the job that you want to cancel.
2404	//
2405	// To get a list of the jobs (including their jobId) that have a status of Submitted,
2406	// use the ListJobsByStatus API action.
2407	//
2408	// Id is a required field
2409	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
2410}
2411
2412// String returns the string representation.
2413//
2414// API parameter values that are decorated as "sensitive" in the API will not
2415// be included in the string output. The member name will be present, but the
2416// value will be replaced with "sensitive".
2417func (s CancelJobInput) String() string {
2418	return awsutil.Prettify(s)
2419}
2420
2421// GoString returns the string representation.
2422//
2423// API parameter values that are decorated as "sensitive" in the API will not
2424// be included in the string output. The member name will be present, but the
2425// value will be replaced with "sensitive".
2426func (s CancelJobInput) GoString() string {
2427	return s.String()
2428}
2429
2430// Validate inspects the fields of the type to determine if they are valid.
2431func (s *CancelJobInput) Validate() error {
2432	invalidParams := request.ErrInvalidParams{Context: "CancelJobInput"}
2433	if s.Id == nil {
2434		invalidParams.Add(request.NewErrParamRequired("Id"))
2435	}
2436	if s.Id != nil && len(*s.Id) < 1 {
2437		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
2438	}
2439
2440	if invalidParams.Len() > 0 {
2441		return invalidParams
2442	}
2443	return nil
2444}
2445
2446// SetId sets the Id field's value.
2447func (s *CancelJobInput) SetId(v string) *CancelJobInput {
2448	s.Id = &v
2449	return s
2450}
2451
2452// The response body contains a JSON object. If the job is successfully canceled,
2453// the value of Success is true.
2454type CancelJobOutput struct {
2455	_ struct{} `type:"structure"`
2456}
2457
2458// String returns the string representation.
2459//
2460// API parameter values that are decorated as "sensitive" in the API will not
2461// be included in the string output. The member name will be present, but the
2462// value will be replaced with "sensitive".
2463func (s CancelJobOutput) String() string {
2464	return awsutil.Prettify(s)
2465}
2466
2467// GoString returns the string representation.
2468//
2469// API parameter values that are decorated as "sensitive" in the API will not
2470// be included in the string output. The member name will be present, but the
2471// value will be replaced with "sensitive".
2472func (s CancelJobOutput) GoString() string {
2473	return s.String()
2474}
2475
2476// The file format of the output captions. If you leave this value blank, Elastic
2477// Transcoder returns an error.
2478type CaptionFormat struct {
2479	_ struct{} `type:"structure"`
2480
2481	// The encryption settings, if any, that you want Elastic Transcoder to apply
2482	// to your caption formats.
2483	Encryption *Encryption `type:"structure"`
2484
2485	// The format you specify determines whether Elastic Transcoder generates an
2486	// embedded or sidecar caption for this output.
2487	//
2488	//    * Valid Embedded Caption Formats: for FLAC: None For MP3: None For MP4:
2489	//    mov-text For MPEG-TS: None For ogg: None For webm: None
2490	//
2491	//    * Valid Sidecar Caption Formats: Elastic Transcoder supports dfxp (first
2492	//    div element only), scc, srt, and webvtt. If you want ttml or smpte-tt
2493	//    compatible captions, specify dfxp as your output format. For FMP4: dfxp
2494	//    Non-FMP4 outputs: All sidecar types fmp4 captions have an extension of
2495	//    .ismt
2496	Format *string `type:"string"`
2497
2498	// The prefix for caption filenames, in the form description-{language}, where:
2499	//
2500	//    * description is a description of the video.
2501	//
2502	//    * {language} is a literal value that Elastic Transcoder replaces with
2503	//    the two- or three-letter code for the language of the caption in the output
2504	//    file names.
2505	//
2506	// If you don't include {language} in the file name pattern, Elastic Transcoder
2507	// automatically appends "{language}" to the value that you specify for the
2508	// description. In addition, Elastic Transcoder automatically appends the count
2509	// to the end of the segment files.
2510	//
2511	// For example, suppose you're transcoding into srt format. When you enter "Sydney-{language}-sunrise",
2512	// and the language of the captions is English (en), the name of the first caption
2513	// file is be Sydney-en-sunrise00000.srt.
2514	Pattern *string `type:"string"`
2515}
2516
2517// String returns the string representation.
2518//
2519// API parameter values that are decorated as "sensitive" in the API will not
2520// be included in the string output. The member name will be present, but the
2521// value will be replaced with "sensitive".
2522func (s CaptionFormat) String() string {
2523	return awsutil.Prettify(s)
2524}
2525
2526// GoString returns the string representation.
2527//
2528// API parameter values that are decorated as "sensitive" in the API will not
2529// be included in the string output. The member name will be present, but the
2530// value will be replaced with "sensitive".
2531func (s CaptionFormat) GoString() string {
2532	return s.String()
2533}
2534
2535// SetEncryption sets the Encryption field's value.
2536func (s *CaptionFormat) SetEncryption(v *Encryption) *CaptionFormat {
2537	s.Encryption = v
2538	return s
2539}
2540
2541// SetFormat sets the Format field's value.
2542func (s *CaptionFormat) SetFormat(v string) *CaptionFormat {
2543	s.Format = &v
2544	return s
2545}
2546
2547// SetPattern sets the Pattern field's value.
2548func (s *CaptionFormat) SetPattern(v string) *CaptionFormat {
2549	s.Pattern = &v
2550	return s
2551}
2552
2553// A source file for the input sidecar captions used during the transcoding
2554// process.
2555type CaptionSource struct {
2556	_ struct{} `type:"structure"`
2557
2558	// The encryption settings, if any, that Elastic Transcoder needs to decyrpt
2559	// your caption sources, or that you want Elastic Transcoder to apply to your
2560	// caption sources.
2561	Encryption *Encryption `type:"structure"`
2562
2563	// The name of the sidecar caption file that you want Elastic Transcoder to
2564	// include in the output file.
2565	Key *string `min:"1" type:"string"`
2566
2567	// The label of the caption shown in the player when choosing a language. We
2568	// recommend that you put the caption language name here, in the language of
2569	// the captions.
2570	Label *string `min:"1" type:"string"`
2571
2572	// A string that specifies the language of the caption. If you specified multiple
2573	// inputs with captions, the caption language must match in order to be included
2574	// in the output. Specify this as one of:
2575	//
2576	//    * 2-character ISO 639-1 code
2577	//
2578	//    * 3-character ISO 639-2 code
2579	//
2580	// For more information on ISO language codes and language names, see the List
2581	// of ISO 639-1 codes.
2582	Language *string `min:"1" type:"string"`
2583
2584	// For clip generation or captions that do not start at the same time as the
2585	// associated video file, the TimeOffset tells Elastic Transcoder how much of
2586	// the video to encode before including captions.
2587	//
2588	// Specify the TimeOffset in the form [+-]SS.sss or [+-]HH:mm:SS.ss.
2589	TimeOffset *string `type:"string"`
2590}
2591
2592// String returns the string representation.
2593//
2594// API parameter values that are decorated as "sensitive" in the API will not
2595// be included in the string output. The member name will be present, but the
2596// value will be replaced with "sensitive".
2597func (s CaptionSource) String() string {
2598	return awsutil.Prettify(s)
2599}
2600
2601// GoString returns the string representation.
2602//
2603// API parameter values that are decorated as "sensitive" in the API will not
2604// be included in the string output. The member name will be present, but the
2605// value will be replaced with "sensitive".
2606func (s CaptionSource) GoString() string {
2607	return s.String()
2608}
2609
2610// Validate inspects the fields of the type to determine if they are valid.
2611func (s *CaptionSource) Validate() error {
2612	invalidParams := request.ErrInvalidParams{Context: "CaptionSource"}
2613	if s.Key != nil && len(*s.Key) < 1 {
2614		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
2615	}
2616	if s.Label != nil && len(*s.Label) < 1 {
2617		invalidParams.Add(request.NewErrParamMinLen("Label", 1))
2618	}
2619	if s.Language != nil && len(*s.Language) < 1 {
2620		invalidParams.Add(request.NewErrParamMinLen("Language", 1))
2621	}
2622
2623	if invalidParams.Len() > 0 {
2624		return invalidParams
2625	}
2626	return nil
2627}
2628
2629// SetEncryption sets the Encryption field's value.
2630func (s *CaptionSource) SetEncryption(v *Encryption) *CaptionSource {
2631	s.Encryption = v
2632	return s
2633}
2634
2635// SetKey sets the Key field's value.
2636func (s *CaptionSource) SetKey(v string) *CaptionSource {
2637	s.Key = &v
2638	return s
2639}
2640
2641// SetLabel sets the Label field's value.
2642func (s *CaptionSource) SetLabel(v string) *CaptionSource {
2643	s.Label = &v
2644	return s
2645}
2646
2647// SetLanguage sets the Language field's value.
2648func (s *CaptionSource) SetLanguage(v string) *CaptionSource {
2649	s.Language = &v
2650	return s
2651}
2652
2653// SetTimeOffset sets the TimeOffset field's value.
2654func (s *CaptionSource) SetTimeOffset(v string) *CaptionSource {
2655	s.TimeOffset = &v
2656	return s
2657}
2658
2659// The captions to be created, if any.
2660type Captions struct {
2661	_ struct{} `type:"structure"`
2662
2663	// The array of file formats for the output captions. If you leave this value
2664	// blank, Elastic Transcoder returns an error.
2665	CaptionFormats []*CaptionFormat `type:"list"`
2666
2667	// Source files for the input sidecar captions used during the transcoding process.
2668	// To omit all sidecar captions, leave CaptionSources blank.
2669	//
2670	// Deprecated: CaptionSources has been deprecated
2671	CaptionSources []*CaptionSource `deprecated:"true" type:"list"`
2672
2673	// A policy that determines how Elastic Transcoder handles the existence of
2674	// multiple captions.
2675	//
2676	//    * MergeOverride: Elastic Transcoder transcodes both embedded and sidecar
2677	//    captions into outputs. If captions for a language are embedded in the
2678	//    input file and also appear in a sidecar file, Elastic Transcoder uses
2679	//    the sidecar captions and ignores the embedded captions for that language.
2680	//
2681	//    * MergeRetain: Elastic Transcoder transcodes both embedded and sidecar
2682	//    captions into outputs. If captions for a language are embedded in the
2683	//    input file and also appear in a sidecar file, Elastic Transcoder uses
2684	//    the embedded captions and ignores the sidecar captions for that language.
2685	//    If CaptionSources is empty, Elastic Transcoder omits all sidecar captions
2686	//    from the output files.
2687	//
2688	//    * Override: Elastic Transcoder transcodes only the sidecar captions that
2689	//    you specify in CaptionSources.
2690	//
2691	// MergePolicy cannot be null.
2692	//
2693	// Deprecated: MergePolicy has been deprecated
2694	MergePolicy *string `deprecated:"true" type:"string"`
2695}
2696
2697// String returns the string representation.
2698//
2699// API parameter values that are decorated as "sensitive" in the API will not
2700// be included in the string output. The member name will be present, but the
2701// value will be replaced with "sensitive".
2702func (s Captions) String() string {
2703	return awsutil.Prettify(s)
2704}
2705
2706// GoString returns the string representation.
2707//
2708// API parameter values that are decorated as "sensitive" in the API will not
2709// be included in the string output. The member name will be present, but the
2710// value will be replaced with "sensitive".
2711func (s Captions) GoString() string {
2712	return s.String()
2713}
2714
2715// Validate inspects the fields of the type to determine if they are valid.
2716func (s *Captions) Validate() error {
2717	invalidParams := request.ErrInvalidParams{Context: "Captions"}
2718	if s.CaptionSources != nil {
2719		for i, v := range s.CaptionSources {
2720			if v == nil {
2721				continue
2722			}
2723			if err := v.Validate(); err != nil {
2724				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CaptionSources", i), err.(request.ErrInvalidParams))
2725			}
2726		}
2727	}
2728
2729	if invalidParams.Len() > 0 {
2730		return invalidParams
2731	}
2732	return nil
2733}
2734
2735// SetCaptionFormats sets the CaptionFormats field's value.
2736func (s *Captions) SetCaptionFormats(v []*CaptionFormat) *Captions {
2737	s.CaptionFormats = v
2738	return s
2739}
2740
2741// SetCaptionSources sets the CaptionSources field's value.
2742func (s *Captions) SetCaptionSources(v []*CaptionSource) *Captions {
2743	s.CaptionSources = v
2744	return s
2745}
2746
2747// SetMergePolicy sets the MergePolicy field's value.
2748func (s *Captions) SetMergePolicy(v string) *Captions {
2749	s.MergePolicy = &v
2750	return s
2751}
2752
2753// Settings for one clip in a composition. All jobs in a playlist must have
2754// the same clip settings.
2755//
2756// Deprecated: Clip has been deprecated
2757type Clip struct {
2758	_ struct{} `deprecated:"true" type:"structure"`
2759
2760	// Settings that determine when a clip begins and how long it lasts.
2761	TimeSpan *TimeSpan `type:"structure"`
2762}
2763
2764// String returns the string representation.
2765//
2766// API parameter values that are decorated as "sensitive" in the API will not
2767// be included in the string output. The member name will be present, but the
2768// value will be replaced with "sensitive".
2769func (s Clip) String() string {
2770	return awsutil.Prettify(s)
2771}
2772
2773// GoString returns the string representation.
2774//
2775// API parameter values that are decorated as "sensitive" in the API will not
2776// be included in the string output. The member name will be present, but the
2777// value will be replaced with "sensitive".
2778func (s Clip) GoString() string {
2779	return s.String()
2780}
2781
2782// SetTimeSpan sets the TimeSpan field's value.
2783func (s *Clip) SetTimeSpan(v *TimeSpan) *Clip {
2784	s.TimeSpan = v
2785	return s
2786}
2787
2788// The CreateJobRequest structure.
2789type CreateJobInput struct {
2790	_ struct{} `type:"structure"`
2791
2792	// A section of the request body that provides information about the file that
2793	// is being transcoded.
2794	Input *JobInput `type:"structure"`
2795
2796	// A section of the request body that provides information about the files that
2797	// are being transcoded.
2798	Inputs []*JobInput `type:"list"`
2799
2800	// A section of the request body that provides information about the transcoded
2801	// (target) file. We strongly recommend that you use the Outputs syntax instead
2802	// of the Output syntax.
2803	Output *CreateJobOutput `type:"structure"`
2804
2805	// The value, if any, that you want Elastic Transcoder to prepend to the names
2806	// of all files that this job creates, including output files, thumbnails, and
2807	// playlists.
2808	OutputKeyPrefix *string `min:"1" type:"string"`
2809
2810	// A section of the request body that provides information about the transcoded
2811	// (target) files. We recommend that you use the Outputs syntax instead of the
2812	// Output syntax.
2813	Outputs []*CreateJobOutput `type:"list"`
2814
2815	// The Id of the pipeline that you want Elastic Transcoder to use for transcoding.
2816	// The pipeline determines several settings, including the Amazon S3 bucket
2817	// from which Elastic Transcoder gets the files to transcode and the bucket
2818	// into which Elastic Transcoder puts the transcoded files.
2819	//
2820	// PipelineId is a required field
2821	PipelineId *string `type:"string" required:"true"`
2822
2823	// If you specify a preset in PresetId for which the value of Container is fmp4
2824	// (Fragmented MP4) or ts (MPEG-TS), Playlists contains information about the
2825	// master playlists that you want Elastic Transcoder to create.
2826	//
2827	// The maximum number of master playlists in a job is 30.
2828	Playlists []*CreateJobPlaylist `type:"list"`
2829
2830	// User-defined metadata that you want to associate with an Elastic Transcoder
2831	// job. You specify metadata in key/value pairs, and you can add up to 10 key/value
2832	// pairs per job. Elastic Transcoder does not guarantee that key/value pairs
2833	// are returned in the same order in which you specify them.
2834	UserMetadata map[string]*string `type:"map"`
2835}
2836
2837// String returns the string representation.
2838//
2839// API parameter values that are decorated as "sensitive" in the API will not
2840// be included in the string output. The member name will be present, but the
2841// value will be replaced with "sensitive".
2842func (s CreateJobInput) String() string {
2843	return awsutil.Prettify(s)
2844}
2845
2846// GoString returns the string representation.
2847//
2848// API parameter values that are decorated as "sensitive" in the API will not
2849// be included in the string output. The member name will be present, but the
2850// value will be replaced with "sensitive".
2851func (s CreateJobInput) GoString() string {
2852	return s.String()
2853}
2854
2855// Validate inspects the fields of the type to determine if they are valid.
2856func (s *CreateJobInput) Validate() error {
2857	invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
2858	if s.OutputKeyPrefix != nil && len(*s.OutputKeyPrefix) < 1 {
2859		invalidParams.Add(request.NewErrParamMinLen("OutputKeyPrefix", 1))
2860	}
2861	if s.PipelineId == nil {
2862		invalidParams.Add(request.NewErrParamRequired("PipelineId"))
2863	}
2864	if s.Input != nil {
2865		if err := s.Input.Validate(); err != nil {
2866			invalidParams.AddNested("Input", err.(request.ErrInvalidParams))
2867		}
2868	}
2869	if s.Inputs != nil {
2870		for i, v := range s.Inputs {
2871			if v == nil {
2872				continue
2873			}
2874			if err := v.Validate(); err != nil {
2875				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Inputs", i), err.(request.ErrInvalidParams))
2876			}
2877		}
2878	}
2879	if s.Output != nil {
2880		if err := s.Output.Validate(); err != nil {
2881			invalidParams.AddNested("Output", err.(request.ErrInvalidParams))
2882		}
2883	}
2884	if s.Outputs != nil {
2885		for i, v := range s.Outputs {
2886			if v == nil {
2887				continue
2888			}
2889			if err := v.Validate(); err != nil {
2890				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Outputs", i), err.(request.ErrInvalidParams))
2891			}
2892		}
2893	}
2894	if s.Playlists != nil {
2895		for i, v := range s.Playlists {
2896			if v == nil {
2897				continue
2898			}
2899			if err := v.Validate(); err != nil {
2900				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Playlists", i), err.(request.ErrInvalidParams))
2901			}
2902		}
2903	}
2904
2905	if invalidParams.Len() > 0 {
2906		return invalidParams
2907	}
2908	return nil
2909}
2910
2911// SetInput sets the Input field's value.
2912func (s *CreateJobInput) SetInput(v *JobInput) *CreateJobInput {
2913	s.Input = v
2914	return s
2915}
2916
2917// SetInputs sets the Inputs field's value.
2918func (s *CreateJobInput) SetInputs(v []*JobInput) *CreateJobInput {
2919	s.Inputs = v
2920	return s
2921}
2922
2923// SetOutput sets the Output field's value.
2924func (s *CreateJobInput) SetOutput(v *CreateJobOutput) *CreateJobInput {
2925	s.Output = v
2926	return s
2927}
2928
2929// SetOutputKeyPrefix sets the OutputKeyPrefix field's value.
2930func (s *CreateJobInput) SetOutputKeyPrefix(v string) *CreateJobInput {
2931	s.OutputKeyPrefix = &v
2932	return s
2933}
2934
2935// SetOutputs sets the Outputs field's value.
2936func (s *CreateJobInput) SetOutputs(v []*CreateJobOutput) *CreateJobInput {
2937	s.Outputs = v
2938	return s
2939}
2940
2941// SetPipelineId sets the PipelineId field's value.
2942func (s *CreateJobInput) SetPipelineId(v string) *CreateJobInput {
2943	s.PipelineId = &v
2944	return s
2945}
2946
2947// SetPlaylists sets the Playlists field's value.
2948func (s *CreateJobInput) SetPlaylists(v []*CreateJobPlaylist) *CreateJobInput {
2949	s.Playlists = v
2950	return s
2951}
2952
2953// SetUserMetadata sets the UserMetadata field's value.
2954func (s *CreateJobInput) SetUserMetadata(v map[string]*string) *CreateJobInput {
2955	s.UserMetadata = v
2956	return s
2957}
2958
2959// The CreateJobOutput structure.
2960type CreateJobOutput struct {
2961	_ struct{} `type:"structure"`
2962
2963	// Information about the album art that you want Elastic Transcoder to add to
2964	// the file during transcoding. You can specify up to twenty album artworks
2965	// for each output. Settings for each artwork must be defined in the job for
2966	// the current output.
2967	AlbumArt *JobAlbumArt `type:"structure"`
2968
2969	// You can configure Elastic Transcoder to transcode captions, or subtitles,
2970	// from one format to another. All captions must be in UTF-8. Elastic Transcoder
2971	// supports two types of captions:
2972	//
2973	//    * Embedded: Embedded captions are included in the same file as the audio
2974	//    and video. Elastic Transcoder supports only one embedded caption per language,
2975	//    to a maximum of 300 embedded captions per file. Valid input values include:
2976	//    CEA-608 (EIA-608, first non-empty channel only), CEA-708 (EIA-708, first
2977	//    non-empty channel only), and mov-text Valid outputs include: mov-text
2978	//    Elastic Transcoder supports a maximum of one embedded format per output.
2979	//
2980	//    * Sidecar: Sidecar captions are kept in a separate metadata file from
2981	//    the audio and video data. Sidecar captions require a player that is capable
2982	//    of understanding the relationship between the video file and the sidecar
2983	//    file. Elastic Transcoder supports only one sidecar caption per language,
2984	//    to a maximum of 20 sidecar captions per file. Valid input values include:
2985	//    dfxp (first div element only), ebu-tt, scc, smpt, srt, ttml (first div
2986	//    element only), and webvtt Valid outputs include: dfxp (first div element
2987	//    only), scc, srt, and webvtt.
2988	//
2989	// If you want ttml or smpte-tt compatible captions, specify dfxp as your output
2990	// format.
2991	//
2992	// Elastic Transcoder does not support OCR (Optical Character Recognition),
2993	// does not accept pictures as a valid input for captions, and is not available
2994	// for audio-only transcoding. Elastic Transcoder does not preserve text formatting
2995	// (for example, italics) during the transcoding process.
2996	//
2997	// To remove captions or leave the captions empty, set Captions to null. To
2998	// pass through existing captions unchanged, set the MergePolicy to MergeRetain,
2999	// and pass in a null CaptionSources array.
3000	//
3001	// For more information on embedded files, see the Subtitles Wikipedia page.
3002	//
3003	// For more information on sidecar files, see the Extensible Metadata Platform
3004	// and Sidecar file Wikipedia pages.
3005	Captions *Captions `type:"structure"`
3006
3007	// You can create an output file that contains an excerpt from the input file.
3008	// This excerpt, called a clip, can come from the beginning, middle, or end
3009	// of the file. The Composition object contains settings for the clips that
3010	// make up an output file. For the current release, you can only specify settings
3011	// for a single clip per output file. The Composition object cannot be null.
3012	//
3013	// Deprecated: Composition has been deprecated
3014	Composition []*Clip `deprecated:"true" type:"list"`
3015
3016	// You can specify encryption settings for any output files that you want to
3017	// use for a transcoding job. This includes the output file and any watermarks,
3018	// thumbnails, album art, or captions that you want to use. You must specify
3019	// encryption settings for each file individually.
3020	Encryption *Encryption `type:"structure"`
3021
3022	// The name to assign to the transcoded file. Elastic Transcoder saves the file
3023	// in the Amazon S3 bucket specified by the OutputBucket object in the pipeline
3024	// that is specified by the pipeline ID. If a file with the specified name already
3025	// exists in the output bucket, the job fails.
3026	Key *string `min:"1" type:"string"`
3027
3028	// The Id of the preset to use for this job. The preset determines the audio,
3029	// video, and thumbnail settings that Elastic Transcoder uses for transcoding.
3030	PresetId *string `type:"string"`
3031
3032	// The number of degrees clockwise by which you want Elastic Transcoder to rotate
3033	// the output relative to the input. Enter one of the following values: auto,
3034	// 0, 90, 180, 270. The value auto generally works only if the file that you're
3035	// transcoding contains rotation metadata.
3036	Rotate *string `type:"string"`
3037
3038	//
3039	// (Outputs in Fragmented MP4 or MPEG-TS format only.
3040	//
3041	// If you specify a preset in PresetId for which the value of Container is fmp4
3042	// (Fragmented MP4) or ts (MPEG-TS), SegmentDuration is the target maximum duration
3043	// of each segment in seconds. For HLSv3 format playlists, each media segment
3044	// is stored in a separate .ts file. For HLSv4 and Smooth playlists, all media
3045	// segments for an output are stored in a single file. Each segment is approximately
3046	// the length of the SegmentDuration, though individual segments might be shorter
3047	// or longer.
3048	//
3049	// The range of valid values is 1 to 60 seconds. If the duration of the video
3050	// is not evenly divisible by SegmentDuration, the duration of the last segment
3051	// is the remainder of total length/SegmentDuration.
3052	//
3053	// Elastic Transcoder creates an output-specific playlist for each output HLS
3054	// output that you specify in OutputKeys. To add an output to the master playlist
3055	// for this job, include it in the OutputKeys of the associated playlist.
3056	SegmentDuration *string `type:"string"`
3057
3058	// The encryption settings, if any, that you want Elastic Transcoder to apply
3059	// to your thumbnail.
3060	ThumbnailEncryption *Encryption `type:"structure"`
3061
3062	// Whether you want Elastic Transcoder to create thumbnails for your videos
3063	// and, if so, how you want Elastic Transcoder to name the files.
3064	//
3065	// If you don't want Elastic Transcoder to create thumbnails, specify "".
3066	//
3067	// If you do want Elastic Transcoder to create thumbnails, specify the information
3068	// that you want to include in the file name for each thumbnail. You can specify
3069	// the following values in any sequence:
3070	//
3071	//    * {count} (Required): If you want to create thumbnails, you must include
3072	//    {count} in the ThumbnailPattern object. Wherever you specify {count},
3073	//    Elastic Transcoder adds a five-digit sequence number (beginning with 00001)
3074	//    to thumbnail file names. The number indicates where a given thumbnail
3075	//    appears in the sequence of thumbnails for a transcoded file. If you specify
3076	//    a literal value and/or {resolution} but you omit {count}, Elastic Transcoder
3077	//    returns a validation error and does not create the job.
3078	//
3079	//    * Literal values (Optional): You can specify literal values anywhere in
3080	//    the ThumbnailPattern object. For example, you can include them as a file
3081	//    name prefix or as a delimiter between {resolution} and {count}.
3082	//
3083	//    * {resolution} (Optional): If you want Elastic Transcoder to include the
3084	//    resolution in the file name, include {resolution} in the ThumbnailPattern
3085	//    object.
3086	//
3087	// When creating thumbnails, Elastic Transcoder automatically saves the files
3088	// in the format (.jpg or .png) that appears in the preset that you specified
3089	// in the PresetID value of CreateJobOutput. Elastic Transcoder also appends
3090	// the applicable file name extension.
3091	ThumbnailPattern *string `type:"string"`
3092
3093	// Information about the watermarks that you want Elastic Transcoder to add
3094	// to the video during transcoding. You can specify up to four watermarks for
3095	// each output. Settings for each watermark must be defined in the preset for
3096	// the current output.
3097	Watermarks []*JobWatermark `type:"list"`
3098}
3099
3100// String returns the string representation.
3101//
3102// API parameter values that are decorated as "sensitive" in the API will not
3103// be included in the string output. The member name will be present, but the
3104// value will be replaced with "sensitive".
3105func (s CreateJobOutput) String() string {
3106	return awsutil.Prettify(s)
3107}
3108
3109// GoString returns the string representation.
3110//
3111// API parameter values that are decorated as "sensitive" in the API will not
3112// be included in the string output. The member name will be present, but the
3113// value will be replaced with "sensitive".
3114func (s CreateJobOutput) GoString() string {
3115	return s.String()
3116}
3117
3118// Validate inspects the fields of the type to determine if they are valid.
3119func (s *CreateJobOutput) Validate() error {
3120	invalidParams := request.ErrInvalidParams{Context: "CreateJobOutput"}
3121	if s.Key != nil && len(*s.Key) < 1 {
3122		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
3123	}
3124	if s.AlbumArt != nil {
3125		if err := s.AlbumArt.Validate(); err != nil {
3126			invalidParams.AddNested("AlbumArt", err.(request.ErrInvalidParams))
3127		}
3128	}
3129	if s.Captions != nil {
3130		if err := s.Captions.Validate(); err != nil {
3131			invalidParams.AddNested("Captions", err.(request.ErrInvalidParams))
3132		}
3133	}
3134	if s.Watermarks != nil {
3135		for i, v := range s.Watermarks {
3136			if v == nil {
3137				continue
3138			}
3139			if err := v.Validate(); err != nil {
3140				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Watermarks", i), err.(request.ErrInvalidParams))
3141			}
3142		}
3143	}
3144
3145	if invalidParams.Len() > 0 {
3146		return invalidParams
3147	}
3148	return nil
3149}
3150
3151// SetAlbumArt sets the AlbumArt field's value.
3152func (s *CreateJobOutput) SetAlbumArt(v *JobAlbumArt) *CreateJobOutput {
3153	s.AlbumArt = v
3154	return s
3155}
3156
3157// SetCaptions sets the Captions field's value.
3158func (s *CreateJobOutput) SetCaptions(v *Captions) *CreateJobOutput {
3159	s.Captions = v
3160	return s
3161}
3162
3163// SetComposition sets the Composition field's value.
3164func (s *CreateJobOutput) SetComposition(v []*Clip) *CreateJobOutput {
3165	s.Composition = v
3166	return s
3167}
3168
3169// SetEncryption sets the Encryption field's value.
3170func (s *CreateJobOutput) SetEncryption(v *Encryption) *CreateJobOutput {
3171	s.Encryption = v
3172	return s
3173}
3174
3175// SetKey sets the Key field's value.
3176func (s *CreateJobOutput) SetKey(v string) *CreateJobOutput {
3177	s.Key = &v
3178	return s
3179}
3180
3181// SetPresetId sets the PresetId field's value.
3182func (s *CreateJobOutput) SetPresetId(v string) *CreateJobOutput {
3183	s.PresetId = &v
3184	return s
3185}
3186
3187// SetRotate sets the Rotate field's value.
3188func (s *CreateJobOutput) SetRotate(v string) *CreateJobOutput {
3189	s.Rotate = &v
3190	return s
3191}
3192
3193// SetSegmentDuration sets the SegmentDuration field's value.
3194func (s *CreateJobOutput) SetSegmentDuration(v string) *CreateJobOutput {
3195	s.SegmentDuration = &v
3196	return s
3197}
3198
3199// SetThumbnailEncryption sets the ThumbnailEncryption field's value.
3200func (s *CreateJobOutput) SetThumbnailEncryption(v *Encryption) *CreateJobOutput {
3201	s.ThumbnailEncryption = v
3202	return s
3203}
3204
3205// SetThumbnailPattern sets the ThumbnailPattern field's value.
3206func (s *CreateJobOutput) SetThumbnailPattern(v string) *CreateJobOutput {
3207	s.ThumbnailPattern = &v
3208	return s
3209}
3210
3211// SetWatermarks sets the Watermarks field's value.
3212func (s *CreateJobOutput) SetWatermarks(v []*JobWatermark) *CreateJobOutput {
3213	s.Watermarks = v
3214	return s
3215}
3216
3217// Information about the master playlist.
3218type CreateJobPlaylist struct {
3219	_ struct{} `type:"structure"`
3220
3221	// The format of the output playlist. Valid formats include HLSv3, HLSv4, and
3222	// Smooth.
3223	Format *string `type:"string"`
3224
3225	// The HLS content protection settings, if any, that you want Elastic Transcoder
3226	// to apply to the output files associated with this playlist.
3227	HlsContentProtection *HlsContentProtection `type:"structure"`
3228
3229	// The name that you want Elastic Transcoder to assign to the master playlist,
3230	// for example, nyc-vacation.m3u8. If the name includes a / character, the section
3231	// of the name before the last / must be identical for all Name objects. If
3232	// you create more than one master playlist, the values of all Name objects
3233	// must be unique.
3234	//
3235	// Elastic Transcoder automatically appends the relevant file extension to the
3236	// file name (.m3u8 for HLSv3 and HLSv4 playlists, and .ism and .ismc for Smooth
3237	// playlists). If you include a file extension in Name, the file name will have
3238	// two extensions.
3239	Name *string `min:"1" type:"string"`
3240
3241	// For each output in this job that you want to include in a master playlist,
3242	// the value of the Outputs:Key object.
3243	//
3244	//    * If your output is not HLS or does not have a segment duration set, the
3245	//    name of the output file is a concatenation of OutputKeyPrefix and Outputs:Key:
3246	//    OutputKeyPrefixOutputs:Key
3247	//
3248	//    * If your output is HLSv3 and has a segment duration set, or is not included
3249	//    in a playlist, Elastic Transcoder creates an output playlist file with
3250	//    a file extension of .m3u8, and a series of .ts files that include a five-digit
3251	//    sequential counter beginning with 00000: OutputKeyPrefixOutputs:Key.m3u8
3252	//    OutputKeyPrefixOutputs:Key00000.ts
3253	//
3254	//    * If your output is HLSv4, has a segment duration set, and is included
3255	//    in an HLSv4 playlist, Elastic Transcoder creates an output playlist file
3256	//    with a file extension of _v4.m3u8. If the output is video, Elastic Transcoder
3257	//    also creates an output file with an extension of _iframe.m3u8: OutputKeyPrefixOutputs:Key_v4.m3u8
3258	//    OutputKeyPrefixOutputs:Key_iframe.m3u8 OutputKeyPrefixOutputs:Key.ts
3259	//
3260	// Elastic Transcoder automatically appends the relevant file extension to the
3261	// file name. If you include a file extension in Output Key, the file name will
3262	// have two extensions.
3263	//
3264	// If you include more than one output in a playlist, any segment duration settings,
3265	// clip settings, or caption settings must be the same for all outputs in the
3266	// playlist. For Smooth playlists, the Audio:Profile, Video:Profile, and Video:FrameRate
3267	// to Video:KeyframesMaxDist ratio must be the same for all outputs.
3268	OutputKeys []*string `type:"list"`
3269
3270	// The DRM settings, if any, that you want Elastic Transcoder to apply to the
3271	// output files associated with this playlist.
3272	PlayReadyDrm *PlayReadyDrm `type:"structure"`
3273}
3274
3275// String returns the string representation.
3276//
3277// API parameter values that are decorated as "sensitive" in the API will not
3278// be included in the string output. The member name will be present, but the
3279// value will be replaced with "sensitive".
3280func (s CreateJobPlaylist) String() string {
3281	return awsutil.Prettify(s)
3282}
3283
3284// GoString returns the string representation.
3285//
3286// API parameter values that are decorated as "sensitive" in the API will not
3287// be included in the string output. The member name will be present, but the
3288// value will be replaced with "sensitive".
3289func (s CreateJobPlaylist) GoString() string {
3290	return s.String()
3291}
3292
3293// Validate inspects the fields of the type to determine if they are valid.
3294func (s *CreateJobPlaylist) Validate() error {
3295	invalidParams := request.ErrInvalidParams{Context: "CreateJobPlaylist"}
3296	if s.Name != nil && len(*s.Name) < 1 {
3297		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
3298	}
3299	if s.PlayReadyDrm != nil {
3300		if err := s.PlayReadyDrm.Validate(); err != nil {
3301			invalidParams.AddNested("PlayReadyDrm", err.(request.ErrInvalidParams))
3302		}
3303	}
3304
3305	if invalidParams.Len() > 0 {
3306		return invalidParams
3307	}
3308	return nil
3309}
3310
3311// SetFormat sets the Format field's value.
3312func (s *CreateJobPlaylist) SetFormat(v string) *CreateJobPlaylist {
3313	s.Format = &v
3314	return s
3315}
3316
3317// SetHlsContentProtection sets the HlsContentProtection field's value.
3318func (s *CreateJobPlaylist) SetHlsContentProtection(v *HlsContentProtection) *CreateJobPlaylist {
3319	s.HlsContentProtection = v
3320	return s
3321}
3322
3323// SetName sets the Name field's value.
3324func (s *CreateJobPlaylist) SetName(v string) *CreateJobPlaylist {
3325	s.Name = &v
3326	return s
3327}
3328
3329// SetOutputKeys sets the OutputKeys field's value.
3330func (s *CreateJobPlaylist) SetOutputKeys(v []*string) *CreateJobPlaylist {
3331	s.OutputKeys = v
3332	return s
3333}
3334
3335// SetPlayReadyDrm sets the PlayReadyDrm field's value.
3336func (s *CreateJobPlaylist) SetPlayReadyDrm(v *PlayReadyDrm) *CreateJobPlaylist {
3337	s.PlayReadyDrm = v
3338	return s
3339}
3340
3341// The CreateJobResponse structure.
3342type CreateJobResponse struct {
3343	_ struct{} `type:"structure"`
3344
3345	// A section of the response body that provides information about the job that
3346	// is created.
3347	Job *Job `type:"structure"`
3348}
3349
3350// String returns the string representation.
3351//
3352// API parameter values that are decorated as "sensitive" in the API will not
3353// be included in the string output. The member name will be present, but the
3354// value will be replaced with "sensitive".
3355func (s CreateJobResponse) String() string {
3356	return awsutil.Prettify(s)
3357}
3358
3359// GoString returns the string representation.
3360//
3361// API parameter values that are decorated as "sensitive" in the API will not
3362// be included in the string output. The member name will be present, but the
3363// value will be replaced with "sensitive".
3364func (s CreateJobResponse) GoString() string {
3365	return s.String()
3366}
3367
3368// SetJob sets the Job field's value.
3369func (s *CreateJobResponse) SetJob(v *Job) *CreateJobResponse {
3370	s.Job = v
3371	return s
3372}
3373
3374// The CreatePipelineRequest structure.
3375type CreatePipelineInput struct {
3376	_ struct{} `type:"structure"`
3377
3378	// The AWS Key Management Service (AWS KMS) key that you want to use with this
3379	// pipeline.
3380	//
3381	// If you use either s3 or s3-aws-kms as your Encryption:Mode, you don't need
3382	// to provide a key with your job because a default key, known as an AWS-KMS
3383	// key, is created for you automatically. You need to provide an AWS-KMS key
3384	// only if you want to use a non-default AWS-KMS key, or if you are using an
3385	// Encryption:Mode of aes-cbc-pkcs7, aes-ctr, or aes-gcm.
3386	AwsKmsKeyArn *string `type:"string"`
3387
3388	// The optional ContentConfig object specifies information about the Amazon
3389	// S3 bucket in which you want Elastic Transcoder to save transcoded files and
3390	// playlists: which bucket to use, which users you want to have access to the
3391	// files, the type of access you want users to have, and the storage class that
3392	// you want to assign to the files.
3393	//
3394	// If you specify values for ContentConfig, you must also specify values for
3395	// ThumbnailConfig.
3396	//
3397	// If you specify values for ContentConfig and ThumbnailConfig, omit the OutputBucket
3398	// object.
3399	//
3400	//    * Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to
3401	//    save transcoded files and playlists.
3402	//
3403	//    * Permissions (Optional): The Permissions object specifies which users
3404	//    you want to have access to transcoded files and the type of access you
3405	//    want them to have. You can grant permissions to a maximum of 30 users
3406	//    and/or predefined Amazon S3 groups.
3407	//
3408	//    * Grantee Type: Specify the type of value that appears in the Grantee
3409	//    object: Canonical: The value in the Grantee object is either the canonical
3410	//    user ID for an AWS account or an origin access identity for an Amazon
3411	//    CloudFront distribution. For more information about canonical user IDs,
3412	//    see Access Control List (ACL) Overview in the Amazon Simple Storage Service
3413	//    Developer Guide. For more information about using CloudFront origin access
3414	//    identities to require that users use CloudFront URLs instead of Amazon
3415	//    S3 URLs, see Using an Origin Access Identity to Restrict Access to Your
3416	//    Amazon S3 Content. A canonical user ID is not the same as an AWS account
3417	//    number. Email: The value in the Grantee object is the registered email
3418	//    address of an AWS account. Group: The value in the Grantee object is one
3419	//    of the following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers,
3420	//    or LogDelivery.
3421	//
3422	//    * Grantee: The AWS user or group that you want to have access to transcoded
3423	//    files and playlists. To identify the user or group, you can specify the
3424	//    canonical user ID for an AWS account, an origin access identity for a
3425	//    CloudFront distribution, the registered email address of an AWS account,
3426	//    or a predefined Amazon S3 group
3427	//
3428	//    * Access: The permission that you want to give to the AWS user that you
3429	//    specified in Grantee. Permissions are granted on the files that Elastic
3430	//    Transcoder adds to the bucket, including playlists and video files. Valid
3431	//    values include: READ: The grantee can read the objects and metadata for
3432	//    objects that Elastic Transcoder adds to the Amazon S3 bucket. READ_ACP:
3433	//    The grantee can read the object ACL for objects that Elastic Transcoder
3434	//    adds to the Amazon S3 bucket. WRITE_ACP: The grantee can write the ACL
3435	//    for the objects that Elastic Transcoder adds to the Amazon S3 bucket.
3436	//    FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP permissions
3437	//    for the objects that Elastic Transcoder adds to the Amazon S3 bucket.
3438	//
3439	//    * StorageClass: The Amazon S3 storage class, Standard or ReducedRedundancy,
3440	//    that you want Elastic Transcoder to assign to the video files and playlists
3441	//    that it stores in your Amazon S3 bucket.
3442	ContentConfig *PipelineOutputConfig `type:"structure"`
3443
3444	// The Amazon S3 bucket in which you saved the media files that you want to
3445	// transcode.
3446	//
3447	// InputBucket is a required field
3448	InputBucket *string `type:"string" required:"true"`
3449
3450	// The name of the pipeline. We recommend that the name be unique within the
3451	// AWS account, but uniqueness is not enforced.
3452	//
3453	// Constraints: Maximum 40 characters.
3454	//
3455	// Name is a required field
3456	Name *string `min:"1" type:"string" required:"true"`
3457
3458	// The Amazon Simple Notification Service (Amazon SNS) topic that you want to
3459	// notify to report job status.
3460	//
3461	// To receive notifications, you must also subscribe to the new topic in the
3462	// Amazon SNS console.
3463	//
3464	//    * Progressing: The topic ARN for the Amazon Simple Notification Service
3465	//    (Amazon SNS) topic that you want to notify when Elastic Transcoder has
3466	//    started to process a job in this pipeline. This is the ARN that Amazon
3467	//    SNS returned when you created the topic. For more information, see Create
3468	//    a Topic in the Amazon Simple Notification Service Developer Guide.
3469	//
3470	//    * Complete: The topic ARN for the Amazon SNS topic that you want to notify
3471	//    when Elastic Transcoder has finished processing a job in this pipeline.
3472	//    This is the ARN that Amazon SNS returned when you created the topic.
3473	//
3474	//    * Warning: The topic ARN for the Amazon SNS topic that you want to notify
3475	//    when Elastic Transcoder encounters a warning condition while processing
3476	//    a job in this pipeline. This is the ARN that Amazon SNS returned when
3477	//    you created the topic.
3478	//
3479	//    * Error: The topic ARN for the Amazon SNS topic that you want to notify
3480	//    when Elastic Transcoder encounters an error condition while processing
3481	//    a job in this pipeline. This is the ARN that Amazon SNS returned when
3482	//    you created the topic.
3483	Notifications *Notifications `type:"structure"`
3484
3485	// The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded
3486	// files. (Use this, or use ContentConfig:Bucket plus ThumbnailConfig:Bucket.)
3487	//
3488	// Specify this value when all of the following are true:
3489	//
3490	//    * You want to save transcoded files, thumbnails (if any), and playlists
3491	//    (if any) together in one bucket.
3492	//
3493	//    * You do not want to specify the users or groups who have access to the
3494	//    transcoded files, thumbnails, and playlists.
3495	//
3496	//    * You do not want to specify the permissions that Elastic Transcoder grants
3497	//    to the files. When Elastic Transcoder saves files in OutputBucket, it
3498	//    grants full control over the files only to the AWS account that owns the
3499	//    role that is specified by Role.
3500	//
3501	//    * You want to associate the transcoded files and thumbnails with the Amazon
3502	//    S3 Standard storage class.
3503	//
3504	// If you want to save transcoded files and playlists in one bucket and thumbnails
3505	// in another bucket, specify which users can access the transcoded files or
3506	// the permissions the users have, or change the Amazon S3 storage class, omit
3507	// OutputBucket and specify values for ContentConfig and ThumbnailConfig instead.
3508	OutputBucket *string `type:"string"`
3509
3510	// The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder
3511	// to use to create the pipeline.
3512	//
3513	// Role is a required field
3514	Role *string `type:"string" required:"true"`
3515
3516	// The ThumbnailConfig object specifies several values, including the Amazon
3517	// S3 bucket in which you want Elastic Transcoder to save thumbnail files, which
3518	// users you want to have access to the files, the type of access you want users
3519	// to have, and the storage class that you want to assign to the files.
3520	//
3521	// If you specify values for ContentConfig, you must also specify values for
3522	// ThumbnailConfig even if you don't want to create thumbnails.
3523	//
3524	// If you specify values for ContentConfig and ThumbnailConfig, omit the OutputBucket
3525	// object.
3526	//
3527	//    * Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to
3528	//    save thumbnail files.
3529	//
3530	//    * Permissions (Optional): The Permissions object specifies which users
3531	//    and/or predefined Amazon S3 groups you want to have access to thumbnail
3532	//    files, and the type of access you want them to have. You can grant permissions
3533	//    to a maximum of 30 users and/or predefined Amazon S3 groups.
3534	//
3535	//    * GranteeType: Specify the type of value that appears in the Grantee object:
3536	//    Canonical: The value in the Grantee object is either the canonical user
3537	//    ID for an AWS account or an origin access identity for an Amazon CloudFront
3538	//    distribution. A canonical user ID is not the same as an AWS account number.
3539	//    Email: The value in the Grantee object is the registered email address
3540	//    of an AWS account. Group: The value in the Grantee object is one of the
3541	//    following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers, or
3542	//    LogDelivery.
3543	//
3544	//    * Grantee: The AWS user or group that you want to have access to thumbnail
3545	//    files. To identify the user or group, you can specify the canonical user
3546	//    ID for an AWS account, an origin access identity for a CloudFront distribution,
3547	//    the registered email address of an AWS account, or a predefined Amazon
3548	//    S3 group.
3549	//
3550	//    * Access: The permission that you want to give to the AWS user that you
3551	//    specified in Grantee. Permissions are granted on the thumbnail files that
3552	//    Elastic Transcoder adds to the bucket. Valid values include: READ: The
3553	//    grantee can read the thumbnails and metadata for objects that Elastic
3554	//    Transcoder adds to the Amazon S3 bucket. READ_ACP: The grantee can read
3555	//    the object ACL for thumbnails that Elastic Transcoder adds to the Amazon
3556	//    S3 bucket. WRITE_ACP: The grantee can write the ACL for the thumbnails
3557	//    that Elastic Transcoder adds to the Amazon S3 bucket. FULL_CONTROL: The
3558	//    grantee has READ, READ_ACP, and WRITE_ACP permissions for the thumbnails
3559	//    that Elastic Transcoder adds to the Amazon S3 bucket.
3560	//
3561	//    * StorageClass: The Amazon S3 storage class, Standard or ReducedRedundancy,
3562	//    that you want Elastic Transcoder to assign to the thumbnails that it stores
3563	//    in your Amazon S3 bucket.
3564	ThumbnailConfig *PipelineOutputConfig `type:"structure"`
3565}
3566
3567// String returns the string representation.
3568//
3569// API parameter values that are decorated as "sensitive" in the API will not
3570// be included in the string output. The member name will be present, but the
3571// value will be replaced with "sensitive".
3572func (s CreatePipelineInput) String() string {
3573	return awsutil.Prettify(s)
3574}
3575
3576// GoString returns the string representation.
3577//
3578// API parameter values that are decorated as "sensitive" in the API will not
3579// be included in the string output. The member name will be present, but the
3580// value will be replaced with "sensitive".
3581func (s CreatePipelineInput) GoString() string {
3582	return s.String()
3583}
3584
3585// Validate inspects the fields of the type to determine if they are valid.
3586func (s *CreatePipelineInput) Validate() error {
3587	invalidParams := request.ErrInvalidParams{Context: "CreatePipelineInput"}
3588	if s.InputBucket == nil {
3589		invalidParams.Add(request.NewErrParamRequired("InputBucket"))
3590	}
3591	if s.Name == nil {
3592		invalidParams.Add(request.NewErrParamRequired("Name"))
3593	}
3594	if s.Name != nil && len(*s.Name) < 1 {
3595		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
3596	}
3597	if s.Role == nil {
3598		invalidParams.Add(request.NewErrParamRequired("Role"))
3599	}
3600	if s.ContentConfig != nil {
3601		if err := s.ContentConfig.Validate(); err != nil {
3602			invalidParams.AddNested("ContentConfig", err.(request.ErrInvalidParams))
3603		}
3604	}
3605	if s.ThumbnailConfig != nil {
3606		if err := s.ThumbnailConfig.Validate(); err != nil {
3607			invalidParams.AddNested("ThumbnailConfig", err.(request.ErrInvalidParams))
3608		}
3609	}
3610
3611	if invalidParams.Len() > 0 {
3612		return invalidParams
3613	}
3614	return nil
3615}
3616
3617// SetAwsKmsKeyArn sets the AwsKmsKeyArn field's value.
3618func (s *CreatePipelineInput) SetAwsKmsKeyArn(v string) *CreatePipelineInput {
3619	s.AwsKmsKeyArn = &v
3620	return s
3621}
3622
3623// SetContentConfig sets the ContentConfig field's value.
3624func (s *CreatePipelineInput) SetContentConfig(v *PipelineOutputConfig) *CreatePipelineInput {
3625	s.ContentConfig = v
3626	return s
3627}
3628
3629// SetInputBucket sets the InputBucket field's value.
3630func (s *CreatePipelineInput) SetInputBucket(v string) *CreatePipelineInput {
3631	s.InputBucket = &v
3632	return s
3633}
3634
3635// SetName sets the Name field's value.
3636func (s *CreatePipelineInput) SetName(v string) *CreatePipelineInput {
3637	s.Name = &v
3638	return s
3639}
3640
3641// SetNotifications sets the Notifications field's value.
3642func (s *CreatePipelineInput) SetNotifications(v *Notifications) *CreatePipelineInput {
3643	s.Notifications = v
3644	return s
3645}
3646
3647// SetOutputBucket sets the OutputBucket field's value.
3648func (s *CreatePipelineInput) SetOutputBucket(v string) *CreatePipelineInput {
3649	s.OutputBucket = &v
3650	return s
3651}
3652
3653// SetRole sets the Role field's value.
3654func (s *CreatePipelineInput) SetRole(v string) *CreatePipelineInput {
3655	s.Role = &v
3656	return s
3657}
3658
3659// SetThumbnailConfig sets the ThumbnailConfig field's value.
3660func (s *CreatePipelineInput) SetThumbnailConfig(v *PipelineOutputConfig) *CreatePipelineInput {
3661	s.ThumbnailConfig = v
3662	return s
3663}
3664
3665// When you create a pipeline, Elastic Transcoder returns the values that you
3666// specified in the request.
3667type CreatePipelineOutput struct {
3668	_ struct{} `type:"structure"`
3669
3670	// A section of the response body that provides information about the pipeline
3671	// that is created.
3672	Pipeline *Pipeline `type:"structure"`
3673
3674	// Elastic Transcoder returns a warning if the resources used by your pipeline
3675	// are not in the same region as the pipeline.
3676	//
3677	// Using resources in the same region, such as your Amazon S3 buckets, Amazon
3678	// SNS notification topics, and AWS KMS key, reduces processing time and prevents
3679	// cross-regional charges.
3680	Warnings []*Warning `type:"list"`
3681}
3682
3683// String returns the string representation.
3684//
3685// API parameter values that are decorated as "sensitive" in the API will not
3686// be included in the string output. The member name will be present, but the
3687// value will be replaced with "sensitive".
3688func (s CreatePipelineOutput) String() string {
3689	return awsutil.Prettify(s)
3690}
3691
3692// GoString returns the string representation.
3693//
3694// API parameter values that are decorated as "sensitive" in the API will not
3695// be included in the string output. The member name will be present, but the
3696// value will be replaced with "sensitive".
3697func (s CreatePipelineOutput) GoString() string {
3698	return s.String()
3699}
3700
3701// SetPipeline sets the Pipeline field's value.
3702func (s *CreatePipelineOutput) SetPipeline(v *Pipeline) *CreatePipelineOutput {
3703	s.Pipeline = v
3704	return s
3705}
3706
3707// SetWarnings sets the Warnings field's value.
3708func (s *CreatePipelineOutput) SetWarnings(v []*Warning) *CreatePipelineOutput {
3709	s.Warnings = v
3710	return s
3711}
3712
3713// The CreatePresetRequest structure.
3714type CreatePresetInput struct {
3715	_ struct{} `type:"structure"`
3716
3717	// A section of the request body that specifies the audio parameters.
3718	Audio *AudioParameters `type:"structure"`
3719
3720	// The container type for the output file. Valid values include flac, flv, fmp4,
3721	// gif, mp3, mp4, mpg, mxf, oga, ogg, ts, and webm.
3722	//
3723	// Container is a required field
3724	Container *string `type:"string" required:"true"`
3725
3726	// A description of the preset.
3727	Description *string `type:"string"`
3728
3729	// The name of the preset. We recommend that the name be unique within the AWS
3730	// account, but uniqueness is not enforced.
3731	//
3732	// Name is a required field
3733	Name *string `min:"1" type:"string" required:"true"`
3734
3735	// A section of the request body that specifies the thumbnail parameters, if
3736	// any.
3737	Thumbnails *Thumbnails `type:"structure"`
3738
3739	// A section of the request body that specifies the video parameters.
3740	Video *VideoParameters `type:"structure"`
3741}
3742
3743// String returns the string representation.
3744//
3745// API parameter values that are decorated as "sensitive" in the API will not
3746// be included in the string output. The member name will be present, but the
3747// value will be replaced with "sensitive".
3748func (s CreatePresetInput) String() string {
3749	return awsutil.Prettify(s)
3750}
3751
3752// GoString returns the string representation.
3753//
3754// API parameter values that are decorated as "sensitive" in the API will not
3755// be included in the string output. The member name will be present, but the
3756// value will be replaced with "sensitive".
3757func (s CreatePresetInput) GoString() string {
3758	return s.String()
3759}
3760
3761// Validate inspects the fields of the type to determine if they are valid.
3762func (s *CreatePresetInput) Validate() error {
3763	invalidParams := request.ErrInvalidParams{Context: "CreatePresetInput"}
3764	if s.Container == nil {
3765		invalidParams.Add(request.NewErrParamRequired("Container"))
3766	}
3767	if s.Name == nil {
3768		invalidParams.Add(request.NewErrParamRequired("Name"))
3769	}
3770	if s.Name != nil && len(*s.Name) < 1 {
3771		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
3772	}
3773	if s.Video != nil {
3774		if err := s.Video.Validate(); err != nil {
3775			invalidParams.AddNested("Video", err.(request.ErrInvalidParams))
3776		}
3777	}
3778
3779	if invalidParams.Len() > 0 {
3780		return invalidParams
3781	}
3782	return nil
3783}
3784
3785// SetAudio sets the Audio field's value.
3786func (s *CreatePresetInput) SetAudio(v *AudioParameters) *CreatePresetInput {
3787	s.Audio = v
3788	return s
3789}
3790
3791// SetContainer sets the Container field's value.
3792func (s *CreatePresetInput) SetContainer(v string) *CreatePresetInput {
3793	s.Container = &v
3794	return s
3795}
3796
3797// SetDescription sets the Description field's value.
3798func (s *CreatePresetInput) SetDescription(v string) *CreatePresetInput {
3799	s.Description = &v
3800	return s
3801}
3802
3803// SetName sets the Name field's value.
3804func (s *CreatePresetInput) SetName(v string) *CreatePresetInput {
3805	s.Name = &v
3806	return s
3807}
3808
3809// SetThumbnails sets the Thumbnails field's value.
3810func (s *CreatePresetInput) SetThumbnails(v *Thumbnails) *CreatePresetInput {
3811	s.Thumbnails = v
3812	return s
3813}
3814
3815// SetVideo sets the Video field's value.
3816func (s *CreatePresetInput) SetVideo(v *VideoParameters) *CreatePresetInput {
3817	s.Video = v
3818	return s
3819}
3820
3821// The CreatePresetResponse structure.
3822type CreatePresetOutput struct {
3823	_ struct{} `type:"structure"`
3824
3825	// A section of the response body that provides information about the preset
3826	// that is created.
3827	Preset *Preset `type:"structure"`
3828
3829	// If the preset settings don't comply with the standards for the video codec
3830	// but Elastic Transcoder created the preset, this message explains the reason
3831	// the preset settings don't meet the standard. Elastic Transcoder created the
3832	// preset because the settings might produce acceptable output.
3833	Warning *string `type:"string"`
3834}
3835
3836// String returns the string representation.
3837//
3838// API parameter values that are decorated as "sensitive" in the API will not
3839// be included in the string output. The member name will be present, but the
3840// value will be replaced with "sensitive".
3841func (s CreatePresetOutput) String() string {
3842	return awsutil.Prettify(s)
3843}
3844
3845// GoString returns the string representation.
3846//
3847// API parameter values that are decorated as "sensitive" in the API will not
3848// be included in the string output. The member name will be present, but the
3849// value will be replaced with "sensitive".
3850func (s CreatePresetOutput) GoString() string {
3851	return s.String()
3852}
3853
3854// SetPreset sets the Preset field's value.
3855func (s *CreatePresetOutput) SetPreset(v *Preset) *CreatePresetOutput {
3856	s.Preset = v
3857	return s
3858}
3859
3860// SetWarning sets the Warning field's value.
3861func (s *CreatePresetOutput) SetWarning(v string) *CreatePresetOutput {
3862	s.Warning = &v
3863	return s
3864}
3865
3866// The DeletePipelineRequest structure.
3867type DeletePipelineInput struct {
3868	_ struct{} `type:"structure" nopayload:"true"`
3869
3870	// The identifier of the pipeline that you want to delete.
3871	//
3872	// Id is a required field
3873	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
3874}
3875
3876// String returns the string representation.
3877//
3878// API parameter values that are decorated as "sensitive" in the API will not
3879// be included in the string output. The member name will be present, but the
3880// value will be replaced with "sensitive".
3881func (s DeletePipelineInput) String() string {
3882	return awsutil.Prettify(s)
3883}
3884
3885// GoString returns the string representation.
3886//
3887// API parameter values that are decorated as "sensitive" in the API will not
3888// be included in the string output. The member name will be present, but the
3889// value will be replaced with "sensitive".
3890func (s DeletePipelineInput) GoString() string {
3891	return s.String()
3892}
3893
3894// Validate inspects the fields of the type to determine if they are valid.
3895func (s *DeletePipelineInput) Validate() error {
3896	invalidParams := request.ErrInvalidParams{Context: "DeletePipelineInput"}
3897	if s.Id == nil {
3898		invalidParams.Add(request.NewErrParamRequired("Id"))
3899	}
3900	if s.Id != nil && len(*s.Id) < 1 {
3901		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
3902	}
3903
3904	if invalidParams.Len() > 0 {
3905		return invalidParams
3906	}
3907	return nil
3908}
3909
3910// SetId sets the Id field's value.
3911func (s *DeletePipelineInput) SetId(v string) *DeletePipelineInput {
3912	s.Id = &v
3913	return s
3914}
3915
3916// The DeletePipelineResponse structure.
3917type DeletePipelineOutput struct {
3918	_ struct{} `type:"structure"`
3919}
3920
3921// String returns the string representation.
3922//
3923// API parameter values that are decorated as "sensitive" in the API will not
3924// be included in the string output. The member name will be present, but the
3925// value will be replaced with "sensitive".
3926func (s DeletePipelineOutput) String() string {
3927	return awsutil.Prettify(s)
3928}
3929
3930// GoString returns the string representation.
3931//
3932// API parameter values that are decorated as "sensitive" in the API will not
3933// be included in the string output. The member name will be present, but the
3934// value will be replaced with "sensitive".
3935func (s DeletePipelineOutput) GoString() string {
3936	return s.String()
3937}
3938
3939// The DeletePresetRequest structure.
3940type DeletePresetInput struct {
3941	_ struct{} `type:"structure" nopayload:"true"`
3942
3943	// The identifier of the preset for which you want to get detailed information.
3944	//
3945	// Id is a required field
3946	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
3947}
3948
3949// String returns the string representation.
3950//
3951// API parameter values that are decorated as "sensitive" in the API will not
3952// be included in the string output. The member name will be present, but the
3953// value will be replaced with "sensitive".
3954func (s DeletePresetInput) String() string {
3955	return awsutil.Prettify(s)
3956}
3957
3958// GoString returns the string representation.
3959//
3960// API parameter values that are decorated as "sensitive" in the API will not
3961// be included in the string output. The member name will be present, but the
3962// value will be replaced with "sensitive".
3963func (s DeletePresetInput) GoString() string {
3964	return s.String()
3965}
3966
3967// Validate inspects the fields of the type to determine if they are valid.
3968func (s *DeletePresetInput) Validate() error {
3969	invalidParams := request.ErrInvalidParams{Context: "DeletePresetInput"}
3970	if s.Id == nil {
3971		invalidParams.Add(request.NewErrParamRequired("Id"))
3972	}
3973	if s.Id != nil && len(*s.Id) < 1 {
3974		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
3975	}
3976
3977	if invalidParams.Len() > 0 {
3978		return invalidParams
3979	}
3980	return nil
3981}
3982
3983// SetId sets the Id field's value.
3984func (s *DeletePresetInput) SetId(v string) *DeletePresetInput {
3985	s.Id = &v
3986	return s
3987}
3988
3989// The DeletePresetResponse structure.
3990type DeletePresetOutput struct {
3991	_ struct{} `type:"structure"`
3992}
3993
3994// String returns the string representation.
3995//
3996// API parameter values that are decorated as "sensitive" in the API will not
3997// be included in the string output. The member name will be present, but the
3998// value will be replaced with "sensitive".
3999func (s DeletePresetOutput) String() string {
4000	return awsutil.Prettify(s)
4001}
4002
4003// GoString returns the string representation.
4004//
4005// API parameter values that are decorated as "sensitive" in the API will not
4006// be included in the string output. The member name will be present, but the
4007// value will be replaced with "sensitive".
4008func (s DeletePresetOutput) GoString() string {
4009	return s.String()
4010}
4011
4012// The detected properties of the input file. Elastic Transcoder identifies
4013// these values from the input file.
4014type DetectedProperties struct {
4015	_ struct{} `type:"structure"`
4016
4017	// The detected duration of the input file, in milliseconds.
4018	DurationMillis *int64 `type:"long"`
4019
4020	// The detected file size of the input file, in bytes.
4021	FileSize *int64 `type:"long"`
4022
4023	// The detected frame rate of the input file, in frames per second.
4024	FrameRate *string `type:"string"`
4025
4026	// The detected height of the input file, in pixels.
4027	Height *int64 `type:"integer"`
4028
4029	// The detected width of the input file, in pixels.
4030	Width *int64 `type:"integer"`
4031}
4032
4033// String returns the string representation.
4034//
4035// API parameter values that are decorated as "sensitive" in the API will not
4036// be included in the string output. The member name will be present, but the
4037// value will be replaced with "sensitive".
4038func (s DetectedProperties) String() string {
4039	return awsutil.Prettify(s)
4040}
4041
4042// GoString returns the string representation.
4043//
4044// API parameter values that are decorated as "sensitive" in the API will not
4045// be included in the string output. The member name will be present, but the
4046// value will be replaced with "sensitive".
4047func (s DetectedProperties) GoString() string {
4048	return s.String()
4049}
4050
4051// SetDurationMillis sets the DurationMillis field's value.
4052func (s *DetectedProperties) SetDurationMillis(v int64) *DetectedProperties {
4053	s.DurationMillis = &v
4054	return s
4055}
4056
4057// SetFileSize sets the FileSize field's value.
4058func (s *DetectedProperties) SetFileSize(v int64) *DetectedProperties {
4059	s.FileSize = &v
4060	return s
4061}
4062
4063// SetFrameRate sets the FrameRate field's value.
4064func (s *DetectedProperties) SetFrameRate(v string) *DetectedProperties {
4065	s.FrameRate = &v
4066	return s
4067}
4068
4069// SetHeight sets the Height field's value.
4070func (s *DetectedProperties) SetHeight(v int64) *DetectedProperties {
4071	s.Height = &v
4072	return s
4073}
4074
4075// SetWidth sets the Width field's value.
4076func (s *DetectedProperties) SetWidth(v int64) *DetectedProperties {
4077	s.Width = &v
4078	return s
4079}
4080
4081// The encryption settings, if any, that are used for decrypting your input
4082// files or encrypting your output files. If your input file is encrypted, you
4083// must specify the mode that Elastic Transcoder uses to decrypt your file,
4084// otherwise you must specify the mode you want Elastic Transcoder to use to
4085// encrypt your output files.
4086type Encryption struct {
4087	_ struct{} `type:"structure"`
4088
4089	// The series of random bits created by a random bit generator, unique for every
4090	// encryption operation, that you used to encrypt your input files or that you
4091	// want Elastic Transcoder to use to encrypt your output files. The initialization
4092	// vector must be base64-encoded, and it must be exactly 16 bytes long before
4093	// being base64-encoded.
4094	InitializationVector *string `type:"string"`
4095
4096	// The data encryption key that you want Elastic Transcoder to use to encrypt
4097	// your output file, or that was used to encrypt your input file. The key must
4098	// be base64-encoded and it must be one of the following bit lengths before
4099	// being base64-encoded:
4100	//
4101	// 128, 192, or 256.
4102	//
4103	// The key must also be encrypted by using the Amazon Key Management Service.
4104	Key *string `type:"string"`
4105
4106	// The MD5 digest of the key that you used to encrypt your input file, or that
4107	// you want Elastic Transcoder to use to encrypt your output file. Elastic Transcoder
4108	// uses the key digest as a checksum to make sure your key was not corrupted
4109	// in transit. The key MD5 must be base64-encoded, and it must be exactly 16
4110	// bytes long before being base64-encoded.
4111	KeyMd5 *string `type:"string"`
4112
4113	// The specific server-side encryption mode that you want Elastic Transcoder
4114	// to use when decrypting your input files or encrypting your output files.
4115	// Elastic Transcoder supports the following options:
4116	//
4117	//    * s3: Amazon S3 creates and manages the keys used for encrypting your
4118	//    files.
4119	//
4120	//    * s3-aws-kms: Amazon S3 calls the Amazon Key Management Service, which
4121	//    creates and manages the keys that are used for encrypting your files.
4122	//    If you specify s3-aws-kms and you don't want to use the default key, you
4123	//    must add the AWS-KMS key that you want to use to your pipeline.
4124	//
4125	//    * aes-cbc-pkcs7: A padded cipher-block mode of operation originally used
4126	//    for HLS files.
4127	//
4128	//    * aes-ctr: AES Counter Mode.
4129	//
4130	//    * aes-gcm: AES Galois Counter Mode, a mode of operation that is an authenticated
4131	//    encryption format, meaning that a file, key, or initialization vector
4132	//    that has been tampered with fails the decryption process.
4133	//
4134	// For all three AES options, you must provide the following settings, which
4135	// must be base64-encoded:
4136	//
4137	//    * Key
4138	//
4139	//    * Key MD5
4140	//
4141	//    * Initialization Vector
4142	//
4143	// For the AES modes, your private encryption keys and your unencrypted data
4144	// are never stored by AWS; therefore, it is important that you safely manage
4145	// your encryption keys. If you lose them, you won't be able to unencrypt your
4146	// data.
4147	Mode *string `type:"string"`
4148}
4149
4150// String returns the string representation.
4151//
4152// API parameter values that are decorated as "sensitive" in the API will not
4153// be included in the string output. The member name will be present, but the
4154// value will be replaced with "sensitive".
4155func (s Encryption) String() string {
4156	return awsutil.Prettify(s)
4157}
4158
4159// GoString returns the string representation.
4160//
4161// API parameter values that are decorated as "sensitive" in the API will not
4162// be included in the string output. The member name will be present, but the
4163// value will be replaced with "sensitive".
4164func (s Encryption) GoString() string {
4165	return s.String()
4166}
4167
4168// SetInitializationVector sets the InitializationVector field's value.
4169func (s *Encryption) SetInitializationVector(v string) *Encryption {
4170	s.InitializationVector = &v
4171	return s
4172}
4173
4174// SetKey sets the Key field's value.
4175func (s *Encryption) SetKey(v string) *Encryption {
4176	s.Key = &v
4177	return s
4178}
4179
4180// SetKeyMd5 sets the KeyMd5 field's value.
4181func (s *Encryption) SetKeyMd5(v string) *Encryption {
4182	s.KeyMd5 = &v
4183	return s
4184}
4185
4186// SetMode sets the Mode field's value.
4187func (s *Encryption) SetMode(v string) *Encryption {
4188	s.Mode = &v
4189	return s
4190}
4191
4192// The HLS content protection settings, if any, that you want Elastic Transcoder
4193// to apply to your output files.
4194type HlsContentProtection struct {
4195	_ struct{} `type:"structure"`
4196
4197	// If Elastic Transcoder is generating your key for you, you must leave this
4198	// field blank.
4199	//
4200	// The series of random bits created by a random bit generator, unique for every
4201	// encryption operation, that you want Elastic Transcoder to use to encrypt
4202	// your output files. The initialization vector must be base64-encoded, and
4203	// it must be exactly 16 bytes before being base64-encoded.
4204	InitializationVector *string `type:"string"`
4205
4206	// If you want Elastic Transcoder to generate a key for you, leave this field
4207	// blank.
4208	//
4209	// If you choose to supply your own key, you must encrypt the key by using AWS
4210	// KMS. The key must be base64-encoded, and it must be one of the following
4211	// bit lengths before being base64-encoded:
4212	//
4213	// 128, 192, or 256.
4214	Key *string `type:"string"`
4215
4216	// If Elastic Transcoder is generating your key for you, you must leave this
4217	// field blank.
4218	//
4219	// The MD5 digest of the key that you want Elastic Transcoder to use to encrypt
4220	// your output file, and that you want Elastic Transcoder to use as a checksum
4221	// to make sure your key was not corrupted in transit. The key MD5 must be base64-encoded,
4222	// and it must be exactly 16 bytes before being base64- encoded.
4223	KeyMd5 *string `type:"string"`
4224
4225	// Specify whether you want Elastic Transcoder to write your HLS license key
4226	// to an Amazon S3 bucket. If you choose WithVariantPlaylists, LicenseAcquisitionUrl
4227	// must be left blank and Elastic Transcoder writes your data key into the same
4228	// bucket as the associated playlist.
4229	KeyStoragePolicy *string `type:"string"`
4230
4231	// The location of the license key required to decrypt your HLS playlist. The
4232	// URL must be an absolute path, and is referenced in the URI attribute of the
4233	// EXT-X-KEY metadata tag in the playlist file.
4234	LicenseAcquisitionUrl *string `type:"string"`
4235
4236	// The content protection method for your output. The only valid value is: aes-128.
4237	//
4238	// This value is written into the method attribute of the EXT-X-KEY metadata
4239	// tag in the output playlist.
4240	Method *string `type:"string"`
4241}
4242
4243// String returns the string representation.
4244//
4245// API parameter values that are decorated as "sensitive" in the API will not
4246// be included in the string output. The member name will be present, but the
4247// value will be replaced with "sensitive".
4248func (s HlsContentProtection) String() string {
4249	return awsutil.Prettify(s)
4250}
4251
4252// GoString returns the string representation.
4253//
4254// API parameter values that are decorated as "sensitive" in the API will not
4255// be included in the string output. The member name will be present, but the
4256// value will be replaced with "sensitive".
4257func (s HlsContentProtection) GoString() string {
4258	return s.String()
4259}
4260
4261// SetInitializationVector sets the InitializationVector field's value.
4262func (s *HlsContentProtection) SetInitializationVector(v string) *HlsContentProtection {
4263	s.InitializationVector = &v
4264	return s
4265}
4266
4267// SetKey sets the Key field's value.
4268func (s *HlsContentProtection) SetKey(v string) *HlsContentProtection {
4269	s.Key = &v
4270	return s
4271}
4272
4273// SetKeyMd5 sets the KeyMd5 field's value.
4274func (s *HlsContentProtection) SetKeyMd5(v string) *HlsContentProtection {
4275	s.KeyMd5 = &v
4276	return s
4277}
4278
4279// SetKeyStoragePolicy sets the KeyStoragePolicy field's value.
4280func (s *HlsContentProtection) SetKeyStoragePolicy(v string) *HlsContentProtection {
4281	s.KeyStoragePolicy = &v
4282	return s
4283}
4284
4285// SetLicenseAcquisitionUrl sets the LicenseAcquisitionUrl field's value.
4286func (s *HlsContentProtection) SetLicenseAcquisitionUrl(v string) *HlsContentProtection {
4287	s.LicenseAcquisitionUrl = &v
4288	return s
4289}
4290
4291// SetMethod sets the Method field's value.
4292func (s *HlsContentProtection) SetMethod(v string) *HlsContentProtection {
4293	s.Method = &v
4294	return s
4295}
4296
4297type IncompatibleVersionException struct {
4298	_            struct{}                  `type:"structure"`
4299	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4300
4301	Message_ *string `locationName:"message" type:"string"`
4302}
4303
4304// String returns the string representation.
4305//
4306// API parameter values that are decorated as "sensitive" in the API will not
4307// be included in the string output. The member name will be present, but the
4308// value will be replaced with "sensitive".
4309func (s IncompatibleVersionException) String() string {
4310	return awsutil.Prettify(s)
4311}
4312
4313// GoString returns the string representation.
4314//
4315// API parameter values that are decorated as "sensitive" in the API will not
4316// be included in the string output. The member name will be present, but the
4317// value will be replaced with "sensitive".
4318func (s IncompatibleVersionException) GoString() string {
4319	return s.String()
4320}
4321
4322func newErrorIncompatibleVersionException(v protocol.ResponseMetadata) error {
4323	return &IncompatibleVersionException{
4324		RespMetadata: v,
4325	}
4326}
4327
4328// Code returns the exception type name.
4329func (s *IncompatibleVersionException) Code() string {
4330	return "IncompatibleVersionException"
4331}
4332
4333// Message returns the exception's message.
4334func (s *IncompatibleVersionException) Message() string {
4335	if s.Message_ != nil {
4336		return *s.Message_
4337	}
4338	return ""
4339}
4340
4341// OrigErr always returns nil, satisfies awserr.Error interface.
4342func (s *IncompatibleVersionException) OrigErr() error {
4343	return nil
4344}
4345
4346func (s *IncompatibleVersionException) Error() string {
4347	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4348}
4349
4350// Status code returns the HTTP status code for the request's response error.
4351func (s *IncompatibleVersionException) StatusCode() int {
4352	return s.RespMetadata.StatusCode
4353}
4354
4355// RequestID returns the service's response RequestID for request.
4356func (s *IncompatibleVersionException) RequestID() string {
4357	return s.RespMetadata.RequestID
4358}
4359
4360// The captions to be created, if any.
4361type InputCaptions struct {
4362	_ struct{} `type:"structure"`
4363
4364	// Source files for the input sidecar captions used during the transcoding process.
4365	// To omit all sidecar captions, leave CaptionSources blank.
4366	CaptionSources []*CaptionSource `type:"list"`
4367
4368	// A policy that determines how Elastic Transcoder handles the existence of
4369	// multiple captions.
4370	//
4371	//    * MergeOverride: Elastic Transcoder transcodes both embedded and sidecar
4372	//    captions into outputs. If captions for a language are embedded in the
4373	//    input file and also appear in a sidecar file, Elastic Transcoder uses
4374	//    the sidecar captions and ignores the embedded captions for that language.
4375	//
4376	//    * MergeRetain: Elastic Transcoder transcodes both embedded and sidecar
4377	//    captions into outputs. If captions for a language are embedded in the
4378	//    input file and also appear in a sidecar file, Elastic Transcoder uses
4379	//    the embedded captions and ignores the sidecar captions for that language.
4380	//    If CaptionSources is empty, Elastic Transcoder omits all sidecar captions
4381	//    from the output files.
4382	//
4383	//    * Override: Elastic Transcoder transcodes only the sidecar captions that
4384	//    you specify in CaptionSources.
4385	//
4386	// MergePolicy cannot be null.
4387	MergePolicy *string `type:"string"`
4388}
4389
4390// String returns the string representation.
4391//
4392// API parameter values that are decorated as "sensitive" in the API will not
4393// be included in the string output. The member name will be present, but the
4394// value will be replaced with "sensitive".
4395func (s InputCaptions) String() string {
4396	return awsutil.Prettify(s)
4397}
4398
4399// GoString returns the string representation.
4400//
4401// API parameter values that are decorated as "sensitive" in the API will not
4402// be included in the string output. The member name will be present, but the
4403// value will be replaced with "sensitive".
4404func (s InputCaptions) GoString() string {
4405	return s.String()
4406}
4407
4408// Validate inspects the fields of the type to determine if they are valid.
4409func (s *InputCaptions) Validate() error {
4410	invalidParams := request.ErrInvalidParams{Context: "InputCaptions"}
4411	if s.CaptionSources != nil {
4412		for i, v := range s.CaptionSources {
4413			if v == nil {
4414				continue
4415			}
4416			if err := v.Validate(); err != nil {
4417				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CaptionSources", i), err.(request.ErrInvalidParams))
4418			}
4419		}
4420	}
4421
4422	if invalidParams.Len() > 0 {
4423		return invalidParams
4424	}
4425	return nil
4426}
4427
4428// SetCaptionSources sets the CaptionSources field's value.
4429func (s *InputCaptions) SetCaptionSources(v []*CaptionSource) *InputCaptions {
4430	s.CaptionSources = v
4431	return s
4432}
4433
4434// SetMergePolicy sets the MergePolicy field's value.
4435func (s *InputCaptions) SetMergePolicy(v string) *InputCaptions {
4436	s.MergePolicy = &v
4437	return s
4438}
4439
4440// Elastic Transcoder encountered an unexpected exception while trying to fulfill
4441// the request.
4442type InternalServiceException struct {
4443	_            struct{}                  `type:"structure"`
4444	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4445
4446	Message_ *string `locationName:"message" type:"string"`
4447}
4448
4449// String returns the string representation.
4450//
4451// API parameter values that are decorated as "sensitive" in the API will not
4452// be included in the string output. The member name will be present, but the
4453// value will be replaced with "sensitive".
4454func (s InternalServiceException) String() string {
4455	return awsutil.Prettify(s)
4456}
4457
4458// GoString returns the string representation.
4459//
4460// API parameter values that are decorated as "sensitive" in the API will not
4461// be included in the string output. The member name will be present, but the
4462// value will be replaced with "sensitive".
4463func (s InternalServiceException) GoString() string {
4464	return s.String()
4465}
4466
4467func newErrorInternalServiceException(v protocol.ResponseMetadata) error {
4468	return &InternalServiceException{
4469		RespMetadata: v,
4470	}
4471}
4472
4473// Code returns the exception type name.
4474func (s *InternalServiceException) Code() string {
4475	return "InternalServiceException"
4476}
4477
4478// Message returns the exception's message.
4479func (s *InternalServiceException) Message() string {
4480	if s.Message_ != nil {
4481		return *s.Message_
4482	}
4483	return ""
4484}
4485
4486// OrigErr always returns nil, satisfies awserr.Error interface.
4487func (s *InternalServiceException) OrigErr() error {
4488	return nil
4489}
4490
4491func (s *InternalServiceException) Error() string {
4492	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4493}
4494
4495// Status code returns the HTTP status code for the request's response error.
4496func (s *InternalServiceException) StatusCode() int {
4497	return s.RespMetadata.StatusCode
4498}
4499
4500// RequestID returns the service's response RequestID for request.
4501func (s *InternalServiceException) RequestID() string {
4502	return s.RespMetadata.RequestID
4503}
4504
4505// A section of the response body that provides information about the job that
4506// is created.
4507type Job struct {
4508	_ struct{} `type:"structure"`
4509
4510	// The Amazon Resource Name (ARN) for the job.
4511	Arn *string `type:"string"`
4512
4513	// The identifier that Elastic Transcoder assigned to the job. You use this
4514	// value to get settings for the job or to delete the job.
4515	Id *string `type:"string"`
4516
4517	// A section of the request or response body that provides information about
4518	// the file that is being transcoded.
4519	Input *JobInput `type:"structure"`
4520
4521	// Information about the files that you're transcoding. If you specified multiple
4522	// files for this job, Elastic Transcoder stitches the files together to make
4523	// one output.
4524	Inputs []*JobInput `type:"list"`
4525
4526	// If you specified one output for a job, information about that output. If
4527	// you specified multiple outputs for a job, the Output object lists information
4528	// about the first output. This duplicates the information that is listed for
4529	// the first output in the Outputs object.
4530	//
4531	// Outputs recommended instead.
4532	//
4533	// A section of the request or response body that provides information about
4534	// the transcoded (target) file.
4535	Output *JobOutput `type:"structure"`
4536
4537	// The value, if any, that you want Elastic Transcoder to prepend to the names
4538	// of all files that this job creates, including output files, thumbnails, and
4539	// playlists. We recommend that you add a / or some other delimiter to the end
4540	// of the OutputKeyPrefix.
4541	OutputKeyPrefix *string `min:"1" type:"string"`
4542
4543	// Information about the output files. We recommend that you use the Outputs
4544	// syntax for all jobs, even when you want Elastic Transcoder to transcode a
4545	// file into only one format. Do not use both the Outputs and Output syntaxes
4546	// in the same request. You can create a maximum of 30 outputs per job.
4547	//
4548	// If you specify more than one output for a job, Elastic Transcoder creates
4549	// the files for each output in the order in which you specify them in the job.
4550	Outputs []*JobOutput `type:"list"`
4551
4552	// The Id of the pipeline that you want Elastic Transcoder to use for transcoding.
4553	// The pipeline determines several settings, including the Amazon S3 bucket
4554	// from which Elastic Transcoder gets the files to transcode and the bucket
4555	// into which Elastic Transcoder puts the transcoded files.
4556	PipelineId *string `type:"string"`
4557
4558	//
4559	// Outputs in Fragmented MP4 or MPEG-TS format only.
4560	//
4561	// If you specify a preset in PresetId for which the value of Container is fmp4
4562	// (Fragmented MP4) or ts (MPEG-TS), Playlists contains information about the
4563	// master playlists that you want Elastic Transcoder to create.
4564	//
4565	// The maximum number of master playlists in a job is 30.
4566	Playlists []*Playlist `type:"list"`
4567
4568	// The status of the job: Submitted, Progressing, Complete, Canceled, or Error.
4569	Status *string `type:"string"`
4570
4571	// Details about the timing of a job.
4572	Timing *Timing `type:"structure"`
4573
4574	// User-defined metadata that you want to associate with an Elastic Transcoder
4575	// job. You specify metadata in key/value pairs, and you can add up to 10 key/value
4576	// pairs per job. Elastic Transcoder does not guarantee that key/value pairs
4577	// are returned in the same order in which you specify them.
4578	//
4579	// Metadata keys and values must use characters from the following list:
4580	//
4581	//    * 0-9
4582	//
4583	//    * A-Z and a-z
4584	//
4585	//    * Space
4586	//
4587	//    * The following symbols: _.:/=+-%@
4588	UserMetadata map[string]*string `type:"map"`
4589}
4590
4591// String returns the string representation.
4592//
4593// API parameter values that are decorated as "sensitive" in the API will not
4594// be included in the string output. The member name will be present, but the
4595// value will be replaced with "sensitive".
4596func (s Job) String() string {
4597	return awsutil.Prettify(s)
4598}
4599
4600// GoString returns the string representation.
4601//
4602// API parameter values that are decorated as "sensitive" in the API will not
4603// be included in the string output. The member name will be present, but the
4604// value will be replaced with "sensitive".
4605func (s Job) GoString() string {
4606	return s.String()
4607}
4608
4609// SetArn sets the Arn field's value.
4610func (s *Job) SetArn(v string) *Job {
4611	s.Arn = &v
4612	return s
4613}
4614
4615// SetId sets the Id field's value.
4616func (s *Job) SetId(v string) *Job {
4617	s.Id = &v
4618	return s
4619}
4620
4621// SetInput sets the Input field's value.
4622func (s *Job) SetInput(v *JobInput) *Job {
4623	s.Input = v
4624	return s
4625}
4626
4627// SetInputs sets the Inputs field's value.
4628func (s *Job) SetInputs(v []*JobInput) *Job {
4629	s.Inputs = v
4630	return s
4631}
4632
4633// SetOutput sets the Output field's value.
4634func (s *Job) SetOutput(v *JobOutput) *Job {
4635	s.Output = v
4636	return s
4637}
4638
4639// SetOutputKeyPrefix sets the OutputKeyPrefix field's value.
4640func (s *Job) SetOutputKeyPrefix(v string) *Job {
4641	s.OutputKeyPrefix = &v
4642	return s
4643}
4644
4645// SetOutputs sets the Outputs field's value.
4646func (s *Job) SetOutputs(v []*JobOutput) *Job {
4647	s.Outputs = v
4648	return s
4649}
4650
4651// SetPipelineId sets the PipelineId field's value.
4652func (s *Job) SetPipelineId(v string) *Job {
4653	s.PipelineId = &v
4654	return s
4655}
4656
4657// SetPlaylists sets the Playlists field's value.
4658func (s *Job) SetPlaylists(v []*Playlist) *Job {
4659	s.Playlists = v
4660	return s
4661}
4662
4663// SetStatus sets the Status field's value.
4664func (s *Job) SetStatus(v string) *Job {
4665	s.Status = &v
4666	return s
4667}
4668
4669// SetTiming sets the Timing field's value.
4670func (s *Job) SetTiming(v *Timing) *Job {
4671	s.Timing = v
4672	return s
4673}
4674
4675// SetUserMetadata sets the UserMetadata field's value.
4676func (s *Job) SetUserMetadata(v map[string]*string) *Job {
4677	s.UserMetadata = v
4678	return s
4679}
4680
4681// The .jpg or .png file associated with an audio file.
4682type JobAlbumArt struct {
4683	_ struct{} `type:"structure"`
4684
4685	// The file to be used as album art. There can be multiple artworks associated
4686	// with an audio file, to a maximum of 20. Valid formats are .jpg and .png
4687	Artwork []*Artwork `type:"list"`
4688
4689	// A policy that determines how Elastic Transcoder handles the existence of
4690	// multiple album artwork files.
4691	//
4692	//    * Replace: The specified album art replaces any existing album art.
4693	//
4694	//    * Prepend: The specified album art is placed in front of any existing
4695	//    album art.
4696	//
4697	//    * Append: The specified album art is placed after any existing album art.
4698	//
4699	//    * Fallback: If the original input file contains artwork, Elastic Transcoder
4700	//    uses that artwork for the output. If the original input does not contain
4701	//    artwork, Elastic Transcoder uses the specified album art file.
4702	MergePolicy *string `type:"string"`
4703}
4704
4705// String returns the string representation.
4706//
4707// API parameter values that are decorated as "sensitive" in the API will not
4708// be included in the string output. The member name will be present, but the
4709// value will be replaced with "sensitive".
4710func (s JobAlbumArt) String() string {
4711	return awsutil.Prettify(s)
4712}
4713
4714// GoString returns the string representation.
4715//
4716// API parameter values that are decorated as "sensitive" in the API will not
4717// be included in the string output. The member name will be present, but the
4718// value will be replaced with "sensitive".
4719func (s JobAlbumArt) GoString() string {
4720	return s.String()
4721}
4722
4723// Validate inspects the fields of the type to determine if they are valid.
4724func (s *JobAlbumArt) Validate() error {
4725	invalidParams := request.ErrInvalidParams{Context: "JobAlbumArt"}
4726	if s.Artwork != nil {
4727		for i, v := range s.Artwork {
4728			if v == nil {
4729				continue
4730			}
4731			if err := v.Validate(); err != nil {
4732				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Artwork", i), err.(request.ErrInvalidParams))
4733			}
4734		}
4735	}
4736
4737	if invalidParams.Len() > 0 {
4738		return invalidParams
4739	}
4740	return nil
4741}
4742
4743// SetArtwork sets the Artwork field's value.
4744func (s *JobAlbumArt) SetArtwork(v []*Artwork) *JobAlbumArt {
4745	s.Artwork = v
4746	return s
4747}
4748
4749// SetMergePolicy sets the MergePolicy field's value.
4750func (s *JobAlbumArt) SetMergePolicy(v string) *JobAlbumArt {
4751	s.MergePolicy = &v
4752	return s
4753}
4754
4755// Information about the file that you're transcoding.
4756type JobInput struct {
4757	_ struct{} `type:"structure"`
4758
4759	// The aspect ratio of the input file. If you want Elastic Transcoder to automatically
4760	// detect the aspect ratio of the input file, specify auto. If you want to specify
4761	// the aspect ratio for the output file, enter one of the following values:
4762	//
4763	// 1:1, 4:3, 3:2, 16:9
4764	//
4765	// If you specify a value other than auto, Elastic Transcoder disables automatic
4766	// detection of the aspect ratio.
4767	AspectRatio *string `type:"string"`
4768
4769	// The container type for the input file. If you want Elastic Transcoder to
4770	// automatically detect the container type of the input file, specify auto.
4771	// If you want to specify the container type for the input file, enter one of
4772	// the following values:
4773	//
4774	// 3gp, aac, asf, avi, divx, flv, m4a, mkv, mov, mp3, mp4, mpeg, mpeg-ps, mpeg-ts,
4775	// mxf, ogg, vob, wav, webm
4776	Container *string `type:"string"`
4777
4778	// The detected properties of the input file.
4779	DetectedProperties *DetectedProperties `type:"structure"`
4780
4781	// The encryption settings, if any, that are used for decrypting your input
4782	// files. If your input file is encrypted, you must specify the mode that Elastic
4783	// Transcoder uses to decrypt your file.
4784	Encryption *Encryption `type:"structure"`
4785
4786	// The frame rate of the input file. If you want Elastic Transcoder to automatically
4787	// detect the frame rate of the input file, specify auto. If you want to specify
4788	// the frame rate for the input file, enter one of the following values:
4789	//
4790	// 10, 15, 23.97, 24, 25, 29.97, 30, 60
4791	//
4792	// If you specify a value other than auto, Elastic Transcoder disables automatic
4793	// detection of the frame rate.
4794	FrameRate *string `type:"string"`
4795
4796	// You can configure Elastic Transcoder to transcode captions, or subtitles,
4797	// from one format to another. All captions must be in UTF-8. Elastic Transcoder
4798	// supports two types of captions:
4799	//
4800	//    * Embedded: Embedded captions are included in the same file as the audio
4801	//    and video. Elastic Transcoder supports only one embedded caption per language,
4802	//    to a maximum of 300 embedded captions per file. Valid input values include:
4803	//    CEA-608 (EIA-608, first non-empty channel only), CEA-708 (EIA-708, first
4804	//    non-empty channel only), and mov-text Valid outputs include: mov-text
4805	//    Elastic Transcoder supports a maximum of one embedded format per output.
4806	//
4807	//    * Sidecar: Sidecar captions are kept in a separate metadata file from
4808	//    the audio and video data. Sidecar captions require a player that is capable
4809	//    of understanding the relationship between the video file and the sidecar
4810	//    file. Elastic Transcoder supports only one sidecar caption per language,
4811	//    to a maximum of 20 sidecar captions per file. Valid input values include:
4812	//    dfxp (first div element only), ebu-tt, scc, smpt, srt, ttml (first div
4813	//    element only), and webvtt Valid outputs include: dfxp (first div element
4814	//    only), scc, srt, and webvtt.
4815	//
4816	// If you want ttml or smpte-tt compatible captions, specify dfxp as your output
4817	// format.
4818	//
4819	// Elastic Transcoder does not support OCR (Optical Character Recognition),
4820	// does not accept pictures as a valid input for captions, and is not available
4821	// for audio-only transcoding. Elastic Transcoder does not preserve text formatting
4822	// (for example, italics) during the transcoding process.
4823	//
4824	// To remove captions or leave the captions empty, set Captions to null. To
4825	// pass through existing captions unchanged, set the MergePolicy to MergeRetain,
4826	// and pass in a null CaptionSources array.
4827	//
4828	// For more information on embedded files, see the Subtitles Wikipedia page.
4829	//
4830	// For more information on sidecar files, see the Extensible Metadata Platform
4831	// and Sidecar file Wikipedia pages.
4832	InputCaptions *InputCaptions `type:"structure"`
4833
4834	// Whether the input file is interlaced. If you want Elastic Transcoder to automatically
4835	// detect whether the input file is interlaced, specify auto. If you want to
4836	// specify whether the input file is interlaced, enter one of the following
4837	// values:
4838	//
4839	// true, false
4840	//
4841	// If you specify a value other than auto, Elastic Transcoder disables automatic
4842	// detection of interlacing.
4843	Interlaced *string `type:"string"`
4844
4845	// The name of the file to transcode. Elsewhere in the body of the JSON block
4846	// is the the ID of the pipeline to use for processing the job. The InputBucket
4847	// object in that pipeline tells Elastic Transcoder which Amazon S3 bucket to
4848	// get the file from.
4849	//
4850	// If the file name includes a prefix, such as cooking/lasagna.mpg, include
4851	// the prefix in the key. If the file isn't in the specified bucket, Elastic
4852	// Transcoder returns an error.
4853	Key *string `min:"1" type:"string"`
4854
4855	// This value must be auto, which causes Elastic Transcoder to automatically
4856	// detect the resolution of the input file.
4857	Resolution *string `type:"string"`
4858
4859	// Settings for clipping an input. Each input can have different clip settings.
4860	TimeSpan *TimeSpan `type:"structure"`
4861}
4862
4863// String returns the string representation.
4864//
4865// API parameter values that are decorated as "sensitive" in the API will not
4866// be included in the string output. The member name will be present, but the
4867// value will be replaced with "sensitive".
4868func (s JobInput) String() string {
4869	return awsutil.Prettify(s)
4870}
4871
4872// GoString returns the string representation.
4873//
4874// API parameter values that are decorated as "sensitive" in the API will not
4875// be included in the string output. The member name will be present, but the
4876// value will be replaced with "sensitive".
4877func (s JobInput) GoString() string {
4878	return s.String()
4879}
4880
4881// Validate inspects the fields of the type to determine if they are valid.
4882func (s *JobInput) Validate() error {
4883	invalidParams := request.ErrInvalidParams{Context: "JobInput"}
4884	if s.Key != nil && len(*s.Key) < 1 {
4885		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
4886	}
4887	if s.InputCaptions != nil {
4888		if err := s.InputCaptions.Validate(); err != nil {
4889			invalidParams.AddNested("InputCaptions", err.(request.ErrInvalidParams))
4890		}
4891	}
4892
4893	if invalidParams.Len() > 0 {
4894		return invalidParams
4895	}
4896	return nil
4897}
4898
4899// SetAspectRatio sets the AspectRatio field's value.
4900func (s *JobInput) SetAspectRatio(v string) *JobInput {
4901	s.AspectRatio = &v
4902	return s
4903}
4904
4905// SetContainer sets the Container field's value.
4906func (s *JobInput) SetContainer(v string) *JobInput {
4907	s.Container = &v
4908	return s
4909}
4910
4911// SetDetectedProperties sets the DetectedProperties field's value.
4912func (s *JobInput) SetDetectedProperties(v *DetectedProperties) *JobInput {
4913	s.DetectedProperties = v
4914	return s
4915}
4916
4917// SetEncryption sets the Encryption field's value.
4918func (s *JobInput) SetEncryption(v *Encryption) *JobInput {
4919	s.Encryption = v
4920	return s
4921}
4922
4923// SetFrameRate sets the FrameRate field's value.
4924func (s *JobInput) SetFrameRate(v string) *JobInput {
4925	s.FrameRate = &v
4926	return s
4927}
4928
4929// SetInputCaptions sets the InputCaptions field's value.
4930func (s *JobInput) SetInputCaptions(v *InputCaptions) *JobInput {
4931	s.InputCaptions = v
4932	return s
4933}
4934
4935// SetInterlaced sets the Interlaced field's value.
4936func (s *JobInput) SetInterlaced(v string) *JobInput {
4937	s.Interlaced = &v
4938	return s
4939}
4940
4941// SetKey sets the Key field's value.
4942func (s *JobInput) SetKey(v string) *JobInput {
4943	s.Key = &v
4944	return s
4945}
4946
4947// SetResolution sets the Resolution field's value.
4948func (s *JobInput) SetResolution(v string) *JobInput {
4949	s.Resolution = &v
4950	return s
4951}
4952
4953// SetTimeSpan sets the TimeSpan field's value.
4954func (s *JobInput) SetTimeSpan(v *TimeSpan) *JobInput {
4955	s.TimeSpan = v
4956	return s
4957}
4958
4959//
4960// Outputs recommended instead.
4961//
4962// If you specified one output for a job, information about that output. If
4963// you specified multiple outputs for a job, the Output object lists information
4964// about the first output. This duplicates the information that is listed for
4965// the first output in the Outputs object.
4966type JobOutput struct {
4967	_ struct{} `type:"structure"`
4968
4969	// The album art to be associated with the output file, if any.
4970	AlbumArt *JobAlbumArt `type:"structure"`
4971
4972	// If Elastic Transcoder used a preset with a ColorSpaceConversionMode to transcode
4973	// the output file, the AppliedColorSpaceConversion parameter shows the conversion
4974	// used. If no ColorSpaceConversionMode was defined in the preset, this parameter
4975	// is not be included in the job response.
4976	AppliedColorSpaceConversion *string `type:"string"`
4977
4978	// You can configure Elastic Transcoder to transcode captions, or subtitles,
4979	// from one format to another. All captions must be in UTF-8. Elastic Transcoder
4980	// supports two types of captions:
4981	//
4982	//    * Embedded: Embedded captions are included in the same file as the audio
4983	//    and video. Elastic Transcoder supports only one embedded caption per language,
4984	//    to a maximum of 300 embedded captions per file. Valid input values include:
4985	//    CEA-608 (EIA-608, first non-empty channel only), CEA-708 (EIA-708, first
4986	//    non-empty channel only), and mov-text Valid outputs include: mov-text
4987	//    Elastic Transcoder supports a maximum of one embedded format per output.
4988	//
4989	//    * Sidecar: Sidecar captions are kept in a separate metadata file from
4990	//    the audio and video data. Sidecar captions require a player that is capable
4991	//    of understanding the relationship between the video file and the sidecar
4992	//    file. Elastic Transcoder supports only one sidecar caption per language,
4993	//    to a maximum of 20 sidecar captions per file. Valid input values include:
4994	//    dfxp (first div element only), ebu-tt, scc, smpt, srt, ttml (first div
4995	//    element only), and webvtt Valid outputs include: dfxp (first div element
4996	//    only), scc, srt, and webvtt.
4997	//
4998	// If you want ttml or smpte-tt compatible captions, specify dfxp as your output
4999	// format.
5000	//
5001	// Elastic Transcoder does not support OCR (Optical Character Recognition),
5002	// does not accept pictures as a valid input for captions, and is not available
5003	// for audio-only transcoding. Elastic Transcoder does not preserve text formatting
5004	// (for example, italics) during the transcoding process.
5005	//
5006	// To remove captions or leave the captions empty, set Captions to null. To
5007	// pass through existing captions unchanged, set the MergePolicy to MergeRetain,
5008	// and pass in a null CaptionSources array.
5009	//
5010	// For more information on embedded files, see the Subtitles Wikipedia page.
5011	//
5012	// For more information on sidecar files, see the Extensible Metadata Platform
5013	// and Sidecar file Wikipedia pages.
5014	Captions *Captions `type:"structure"`
5015
5016	// You can create an output file that contains an excerpt from the input file.
5017	// This excerpt, called a clip, can come from the beginning, middle, or end
5018	// of the file. The Composition object contains settings for the clips that
5019	// make up an output file. For the current release, you can only specify settings
5020	// for a single clip per output file. The Composition object cannot be null.
5021	//
5022	// Deprecated: Composition has been deprecated
5023	Composition []*Clip `deprecated:"true" type:"list"`
5024
5025	// Duration of the output file, in seconds.
5026	Duration *int64 `type:"long"`
5027
5028	// Duration of the output file, in milliseconds.
5029	DurationMillis *int64 `type:"long"`
5030
5031	// The encryption settings, if any, that you want Elastic Transcoder to apply
5032	// to your output files. If you choose to use encryption, you must specify a
5033	// mode to use. If you choose not to use encryption, Elastic Transcoder writes
5034	// an unencrypted file to your Amazon S3 bucket.
5035	Encryption *Encryption `type:"structure"`
5036
5037	// File size of the output file, in bytes.
5038	FileSize *int64 `type:"long"`
5039
5040	// Frame rate of the output file, in frames per second.
5041	FrameRate *string `type:"string"`
5042
5043	// Height of the output file, in pixels.
5044	Height *int64 `type:"integer"`
5045
5046	// A sequential counter, starting with 1, that identifies an output among the
5047	// outputs from the current job. In the Output syntax, this value is always
5048	// 1.
5049	Id *string `type:"string"`
5050
5051	// The name to assign to the transcoded file. Elastic Transcoder saves the file
5052	// in the Amazon S3 bucket specified by the OutputBucket object in the pipeline
5053	// that is specified by the pipeline ID.
5054	Key *string `min:"1" type:"string"`
5055
5056	// The value of the Id object for the preset that you want to use for this job.
5057	// The preset determines the audio, video, and thumbnail settings that Elastic
5058	// Transcoder uses for transcoding. To use a preset that you created, specify
5059	// the preset ID that Elastic Transcoder returned in the response when you created
5060	// the preset. You can also use the Elastic Transcoder system presets, which
5061	// you can get with ListPresets.
5062	PresetId *string `type:"string"`
5063
5064	// The number of degrees clockwise by which you want Elastic Transcoder to rotate
5065	// the output relative to the input. Enter one of the following values:
5066	//
5067	// auto, 0, 90, 180, 270
5068	//
5069	// The value auto generally works only if the file that you're transcoding contains
5070	// rotation metadata.
5071	Rotate *string `type:"string"`
5072
5073	//
5074	// (Outputs in Fragmented MP4 or MPEG-TS format only.
5075	//
5076	// If you specify a preset in PresetId for which the value of Container is fmp4
5077	// (Fragmented MP4) or ts (MPEG-TS), SegmentDuration is the target maximum duration
5078	// of each segment in seconds. For HLSv3 format playlists, each media segment
5079	// is stored in a separate .ts file. For HLSv4, MPEG-DASH, and Smooth playlists,
5080	// all media segments for an output are stored in a single file. Each segment
5081	// is approximately the length of the SegmentDuration, though individual segments
5082	// might be shorter or longer.
5083	//
5084	// The range of valid values is 1 to 60 seconds. If the duration of the video
5085	// is not evenly divisible by SegmentDuration, the duration of the last segment
5086	// is the remainder of total length/SegmentDuration.
5087	//
5088	// Elastic Transcoder creates an output-specific playlist for each output HLS
5089	// output that you specify in OutputKeys. To add an output to the master playlist
5090	// for this job, include it in the OutputKeys of the associated playlist.
5091	SegmentDuration *string `type:"string"`
5092
5093	// The status of one output in a job. If you specified only one output for the
5094	// job, Outputs:Status is always the same as Job:Status. If you specified more
5095	// than one output:
5096	//
5097	//    * Job:Status and Outputs:Status for all of the outputs is Submitted until
5098	//    Elastic Transcoder starts to process the first output.
5099	//
5100	//    * When Elastic Transcoder starts to process the first output, Outputs:Status
5101	//    for that output and Job:Status both change to Progressing. For each output,
5102	//    the value of Outputs:Status remains Submitted until Elastic Transcoder
5103	//    starts to process the output.
5104	//
5105	//    * Job:Status remains Progressing until all of the outputs reach a terminal
5106	//    status, either Complete or Error.
5107	//
5108	//    * When all of the outputs reach a terminal status, Job:Status changes
5109	//    to Complete only if Outputs:Status for all of the outputs is Complete.
5110	//    If Outputs:Status for one or more outputs is Error, the terminal status
5111	//    for Job:Status is also Error.
5112	//
5113	// The value of Status is one of the following: Submitted, Progressing, Complete,
5114	// Canceled, or Error.
5115	Status *string `type:"string"`
5116
5117	// Information that further explains Status.
5118	StatusDetail *string `type:"string"`
5119
5120	// The encryption settings, if any, that you want Elastic Transcoder to apply
5121	// to your thumbnail.
5122	ThumbnailEncryption *Encryption `type:"structure"`
5123
5124	// Whether you want Elastic Transcoder to create thumbnails for your videos
5125	// and, if so, how you want Elastic Transcoder to name the files.
5126	//
5127	// If you don't want Elastic Transcoder to create thumbnails, specify "".
5128	//
5129	// If you do want Elastic Transcoder to create thumbnails, specify the information
5130	// that you want to include in the file name for each thumbnail. You can specify
5131	// the following values in any sequence:
5132	//
5133	//    * {count} (Required): If you want to create thumbnails, you must include
5134	//    {count} in the ThumbnailPattern object. Wherever you specify {count},
5135	//    Elastic Transcoder adds a five-digit sequence number (beginning with 00001)
5136	//    to thumbnail file names. The number indicates where a given thumbnail
5137	//    appears in the sequence of thumbnails for a transcoded file. If you specify
5138	//    a literal value and/or {resolution} but you omit {count}, Elastic Transcoder
5139	//    returns a validation error and does not create the job.
5140	//
5141	//    * Literal values (Optional): You can specify literal values anywhere in
5142	//    the ThumbnailPattern object. For example, you can include them as a file
5143	//    name prefix or as a delimiter between {resolution} and {count}.
5144	//
5145	//    * {resolution} (Optional): If you want Elastic Transcoder to include the
5146	//    resolution in the file name, include {resolution} in the ThumbnailPattern
5147	//    object.
5148	//
5149	// When creating thumbnails, Elastic Transcoder automatically saves the files
5150	// in the format (.jpg or .png) that appears in the preset that you specified
5151	// in the PresetID value of CreateJobOutput. Elastic Transcoder also appends
5152	// the applicable file name extension.
5153	ThumbnailPattern *string `type:"string"`
5154
5155	// Information about the watermarks that you want Elastic Transcoder to add
5156	// to the video during transcoding. You can specify up to four watermarks for
5157	// each output. Settings for each watermark must be defined in the preset that
5158	// you specify in Preset for the current output.
5159	//
5160	// Watermarks are added to the output video in the sequence in which you list
5161	// them in the job output—the first watermark in the list is added to the
5162	// output video first, the second watermark in the list is added next, and so
5163	// on. As a result, if the settings in a preset cause Elastic Transcoder to
5164	// place all watermarks in the same location, the second watermark that you
5165	// add covers the first one, the third one covers the second, and the fourth
5166	// one covers the third.
5167	Watermarks []*JobWatermark `type:"list"`
5168
5169	// Specifies the width of the output file in pixels.
5170	Width *int64 `type:"integer"`
5171}
5172
5173// String returns the string representation.
5174//
5175// API parameter values that are decorated as "sensitive" in the API will not
5176// be included in the string output. The member name will be present, but the
5177// value will be replaced with "sensitive".
5178func (s JobOutput) String() string {
5179	return awsutil.Prettify(s)
5180}
5181
5182// GoString returns the string representation.
5183//
5184// API parameter values that are decorated as "sensitive" in the API will not
5185// be included in the string output. The member name will be present, but the
5186// value will be replaced with "sensitive".
5187func (s JobOutput) GoString() string {
5188	return s.String()
5189}
5190
5191// SetAlbumArt sets the AlbumArt field's value.
5192func (s *JobOutput) SetAlbumArt(v *JobAlbumArt) *JobOutput {
5193	s.AlbumArt = v
5194	return s
5195}
5196
5197// SetAppliedColorSpaceConversion sets the AppliedColorSpaceConversion field's value.
5198func (s *JobOutput) SetAppliedColorSpaceConversion(v string) *JobOutput {
5199	s.AppliedColorSpaceConversion = &v
5200	return s
5201}
5202
5203// SetCaptions sets the Captions field's value.
5204func (s *JobOutput) SetCaptions(v *Captions) *JobOutput {
5205	s.Captions = v
5206	return s
5207}
5208
5209// SetComposition sets the Composition field's value.
5210func (s *JobOutput) SetComposition(v []*Clip) *JobOutput {
5211	s.Composition = v
5212	return s
5213}
5214
5215// SetDuration sets the Duration field's value.
5216func (s *JobOutput) SetDuration(v int64) *JobOutput {
5217	s.Duration = &v
5218	return s
5219}
5220
5221// SetDurationMillis sets the DurationMillis field's value.
5222func (s *JobOutput) SetDurationMillis(v int64) *JobOutput {
5223	s.DurationMillis = &v
5224	return s
5225}
5226
5227// SetEncryption sets the Encryption field's value.
5228func (s *JobOutput) SetEncryption(v *Encryption) *JobOutput {
5229	s.Encryption = v
5230	return s
5231}
5232
5233// SetFileSize sets the FileSize field's value.
5234func (s *JobOutput) SetFileSize(v int64) *JobOutput {
5235	s.FileSize = &v
5236	return s
5237}
5238
5239// SetFrameRate sets the FrameRate field's value.
5240func (s *JobOutput) SetFrameRate(v string) *JobOutput {
5241	s.FrameRate = &v
5242	return s
5243}
5244
5245// SetHeight sets the Height field's value.
5246func (s *JobOutput) SetHeight(v int64) *JobOutput {
5247	s.Height = &v
5248	return s
5249}
5250
5251// SetId sets the Id field's value.
5252func (s *JobOutput) SetId(v string) *JobOutput {
5253	s.Id = &v
5254	return s
5255}
5256
5257// SetKey sets the Key field's value.
5258func (s *JobOutput) SetKey(v string) *JobOutput {
5259	s.Key = &v
5260	return s
5261}
5262
5263// SetPresetId sets the PresetId field's value.
5264func (s *JobOutput) SetPresetId(v string) *JobOutput {
5265	s.PresetId = &v
5266	return s
5267}
5268
5269// SetRotate sets the Rotate field's value.
5270func (s *JobOutput) SetRotate(v string) *JobOutput {
5271	s.Rotate = &v
5272	return s
5273}
5274
5275// SetSegmentDuration sets the SegmentDuration field's value.
5276func (s *JobOutput) SetSegmentDuration(v string) *JobOutput {
5277	s.SegmentDuration = &v
5278	return s
5279}
5280
5281// SetStatus sets the Status field's value.
5282func (s *JobOutput) SetStatus(v string) *JobOutput {
5283	s.Status = &v
5284	return s
5285}
5286
5287// SetStatusDetail sets the StatusDetail field's value.
5288func (s *JobOutput) SetStatusDetail(v string) *JobOutput {
5289	s.StatusDetail = &v
5290	return s
5291}
5292
5293// SetThumbnailEncryption sets the ThumbnailEncryption field's value.
5294func (s *JobOutput) SetThumbnailEncryption(v *Encryption) *JobOutput {
5295	s.ThumbnailEncryption = v
5296	return s
5297}
5298
5299// SetThumbnailPattern sets the ThumbnailPattern field's value.
5300func (s *JobOutput) SetThumbnailPattern(v string) *JobOutput {
5301	s.ThumbnailPattern = &v
5302	return s
5303}
5304
5305// SetWatermarks sets the Watermarks field's value.
5306func (s *JobOutput) SetWatermarks(v []*JobWatermark) *JobOutput {
5307	s.Watermarks = v
5308	return s
5309}
5310
5311// SetWidth sets the Width field's value.
5312func (s *JobOutput) SetWidth(v int64) *JobOutput {
5313	s.Width = &v
5314	return s
5315}
5316
5317// Watermarks can be in .png or .jpg format. If you want to display a watermark
5318// that is not rectangular, use the .png format, which supports transparency.
5319type JobWatermark struct {
5320	_ struct{} `type:"structure"`
5321
5322	// The encryption settings, if any, that you want Elastic Transcoder to apply
5323	// to your watermarks.
5324	Encryption *Encryption `type:"structure"`
5325
5326	// The name of the .png or .jpg file that you want to use for the watermark.
5327	// To determine which Amazon S3 bucket contains the specified file, Elastic
5328	// Transcoder checks the pipeline specified by Pipeline; the Input Bucket object
5329	// in that pipeline identifies the bucket.
5330	//
5331	// If the file name includes a prefix, for example, logos/128x64.png, include
5332	// the prefix in the key. If the file isn't in the specified bucket, Elastic
5333	// Transcoder returns an error.
5334	InputKey *string `min:"1" type:"string"`
5335
5336	// The ID of the watermark settings that Elastic Transcoder uses to add watermarks
5337	// to the video during transcoding. The settings are in the preset specified
5338	// by Preset for the current output. In that preset, the value of Watermarks
5339	// Id tells Elastic Transcoder which settings to use.
5340	PresetWatermarkId *string `min:"1" type:"string"`
5341}
5342
5343// String returns the string representation.
5344//
5345// API parameter values that are decorated as "sensitive" in the API will not
5346// be included in the string output. The member name will be present, but the
5347// value will be replaced with "sensitive".
5348func (s JobWatermark) String() string {
5349	return awsutil.Prettify(s)
5350}
5351
5352// GoString returns the string representation.
5353//
5354// API parameter values that are decorated as "sensitive" in the API will not
5355// be included in the string output. The member name will be present, but the
5356// value will be replaced with "sensitive".
5357func (s JobWatermark) GoString() string {
5358	return s.String()
5359}
5360
5361// Validate inspects the fields of the type to determine if they are valid.
5362func (s *JobWatermark) Validate() error {
5363	invalidParams := request.ErrInvalidParams{Context: "JobWatermark"}
5364	if s.InputKey != nil && len(*s.InputKey) < 1 {
5365		invalidParams.Add(request.NewErrParamMinLen("InputKey", 1))
5366	}
5367	if s.PresetWatermarkId != nil && len(*s.PresetWatermarkId) < 1 {
5368		invalidParams.Add(request.NewErrParamMinLen("PresetWatermarkId", 1))
5369	}
5370
5371	if invalidParams.Len() > 0 {
5372		return invalidParams
5373	}
5374	return nil
5375}
5376
5377// SetEncryption sets the Encryption field's value.
5378func (s *JobWatermark) SetEncryption(v *Encryption) *JobWatermark {
5379	s.Encryption = v
5380	return s
5381}
5382
5383// SetInputKey sets the InputKey field's value.
5384func (s *JobWatermark) SetInputKey(v string) *JobWatermark {
5385	s.InputKey = &v
5386	return s
5387}
5388
5389// SetPresetWatermarkId sets the PresetWatermarkId field's value.
5390func (s *JobWatermark) SetPresetWatermarkId(v string) *JobWatermark {
5391	s.PresetWatermarkId = &v
5392	return s
5393}
5394
5395// Too many operations for a given AWS account. For example, the number of pipelines
5396// exceeds the maximum allowed.
5397type LimitExceededException struct {
5398	_            struct{}                  `type:"structure"`
5399	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5400
5401	Message_ *string `locationName:"message" type:"string"`
5402}
5403
5404// String returns the string representation.
5405//
5406// API parameter values that are decorated as "sensitive" in the API will not
5407// be included in the string output. The member name will be present, but the
5408// value will be replaced with "sensitive".
5409func (s LimitExceededException) String() string {
5410	return awsutil.Prettify(s)
5411}
5412
5413// GoString returns the string representation.
5414//
5415// API parameter values that are decorated as "sensitive" in the API will not
5416// be included in the string output. The member name will be present, but the
5417// value will be replaced with "sensitive".
5418func (s LimitExceededException) GoString() string {
5419	return s.String()
5420}
5421
5422func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
5423	return &LimitExceededException{
5424		RespMetadata: v,
5425	}
5426}
5427
5428// Code returns the exception type name.
5429func (s *LimitExceededException) Code() string {
5430	return "LimitExceededException"
5431}
5432
5433// Message returns the exception's message.
5434func (s *LimitExceededException) Message() string {
5435	if s.Message_ != nil {
5436		return *s.Message_
5437	}
5438	return ""
5439}
5440
5441// OrigErr always returns nil, satisfies awserr.Error interface.
5442func (s *LimitExceededException) OrigErr() error {
5443	return nil
5444}
5445
5446func (s *LimitExceededException) Error() string {
5447	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5448}
5449
5450// Status code returns the HTTP status code for the request's response error.
5451func (s *LimitExceededException) StatusCode() int {
5452	return s.RespMetadata.StatusCode
5453}
5454
5455// RequestID returns the service's response RequestID for request.
5456func (s *LimitExceededException) RequestID() string {
5457	return s.RespMetadata.RequestID
5458}
5459
5460// The ListJobsByPipelineRequest structure.
5461type ListJobsByPipelineInput struct {
5462	_ struct{} `type:"structure" nopayload:"true"`
5463
5464	// To list jobs in chronological order by the date and time that they were submitted,
5465	// enter true. To list jobs in reverse chronological order, enter false.
5466	Ascending *string `location:"querystring" locationName:"Ascending" type:"string"`
5467
5468	// When Elastic Transcoder returns more than one page of results, use pageToken
5469	// in subsequent GET requests to get each successive page of results.
5470	PageToken *string `location:"querystring" locationName:"PageToken" type:"string"`
5471
5472	// The ID of the pipeline for which you want to get job information.
5473	//
5474	// PipelineId is a required field
5475	PipelineId *string `location:"uri" locationName:"PipelineId" type:"string" required:"true"`
5476}
5477
5478// String returns the string representation.
5479//
5480// API parameter values that are decorated as "sensitive" in the API will not
5481// be included in the string output. The member name will be present, but the
5482// value will be replaced with "sensitive".
5483func (s ListJobsByPipelineInput) String() string {
5484	return awsutil.Prettify(s)
5485}
5486
5487// GoString returns the string representation.
5488//
5489// API parameter values that are decorated as "sensitive" in the API will not
5490// be included in the string output. The member name will be present, but the
5491// value will be replaced with "sensitive".
5492func (s ListJobsByPipelineInput) GoString() string {
5493	return s.String()
5494}
5495
5496// Validate inspects the fields of the type to determine if they are valid.
5497func (s *ListJobsByPipelineInput) Validate() error {
5498	invalidParams := request.ErrInvalidParams{Context: "ListJobsByPipelineInput"}
5499	if s.PipelineId == nil {
5500		invalidParams.Add(request.NewErrParamRequired("PipelineId"))
5501	}
5502	if s.PipelineId != nil && len(*s.PipelineId) < 1 {
5503		invalidParams.Add(request.NewErrParamMinLen("PipelineId", 1))
5504	}
5505
5506	if invalidParams.Len() > 0 {
5507		return invalidParams
5508	}
5509	return nil
5510}
5511
5512// SetAscending sets the Ascending field's value.
5513func (s *ListJobsByPipelineInput) SetAscending(v string) *ListJobsByPipelineInput {
5514	s.Ascending = &v
5515	return s
5516}
5517
5518// SetPageToken sets the PageToken field's value.
5519func (s *ListJobsByPipelineInput) SetPageToken(v string) *ListJobsByPipelineInput {
5520	s.PageToken = &v
5521	return s
5522}
5523
5524// SetPipelineId sets the PipelineId field's value.
5525func (s *ListJobsByPipelineInput) SetPipelineId(v string) *ListJobsByPipelineInput {
5526	s.PipelineId = &v
5527	return s
5528}
5529
5530// The ListJobsByPipelineResponse structure.
5531type ListJobsByPipelineOutput struct {
5532	_ struct{} `type:"structure"`
5533
5534	// An array of Job objects that are in the specified pipeline.
5535	Jobs []*Job `type:"list"`
5536
5537	// A value that you use to access the second and subsequent pages of results,
5538	// if any. When the jobs in the specified pipeline fit on one page or when you've
5539	// reached the last page of results, the value of NextPageToken is null.
5540	NextPageToken *string `type:"string"`
5541}
5542
5543// String returns the string representation.
5544//
5545// API parameter values that are decorated as "sensitive" in the API will not
5546// be included in the string output. The member name will be present, but the
5547// value will be replaced with "sensitive".
5548func (s ListJobsByPipelineOutput) String() string {
5549	return awsutil.Prettify(s)
5550}
5551
5552// GoString returns the string representation.
5553//
5554// API parameter values that are decorated as "sensitive" in the API will not
5555// be included in the string output. The member name will be present, but the
5556// value will be replaced with "sensitive".
5557func (s ListJobsByPipelineOutput) GoString() string {
5558	return s.String()
5559}
5560
5561// SetJobs sets the Jobs field's value.
5562func (s *ListJobsByPipelineOutput) SetJobs(v []*Job) *ListJobsByPipelineOutput {
5563	s.Jobs = v
5564	return s
5565}
5566
5567// SetNextPageToken sets the NextPageToken field's value.
5568func (s *ListJobsByPipelineOutput) SetNextPageToken(v string) *ListJobsByPipelineOutput {
5569	s.NextPageToken = &v
5570	return s
5571}
5572
5573// The ListJobsByStatusRequest structure.
5574type ListJobsByStatusInput struct {
5575	_ struct{} `type:"structure" nopayload:"true"`
5576
5577	// To list jobs in chronological order by the date and time that they were submitted,
5578	// enter true. To list jobs in reverse chronological order, enter false.
5579	Ascending *string `location:"querystring" locationName:"Ascending" type:"string"`
5580
5581	// When Elastic Transcoder returns more than one page of results, use pageToken
5582	// in subsequent GET requests to get each successive page of results.
5583	PageToken *string `location:"querystring" locationName:"PageToken" type:"string"`
5584
5585	// To get information about all of the jobs associated with the current AWS
5586	// account that have a given status, specify the following status: Submitted,
5587	// Progressing, Complete, Canceled, or Error.
5588	//
5589	// Status is a required field
5590	Status *string `location:"uri" locationName:"Status" type:"string" required:"true"`
5591}
5592
5593// String returns the string representation.
5594//
5595// API parameter values that are decorated as "sensitive" in the API will not
5596// be included in the string output. The member name will be present, but the
5597// value will be replaced with "sensitive".
5598func (s ListJobsByStatusInput) String() string {
5599	return awsutil.Prettify(s)
5600}
5601
5602// GoString returns the string representation.
5603//
5604// API parameter values that are decorated as "sensitive" in the API will not
5605// be included in the string output. The member name will be present, but the
5606// value will be replaced with "sensitive".
5607func (s ListJobsByStatusInput) GoString() string {
5608	return s.String()
5609}
5610
5611// Validate inspects the fields of the type to determine if they are valid.
5612func (s *ListJobsByStatusInput) Validate() error {
5613	invalidParams := request.ErrInvalidParams{Context: "ListJobsByStatusInput"}
5614	if s.Status == nil {
5615		invalidParams.Add(request.NewErrParamRequired("Status"))
5616	}
5617	if s.Status != nil && len(*s.Status) < 1 {
5618		invalidParams.Add(request.NewErrParamMinLen("Status", 1))
5619	}
5620
5621	if invalidParams.Len() > 0 {
5622		return invalidParams
5623	}
5624	return nil
5625}
5626
5627// SetAscending sets the Ascending field's value.
5628func (s *ListJobsByStatusInput) SetAscending(v string) *ListJobsByStatusInput {
5629	s.Ascending = &v
5630	return s
5631}
5632
5633// SetPageToken sets the PageToken field's value.
5634func (s *ListJobsByStatusInput) SetPageToken(v string) *ListJobsByStatusInput {
5635	s.PageToken = &v
5636	return s
5637}
5638
5639// SetStatus sets the Status field's value.
5640func (s *ListJobsByStatusInput) SetStatus(v string) *ListJobsByStatusInput {
5641	s.Status = &v
5642	return s
5643}
5644
5645// The ListJobsByStatusResponse structure.
5646type ListJobsByStatusOutput struct {
5647	_ struct{} `type:"structure"`
5648
5649	// An array of Job objects that have the specified status.
5650	Jobs []*Job `type:"list"`
5651
5652	// A value that you use to access the second and subsequent pages of results,
5653	// if any. When the jobs in the specified pipeline fit on one page or when you've
5654	// reached the last page of results, the value of NextPageToken is null.
5655	NextPageToken *string `type:"string"`
5656}
5657
5658// String returns the string representation.
5659//
5660// API parameter values that are decorated as "sensitive" in the API will not
5661// be included in the string output. The member name will be present, but the
5662// value will be replaced with "sensitive".
5663func (s ListJobsByStatusOutput) String() string {
5664	return awsutil.Prettify(s)
5665}
5666
5667// GoString returns the string representation.
5668//
5669// API parameter values that are decorated as "sensitive" in the API will not
5670// be included in the string output. The member name will be present, but the
5671// value will be replaced with "sensitive".
5672func (s ListJobsByStatusOutput) GoString() string {
5673	return s.String()
5674}
5675
5676// SetJobs sets the Jobs field's value.
5677func (s *ListJobsByStatusOutput) SetJobs(v []*Job) *ListJobsByStatusOutput {
5678	s.Jobs = v
5679	return s
5680}
5681
5682// SetNextPageToken sets the NextPageToken field's value.
5683func (s *ListJobsByStatusOutput) SetNextPageToken(v string) *ListJobsByStatusOutput {
5684	s.NextPageToken = &v
5685	return s
5686}
5687
5688// The ListPipelineRequest structure.
5689type ListPipelinesInput struct {
5690	_ struct{} `type:"structure" nopayload:"true"`
5691
5692	// To list pipelines in chronological order by the date and time that they were
5693	// created, enter true. To list pipelines in reverse chronological order, enter
5694	// false.
5695	Ascending *string `location:"querystring" locationName:"Ascending" type:"string"`
5696
5697	// When Elastic Transcoder returns more than one page of results, use pageToken
5698	// in subsequent GET requests to get each successive page of results.
5699	PageToken *string `location:"querystring" locationName:"PageToken" type:"string"`
5700}
5701
5702// String returns the string representation.
5703//
5704// API parameter values that are decorated as "sensitive" in the API will not
5705// be included in the string output. The member name will be present, but the
5706// value will be replaced with "sensitive".
5707func (s ListPipelinesInput) String() string {
5708	return awsutil.Prettify(s)
5709}
5710
5711// GoString returns the string representation.
5712//
5713// API parameter values that are decorated as "sensitive" in the API will not
5714// be included in the string output. The member name will be present, but the
5715// value will be replaced with "sensitive".
5716func (s ListPipelinesInput) GoString() string {
5717	return s.String()
5718}
5719
5720// SetAscending sets the Ascending field's value.
5721func (s *ListPipelinesInput) SetAscending(v string) *ListPipelinesInput {
5722	s.Ascending = &v
5723	return s
5724}
5725
5726// SetPageToken sets the PageToken field's value.
5727func (s *ListPipelinesInput) SetPageToken(v string) *ListPipelinesInput {
5728	s.PageToken = &v
5729	return s
5730}
5731
5732// A list of the pipelines associated with the current AWS account.
5733type ListPipelinesOutput struct {
5734	_ struct{} `type:"structure"`
5735
5736	// A value that you use to access the second and subsequent pages of results,
5737	// if any. When the pipelines fit on one page or when you've reached the last
5738	// page of results, the value of NextPageToken is null.
5739	NextPageToken *string `type:"string"`
5740
5741	// An array of Pipeline objects.
5742	Pipelines []*Pipeline `type:"list"`
5743}
5744
5745// String returns the string representation.
5746//
5747// API parameter values that are decorated as "sensitive" in the API will not
5748// be included in the string output. The member name will be present, but the
5749// value will be replaced with "sensitive".
5750func (s ListPipelinesOutput) String() string {
5751	return awsutil.Prettify(s)
5752}
5753
5754// GoString returns the string representation.
5755//
5756// API parameter values that are decorated as "sensitive" in the API will not
5757// be included in the string output. The member name will be present, but the
5758// value will be replaced with "sensitive".
5759func (s ListPipelinesOutput) GoString() string {
5760	return s.String()
5761}
5762
5763// SetNextPageToken sets the NextPageToken field's value.
5764func (s *ListPipelinesOutput) SetNextPageToken(v string) *ListPipelinesOutput {
5765	s.NextPageToken = &v
5766	return s
5767}
5768
5769// SetPipelines sets the Pipelines field's value.
5770func (s *ListPipelinesOutput) SetPipelines(v []*Pipeline) *ListPipelinesOutput {
5771	s.Pipelines = v
5772	return s
5773}
5774
5775// The ListPresetsRequest structure.
5776type ListPresetsInput struct {
5777	_ struct{} `type:"structure" nopayload:"true"`
5778
5779	// To list presets in chronological order by the date and time that they were
5780	// created, enter true. To list presets in reverse chronological order, enter
5781	// false.
5782	Ascending *string `location:"querystring" locationName:"Ascending" type:"string"`
5783
5784	// When Elastic Transcoder returns more than one page of results, use pageToken
5785	// in subsequent GET requests to get each successive page of results.
5786	PageToken *string `location:"querystring" locationName:"PageToken" type:"string"`
5787}
5788
5789// String returns the string representation.
5790//
5791// API parameter values that are decorated as "sensitive" in the API will not
5792// be included in the string output. The member name will be present, but the
5793// value will be replaced with "sensitive".
5794func (s ListPresetsInput) String() string {
5795	return awsutil.Prettify(s)
5796}
5797
5798// GoString returns the string representation.
5799//
5800// API parameter values that are decorated as "sensitive" in the API will not
5801// be included in the string output. The member name will be present, but the
5802// value will be replaced with "sensitive".
5803func (s ListPresetsInput) GoString() string {
5804	return s.String()
5805}
5806
5807// SetAscending sets the Ascending field's value.
5808func (s *ListPresetsInput) SetAscending(v string) *ListPresetsInput {
5809	s.Ascending = &v
5810	return s
5811}
5812
5813// SetPageToken sets the PageToken field's value.
5814func (s *ListPresetsInput) SetPageToken(v string) *ListPresetsInput {
5815	s.PageToken = &v
5816	return s
5817}
5818
5819// The ListPresetsResponse structure.
5820type ListPresetsOutput struct {
5821	_ struct{} `type:"structure"`
5822
5823	// A value that you use to access the second and subsequent pages of results,
5824	// if any. When the presets fit on one page or when you've reached the last
5825	// page of results, the value of NextPageToken is null.
5826	NextPageToken *string `type:"string"`
5827
5828	// An array of Preset objects.
5829	Presets []*Preset `type:"list"`
5830}
5831
5832// String returns the string representation.
5833//
5834// API parameter values that are decorated as "sensitive" in the API will not
5835// be included in the string output. The member name will be present, but the
5836// value will be replaced with "sensitive".
5837func (s ListPresetsOutput) String() string {
5838	return awsutil.Prettify(s)
5839}
5840
5841// GoString returns the string representation.
5842//
5843// API parameter values that are decorated as "sensitive" in the API will not
5844// be included in the string output. The member name will be present, but the
5845// value will be replaced with "sensitive".
5846func (s ListPresetsOutput) GoString() string {
5847	return s.String()
5848}
5849
5850// SetNextPageToken sets the NextPageToken field's value.
5851func (s *ListPresetsOutput) SetNextPageToken(v string) *ListPresetsOutput {
5852	s.NextPageToken = &v
5853	return s
5854}
5855
5856// SetPresets sets the Presets field's value.
5857func (s *ListPresetsOutput) SetPresets(v []*Preset) *ListPresetsOutput {
5858	s.Presets = v
5859	return s
5860}
5861
5862// The Amazon Simple Notification Service (Amazon SNS) topic or topics to notify
5863// in order to report job status.
5864//
5865// To receive notifications, you must also subscribe to the new topic in the
5866// Amazon SNS console.
5867type Notifications struct {
5868	_ struct{} `type:"structure"`
5869
5870	// The Amazon SNS topic that you want to notify when Elastic Transcoder has
5871	// finished processing the job.
5872	Completed *string `type:"string"`
5873
5874	// The Amazon SNS topic that you want to notify when Elastic Transcoder encounters
5875	// an error condition.
5876	Error *string `type:"string"`
5877
5878	// The Amazon Simple Notification Service (Amazon SNS) topic that you want to
5879	// notify when Elastic Transcoder has started to process the job.
5880	Progressing *string `type:"string"`
5881
5882	// The Amazon SNS topic that you want to notify when Elastic Transcoder encounters
5883	// a warning condition.
5884	Warning *string `type:"string"`
5885}
5886
5887// String returns the string representation.
5888//
5889// API parameter values that are decorated as "sensitive" in the API will not
5890// be included in the string output. The member name will be present, but the
5891// value will be replaced with "sensitive".
5892func (s Notifications) String() string {
5893	return awsutil.Prettify(s)
5894}
5895
5896// GoString returns the string representation.
5897//
5898// API parameter values that are decorated as "sensitive" in the API will not
5899// be included in the string output. The member name will be present, but the
5900// value will be replaced with "sensitive".
5901func (s Notifications) GoString() string {
5902	return s.String()
5903}
5904
5905// SetCompleted sets the Completed field's value.
5906func (s *Notifications) SetCompleted(v string) *Notifications {
5907	s.Completed = &v
5908	return s
5909}
5910
5911// SetError sets the Error field's value.
5912func (s *Notifications) SetError(v string) *Notifications {
5913	s.Error = &v
5914	return s
5915}
5916
5917// SetProgressing sets the Progressing field's value.
5918func (s *Notifications) SetProgressing(v string) *Notifications {
5919	s.Progressing = &v
5920	return s
5921}
5922
5923// SetWarning sets the Warning field's value.
5924func (s *Notifications) SetWarning(v string) *Notifications {
5925	s.Warning = &v
5926	return s
5927}
5928
5929// The Permission structure.
5930type Permission struct {
5931	_ struct{} `type:"structure"`
5932
5933	// The permission that you want to give to the AWS user that is listed in Grantee.
5934	// Valid values include:
5935	//
5936	//    * READ: The grantee can read the thumbnails and metadata for thumbnails
5937	//    that Elastic Transcoder adds to the Amazon S3 bucket.
5938	//
5939	//    * READ_ACP: The grantee can read the object ACL for thumbnails that Elastic
5940	//    Transcoder adds to the Amazon S3 bucket.
5941	//
5942	//    * WRITE_ACP: The grantee can write the ACL for the thumbnails that Elastic
5943	//    Transcoder adds to the Amazon S3 bucket.
5944	//
5945	//    * FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP permissions
5946	//    for the thumbnails that Elastic Transcoder adds to the Amazon S3 bucket.
5947	Access []*string `type:"list"`
5948
5949	// The AWS user or group that you want to have access to transcoded files and
5950	// playlists. To identify the user or group, you can specify the canonical user
5951	// ID for an AWS account, an origin access identity for a CloudFront distribution,
5952	// the registered email address of an AWS account, or a predefined Amazon S3
5953	// group.
5954	Grantee *string `min:"1" type:"string"`
5955
5956	// The type of value that appears in the Grantee object:
5957	//
5958	//    * Canonical: Either the canonical user ID for an AWS account or an origin
5959	//    access identity for an Amazon CloudFront distribution. A canonical user
5960	//    ID is not the same as an AWS account number.
5961	//
5962	//    * Email: The registered email address of an AWS account.
5963	//
5964	//    * Group: One of the following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers,
5965	//    or LogDelivery.
5966	GranteeType *string `type:"string"`
5967}
5968
5969// String returns the string representation.
5970//
5971// API parameter values that are decorated as "sensitive" in the API will not
5972// be included in the string output. The member name will be present, but the
5973// value will be replaced with "sensitive".
5974func (s Permission) String() string {
5975	return awsutil.Prettify(s)
5976}
5977
5978// GoString returns the string representation.
5979//
5980// API parameter values that are decorated as "sensitive" in the API will not
5981// be included in the string output. The member name will be present, but the
5982// value will be replaced with "sensitive".
5983func (s Permission) GoString() string {
5984	return s.String()
5985}
5986
5987// Validate inspects the fields of the type to determine if they are valid.
5988func (s *Permission) Validate() error {
5989	invalidParams := request.ErrInvalidParams{Context: "Permission"}
5990	if s.Grantee != nil && len(*s.Grantee) < 1 {
5991		invalidParams.Add(request.NewErrParamMinLen("Grantee", 1))
5992	}
5993
5994	if invalidParams.Len() > 0 {
5995		return invalidParams
5996	}
5997	return nil
5998}
5999
6000// SetAccess sets the Access field's value.
6001func (s *Permission) SetAccess(v []*string) *Permission {
6002	s.Access = v
6003	return s
6004}
6005
6006// SetGrantee sets the Grantee field's value.
6007func (s *Permission) SetGrantee(v string) *Permission {
6008	s.Grantee = &v
6009	return s
6010}
6011
6012// SetGranteeType sets the GranteeType field's value.
6013func (s *Permission) SetGranteeType(v string) *Permission {
6014	s.GranteeType = &v
6015	return s
6016}
6017
6018// The pipeline (queue) that is used to manage jobs.
6019type Pipeline struct {
6020	_ struct{} `type:"structure"`
6021
6022	// The Amazon Resource Name (ARN) for the pipeline.
6023	Arn *string `type:"string"`
6024
6025	// The AWS Key Management Service (AWS KMS) key that you want to use with this
6026	// pipeline.
6027	//
6028	// If you use either s3 or s3-aws-kms as your Encryption:Mode, you don't need
6029	// to provide a key with your job because a default key, known as an AWS-KMS
6030	// key, is created for you automatically. You need to provide an AWS-KMS key
6031	// only if you want to use a non-default AWS-KMS key, or if you are using an
6032	// Encryption:Mode of aes-cbc-pkcs7, aes-ctr, or aes-gcm.
6033	AwsKmsKeyArn *string `type:"string"`
6034
6035	// Information about the Amazon S3 bucket in which you want Elastic Transcoder
6036	// to save transcoded files and playlists. Either you specify both ContentConfig
6037	// and ThumbnailConfig, or you specify OutputBucket.
6038	//
6039	//    * Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to
6040	//    save transcoded files and playlists.
6041	//
6042	//    * Permissions: A list of the users and/or predefined Amazon S3 groups
6043	//    you want to have access to transcoded files and playlists, and the type
6044	//    of access that you want them to have. GranteeType: The type of value that
6045	//    appears in the Grantee object: Canonical: Either the canonical user ID
6046	//    for an AWS account or an origin access identity for an Amazon CloudFront
6047	//    distribution. Email: The registered email address of an AWS account. Group:
6048	//    One of the following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers,
6049	//    or LogDelivery. Grantee: The AWS user or group that you want to have access
6050	//    to transcoded files and playlists. Access: The permission that you want
6051	//    to give to the AWS user that is listed in Grantee. Valid values include:
6052	//    READ: The grantee can read the objects and metadata for objects that Elastic
6053	//    Transcoder adds to the Amazon S3 bucket. READ_ACP: The grantee can read
6054	//    the object ACL for objects that Elastic Transcoder adds to the Amazon
6055	//    S3 bucket. WRITE_ACP: The grantee can write the ACL for the objects that
6056	//    Elastic Transcoder adds to the Amazon S3 bucket. FULL_CONTROL: The grantee
6057	//    has READ, READ_ACP, and WRITE_ACP permissions for the objects that Elastic
6058	//    Transcoder adds to the Amazon S3 bucket.
6059	//
6060	//    * StorageClass: The Amazon S3 storage class, Standard or ReducedRedundancy,
6061	//    that you want Elastic Transcoder to assign to the video files and playlists
6062	//    that it stores in your Amazon S3 bucket.
6063	ContentConfig *PipelineOutputConfig `type:"structure"`
6064
6065	// The identifier for the pipeline. You use this value to identify the pipeline
6066	// in which you want to perform a variety of operations, such as creating a
6067	// job or a preset.
6068	Id *string `type:"string"`
6069
6070	// The Amazon S3 bucket from which Elastic Transcoder gets media files for transcoding
6071	// and the graphics files, if any, that you want to use for watermarks.
6072	InputBucket *string `type:"string"`
6073
6074	// The name of the pipeline. We recommend that the name be unique within the
6075	// AWS account, but uniqueness is not enforced.
6076	//
6077	// Constraints: Maximum 40 characters
6078	Name *string `min:"1" type:"string"`
6079
6080	// The Amazon Simple Notification Service (Amazon SNS) topic that you want to
6081	// notify to report job status.
6082	//
6083	// To receive notifications, you must also subscribe to the new topic in the
6084	// Amazon SNS console.
6085	//
6086	//    * Progressing (optional): The Amazon Simple Notification Service (Amazon
6087	//    SNS) topic that you want to notify when Elastic Transcoder has started
6088	//    to process the job.
6089	//
6090	//    * Complete (optional): The Amazon SNS topic that you want to notify when
6091	//    Elastic Transcoder has finished processing the job.
6092	//
6093	//    * Warning (optional): The Amazon SNS topic that you want to notify when
6094	//    Elastic Transcoder encounters a warning condition.
6095	//
6096	//    * Error (optional): The Amazon SNS topic that you want to notify when
6097	//    Elastic Transcoder encounters an error condition.
6098	Notifications *Notifications `type:"structure"`
6099
6100	// The Amazon S3 bucket in which you want Elastic Transcoder to save transcoded
6101	// files, thumbnails, and playlists. Either you specify this value, or you specify
6102	// both ContentConfig and ThumbnailConfig.
6103	OutputBucket *string `type:"string"`
6104
6105	// The IAM Amazon Resource Name (ARN) for the role that Elastic Transcoder uses
6106	// to transcode jobs for this pipeline.
6107	Role *string `type:"string"`
6108
6109	// The current status of the pipeline:
6110	//
6111	//    * Active: The pipeline is processing jobs.
6112	//
6113	//    * Paused: The pipeline is not currently processing jobs.
6114	Status *string `type:"string"`
6115
6116	// Information about the Amazon S3 bucket in which you want Elastic Transcoder
6117	// to save thumbnail files. Either you specify both ContentConfig and ThumbnailConfig,
6118	// or you specify OutputBucket.
6119	//
6120	//    * Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to
6121	//    save thumbnail files.
6122	//
6123	//    * Permissions: A list of the users and/or predefined Amazon S3 groups
6124	//    you want to have access to thumbnail files, and the type of access that
6125	//    you want them to have. GranteeType: The type of value that appears in
6126	//    the Grantee object: Canonical: Either the canonical user ID for an AWS
6127	//    account or an origin access identity for an Amazon CloudFront distribution.
6128	//    A canonical user ID is not the same as an AWS account number. Email: The
6129	//    registered email address of an AWS account. Group: One of the following
6130	//    predefined Amazon S3 groups: AllUsers, AuthenticatedUsers, or LogDelivery.
6131	//    Grantee: The AWS user or group that you want to have access to thumbnail
6132	//    files. Access: The permission that you want to give to the AWS user that
6133	//    is listed in Grantee. Valid values include: READ: The grantee can read
6134	//    the thumbnails and metadata for thumbnails that Elastic Transcoder adds
6135	//    to the Amazon S3 bucket. READ_ACP: The grantee can read the object ACL
6136	//    for thumbnails that Elastic Transcoder adds to the Amazon S3 bucket. WRITE_ACP:
6137	//    The grantee can write the ACL for the thumbnails that Elastic Transcoder
6138	//    adds to the Amazon S3 bucket. FULL_CONTROL: The grantee has READ, READ_ACP,
6139	//    and WRITE_ACP permissions for the thumbnails that Elastic Transcoder adds
6140	//    to the Amazon S3 bucket.
6141	//
6142	//    * StorageClass: The Amazon S3 storage class, Standard or ReducedRedundancy,
6143	//    that you want Elastic Transcoder to assign to the thumbnails that it stores
6144	//    in your Amazon S3 bucket.
6145	ThumbnailConfig *PipelineOutputConfig `type:"structure"`
6146}
6147
6148// String returns the string representation.
6149//
6150// API parameter values that are decorated as "sensitive" in the API will not
6151// be included in the string output. The member name will be present, but the
6152// value will be replaced with "sensitive".
6153func (s Pipeline) String() string {
6154	return awsutil.Prettify(s)
6155}
6156
6157// GoString returns the string representation.
6158//
6159// API parameter values that are decorated as "sensitive" in the API will not
6160// be included in the string output. The member name will be present, but the
6161// value will be replaced with "sensitive".
6162func (s Pipeline) GoString() string {
6163	return s.String()
6164}
6165
6166// SetArn sets the Arn field's value.
6167func (s *Pipeline) SetArn(v string) *Pipeline {
6168	s.Arn = &v
6169	return s
6170}
6171
6172// SetAwsKmsKeyArn sets the AwsKmsKeyArn field's value.
6173func (s *Pipeline) SetAwsKmsKeyArn(v string) *Pipeline {
6174	s.AwsKmsKeyArn = &v
6175	return s
6176}
6177
6178// SetContentConfig sets the ContentConfig field's value.
6179func (s *Pipeline) SetContentConfig(v *PipelineOutputConfig) *Pipeline {
6180	s.ContentConfig = v
6181	return s
6182}
6183
6184// SetId sets the Id field's value.
6185func (s *Pipeline) SetId(v string) *Pipeline {
6186	s.Id = &v
6187	return s
6188}
6189
6190// SetInputBucket sets the InputBucket field's value.
6191func (s *Pipeline) SetInputBucket(v string) *Pipeline {
6192	s.InputBucket = &v
6193	return s
6194}
6195
6196// SetName sets the Name field's value.
6197func (s *Pipeline) SetName(v string) *Pipeline {
6198	s.Name = &v
6199	return s
6200}
6201
6202// SetNotifications sets the Notifications field's value.
6203func (s *Pipeline) SetNotifications(v *Notifications) *Pipeline {
6204	s.Notifications = v
6205	return s
6206}
6207
6208// SetOutputBucket sets the OutputBucket field's value.
6209func (s *Pipeline) SetOutputBucket(v string) *Pipeline {
6210	s.OutputBucket = &v
6211	return s
6212}
6213
6214// SetRole sets the Role field's value.
6215func (s *Pipeline) SetRole(v string) *Pipeline {
6216	s.Role = &v
6217	return s
6218}
6219
6220// SetStatus sets the Status field's value.
6221func (s *Pipeline) SetStatus(v string) *Pipeline {
6222	s.Status = &v
6223	return s
6224}
6225
6226// SetThumbnailConfig sets the ThumbnailConfig field's value.
6227func (s *Pipeline) SetThumbnailConfig(v *PipelineOutputConfig) *Pipeline {
6228	s.ThumbnailConfig = v
6229	return s
6230}
6231
6232// The PipelineOutputConfig structure.
6233type PipelineOutputConfig struct {
6234	_ struct{} `type:"structure"`
6235
6236	// The Amazon S3 bucket in which you want Elastic Transcoder to save the transcoded
6237	// files. Specify this value when all of the following are true:
6238	//
6239	//    * You want to save transcoded files, thumbnails (if any), and playlists
6240	//    (if any) together in one bucket.
6241	//
6242	//    * You do not want to specify the users or groups who have access to the
6243	//    transcoded files, thumbnails, and playlists.
6244	//
6245	//    * You do not want to specify the permissions that Elastic Transcoder grants
6246	//    to the files.
6247	//
6248	//    * You want to associate the transcoded files and thumbnails with the Amazon
6249	//    S3 Standard storage class.
6250	//
6251	// If you want to save transcoded files and playlists in one bucket and thumbnails
6252	// in another bucket, specify which users can access the transcoded files or
6253	// the permissions the users have, or change the Amazon S3 storage class, omit
6254	// OutputBucket and specify values for ContentConfig and ThumbnailConfig instead.
6255	Bucket *string `type:"string"`
6256
6257	// Optional. The Permissions object specifies which users and/or predefined
6258	// Amazon S3 groups you want to have access to transcoded files and playlists,
6259	// and the type of access you want them to have. You can grant permissions to
6260	// a maximum of 30 users and/or predefined Amazon S3 groups.
6261	//
6262	// If you include Permissions, Elastic Transcoder grants only the permissions
6263	// that you specify. It does not grant full permissions to the owner of the
6264	// role specified by Role. If you want that user to have full control, you must
6265	// explicitly grant full control to the user.
6266	//
6267	// If you omit Permissions, Elastic Transcoder grants full control over the
6268	// transcoded files and playlists to the owner of the role specified by Role,
6269	// and grants no other permissions to any other user or group.
6270	Permissions []*Permission `type:"list"`
6271
6272	// The Amazon S3 storage class, Standard or ReducedRedundancy, that you want
6273	// Elastic Transcoder to assign to the video files and playlists that it stores
6274	// in your Amazon S3 bucket.
6275	StorageClass *string `type:"string"`
6276}
6277
6278// String returns the string representation.
6279//
6280// API parameter values that are decorated as "sensitive" in the API will not
6281// be included in the string output. The member name will be present, but the
6282// value will be replaced with "sensitive".
6283func (s PipelineOutputConfig) String() string {
6284	return awsutil.Prettify(s)
6285}
6286
6287// GoString returns the string representation.
6288//
6289// API parameter values that are decorated as "sensitive" in the API will not
6290// be included in the string output. The member name will be present, but the
6291// value will be replaced with "sensitive".
6292func (s PipelineOutputConfig) GoString() string {
6293	return s.String()
6294}
6295
6296// Validate inspects the fields of the type to determine if they are valid.
6297func (s *PipelineOutputConfig) Validate() error {
6298	invalidParams := request.ErrInvalidParams{Context: "PipelineOutputConfig"}
6299	if s.Permissions != nil {
6300		for i, v := range s.Permissions {
6301			if v == nil {
6302				continue
6303			}
6304			if err := v.Validate(); err != nil {
6305				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Permissions", i), err.(request.ErrInvalidParams))
6306			}
6307		}
6308	}
6309
6310	if invalidParams.Len() > 0 {
6311		return invalidParams
6312	}
6313	return nil
6314}
6315
6316// SetBucket sets the Bucket field's value.
6317func (s *PipelineOutputConfig) SetBucket(v string) *PipelineOutputConfig {
6318	s.Bucket = &v
6319	return s
6320}
6321
6322// SetPermissions sets the Permissions field's value.
6323func (s *PipelineOutputConfig) SetPermissions(v []*Permission) *PipelineOutputConfig {
6324	s.Permissions = v
6325	return s
6326}
6327
6328// SetStorageClass sets the StorageClass field's value.
6329func (s *PipelineOutputConfig) SetStorageClass(v string) *PipelineOutputConfig {
6330	s.StorageClass = &v
6331	return s
6332}
6333
6334// The PlayReady DRM settings, if any, that you want Elastic Transcoder to apply
6335// to the output files associated with this playlist.
6336//
6337// PlayReady DRM encrypts your media files using aes-ctr encryption.
6338//
6339// If you use DRM for an HLSv3 playlist, your outputs must have a master playlist.
6340type PlayReadyDrm struct {
6341	_ struct{} `type:"structure"`
6342
6343	// The type of DRM, if any, that you want Elastic Transcoder to apply to the
6344	// output files associated with this playlist.
6345	Format *string `type:"string"`
6346
6347	// The series of random bits created by a random bit generator, unique for every
6348	// encryption operation, that you want Elastic Transcoder to use to encrypt
6349	// your files. The initialization vector must be base64-encoded, and it must
6350	// be exactly 8 bytes long before being base64-encoded. If no initialization
6351	// vector is provided, Elastic Transcoder generates one for you.
6352	InitializationVector *string `type:"string"`
6353
6354	// The DRM key for your file, provided by your DRM license provider. The key
6355	// must be base64-encoded, and it must be one of the following bit lengths before
6356	// being base64-encoded:
6357	//
6358	// 128, 192, or 256.
6359	//
6360	// The key must also be encrypted by using AWS KMS.
6361	Key *string `type:"string"`
6362
6363	// The ID for your DRM key, so that your DRM license provider knows which key
6364	// to provide.
6365	//
6366	// The key ID must be provided in big endian, and Elastic Transcoder converts
6367	// it to little endian before inserting it into the PlayReady DRM headers. If
6368	// you are unsure whether your license server provides your key ID in big or
6369	// little endian, check with your DRM provider.
6370	KeyId *string `type:"string"`
6371
6372	// The MD5 digest of the key used for DRM on your file, and that you want Elastic
6373	// Transcoder to use as a checksum to make sure your key was not corrupted in
6374	// transit. The key MD5 must be base64-encoded, and it must be exactly 16 bytes
6375	// before being base64-encoded.
6376	KeyMd5 *string `type:"string"`
6377
6378	// The location of the license key required to play DRM content. The URL must
6379	// be an absolute path, and is referenced by the PlayReady header. The PlayReady
6380	// header is referenced in the protection header of the client manifest for
6381	// Smooth Streaming outputs, and in the EXT-X-DXDRM and EXT-XDXDRMINFO metadata
6382	// tags for HLS playlist outputs. An example URL looks like this: https://www.example.com/exampleKey/
6383	LicenseAcquisitionUrl *string `min:"1" type:"string"`
6384}
6385
6386// String returns the string representation.
6387//
6388// API parameter values that are decorated as "sensitive" in the API will not
6389// be included in the string output. The member name will be present, but the
6390// value will be replaced with "sensitive".
6391func (s PlayReadyDrm) String() string {
6392	return awsutil.Prettify(s)
6393}
6394
6395// GoString returns the string representation.
6396//
6397// API parameter values that are decorated as "sensitive" in the API will not
6398// be included in the string output. The member name will be present, but the
6399// value will be replaced with "sensitive".
6400func (s PlayReadyDrm) GoString() string {
6401	return s.String()
6402}
6403
6404// Validate inspects the fields of the type to determine if they are valid.
6405func (s *PlayReadyDrm) Validate() error {
6406	invalidParams := request.ErrInvalidParams{Context: "PlayReadyDrm"}
6407	if s.LicenseAcquisitionUrl != nil && len(*s.LicenseAcquisitionUrl) < 1 {
6408		invalidParams.Add(request.NewErrParamMinLen("LicenseAcquisitionUrl", 1))
6409	}
6410
6411	if invalidParams.Len() > 0 {
6412		return invalidParams
6413	}
6414	return nil
6415}
6416
6417// SetFormat sets the Format field's value.
6418func (s *PlayReadyDrm) SetFormat(v string) *PlayReadyDrm {
6419	s.Format = &v
6420	return s
6421}
6422
6423// SetInitializationVector sets the InitializationVector field's value.
6424func (s *PlayReadyDrm) SetInitializationVector(v string) *PlayReadyDrm {
6425	s.InitializationVector = &v
6426	return s
6427}
6428
6429// SetKey sets the Key field's value.
6430func (s *PlayReadyDrm) SetKey(v string) *PlayReadyDrm {
6431	s.Key = &v
6432	return s
6433}
6434
6435// SetKeyId sets the KeyId field's value.
6436func (s *PlayReadyDrm) SetKeyId(v string) *PlayReadyDrm {
6437	s.KeyId = &v
6438	return s
6439}
6440
6441// SetKeyMd5 sets the KeyMd5 field's value.
6442func (s *PlayReadyDrm) SetKeyMd5(v string) *PlayReadyDrm {
6443	s.KeyMd5 = &v
6444	return s
6445}
6446
6447// SetLicenseAcquisitionUrl sets the LicenseAcquisitionUrl field's value.
6448func (s *PlayReadyDrm) SetLicenseAcquisitionUrl(v string) *PlayReadyDrm {
6449	s.LicenseAcquisitionUrl = &v
6450	return s
6451}
6452
6453// Use Only for Fragmented MP4 or MPEG-TS Outputs. If you specify a preset for
6454// which the value of Container is fmp4 (Fragmented MP4) or ts (MPEG-TS), Playlists
6455// contains information about the master playlists that you want Elastic Transcoder
6456// to create. We recommend that you create only one master playlist per output
6457// format. The maximum number of master playlists in a job is 30.
6458type Playlist struct {
6459	_ struct{} `type:"structure"`
6460
6461	// The format of the output playlist. Valid formats include HLSv3, HLSv4, and
6462	// Smooth.
6463	Format *string `type:"string"`
6464
6465	// The HLS content protection settings, if any, that you want Elastic Transcoder
6466	// to apply to the output files associated with this playlist.
6467	HlsContentProtection *HlsContentProtection `type:"structure"`
6468
6469	// The name that you want Elastic Transcoder to assign to the master playlist,
6470	// for example, nyc-vacation.m3u8. If the name includes a / character, the section
6471	// of the name before the last / must be identical for all Name objects. If
6472	// you create more than one master playlist, the values of all Name objects
6473	// must be unique.
6474	//
6475	// Elastic Transcoder automatically appends the relevant file extension to the
6476	// file name (.m3u8 for HLSv3 and HLSv4 playlists, and .ism and .ismc for Smooth
6477	// playlists). If you include a file extension in Name, the file name will have
6478	// two extensions.
6479	Name *string `min:"1" type:"string"`
6480
6481	// For each output in this job that you want to include in a master playlist,
6482	// the value of the Outputs:Key object.
6483	//
6484	//    * If your output is not HLS or does not have a segment duration set, the
6485	//    name of the output file is a concatenation of OutputKeyPrefix and Outputs:Key:
6486	//    OutputKeyPrefixOutputs:Key
6487	//
6488	//    * If your output is HLSv3 and has a segment duration set, or is not included
6489	//    in a playlist, Elastic Transcoder creates an output playlist file with
6490	//    a file extension of .m3u8, and a series of .ts files that include a five-digit
6491	//    sequential counter beginning with 00000: OutputKeyPrefixOutputs:Key.m3u8
6492	//    OutputKeyPrefixOutputs:Key00000.ts
6493	//
6494	//    * If your output is HLSv4, has a segment duration set, and is included
6495	//    in an HLSv4 playlist, Elastic Transcoder creates an output playlist file
6496	//    with a file extension of _v4.m3u8. If the output is video, Elastic Transcoder
6497	//    also creates an output file with an extension of _iframe.m3u8: OutputKeyPrefixOutputs:Key_v4.m3u8
6498	//    OutputKeyPrefixOutputs:Key_iframe.m3u8 OutputKeyPrefixOutputs:Key.ts
6499	//
6500	// Elastic Transcoder automatically appends the relevant file extension to the
6501	// file name. If you include a file extension in Output Key, the file name will
6502	// have two extensions.
6503	//
6504	// If you include more than one output in a playlist, any segment duration settings,
6505	// clip settings, or caption settings must be the same for all outputs in the
6506	// playlist. For Smooth playlists, the Audio:Profile, Video:Profile, and Video:FrameRate
6507	// to Video:KeyframesMaxDist ratio must be the same for all outputs.
6508	OutputKeys []*string `type:"list"`
6509
6510	// The DRM settings, if any, that you want Elastic Transcoder to apply to the
6511	// output files associated with this playlist.
6512	PlayReadyDrm *PlayReadyDrm `type:"structure"`
6513
6514	// The status of the job with which the playlist is associated.
6515	Status *string `type:"string"`
6516
6517	// Information that further explains the status.
6518	StatusDetail *string `type:"string"`
6519}
6520
6521// String returns the string representation.
6522//
6523// API parameter values that are decorated as "sensitive" in the API will not
6524// be included in the string output. The member name will be present, but the
6525// value will be replaced with "sensitive".
6526func (s Playlist) String() string {
6527	return awsutil.Prettify(s)
6528}
6529
6530// GoString returns the string representation.
6531//
6532// API parameter values that are decorated as "sensitive" in the API will not
6533// be included in the string output. The member name will be present, but the
6534// value will be replaced with "sensitive".
6535func (s Playlist) GoString() string {
6536	return s.String()
6537}
6538
6539// SetFormat sets the Format field's value.
6540func (s *Playlist) SetFormat(v string) *Playlist {
6541	s.Format = &v
6542	return s
6543}
6544
6545// SetHlsContentProtection sets the HlsContentProtection field's value.
6546func (s *Playlist) SetHlsContentProtection(v *HlsContentProtection) *Playlist {
6547	s.HlsContentProtection = v
6548	return s
6549}
6550
6551// SetName sets the Name field's value.
6552func (s *Playlist) SetName(v string) *Playlist {
6553	s.Name = &v
6554	return s
6555}
6556
6557// SetOutputKeys sets the OutputKeys field's value.
6558func (s *Playlist) SetOutputKeys(v []*string) *Playlist {
6559	s.OutputKeys = v
6560	return s
6561}
6562
6563// SetPlayReadyDrm sets the PlayReadyDrm field's value.
6564func (s *Playlist) SetPlayReadyDrm(v *PlayReadyDrm) *Playlist {
6565	s.PlayReadyDrm = v
6566	return s
6567}
6568
6569// SetStatus sets the Status field's value.
6570func (s *Playlist) SetStatus(v string) *Playlist {
6571	s.Status = &v
6572	return s
6573}
6574
6575// SetStatusDetail sets the StatusDetail field's value.
6576func (s *Playlist) SetStatusDetail(v string) *Playlist {
6577	s.StatusDetail = &v
6578	return s
6579}
6580
6581// Presets are templates that contain most of the settings for transcoding media
6582// files from one format to another. Elastic Transcoder includes some default
6583// presets for common formats, for example, several iPod and iPhone versions.
6584// You can also create your own presets for formats that aren't included among
6585// the default presets. You specify which preset you want to use when you create
6586// a job.
6587type Preset struct {
6588	_ struct{} `type:"structure"`
6589
6590	// The Amazon Resource Name (ARN) for the preset.
6591	Arn *string `type:"string"`
6592
6593	// A section of the response body that provides information about the audio
6594	// preset values.
6595	Audio *AudioParameters `type:"structure"`
6596
6597	// The container type for the output file. Valid values include flac, flv, fmp4,
6598	// gif, mp3, mp4, mpg, mxf, oga, ogg, ts, and webm.
6599	Container *string `type:"string"`
6600
6601	// A description of the preset.
6602	Description *string `type:"string"`
6603
6604	// Identifier for the new preset. You use this value to get settings for the
6605	// preset or to delete it.
6606	Id *string `type:"string"`
6607
6608	// The name of the preset.
6609	Name *string `min:"1" type:"string"`
6610
6611	// A section of the response body that provides information about the thumbnail
6612	// preset values, if any.
6613	Thumbnails *Thumbnails `type:"structure"`
6614
6615	// Whether the preset is a default preset provided by Elastic Transcoder (System)
6616	// or a preset that you have defined (Custom).
6617	Type *string `type:"string"`
6618
6619	// A section of the response body that provides information about the video
6620	// preset values.
6621	Video *VideoParameters `type:"structure"`
6622}
6623
6624// String returns the string representation.
6625//
6626// API parameter values that are decorated as "sensitive" in the API will not
6627// be included in the string output. The member name will be present, but the
6628// value will be replaced with "sensitive".
6629func (s Preset) String() string {
6630	return awsutil.Prettify(s)
6631}
6632
6633// GoString returns the string representation.
6634//
6635// API parameter values that are decorated as "sensitive" in the API will not
6636// be included in the string output. The member name will be present, but the
6637// value will be replaced with "sensitive".
6638func (s Preset) GoString() string {
6639	return s.String()
6640}
6641
6642// SetArn sets the Arn field's value.
6643func (s *Preset) SetArn(v string) *Preset {
6644	s.Arn = &v
6645	return s
6646}
6647
6648// SetAudio sets the Audio field's value.
6649func (s *Preset) SetAudio(v *AudioParameters) *Preset {
6650	s.Audio = v
6651	return s
6652}
6653
6654// SetContainer sets the Container field's value.
6655func (s *Preset) SetContainer(v string) *Preset {
6656	s.Container = &v
6657	return s
6658}
6659
6660// SetDescription sets the Description field's value.
6661func (s *Preset) SetDescription(v string) *Preset {
6662	s.Description = &v
6663	return s
6664}
6665
6666// SetId sets the Id field's value.
6667func (s *Preset) SetId(v string) *Preset {
6668	s.Id = &v
6669	return s
6670}
6671
6672// SetName sets the Name field's value.
6673func (s *Preset) SetName(v string) *Preset {
6674	s.Name = &v
6675	return s
6676}
6677
6678// SetThumbnails sets the Thumbnails field's value.
6679func (s *Preset) SetThumbnails(v *Thumbnails) *Preset {
6680	s.Thumbnails = v
6681	return s
6682}
6683
6684// SetType sets the Type field's value.
6685func (s *Preset) SetType(v string) *Preset {
6686	s.Type = &v
6687	return s
6688}
6689
6690// SetVideo sets the Video field's value.
6691func (s *Preset) SetVideo(v *VideoParameters) *Preset {
6692	s.Video = v
6693	return s
6694}
6695
6696// Settings for the size, location, and opacity of graphics that you want Elastic
6697// Transcoder to overlay over videos that are transcoded using this preset.
6698// You can specify settings for up to four watermarks. Watermarks appear in
6699// the specified size and location, and with the specified opacity for the duration
6700// of the transcoded video.
6701//
6702// Watermarks can be in .png or .jpg format. If you want to display a watermark
6703// that is not rectangular, use the .png format, which supports transparency.
6704//
6705// When you create a job that uses this preset, you specify the .png or .jpg
6706// graphics that you want Elastic Transcoder to include in the transcoded videos.
6707// You can specify fewer graphics in the job than you specify watermark settings
6708// in the preset, which allows you to use the same preset for up to four watermarks
6709// that have different dimensions.
6710type PresetWatermark struct {
6711	_ struct{} `type:"structure"`
6712
6713	// The horizontal position of the watermark unless you specify a non-zero value
6714	// for HorizontalOffset:
6715	//
6716	//    * Left: The left edge of the watermark is aligned with the left border
6717	//    of the video.
6718	//
6719	//    * Right: The right edge of the watermark is aligned with the right border
6720	//    of the video.
6721	//
6722	//    * Center: The watermark is centered between the left and right borders.
6723	HorizontalAlign *string `type:"string"`
6724
6725	// The amount by which you want the horizontal position of the watermark to
6726	// be offset from the position specified by HorizontalAlign:
6727	//
6728	//    * number of pixels (px): The minimum value is 0 pixels, and the maximum
6729	//    value is the value of MaxWidth.
6730	//
6731	//    * integer percentage (%): The range of valid values is 0 to 100.
6732	//
6733	// For example, if you specify Left for HorizontalAlign and 5px for HorizontalOffset,
6734	// the left side of the watermark appears 5 pixels from the left border of the
6735	// output video.
6736	//
6737	// HorizontalOffset is only valid when the value of HorizontalAlign is Left
6738	// or Right. If you specify an offset that causes the watermark to extend beyond
6739	// the left or right border and Elastic Transcoder has not added black bars,
6740	// the watermark is cropped. If Elastic Transcoder has added black bars, the
6741	// watermark extends into the black bars. If the watermark extends beyond the
6742	// black bars, it is cropped.
6743	//
6744	// Use the value of Target to specify whether you want to include the black
6745	// bars that are added by Elastic Transcoder, if any, in the offset calculation.
6746	HorizontalOffset *string `type:"string"`
6747
6748	// A unique identifier for the settings for one watermark. The value of Id can
6749	// be up to 40 characters long.
6750	Id *string `min:"1" type:"string"`
6751
6752	// The maximum height of the watermark in one of the following formats:
6753	//
6754	//    * number of pixels (px): The minimum value is 16 pixels, and the maximum
6755	//    value is the value of MaxHeight.
6756	//
6757	//    * integer percentage (%): The range of valid values is 0 to 100. Use the
6758	//    value of Target to specify whether you want Elastic Transcoder to include
6759	//    the black bars that are added by Elastic Transcoder, if any, in the calculation.
6760	//
6761	// If you specify the value in pixels, it must be less than or equal to the
6762	// value of MaxHeight.
6763	MaxHeight *string `type:"string"`
6764
6765	// The maximum width of the watermark in one of the following formats:
6766	//
6767	//    * number of pixels (px): The minimum value is 16 pixels, and the maximum
6768	//    value is the value of MaxWidth.
6769	//
6770	//    * integer percentage (%): The range of valid values is 0 to 100. Use the
6771	//    value of Target to specify whether you want Elastic Transcoder to include
6772	//    the black bars that are added by Elastic Transcoder, if any, in the calculation.
6773	//    If you specify the value in pixels, it must be less than or equal to the
6774	//    value of MaxWidth.
6775	MaxWidth *string `type:"string"`
6776
6777	// A percentage that indicates how much you want a watermark to obscure the
6778	// video in the location where it appears. Valid values are 0 (the watermark
6779	// is invisible) to 100 (the watermark completely obscures the video in the
6780	// specified location). The datatype of Opacity is float.
6781	//
6782	// Elastic Transcoder supports transparent .png graphics. If you use a transparent
6783	// .png, the transparent portion of the video appears as if you had specified
6784	// a value of 0 for Opacity. The .jpg file format doesn't support transparency.
6785	Opacity *string `type:"string"`
6786
6787	// A value that controls scaling of the watermark:
6788	//
6789	//    * Fit: Elastic Transcoder scales the watermark so it matches the value
6790	//    that you specified in either MaxWidth or MaxHeight without exceeding the
6791	//    other value.
6792	//
6793	//    * Stretch: Elastic Transcoder stretches the watermark to match the values
6794	//    that you specified for MaxWidth and MaxHeight. If the relative proportions
6795	//    of the watermark and the values of MaxWidth and MaxHeight are different,
6796	//    the watermark will be distorted.
6797	//
6798	//    * ShrinkToFit: Elastic Transcoder scales the watermark down so that its
6799	//    dimensions match the values that you specified for at least one of MaxWidth
6800	//    and MaxHeight without exceeding either value. If you specify this option,
6801	//    Elastic Transcoder does not scale the watermark up.
6802	SizingPolicy *string `type:"string"`
6803
6804	// A value that determines how Elastic Transcoder interprets values that you
6805	// specified for HorizontalOffset, VerticalOffset, MaxWidth, and MaxHeight:
6806	//
6807	//    * Content: HorizontalOffset and VerticalOffset values are calculated based
6808	//    on the borders of the video excluding black bars added by Elastic Transcoder,
6809	//    if any. In addition, MaxWidth and MaxHeight, if specified as a percentage,
6810	//    are calculated based on the borders of the video excluding black bars
6811	//    added by Elastic Transcoder, if any.
6812	//
6813	//    * Frame: HorizontalOffset and VerticalOffset values are calculated based
6814	//    on the borders of the video including black bars added by Elastic Transcoder,
6815	//    if any. In addition, MaxWidth and MaxHeight, if specified as a percentage,
6816	//    are calculated based on the borders of the video including black bars
6817	//    added by Elastic Transcoder, if any.
6818	Target *string `type:"string"`
6819
6820	// The vertical position of the watermark unless you specify a non-zero value
6821	// for VerticalOffset:
6822	//
6823	//    * Top: The top edge of the watermark is aligned with the top border of
6824	//    the video.
6825	//
6826	//    * Bottom: The bottom edge of the watermark is aligned with the bottom
6827	//    border of the video.
6828	//
6829	//    * Center: The watermark is centered between the top and bottom borders.
6830	VerticalAlign *string `type:"string"`
6831
6832	// VerticalOffset
6833	//
6834	// The amount by which you want the vertical position of the watermark to be
6835	// offset from the position specified by VerticalAlign:
6836	//
6837	//    * number of pixels (px): The minimum value is 0 pixels, and the maximum
6838	//    value is the value of MaxHeight.
6839	//
6840	//    * integer percentage (%): The range of valid values is 0 to 100.
6841	//
6842	// For example, if you specify Top for VerticalAlign and 5px for VerticalOffset,
6843	// the top of the watermark appears 5 pixels from the top border of the output
6844	// video.
6845	//
6846	// VerticalOffset is only valid when the value of VerticalAlign is Top or Bottom.
6847	//
6848	// If you specify an offset that causes the watermark to extend beyond the top
6849	// or bottom border and Elastic Transcoder has not added black bars, the watermark
6850	// is cropped. If Elastic Transcoder has added black bars, the watermark extends
6851	// into the black bars. If the watermark extends beyond the black bars, it is
6852	// cropped.
6853	//
6854	// Use the value of Target to specify whether you want Elastic Transcoder to
6855	// include the black bars that are added by Elastic Transcoder, if any, in the
6856	// offset calculation.
6857	VerticalOffset *string `type:"string"`
6858}
6859
6860// String returns the string representation.
6861//
6862// API parameter values that are decorated as "sensitive" in the API will not
6863// be included in the string output. The member name will be present, but the
6864// value will be replaced with "sensitive".
6865func (s PresetWatermark) String() string {
6866	return awsutil.Prettify(s)
6867}
6868
6869// GoString returns the string representation.
6870//
6871// API parameter values that are decorated as "sensitive" in the API will not
6872// be included in the string output. The member name will be present, but the
6873// value will be replaced with "sensitive".
6874func (s PresetWatermark) GoString() string {
6875	return s.String()
6876}
6877
6878// Validate inspects the fields of the type to determine if they are valid.
6879func (s *PresetWatermark) Validate() error {
6880	invalidParams := request.ErrInvalidParams{Context: "PresetWatermark"}
6881	if s.Id != nil && len(*s.Id) < 1 {
6882		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
6883	}
6884
6885	if invalidParams.Len() > 0 {
6886		return invalidParams
6887	}
6888	return nil
6889}
6890
6891// SetHorizontalAlign sets the HorizontalAlign field's value.
6892func (s *PresetWatermark) SetHorizontalAlign(v string) *PresetWatermark {
6893	s.HorizontalAlign = &v
6894	return s
6895}
6896
6897// SetHorizontalOffset sets the HorizontalOffset field's value.
6898func (s *PresetWatermark) SetHorizontalOffset(v string) *PresetWatermark {
6899	s.HorizontalOffset = &v
6900	return s
6901}
6902
6903// SetId sets the Id field's value.
6904func (s *PresetWatermark) SetId(v string) *PresetWatermark {
6905	s.Id = &v
6906	return s
6907}
6908
6909// SetMaxHeight sets the MaxHeight field's value.
6910func (s *PresetWatermark) SetMaxHeight(v string) *PresetWatermark {
6911	s.MaxHeight = &v
6912	return s
6913}
6914
6915// SetMaxWidth sets the MaxWidth field's value.
6916func (s *PresetWatermark) SetMaxWidth(v string) *PresetWatermark {
6917	s.MaxWidth = &v
6918	return s
6919}
6920
6921// SetOpacity sets the Opacity field's value.
6922func (s *PresetWatermark) SetOpacity(v string) *PresetWatermark {
6923	s.Opacity = &v
6924	return s
6925}
6926
6927// SetSizingPolicy sets the SizingPolicy field's value.
6928func (s *PresetWatermark) SetSizingPolicy(v string) *PresetWatermark {
6929	s.SizingPolicy = &v
6930	return s
6931}
6932
6933// SetTarget sets the Target field's value.
6934func (s *PresetWatermark) SetTarget(v string) *PresetWatermark {
6935	s.Target = &v
6936	return s
6937}
6938
6939// SetVerticalAlign sets the VerticalAlign field's value.
6940func (s *PresetWatermark) SetVerticalAlign(v string) *PresetWatermark {
6941	s.VerticalAlign = &v
6942	return s
6943}
6944
6945// SetVerticalOffset sets the VerticalOffset field's value.
6946func (s *PresetWatermark) SetVerticalOffset(v string) *PresetWatermark {
6947	s.VerticalOffset = &v
6948	return s
6949}
6950
6951// The ReadJobRequest structure.
6952type ReadJobInput struct {
6953	_ struct{} `type:"structure" nopayload:"true"`
6954
6955	// The identifier of the job for which you want to get detailed information.
6956	//
6957	// Id is a required field
6958	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
6959}
6960
6961// String returns the string representation.
6962//
6963// API parameter values that are decorated as "sensitive" in the API will not
6964// be included in the string output. The member name will be present, but the
6965// value will be replaced with "sensitive".
6966func (s ReadJobInput) String() string {
6967	return awsutil.Prettify(s)
6968}
6969
6970// GoString returns the string representation.
6971//
6972// API parameter values that are decorated as "sensitive" in the API will not
6973// be included in the string output. The member name will be present, but the
6974// value will be replaced with "sensitive".
6975func (s ReadJobInput) GoString() string {
6976	return s.String()
6977}
6978
6979// Validate inspects the fields of the type to determine if they are valid.
6980func (s *ReadJobInput) Validate() error {
6981	invalidParams := request.ErrInvalidParams{Context: "ReadJobInput"}
6982	if s.Id == nil {
6983		invalidParams.Add(request.NewErrParamRequired("Id"))
6984	}
6985	if s.Id != nil && len(*s.Id) < 1 {
6986		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
6987	}
6988
6989	if invalidParams.Len() > 0 {
6990		return invalidParams
6991	}
6992	return nil
6993}
6994
6995// SetId sets the Id field's value.
6996func (s *ReadJobInput) SetId(v string) *ReadJobInput {
6997	s.Id = &v
6998	return s
6999}
7000
7001// The ReadJobResponse structure.
7002type ReadJobOutput struct {
7003	_ struct{} `type:"structure"`
7004
7005	// A section of the response body that provides information about the job.
7006	Job *Job `type:"structure"`
7007}
7008
7009// String returns the string representation.
7010//
7011// API parameter values that are decorated as "sensitive" in the API will not
7012// be included in the string output. The member name will be present, but the
7013// value will be replaced with "sensitive".
7014func (s ReadJobOutput) String() string {
7015	return awsutil.Prettify(s)
7016}
7017
7018// GoString returns the string representation.
7019//
7020// API parameter values that are decorated as "sensitive" in the API will not
7021// be included in the string output. The member name will be present, but the
7022// value will be replaced with "sensitive".
7023func (s ReadJobOutput) GoString() string {
7024	return s.String()
7025}
7026
7027// SetJob sets the Job field's value.
7028func (s *ReadJobOutput) SetJob(v *Job) *ReadJobOutput {
7029	s.Job = v
7030	return s
7031}
7032
7033// The ReadPipelineRequest structure.
7034type ReadPipelineInput struct {
7035	_ struct{} `type:"structure" nopayload:"true"`
7036
7037	// The identifier of the pipeline to read.
7038	//
7039	// Id is a required field
7040	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
7041}
7042
7043// String returns the string representation.
7044//
7045// API parameter values that are decorated as "sensitive" in the API will not
7046// be included in the string output. The member name will be present, but the
7047// value will be replaced with "sensitive".
7048func (s ReadPipelineInput) String() string {
7049	return awsutil.Prettify(s)
7050}
7051
7052// GoString returns the string representation.
7053//
7054// API parameter values that are decorated as "sensitive" in the API will not
7055// be included in the string output. The member name will be present, but the
7056// value will be replaced with "sensitive".
7057func (s ReadPipelineInput) GoString() string {
7058	return s.String()
7059}
7060
7061// Validate inspects the fields of the type to determine if they are valid.
7062func (s *ReadPipelineInput) Validate() error {
7063	invalidParams := request.ErrInvalidParams{Context: "ReadPipelineInput"}
7064	if s.Id == nil {
7065		invalidParams.Add(request.NewErrParamRequired("Id"))
7066	}
7067	if s.Id != nil && len(*s.Id) < 1 {
7068		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
7069	}
7070
7071	if invalidParams.Len() > 0 {
7072		return invalidParams
7073	}
7074	return nil
7075}
7076
7077// SetId sets the Id field's value.
7078func (s *ReadPipelineInput) SetId(v string) *ReadPipelineInput {
7079	s.Id = &v
7080	return s
7081}
7082
7083// The ReadPipelineResponse structure.
7084type ReadPipelineOutput struct {
7085	_ struct{} `type:"structure"`
7086
7087	// A section of the response body that provides information about the pipeline.
7088	Pipeline *Pipeline `type:"structure"`
7089
7090	// Elastic Transcoder returns a warning if the resources used by your pipeline
7091	// are not in the same region as the pipeline.
7092	//
7093	// Using resources in the same region, such as your Amazon S3 buckets, Amazon
7094	// SNS notification topics, and AWS KMS key, reduces processing time and prevents
7095	// cross-regional charges.
7096	Warnings []*Warning `type:"list"`
7097}
7098
7099// String returns the string representation.
7100//
7101// API parameter values that are decorated as "sensitive" in the API will not
7102// be included in the string output. The member name will be present, but the
7103// value will be replaced with "sensitive".
7104func (s ReadPipelineOutput) String() string {
7105	return awsutil.Prettify(s)
7106}
7107
7108// GoString returns the string representation.
7109//
7110// API parameter values that are decorated as "sensitive" in the API will not
7111// be included in the string output. The member name will be present, but the
7112// value will be replaced with "sensitive".
7113func (s ReadPipelineOutput) GoString() string {
7114	return s.String()
7115}
7116
7117// SetPipeline sets the Pipeline field's value.
7118func (s *ReadPipelineOutput) SetPipeline(v *Pipeline) *ReadPipelineOutput {
7119	s.Pipeline = v
7120	return s
7121}
7122
7123// SetWarnings sets the Warnings field's value.
7124func (s *ReadPipelineOutput) SetWarnings(v []*Warning) *ReadPipelineOutput {
7125	s.Warnings = v
7126	return s
7127}
7128
7129// The ReadPresetRequest structure.
7130type ReadPresetInput struct {
7131	_ struct{} `type:"structure" nopayload:"true"`
7132
7133	// The identifier of the preset for which you want to get detailed information.
7134	//
7135	// Id is a required field
7136	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
7137}
7138
7139// String returns the string representation.
7140//
7141// API parameter values that are decorated as "sensitive" in the API will not
7142// be included in the string output. The member name will be present, but the
7143// value will be replaced with "sensitive".
7144func (s ReadPresetInput) String() string {
7145	return awsutil.Prettify(s)
7146}
7147
7148// GoString returns the string representation.
7149//
7150// API parameter values that are decorated as "sensitive" in the API will not
7151// be included in the string output. The member name will be present, but the
7152// value will be replaced with "sensitive".
7153func (s ReadPresetInput) GoString() string {
7154	return s.String()
7155}
7156
7157// Validate inspects the fields of the type to determine if they are valid.
7158func (s *ReadPresetInput) Validate() error {
7159	invalidParams := request.ErrInvalidParams{Context: "ReadPresetInput"}
7160	if s.Id == nil {
7161		invalidParams.Add(request.NewErrParamRequired("Id"))
7162	}
7163	if s.Id != nil && len(*s.Id) < 1 {
7164		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
7165	}
7166
7167	if invalidParams.Len() > 0 {
7168		return invalidParams
7169	}
7170	return nil
7171}
7172
7173// SetId sets the Id field's value.
7174func (s *ReadPresetInput) SetId(v string) *ReadPresetInput {
7175	s.Id = &v
7176	return s
7177}
7178
7179// The ReadPresetResponse structure.
7180type ReadPresetOutput struct {
7181	_ struct{} `type:"structure"`
7182
7183	// A section of the response body that provides information about the preset.
7184	Preset *Preset `type:"structure"`
7185}
7186
7187// String returns the string representation.
7188//
7189// API parameter values that are decorated as "sensitive" in the API will not
7190// be included in the string output. The member name will be present, but the
7191// value will be replaced with "sensitive".
7192func (s ReadPresetOutput) String() string {
7193	return awsutil.Prettify(s)
7194}
7195
7196// GoString returns the string representation.
7197//
7198// API parameter values that are decorated as "sensitive" in the API will not
7199// be included in the string output. The member name will be present, but the
7200// value will be replaced with "sensitive".
7201func (s ReadPresetOutput) GoString() string {
7202	return s.String()
7203}
7204
7205// SetPreset sets the Preset field's value.
7206func (s *ReadPresetOutput) SetPreset(v *Preset) *ReadPresetOutput {
7207	s.Preset = v
7208	return s
7209}
7210
7211// The resource you are attempting to change is in use. For example, you are
7212// attempting to delete a pipeline that is currently in use.
7213type ResourceInUseException struct {
7214	_            struct{}                  `type:"structure"`
7215	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7216
7217	Message_ *string `locationName:"message" type:"string"`
7218}
7219
7220// String returns the string representation.
7221//
7222// API parameter values that are decorated as "sensitive" in the API will not
7223// be included in the string output. The member name will be present, but the
7224// value will be replaced with "sensitive".
7225func (s ResourceInUseException) String() string {
7226	return awsutil.Prettify(s)
7227}
7228
7229// GoString returns the string representation.
7230//
7231// API parameter values that are decorated as "sensitive" in the API will not
7232// be included in the string output. The member name will be present, but the
7233// value will be replaced with "sensitive".
7234func (s ResourceInUseException) GoString() string {
7235	return s.String()
7236}
7237
7238func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
7239	return &ResourceInUseException{
7240		RespMetadata: v,
7241	}
7242}
7243
7244// Code returns the exception type name.
7245func (s *ResourceInUseException) Code() string {
7246	return "ResourceInUseException"
7247}
7248
7249// Message returns the exception's message.
7250func (s *ResourceInUseException) Message() string {
7251	if s.Message_ != nil {
7252		return *s.Message_
7253	}
7254	return ""
7255}
7256
7257// OrigErr always returns nil, satisfies awserr.Error interface.
7258func (s *ResourceInUseException) OrigErr() error {
7259	return nil
7260}
7261
7262func (s *ResourceInUseException) Error() string {
7263	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7264}
7265
7266// Status code returns the HTTP status code for the request's response error.
7267func (s *ResourceInUseException) StatusCode() int {
7268	return s.RespMetadata.StatusCode
7269}
7270
7271// RequestID returns the service's response RequestID for request.
7272func (s *ResourceInUseException) RequestID() string {
7273	return s.RespMetadata.RequestID
7274}
7275
7276// The requested resource does not exist or is not available. For example, the
7277// pipeline to which you're trying to add a job doesn't exist or is still being
7278// created.
7279type ResourceNotFoundException struct {
7280	_            struct{}                  `type:"structure"`
7281	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7282
7283	Message_ *string `locationName:"message" type:"string"`
7284}
7285
7286// String returns the string representation.
7287//
7288// API parameter values that are decorated as "sensitive" in the API will not
7289// be included in the string output. The member name will be present, but the
7290// value will be replaced with "sensitive".
7291func (s ResourceNotFoundException) String() string {
7292	return awsutil.Prettify(s)
7293}
7294
7295// GoString returns the string representation.
7296//
7297// API parameter values that are decorated as "sensitive" in the API will not
7298// be included in the string output. The member name will be present, but the
7299// value will be replaced with "sensitive".
7300func (s ResourceNotFoundException) GoString() string {
7301	return s.String()
7302}
7303
7304func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
7305	return &ResourceNotFoundException{
7306		RespMetadata: v,
7307	}
7308}
7309
7310// Code returns the exception type name.
7311func (s *ResourceNotFoundException) Code() string {
7312	return "ResourceNotFoundException"
7313}
7314
7315// Message returns the exception's message.
7316func (s *ResourceNotFoundException) Message() string {
7317	if s.Message_ != nil {
7318		return *s.Message_
7319	}
7320	return ""
7321}
7322
7323// OrigErr always returns nil, satisfies awserr.Error interface.
7324func (s *ResourceNotFoundException) OrigErr() error {
7325	return nil
7326}
7327
7328func (s *ResourceNotFoundException) Error() string {
7329	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7330}
7331
7332// Status code returns the HTTP status code for the request's response error.
7333func (s *ResourceNotFoundException) StatusCode() int {
7334	return s.RespMetadata.StatusCode
7335}
7336
7337// RequestID returns the service's response RequestID for request.
7338func (s *ResourceNotFoundException) RequestID() string {
7339	return s.RespMetadata.RequestID
7340}
7341
7342// The TestRoleRequest structure.
7343//
7344// Deprecated: TestRoleInput has been deprecated
7345type TestRoleInput struct {
7346	_ struct{} `deprecated:"true" type:"structure"`
7347
7348	// The Amazon S3 bucket that contains media files to be transcoded. The action
7349	// attempts to read from this bucket.
7350	//
7351	// InputBucket is a required field
7352	InputBucket *string `type:"string" required:"true"`
7353
7354	// The Amazon S3 bucket that Elastic Transcoder writes transcoded media files
7355	// to. The action attempts to read from this bucket.
7356	//
7357	// OutputBucket is a required field
7358	OutputBucket *string `type:"string" required:"true"`
7359
7360	// The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder
7361	// to test.
7362	//
7363	// Role is a required field
7364	Role *string `type:"string" required:"true"`
7365
7366	// The ARNs of one or more Amazon Simple Notification Service (Amazon SNS) topics
7367	// that you want the action to send a test notification to.
7368	//
7369	// Topics is a required field
7370	Topics []*string `type:"list" required:"true"`
7371}
7372
7373// String returns the string representation.
7374//
7375// API parameter values that are decorated as "sensitive" in the API will not
7376// be included in the string output. The member name will be present, but the
7377// value will be replaced with "sensitive".
7378func (s TestRoleInput) String() string {
7379	return awsutil.Prettify(s)
7380}
7381
7382// GoString returns the string representation.
7383//
7384// API parameter values that are decorated as "sensitive" in the API will not
7385// be included in the string output. The member name will be present, but the
7386// value will be replaced with "sensitive".
7387func (s TestRoleInput) GoString() string {
7388	return s.String()
7389}
7390
7391// Validate inspects the fields of the type to determine if they are valid.
7392func (s *TestRoleInput) Validate() error {
7393	invalidParams := request.ErrInvalidParams{Context: "TestRoleInput"}
7394	if s.InputBucket == nil {
7395		invalidParams.Add(request.NewErrParamRequired("InputBucket"))
7396	}
7397	if s.OutputBucket == nil {
7398		invalidParams.Add(request.NewErrParamRequired("OutputBucket"))
7399	}
7400	if s.Role == nil {
7401		invalidParams.Add(request.NewErrParamRequired("Role"))
7402	}
7403	if s.Topics == nil {
7404		invalidParams.Add(request.NewErrParamRequired("Topics"))
7405	}
7406
7407	if invalidParams.Len() > 0 {
7408		return invalidParams
7409	}
7410	return nil
7411}
7412
7413// SetInputBucket sets the InputBucket field's value.
7414func (s *TestRoleInput) SetInputBucket(v string) *TestRoleInput {
7415	s.InputBucket = &v
7416	return s
7417}
7418
7419// SetOutputBucket sets the OutputBucket field's value.
7420func (s *TestRoleInput) SetOutputBucket(v string) *TestRoleInput {
7421	s.OutputBucket = &v
7422	return s
7423}
7424
7425// SetRole sets the Role field's value.
7426func (s *TestRoleInput) SetRole(v string) *TestRoleInput {
7427	s.Role = &v
7428	return s
7429}
7430
7431// SetTopics sets the Topics field's value.
7432func (s *TestRoleInput) SetTopics(v []*string) *TestRoleInput {
7433	s.Topics = v
7434	return s
7435}
7436
7437// The TestRoleResponse structure.
7438//
7439// Deprecated: TestRoleOutput has been deprecated
7440type TestRoleOutput struct {
7441	_ struct{} `deprecated:"true" type:"structure"`
7442
7443	// If the Success element contains false, this value is an array of one or more
7444	// error messages that were generated during the test process.
7445	Messages []*string `type:"list"`
7446
7447	// If the operation is successful, this value is true; otherwise, the value
7448	// is false.
7449	Success *string `type:"string"`
7450}
7451
7452// String returns the string representation.
7453//
7454// API parameter values that are decorated as "sensitive" in the API will not
7455// be included in the string output. The member name will be present, but the
7456// value will be replaced with "sensitive".
7457func (s TestRoleOutput) String() string {
7458	return awsutil.Prettify(s)
7459}
7460
7461// GoString returns the string representation.
7462//
7463// API parameter values that are decorated as "sensitive" in the API will not
7464// be included in the string output. The member name will be present, but the
7465// value will be replaced with "sensitive".
7466func (s TestRoleOutput) GoString() string {
7467	return s.String()
7468}
7469
7470// SetMessages sets the Messages field's value.
7471func (s *TestRoleOutput) SetMessages(v []*string) *TestRoleOutput {
7472	s.Messages = v
7473	return s
7474}
7475
7476// SetSuccess sets the Success field's value.
7477func (s *TestRoleOutput) SetSuccess(v string) *TestRoleOutput {
7478	s.Success = &v
7479	return s
7480}
7481
7482// Thumbnails for videos.
7483type Thumbnails struct {
7484	_ struct{} `type:"structure"`
7485
7486	//
7487	// To better control resolution and aspect ratio of thumbnails, we recommend
7488	// that you use the values MaxWidth, MaxHeight, SizingPolicy, and PaddingPolicy
7489	// instead of Resolution and AspectRatio. The two groups of settings are mutually
7490	// exclusive. Do not use them together.
7491	//
7492	// The aspect ratio of thumbnails. Valid values include:
7493	//
7494	// auto, 1:1, 4:3, 3:2, 16:9
7495	//
7496	// If you specify auto, Elastic Transcoder tries to preserve the aspect ratio
7497	// of the video in the output file.
7498	AspectRatio *string `type:"string"`
7499
7500	// The format of thumbnails, if any. Valid values are jpg and png.
7501	//
7502	// You specify whether you want Elastic Transcoder to create thumbnails when
7503	// you create a job.
7504	Format *string `type:"string"`
7505
7506	// The approximate number of seconds between thumbnails. Specify an integer
7507	// value.
7508	Interval *string `type:"string"`
7509
7510	// The maximum height of thumbnails in pixels. If you specify auto, Elastic
7511	// Transcoder uses 1080 (Full HD) as the default value. If you specify a numeric
7512	// value, enter an even integer between 32 and 3072.
7513	MaxHeight *string `type:"string"`
7514
7515	// The maximum width of thumbnails in pixels. If you specify auto, Elastic Transcoder
7516	// uses 1920 (Full HD) as the default value. If you specify a numeric value,
7517	// enter an even integer between 32 and 4096.
7518	MaxWidth *string `type:"string"`
7519
7520	// When you set PaddingPolicy to Pad, Elastic Transcoder may add black bars
7521	// to the top and bottom and/or left and right sides of thumbnails to make the
7522	// total size of the thumbnails match the values that you specified for thumbnail
7523	// MaxWidth and MaxHeight settings.
7524	PaddingPolicy *string `type:"string"`
7525
7526	//
7527	// To better control resolution and aspect ratio of thumbnails, we recommend
7528	// that you use the values MaxWidth, MaxHeight, SizingPolicy, and PaddingPolicy
7529	// instead of Resolution and AspectRatio. The two groups of settings are mutually
7530	// exclusive. Do not use them together.
7531	//
7532	// The width and height of thumbnail files in pixels. Specify a value in the
7533	// format width x height where both values are even integers. The values cannot
7534	// exceed the width and height that you specified in the Video:Resolution object.
7535	Resolution *string `type:"string"`
7536
7537	// Specify one of the following values to control scaling of thumbnails:
7538	//
7539	//    * Fit: Elastic Transcoder scales thumbnails so they match the value that
7540	//    you specified in thumbnail MaxWidth or MaxHeight settings without exceeding
7541	//    the other value.
7542	//
7543	//    * Fill: Elastic Transcoder scales thumbnails so they match the value that
7544	//    you specified in thumbnail MaxWidth or MaxHeight settings and matches
7545	//    or exceeds the other value. Elastic Transcoder centers the image in thumbnails
7546	//    and then crops in the dimension (if any) that exceeds the maximum value.
7547	//
7548	//    * Stretch: Elastic Transcoder stretches thumbnails to match the values
7549	//    that you specified for thumbnail MaxWidth and MaxHeight settings. If the
7550	//    relative proportions of the input video and thumbnails are different,
7551	//    the thumbnails will be distorted.
7552	//
7553	//    * Keep: Elastic Transcoder does not scale thumbnails. If either dimension
7554	//    of the input video exceeds the values that you specified for thumbnail
7555	//    MaxWidth and MaxHeight settings, Elastic Transcoder crops the thumbnails.
7556	//
7557	//    * ShrinkToFit: Elastic Transcoder scales thumbnails down so that their
7558	//    dimensions match the values that you specified for at least one of thumbnail
7559	//    MaxWidth and MaxHeight without exceeding either value. If you specify
7560	//    this option, Elastic Transcoder does not scale thumbnails up.
7561	//
7562	//    * ShrinkToFill: Elastic Transcoder scales thumbnails down so that their
7563	//    dimensions match the values that you specified for at least one of MaxWidth
7564	//    and MaxHeight without dropping below either value. If you specify this
7565	//    option, Elastic Transcoder does not scale thumbnails up.
7566	SizingPolicy *string `type:"string"`
7567}
7568
7569// String returns the string representation.
7570//
7571// API parameter values that are decorated as "sensitive" in the API will not
7572// be included in the string output. The member name will be present, but the
7573// value will be replaced with "sensitive".
7574func (s Thumbnails) String() string {
7575	return awsutil.Prettify(s)
7576}
7577
7578// GoString returns the string representation.
7579//
7580// API parameter values that are decorated as "sensitive" in the API will not
7581// be included in the string output. The member name will be present, but the
7582// value will be replaced with "sensitive".
7583func (s Thumbnails) GoString() string {
7584	return s.String()
7585}
7586
7587// SetAspectRatio sets the AspectRatio field's value.
7588func (s *Thumbnails) SetAspectRatio(v string) *Thumbnails {
7589	s.AspectRatio = &v
7590	return s
7591}
7592
7593// SetFormat sets the Format field's value.
7594func (s *Thumbnails) SetFormat(v string) *Thumbnails {
7595	s.Format = &v
7596	return s
7597}
7598
7599// SetInterval sets the Interval field's value.
7600func (s *Thumbnails) SetInterval(v string) *Thumbnails {
7601	s.Interval = &v
7602	return s
7603}
7604
7605// SetMaxHeight sets the MaxHeight field's value.
7606func (s *Thumbnails) SetMaxHeight(v string) *Thumbnails {
7607	s.MaxHeight = &v
7608	return s
7609}
7610
7611// SetMaxWidth sets the MaxWidth field's value.
7612func (s *Thumbnails) SetMaxWidth(v string) *Thumbnails {
7613	s.MaxWidth = &v
7614	return s
7615}
7616
7617// SetPaddingPolicy sets the PaddingPolicy field's value.
7618func (s *Thumbnails) SetPaddingPolicy(v string) *Thumbnails {
7619	s.PaddingPolicy = &v
7620	return s
7621}
7622
7623// SetResolution sets the Resolution field's value.
7624func (s *Thumbnails) SetResolution(v string) *Thumbnails {
7625	s.Resolution = &v
7626	return s
7627}
7628
7629// SetSizingPolicy sets the SizingPolicy field's value.
7630func (s *Thumbnails) SetSizingPolicy(v string) *Thumbnails {
7631	s.SizingPolicy = &v
7632	return s
7633}
7634
7635// Settings that determine when a clip begins and how long it lasts.
7636type TimeSpan struct {
7637	_ struct{} `type:"structure"`
7638
7639	// The duration of the clip. The format can be either HH:mm:ss.SSS (maximum
7640	// value: 23:59:59.999; SSS is thousandths of a second) or sssss.SSS (maximum
7641	// value: 86399.999). If you don't specify a value, Elastic Transcoder creates
7642	// an output file from StartTime to the end of the file.
7643	//
7644	// If you specify a value longer than the duration of the input file, Elastic
7645	// Transcoder transcodes the file and returns a warning message.
7646	Duration *string `type:"string"`
7647
7648	// The place in the input file where you want a clip to start. The format can
7649	// be either HH:mm:ss.SSS (maximum value: 23:59:59.999; SSS is thousandths of
7650	// a second) or sssss.SSS (maximum value: 86399.999). If you don't specify a
7651	// value, Elastic Transcoder starts at the beginning of the input file.
7652	StartTime *string `type:"string"`
7653}
7654
7655// String returns the string representation.
7656//
7657// API parameter values that are decorated as "sensitive" in the API will not
7658// be included in the string output. The member name will be present, but the
7659// value will be replaced with "sensitive".
7660func (s TimeSpan) String() string {
7661	return awsutil.Prettify(s)
7662}
7663
7664// GoString returns the string representation.
7665//
7666// API parameter values that are decorated as "sensitive" in the API will not
7667// be included in the string output. The member name will be present, but the
7668// value will be replaced with "sensitive".
7669func (s TimeSpan) GoString() string {
7670	return s.String()
7671}
7672
7673// SetDuration sets the Duration field's value.
7674func (s *TimeSpan) SetDuration(v string) *TimeSpan {
7675	s.Duration = &v
7676	return s
7677}
7678
7679// SetStartTime sets the StartTime field's value.
7680func (s *TimeSpan) SetStartTime(v string) *TimeSpan {
7681	s.StartTime = &v
7682	return s
7683}
7684
7685// Details about the timing of a job.
7686type Timing struct {
7687	_ struct{} `type:"structure"`
7688
7689	// The time the job finished transcoding, in epoch milliseconds.
7690	FinishTimeMillis *int64 `type:"long"`
7691
7692	// The time the job began transcoding, in epoch milliseconds.
7693	StartTimeMillis *int64 `type:"long"`
7694
7695	// The time the job was submitted to Elastic Transcoder, in epoch milliseconds.
7696	SubmitTimeMillis *int64 `type:"long"`
7697}
7698
7699// String returns the string representation.
7700//
7701// API parameter values that are decorated as "sensitive" in the API will not
7702// be included in the string output. The member name will be present, but the
7703// value will be replaced with "sensitive".
7704func (s Timing) String() string {
7705	return awsutil.Prettify(s)
7706}
7707
7708// GoString returns the string representation.
7709//
7710// API parameter values that are decorated as "sensitive" in the API will not
7711// be included in the string output. The member name will be present, but the
7712// value will be replaced with "sensitive".
7713func (s Timing) GoString() string {
7714	return s.String()
7715}
7716
7717// SetFinishTimeMillis sets the FinishTimeMillis field's value.
7718func (s *Timing) SetFinishTimeMillis(v int64) *Timing {
7719	s.FinishTimeMillis = &v
7720	return s
7721}
7722
7723// SetStartTimeMillis sets the StartTimeMillis field's value.
7724func (s *Timing) SetStartTimeMillis(v int64) *Timing {
7725	s.StartTimeMillis = &v
7726	return s
7727}
7728
7729// SetSubmitTimeMillis sets the SubmitTimeMillis field's value.
7730func (s *Timing) SetSubmitTimeMillis(v int64) *Timing {
7731	s.SubmitTimeMillis = &v
7732	return s
7733}
7734
7735// The UpdatePipelineRequest structure.
7736type UpdatePipelineInput struct {
7737	_ struct{} `type:"structure"`
7738
7739	// The AWS Key Management Service (AWS KMS) key that you want to use with this
7740	// pipeline.
7741	//
7742	// If you use either s3 or s3-aws-kms as your Encryption:Mode, you don't need
7743	// to provide a key with your job because a default key, known as an AWS-KMS
7744	// key, is created for you automatically. You need to provide an AWS-KMS key
7745	// only if you want to use a non-default AWS-KMS key, or if you are using an
7746	// Encryption:Mode of aes-cbc-pkcs7, aes-ctr, or aes-gcm.
7747	AwsKmsKeyArn *string `type:"string"`
7748
7749	// The optional ContentConfig object specifies information about the Amazon
7750	// S3 bucket in which you want Elastic Transcoder to save transcoded files and
7751	// playlists: which bucket to use, which users you want to have access to the
7752	// files, the type of access you want users to have, and the storage class that
7753	// you want to assign to the files.
7754	//
7755	// If you specify values for ContentConfig, you must also specify values for
7756	// ThumbnailConfig.
7757	//
7758	// If you specify values for ContentConfig and ThumbnailConfig, omit the OutputBucket
7759	// object.
7760	//
7761	//    * Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to
7762	//    save transcoded files and playlists.
7763	//
7764	//    * Permissions (Optional): The Permissions object specifies which users
7765	//    you want to have access to transcoded files and the type of access you
7766	//    want them to have. You can grant permissions to a maximum of 30 users
7767	//    and/or predefined Amazon S3 groups.
7768	//
7769	//    * Grantee Type: Specify the type of value that appears in the Grantee
7770	//    object: Canonical: The value in the Grantee object is either the canonical
7771	//    user ID for an AWS account or an origin access identity for an Amazon
7772	//    CloudFront distribution. For more information about canonical user IDs,
7773	//    see Access Control List (ACL) Overview in the Amazon Simple Storage Service
7774	//    Developer Guide. For more information about using CloudFront origin access
7775	//    identities to require that users use CloudFront URLs instead of Amazon
7776	//    S3 URLs, see Using an Origin Access Identity to Restrict Access to Your
7777	//    Amazon S3 Content. A canonical user ID is not the same as an AWS account
7778	//    number. Email: The value in the Grantee object is the registered email
7779	//    address of an AWS account. Group: The value in the Grantee object is one
7780	//    of the following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers,
7781	//    or LogDelivery.
7782	//
7783	//    * Grantee: The AWS user or group that you want to have access to transcoded
7784	//    files and playlists. To identify the user or group, you can specify the
7785	//    canonical user ID for an AWS account, an origin access identity for a
7786	//    CloudFront distribution, the registered email address of an AWS account,
7787	//    or a predefined Amazon S3 group
7788	//
7789	//    * Access: The permission that you want to give to the AWS user that you
7790	//    specified in Grantee. Permissions are granted on the files that Elastic
7791	//    Transcoder adds to the bucket, including playlists and video files. Valid
7792	//    values include: READ: The grantee can read the objects and metadata for
7793	//    objects that Elastic Transcoder adds to the Amazon S3 bucket. READ_ACP:
7794	//    The grantee can read the object ACL for objects that Elastic Transcoder
7795	//    adds to the Amazon S3 bucket. WRITE_ACP: The grantee can write the ACL
7796	//    for the objects that Elastic Transcoder adds to the Amazon S3 bucket.
7797	//    FULL_CONTROL: The grantee has READ, READ_ACP, and WRITE_ACP permissions
7798	//    for the objects that Elastic Transcoder adds to the Amazon S3 bucket.
7799	//
7800	//    * StorageClass: The Amazon S3 storage class, Standard or ReducedRedundancy,
7801	//    that you want Elastic Transcoder to assign to the video files and playlists
7802	//    that it stores in your Amazon S3 bucket.
7803	ContentConfig *PipelineOutputConfig `type:"structure"`
7804
7805	// The ID of the pipeline that you want to update.
7806	//
7807	// Id is a required field
7808	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
7809
7810	// The Amazon S3 bucket in which you saved the media files that you want to
7811	// transcode and the graphics that you want to use as watermarks.
7812	InputBucket *string `type:"string"`
7813
7814	// The name of the pipeline. We recommend that the name be unique within the
7815	// AWS account, but uniqueness is not enforced.
7816	//
7817	// Constraints: Maximum 40 characters
7818	Name *string `min:"1" type:"string"`
7819
7820	// The topic ARN for the Amazon Simple Notification Service (Amazon SNS) topic
7821	// that you want to notify to report job status.
7822	//
7823	// To receive notifications, you must also subscribe to the new topic in the
7824	// Amazon SNS console.
7825	//
7826	//    * Progressing: The topic ARN for the Amazon Simple Notification Service
7827	//    (Amazon SNS) topic that you want to notify when Elastic Transcoder has
7828	//    started to process jobs that are added to this pipeline. This is the ARN
7829	//    that Amazon SNS returned when you created the topic.
7830	//
7831	//    * Complete: The topic ARN for the Amazon SNS topic that you want to notify
7832	//    when Elastic Transcoder has finished processing a job. This is the ARN
7833	//    that Amazon SNS returned when you created the topic.
7834	//
7835	//    * Warning: The topic ARN for the Amazon SNS topic that you want to notify
7836	//    when Elastic Transcoder encounters a warning condition. This is the ARN
7837	//    that Amazon SNS returned when you created the topic.
7838	//
7839	//    * Error: The topic ARN for the Amazon SNS topic that you want to notify
7840	//    when Elastic Transcoder encounters an error condition. This is the ARN
7841	//    that Amazon SNS returned when you created the topic.
7842	Notifications *Notifications `type:"structure"`
7843
7844	// The IAM Amazon Resource Name (ARN) for the role that you want Elastic Transcoder
7845	// to use to transcode jobs for this pipeline.
7846	Role *string `type:"string"`
7847
7848	// The ThumbnailConfig object specifies several values, including the Amazon
7849	// S3 bucket in which you want Elastic Transcoder to save thumbnail files, which
7850	// users you want to have access to the files, the type of access you want users
7851	// to have, and the storage class that you want to assign to the files.
7852	//
7853	// If you specify values for ContentConfig, you must also specify values for
7854	// ThumbnailConfig even if you don't want to create thumbnails.
7855	//
7856	// If you specify values for ContentConfig and ThumbnailConfig, omit the OutputBucket
7857	// object.
7858	//
7859	//    * Bucket: The Amazon S3 bucket in which you want Elastic Transcoder to
7860	//    save thumbnail files.
7861	//
7862	//    * Permissions (Optional): The Permissions object specifies which users
7863	//    and/or predefined Amazon S3 groups you want to have access to thumbnail
7864	//    files, and the type of access you want them to have. You can grant permissions
7865	//    to a maximum of 30 users and/or predefined Amazon S3 groups.
7866	//
7867	//    * GranteeType: Specify the type of value that appears in the Grantee object:
7868	//    Canonical: The value in the Grantee object is either the canonical user
7869	//    ID for an AWS account or an origin access identity for an Amazon CloudFront
7870	//    distribution. A canonical user ID is not the same as an AWS account number.
7871	//    Email: The value in the Grantee object is the registered email address
7872	//    of an AWS account. Group: The value in the Grantee object is one of the
7873	//    following predefined Amazon S3 groups: AllUsers, AuthenticatedUsers, or
7874	//    LogDelivery.
7875	//
7876	//    * Grantee: The AWS user or group that you want to have access to thumbnail
7877	//    files. To identify the user or group, you can specify the canonical user
7878	//    ID for an AWS account, an origin access identity for a CloudFront distribution,
7879	//    the registered email address of an AWS account, or a predefined Amazon
7880	//    S3 group.
7881	//
7882	//    * Access: The permission that you want to give to the AWS user that you
7883	//    specified in Grantee. Permissions are granted on the thumbnail files that
7884	//    Elastic Transcoder adds to the bucket. Valid values include: READ: The
7885	//    grantee can read the thumbnails and metadata for objects that Elastic
7886	//    Transcoder adds to the Amazon S3 bucket. READ_ACP: The grantee can read
7887	//    the object ACL for thumbnails that Elastic Transcoder adds to the Amazon
7888	//    S3 bucket. WRITE_ACP: The grantee can write the ACL for the thumbnails
7889	//    that Elastic Transcoder adds to the Amazon S3 bucket. FULL_CONTROL: The
7890	//    grantee has READ, READ_ACP, and WRITE_ACP permissions for the thumbnails
7891	//    that Elastic Transcoder adds to the Amazon S3 bucket.
7892	//
7893	//    * StorageClass: The Amazon S3 storage class, Standard or ReducedRedundancy,
7894	//    that you want Elastic Transcoder to assign to the thumbnails that it stores
7895	//    in your Amazon S3 bucket.
7896	ThumbnailConfig *PipelineOutputConfig `type:"structure"`
7897}
7898
7899// String returns the string representation.
7900//
7901// API parameter values that are decorated as "sensitive" in the API will not
7902// be included in the string output. The member name will be present, but the
7903// value will be replaced with "sensitive".
7904func (s UpdatePipelineInput) String() string {
7905	return awsutil.Prettify(s)
7906}
7907
7908// GoString returns the string representation.
7909//
7910// API parameter values that are decorated as "sensitive" in the API will not
7911// be included in the string output. The member name will be present, but the
7912// value will be replaced with "sensitive".
7913func (s UpdatePipelineInput) GoString() string {
7914	return s.String()
7915}
7916
7917// Validate inspects the fields of the type to determine if they are valid.
7918func (s *UpdatePipelineInput) Validate() error {
7919	invalidParams := request.ErrInvalidParams{Context: "UpdatePipelineInput"}
7920	if s.Id == nil {
7921		invalidParams.Add(request.NewErrParamRequired("Id"))
7922	}
7923	if s.Id != nil && len(*s.Id) < 1 {
7924		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
7925	}
7926	if s.Name != nil && len(*s.Name) < 1 {
7927		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
7928	}
7929	if s.ContentConfig != nil {
7930		if err := s.ContentConfig.Validate(); err != nil {
7931			invalidParams.AddNested("ContentConfig", err.(request.ErrInvalidParams))
7932		}
7933	}
7934	if s.ThumbnailConfig != nil {
7935		if err := s.ThumbnailConfig.Validate(); err != nil {
7936			invalidParams.AddNested("ThumbnailConfig", err.(request.ErrInvalidParams))
7937		}
7938	}
7939
7940	if invalidParams.Len() > 0 {
7941		return invalidParams
7942	}
7943	return nil
7944}
7945
7946// SetAwsKmsKeyArn sets the AwsKmsKeyArn field's value.
7947func (s *UpdatePipelineInput) SetAwsKmsKeyArn(v string) *UpdatePipelineInput {
7948	s.AwsKmsKeyArn = &v
7949	return s
7950}
7951
7952// SetContentConfig sets the ContentConfig field's value.
7953func (s *UpdatePipelineInput) SetContentConfig(v *PipelineOutputConfig) *UpdatePipelineInput {
7954	s.ContentConfig = v
7955	return s
7956}
7957
7958// SetId sets the Id field's value.
7959func (s *UpdatePipelineInput) SetId(v string) *UpdatePipelineInput {
7960	s.Id = &v
7961	return s
7962}
7963
7964// SetInputBucket sets the InputBucket field's value.
7965func (s *UpdatePipelineInput) SetInputBucket(v string) *UpdatePipelineInput {
7966	s.InputBucket = &v
7967	return s
7968}
7969
7970// SetName sets the Name field's value.
7971func (s *UpdatePipelineInput) SetName(v string) *UpdatePipelineInput {
7972	s.Name = &v
7973	return s
7974}
7975
7976// SetNotifications sets the Notifications field's value.
7977func (s *UpdatePipelineInput) SetNotifications(v *Notifications) *UpdatePipelineInput {
7978	s.Notifications = v
7979	return s
7980}
7981
7982// SetRole sets the Role field's value.
7983func (s *UpdatePipelineInput) SetRole(v string) *UpdatePipelineInput {
7984	s.Role = &v
7985	return s
7986}
7987
7988// SetThumbnailConfig sets the ThumbnailConfig field's value.
7989func (s *UpdatePipelineInput) SetThumbnailConfig(v *PipelineOutputConfig) *UpdatePipelineInput {
7990	s.ThumbnailConfig = v
7991	return s
7992}
7993
7994// The UpdatePipelineNotificationsRequest structure.
7995type UpdatePipelineNotificationsInput struct {
7996	_ struct{} `type:"structure"`
7997
7998	// The identifier of the pipeline for which you want to change notification
7999	// settings.
8000	//
8001	// Id is a required field
8002	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
8003
8004	// The topic ARN for the Amazon Simple Notification Service (Amazon SNS) topic
8005	// that you want to notify to report job status.
8006	//
8007	// To receive notifications, you must also subscribe to the new topic in the
8008	// Amazon SNS console.
8009	//
8010	//    * Progressing: The topic ARN for the Amazon Simple Notification Service
8011	//    (Amazon SNS) topic that you want to notify when Elastic Transcoder has
8012	//    started to process jobs that are added to this pipeline. This is the ARN
8013	//    that Amazon SNS returned when you created the topic.
8014	//
8015	//    * Complete: The topic ARN for the Amazon SNS topic that you want to notify
8016	//    when Elastic Transcoder has finished processing a job. This is the ARN
8017	//    that Amazon SNS returned when you created the topic.
8018	//
8019	//    * Warning: The topic ARN for the Amazon SNS topic that you want to notify
8020	//    when Elastic Transcoder encounters a warning condition. This is the ARN
8021	//    that Amazon SNS returned when you created the topic.
8022	//
8023	//    * Error: The topic ARN for the Amazon SNS topic that you want to notify
8024	//    when Elastic Transcoder encounters an error condition. This is the ARN
8025	//    that Amazon SNS returned when you created the topic.
8026	//
8027	// Notifications is a required field
8028	Notifications *Notifications `type:"structure" required:"true"`
8029}
8030
8031// String returns the string representation.
8032//
8033// API parameter values that are decorated as "sensitive" in the API will not
8034// be included in the string output. The member name will be present, but the
8035// value will be replaced with "sensitive".
8036func (s UpdatePipelineNotificationsInput) String() string {
8037	return awsutil.Prettify(s)
8038}
8039
8040// GoString returns the string representation.
8041//
8042// API parameter values that are decorated as "sensitive" in the API will not
8043// be included in the string output. The member name will be present, but the
8044// value will be replaced with "sensitive".
8045func (s UpdatePipelineNotificationsInput) GoString() string {
8046	return s.String()
8047}
8048
8049// Validate inspects the fields of the type to determine if they are valid.
8050func (s *UpdatePipelineNotificationsInput) Validate() error {
8051	invalidParams := request.ErrInvalidParams{Context: "UpdatePipelineNotificationsInput"}
8052	if s.Id == nil {
8053		invalidParams.Add(request.NewErrParamRequired("Id"))
8054	}
8055	if s.Id != nil && len(*s.Id) < 1 {
8056		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8057	}
8058	if s.Notifications == nil {
8059		invalidParams.Add(request.NewErrParamRequired("Notifications"))
8060	}
8061
8062	if invalidParams.Len() > 0 {
8063		return invalidParams
8064	}
8065	return nil
8066}
8067
8068// SetId sets the Id field's value.
8069func (s *UpdatePipelineNotificationsInput) SetId(v string) *UpdatePipelineNotificationsInput {
8070	s.Id = &v
8071	return s
8072}
8073
8074// SetNotifications sets the Notifications field's value.
8075func (s *UpdatePipelineNotificationsInput) SetNotifications(v *Notifications) *UpdatePipelineNotificationsInput {
8076	s.Notifications = v
8077	return s
8078}
8079
8080// The UpdatePipelineNotificationsResponse structure.
8081type UpdatePipelineNotificationsOutput struct {
8082	_ struct{} `type:"structure"`
8083
8084	// A section of the response body that provides information about the pipeline
8085	// associated with this notification.
8086	Pipeline *Pipeline `type:"structure"`
8087}
8088
8089// String returns the string representation.
8090//
8091// API parameter values that are decorated as "sensitive" in the API will not
8092// be included in the string output. The member name will be present, but the
8093// value will be replaced with "sensitive".
8094func (s UpdatePipelineNotificationsOutput) String() string {
8095	return awsutil.Prettify(s)
8096}
8097
8098// GoString returns the string representation.
8099//
8100// API parameter values that are decorated as "sensitive" in the API will not
8101// be included in the string output. The member name will be present, but the
8102// value will be replaced with "sensitive".
8103func (s UpdatePipelineNotificationsOutput) GoString() string {
8104	return s.String()
8105}
8106
8107// SetPipeline sets the Pipeline field's value.
8108func (s *UpdatePipelineNotificationsOutput) SetPipeline(v *Pipeline) *UpdatePipelineNotificationsOutput {
8109	s.Pipeline = v
8110	return s
8111}
8112
8113// When you update a pipeline, Elastic Transcoder returns the values that you
8114// specified in the request.
8115type UpdatePipelineOutput struct {
8116	_ struct{} `type:"structure"`
8117
8118	// The pipeline updated by this UpdatePipelineResponse call.
8119	Pipeline *Pipeline `type:"structure"`
8120
8121	// Elastic Transcoder returns a warning if the resources used by your pipeline
8122	// are not in the same region as the pipeline.
8123	//
8124	// Using resources in the same region, such as your Amazon S3 buckets, Amazon
8125	// SNS notification topics, and AWS KMS key, reduces processing time and prevents
8126	// cross-regional charges.
8127	Warnings []*Warning `type:"list"`
8128}
8129
8130// String returns the string representation.
8131//
8132// API parameter values that are decorated as "sensitive" in the API will not
8133// be included in the string output. The member name will be present, but the
8134// value will be replaced with "sensitive".
8135func (s UpdatePipelineOutput) String() string {
8136	return awsutil.Prettify(s)
8137}
8138
8139// GoString returns the string representation.
8140//
8141// API parameter values that are decorated as "sensitive" in the API will not
8142// be included in the string output. The member name will be present, but the
8143// value will be replaced with "sensitive".
8144func (s UpdatePipelineOutput) GoString() string {
8145	return s.String()
8146}
8147
8148// SetPipeline sets the Pipeline field's value.
8149func (s *UpdatePipelineOutput) SetPipeline(v *Pipeline) *UpdatePipelineOutput {
8150	s.Pipeline = v
8151	return s
8152}
8153
8154// SetWarnings sets the Warnings field's value.
8155func (s *UpdatePipelineOutput) SetWarnings(v []*Warning) *UpdatePipelineOutput {
8156	s.Warnings = v
8157	return s
8158}
8159
8160// The UpdatePipelineStatusRequest structure.
8161type UpdatePipelineStatusInput struct {
8162	_ struct{} `type:"structure"`
8163
8164	// The identifier of the pipeline to update.
8165	//
8166	// Id is a required field
8167	Id *string `location:"uri" locationName:"Id" type:"string" required:"true"`
8168
8169	// The desired status of the pipeline:
8170	//
8171	//    * Active: The pipeline is processing jobs.
8172	//
8173	//    * Paused: The pipeline is not currently processing jobs.
8174	//
8175	// Status is a required field
8176	Status *string `type:"string" required:"true"`
8177}
8178
8179// String returns the string representation.
8180//
8181// API parameter values that are decorated as "sensitive" in the API will not
8182// be included in the string output. The member name will be present, but the
8183// value will be replaced with "sensitive".
8184func (s UpdatePipelineStatusInput) String() string {
8185	return awsutil.Prettify(s)
8186}
8187
8188// GoString returns the string representation.
8189//
8190// API parameter values that are decorated as "sensitive" in the API will not
8191// be included in the string output. The member name will be present, but the
8192// value will be replaced with "sensitive".
8193func (s UpdatePipelineStatusInput) GoString() string {
8194	return s.String()
8195}
8196
8197// Validate inspects the fields of the type to determine if they are valid.
8198func (s *UpdatePipelineStatusInput) Validate() error {
8199	invalidParams := request.ErrInvalidParams{Context: "UpdatePipelineStatusInput"}
8200	if s.Id == nil {
8201		invalidParams.Add(request.NewErrParamRequired("Id"))
8202	}
8203	if s.Id != nil && len(*s.Id) < 1 {
8204		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
8205	}
8206	if s.Status == nil {
8207		invalidParams.Add(request.NewErrParamRequired("Status"))
8208	}
8209
8210	if invalidParams.Len() > 0 {
8211		return invalidParams
8212	}
8213	return nil
8214}
8215
8216// SetId sets the Id field's value.
8217func (s *UpdatePipelineStatusInput) SetId(v string) *UpdatePipelineStatusInput {
8218	s.Id = &v
8219	return s
8220}
8221
8222// SetStatus sets the Status field's value.
8223func (s *UpdatePipelineStatusInput) SetStatus(v string) *UpdatePipelineStatusInput {
8224	s.Status = &v
8225	return s
8226}
8227
8228// When you update status for a pipeline, Elastic Transcoder returns the values
8229// that you specified in the request.
8230type UpdatePipelineStatusOutput struct {
8231	_ struct{} `type:"structure"`
8232
8233	// A section of the response body that provides information about the pipeline.
8234	Pipeline *Pipeline `type:"structure"`
8235}
8236
8237// String returns the string representation.
8238//
8239// API parameter values that are decorated as "sensitive" in the API will not
8240// be included in the string output. The member name will be present, but the
8241// value will be replaced with "sensitive".
8242func (s UpdatePipelineStatusOutput) String() string {
8243	return awsutil.Prettify(s)
8244}
8245
8246// GoString returns the string representation.
8247//
8248// API parameter values that are decorated as "sensitive" in the API will not
8249// be included in the string output. The member name will be present, but the
8250// value will be replaced with "sensitive".
8251func (s UpdatePipelineStatusOutput) GoString() string {
8252	return s.String()
8253}
8254
8255// SetPipeline sets the Pipeline field's value.
8256func (s *UpdatePipelineStatusOutput) SetPipeline(v *Pipeline) *UpdatePipelineStatusOutput {
8257	s.Pipeline = v
8258	return s
8259}
8260
8261// One or more required parameter values were not provided in the request.
8262type ValidationException struct {
8263	_            struct{}                  `type:"structure"`
8264	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8265
8266	Message_ *string `locationName:"message" type:"string"`
8267}
8268
8269// String returns the string representation.
8270//
8271// API parameter values that are decorated as "sensitive" in the API will not
8272// be included in the string output. The member name will be present, but the
8273// value will be replaced with "sensitive".
8274func (s ValidationException) String() string {
8275	return awsutil.Prettify(s)
8276}
8277
8278// GoString returns the string representation.
8279//
8280// API parameter values that are decorated as "sensitive" in the API will not
8281// be included in the string output. The member name will be present, but the
8282// value will be replaced with "sensitive".
8283func (s ValidationException) GoString() string {
8284	return s.String()
8285}
8286
8287func newErrorValidationException(v protocol.ResponseMetadata) error {
8288	return &ValidationException{
8289		RespMetadata: v,
8290	}
8291}
8292
8293// Code returns the exception type name.
8294func (s *ValidationException) Code() string {
8295	return "ValidationException"
8296}
8297
8298// Message returns the exception's message.
8299func (s *ValidationException) Message() string {
8300	if s.Message_ != nil {
8301		return *s.Message_
8302	}
8303	return ""
8304}
8305
8306// OrigErr always returns nil, satisfies awserr.Error interface.
8307func (s *ValidationException) OrigErr() error {
8308	return nil
8309}
8310
8311func (s *ValidationException) Error() string {
8312	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8313}
8314
8315// Status code returns the HTTP status code for the request's response error.
8316func (s *ValidationException) StatusCode() int {
8317	return s.RespMetadata.StatusCode
8318}
8319
8320// RequestID returns the service's response RequestID for request.
8321func (s *ValidationException) RequestID() string {
8322	return s.RespMetadata.RequestID
8323}
8324
8325// The VideoParameters structure.
8326type VideoParameters struct {
8327	_ struct{} `type:"structure"`
8328
8329	//
8330	// To better control resolution and aspect ratio of output videos, we recommend
8331	// that you use the values MaxWidth, MaxHeight, SizingPolicy, PaddingPolicy,
8332	// and DisplayAspectRatio instead of Resolution and AspectRatio. The two groups
8333	// of settings are mutually exclusive. Do not use them together.
8334	//
8335	// The display aspect ratio of the video in the output file. Valid values include:
8336	//
8337	// auto, 1:1, 4:3, 3:2, 16:9
8338	//
8339	// If you specify auto, Elastic Transcoder tries to preserve the aspect ratio
8340	// of the input file.
8341	//
8342	// If you specify an aspect ratio for the output file that differs from aspect
8343	// ratio of the input file, Elastic Transcoder adds pillarboxing (black bars
8344	// on the sides) or letterboxing (black bars on the top and bottom) to maintain
8345	// the aspect ratio of the active region of the video.
8346	AspectRatio *string `type:"string"`
8347
8348	// The bit rate of the video stream in the output file, in kilobits/second.
8349	// Valid values depend on the values of Level and Profile. If you specify auto,
8350	// Elastic Transcoder uses the detected bit rate of the input source. If you
8351	// specify a value other than auto, we recommend that you specify a value less
8352	// than or equal to the maximum H.264-compliant value listed for your level
8353	// and profile:
8354	//
8355	// Level - Maximum video bit rate in kilobits/second (baseline and main Profile)
8356	// : maximum video bit rate in kilobits/second (high Profile)
8357	//
8358	//    * 1 - 64 : 80
8359	//
8360	//    * 1b - 128 : 160
8361	//
8362	//    * 1.1 - 192 : 240
8363	//
8364	//    * 1.2 - 384 : 480
8365	//
8366	//    * 1.3 - 768 : 960
8367	//
8368	//    * 2 - 2000 : 2500
8369	//
8370	//    * 3 - 10000 : 12500
8371	//
8372	//    * 3.1 - 14000 : 17500
8373	//
8374	//    * 3.2 - 20000 : 25000
8375	//
8376	//    * 4 - 20000 : 25000
8377	//
8378	//    * 4.1 - 50000 : 62500
8379	BitRate *string `type:"string"`
8380
8381	// The video codec for the output file. Valid values include gif, H.264, mpeg2,
8382	// vp8, and vp9. You can only specify vp8 and vp9 when the container type is
8383	// webm, gif when the container type is gif, and mpeg2 when the container type
8384	// is mpg.
8385	Codec *string `type:"string"`
8386
8387	// Profile (H.264/VP8/VP9 Only)
8388	//
8389	// The H.264 profile that you want to use for the output file. Elastic Transcoder
8390	// supports the following profiles:
8391	//
8392	//    * baseline: The profile most commonly used for videoconferencing and for
8393	//    mobile applications.
8394	//
8395	//    * main: The profile used for standard-definition digital TV broadcasts.
8396	//
8397	//    * high: The profile used for high-definition digital TV broadcasts and
8398	//    for Blu-ray discs.
8399	//
8400	// Level (H.264 Only)
8401	//
8402	// The H.264 level that you want to use for the output file. Elastic Transcoder
8403	// supports the following levels:
8404	//
8405	// 1, 1b, 1.1, 1.2, 1.3, 2, 2.1, 2.2, 3, 3.1, 3.2, 4, 4.1
8406	//
8407	// MaxReferenceFrames (H.264 Only)
8408	//
8409	// Applicable only when the value of Video:Codec is H.264. The maximum number
8410	// of previously decoded frames to use as a reference for decoding future frames.
8411	// Valid values are integers 0 through 16, but we recommend that you not use
8412	// a value greater than the following:
8413	//
8414	// Min(Floor(Maximum decoded picture buffer in macroblocks * 256 / (Width in
8415	// pixels * Height in pixels)), 16)
8416	//
8417	// where Width in pixels and Height in pixels represent either MaxWidth and
8418	// MaxHeight, or Resolution. Maximum decoded picture buffer in macroblocks depends
8419	// on the value of the Level object. See the list below. (A macroblock is a
8420	// block of pixels measuring 16x16.)
8421	//
8422	//    * 1 - 396
8423	//
8424	//    * 1b - 396
8425	//
8426	//    * 1.1 - 900
8427	//
8428	//    * 1.2 - 2376
8429	//
8430	//    * 1.3 - 2376
8431	//
8432	//    * 2 - 2376
8433	//
8434	//    * 2.1 - 4752
8435	//
8436	//    * 2.2 - 8100
8437	//
8438	//    * 3 - 8100
8439	//
8440	//    * 3.1 - 18000
8441	//
8442	//    * 3.2 - 20480
8443	//
8444	//    * 4 - 32768
8445	//
8446	//    * 4.1 - 32768
8447	//
8448	// MaxBitRate (Optional, H.264/MPEG2/VP8/VP9 only)
8449	//
8450	// The maximum number of bits per second in a video buffer; the size of the
8451	// buffer is specified by BufferSize. Specify a value between 16 and 62,500.
8452	// You can reduce the bandwidth required to stream a video by reducing the maximum
8453	// bit rate, but this also reduces the quality of the video.
8454	//
8455	// BufferSize (Optional, H.264/MPEG2/VP8/VP9 only)
8456	//
8457	// The maximum number of bits in any x seconds of the output video. This window
8458	// is commonly 10 seconds, the standard segment duration when you're using FMP4
8459	// or MPEG-TS for the container type of the output video. Specify an integer
8460	// greater than 0. If you specify MaxBitRate and omit BufferSize, Elastic Transcoder
8461	// sets BufferSize to 10 times the value of MaxBitRate.
8462	//
8463	// InterlacedMode (Optional, H.264/MPEG2 Only)
8464	//
8465	// The interlace mode for the output video.
8466	//
8467	// Interlaced video is used to double the perceived frame rate for a video by
8468	// interlacing two fields (one field on every other line, the other field on
8469	// the other lines) so that the human eye registers multiple pictures per frame.
8470	// Interlacing reduces the bandwidth required for transmitting a video, but
8471	// can result in blurred images and flickering.
8472	//
8473	// Valid values include Progressive (no interlacing, top to bottom), TopFirst
8474	// (top field first), BottomFirst (bottom field first), and Auto.
8475	//
8476	// If InterlaceMode is not specified, Elastic Transcoder uses Progressive for
8477	// the output. If Auto is specified, Elastic Transcoder interlaces the output.
8478	//
8479	// ColorSpaceConversionMode (Optional, H.264/MPEG2 Only)
8480	//
8481	// The color space conversion Elastic Transcoder applies to the output video.
8482	// Color spaces are the algorithms used by the computer to store information
8483	// about how to render color. Bt.601 is the standard for standard definition
8484	// video, while Bt.709 is the standard for high definition video.
8485	//
8486	// Valid values include None, Bt709toBt601, Bt601toBt709, and Auto.
8487	//
8488	// If you chose Auto for ColorSpaceConversionMode and your output is interlaced,
8489	// your frame rate is one of 23.97, 24, 25, 29.97, 50, or 60, your SegmentDuration
8490	// is null, and you are using one of the resolution changes from the list below,
8491	// Elastic Transcoder applies the following color space conversions:
8492	//
8493	//    * Standard to HD, 720x480 to 1920x1080 - Elastic Transcoder applies Bt601ToBt709
8494	//
8495	//    * Standard to HD, 720x576 to 1920x1080 - Elastic Transcoder applies Bt601ToBt709
8496	//
8497	//    * HD to Standard, 1920x1080 to 720x480 - Elastic Transcoder applies Bt709ToBt601
8498	//
8499	//    * HD to Standard, 1920x1080 to 720x576 - Elastic Transcoder applies Bt709ToBt601
8500	//
8501	// Elastic Transcoder may change the behavior of the ColorspaceConversionMode
8502	// Auto mode in the future. All outputs in a playlist must use the same ColorSpaceConversionMode.
8503	//
8504	// If you do not specify a ColorSpaceConversionMode, Elastic Transcoder does
8505	// not change the color space of a file. If you are unsure what ColorSpaceConversionMode
8506	// was applied to your output file, you can check the AppliedColorSpaceConversion
8507	// parameter included in your job response. If your job does not have an AppliedColorSpaceConversion
8508	// in its response, no ColorSpaceConversionMode was applied.
8509	//
8510	// ChromaSubsampling
8511	//
8512	// The sampling pattern for the chroma (color) channels of the output video.
8513	// Valid values include yuv420p and yuv422p.
8514	//
8515	// yuv420p samples the chroma information of every other horizontal and every
8516	// other vertical line, yuv422p samples the color information of every horizontal
8517	// line and every other vertical line.
8518	//
8519	// LoopCount (Gif Only)
8520	//
8521	// The number of times you want the output gif to loop. Valid values include
8522	// Infinite and integers between 0 and 100, inclusive.
8523	CodecOptions map[string]*string `type:"map"`
8524
8525	// The value that Elastic Transcoder adds to the metadata in the output file.
8526	DisplayAspectRatio *string `type:"string"`
8527
8528	// Applicable only when the value of Video:Codec is one of H.264, MPEG2, or
8529	// VP8.
8530	//
8531	// Whether to use a fixed value for FixedGOP. Valid values are true and false:
8532	//
8533	//    * true: Elastic Transcoder uses the value of KeyframesMaxDist for the
8534	//    distance between key frames (the number of frames in a group of pictures,
8535	//    or GOP).
8536	//
8537	//    * false: The distance between key frames can vary.
8538	//
8539	// FixedGOP must be set to true for fmp4 containers.
8540	FixedGOP *string `type:"string"`
8541
8542	// The frames per second for the video stream in the output file. Valid values
8543	// include:
8544	//
8545	// auto, 10, 15, 23.97, 24, 25, 29.97, 30, 60
8546	//
8547	// If you specify auto, Elastic Transcoder uses the detected frame rate of the
8548	// input source. If you specify a frame rate, we recommend that you perform
8549	// the following calculation:
8550	//
8551	// Frame rate = maximum recommended decoding speed in luma samples/second /
8552	// (width in pixels * height in pixels)
8553	//
8554	// where:
8555	//
8556	//    * width in pixels and height in pixels represent the Resolution of the
8557	//    output video.
8558	//
8559	//    * maximum recommended decoding speed in Luma samples/second is less than
8560	//    or equal to the maximum value listed in the following table, based on
8561	//    the value that you specified for Level.
8562	//
8563	// The maximum recommended decoding speed in Luma samples/second for each level
8564	// is described in the following list (Level - Decoding speed):
8565	//
8566	//    * 1 - 380160
8567	//
8568	//    * 1b - 380160
8569	//
8570	//    * 1.1 - 76800
8571	//
8572	//    * 1.2 - 1536000
8573	//
8574	//    * 1.3 - 3041280
8575	//
8576	//    * 2 - 3041280
8577	//
8578	//    * 2.1 - 5068800
8579	//
8580	//    * 2.2 - 5184000
8581	//
8582	//    * 3 - 10368000
8583	//
8584	//    * 3.1 - 27648000
8585	//
8586	//    * 3.2 - 55296000
8587	//
8588	//    * 4 - 62914560
8589	//
8590	//    * 4.1 - 62914560
8591	FrameRate *string `type:"string"`
8592
8593	// Applicable only when the value of Video:Codec is one of H.264, MPEG2, or
8594	// VP8.
8595	//
8596	// The maximum number of frames between key frames. Key frames are fully encoded
8597	// frames; the frames between key frames are encoded based, in part, on the
8598	// content of the key frames. The value is an integer formatted as a string;
8599	// valid values are between 1 (every frame is a key frame) and 100000, inclusive.
8600	// A higher value results in higher compression but may also discernibly decrease
8601	// video quality.
8602	//
8603	// For Smooth outputs, the FrameRate must have a constant ratio to the KeyframesMaxDist.
8604	// This allows Smooth playlists to switch between different quality levels while
8605	// the file is being played.
8606	//
8607	// For example, an input file can have a FrameRate of 30 with a KeyframesMaxDist
8608	// of 90. The output file then needs to have a ratio of 1:3. Valid outputs would
8609	// have FrameRate of 30, 25, and 10, and KeyframesMaxDist of 90, 75, and 30,
8610	// respectively.
8611	//
8612	// Alternately, this can be achieved by setting FrameRate to auto and having
8613	// the same values for MaxFrameRate and KeyframesMaxDist.
8614	KeyframesMaxDist *string `type:"string"`
8615
8616	// If you specify auto for FrameRate, Elastic Transcoder uses the frame rate
8617	// of the input video for the frame rate of the output video. Specify the maximum
8618	// frame rate that you want Elastic Transcoder to use when the frame rate of
8619	// the input video is greater than the desired maximum frame rate of the output
8620	// video. Valid values include: 10, 15, 23.97, 24, 25, 29.97, 30, 60.
8621	MaxFrameRate *string `type:"string"`
8622
8623	// The maximum height of the output video in pixels. If you specify auto, Elastic
8624	// Transcoder uses 1080 (Full HD) as the default value. If you specify a numeric
8625	// value, enter an even integer between 96 and 3072.
8626	MaxHeight *string `type:"string"`
8627
8628	// The maximum width of the output video in pixels. If you specify auto, Elastic
8629	// Transcoder uses 1920 (Full HD) as the default value. If you specify a numeric
8630	// value, enter an even integer between 128 and 4096.
8631	MaxWidth *string `type:"string"`
8632
8633	// When you set PaddingPolicy to Pad, Elastic Transcoder may add black bars
8634	// to the top and bottom and/or left and right sides of the output video to
8635	// make the total size of the output video match the values that you specified
8636	// for MaxWidth and MaxHeight.
8637	PaddingPolicy *string `type:"string"`
8638
8639	//
8640	// To better control resolution and aspect ratio of output videos, we recommend
8641	// that you use the values MaxWidth, MaxHeight, SizingPolicy, PaddingPolicy,
8642	// and DisplayAspectRatio instead of Resolution and AspectRatio. The two groups
8643	// of settings are mutually exclusive. Do not use them together.
8644	//
8645	// The width and height of the video in the output file, in pixels. Valid values
8646	// are auto and width x height:
8647	//
8648	//    * auto: Elastic Transcoder attempts to preserve the width and height of
8649	//    the input file, subject to the following rules.
8650	//
8651	//    * width x height : The width and height of the output video in pixels.
8652	//
8653	// Note the following about specifying the width and height:
8654	//
8655	//    * The width must be an even integer between 128 and 4096, inclusive.
8656	//
8657	//    * The height must be an even integer between 96 and 3072, inclusive.
8658	//
8659	//    * If you specify a resolution that is less than the resolution of the
8660	//    input file, Elastic Transcoder rescales the output file to the lower resolution.
8661	//
8662	//    * If you specify a resolution that is greater than the resolution of the
8663	//    input file, Elastic Transcoder rescales the output to the higher resolution.
8664	//
8665	//    * We recommend that you specify a resolution for which the product of
8666	//    width and height is less than or equal to the applicable value in the
8667	//    following list (List - Max width x height value): 1 - 25344 1b - 25344
8668	//    1.1 - 101376 1.2 - 101376 1.3 - 101376 2 - 101376 2.1 - 202752 2.2 - 404720
8669	//    3 - 404720 3.1 - 921600 3.2 - 1310720 4 - 2097152 4.1 - 2097152
8670	Resolution *string `type:"string"`
8671
8672	// Specify one of the following values to control scaling of the output video:
8673	//
8674	//    * Fit: Elastic Transcoder scales the output video so it matches the value
8675	//    that you specified in either MaxWidth or MaxHeight without exceeding the
8676	//    other value.
8677	//
8678	//    * Fill: Elastic Transcoder scales the output video so it matches the value
8679	//    that you specified in either MaxWidth or MaxHeight and matches or exceeds
8680	//    the other value. Elastic Transcoder centers the output video and then
8681	//    crops it in the dimension (if any) that exceeds the maximum value.
8682	//
8683	//    * Stretch: Elastic Transcoder stretches the output video to match the
8684	//    values that you specified for MaxWidth and MaxHeight. If the relative
8685	//    proportions of the input video and the output video are different, the
8686	//    output video will be distorted.
8687	//
8688	//    * Keep: Elastic Transcoder does not scale the output video. If either
8689	//    dimension of the input video exceeds the values that you specified for
8690	//    MaxWidth and MaxHeight, Elastic Transcoder crops the output video.
8691	//
8692	//    * ShrinkToFit: Elastic Transcoder scales the output video down so that
8693	//    its dimensions match the values that you specified for at least one of
8694	//    MaxWidth and MaxHeight without exceeding either value. If you specify
8695	//    this option, Elastic Transcoder does not scale the video up.
8696	//
8697	//    * ShrinkToFill: Elastic Transcoder scales the output video down so that
8698	//    its dimensions match the values that you specified for at least one of
8699	//    MaxWidth and MaxHeight without dropping below either value. If you specify
8700	//    this option, Elastic Transcoder does not scale the video up.
8701	SizingPolicy *string `type:"string"`
8702
8703	// Settings for the size, location, and opacity of graphics that you want Elastic
8704	// Transcoder to overlay over videos that are transcoded using this preset.
8705	// You can specify settings for up to four watermarks. Watermarks appear in
8706	// the specified size and location, and with the specified opacity for the duration
8707	// of the transcoded video.
8708	//
8709	// Watermarks can be in .png or .jpg format. If you want to display a watermark
8710	// that is not rectangular, use the .png format, which supports transparency.
8711	//
8712	// When you create a job that uses this preset, you specify the .png or .jpg
8713	// graphics that you want Elastic Transcoder to include in the transcoded videos.
8714	// You can specify fewer graphics in the job than you specify watermark settings
8715	// in the preset, which allows you to use the same preset for up to four watermarks
8716	// that have different dimensions.
8717	Watermarks []*PresetWatermark `type:"list"`
8718}
8719
8720// String returns the string representation.
8721//
8722// API parameter values that are decorated as "sensitive" in the API will not
8723// be included in the string output. The member name will be present, but the
8724// value will be replaced with "sensitive".
8725func (s VideoParameters) String() string {
8726	return awsutil.Prettify(s)
8727}
8728
8729// GoString returns the string representation.
8730//
8731// API parameter values that are decorated as "sensitive" in the API will not
8732// be included in the string output. The member name will be present, but the
8733// value will be replaced with "sensitive".
8734func (s VideoParameters) GoString() string {
8735	return s.String()
8736}
8737
8738// Validate inspects the fields of the type to determine if they are valid.
8739func (s *VideoParameters) Validate() error {
8740	invalidParams := request.ErrInvalidParams{Context: "VideoParameters"}
8741	if s.Watermarks != nil {
8742		for i, v := range s.Watermarks {
8743			if v == nil {
8744				continue
8745			}
8746			if err := v.Validate(); err != nil {
8747				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Watermarks", i), err.(request.ErrInvalidParams))
8748			}
8749		}
8750	}
8751
8752	if invalidParams.Len() > 0 {
8753		return invalidParams
8754	}
8755	return nil
8756}
8757
8758// SetAspectRatio sets the AspectRatio field's value.
8759func (s *VideoParameters) SetAspectRatio(v string) *VideoParameters {
8760	s.AspectRatio = &v
8761	return s
8762}
8763
8764// SetBitRate sets the BitRate field's value.
8765func (s *VideoParameters) SetBitRate(v string) *VideoParameters {
8766	s.BitRate = &v
8767	return s
8768}
8769
8770// SetCodec sets the Codec field's value.
8771func (s *VideoParameters) SetCodec(v string) *VideoParameters {
8772	s.Codec = &v
8773	return s
8774}
8775
8776// SetCodecOptions sets the CodecOptions field's value.
8777func (s *VideoParameters) SetCodecOptions(v map[string]*string) *VideoParameters {
8778	s.CodecOptions = v
8779	return s
8780}
8781
8782// SetDisplayAspectRatio sets the DisplayAspectRatio field's value.
8783func (s *VideoParameters) SetDisplayAspectRatio(v string) *VideoParameters {
8784	s.DisplayAspectRatio = &v
8785	return s
8786}
8787
8788// SetFixedGOP sets the FixedGOP field's value.
8789func (s *VideoParameters) SetFixedGOP(v string) *VideoParameters {
8790	s.FixedGOP = &v
8791	return s
8792}
8793
8794// SetFrameRate sets the FrameRate field's value.
8795func (s *VideoParameters) SetFrameRate(v string) *VideoParameters {
8796	s.FrameRate = &v
8797	return s
8798}
8799
8800// SetKeyframesMaxDist sets the KeyframesMaxDist field's value.
8801func (s *VideoParameters) SetKeyframesMaxDist(v string) *VideoParameters {
8802	s.KeyframesMaxDist = &v
8803	return s
8804}
8805
8806// SetMaxFrameRate sets the MaxFrameRate field's value.
8807func (s *VideoParameters) SetMaxFrameRate(v string) *VideoParameters {
8808	s.MaxFrameRate = &v
8809	return s
8810}
8811
8812// SetMaxHeight sets the MaxHeight field's value.
8813func (s *VideoParameters) SetMaxHeight(v string) *VideoParameters {
8814	s.MaxHeight = &v
8815	return s
8816}
8817
8818// SetMaxWidth sets the MaxWidth field's value.
8819func (s *VideoParameters) SetMaxWidth(v string) *VideoParameters {
8820	s.MaxWidth = &v
8821	return s
8822}
8823
8824// SetPaddingPolicy sets the PaddingPolicy field's value.
8825func (s *VideoParameters) SetPaddingPolicy(v string) *VideoParameters {
8826	s.PaddingPolicy = &v
8827	return s
8828}
8829
8830// SetResolution sets the Resolution field's value.
8831func (s *VideoParameters) SetResolution(v string) *VideoParameters {
8832	s.Resolution = &v
8833	return s
8834}
8835
8836// SetSizingPolicy sets the SizingPolicy field's value.
8837func (s *VideoParameters) SetSizingPolicy(v string) *VideoParameters {
8838	s.SizingPolicy = &v
8839	return s
8840}
8841
8842// SetWatermarks sets the Watermarks field's value.
8843func (s *VideoParameters) SetWatermarks(v []*PresetWatermark) *VideoParameters {
8844	s.Watermarks = v
8845	return s
8846}
8847
8848// Elastic Transcoder returns a warning if the resources used by your pipeline
8849// are not in the same region as the pipeline.
8850//
8851// Using resources in the same region, such as your Amazon S3 buckets, Amazon
8852// SNS notification topics, and AWS KMS key, reduces processing time and prevents
8853// cross-regional charges.
8854type Warning struct {
8855	_ struct{} `type:"structure"`
8856
8857	// The code of the cross-regional warning.
8858	Code *string `type:"string"`
8859
8860	// The message explaining what resources are in a different region from the
8861	// pipeline.
8862	//
8863	// AWS KMS keys must be in the same region as the pipeline.
8864	Message *string `type:"string"`
8865}
8866
8867// String returns the string representation.
8868//
8869// API parameter values that are decorated as "sensitive" in the API will not
8870// be included in the string output. The member name will be present, but the
8871// value will be replaced with "sensitive".
8872func (s Warning) String() string {
8873	return awsutil.Prettify(s)
8874}
8875
8876// GoString returns the string representation.
8877//
8878// API parameter values that are decorated as "sensitive" in the API will not
8879// be included in the string output. The member name will be present, but the
8880// value will be replaced with "sensitive".
8881func (s Warning) GoString() string {
8882	return s.String()
8883}
8884
8885// SetCode sets the Code field's value.
8886func (s *Warning) SetCode(v string) *Warning {
8887	s.Code = &v
8888	return s
8889}
8890
8891// SetMessage sets the Message field's value.
8892func (s *Warning) SetMessage(v string) *Warning {
8893	s.Message = &v
8894	return s
8895}
8896