1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package mediaconnect
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 opAddFlowMediaStreams = "AddFlowMediaStreams"
16
17// AddFlowMediaStreamsRequest generates a "aws/request.Request" representing the
18// client's request for the AddFlowMediaStreams 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 AddFlowMediaStreams for more information on using the AddFlowMediaStreams
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 AddFlowMediaStreamsRequest method.
33//    req, resp := client.AddFlowMediaStreamsRequest(params)
34//
35//    err := req.Send()
36//    if err == nil { // resp is now filled
37//        fmt.Println(resp)
38//    }
39//
40// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/AddFlowMediaStreams
41func (c *MediaConnect) AddFlowMediaStreamsRequest(input *AddFlowMediaStreamsInput) (req *request.Request, output *AddFlowMediaStreamsOutput) {
42	op := &request.Operation{
43		Name:       opAddFlowMediaStreams,
44		HTTPMethod: "POST",
45		HTTPPath:   "/v1/flows/{flowArn}/mediaStreams",
46	}
47
48	if input == nil {
49		input = &AddFlowMediaStreamsInput{}
50	}
51
52	output = &AddFlowMediaStreamsOutput{}
53	req = c.newRequest(op, input, output)
54	return
55}
56
57// AddFlowMediaStreams API operation for AWS MediaConnect.
58//
59// Adds media streams to an existing flow. After you add a media stream to a
60// flow, you can associate it with a source and/or an output that uses the ST
61// 2110 JPEG XS or CDI protocol.
62//
63// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
64// with awserr.Error's Code and Message methods to get detailed information about
65// the error.
66//
67// See the AWS API reference guide for AWS MediaConnect's
68// API operation AddFlowMediaStreams for usage and error information.
69//
70// Returned Error Types:
71//   * BadRequestException
72//   Exception raised by AWS Elemental MediaConnect. See the error message and
73//   documentation for the operation for more information on the cause of this
74//   exception.
75//
76//   * InternalServerErrorException
77//   Exception raised by AWS Elemental MediaConnect. See the error message and
78//   documentation for the operation for more information on the cause of this
79//   exception.
80//
81//   * ForbiddenException
82//   Exception raised by AWS Elemental MediaConnect. See the error message and
83//   documentation for the operation for more information on the cause of this
84//   exception.
85//
86//   * NotFoundException
87//   Exception raised by AWS Elemental MediaConnect. See the error message and
88//   documentation for the operation for more information on the cause of this
89//   exception.
90//
91//   * ServiceUnavailableException
92//   Exception raised by AWS Elemental MediaConnect. See the error message and
93//   documentation for the operation for more information on the cause of this
94//   exception.
95//
96//   * TooManyRequestsException
97//   Exception raised by AWS Elemental MediaConnect. See the error message and
98//   documentation for the operation for more information on the cause of this
99//   exception.
100//
101// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/AddFlowMediaStreams
102func (c *MediaConnect) AddFlowMediaStreams(input *AddFlowMediaStreamsInput) (*AddFlowMediaStreamsOutput, error) {
103	req, out := c.AddFlowMediaStreamsRequest(input)
104	return out, req.Send()
105}
106
107// AddFlowMediaStreamsWithContext is the same as AddFlowMediaStreams with the addition of
108// the ability to pass a context and additional request options.
109//
110// See AddFlowMediaStreams for details on how to use this API operation.
111//
112// The context must be non-nil and will be used for request cancellation. If
113// the context is nil a panic will occur. In the future the SDK may create
114// sub-contexts for http.Requests. See https://golang.org/pkg/context/
115// for more information on using Contexts.
116func (c *MediaConnect) AddFlowMediaStreamsWithContext(ctx aws.Context, input *AddFlowMediaStreamsInput, opts ...request.Option) (*AddFlowMediaStreamsOutput, error) {
117	req, out := c.AddFlowMediaStreamsRequest(input)
118	req.SetContext(ctx)
119	req.ApplyOptions(opts...)
120	return out, req.Send()
121}
122
123const opAddFlowOutputs = "AddFlowOutputs"
124
125// AddFlowOutputsRequest generates a "aws/request.Request" representing the
126// client's request for the AddFlowOutputs operation. The "output" return
127// value will be populated with the request's response once the request completes
128// successfully.
129//
130// Use "Send" method on the returned Request to send the API call to the service.
131// the "output" return value is not valid until after Send returns without error.
132//
133// See AddFlowOutputs for more information on using the AddFlowOutputs
134// API call, and error handling.
135//
136// This method is useful when you want to inject custom logic or configuration
137// into the SDK's request lifecycle. Such as custom headers, or retry logic.
138//
139//
140//    // Example sending a request using the AddFlowOutputsRequest method.
141//    req, resp := client.AddFlowOutputsRequest(params)
142//
143//    err := req.Send()
144//    if err == nil { // resp is now filled
145//        fmt.Println(resp)
146//    }
147//
148// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/AddFlowOutputs
149func (c *MediaConnect) AddFlowOutputsRequest(input *AddFlowOutputsInput) (req *request.Request, output *AddFlowOutputsOutput) {
150	op := &request.Operation{
151		Name:       opAddFlowOutputs,
152		HTTPMethod: "POST",
153		HTTPPath:   "/v1/flows/{flowArn}/outputs",
154	}
155
156	if input == nil {
157		input = &AddFlowOutputsInput{}
158	}
159
160	output = &AddFlowOutputsOutput{}
161	req = c.newRequest(op, input, output)
162	return
163}
164
165// AddFlowOutputs API operation for AWS MediaConnect.
166//
167// Adds outputs to an existing flow. You can create up to 50 outputs per flow.
168//
169// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
170// with awserr.Error's Code and Message methods to get detailed information about
171// the error.
172//
173// See the AWS API reference guide for AWS MediaConnect's
174// API operation AddFlowOutputs for usage and error information.
175//
176// Returned Error Types:
177//   * AddFlowOutputs420Exception
178//   Exception raised by AWS Elemental MediaConnect. See the error message and
179//   documentation for the operation for more information on the cause of this
180//   exception.
181//
182//   * BadRequestException
183//   Exception raised by AWS Elemental MediaConnect. See the error message and
184//   documentation for the operation for more information on the cause of this
185//   exception.
186//
187//   * InternalServerErrorException
188//   Exception raised by AWS Elemental MediaConnect. See the error message and
189//   documentation for the operation for more information on the cause of this
190//   exception.
191//
192//   * ForbiddenException
193//   Exception raised by AWS Elemental MediaConnect. See the error message and
194//   documentation for the operation for more information on the cause of this
195//   exception.
196//
197//   * NotFoundException
198//   Exception raised by AWS Elemental MediaConnect. See the error message and
199//   documentation for the operation for more information on the cause of this
200//   exception.
201//
202//   * ServiceUnavailableException
203//   Exception raised by AWS Elemental MediaConnect. See the error message and
204//   documentation for the operation for more information on the cause of this
205//   exception.
206//
207//   * TooManyRequestsException
208//   Exception raised by AWS Elemental MediaConnect. See the error message and
209//   documentation for the operation for more information on the cause of this
210//   exception.
211//
212// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/AddFlowOutputs
213func (c *MediaConnect) AddFlowOutputs(input *AddFlowOutputsInput) (*AddFlowOutputsOutput, error) {
214	req, out := c.AddFlowOutputsRequest(input)
215	return out, req.Send()
216}
217
218// AddFlowOutputsWithContext is the same as AddFlowOutputs with the addition of
219// the ability to pass a context and additional request options.
220//
221// See AddFlowOutputs for details on how to use this API operation.
222//
223// The context must be non-nil and will be used for request cancellation. If
224// the context is nil a panic will occur. In the future the SDK may create
225// sub-contexts for http.Requests. See https://golang.org/pkg/context/
226// for more information on using Contexts.
227func (c *MediaConnect) AddFlowOutputsWithContext(ctx aws.Context, input *AddFlowOutputsInput, opts ...request.Option) (*AddFlowOutputsOutput, error) {
228	req, out := c.AddFlowOutputsRequest(input)
229	req.SetContext(ctx)
230	req.ApplyOptions(opts...)
231	return out, req.Send()
232}
233
234const opAddFlowSources = "AddFlowSources"
235
236// AddFlowSourcesRequest generates a "aws/request.Request" representing the
237// client's request for the AddFlowSources operation. The "output" return
238// value will be populated with the request's response once the request completes
239// successfully.
240//
241// Use "Send" method on the returned Request to send the API call to the service.
242// the "output" return value is not valid until after Send returns without error.
243//
244// See AddFlowSources for more information on using the AddFlowSources
245// API call, and error handling.
246//
247// This method is useful when you want to inject custom logic or configuration
248// into the SDK's request lifecycle. Such as custom headers, or retry logic.
249//
250//
251//    // Example sending a request using the AddFlowSourcesRequest method.
252//    req, resp := client.AddFlowSourcesRequest(params)
253//
254//    err := req.Send()
255//    if err == nil { // resp is now filled
256//        fmt.Println(resp)
257//    }
258//
259// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/AddFlowSources
260func (c *MediaConnect) AddFlowSourcesRequest(input *AddFlowSourcesInput) (req *request.Request, output *AddFlowSourcesOutput) {
261	op := &request.Operation{
262		Name:       opAddFlowSources,
263		HTTPMethod: "POST",
264		HTTPPath:   "/v1/flows/{flowArn}/source",
265	}
266
267	if input == nil {
268		input = &AddFlowSourcesInput{}
269	}
270
271	output = &AddFlowSourcesOutput{}
272	req = c.newRequest(op, input, output)
273	return
274}
275
276// AddFlowSources API operation for AWS MediaConnect.
277//
278// Adds Sources to flow
279//
280// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
281// with awserr.Error's Code and Message methods to get detailed information about
282// the error.
283//
284// See the AWS API reference guide for AWS MediaConnect's
285// API operation AddFlowSources for usage and error information.
286//
287// Returned Error Types:
288//   * BadRequestException
289//   Exception raised by AWS Elemental MediaConnect. See the error message and
290//   documentation for the operation for more information on the cause of this
291//   exception.
292//
293//   * InternalServerErrorException
294//   Exception raised by AWS Elemental MediaConnect. See the error message and
295//   documentation for the operation for more information on the cause of this
296//   exception.
297//
298//   * ForbiddenException
299//   Exception raised by AWS Elemental MediaConnect. See the error message and
300//   documentation for the operation for more information on the cause of this
301//   exception.
302//
303//   * NotFoundException
304//   Exception raised by AWS Elemental MediaConnect. See the error message and
305//   documentation for the operation for more information on the cause of this
306//   exception.
307//
308//   * ServiceUnavailableException
309//   Exception raised by AWS Elemental MediaConnect. See the error message and
310//   documentation for the operation for more information on the cause of this
311//   exception.
312//
313//   * TooManyRequestsException
314//   Exception raised by AWS Elemental MediaConnect. See the error message and
315//   documentation for the operation for more information on the cause of this
316//   exception.
317//
318// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/AddFlowSources
319func (c *MediaConnect) AddFlowSources(input *AddFlowSourcesInput) (*AddFlowSourcesOutput, error) {
320	req, out := c.AddFlowSourcesRequest(input)
321	return out, req.Send()
322}
323
324// AddFlowSourcesWithContext is the same as AddFlowSources with the addition of
325// the ability to pass a context and additional request options.
326//
327// See AddFlowSources for details on how to use this API operation.
328//
329// The context must be non-nil and will be used for request cancellation. If
330// the context is nil a panic will occur. In the future the SDK may create
331// sub-contexts for http.Requests. See https://golang.org/pkg/context/
332// for more information on using Contexts.
333func (c *MediaConnect) AddFlowSourcesWithContext(ctx aws.Context, input *AddFlowSourcesInput, opts ...request.Option) (*AddFlowSourcesOutput, error) {
334	req, out := c.AddFlowSourcesRequest(input)
335	req.SetContext(ctx)
336	req.ApplyOptions(opts...)
337	return out, req.Send()
338}
339
340const opAddFlowVpcInterfaces = "AddFlowVpcInterfaces"
341
342// AddFlowVpcInterfacesRequest generates a "aws/request.Request" representing the
343// client's request for the AddFlowVpcInterfaces operation. The "output" return
344// value will be populated with the request's response once the request completes
345// successfully.
346//
347// Use "Send" method on the returned Request to send the API call to the service.
348// the "output" return value is not valid until after Send returns without error.
349//
350// See AddFlowVpcInterfaces for more information on using the AddFlowVpcInterfaces
351// API call, and error handling.
352//
353// This method is useful when you want to inject custom logic or configuration
354// into the SDK's request lifecycle. Such as custom headers, or retry logic.
355//
356//
357//    // Example sending a request using the AddFlowVpcInterfacesRequest method.
358//    req, resp := client.AddFlowVpcInterfacesRequest(params)
359//
360//    err := req.Send()
361//    if err == nil { // resp is now filled
362//        fmt.Println(resp)
363//    }
364//
365// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/AddFlowVpcInterfaces
366func (c *MediaConnect) AddFlowVpcInterfacesRequest(input *AddFlowVpcInterfacesInput) (req *request.Request, output *AddFlowVpcInterfacesOutput) {
367	op := &request.Operation{
368		Name:       opAddFlowVpcInterfaces,
369		HTTPMethod: "POST",
370		HTTPPath:   "/v1/flows/{flowArn}/vpcInterfaces",
371	}
372
373	if input == nil {
374		input = &AddFlowVpcInterfacesInput{}
375	}
376
377	output = &AddFlowVpcInterfacesOutput{}
378	req = c.newRequest(op, input, output)
379	return
380}
381
382// AddFlowVpcInterfaces API operation for AWS MediaConnect.
383//
384// Adds VPC interfaces to flow
385//
386// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
387// with awserr.Error's Code and Message methods to get detailed information about
388// the error.
389//
390// See the AWS API reference guide for AWS MediaConnect's
391// API operation AddFlowVpcInterfaces for usage and error information.
392//
393// Returned Error Types:
394//   * BadRequestException
395//   Exception raised by AWS Elemental MediaConnect. See the error message and
396//   documentation for the operation for more information on the cause of this
397//   exception.
398//
399//   * InternalServerErrorException
400//   Exception raised by AWS Elemental MediaConnect. See the error message and
401//   documentation for the operation for more information on the cause of this
402//   exception.
403//
404//   * ForbiddenException
405//   Exception raised by AWS Elemental MediaConnect. See the error message and
406//   documentation for the operation for more information on the cause of this
407//   exception.
408//
409//   * NotFoundException
410//   Exception raised by AWS Elemental MediaConnect. See the error message and
411//   documentation for the operation for more information on the cause of this
412//   exception.
413//
414//   * ServiceUnavailableException
415//   Exception raised by AWS Elemental MediaConnect. See the error message and
416//   documentation for the operation for more information on the cause of this
417//   exception.
418//
419//   * TooManyRequestsException
420//   Exception raised by AWS Elemental MediaConnect. See the error message and
421//   documentation for the operation for more information on the cause of this
422//   exception.
423//
424// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/AddFlowVpcInterfaces
425func (c *MediaConnect) AddFlowVpcInterfaces(input *AddFlowVpcInterfacesInput) (*AddFlowVpcInterfacesOutput, error) {
426	req, out := c.AddFlowVpcInterfacesRequest(input)
427	return out, req.Send()
428}
429
430// AddFlowVpcInterfacesWithContext is the same as AddFlowVpcInterfaces with the addition of
431// the ability to pass a context and additional request options.
432//
433// See AddFlowVpcInterfaces for details on how to use this API operation.
434//
435// The context must be non-nil and will be used for request cancellation. If
436// the context is nil a panic will occur. In the future the SDK may create
437// sub-contexts for http.Requests. See https://golang.org/pkg/context/
438// for more information on using Contexts.
439func (c *MediaConnect) AddFlowVpcInterfacesWithContext(ctx aws.Context, input *AddFlowVpcInterfacesInput, opts ...request.Option) (*AddFlowVpcInterfacesOutput, error) {
440	req, out := c.AddFlowVpcInterfacesRequest(input)
441	req.SetContext(ctx)
442	req.ApplyOptions(opts...)
443	return out, req.Send()
444}
445
446const opCreateFlow = "CreateFlow"
447
448// CreateFlowRequest generates a "aws/request.Request" representing the
449// client's request for the CreateFlow operation. The "output" return
450// value will be populated with the request's response once the request completes
451// successfully.
452//
453// Use "Send" method on the returned Request to send the API call to the service.
454// the "output" return value is not valid until after Send returns without error.
455//
456// See CreateFlow for more information on using the CreateFlow
457// API call, and error handling.
458//
459// This method is useful when you want to inject custom logic or configuration
460// into the SDK's request lifecycle. Such as custom headers, or retry logic.
461//
462//
463//    // Example sending a request using the CreateFlowRequest method.
464//    req, resp := client.CreateFlowRequest(params)
465//
466//    err := req.Send()
467//    if err == nil { // resp is now filled
468//        fmt.Println(resp)
469//    }
470//
471// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/CreateFlow
472func (c *MediaConnect) CreateFlowRequest(input *CreateFlowInput) (req *request.Request, output *CreateFlowOutput) {
473	op := &request.Operation{
474		Name:       opCreateFlow,
475		HTTPMethod: "POST",
476		HTTPPath:   "/v1/flows",
477	}
478
479	if input == nil {
480		input = &CreateFlowInput{}
481	}
482
483	output = &CreateFlowOutput{}
484	req = c.newRequest(op, input, output)
485	return
486}
487
488// CreateFlow API operation for AWS MediaConnect.
489//
490// Creates a new flow. The request must include one source. The request optionally
491// can include outputs (up to 50) and entitlements (up to 50).
492//
493// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
494// with awserr.Error's Code and Message methods to get detailed information about
495// the error.
496//
497// See the AWS API reference guide for AWS MediaConnect's
498// API operation CreateFlow for usage and error information.
499//
500// Returned Error Types:
501//   * CreateFlow420Exception
502//   Exception raised by AWS Elemental MediaConnect. See the error message and
503//   documentation for the operation for more information on the cause of this
504//   exception.
505//
506//   * BadRequestException
507//   Exception raised by AWS Elemental MediaConnect. See the error message and
508//   documentation for the operation for more information on the cause of this
509//   exception.
510//
511//   * InternalServerErrorException
512//   Exception raised by AWS Elemental MediaConnect. See the error message and
513//   documentation for the operation for more information on the cause of this
514//   exception.
515//
516//   * ForbiddenException
517//   Exception raised by AWS Elemental MediaConnect. See the error message and
518//   documentation for the operation for more information on the cause of this
519//   exception.
520//
521//   * ServiceUnavailableException
522//   Exception raised by AWS Elemental MediaConnect. See the error message and
523//   documentation for the operation for more information on the cause of this
524//   exception.
525//
526//   * TooManyRequestsException
527//   Exception raised by AWS Elemental MediaConnect. See the error message and
528//   documentation for the operation for more information on the cause of this
529//   exception.
530//
531// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/CreateFlow
532func (c *MediaConnect) CreateFlow(input *CreateFlowInput) (*CreateFlowOutput, error) {
533	req, out := c.CreateFlowRequest(input)
534	return out, req.Send()
535}
536
537// CreateFlowWithContext is the same as CreateFlow with the addition of
538// the ability to pass a context and additional request options.
539//
540// See CreateFlow for details on how to use this API operation.
541//
542// The context must be non-nil and will be used for request cancellation. If
543// the context is nil a panic will occur. In the future the SDK may create
544// sub-contexts for http.Requests. See https://golang.org/pkg/context/
545// for more information on using Contexts.
546func (c *MediaConnect) CreateFlowWithContext(ctx aws.Context, input *CreateFlowInput, opts ...request.Option) (*CreateFlowOutput, error) {
547	req, out := c.CreateFlowRequest(input)
548	req.SetContext(ctx)
549	req.ApplyOptions(opts...)
550	return out, req.Send()
551}
552
553const opDeleteFlow = "DeleteFlow"
554
555// DeleteFlowRequest generates a "aws/request.Request" representing the
556// client's request for the DeleteFlow operation. The "output" return
557// value will be populated with the request's response once the request completes
558// successfully.
559//
560// Use "Send" method on the returned Request to send the API call to the service.
561// the "output" return value is not valid until after Send returns without error.
562//
563// See DeleteFlow for more information on using the DeleteFlow
564// API call, and error handling.
565//
566// This method is useful when you want to inject custom logic or configuration
567// into the SDK's request lifecycle. Such as custom headers, or retry logic.
568//
569//
570//    // Example sending a request using the DeleteFlowRequest method.
571//    req, resp := client.DeleteFlowRequest(params)
572//
573//    err := req.Send()
574//    if err == nil { // resp is now filled
575//        fmt.Println(resp)
576//    }
577//
578// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/DeleteFlow
579func (c *MediaConnect) DeleteFlowRequest(input *DeleteFlowInput) (req *request.Request, output *DeleteFlowOutput) {
580	op := &request.Operation{
581		Name:       opDeleteFlow,
582		HTTPMethod: "DELETE",
583		HTTPPath:   "/v1/flows/{flowArn}",
584	}
585
586	if input == nil {
587		input = &DeleteFlowInput{}
588	}
589
590	output = &DeleteFlowOutput{}
591	req = c.newRequest(op, input, output)
592	return
593}
594
595// DeleteFlow API operation for AWS MediaConnect.
596//
597// Deletes a flow. Before you can delete a flow, you must stop the flow.
598//
599// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
600// with awserr.Error's Code and Message methods to get detailed information about
601// the error.
602//
603// See the AWS API reference guide for AWS MediaConnect's
604// API operation DeleteFlow for usage and error information.
605//
606// Returned Error Types:
607//   * BadRequestException
608//   Exception raised by AWS Elemental MediaConnect. See the error message and
609//   documentation for the operation for more information on the cause of this
610//   exception.
611//
612//   * InternalServerErrorException
613//   Exception raised by AWS Elemental MediaConnect. See the error message and
614//   documentation for the operation for more information on the cause of this
615//   exception.
616//
617//   * ForbiddenException
618//   Exception raised by AWS Elemental MediaConnect. See the error message and
619//   documentation for the operation for more information on the cause of this
620//   exception.
621//
622//   * NotFoundException
623//   Exception raised by AWS Elemental MediaConnect. See the error message and
624//   documentation for the operation for more information on the cause of this
625//   exception.
626//
627//   * ServiceUnavailableException
628//   Exception raised by AWS Elemental MediaConnect. See the error message and
629//   documentation for the operation for more information on the cause of this
630//   exception.
631//
632//   * TooManyRequestsException
633//   Exception raised by AWS Elemental MediaConnect. See the error message and
634//   documentation for the operation for more information on the cause of this
635//   exception.
636//
637// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/DeleteFlow
638func (c *MediaConnect) DeleteFlow(input *DeleteFlowInput) (*DeleteFlowOutput, error) {
639	req, out := c.DeleteFlowRequest(input)
640	return out, req.Send()
641}
642
643// DeleteFlowWithContext is the same as DeleteFlow with the addition of
644// the ability to pass a context and additional request options.
645//
646// See DeleteFlow for details on how to use this API operation.
647//
648// The context must be non-nil and will be used for request cancellation. If
649// the context is nil a panic will occur. In the future the SDK may create
650// sub-contexts for http.Requests. See https://golang.org/pkg/context/
651// for more information on using Contexts.
652func (c *MediaConnect) DeleteFlowWithContext(ctx aws.Context, input *DeleteFlowInput, opts ...request.Option) (*DeleteFlowOutput, error) {
653	req, out := c.DeleteFlowRequest(input)
654	req.SetContext(ctx)
655	req.ApplyOptions(opts...)
656	return out, req.Send()
657}
658
659const opDescribeFlow = "DescribeFlow"
660
661// DescribeFlowRequest generates a "aws/request.Request" representing the
662// client's request for the DescribeFlow operation. The "output" return
663// value will be populated with the request's response once the request completes
664// successfully.
665//
666// Use "Send" method on the returned Request to send the API call to the service.
667// the "output" return value is not valid until after Send returns without error.
668//
669// See DescribeFlow for more information on using the DescribeFlow
670// API call, and error handling.
671//
672// This method is useful when you want to inject custom logic or configuration
673// into the SDK's request lifecycle. Such as custom headers, or retry logic.
674//
675//
676//    // Example sending a request using the DescribeFlowRequest method.
677//    req, resp := client.DescribeFlowRequest(params)
678//
679//    err := req.Send()
680//    if err == nil { // resp is now filled
681//        fmt.Println(resp)
682//    }
683//
684// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/DescribeFlow
685func (c *MediaConnect) DescribeFlowRequest(input *DescribeFlowInput) (req *request.Request, output *DescribeFlowOutput) {
686	op := &request.Operation{
687		Name:       opDescribeFlow,
688		HTTPMethod: "GET",
689		HTTPPath:   "/v1/flows/{flowArn}",
690	}
691
692	if input == nil {
693		input = &DescribeFlowInput{}
694	}
695
696	output = &DescribeFlowOutput{}
697	req = c.newRequest(op, input, output)
698	return
699}
700
701// DescribeFlow API operation for AWS MediaConnect.
702//
703// Displays the details of a flow. The response includes the flow ARN, name,
704// and Availability Zone, as well as details about the source, outputs, and
705// entitlements.
706//
707// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
708// with awserr.Error's Code and Message methods to get detailed information about
709// the error.
710//
711// See the AWS API reference guide for AWS MediaConnect's
712// API operation DescribeFlow for usage and error information.
713//
714// Returned Error Types:
715//   * BadRequestException
716//   Exception raised by AWS Elemental MediaConnect. See the error message and
717//   documentation for the operation for more information on the cause of this
718//   exception.
719//
720//   * InternalServerErrorException
721//   Exception raised by AWS Elemental MediaConnect. See the error message and
722//   documentation for the operation for more information on the cause of this
723//   exception.
724//
725//   * ForbiddenException
726//   Exception raised by AWS Elemental MediaConnect. See the error message and
727//   documentation for the operation for more information on the cause of this
728//   exception.
729//
730//   * NotFoundException
731//   Exception raised by AWS Elemental MediaConnect. See the error message and
732//   documentation for the operation for more information on the cause of this
733//   exception.
734//
735//   * ServiceUnavailableException
736//   Exception raised by AWS Elemental MediaConnect. See the error message and
737//   documentation for the operation for more information on the cause of this
738//   exception.
739//
740//   * TooManyRequestsException
741//   Exception raised by AWS Elemental MediaConnect. See the error message and
742//   documentation for the operation for more information on the cause of this
743//   exception.
744//
745// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/DescribeFlow
746func (c *MediaConnect) DescribeFlow(input *DescribeFlowInput) (*DescribeFlowOutput, error) {
747	req, out := c.DescribeFlowRequest(input)
748	return out, req.Send()
749}
750
751// DescribeFlowWithContext is the same as DescribeFlow with the addition of
752// the ability to pass a context and additional request options.
753//
754// See DescribeFlow for details on how to use this API operation.
755//
756// The context must be non-nil and will be used for request cancellation. If
757// the context is nil a panic will occur. In the future the SDK may create
758// sub-contexts for http.Requests. See https://golang.org/pkg/context/
759// for more information on using Contexts.
760func (c *MediaConnect) DescribeFlowWithContext(ctx aws.Context, input *DescribeFlowInput, opts ...request.Option) (*DescribeFlowOutput, error) {
761	req, out := c.DescribeFlowRequest(input)
762	req.SetContext(ctx)
763	req.ApplyOptions(opts...)
764	return out, req.Send()
765}
766
767const opDescribeOffering = "DescribeOffering"
768
769// DescribeOfferingRequest generates a "aws/request.Request" representing the
770// client's request for the DescribeOffering operation. The "output" return
771// value will be populated with the request's response once the request completes
772// successfully.
773//
774// Use "Send" method on the returned Request to send the API call to the service.
775// the "output" return value is not valid until after Send returns without error.
776//
777// See DescribeOffering for more information on using the DescribeOffering
778// API call, and error handling.
779//
780// This method is useful when you want to inject custom logic or configuration
781// into the SDK's request lifecycle. Such as custom headers, or retry logic.
782//
783//
784//    // Example sending a request using the DescribeOfferingRequest method.
785//    req, resp := client.DescribeOfferingRequest(params)
786//
787//    err := req.Send()
788//    if err == nil { // resp is now filled
789//        fmt.Println(resp)
790//    }
791//
792// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/DescribeOffering
793func (c *MediaConnect) DescribeOfferingRequest(input *DescribeOfferingInput) (req *request.Request, output *DescribeOfferingOutput) {
794	op := &request.Operation{
795		Name:       opDescribeOffering,
796		HTTPMethod: "GET",
797		HTTPPath:   "/v1/offerings/{offeringArn}",
798	}
799
800	if input == nil {
801		input = &DescribeOfferingInput{}
802	}
803
804	output = &DescribeOfferingOutput{}
805	req = c.newRequest(op, input, output)
806	return
807}
808
809// DescribeOffering API operation for AWS MediaConnect.
810//
811// Displays the details of an offering. The response includes the offering description,
812// duration, outbound bandwidth, price, and Amazon Resource Name (ARN).
813//
814// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
815// with awserr.Error's Code and Message methods to get detailed information about
816// the error.
817//
818// See the AWS API reference guide for AWS MediaConnect's
819// API operation DescribeOffering for usage and error information.
820//
821// Returned Error Types:
822//   * NotFoundException
823//   Exception raised by AWS Elemental MediaConnect. See the error message and
824//   documentation for the operation for more information on the cause of this
825//   exception.
826//
827//   * ServiceUnavailableException
828//   Exception raised by AWS Elemental MediaConnect. See the error message and
829//   documentation for the operation for more information on the cause of this
830//   exception.
831//
832//   * TooManyRequestsException
833//   Exception raised by AWS Elemental MediaConnect. See the error message and
834//   documentation for the operation for more information on the cause of this
835//   exception.
836//
837//   * BadRequestException
838//   Exception raised by AWS Elemental MediaConnect. See the error message and
839//   documentation for the operation for more information on the cause of this
840//   exception.
841//
842//   * InternalServerErrorException
843//   Exception raised by AWS Elemental MediaConnect. See the error message and
844//   documentation for the operation for more information on the cause of this
845//   exception.
846//
847// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/DescribeOffering
848func (c *MediaConnect) DescribeOffering(input *DescribeOfferingInput) (*DescribeOfferingOutput, error) {
849	req, out := c.DescribeOfferingRequest(input)
850	return out, req.Send()
851}
852
853// DescribeOfferingWithContext is the same as DescribeOffering with the addition of
854// the ability to pass a context and additional request options.
855//
856// See DescribeOffering for details on how to use this API operation.
857//
858// The context must be non-nil and will be used for request cancellation. If
859// the context is nil a panic will occur. In the future the SDK may create
860// sub-contexts for http.Requests. See https://golang.org/pkg/context/
861// for more information on using Contexts.
862func (c *MediaConnect) DescribeOfferingWithContext(ctx aws.Context, input *DescribeOfferingInput, opts ...request.Option) (*DescribeOfferingOutput, error) {
863	req, out := c.DescribeOfferingRequest(input)
864	req.SetContext(ctx)
865	req.ApplyOptions(opts...)
866	return out, req.Send()
867}
868
869const opDescribeReservation = "DescribeReservation"
870
871// DescribeReservationRequest generates a "aws/request.Request" representing the
872// client's request for the DescribeReservation operation. The "output" return
873// value will be populated with the request's response once the request completes
874// successfully.
875//
876// Use "Send" method on the returned Request to send the API call to the service.
877// the "output" return value is not valid until after Send returns without error.
878//
879// See DescribeReservation for more information on using the DescribeReservation
880// API call, and error handling.
881//
882// This method is useful when you want to inject custom logic or configuration
883// into the SDK's request lifecycle. Such as custom headers, or retry logic.
884//
885//
886//    // Example sending a request using the DescribeReservationRequest method.
887//    req, resp := client.DescribeReservationRequest(params)
888//
889//    err := req.Send()
890//    if err == nil { // resp is now filled
891//        fmt.Println(resp)
892//    }
893//
894// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/DescribeReservation
895func (c *MediaConnect) DescribeReservationRequest(input *DescribeReservationInput) (req *request.Request, output *DescribeReservationOutput) {
896	op := &request.Operation{
897		Name:       opDescribeReservation,
898		HTTPMethod: "GET",
899		HTTPPath:   "/v1/reservations/{reservationArn}",
900	}
901
902	if input == nil {
903		input = &DescribeReservationInput{}
904	}
905
906	output = &DescribeReservationOutput{}
907	req = c.newRequest(op, input, output)
908	return
909}
910
911// DescribeReservation API operation for AWS MediaConnect.
912//
913// Displays the details of a reservation. The response includes the reservation
914// name, state, start date and time, and the details of the offering that make
915// up the rest of the reservation (such as price, duration, and outbound bandwidth).
916//
917// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
918// with awserr.Error's Code and Message methods to get detailed information about
919// the error.
920//
921// See the AWS API reference guide for AWS MediaConnect's
922// API operation DescribeReservation for usage and error information.
923//
924// Returned Error Types:
925//   * NotFoundException
926//   Exception raised by AWS Elemental MediaConnect. See the error message and
927//   documentation for the operation for more information on the cause of this
928//   exception.
929//
930//   * ServiceUnavailableException
931//   Exception raised by AWS Elemental MediaConnect. See the error message and
932//   documentation for the operation for more information on the cause of this
933//   exception.
934//
935//   * TooManyRequestsException
936//   Exception raised by AWS Elemental MediaConnect. See the error message and
937//   documentation for the operation for more information on the cause of this
938//   exception.
939//
940//   * BadRequestException
941//   Exception raised by AWS Elemental MediaConnect. See the error message and
942//   documentation for the operation for more information on the cause of this
943//   exception.
944//
945//   * InternalServerErrorException
946//   Exception raised by AWS Elemental MediaConnect. See the error message and
947//   documentation for the operation for more information on the cause of this
948//   exception.
949//
950// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/DescribeReservation
951func (c *MediaConnect) DescribeReservation(input *DescribeReservationInput) (*DescribeReservationOutput, error) {
952	req, out := c.DescribeReservationRequest(input)
953	return out, req.Send()
954}
955
956// DescribeReservationWithContext is the same as DescribeReservation with the addition of
957// the ability to pass a context and additional request options.
958//
959// See DescribeReservation for details on how to use this API operation.
960//
961// The context must be non-nil and will be used for request cancellation. If
962// the context is nil a panic will occur. In the future the SDK may create
963// sub-contexts for http.Requests. See https://golang.org/pkg/context/
964// for more information on using Contexts.
965func (c *MediaConnect) DescribeReservationWithContext(ctx aws.Context, input *DescribeReservationInput, opts ...request.Option) (*DescribeReservationOutput, error) {
966	req, out := c.DescribeReservationRequest(input)
967	req.SetContext(ctx)
968	req.ApplyOptions(opts...)
969	return out, req.Send()
970}
971
972const opGrantFlowEntitlements = "GrantFlowEntitlements"
973
974// GrantFlowEntitlementsRequest generates a "aws/request.Request" representing the
975// client's request for the GrantFlowEntitlements operation. The "output" return
976// value will be populated with the request's response once the request completes
977// successfully.
978//
979// Use "Send" method on the returned Request to send the API call to the service.
980// the "output" return value is not valid until after Send returns without error.
981//
982// See GrantFlowEntitlements for more information on using the GrantFlowEntitlements
983// API call, and error handling.
984//
985// This method is useful when you want to inject custom logic or configuration
986// into the SDK's request lifecycle. Such as custom headers, or retry logic.
987//
988//
989//    // Example sending a request using the GrantFlowEntitlementsRequest method.
990//    req, resp := client.GrantFlowEntitlementsRequest(params)
991//
992//    err := req.Send()
993//    if err == nil { // resp is now filled
994//        fmt.Println(resp)
995//    }
996//
997// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/GrantFlowEntitlements
998func (c *MediaConnect) GrantFlowEntitlementsRequest(input *GrantFlowEntitlementsInput) (req *request.Request, output *GrantFlowEntitlementsOutput) {
999	op := &request.Operation{
1000		Name:       opGrantFlowEntitlements,
1001		HTTPMethod: "POST",
1002		HTTPPath:   "/v1/flows/{flowArn}/entitlements",
1003	}
1004
1005	if input == nil {
1006		input = &GrantFlowEntitlementsInput{}
1007	}
1008
1009	output = &GrantFlowEntitlementsOutput{}
1010	req = c.newRequest(op, input, output)
1011	return
1012}
1013
1014// GrantFlowEntitlements API operation for AWS MediaConnect.
1015//
1016// Grants entitlements to an existing flow.
1017//
1018// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1019// with awserr.Error's Code and Message methods to get detailed information about
1020// the error.
1021//
1022// See the AWS API reference guide for AWS MediaConnect's
1023// API operation GrantFlowEntitlements for usage and error information.
1024//
1025// Returned Error Types:
1026//   * GrantFlowEntitlements420Exception
1027//   Exception raised by AWS Elemental MediaConnect. See the error message and
1028//   documentation for the operation for more information on the cause of this
1029//   exception.
1030//
1031//   * BadRequestException
1032//   Exception raised by AWS Elemental MediaConnect. See the error message and
1033//   documentation for the operation for more information on the cause of this
1034//   exception.
1035//
1036//   * InternalServerErrorException
1037//   Exception raised by AWS Elemental MediaConnect. See the error message and
1038//   documentation for the operation for more information on the cause of this
1039//   exception.
1040//
1041//   * ForbiddenException
1042//   Exception raised by AWS Elemental MediaConnect. See the error message and
1043//   documentation for the operation for more information on the cause of this
1044//   exception.
1045//
1046//   * NotFoundException
1047//   Exception raised by AWS Elemental MediaConnect. See the error message and
1048//   documentation for the operation for more information on the cause of this
1049//   exception.
1050//
1051//   * ServiceUnavailableException
1052//   Exception raised by AWS Elemental MediaConnect. See the error message and
1053//   documentation for the operation for more information on the cause of this
1054//   exception.
1055//
1056//   * TooManyRequestsException
1057//   Exception raised by AWS Elemental MediaConnect. See the error message and
1058//   documentation for the operation for more information on the cause of this
1059//   exception.
1060//
1061// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/GrantFlowEntitlements
1062func (c *MediaConnect) GrantFlowEntitlements(input *GrantFlowEntitlementsInput) (*GrantFlowEntitlementsOutput, error) {
1063	req, out := c.GrantFlowEntitlementsRequest(input)
1064	return out, req.Send()
1065}
1066
1067// GrantFlowEntitlementsWithContext is the same as GrantFlowEntitlements with the addition of
1068// the ability to pass a context and additional request options.
1069//
1070// See GrantFlowEntitlements for details on how to use this API operation.
1071//
1072// The context must be non-nil and will be used for request cancellation. If
1073// the context is nil a panic will occur. In the future the SDK may create
1074// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1075// for more information on using Contexts.
1076func (c *MediaConnect) GrantFlowEntitlementsWithContext(ctx aws.Context, input *GrantFlowEntitlementsInput, opts ...request.Option) (*GrantFlowEntitlementsOutput, error) {
1077	req, out := c.GrantFlowEntitlementsRequest(input)
1078	req.SetContext(ctx)
1079	req.ApplyOptions(opts...)
1080	return out, req.Send()
1081}
1082
1083const opListEntitlements = "ListEntitlements"
1084
1085// ListEntitlementsRequest generates a "aws/request.Request" representing the
1086// client's request for the ListEntitlements operation. The "output" return
1087// value will be populated with the request's response once the request completes
1088// successfully.
1089//
1090// Use "Send" method on the returned Request to send the API call to the service.
1091// the "output" return value is not valid until after Send returns without error.
1092//
1093// See ListEntitlements for more information on using the ListEntitlements
1094// API call, and error handling.
1095//
1096// This method is useful when you want to inject custom logic or configuration
1097// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1098//
1099//
1100//    // Example sending a request using the ListEntitlementsRequest method.
1101//    req, resp := client.ListEntitlementsRequest(params)
1102//
1103//    err := req.Send()
1104//    if err == nil { // resp is now filled
1105//        fmt.Println(resp)
1106//    }
1107//
1108// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/ListEntitlements
1109func (c *MediaConnect) ListEntitlementsRequest(input *ListEntitlementsInput) (req *request.Request, output *ListEntitlementsOutput) {
1110	op := &request.Operation{
1111		Name:       opListEntitlements,
1112		HTTPMethod: "GET",
1113		HTTPPath:   "/v1/entitlements",
1114		Paginator: &request.Paginator{
1115			InputTokens:     []string{"NextToken"},
1116			OutputTokens:    []string{"NextToken"},
1117			LimitToken:      "MaxResults",
1118			TruncationToken: "",
1119		},
1120	}
1121
1122	if input == nil {
1123		input = &ListEntitlementsInput{}
1124	}
1125
1126	output = &ListEntitlementsOutput{}
1127	req = c.newRequest(op, input, output)
1128	return
1129}
1130
1131// ListEntitlements API operation for AWS MediaConnect.
1132//
1133// Displays a list of all entitlements that have been granted to this account.
1134// This request returns 20 results per page.
1135//
1136// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1137// with awserr.Error's Code and Message methods to get detailed information about
1138// the error.
1139//
1140// See the AWS API reference guide for AWS MediaConnect's
1141// API operation ListEntitlements for usage and error information.
1142//
1143// Returned Error Types:
1144//   * ServiceUnavailableException
1145//   Exception raised by AWS Elemental MediaConnect. See the error message and
1146//   documentation for the operation for more information on the cause of this
1147//   exception.
1148//
1149//   * TooManyRequestsException
1150//   Exception raised by AWS Elemental MediaConnect. See the error message and
1151//   documentation for the operation for more information on the cause of this
1152//   exception.
1153//
1154//   * BadRequestException
1155//   Exception raised by AWS Elemental MediaConnect. See the error message and
1156//   documentation for the operation for more information on the cause of this
1157//   exception.
1158//
1159//   * InternalServerErrorException
1160//   Exception raised by AWS Elemental MediaConnect. See the error message and
1161//   documentation for the operation for more information on the cause of this
1162//   exception.
1163//
1164// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/ListEntitlements
1165func (c *MediaConnect) ListEntitlements(input *ListEntitlementsInput) (*ListEntitlementsOutput, error) {
1166	req, out := c.ListEntitlementsRequest(input)
1167	return out, req.Send()
1168}
1169
1170// ListEntitlementsWithContext is the same as ListEntitlements with the addition of
1171// the ability to pass a context and additional request options.
1172//
1173// See ListEntitlements for details on how to use this API operation.
1174//
1175// The context must be non-nil and will be used for request cancellation. If
1176// the context is nil a panic will occur. In the future the SDK may create
1177// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1178// for more information on using Contexts.
1179func (c *MediaConnect) ListEntitlementsWithContext(ctx aws.Context, input *ListEntitlementsInput, opts ...request.Option) (*ListEntitlementsOutput, error) {
1180	req, out := c.ListEntitlementsRequest(input)
1181	req.SetContext(ctx)
1182	req.ApplyOptions(opts...)
1183	return out, req.Send()
1184}
1185
1186// ListEntitlementsPages iterates over the pages of a ListEntitlements operation,
1187// calling the "fn" function with the response data for each page. To stop
1188// iterating, return false from the fn function.
1189//
1190// See ListEntitlements method for more information on how to use this operation.
1191//
1192// Note: This operation can generate multiple requests to a service.
1193//
1194//    // Example iterating over at most 3 pages of a ListEntitlements operation.
1195//    pageNum := 0
1196//    err := client.ListEntitlementsPages(params,
1197//        func(page *mediaconnect.ListEntitlementsOutput, lastPage bool) bool {
1198//            pageNum++
1199//            fmt.Println(page)
1200//            return pageNum <= 3
1201//        })
1202//
1203func (c *MediaConnect) ListEntitlementsPages(input *ListEntitlementsInput, fn func(*ListEntitlementsOutput, bool) bool) error {
1204	return c.ListEntitlementsPagesWithContext(aws.BackgroundContext(), input, fn)
1205}
1206
1207// ListEntitlementsPagesWithContext same as ListEntitlementsPages except
1208// it takes a Context and allows setting request options on the pages.
1209//
1210// The context must be non-nil and will be used for request cancellation. If
1211// the context is nil a panic will occur. In the future the SDK may create
1212// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1213// for more information on using Contexts.
1214func (c *MediaConnect) ListEntitlementsPagesWithContext(ctx aws.Context, input *ListEntitlementsInput, fn func(*ListEntitlementsOutput, bool) bool, opts ...request.Option) error {
1215	p := request.Pagination{
1216		NewRequest: func() (*request.Request, error) {
1217			var inCpy *ListEntitlementsInput
1218			if input != nil {
1219				tmp := *input
1220				inCpy = &tmp
1221			}
1222			req, _ := c.ListEntitlementsRequest(inCpy)
1223			req.SetContext(ctx)
1224			req.ApplyOptions(opts...)
1225			return req, nil
1226		},
1227	}
1228
1229	for p.Next() {
1230		if !fn(p.Page().(*ListEntitlementsOutput), !p.HasNextPage()) {
1231			break
1232		}
1233	}
1234
1235	return p.Err()
1236}
1237
1238const opListFlows = "ListFlows"
1239
1240// ListFlowsRequest generates a "aws/request.Request" representing the
1241// client's request for the ListFlows operation. The "output" return
1242// value will be populated with the request's response once the request completes
1243// successfully.
1244//
1245// Use "Send" method on the returned Request to send the API call to the service.
1246// the "output" return value is not valid until after Send returns without error.
1247//
1248// See ListFlows for more information on using the ListFlows
1249// API call, and error handling.
1250//
1251// This method is useful when you want to inject custom logic or configuration
1252// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1253//
1254//
1255//    // Example sending a request using the ListFlowsRequest method.
1256//    req, resp := client.ListFlowsRequest(params)
1257//
1258//    err := req.Send()
1259//    if err == nil { // resp is now filled
1260//        fmt.Println(resp)
1261//    }
1262//
1263// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/ListFlows
1264func (c *MediaConnect) ListFlowsRequest(input *ListFlowsInput) (req *request.Request, output *ListFlowsOutput) {
1265	op := &request.Operation{
1266		Name:       opListFlows,
1267		HTTPMethod: "GET",
1268		HTTPPath:   "/v1/flows",
1269		Paginator: &request.Paginator{
1270			InputTokens:     []string{"NextToken"},
1271			OutputTokens:    []string{"NextToken"},
1272			LimitToken:      "MaxResults",
1273			TruncationToken: "",
1274		},
1275	}
1276
1277	if input == nil {
1278		input = &ListFlowsInput{}
1279	}
1280
1281	output = &ListFlowsOutput{}
1282	req = c.newRequest(op, input, output)
1283	return
1284}
1285
1286// ListFlows API operation for AWS MediaConnect.
1287//
1288// Displays a list of flows that are associated with this account. This request
1289// returns a paginated result.
1290//
1291// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1292// with awserr.Error's Code and Message methods to get detailed information about
1293// the error.
1294//
1295// See the AWS API reference guide for AWS MediaConnect's
1296// API operation ListFlows for usage and error information.
1297//
1298// Returned Error Types:
1299//   * ServiceUnavailableException
1300//   Exception raised by AWS Elemental MediaConnect. See the error message and
1301//   documentation for the operation for more information on the cause of this
1302//   exception.
1303//
1304//   * TooManyRequestsException
1305//   Exception raised by AWS Elemental MediaConnect. See the error message and
1306//   documentation for the operation for more information on the cause of this
1307//   exception.
1308//
1309//   * BadRequestException
1310//   Exception raised by AWS Elemental MediaConnect. See the error message and
1311//   documentation for the operation for more information on the cause of this
1312//   exception.
1313//
1314//   * InternalServerErrorException
1315//   Exception raised by AWS Elemental MediaConnect. See the error message and
1316//   documentation for the operation for more information on the cause of this
1317//   exception.
1318//
1319// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/ListFlows
1320func (c *MediaConnect) ListFlows(input *ListFlowsInput) (*ListFlowsOutput, error) {
1321	req, out := c.ListFlowsRequest(input)
1322	return out, req.Send()
1323}
1324
1325// ListFlowsWithContext is the same as ListFlows with the addition of
1326// the ability to pass a context and additional request options.
1327//
1328// See ListFlows for details on how to use this API operation.
1329//
1330// The context must be non-nil and will be used for request cancellation. If
1331// the context is nil a panic will occur. In the future the SDK may create
1332// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1333// for more information on using Contexts.
1334func (c *MediaConnect) ListFlowsWithContext(ctx aws.Context, input *ListFlowsInput, opts ...request.Option) (*ListFlowsOutput, error) {
1335	req, out := c.ListFlowsRequest(input)
1336	req.SetContext(ctx)
1337	req.ApplyOptions(opts...)
1338	return out, req.Send()
1339}
1340
1341// ListFlowsPages iterates over the pages of a ListFlows operation,
1342// calling the "fn" function with the response data for each page. To stop
1343// iterating, return false from the fn function.
1344//
1345// See ListFlows method for more information on how to use this operation.
1346//
1347// Note: This operation can generate multiple requests to a service.
1348//
1349//    // Example iterating over at most 3 pages of a ListFlows operation.
1350//    pageNum := 0
1351//    err := client.ListFlowsPages(params,
1352//        func(page *mediaconnect.ListFlowsOutput, lastPage bool) bool {
1353//            pageNum++
1354//            fmt.Println(page)
1355//            return pageNum <= 3
1356//        })
1357//
1358func (c *MediaConnect) ListFlowsPages(input *ListFlowsInput, fn func(*ListFlowsOutput, bool) bool) error {
1359	return c.ListFlowsPagesWithContext(aws.BackgroundContext(), input, fn)
1360}
1361
1362// ListFlowsPagesWithContext same as ListFlowsPages except
1363// it takes a Context and allows setting request options on the pages.
1364//
1365// The context must be non-nil and will be used for request cancellation. If
1366// the context is nil a panic will occur. In the future the SDK may create
1367// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1368// for more information on using Contexts.
1369func (c *MediaConnect) ListFlowsPagesWithContext(ctx aws.Context, input *ListFlowsInput, fn func(*ListFlowsOutput, bool) bool, opts ...request.Option) error {
1370	p := request.Pagination{
1371		NewRequest: func() (*request.Request, error) {
1372			var inCpy *ListFlowsInput
1373			if input != nil {
1374				tmp := *input
1375				inCpy = &tmp
1376			}
1377			req, _ := c.ListFlowsRequest(inCpy)
1378			req.SetContext(ctx)
1379			req.ApplyOptions(opts...)
1380			return req, nil
1381		},
1382	}
1383
1384	for p.Next() {
1385		if !fn(p.Page().(*ListFlowsOutput), !p.HasNextPage()) {
1386			break
1387		}
1388	}
1389
1390	return p.Err()
1391}
1392
1393const opListOfferings = "ListOfferings"
1394
1395// ListOfferingsRequest generates a "aws/request.Request" representing the
1396// client's request for the ListOfferings operation. The "output" return
1397// value will be populated with the request's response once the request completes
1398// successfully.
1399//
1400// Use "Send" method on the returned Request to send the API call to the service.
1401// the "output" return value is not valid until after Send returns without error.
1402//
1403// See ListOfferings for more information on using the ListOfferings
1404// API call, and error handling.
1405//
1406// This method is useful when you want to inject custom logic or configuration
1407// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1408//
1409//
1410//    // Example sending a request using the ListOfferingsRequest method.
1411//    req, resp := client.ListOfferingsRequest(params)
1412//
1413//    err := req.Send()
1414//    if err == nil { // resp is now filled
1415//        fmt.Println(resp)
1416//    }
1417//
1418// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/ListOfferings
1419func (c *MediaConnect) ListOfferingsRequest(input *ListOfferingsInput) (req *request.Request, output *ListOfferingsOutput) {
1420	op := &request.Operation{
1421		Name:       opListOfferings,
1422		HTTPMethod: "GET",
1423		HTTPPath:   "/v1/offerings",
1424		Paginator: &request.Paginator{
1425			InputTokens:     []string{"NextToken"},
1426			OutputTokens:    []string{"NextToken"},
1427			LimitToken:      "MaxResults",
1428			TruncationToken: "",
1429		},
1430	}
1431
1432	if input == nil {
1433		input = &ListOfferingsInput{}
1434	}
1435
1436	output = &ListOfferingsOutput{}
1437	req = c.newRequest(op, input, output)
1438	return
1439}
1440
1441// ListOfferings API operation for AWS MediaConnect.
1442//
1443// Displays a list of all offerings that are available to this account in the
1444// current AWS Region. If you have an active reservation (which means you've
1445// purchased an offering that has already started and hasn't expired yet), your
1446// account isn't eligible for other offerings.
1447//
1448// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1449// with awserr.Error's Code and Message methods to get detailed information about
1450// the error.
1451//
1452// See the AWS API reference guide for AWS MediaConnect's
1453// API operation ListOfferings for usage and error information.
1454//
1455// Returned Error Types:
1456//   * ServiceUnavailableException
1457//   Exception raised by AWS Elemental MediaConnect. See the error message and
1458//   documentation for the operation for more information on the cause of this
1459//   exception.
1460//
1461//   * TooManyRequestsException
1462//   Exception raised by AWS Elemental MediaConnect. See the error message and
1463//   documentation for the operation for more information on the cause of this
1464//   exception.
1465//
1466//   * BadRequestException
1467//   Exception raised by AWS Elemental MediaConnect. See the error message and
1468//   documentation for the operation for more information on the cause of this
1469//   exception.
1470//
1471//   * InternalServerErrorException
1472//   Exception raised by AWS Elemental MediaConnect. See the error message and
1473//   documentation for the operation for more information on the cause of this
1474//   exception.
1475//
1476// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/ListOfferings
1477func (c *MediaConnect) ListOfferings(input *ListOfferingsInput) (*ListOfferingsOutput, error) {
1478	req, out := c.ListOfferingsRequest(input)
1479	return out, req.Send()
1480}
1481
1482// ListOfferingsWithContext is the same as ListOfferings with the addition of
1483// the ability to pass a context and additional request options.
1484//
1485// See ListOfferings for details on how to use this API operation.
1486//
1487// The context must be non-nil and will be used for request cancellation. If
1488// the context is nil a panic will occur. In the future the SDK may create
1489// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1490// for more information on using Contexts.
1491func (c *MediaConnect) ListOfferingsWithContext(ctx aws.Context, input *ListOfferingsInput, opts ...request.Option) (*ListOfferingsOutput, error) {
1492	req, out := c.ListOfferingsRequest(input)
1493	req.SetContext(ctx)
1494	req.ApplyOptions(opts...)
1495	return out, req.Send()
1496}
1497
1498// ListOfferingsPages iterates over the pages of a ListOfferings operation,
1499// calling the "fn" function with the response data for each page. To stop
1500// iterating, return false from the fn function.
1501//
1502// See ListOfferings method for more information on how to use this operation.
1503//
1504// Note: This operation can generate multiple requests to a service.
1505//
1506//    // Example iterating over at most 3 pages of a ListOfferings operation.
1507//    pageNum := 0
1508//    err := client.ListOfferingsPages(params,
1509//        func(page *mediaconnect.ListOfferingsOutput, lastPage bool) bool {
1510//            pageNum++
1511//            fmt.Println(page)
1512//            return pageNum <= 3
1513//        })
1514//
1515func (c *MediaConnect) ListOfferingsPages(input *ListOfferingsInput, fn func(*ListOfferingsOutput, bool) bool) error {
1516	return c.ListOfferingsPagesWithContext(aws.BackgroundContext(), input, fn)
1517}
1518
1519// ListOfferingsPagesWithContext same as ListOfferingsPages except
1520// it takes a Context and allows setting request options on the pages.
1521//
1522// The context must be non-nil and will be used for request cancellation. If
1523// the context is nil a panic will occur. In the future the SDK may create
1524// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1525// for more information on using Contexts.
1526func (c *MediaConnect) ListOfferingsPagesWithContext(ctx aws.Context, input *ListOfferingsInput, fn func(*ListOfferingsOutput, bool) bool, opts ...request.Option) error {
1527	p := request.Pagination{
1528		NewRequest: func() (*request.Request, error) {
1529			var inCpy *ListOfferingsInput
1530			if input != nil {
1531				tmp := *input
1532				inCpy = &tmp
1533			}
1534			req, _ := c.ListOfferingsRequest(inCpy)
1535			req.SetContext(ctx)
1536			req.ApplyOptions(opts...)
1537			return req, nil
1538		},
1539	}
1540
1541	for p.Next() {
1542		if !fn(p.Page().(*ListOfferingsOutput), !p.HasNextPage()) {
1543			break
1544		}
1545	}
1546
1547	return p.Err()
1548}
1549
1550const opListReservations = "ListReservations"
1551
1552// ListReservationsRequest generates a "aws/request.Request" representing the
1553// client's request for the ListReservations operation. The "output" return
1554// value will be populated with the request's response once the request completes
1555// successfully.
1556//
1557// Use "Send" method on the returned Request to send the API call to the service.
1558// the "output" return value is not valid until after Send returns without error.
1559//
1560// See ListReservations for more information on using the ListReservations
1561// API call, and error handling.
1562//
1563// This method is useful when you want to inject custom logic or configuration
1564// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1565//
1566//
1567//    // Example sending a request using the ListReservationsRequest method.
1568//    req, resp := client.ListReservationsRequest(params)
1569//
1570//    err := req.Send()
1571//    if err == nil { // resp is now filled
1572//        fmt.Println(resp)
1573//    }
1574//
1575// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/ListReservations
1576func (c *MediaConnect) ListReservationsRequest(input *ListReservationsInput) (req *request.Request, output *ListReservationsOutput) {
1577	op := &request.Operation{
1578		Name:       opListReservations,
1579		HTTPMethod: "GET",
1580		HTTPPath:   "/v1/reservations",
1581		Paginator: &request.Paginator{
1582			InputTokens:     []string{"NextToken"},
1583			OutputTokens:    []string{"NextToken"},
1584			LimitToken:      "MaxResults",
1585			TruncationToken: "",
1586		},
1587	}
1588
1589	if input == nil {
1590		input = &ListReservationsInput{}
1591	}
1592
1593	output = &ListReservationsOutput{}
1594	req = c.newRequest(op, input, output)
1595	return
1596}
1597
1598// ListReservations API operation for AWS MediaConnect.
1599//
1600// Displays a list of all reservations that have been purchased by this account
1601// in the current AWS Region. This list includes all reservations in all states
1602// (such as active and expired).
1603//
1604// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1605// with awserr.Error's Code and Message methods to get detailed information about
1606// the error.
1607//
1608// See the AWS API reference guide for AWS MediaConnect's
1609// API operation ListReservations for usage and error information.
1610//
1611// Returned Error Types:
1612//   * ServiceUnavailableException
1613//   Exception raised by AWS Elemental MediaConnect. See the error message and
1614//   documentation for the operation for more information on the cause of this
1615//   exception.
1616//
1617//   * TooManyRequestsException
1618//   Exception raised by AWS Elemental MediaConnect. See the error message and
1619//   documentation for the operation for more information on the cause of this
1620//   exception.
1621//
1622//   * BadRequestException
1623//   Exception raised by AWS Elemental MediaConnect. See the error message and
1624//   documentation for the operation for more information on the cause of this
1625//   exception.
1626//
1627//   * InternalServerErrorException
1628//   Exception raised by AWS Elemental MediaConnect. See the error message and
1629//   documentation for the operation for more information on the cause of this
1630//   exception.
1631//
1632// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/ListReservations
1633func (c *MediaConnect) ListReservations(input *ListReservationsInput) (*ListReservationsOutput, error) {
1634	req, out := c.ListReservationsRequest(input)
1635	return out, req.Send()
1636}
1637
1638// ListReservationsWithContext is the same as ListReservations with the addition of
1639// the ability to pass a context and additional request options.
1640//
1641// See ListReservations for details on how to use this API operation.
1642//
1643// The context must be non-nil and will be used for request cancellation. If
1644// the context is nil a panic will occur. In the future the SDK may create
1645// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1646// for more information on using Contexts.
1647func (c *MediaConnect) ListReservationsWithContext(ctx aws.Context, input *ListReservationsInput, opts ...request.Option) (*ListReservationsOutput, error) {
1648	req, out := c.ListReservationsRequest(input)
1649	req.SetContext(ctx)
1650	req.ApplyOptions(opts...)
1651	return out, req.Send()
1652}
1653
1654// ListReservationsPages iterates over the pages of a ListReservations operation,
1655// calling the "fn" function with the response data for each page. To stop
1656// iterating, return false from the fn function.
1657//
1658// See ListReservations method for more information on how to use this operation.
1659//
1660// Note: This operation can generate multiple requests to a service.
1661//
1662//    // Example iterating over at most 3 pages of a ListReservations operation.
1663//    pageNum := 0
1664//    err := client.ListReservationsPages(params,
1665//        func(page *mediaconnect.ListReservationsOutput, lastPage bool) bool {
1666//            pageNum++
1667//            fmt.Println(page)
1668//            return pageNum <= 3
1669//        })
1670//
1671func (c *MediaConnect) ListReservationsPages(input *ListReservationsInput, fn func(*ListReservationsOutput, bool) bool) error {
1672	return c.ListReservationsPagesWithContext(aws.BackgroundContext(), input, fn)
1673}
1674
1675// ListReservationsPagesWithContext same as ListReservationsPages except
1676// it takes a Context and allows setting request options on the pages.
1677//
1678// The context must be non-nil and will be used for request cancellation. If
1679// the context is nil a panic will occur. In the future the SDK may create
1680// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1681// for more information on using Contexts.
1682func (c *MediaConnect) ListReservationsPagesWithContext(ctx aws.Context, input *ListReservationsInput, fn func(*ListReservationsOutput, bool) bool, opts ...request.Option) error {
1683	p := request.Pagination{
1684		NewRequest: func() (*request.Request, error) {
1685			var inCpy *ListReservationsInput
1686			if input != nil {
1687				tmp := *input
1688				inCpy = &tmp
1689			}
1690			req, _ := c.ListReservationsRequest(inCpy)
1691			req.SetContext(ctx)
1692			req.ApplyOptions(opts...)
1693			return req, nil
1694		},
1695	}
1696
1697	for p.Next() {
1698		if !fn(p.Page().(*ListReservationsOutput), !p.HasNextPage()) {
1699			break
1700		}
1701	}
1702
1703	return p.Err()
1704}
1705
1706const opListTagsForResource = "ListTagsForResource"
1707
1708// ListTagsForResourceRequest generates a "aws/request.Request" representing the
1709// client's request for the ListTagsForResource operation. The "output" return
1710// value will be populated with the request's response once the request completes
1711// successfully.
1712//
1713// Use "Send" method on the returned Request to send the API call to the service.
1714// the "output" return value is not valid until after Send returns without error.
1715//
1716// See ListTagsForResource for more information on using the ListTagsForResource
1717// API call, and error handling.
1718//
1719// This method is useful when you want to inject custom logic or configuration
1720// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1721//
1722//
1723//    // Example sending a request using the ListTagsForResourceRequest method.
1724//    req, resp := client.ListTagsForResourceRequest(params)
1725//
1726//    err := req.Send()
1727//    if err == nil { // resp is now filled
1728//        fmt.Println(resp)
1729//    }
1730//
1731// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/ListTagsForResource
1732func (c *MediaConnect) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
1733	op := &request.Operation{
1734		Name:       opListTagsForResource,
1735		HTTPMethod: "GET",
1736		HTTPPath:   "/tags/{resourceArn}",
1737	}
1738
1739	if input == nil {
1740		input = &ListTagsForResourceInput{}
1741	}
1742
1743	output = &ListTagsForResourceOutput{}
1744	req = c.newRequest(op, input, output)
1745	return
1746}
1747
1748// ListTagsForResource API operation for AWS MediaConnect.
1749//
1750// List all tags on an AWS Elemental MediaConnect resource
1751//
1752// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1753// with awserr.Error's Code and Message methods to get detailed information about
1754// the error.
1755//
1756// See the AWS API reference guide for AWS MediaConnect's
1757// API operation ListTagsForResource for usage and error information.
1758//
1759// Returned Error Types:
1760//   * NotFoundException
1761//   Exception raised by AWS Elemental MediaConnect. See the error message and
1762//   documentation for the operation for more information on the cause of this
1763//   exception.
1764//
1765//   * BadRequestException
1766//   Exception raised by AWS Elemental MediaConnect. See the error message and
1767//   documentation for the operation for more information on the cause of this
1768//   exception.
1769//
1770//   * InternalServerErrorException
1771//   Exception raised by AWS Elemental MediaConnect. See the error message and
1772//   documentation for the operation for more information on the cause of this
1773//   exception.
1774//
1775// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/ListTagsForResource
1776func (c *MediaConnect) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
1777	req, out := c.ListTagsForResourceRequest(input)
1778	return out, req.Send()
1779}
1780
1781// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
1782// the ability to pass a context and additional request options.
1783//
1784// See ListTagsForResource for details on how to use this API operation.
1785//
1786// The context must be non-nil and will be used for request cancellation. If
1787// the context is nil a panic will occur. In the future the SDK may create
1788// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1789// for more information on using Contexts.
1790func (c *MediaConnect) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
1791	req, out := c.ListTagsForResourceRequest(input)
1792	req.SetContext(ctx)
1793	req.ApplyOptions(opts...)
1794	return out, req.Send()
1795}
1796
1797const opPurchaseOffering = "PurchaseOffering"
1798
1799// PurchaseOfferingRequest generates a "aws/request.Request" representing the
1800// client's request for the PurchaseOffering operation. The "output" return
1801// value will be populated with the request's response once the request completes
1802// successfully.
1803//
1804// Use "Send" method on the returned Request to send the API call to the service.
1805// the "output" return value is not valid until after Send returns without error.
1806//
1807// See PurchaseOffering for more information on using the PurchaseOffering
1808// API call, and error handling.
1809//
1810// This method is useful when you want to inject custom logic or configuration
1811// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1812//
1813//
1814//    // Example sending a request using the PurchaseOfferingRequest method.
1815//    req, resp := client.PurchaseOfferingRequest(params)
1816//
1817//    err := req.Send()
1818//    if err == nil { // resp is now filled
1819//        fmt.Println(resp)
1820//    }
1821//
1822// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/PurchaseOffering
1823func (c *MediaConnect) PurchaseOfferingRequest(input *PurchaseOfferingInput) (req *request.Request, output *PurchaseOfferingOutput) {
1824	op := &request.Operation{
1825		Name:       opPurchaseOffering,
1826		HTTPMethod: "POST",
1827		HTTPPath:   "/v1/offerings/{offeringArn}",
1828	}
1829
1830	if input == nil {
1831		input = &PurchaseOfferingInput{}
1832	}
1833
1834	output = &PurchaseOfferingOutput{}
1835	req = c.newRequest(op, input, output)
1836	return
1837}
1838
1839// PurchaseOffering API operation for AWS MediaConnect.
1840//
1841// Submits a request to purchase an offering. If you already have an active
1842// reservation, you can't purchase another offering.
1843//
1844// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1845// with awserr.Error's Code and Message methods to get detailed information about
1846// the error.
1847//
1848// See the AWS API reference guide for AWS MediaConnect's
1849// API operation PurchaseOffering for usage and error information.
1850//
1851// Returned Error Types:
1852//   * BadRequestException
1853//   Exception raised by AWS Elemental MediaConnect. See the error message and
1854//   documentation for the operation for more information on the cause of this
1855//   exception.
1856//
1857//   * InternalServerErrorException
1858//   Exception raised by AWS Elemental MediaConnect. See the error message and
1859//   documentation for the operation for more information on the cause of this
1860//   exception.
1861//
1862//   * ForbiddenException
1863//   Exception raised by AWS Elemental MediaConnect. See the error message and
1864//   documentation for the operation for more information on the cause of this
1865//   exception.
1866//
1867//   * NotFoundException
1868//   Exception raised by AWS Elemental MediaConnect. See the error message and
1869//   documentation for the operation for more information on the cause of this
1870//   exception.
1871//
1872//   * ServiceUnavailableException
1873//   Exception raised by AWS Elemental MediaConnect. See the error message and
1874//   documentation for the operation for more information on the cause of this
1875//   exception.
1876//
1877//   * TooManyRequestsException
1878//   Exception raised by AWS Elemental MediaConnect. See the error message and
1879//   documentation for the operation for more information on the cause of this
1880//   exception.
1881//
1882// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/PurchaseOffering
1883func (c *MediaConnect) PurchaseOffering(input *PurchaseOfferingInput) (*PurchaseOfferingOutput, error) {
1884	req, out := c.PurchaseOfferingRequest(input)
1885	return out, req.Send()
1886}
1887
1888// PurchaseOfferingWithContext is the same as PurchaseOffering with the addition of
1889// the ability to pass a context and additional request options.
1890//
1891// See PurchaseOffering for details on how to use this API operation.
1892//
1893// The context must be non-nil and will be used for request cancellation. If
1894// the context is nil a panic will occur. In the future the SDK may create
1895// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1896// for more information on using Contexts.
1897func (c *MediaConnect) PurchaseOfferingWithContext(ctx aws.Context, input *PurchaseOfferingInput, opts ...request.Option) (*PurchaseOfferingOutput, error) {
1898	req, out := c.PurchaseOfferingRequest(input)
1899	req.SetContext(ctx)
1900	req.ApplyOptions(opts...)
1901	return out, req.Send()
1902}
1903
1904const opRemoveFlowMediaStream = "RemoveFlowMediaStream"
1905
1906// RemoveFlowMediaStreamRequest generates a "aws/request.Request" representing the
1907// client's request for the RemoveFlowMediaStream operation. The "output" return
1908// value will be populated with the request's response once the request completes
1909// successfully.
1910//
1911// Use "Send" method on the returned Request to send the API call to the service.
1912// the "output" return value is not valid until after Send returns without error.
1913//
1914// See RemoveFlowMediaStream for more information on using the RemoveFlowMediaStream
1915// API call, and error handling.
1916//
1917// This method is useful when you want to inject custom logic or configuration
1918// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1919//
1920//
1921//    // Example sending a request using the RemoveFlowMediaStreamRequest method.
1922//    req, resp := client.RemoveFlowMediaStreamRequest(params)
1923//
1924//    err := req.Send()
1925//    if err == nil { // resp is now filled
1926//        fmt.Println(resp)
1927//    }
1928//
1929// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/RemoveFlowMediaStream
1930func (c *MediaConnect) RemoveFlowMediaStreamRequest(input *RemoveFlowMediaStreamInput) (req *request.Request, output *RemoveFlowMediaStreamOutput) {
1931	op := &request.Operation{
1932		Name:       opRemoveFlowMediaStream,
1933		HTTPMethod: "DELETE",
1934		HTTPPath:   "/v1/flows/{flowArn}/mediaStreams/{mediaStreamName}",
1935	}
1936
1937	if input == nil {
1938		input = &RemoveFlowMediaStreamInput{}
1939	}
1940
1941	output = &RemoveFlowMediaStreamOutput{}
1942	req = c.newRequest(op, input, output)
1943	return
1944}
1945
1946// RemoveFlowMediaStream API operation for AWS MediaConnect.
1947//
1948// Removes a media stream from a flow. This action is only available if the
1949// media stream is not associated with a source or output.
1950//
1951// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1952// with awserr.Error's Code and Message methods to get detailed information about
1953// the error.
1954//
1955// See the AWS API reference guide for AWS MediaConnect's
1956// API operation RemoveFlowMediaStream for usage and error information.
1957//
1958// Returned Error Types:
1959//   * BadRequestException
1960//   Exception raised by AWS Elemental MediaConnect. See the error message and
1961//   documentation for the operation for more information on the cause of this
1962//   exception.
1963//
1964//   * InternalServerErrorException
1965//   Exception raised by AWS Elemental MediaConnect. See the error message and
1966//   documentation for the operation for more information on the cause of this
1967//   exception.
1968//
1969//   * ForbiddenException
1970//   Exception raised by AWS Elemental MediaConnect. See the error message and
1971//   documentation for the operation for more information on the cause of this
1972//   exception.
1973//
1974//   * NotFoundException
1975//   Exception raised by AWS Elemental MediaConnect. See the error message and
1976//   documentation for the operation for more information on the cause of this
1977//   exception.
1978//
1979//   * ServiceUnavailableException
1980//   Exception raised by AWS Elemental MediaConnect. See the error message and
1981//   documentation for the operation for more information on the cause of this
1982//   exception.
1983//
1984//   * TooManyRequestsException
1985//   Exception raised by AWS Elemental MediaConnect. See the error message and
1986//   documentation for the operation for more information on the cause of this
1987//   exception.
1988//
1989// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/RemoveFlowMediaStream
1990func (c *MediaConnect) RemoveFlowMediaStream(input *RemoveFlowMediaStreamInput) (*RemoveFlowMediaStreamOutput, error) {
1991	req, out := c.RemoveFlowMediaStreamRequest(input)
1992	return out, req.Send()
1993}
1994
1995// RemoveFlowMediaStreamWithContext is the same as RemoveFlowMediaStream with the addition of
1996// the ability to pass a context and additional request options.
1997//
1998// See RemoveFlowMediaStream for details on how to use this API operation.
1999//
2000// The context must be non-nil and will be used for request cancellation. If
2001// the context is nil a panic will occur. In the future the SDK may create
2002// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2003// for more information on using Contexts.
2004func (c *MediaConnect) RemoveFlowMediaStreamWithContext(ctx aws.Context, input *RemoveFlowMediaStreamInput, opts ...request.Option) (*RemoveFlowMediaStreamOutput, error) {
2005	req, out := c.RemoveFlowMediaStreamRequest(input)
2006	req.SetContext(ctx)
2007	req.ApplyOptions(opts...)
2008	return out, req.Send()
2009}
2010
2011const opRemoveFlowOutput = "RemoveFlowOutput"
2012
2013// RemoveFlowOutputRequest generates a "aws/request.Request" representing the
2014// client's request for the RemoveFlowOutput operation. The "output" return
2015// value will be populated with the request's response once the request completes
2016// successfully.
2017//
2018// Use "Send" method on the returned Request to send the API call to the service.
2019// the "output" return value is not valid until after Send returns without error.
2020//
2021// See RemoveFlowOutput for more information on using the RemoveFlowOutput
2022// API call, and error handling.
2023//
2024// This method is useful when you want to inject custom logic or configuration
2025// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2026//
2027//
2028//    // Example sending a request using the RemoveFlowOutputRequest method.
2029//    req, resp := client.RemoveFlowOutputRequest(params)
2030//
2031//    err := req.Send()
2032//    if err == nil { // resp is now filled
2033//        fmt.Println(resp)
2034//    }
2035//
2036// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/RemoveFlowOutput
2037func (c *MediaConnect) RemoveFlowOutputRequest(input *RemoveFlowOutputInput) (req *request.Request, output *RemoveFlowOutputOutput) {
2038	op := &request.Operation{
2039		Name:       opRemoveFlowOutput,
2040		HTTPMethod: "DELETE",
2041		HTTPPath:   "/v1/flows/{flowArn}/outputs/{outputArn}",
2042	}
2043
2044	if input == nil {
2045		input = &RemoveFlowOutputInput{}
2046	}
2047
2048	output = &RemoveFlowOutputOutput{}
2049	req = c.newRequest(op, input, output)
2050	return
2051}
2052
2053// RemoveFlowOutput API operation for AWS MediaConnect.
2054//
2055// Removes an output from an existing flow. This request can be made only on
2056// an output that does not have an entitlement associated with it. If the output
2057// has an entitlement, you must revoke the entitlement instead. When an entitlement
2058// is revoked from a flow, the service automatically removes the associated
2059// output.
2060//
2061// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2062// with awserr.Error's Code and Message methods to get detailed information about
2063// the error.
2064//
2065// See the AWS API reference guide for AWS MediaConnect's
2066// API operation RemoveFlowOutput for usage and error information.
2067//
2068// Returned Error Types:
2069//   * BadRequestException
2070//   Exception raised by AWS Elemental MediaConnect. See the error message and
2071//   documentation for the operation for more information on the cause of this
2072//   exception.
2073//
2074//   * InternalServerErrorException
2075//   Exception raised by AWS Elemental MediaConnect. See the error message and
2076//   documentation for the operation for more information on the cause of this
2077//   exception.
2078//
2079//   * ForbiddenException
2080//   Exception raised by AWS Elemental MediaConnect. See the error message and
2081//   documentation for the operation for more information on the cause of this
2082//   exception.
2083//
2084//   * NotFoundException
2085//   Exception raised by AWS Elemental MediaConnect. See the error message and
2086//   documentation for the operation for more information on the cause of this
2087//   exception.
2088//
2089//   * ServiceUnavailableException
2090//   Exception raised by AWS Elemental MediaConnect. See the error message and
2091//   documentation for the operation for more information on the cause of this
2092//   exception.
2093//
2094//   * TooManyRequestsException
2095//   Exception raised by AWS Elemental MediaConnect. See the error message and
2096//   documentation for the operation for more information on the cause of this
2097//   exception.
2098//
2099// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/RemoveFlowOutput
2100func (c *MediaConnect) RemoveFlowOutput(input *RemoveFlowOutputInput) (*RemoveFlowOutputOutput, error) {
2101	req, out := c.RemoveFlowOutputRequest(input)
2102	return out, req.Send()
2103}
2104
2105// RemoveFlowOutputWithContext is the same as RemoveFlowOutput with the addition of
2106// the ability to pass a context and additional request options.
2107//
2108// See RemoveFlowOutput for details on how to use this API operation.
2109//
2110// The context must be non-nil and will be used for request cancellation. If
2111// the context is nil a panic will occur. In the future the SDK may create
2112// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2113// for more information on using Contexts.
2114func (c *MediaConnect) RemoveFlowOutputWithContext(ctx aws.Context, input *RemoveFlowOutputInput, opts ...request.Option) (*RemoveFlowOutputOutput, error) {
2115	req, out := c.RemoveFlowOutputRequest(input)
2116	req.SetContext(ctx)
2117	req.ApplyOptions(opts...)
2118	return out, req.Send()
2119}
2120
2121const opRemoveFlowSource = "RemoveFlowSource"
2122
2123// RemoveFlowSourceRequest generates a "aws/request.Request" representing the
2124// client's request for the RemoveFlowSource operation. The "output" return
2125// value will be populated with the request's response once the request completes
2126// successfully.
2127//
2128// Use "Send" method on the returned Request to send the API call to the service.
2129// the "output" return value is not valid until after Send returns without error.
2130//
2131// See RemoveFlowSource for more information on using the RemoveFlowSource
2132// API call, and error handling.
2133//
2134// This method is useful when you want to inject custom logic or configuration
2135// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2136//
2137//
2138//    // Example sending a request using the RemoveFlowSourceRequest method.
2139//    req, resp := client.RemoveFlowSourceRequest(params)
2140//
2141//    err := req.Send()
2142//    if err == nil { // resp is now filled
2143//        fmt.Println(resp)
2144//    }
2145//
2146// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/RemoveFlowSource
2147func (c *MediaConnect) RemoveFlowSourceRequest(input *RemoveFlowSourceInput) (req *request.Request, output *RemoveFlowSourceOutput) {
2148	op := &request.Operation{
2149		Name:       opRemoveFlowSource,
2150		HTTPMethod: "DELETE",
2151		HTTPPath:   "/v1/flows/{flowArn}/source/{sourceArn}",
2152	}
2153
2154	if input == nil {
2155		input = &RemoveFlowSourceInput{}
2156	}
2157
2158	output = &RemoveFlowSourceOutput{}
2159	req = c.newRequest(op, input, output)
2160	return
2161}
2162
2163// RemoveFlowSource API operation for AWS MediaConnect.
2164//
2165// Removes a source from an existing flow. This request can be made only if
2166// there is more than one source on the flow.
2167//
2168// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2169// with awserr.Error's Code and Message methods to get detailed information about
2170// the error.
2171//
2172// See the AWS API reference guide for AWS MediaConnect's
2173// API operation RemoveFlowSource for usage and error information.
2174//
2175// Returned Error Types:
2176//   * BadRequestException
2177//   Exception raised by AWS Elemental MediaConnect. See the error message and
2178//   documentation for the operation for more information on the cause of this
2179//   exception.
2180//
2181//   * InternalServerErrorException
2182//   Exception raised by AWS Elemental MediaConnect. See the error message and
2183//   documentation for the operation for more information on the cause of this
2184//   exception.
2185//
2186//   * ForbiddenException
2187//   Exception raised by AWS Elemental MediaConnect. See the error message and
2188//   documentation for the operation for more information on the cause of this
2189//   exception.
2190//
2191//   * NotFoundException
2192//   Exception raised by AWS Elemental MediaConnect. See the error message and
2193//   documentation for the operation for more information on the cause of this
2194//   exception.
2195//
2196//   * ServiceUnavailableException
2197//   Exception raised by AWS Elemental MediaConnect. See the error message and
2198//   documentation for the operation for more information on the cause of this
2199//   exception.
2200//
2201//   * TooManyRequestsException
2202//   Exception raised by AWS Elemental MediaConnect. See the error message and
2203//   documentation for the operation for more information on the cause of this
2204//   exception.
2205//
2206// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/RemoveFlowSource
2207func (c *MediaConnect) RemoveFlowSource(input *RemoveFlowSourceInput) (*RemoveFlowSourceOutput, error) {
2208	req, out := c.RemoveFlowSourceRequest(input)
2209	return out, req.Send()
2210}
2211
2212// RemoveFlowSourceWithContext is the same as RemoveFlowSource with the addition of
2213// the ability to pass a context and additional request options.
2214//
2215// See RemoveFlowSource for details on how to use this API operation.
2216//
2217// The context must be non-nil and will be used for request cancellation. If
2218// the context is nil a panic will occur. In the future the SDK may create
2219// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2220// for more information on using Contexts.
2221func (c *MediaConnect) RemoveFlowSourceWithContext(ctx aws.Context, input *RemoveFlowSourceInput, opts ...request.Option) (*RemoveFlowSourceOutput, error) {
2222	req, out := c.RemoveFlowSourceRequest(input)
2223	req.SetContext(ctx)
2224	req.ApplyOptions(opts...)
2225	return out, req.Send()
2226}
2227
2228const opRemoveFlowVpcInterface = "RemoveFlowVpcInterface"
2229
2230// RemoveFlowVpcInterfaceRequest generates a "aws/request.Request" representing the
2231// client's request for the RemoveFlowVpcInterface operation. The "output" return
2232// value will be populated with the request's response once the request completes
2233// successfully.
2234//
2235// Use "Send" method on the returned Request to send the API call to the service.
2236// the "output" return value is not valid until after Send returns without error.
2237//
2238// See RemoveFlowVpcInterface for more information on using the RemoveFlowVpcInterface
2239// API call, and error handling.
2240//
2241// This method is useful when you want to inject custom logic or configuration
2242// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2243//
2244//
2245//    // Example sending a request using the RemoveFlowVpcInterfaceRequest method.
2246//    req, resp := client.RemoveFlowVpcInterfaceRequest(params)
2247//
2248//    err := req.Send()
2249//    if err == nil { // resp is now filled
2250//        fmt.Println(resp)
2251//    }
2252//
2253// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/RemoveFlowVpcInterface
2254func (c *MediaConnect) RemoveFlowVpcInterfaceRequest(input *RemoveFlowVpcInterfaceInput) (req *request.Request, output *RemoveFlowVpcInterfaceOutput) {
2255	op := &request.Operation{
2256		Name:       opRemoveFlowVpcInterface,
2257		HTTPMethod: "DELETE",
2258		HTTPPath:   "/v1/flows/{flowArn}/vpcInterfaces/{vpcInterfaceName}",
2259	}
2260
2261	if input == nil {
2262		input = &RemoveFlowVpcInterfaceInput{}
2263	}
2264
2265	output = &RemoveFlowVpcInterfaceOutput{}
2266	req = c.newRequest(op, input, output)
2267	return
2268}
2269
2270// RemoveFlowVpcInterface API operation for AWS MediaConnect.
2271//
2272// Removes a VPC Interface from an existing flow. This request can be made only
2273// on a VPC interface that does not have a Source or Output associated with
2274// it. If the VPC interface is referenced by a Source or Output, you must first
2275// delete or update the Source or Output to no longer reference the VPC interface.
2276//
2277// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2278// with awserr.Error's Code and Message methods to get detailed information about
2279// the error.
2280//
2281// See the AWS API reference guide for AWS MediaConnect's
2282// API operation RemoveFlowVpcInterface for usage and error information.
2283//
2284// Returned Error Types:
2285//   * BadRequestException
2286//   Exception raised by AWS Elemental MediaConnect. See the error message and
2287//   documentation for the operation for more information on the cause of this
2288//   exception.
2289//
2290//   * InternalServerErrorException
2291//   Exception raised by AWS Elemental MediaConnect. See the error message and
2292//   documentation for the operation for more information on the cause of this
2293//   exception.
2294//
2295//   * ForbiddenException
2296//   Exception raised by AWS Elemental MediaConnect. See the error message and
2297//   documentation for the operation for more information on the cause of this
2298//   exception.
2299//
2300//   * NotFoundException
2301//   Exception raised by AWS Elemental MediaConnect. See the error message and
2302//   documentation for the operation for more information on the cause of this
2303//   exception.
2304//
2305//   * ServiceUnavailableException
2306//   Exception raised by AWS Elemental MediaConnect. See the error message and
2307//   documentation for the operation for more information on the cause of this
2308//   exception.
2309//
2310//   * TooManyRequestsException
2311//   Exception raised by AWS Elemental MediaConnect. See the error message and
2312//   documentation for the operation for more information on the cause of this
2313//   exception.
2314//
2315// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/RemoveFlowVpcInterface
2316func (c *MediaConnect) RemoveFlowVpcInterface(input *RemoveFlowVpcInterfaceInput) (*RemoveFlowVpcInterfaceOutput, error) {
2317	req, out := c.RemoveFlowVpcInterfaceRequest(input)
2318	return out, req.Send()
2319}
2320
2321// RemoveFlowVpcInterfaceWithContext is the same as RemoveFlowVpcInterface with the addition of
2322// the ability to pass a context and additional request options.
2323//
2324// See RemoveFlowVpcInterface for details on how to use this API operation.
2325//
2326// The context must be non-nil and will be used for request cancellation. If
2327// the context is nil a panic will occur. In the future the SDK may create
2328// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2329// for more information on using Contexts.
2330func (c *MediaConnect) RemoveFlowVpcInterfaceWithContext(ctx aws.Context, input *RemoveFlowVpcInterfaceInput, opts ...request.Option) (*RemoveFlowVpcInterfaceOutput, error) {
2331	req, out := c.RemoveFlowVpcInterfaceRequest(input)
2332	req.SetContext(ctx)
2333	req.ApplyOptions(opts...)
2334	return out, req.Send()
2335}
2336
2337const opRevokeFlowEntitlement = "RevokeFlowEntitlement"
2338
2339// RevokeFlowEntitlementRequest generates a "aws/request.Request" representing the
2340// client's request for the RevokeFlowEntitlement operation. The "output" return
2341// value will be populated with the request's response once the request completes
2342// successfully.
2343//
2344// Use "Send" method on the returned Request to send the API call to the service.
2345// the "output" return value is not valid until after Send returns without error.
2346//
2347// See RevokeFlowEntitlement for more information on using the RevokeFlowEntitlement
2348// API call, and error handling.
2349//
2350// This method is useful when you want to inject custom logic or configuration
2351// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2352//
2353//
2354//    // Example sending a request using the RevokeFlowEntitlementRequest method.
2355//    req, resp := client.RevokeFlowEntitlementRequest(params)
2356//
2357//    err := req.Send()
2358//    if err == nil { // resp is now filled
2359//        fmt.Println(resp)
2360//    }
2361//
2362// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/RevokeFlowEntitlement
2363func (c *MediaConnect) RevokeFlowEntitlementRequest(input *RevokeFlowEntitlementInput) (req *request.Request, output *RevokeFlowEntitlementOutput) {
2364	op := &request.Operation{
2365		Name:       opRevokeFlowEntitlement,
2366		HTTPMethod: "DELETE",
2367		HTTPPath:   "/v1/flows/{flowArn}/entitlements/{entitlementArn}",
2368	}
2369
2370	if input == nil {
2371		input = &RevokeFlowEntitlementInput{}
2372	}
2373
2374	output = &RevokeFlowEntitlementOutput{}
2375	req = c.newRequest(op, input, output)
2376	return
2377}
2378
2379// RevokeFlowEntitlement API operation for AWS MediaConnect.
2380//
2381// Revokes an entitlement from a flow. Once an entitlement is revoked, the content
2382// becomes unavailable to the subscriber and the associated output is removed.
2383//
2384// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2385// with awserr.Error's Code and Message methods to get detailed information about
2386// the error.
2387//
2388// See the AWS API reference guide for AWS MediaConnect's
2389// API operation RevokeFlowEntitlement for usage and error information.
2390//
2391// Returned Error Types:
2392//   * BadRequestException
2393//   Exception raised by AWS Elemental MediaConnect. See the error message and
2394//   documentation for the operation for more information on the cause of this
2395//   exception.
2396//
2397//   * InternalServerErrorException
2398//   Exception raised by AWS Elemental MediaConnect. See the error message and
2399//   documentation for the operation for more information on the cause of this
2400//   exception.
2401//
2402//   * ForbiddenException
2403//   Exception raised by AWS Elemental MediaConnect. See the error message and
2404//   documentation for the operation for more information on the cause of this
2405//   exception.
2406//
2407//   * NotFoundException
2408//   Exception raised by AWS Elemental MediaConnect. See the error message and
2409//   documentation for the operation for more information on the cause of this
2410//   exception.
2411//
2412//   * ServiceUnavailableException
2413//   Exception raised by AWS Elemental MediaConnect. See the error message and
2414//   documentation for the operation for more information on the cause of this
2415//   exception.
2416//
2417//   * TooManyRequestsException
2418//   Exception raised by AWS Elemental MediaConnect. See the error message and
2419//   documentation for the operation for more information on the cause of this
2420//   exception.
2421//
2422// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/RevokeFlowEntitlement
2423func (c *MediaConnect) RevokeFlowEntitlement(input *RevokeFlowEntitlementInput) (*RevokeFlowEntitlementOutput, error) {
2424	req, out := c.RevokeFlowEntitlementRequest(input)
2425	return out, req.Send()
2426}
2427
2428// RevokeFlowEntitlementWithContext is the same as RevokeFlowEntitlement with the addition of
2429// the ability to pass a context and additional request options.
2430//
2431// See RevokeFlowEntitlement for details on how to use this API operation.
2432//
2433// The context must be non-nil and will be used for request cancellation. If
2434// the context is nil a panic will occur. In the future the SDK may create
2435// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2436// for more information on using Contexts.
2437func (c *MediaConnect) RevokeFlowEntitlementWithContext(ctx aws.Context, input *RevokeFlowEntitlementInput, opts ...request.Option) (*RevokeFlowEntitlementOutput, error) {
2438	req, out := c.RevokeFlowEntitlementRequest(input)
2439	req.SetContext(ctx)
2440	req.ApplyOptions(opts...)
2441	return out, req.Send()
2442}
2443
2444const opStartFlow = "StartFlow"
2445
2446// StartFlowRequest generates a "aws/request.Request" representing the
2447// client's request for the StartFlow operation. The "output" return
2448// value will be populated with the request's response once the request completes
2449// successfully.
2450//
2451// Use "Send" method on the returned Request to send the API call to the service.
2452// the "output" return value is not valid until after Send returns without error.
2453//
2454// See StartFlow for more information on using the StartFlow
2455// API call, and error handling.
2456//
2457// This method is useful when you want to inject custom logic or configuration
2458// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2459//
2460//
2461//    // Example sending a request using the StartFlowRequest method.
2462//    req, resp := client.StartFlowRequest(params)
2463//
2464//    err := req.Send()
2465//    if err == nil { // resp is now filled
2466//        fmt.Println(resp)
2467//    }
2468//
2469// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/StartFlow
2470func (c *MediaConnect) StartFlowRequest(input *StartFlowInput) (req *request.Request, output *StartFlowOutput) {
2471	op := &request.Operation{
2472		Name:       opStartFlow,
2473		HTTPMethod: "POST",
2474		HTTPPath:   "/v1/flows/start/{flowArn}",
2475	}
2476
2477	if input == nil {
2478		input = &StartFlowInput{}
2479	}
2480
2481	output = &StartFlowOutput{}
2482	req = c.newRequest(op, input, output)
2483	return
2484}
2485
2486// StartFlow API operation for AWS MediaConnect.
2487//
2488// Starts a flow.
2489//
2490// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2491// with awserr.Error's Code and Message methods to get detailed information about
2492// the error.
2493//
2494// See the AWS API reference guide for AWS MediaConnect's
2495// API operation StartFlow for usage and error information.
2496//
2497// Returned Error Types:
2498//   * BadRequestException
2499//   Exception raised by AWS Elemental MediaConnect. See the error message and
2500//   documentation for the operation for more information on the cause of this
2501//   exception.
2502//
2503//   * InternalServerErrorException
2504//   Exception raised by AWS Elemental MediaConnect. See the error message and
2505//   documentation for the operation for more information on the cause of this
2506//   exception.
2507//
2508//   * ForbiddenException
2509//   Exception raised by AWS Elemental MediaConnect. See the error message and
2510//   documentation for the operation for more information on the cause of this
2511//   exception.
2512//
2513//   * NotFoundException
2514//   Exception raised by AWS Elemental MediaConnect. See the error message and
2515//   documentation for the operation for more information on the cause of this
2516//   exception.
2517//
2518//   * ServiceUnavailableException
2519//   Exception raised by AWS Elemental MediaConnect. See the error message and
2520//   documentation for the operation for more information on the cause of this
2521//   exception.
2522//
2523//   * TooManyRequestsException
2524//   Exception raised by AWS Elemental MediaConnect. See the error message and
2525//   documentation for the operation for more information on the cause of this
2526//   exception.
2527//
2528// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/StartFlow
2529func (c *MediaConnect) StartFlow(input *StartFlowInput) (*StartFlowOutput, error) {
2530	req, out := c.StartFlowRequest(input)
2531	return out, req.Send()
2532}
2533
2534// StartFlowWithContext is the same as StartFlow with the addition of
2535// the ability to pass a context and additional request options.
2536//
2537// See StartFlow for details on how to use this API operation.
2538//
2539// The context must be non-nil and will be used for request cancellation. If
2540// the context is nil a panic will occur. In the future the SDK may create
2541// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2542// for more information on using Contexts.
2543func (c *MediaConnect) StartFlowWithContext(ctx aws.Context, input *StartFlowInput, opts ...request.Option) (*StartFlowOutput, error) {
2544	req, out := c.StartFlowRequest(input)
2545	req.SetContext(ctx)
2546	req.ApplyOptions(opts...)
2547	return out, req.Send()
2548}
2549
2550const opStopFlow = "StopFlow"
2551
2552// StopFlowRequest generates a "aws/request.Request" representing the
2553// client's request for the StopFlow operation. The "output" return
2554// value will be populated with the request's response once the request completes
2555// successfully.
2556//
2557// Use "Send" method on the returned Request to send the API call to the service.
2558// the "output" return value is not valid until after Send returns without error.
2559//
2560// See StopFlow for more information on using the StopFlow
2561// API call, and error handling.
2562//
2563// This method is useful when you want to inject custom logic or configuration
2564// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2565//
2566//
2567//    // Example sending a request using the StopFlowRequest method.
2568//    req, resp := client.StopFlowRequest(params)
2569//
2570//    err := req.Send()
2571//    if err == nil { // resp is now filled
2572//        fmt.Println(resp)
2573//    }
2574//
2575// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/StopFlow
2576func (c *MediaConnect) StopFlowRequest(input *StopFlowInput) (req *request.Request, output *StopFlowOutput) {
2577	op := &request.Operation{
2578		Name:       opStopFlow,
2579		HTTPMethod: "POST",
2580		HTTPPath:   "/v1/flows/stop/{flowArn}",
2581	}
2582
2583	if input == nil {
2584		input = &StopFlowInput{}
2585	}
2586
2587	output = &StopFlowOutput{}
2588	req = c.newRequest(op, input, output)
2589	return
2590}
2591
2592// StopFlow API operation for AWS MediaConnect.
2593//
2594// Stops a flow.
2595//
2596// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2597// with awserr.Error's Code and Message methods to get detailed information about
2598// the error.
2599//
2600// See the AWS API reference guide for AWS MediaConnect's
2601// API operation StopFlow for usage and error information.
2602//
2603// Returned Error Types:
2604//   * BadRequestException
2605//   Exception raised by AWS Elemental MediaConnect. See the error message and
2606//   documentation for the operation for more information on the cause of this
2607//   exception.
2608//
2609//   * InternalServerErrorException
2610//   Exception raised by AWS Elemental MediaConnect. See the error message and
2611//   documentation for the operation for more information on the cause of this
2612//   exception.
2613//
2614//   * ForbiddenException
2615//   Exception raised by AWS Elemental MediaConnect. See the error message and
2616//   documentation for the operation for more information on the cause of this
2617//   exception.
2618//
2619//   * NotFoundException
2620//   Exception raised by AWS Elemental MediaConnect. See the error message and
2621//   documentation for the operation for more information on the cause of this
2622//   exception.
2623//
2624//   * ServiceUnavailableException
2625//   Exception raised by AWS Elemental MediaConnect. See the error message and
2626//   documentation for the operation for more information on the cause of this
2627//   exception.
2628//
2629//   * TooManyRequestsException
2630//   Exception raised by AWS Elemental MediaConnect. See the error message and
2631//   documentation for the operation for more information on the cause of this
2632//   exception.
2633//
2634// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/StopFlow
2635func (c *MediaConnect) StopFlow(input *StopFlowInput) (*StopFlowOutput, error) {
2636	req, out := c.StopFlowRequest(input)
2637	return out, req.Send()
2638}
2639
2640// StopFlowWithContext is the same as StopFlow with the addition of
2641// the ability to pass a context and additional request options.
2642//
2643// See StopFlow for details on how to use this API operation.
2644//
2645// The context must be non-nil and will be used for request cancellation. If
2646// the context is nil a panic will occur. In the future the SDK may create
2647// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2648// for more information on using Contexts.
2649func (c *MediaConnect) StopFlowWithContext(ctx aws.Context, input *StopFlowInput, opts ...request.Option) (*StopFlowOutput, error) {
2650	req, out := c.StopFlowRequest(input)
2651	req.SetContext(ctx)
2652	req.ApplyOptions(opts...)
2653	return out, req.Send()
2654}
2655
2656const opTagResource = "TagResource"
2657
2658// TagResourceRequest generates a "aws/request.Request" representing the
2659// client's request for the TagResource operation. The "output" return
2660// value will be populated with the request's response once the request completes
2661// successfully.
2662//
2663// Use "Send" method on the returned Request to send the API call to the service.
2664// the "output" return value is not valid until after Send returns without error.
2665//
2666// See TagResource for more information on using the TagResource
2667// API call, and error handling.
2668//
2669// This method is useful when you want to inject custom logic or configuration
2670// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2671//
2672//
2673//    // Example sending a request using the TagResourceRequest method.
2674//    req, resp := client.TagResourceRequest(params)
2675//
2676//    err := req.Send()
2677//    if err == nil { // resp is now filled
2678//        fmt.Println(resp)
2679//    }
2680//
2681// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/TagResource
2682func (c *MediaConnect) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
2683	op := &request.Operation{
2684		Name:       opTagResource,
2685		HTTPMethod: "POST",
2686		HTTPPath:   "/tags/{resourceArn}",
2687	}
2688
2689	if input == nil {
2690		input = &TagResourceInput{}
2691	}
2692
2693	output = &TagResourceOutput{}
2694	req = c.newRequest(op, input, output)
2695	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2696	return
2697}
2698
2699// TagResource API operation for AWS MediaConnect.
2700//
2701// Associates the specified tags to a resource with the specified resourceArn.
2702// If existing tags on a resource are not specified in the request parameters,
2703// they are not changed. When a resource is deleted, the tags associated with
2704// that resource are deleted as well.
2705//
2706// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2707// with awserr.Error's Code and Message methods to get detailed information about
2708// the error.
2709//
2710// See the AWS API reference guide for AWS MediaConnect's
2711// API operation TagResource for usage and error information.
2712//
2713// Returned Error Types:
2714//   * NotFoundException
2715//   Exception raised by AWS Elemental MediaConnect. See the error message and
2716//   documentation for the operation for more information on the cause of this
2717//   exception.
2718//
2719//   * BadRequestException
2720//   Exception raised by AWS Elemental MediaConnect. See the error message and
2721//   documentation for the operation for more information on the cause of this
2722//   exception.
2723//
2724//   * InternalServerErrorException
2725//   Exception raised by AWS Elemental MediaConnect. See the error message and
2726//   documentation for the operation for more information on the cause of this
2727//   exception.
2728//
2729// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/TagResource
2730func (c *MediaConnect) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
2731	req, out := c.TagResourceRequest(input)
2732	return out, req.Send()
2733}
2734
2735// TagResourceWithContext is the same as TagResource with the addition of
2736// the ability to pass a context and additional request options.
2737//
2738// See TagResource for details on how to use this API operation.
2739//
2740// The context must be non-nil and will be used for request cancellation. If
2741// the context is nil a panic will occur. In the future the SDK may create
2742// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2743// for more information on using Contexts.
2744func (c *MediaConnect) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
2745	req, out := c.TagResourceRequest(input)
2746	req.SetContext(ctx)
2747	req.ApplyOptions(opts...)
2748	return out, req.Send()
2749}
2750
2751const opUntagResource = "UntagResource"
2752
2753// UntagResourceRequest generates a "aws/request.Request" representing the
2754// client's request for the UntagResource operation. The "output" return
2755// value will be populated with the request's response once the request completes
2756// successfully.
2757//
2758// Use "Send" method on the returned Request to send the API call to the service.
2759// the "output" return value is not valid until after Send returns without error.
2760//
2761// See UntagResource for more information on using the UntagResource
2762// API call, and error handling.
2763//
2764// This method is useful when you want to inject custom logic or configuration
2765// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2766//
2767//
2768//    // Example sending a request using the UntagResourceRequest method.
2769//    req, resp := client.UntagResourceRequest(params)
2770//
2771//    err := req.Send()
2772//    if err == nil { // resp is now filled
2773//        fmt.Println(resp)
2774//    }
2775//
2776// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/UntagResource
2777func (c *MediaConnect) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
2778	op := &request.Operation{
2779		Name:       opUntagResource,
2780		HTTPMethod: "DELETE",
2781		HTTPPath:   "/tags/{resourceArn}",
2782	}
2783
2784	if input == nil {
2785		input = &UntagResourceInput{}
2786	}
2787
2788	output = &UntagResourceOutput{}
2789	req = c.newRequest(op, input, output)
2790	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2791	return
2792}
2793
2794// UntagResource API operation for AWS MediaConnect.
2795//
2796// Deletes specified tags from a resource.
2797//
2798// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2799// with awserr.Error's Code and Message methods to get detailed information about
2800// the error.
2801//
2802// See the AWS API reference guide for AWS MediaConnect's
2803// API operation UntagResource for usage and error information.
2804//
2805// Returned Error Types:
2806//   * NotFoundException
2807//   Exception raised by AWS Elemental MediaConnect. See the error message and
2808//   documentation for the operation for more information on the cause of this
2809//   exception.
2810//
2811//   * BadRequestException
2812//   Exception raised by AWS Elemental MediaConnect. See the error message and
2813//   documentation for the operation for more information on the cause of this
2814//   exception.
2815//
2816//   * InternalServerErrorException
2817//   Exception raised by AWS Elemental MediaConnect. See the error message and
2818//   documentation for the operation for more information on the cause of this
2819//   exception.
2820//
2821// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/UntagResource
2822func (c *MediaConnect) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
2823	req, out := c.UntagResourceRequest(input)
2824	return out, req.Send()
2825}
2826
2827// UntagResourceWithContext is the same as UntagResource with the addition of
2828// the ability to pass a context and additional request options.
2829//
2830// See UntagResource for details on how to use this API operation.
2831//
2832// The context must be non-nil and will be used for request cancellation. If
2833// the context is nil a panic will occur. In the future the SDK may create
2834// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2835// for more information on using Contexts.
2836func (c *MediaConnect) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
2837	req, out := c.UntagResourceRequest(input)
2838	req.SetContext(ctx)
2839	req.ApplyOptions(opts...)
2840	return out, req.Send()
2841}
2842
2843const opUpdateFlow = "UpdateFlow"
2844
2845// UpdateFlowRequest generates a "aws/request.Request" representing the
2846// client's request for the UpdateFlow operation. The "output" return
2847// value will be populated with the request's response once the request completes
2848// successfully.
2849//
2850// Use "Send" method on the returned Request to send the API call to the service.
2851// the "output" return value is not valid until after Send returns without error.
2852//
2853// See UpdateFlow for more information on using the UpdateFlow
2854// API call, and error handling.
2855//
2856// This method is useful when you want to inject custom logic or configuration
2857// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2858//
2859//
2860//    // Example sending a request using the UpdateFlowRequest method.
2861//    req, resp := client.UpdateFlowRequest(params)
2862//
2863//    err := req.Send()
2864//    if err == nil { // resp is now filled
2865//        fmt.Println(resp)
2866//    }
2867//
2868// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/UpdateFlow
2869func (c *MediaConnect) UpdateFlowRequest(input *UpdateFlowInput) (req *request.Request, output *UpdateFlowOutput) {
2870	op := &request.Operation{
2871		Name:       opUpdateFlow,
2872		HTTPMethod: "PUT",
2873		HTTPPath:   "/v1/flows/{flowArn}",
2874	}
2875
2876	if input == nil {
2877		input = &UpdateFlowInput{}
2878	}
2879
2880	output = &UpdateFlowOutput{}
2881	req = c.newRequest(op, input, output)
2882	return
2883}
2884
2885// UpdateFlow API operation for AWS MediaConnect.
2886//
2887// Updates flow
2888//
2889// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2890// with awserr.Error's Code and Message methods to get detailed information about
2891// the error.
2892//
2893// See the AWS API reference guide for AWS MediaConnect's
2894// API operation UpdateFlow for usage and error information.
2895//
2896// Returned Error Types:
2897//   * BadRequestException
2898//   Exception raised by AWS Elemental MediaConnect. See the error message and
2899//   documentation for the operation for more information on the cause of this
2900//   exception.
2901//
2902//   * InternalServerErrorException
2903//   Exception raised by AWS Elemental MediaConnect. See the error message and
2904//   documentation for the operation for more information on the cause of this
2905//   exception.
2906//
2907//   * ForbiddenException
2908//   Exception raised by AWS Elemental MediaConnect. See the error message and
2909//   documentation for the operation for more information on the cause of this
2910//   exception.
2911//
2912//   * NotFoundException
2913//   Exception raised by AWS Elemental MediaConnect. See the error message and
2914//   documentation for the operation for more information on the cause of this
2915//   exception.
2916//
2917//   * ServiceUnavailableException
2918//   Exception raised by AWS Elemental MediaConnect. See the error message and
2919//   documentation for the operation for more information on the cause of this
2920//   exception.
2921//
2922//   * TooManyRequestsException
2923//   Exception raised by AWS Elemental MediaConnect. See the error message and
2924//   documentation for the operation for more information on the cause of this
2925//   exception.
2926//
2927// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/UpdateFlow
2928func (c *MediaConnect) UpdateFlow(input *UpdateFlowInput) (*UpdateFlowOutput, error) {
2929	req, out := c.UpdateFlowRequest(input)
2930	return out, req.Send()
2931}
2932
2933// UpdateFlowWithContext is the same as UpdateFlow with the addition of
2934// the ability to pass a context and additional request options.
2935//
2936// See UpdateFlow for details on how to use this API operation.
2937//
2938// The context must be non-nil and will be used for request cancellation. If
2939// the context is nil a panic will occur. In the future the SDK may create
2940// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2941// for more information on using Contexts.
2942func (c *MediaConnect) UpdateFlowWithContext(ctx aws.Context, input *UpdateFlowInput, opts ...request.Option) (*UpdateFlowOutput, error) {
2943	req, out := c.UpdateFlowRequest(input)
2944	req.SetContext(ctx)
2945	req.ApplyOptions(opts...)
2946	return out, req.Send()
2947}
2948
2949const opUpdateFlowEntitlement = "UpdateFlowEntitlement"
2950
2951// UpdateFlowEntitlementRequest generates a "aws/request.Request" representing the
2952// client's request for the UpdateFlowEntitlement operation. The "output" return
2953// value will be populated with the request's response once the request completes
2954// successfully.
2955//
2956// Use "Send" method on the returned Request to send the API call to the service.
2957// the "output" return value is not valid until after Send returns without error.
2958//
2959// See UpdateFlowEntitlement for more information on using the UpdateFlowEntitlement
2960// API call, and error handling.
2961//
2962// This method is useful when you want to inject custom logic or configuration
2963// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2964//
2965//
2966//    // Example sending a request using the UpdateFlowEntitlementRequest method.
2967//    req, resp := client.UpdateFlowEntitlementRequest(params)
2968//
2969//    err := req.Send()
2970//    if err == nil { // resp is now filled
2971//        fmt.Println(resp)
2972//    }
2973//
2974// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/UpdateFlowEntitlement
2975func (c *MediaConnect) UpdateFlowEntitlementRequest(input *UpdateFlowEntitlementInput) (req *request.Request, output *UpdateFlowEntitlementOutput) {
2976	op := &request.Operation{
2977		Name:       opUpdateFlowEntitlement,
2978		HTTPMethod: "PUT",
2979		HTTPPath:   "/v1/flows/{flowArn}/entitlements/{entitlementArn}",
2980	}
2981
2982	if input == nil {
2983		input = &UpdateFlowEntitlementInput{}
2984	}
2985
2986	output = &UpdateFlowEntitlementOutput{}
2987	req = c.newRequest(op, input, output)
2988	return
2989}
2990
2991// UpdateFlowEntitlement API operation for AWS MediaConnect.
2992//
2993// You can change an entitlement's description, subscribers, and encryption.
2994// If you change the subscribers, the service will remove the outputs that are
2995// are used by the subscribers that are removed.
2996//
2997// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2998// with awserr.Error's Code and Message methods to get detailed information about
2999// the error.
3000//
3001// See the AWS API reference guide for AWS MediaConnect's
3002// API operation UpdateFlowEntitlement for usage and error information.
3003//
3004// Returned Error Types:
3005//   * BadRequestException
3006//   Exception raised by AWS Elemental MediaConnect. See the error message and
3007//   documentation for the operation for more information on the cause of this
3008//   exception.
3009//
3010//   * InternalServerErrorException
3011//   Exception raised by AWS Elemental MediaConnect. See the error message and
3012//   documentation for the operation for more information on the cause of this
3013//   exception.
3014//
3015//   * ForbiddenException
3016//   Exception raised by AWS Elemental MediaConnect. See the error message and
3017//   documentation for the operation for more information on the cause of this
3018//   exception.
3019//
3020//   * NotFoundException
3021//   Exception raised by AWS Elemental MediaConnect. See the error message and
3022//   documentation for the operation for more information on the cause of this
3023//   exception.
3024//
3025//   * ServiceUnavailableException
3026//   Exception raised by AWS Elemental MediaConnect. See the error message and
3027//   documentation for the operation for more information on the cause of this
3028//   exception.
3029//
3030//   * TooManyRequestsException
3031//   Exception raised by AWS Elemental MediaConnect. See the error message and
3032//   documentation for the operation for more information on the cause of this
3033//   exception.
3034//
3035// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/UpdateFlowEntitlement
3036func (c *MediaConnect) UpdateFlowEntitlement(input *UpdateFlowEntitlementInput) (*UpdateFlowEntitlementOutput, error) {
3037	req, out := c.UpdateFlowEntitlementRequest(input)
3038	return out, req.Send()
3039}
3040
3041// UpdateFlowEntitlementWithContext is the same as UpdateFlowEntitlement with the addition of
3042// the ability to pass a context and additional request options.
3043//
3044// See UpdateFlowEntitlement for details on how to use this API operation.
3045//
3046// The context must be non-nil and will be used for request cancellation. If
3047// the context is nil a panic will occur. In the future the SDK may create
3048// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3049// for more information on using Contexts.
3050func (c *MediaConnect) UpdateFlowEntitlementWithContext(ctx aws.Context, input *UpdateFlowEntitlementInput, opts ...request.Option) (*UpdateFlowEntitlementOutput, error) {
3051	req, out := c.UpdateFlowEntitlementRequest(input)
3052	req.SetContext(ctx)
3053	req.ApplyOptions(opts...)
3054	return out, req.Send()
3055}
3056
3057const opUpdateFlowMediaStream = "UpdateFlowMediaStream"
3058
3059// UpdateFlowMediaStreamRequest generates a "aws/request.Request" representing the
3060// client's request for the UpdateFlowMediaStream operation. The "output" return
3061// value will be populated with the request's response once the request completes
3062// successfully.
3063//
3064// Use "Send" method on the returned Request to send the API call to the service.
3065// the "output" return value is not valid until after Send returns without error.
3066//
3067// See UpdateFlowMediaStream for more information on using the UpdateFlowMediaStream
3068// API call, and error handling.
3069//
3070// This method is useful when you want to inject custom logic or configuration
3071// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3072//
3073//
3074//    // Example sending a request using the UpdateFlowMediaStreamRequest method.
3075//    req, resp := client.UpdateFlowMediaStreamRequest(params)
3076//
3077//    err := req.Send()
3078//    if err == nil { // resp is now filled
3079//        fmt.Println(resp)
3080//    }
3081//
3082// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/UpdateFlowMediaStream
3083func (c *MediaConnect) UpdateFlowMediaStreamRequest(input *UpdateFlowMediaStreamInput) (req *request.Request, output *UpdateFlowMediaStreamOutput) {
3084	op := &request.Operation{
3085		Name:       opUpdateFlowMediaStream,
3086		HTTPMethod: "PUT",
3087		HTTPPath:   "/v1/flows/{flowArn}/mediaStreams/{mediaStreamName}",
3088	}
3089
3090	if input == nil {
3091		input = &UpdateFlowMediaStreamInput{}
3092	}
3093
3094	output = &UpdateFlowMediaStreamOutput{}
3095	req = c.newRequest(op, input, output)
3096	return
3097}
3098
3099// UpdateFlowMediaStream API operation for AWS MediaConnect.
3100//
3101// Updates an existing media stream.
3102//
3103// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3104// with awserr.Error's Code and Message methods to get detailed information about
3105// the error.
3106//
3107// See the AWS API reference guide for AWS MediaConnect's
3108// API operation UpdateFlowMediaStream for usage and error information.
3109//
3110// Returned Error Types:
3111//   * BadRequestException
3112//   Exception raised by AWS Elemental MediaConnect. See the error message and
3113//   documentation for the operation for more information on the cause of this
3114//   exception.
3115//
3116//   * InternalServerErrorException
3117//   Exception raised by AWS Elemental MediaConnect. See the error message and
3118//   documentation for the operation for more information on the cause of this
3119//   exception.
3120//
3121//   * ForbiddenException
3122//   Exception raised by AWS Elemental MediaConnect. See the error message and
3123//   documentation for the operation for more information on the cause of this
3124//   exception.
3125//
3126//   * NotFoundException
3127//   Exception raised by AWS Elemental MediaConnect. See the error message and
3128//   documentation for the operation for more information on the cause of this
3129//   exception.
3130//
3131//   * ServiceUnavailableException
3132//   Exception raised by AWS Elemental MediaConnect. See the error message and
3133//   documentation for the operation for more information on the cause of this
3134//   exception.
3135//
3136//   * TooManyRequestsException
3137//   Exception raised by AWS Elemental MediaConnect. See the error message and
3138//   documentation for the operation for more information on the cause of this
3139//   exception.
3140//
3141// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/UpdateFlowMediaStream
3142func (c *MediaConnect) UpdateFlowMediaStream(input *UpdateFlowMediaStreamInput) (*UpdateFlowMediaStreamOutput, error) {
3143	req, out := c.UpdateFlowMediaStreamRequest(input)
3144	return out, req.Send()
3145}
3146
3147// UpdateFlowMediaStreamWithContext is the same as UpdateFlowMediaStream with the addition of
3148// the ability to pass a context and additional request options.
3149//
3150// See UpdateFlowMediaStream for details on how to use this API operation.
3151//
3152// The context must be non-nil and will be used for request cancellation. If
3153// the context is nil a panic will occur. In the future the SDK may create
3154// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3155// for more information on using Contexts.
3156func (c *MediaConnect) UpdateFlowMediaStreamWithContext(ctx aws.Context, input *UpdateFlowMediaStreamInput, opts ...request.Option) (*UpdateFlowMediaStreamOutput, error) {
3157	req, out := c.UpdateFlowMediaStreamRequest(input)
3158	req.SetContext(ctx)
3159	req.ApplyOptions(opts...)
3160	return out, req.Send()
3161}
3162
3163const opUpdateFlowOutput = "UpdateFlowOutput"
3164
3165// UpdateFlowOutputRequest generates a "aws/request.Request" representing the
3166// client's request for the UpdateFlowOutput operation. The "output" return
3167// value will be populated with the request's response once the request completes
3168// successfully.
3169//
3170// Use "Send" method on the returned Request to send the API call to the service.
3171// the "output" return value is not valid until after Send returns without error.
3172//
3173// See UpdateFlowOutput for more information on using the UpdateFlowOutput
3174// API call, and error handling.
3175//
3176// This method is useful when you want to inject custom logic or configuration
3177// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3178//
3179//
3180//    // Example sending a request using the UpdateFlowOutputRequest method.
3181//    req, resp := client.UpdateFlowOutputRequest(params)
3182//
3183//    err := req.Send()
3184//    if err == nil { // resp is now filled
3185//        fmt.Println(resp)
3186//    }
3187//
3188// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/UpdateFlowOutput
3189func (c *MediaConnect) UpdateFlowOutputRequest(input *UpdateFlowOutputInput) (req *request.Request, output *UpdateFlowOutputOutput) {
3190	op := &request.Operation{
3191		Name:       opUpdateFlowOutput,
3192		HTTPMethod: "PUT",
3193		HTTPPath:   "/v1/flows/{flowArn}/outputs/{outputArn}",
3194	}
3195
3196	if input == nil {
3197		input = &UpdateFlowOutputInput{}
3198	}
3199
3200	output = &UpdateFlowOutputOutput{}
3201	req = c.newRequest(op, input, output)
3202	return
3203}
3204
3205// UpdateFlowOutput API operation for AWS MediaConnect.
3206//
3207// Updates an existing flow output.
3208//
3209// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3210// with awserr.Error's Code and Message methods to get detailed information about
3211// the error.
3212//
3213// See the AWS API reference guide for AWS MediaConnect's
3214// API operation UpdateFlowOutput for usage and error information.
3215//
3216// Returned Error Types:
3217//   * BadRequestException
3218//   Exception raised by AWS Elemental MediaConnect. See the error message and
3219//   documentation for the operation for more information on the cause of this
3220//   exception.
3221//
3222//   * InternalServerErrorException
3223//   Exception raised by AWS Elemental MediaConnect. See the error message and
3224//   documentation for the operation for more information on the cause of this
3225//   exception.
3226//
3227//   * ForbiddenException
3228//   Exception raised by AWS Elemental MediaConnect. See the error message and
3229//   documentation for the operation for more information on the cause of this
3230//   exception.
3231//
3232//   * NotFoundException
3233//   Exception raised by AWS Elemental MediaConnect. See the error message and
3234//   documentation for the operation for more information on the cause of this
3235//   exception.
3236//
3237//   * ServiceUnavailableException
3238//   Exception raised by AWS Elemental MediaConnect. See the error message and
3239//   documentation for the operation for more information on the cause of this
3240//   exception.
3241//
3242//   * TooManyRequestsException
3243//   Exception raised by AWS Elemental MediaConnect. See the error message and
3244//   documentation for the operation for more information on the cause of this
3245//   exception.
3246//
3247// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/UpdateFlowOutput
3248func (c *MediaConnect) UpdateFlowOutput(input *UpdateFlowOutputInput) (*UpdateFlowOutputOutput, error) {
3249	req, out := c.UpdateFlowOutputRequest(input)
3250	return out, req.Send()
3251}
3252
3253// UpdateFlowOutputWithContext is the same as UpdateFlowOutput with the addition of
3254// the ability to pass a context and additional request options.
3255//
3256// See UpdateFlowOutput for details on how to use this API operation.
3257//
3258// The context must be non-nil and will be used for request cancellation. If
3259// the context is nil a panic will occur. In the future the SDK may create
3260// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3261// for more information on using Contexts.
3262func (c *MediaConnect) UpdateFlowOutputWithContext(ctx aws.Context, input *UpdateFlowOutputInput, opts ...request.Option) (*UpdateFlowOutputOutput, error) {
3263	req, out := c.UpdateFlowOutputRequest(input)
3264	req.SetContext(ctx)
3265	req.ApplyOptions(opts...)
3266	return out, req.Send()
3267}
3268
3269const opUpdateFlowSource = "UpdateFlowSource"
3270
3271// UpdateFlowSourceRequest generates a "aws/request.Request" representing the
3272// client's request for the UpdateFlowSource operation. The "output" return
3273// value will be populated with the request's response once the request completes
3274// successfully.
3275//
3276// Use "Send" method on the returned Request to send the API call to the service.
3277// the "output" return value is not valid until after Send returns without error.
3278//
3279// See UpdateFlowSource for more information on using the UpdateFlowSource
3280// API call, and error handling.
3281//
3282// This method is useful when you want to inject custom logic or configuration
3283// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3284//
3285//
3286//    // Example sending a request using the UpdateFlowSourceRequest method.
3287//    req, resp := client.UpdateFlowSourceRequest(params)
3288//
3289//    err := req.Send()
3290//    if err == nil { // resp is now filled
3291//        fmt.Println(resp)
3292//    }
3293//
3294// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/UpdateFlowSource
3295func (c *MediaConnect) UpdateFlowSourceRequest(input *UpdateFlowSourceInput) (req *request.Request, output *UpdateFlowSourceOutput) {
3296	op := &request.Operation{
3297		Name:       opUpdateFlowSource,
3298		HTTPMethod: "PUT",
3299		HTTPPath:   "/v1/flows/{flowArn}/source/{sourceArn}",
3300	}
3301
3302	if input == nil {
3303		input = &UpdateFlowSourceInput{}
3304	}
3305
3306	output = &UpdateFlowSourceOutput{}
3307	req = c.newRequest(op, input, output)
3308	return
3309}
3310
3311// UpdateFlowSource API operation for AWS MediaConnect.
3312//
3313// Updates the source of a flow.
3314//
3315// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3316// with awserr.Error's Code and Message methods to get detailed information about
3317// the error.
3318//
3319// See the AWS API reference guide for AWS MediaConnect's
3320// API operation UpdateFlowSource for usage and error information.
3321//
3322// Returned Error Types:
3323//   * BadRequestException
3324//   Exception raised by AWS Elemental MediaConnect. See the error message and
3325//   documentation for the operation for more information on the cause of this
3326//   exception.
3327//
3328//   * InternalServerErrorException
3329//   Exception raised by AWS Elemental MediaConnect. See the error message and
3330//   documentation for the operation for more information on the cause of this
3331//   exception.
3332//
3333//   * ForbiddenException
3334//   Exception raised by AWS Elemental MediaConnect. See the error message and
3335//   documentation for the operation for more information on the cause of this
3336//   exception.
3337//
3338//   * NotFoundException
3339//   Exception raised by AWS Elemental MediaConnect. See the error message and
3340//   documentation for the operation for more information on the cause of this
3341//   exception.
3342//
3343//   * ServiceUnavailableException
3344//   Exception raised by AWS Elemental MediaConnect. See the error message and
3345//   documentation for the operation for more information on the cause of this
3346//   exception.
3347//
3348//   * TooManyRequestsException
3349//   Exception raised by AWS Elemental MediaConnect. See the error message and
3350//   documentation for the operation for more information on the cause of this
3351//   exception.
3352//
3353// See also, https://docs.aws.amazon.com/goto/WebAPI/mediaconnect-2018-11-14/UpdateFlowSource
3354func (c *MediaConnect) UpdateFlowSource(input *UpdateFlowSourceInput) (*UpdateFlowSourceOutput, error) {
3355	req, out := c.UpdateFlowSourceRequest(input)
3356	return out, req.Send()
3357}
3358
3359// UpdateFlowSourceWithContext is the same as UpdateFlowSource with the addition of
3360// the ability to pass a context and additional request options.
3361//
3362// See UpdateFlowSource for details on how to use this API operation.
3363//
3364// The context must be non-nil and will be used for request cancellation. If
3365// the context is nil a panic will occur. In the future the SDK may create
3366// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3367// for more information on using Contexts.
3368func (c *MediaConnect) UpdateFlowSourceWithContext(ctx aws.Context, input *UpdateFlowSourceInput, opts ...request.Option) (*UpdateFlowSourceOutput, error) {
3369	req, out := c.UpdateFlowSourceRequest(input)
3370	req.SetContext(ctx)
3371	req.ApplyOptions(opts...)
3372	return out, req.Send()
3373}
3374
3375// Adds media streams to an existing flow.
3376type AddFlowMediaStreamsInput struct {
3377	_ struct{} `type:"structure"`
3378
3379	// FlowArn is a required field
3380	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
3381
3382	// The media streams that you want to add to the flow.
3383	//
3384	// MediaStreams is a required field
3385	MediaStreams []*AddMediaStreamRequest `locationName:"mediaStreams" type:"list" required:"true"`
3386}
3387
3388// String returns the string representation.
3389//
3390// API parameter values that are decorated as "sensitive" in the API will not
3391// be included in the string output. The member name will be present, but the
3392// value will be replaced with "sensitive".
3393func (s AddFlowMediaStreamsInput) String() string {
3394	return awsutil.Prettify(s)
3395}
3396
3397// GoString returns the string representation.
3398//
3399// API parameter values that are decorated as "sensitive" in the API will not
3400// be included in the string output. The member name will be present, but the
3401// value will be replaced with "sensitive".
3402func (s AddFlowMediaStreamsInput) GoString() string {
3403	return s.String()
3404}
3405
3406// Validate inspects the fields of the type to determine if they are valid.
3407func (s *AddFlowMediaStreamsInput) Validate() error {
3408	invalidParams := request.ErrInvalidParams{Context: "AddFlowMediaStreamsInput"}
3409	if s.FlowArn == nil {
3410		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
3411	}
3412	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
3413		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
3414	}
3415	if s.MediaStreams == nil {
3416		invalidParams.Add(request.NewErrParamRequired("MediaStreams"))
3417	}
3418	if s.MediaStreams != nil {
3419		for i, v := range s.MediaStreams {
3420			if v == nil {
3421				continue
3422			}
3423			if err := v.Validate(); err != nil {
3424				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MediaStreams", i), err.(request.ErrInvalidParams))
3425			}
3426		}
3427	}
3428
3429	if invalidParams.Len() > 0 {
3430		return invalidParams
3431	}
3432	return nil
3433}
3434
3435// SetFlowArn sets the FlowArn field's value.
3436func (s *AddFlowMediaStreamsInput) SetFlowArn(v string) *AddFlowMediaStreamsInput {
3437	s.FlowArn = &v
3438	return s
3439}
3440
3441// SetMediaStreams sets the MediaStreams field's value.
3442func (s *AddFlowMediaStreamsInput) SetMediaStreams(v []*AddMediaStreamRequest) *AddFlowMediaStreamsInput {
3443	s.MediaStreams = v
3444	return s
3445}
3446
3447// The result of a successful AddFlowMediaStreamsRequest request. The response
3448// includes the details of the newly added media streams.
3449type AddFlowMediaStreamsOutput struct {
3450	_ struct{} `type:"structure"`
3451
3452	// The ARN of the flow that you added media streams to.
3453	FlowArn *string `locationName:"flowArn" type:"string"`
3454
3455	// The media streams that you added to the flow.
3456	MediaStreams []*MediaStream `locationName:"mediaStreams" type:"list"`
3457}
3458
3459// String returns the string representation.
3460//
3461// API parameter values that are decorated as "sensitive" in the API will not
3462// be included in the string output. The member name will be present, but the
3463// value will be replaced with "sensitive".
3464func (s AddFlowMediaStreamsOutput) String() string {
3465	return awsutil.Prettify(s)
3466}
3467
3468// GoString returns the string representation.
3469//
3470// API parameter values that are decorated as "sensitive" in the API will not
3471// be included in the string output. The member name will be present, but the
3472// value will be replaced with "sensitive".
3473func (s AddFlowMediaStreamsOutput) GoString() string {
3474	return s.String()
3475}
3476
3477// SetFlowArn sets the FlowArn field's value.
3478func (s *AddFlowMediaStreamsOutput) SetFlowArn(v string) *AddFlowMediaStreamsOutput {
3479	s.FlowArn = &v
3480	return s
3481}
3482
3483// SetMediaStreams sets the MediaStreams field's value.
3484func (s *AddFlowMediaStreamsOutput) SetMediaStreams(v []*MediaStream) *AddFlowMediaStreamsOutput {
3485	s.MediaStreams = v
3486	return s
3487}
3488
3489// Exception raised by AWS Elemental MediaConnect. See the error message and
3490// documentation for the operation for more information on the cause of this
3491// exception.
3492type AddFlowOutputs420Exception struct {
3493	_            struct{}                  `type:"structure"`
3494	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3495
3496	Message_ *string `locationName:"message" type:"string"`
3497}
3498
3499// String returns the string representation.
3500//
3501// API parameter values that are decorated as "sensitive" in the API will not
3502// be included in the string output. The member name will be present, but the
3503// value will be replaced with "sensitive".
3504func (s AddFlowOutputs420Exception) String() string {
3505	return awsutil.Prettify(s)
3506}
3507
3508// GoString returns the string representation.
3509//
3510// API parameter values that are decorated as "sensitive" in the API will not
3511// be included in the string output. The member name will be present, but the
3512// value will be replaced with "sensitive".
3513func (s AddFlowOutputs420Exception) GoString() string {
3514	return s.String()
3515}
3516
3517func newErrorAddFlowOutputs420Exception(v protocol.ResponseMetadata) error {
3518	return &AddFlowOutputs420Exception{
3519		RespMetadata: v,
3520	}
3521}
3522
3523// Code returns the exception type name.
3524func (s *AddFlowOutputs420Exception) Code() string {
3525	return "AddFlowOutputs420Exception"
3526}
3527
3528// Message returns the exception's message.
3529func (s *AddFlowOutputs420Exception) Message() string {
3530	if s.Message_ != nil {
3531		return *s.Message_
3532	}
3533	return ""
3534}
3535
3536// OrigErr always returns nil, satisfies awserr.Error interface.
3537func (s *AddFlowOutputs420Exception) OrigErr() error {
3538	return nil
3539}
3540
3541func (s *AddFlowOutputs420Exception) Error() string {
3542	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3543}
3544
3545// Status code returns the HTTP status code for the request's response error.
3546func (s *AddFlowOutputs420Exception) StatusCode() int {
3547	return s.RespMetadata.StatusCode
3548}
3549
3550// RequestID returns the service's response RequestID for request.
3551func (s *AddFlowOutputs420Exception) RequestID() string {
3552	return s.RespMetadata.RequestID
3553}
3554
3555// Adds outputs to an existing flow. You can create up to 50 outputs per flow.
3556type AddFlowOutputsInput struct {
3557	_ struct{} `type:"structure"`
3558
3559	// FlowArn is a required field
3560	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
3561
3562	// A list of outputs that you want to add.
3563	//
3564	// Outputs is a required field
3565	Outputs []*AddOutputRequest `locationName:"outputs" type:"list" required:"true"`
3566}
3567
3568// String returns the string representation.
3569//
3570// API parameter values that are decorated as "sensitive" in the API will not
3571// be included in the string output. The member name will be present, but the
3572// value will be replaced with "sensitive".
3573func (s AddFlowOutputsInput) String() string {
3574	return awsutil.Prettify(s)
3575}
3576
3577// GoString returns the string representation.
3578//
3579// API parameter values that are decorated as "sensitive" in the API will not
3580// be included in the string output. The member name will be present, but the
3581// value will be replaced with "sensitive".
3582func (s AddFlowOutputsInput) GoString() string {
3583	return s.String()
3584}
3585
3586// Validate inspects the fields of the type to determine if they are valid.
3587func (s *AddFlowOutputsInput) Validate() error {
3588	invalidParams := request.ErrInvalidParams{Context: "AddFlowOutputsInput"}
3589	if s.FlowArn == nil {
3590		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
3591	}
3592	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
3593		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
3594	}
3595	if s.Outputs == nil {
3596		invalidParams.Add(request.NewErrParamRequired("Outputs"))
3597	}
3598	if s.Outputs != nil {
3599		for i, v := range s.Outputs {
3600			if v == nil {
3601				continue
3602			}
3603			if err := v.Validate(); err != nil {
3604				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Outputs", i), err.(request.ErrInvalidParams))
3605			}
3606		}
3607	}
3608
3609	if invalidParams.Len() > 0 {
3610		return invalidParams
3611	}
3612	return nil
3613}
3614
3615// SetFlowArn sets the FlowArn field's value.
3616func (s *AddFlowOutputsInput) SetFlowArn(v string) *AddFlowOutputsInput {
3617	s.FlowArn = &v
3618	return s
3619}
3620
3621// SetOutputs sets the Outputs field's value.
3622func (s *AddFlowOutputsInput) SetOutputs(v []*AddOutputRequest) *AddFlowOutputsInput {
3623	s.Outputs = v
3624	return s
3625}
3626
3627// The result of a successful AddOutput request. The response includes the details
3628// of the newly added outputs.
3629type AddFlowOutputsOutput struct {
3630	_ struct{} `type:"structure"`
3631
3632	// The ARN of the flow that these outputs were added to.
3633	FlowArn *string `locationName:"flowArn" type:"string"`
3634
3635	// The details of the newly added outputs.
3636	Outputs []*Output `locationName:"outputs" type:"list"`
3637}
3638
3639// String returns the string representation.
3640//
3641// API parameter values that are decorated as "sensitive" in the API will not
3642// be included in the string output. The member name will be present, but the
3643// value will be replaced with "sensitive".
3644func (s AddFlowOutputsOutput) String() string {
3645	return awsutil.Prettify(s)
3646}
3647
3648// GoString returns the string representation.
3649//
3650// API parameter values that are decorated as "sensitive" in the API will not
3651// be included in the string output. The member name will be present, but the
3652// value will be replaced with "sensitive".
3653func (s AddFlowOutputsOutput) GoString() string {
3654	return s.String()
3655}
3656
3657// SetFlowArn sets the FlowArn field's value.
3658func (s *AddFlowOutputsOutput) SetFlowArn(v string) *AddFlowOutputsOutput {
3659	s.FlowArn = &v
3660	return s
3661}
3662
3663// SetOutputs sets the Outputs field's value.
3664func (s *AddFlowOutputsOutput) SetOutputs(v []*Output) *AddFlowOutputsOutput {
3665	s.Outputs = v
3666	return s
3667}
3668
3669// Adds sources to an existing flow.
3670type AddFlowSourcesInput struct {
3671	_ struct{} `type:"structure"`
3672
3673	// FlowArn is a required field
3674	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
3675
3676	// A list of sources that you want to add.
3677	//
3678	// Sources is a required field
3679	Sources []*SetSourceRequest `locationName:"sources" type:"list" required:"true"`
3680}
3681
3682// String returns the string representation.
3683//
3684// API parameter values that are decorated as "sensitive" in the API will not
3685// be included in the string output. The member name will be present, but the
3686// value will be replaced with "sensitive".
3687func (s AddFlowSourcesInput) String() string {
3688	return awsutil.Prettify(s)
3689}
3690
3691// GoString returns the string representation.
3692//
3693// API parameter values that are decorated as "sensitive" in the API will not
3694// be included in the string output. The member name will be present, but the
3695// value will be replaced with "sensitive".
3696func (s AddFlowSourcesInput) GoString() string {
3697	return s.String()
3698}
3699
3700// Validate inspects the fields of the type to determine if they are valid.
3701func (s *AddFlowSourcesInput) Validate() error {
3702	invalidParams := request.ErrInvalidParams{Context: "AddFlowSourcesInput"}
3703	if s.FlowArn == nil {
3704		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
3705	}
3706	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
3707		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
3708	}
3709	if s.Sources == nil {
3710		invalidParams.Add(request.NewErrParamRequired("Sources"))
3711	}
3712	if s.Sources != nil {
3713		for i, v := range s.Sources {
3714			if v == nil {
3715				continue
3716			}
3717			if err := v.Validate(); err != nil {
3718				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Sources", i), err.(request.ErrInvalidParams))
3719			}
3720		}
3721	}
3722
3723	if invalidParams.Len() > 0 {
3724		return invalidParams
3725	}
3726	return nil
3727}
3728
3729// SetFlowArn sets the FlowArn field's value.
3730func (s *AddFlowSourcesInput) SetFlowArn(v string) *AddFlowSourcesInput {
3731	s.FlowArn = &v
3732	return s
3733}
3734
3735// SetSources sets the Sources field's value.
3736func (s *AddFlowSourcesInput) SetSources(v []*SetSourceRequest) *AddFlowSourcesInput {
3737	s.Sources = v
3738	return s
3739}
3740
3741// The result of a successful AddFlowSources request. The response includes
3742// the details of the newly added sources.
3743type AddFlowSourcesOutput struct {
3744	_ struct{} `type:"structure"`
3745
3746	// The ARN of the flow that these sources were added to.
3747	FlowArn *string `locationName:"flowArn" type:"string"`
3748
3749	// The details of the newly added sources.
3750	Sources []*Source `locationName:"sources" type:"list"`
3751}
3752
3753// String returns the string representation.
3754//
3755// API parameter values that are decorated as "sensitive" in the API will not
3756// be included in the string output. The member name will be present, but the
3757// value will be replaced with "sensitive".
3758func (s AddFlowSourcesOutput) String() string {
3759	return awsutil.Prettify(s)
3760}
3761
3762// GoString returns the string representation.
3763//
3764// API parameter values that are decorated as "sensitive" in the API will not
3765// be included in the string output. The member name will be present, but the
3766// value will be replaced with "sensitive".
3767func (s AddFlowSourcesOutput) GoString() string {
3768	return s.String()
3769}
3770
3771// SetFlowArn sets the FlowArn field's value.
3772func (s *AddFlowSourcesOutput) SetFlowArn(v string) *AddFlowSourcesOutput {
3773	s.FlowArn = &v
3774	return s
3775}
3776
3777// SetSources sets the Sources field's value.
3778func (s *AddFlowSourcesOutput) SetSources(v []*Source) *AddFlowSourcesOutput {
3779	s.Sources = v
3780	return s
3781}
3782
3783// Adds VPC interfaces to an existing flow.
3784type AddFlowVpcInterfacesInput struct {
3785	_ struct{} `type:"structure"`
3786
3787	// FlowArn is a required field
3788	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
3789
3790	// A list of VPC interfaces that you want to add.
3791	//
3792	// VpcInterfaces is a required field
3793	VpcInterfaces []*VpcInterfaceRequest `locationName:"vpcInterfaces" type:"list" required:"true"`
3794}
3795
3796// String returns the string representation.
3797//
3798// API parameter values that are decorated as "sensitive" in the API will not
3799// be included in the string output. The member name will be present, but the
3800// value will be replaced with "sensitive".
3801func (s AddFlowVpcInterfacesInput) String() string {
3802	return awsutil.Prettify(s)
3803}
3804
3805// GoString returns the string representation.
3806//
3807// API parameter values that are decorated as "sensitive" in the API will not
3808// be included in the string output. The member name will be present, but the
3809// value will be replaced with "sensitive".
3810func (s AddFlowVpcInterfacesInput) GoString() string {
3811	return s.String()
3812}
3813
3814// Validate inspects the fields of the type to determine if they are valid.
3815func (s *AddFlowVpcInterfacesInput) Validate() error {
3816	invalidParams := request.ErrInvalidParams{Context: "AddFlowVpcInterfacesInput"}
3817	if s.FlowArn == nil {
3818		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
3819	}
3820	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
3821		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
3822	}
3823	if s.VpcInterfaces == nil {
3824		invalidParams.Add(request.NewErrParamRequired("VpcInterfaces"))
3825	}
3826	if s.VpcInterfaces != nil {
3827		for i, v := range s.VpcInterfaces {
3828			if v == nil {
3829				continue
3830			}
3831			if err := v.Validate(); err != nil {
3832				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "VpcInterfaces", i), err.(request.ErrInvalidParams))
3833			}
3834		}
3835	}
3836
3837	if invalidParams.Len() > 0 {
3838		return invalidParams
3839	}
3840	return nil
3841}
3842
3843// SetFlowArn sets the FlowArn field's value.
3844func (s *AddFlowVpcInterfacesInput) SetFlowArn(v string) *AddFlowVpcInterfacesInput {
3845	s.FlowArn = &v
3846	return s
3847}
3848
3849// SetVpcInterfaces sets the VpcInterfaces field's value.
3850func (s *AddFlowVpcInterfacesInput) SetVpcInterfaces(v []*VpcInterfaceRequest) *AddFlowVpcInterfacesInput {
3851	s.VpcInterfaces = v
3852	return s
3853}
3854
3855// The result of a successful AddFlowVpcInterfaces request. The response includes
3856// the details of the newly added VPC interfaces.
3857type AddFlowVpcInterfacesOutput struct {
3858	_ struct{} `type:"structure"`
3859
3860	// The ARN of the flow that these VPC interfaces were added to.
3861	FlowArn *string `locationName:"flowArn" type:"string"`
3862
3863	// The details of the newly added VPC interfaces.
3864	VpcInterfaces []*VpcInterface `locationName:"vpcInterfaces" type:"list"`
3865}
3866
3867// String returns the string representation.
3868//
3869// API parameter values that are decorated as "sensitive" in the API will not
3870// be included in the string output. The member name will be present, but the
3871// value will be replaced with "sensitive".
3872func (s AddFlowVpcInterfacesOutput) String() string {
3873	return awsutil.Prettify(s)
3874}
3875
3876// GoString 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 AddFlowVpcInterfacesOutput) GoString() string {
3882	return s.String()
3883}
3884
3885// SetFlowArn sets the FlowArn field's value.
3886func (s *AddFlowVpcInterfacesOutput) SetFlowArn(v string) *AddFlowVpcInterfacesOutput {
3887	s.FlowArn = &v
3888	return s
3889}
3890
3891// SetVpcInterfaces sets the VpcInterfaces field's value.
3892func (s *AddFlowVpcInterfacesOutput) SetVpcInterfaces(v []*VpcInterface) *AddFlowVpcInterfacesOutput {
3893	s.VpcInterfaces = v
3894	return s
3895}
3896
3897// The media stream that you want to add to the flow.
3898type AddMediaStreamRequest struct {
3899	_ struct{} `type:"structure"`
3900
3901	// The attributes that you want to assign to the new media stream.
3902	Attributes *MediaStreamAttributesRequest `locationName:"attributes" type:"structure"`
3903
3904	// The sample rate (in Hz) for the stream. If the media stream type is video
3905	// or ancillary data, set this value to 90000. If the media stream type is audio,
3906	// set this value to either 48000 or 96000.
3907	ClockRate *int64 `locationName:"clockRate" type:"integer"`
3908
3909	// A description that can help you quickly identify what your media stream is
3910	// used for.
3911	Description *string `locationName:"description" type:"string"`
3912
3913	// A unique identifier for the media stream.
3914	//
3915	// MediaStreamId is a required field
3916	MediaStreamId *int64 `locationName:"mediaStreamId" type:"integer" required:"true"`
3917
3918	// A name that helps you distinguish one media stream from another.
3919	//
3920	// MediaStreamName is a required field
3921	MediaStreamName *string `locationName:"mediaStreamName" type:"string" required:"true"`
3922
3923	// The type of media stream.
3924	//
3925	// MediaStreamType is a required field
3926	MediaStreamType *string `locationName:"mediaStreamType" type:"string" required:"true" enum:"MediaStreamType"`
3927
3928	// The resolution of the video.
3929	VideoFormat *string `locationName:"videoFormat" type:"string"`
3930}
3931
3932// String returns the string representation.
3933//
3934// API parameter values that are decorated as "sensitive" in the API will not
3935// be included in the string output. The member name will be present, but the
3936// value will be replaced with "sensitive".
3937func (s AddMediaStreamRequest) String() string {
3938	return awsutil.Prettify(s)
3939}
3940
3941// GoString returns the string representation.
3942//
3943// API parameter values that are decorated as "sensitive" in the API will not
3944// be included in the string output. The member name will be present, but the
3945// value will be replaced with "sensitive".
3946func (s AddMediaStreamRequest) GoString() string {
3947	return s.String()
3948}
3949
3950// Validate inspects the fields of the type to determine if they are valid.
3951func (s *AddMediaStreamRequest) Validate() error {
3952	invalidParams := request.ErrInvalidParams{Context: "AddMediaStreamRequest"}
3953	if s.MediaStreamId == nil {
3954		invalidParams.Add(request.NewErrParamRequired("MediaStreamId"))
3955	}
3956	if s.MediaStreamName == nil {
3957		invalidParams.Add(request.NewErrParamRequired("MediaStreamName"))
3958	}
3959	if s.MediaStreamType == nil {
3960		invalidParams.Add(request.NewErrParamRequired("MediaStreamType"))
3961	}
3962
3963	if invalidParams.Len() > 0 {
3964		return invalidParams
3965	}
3966	return nil
3967}
3968
3969// SetAttributes sets the Attributes field's value.
3970func (s *AddMediaStreamRequest) SetAttributes(v *MediaStreamAttributesRequest) *AddMediaStreamRequest {
3971	s.Attributes = v
3972	return s
3973}
3974
3975// SetClockRate sets the ClockRate field's value.
3976func (s *AddMediaStreamRequest) SetClockRate(v int64) *AddMediaStreamRequest {
3977	s.ClockRate = &v
3978	return s
3979}
3980
3981// SetDescription sets the Description field's value.
3982func (s *AddMediaStreamRequest) SetDescription(v string) *AddMediaStreamRequest {
3983	s.Description = &v
3984	return s
3985}
3986
3987// SetMediaStreamId sets the MediaStreamId field's value.
3988func (s *AddMediaStreamRequest) SetMediaStreamId(v int64) *AddMediaStreamRequest {
3989	s.MediaStreamId = &v
3990	return s
3991}
3992
3993// SetMediaStreamName sets the MediaStreamName field's value.
3994func (s *AddMediaStreamRequest) SetMediaStreamName(v string) *AddMediaStreamRequest {
3995	s.MediaStreamName = &v
3996	return s
3997}
3998
3999// SetMediaStreamType sets the MediaStreamType field's value.
4000func (s *AddMediaStreamRequest) SetMediaStreamType(v string) *AddMediaStreamRequest {
4001	s.MediaStreamType = &v
4002	return s
4003}
4004
4005// SetVideoFormat sets the VideoFormat field's value.
4006func (s *AddMediaStreamRequest) SetVideoFormat(v string) *AddMediaStreamRequest {
4007	s.VideoFormat = &v
4008	return s
4009}
4010
4011// The output that you want to add to this flow.
4012type AddOutputRequest struct {
4013	_ struct{} `type:"structure"`
4014
4015	// The range of IP addresses that should be allowed to initiate output requests
4016	// to this flow. These IP addresses should be in the form of a Classless Inter-Domain
4017	// Routing (CIDR) block; for example, 10.0.0.0/16.
4018	CidrAllowList []*string `locationName:"cidrAllowList" type:"list"`
4019
4020	// A description of the output. This description appears only on the AWS Elemental
4021	// MediaConnect console and will not be seen by the end user.
4022	Description *string `locationName:"description" type:"string"`
4023
4024	// The IP address from which video will be sent to output destinations.
4025	Destination *string `locationName:"destination" type:"string"`
4026
4027	// The type of key used for the encryption. If no keyType is provided, the service
4028	// will use the default setting (static-key).
4029	Encryption *Encryption `locationName:"encryption" type:"structure"`
4030
4031	// The maximum latency in milliseconds for Zixi-based streams.
4032	MaxLatency *int64 `locationName:"maxLatency" type:"integer"`
4033
4034	// The media streams that are associated with the output, and the parameters
4035	// for those associations.
4036	MediaStreamOutputConfigurations []*MediaStreamOutputConfigurationRequest `locationName:"mediaStreamOutputConfigurations" type:"list"`
4037
4038	// The minimum latency in milliseconds for SRT-based streams. In streams that
4039	// use the SRT protocol, this value that you set on your MediaConnect source
4040	// or output represents the minimal potential latency of that connection. The
4041	// latency of the stream is set to the highest number between the sender’s
4042	// minimum latency and the receiver’s minimum latency.
4043	MinLatency *int64 `locationName:"minLatency" type:"integer"`
4044
4045	// The name of the output. This value must be unique within the current flow.
4046	Name *string `locationName:"name" type:"string"`
4047
4048	// The port to use when content is distributed to this output.
4049	Port *int64 `locationName:"port" type:"integer"`
4050
4051	// The protocol to use for the output.
4052	//
4053	// Protocol is a required field
4054	Protocol *string `locationName:"protocol" type:"string" required:"true" enum:"Protocol"`
4055
4056	// The remote ID for the Zixi-pull output stream.
4057	RemoteId *string `locationName:"remoteId" type:"string"`
4058
4059	// The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams.
4060	SmoothingLatency *int64 `locationName:"smoothingLatency" type:"integer"`
4061
4062	// The stream ID that you want to use for this transport. This parameter applies
4063	// only to Zixi-based streams.
4064	StreamId *string `locationName:"streamId" type:"string"`
4065
4066	// The name of the VPC interface attachment to use for this output.
4067	VpcInterfaceAttachment *VpcInterfaceAttachment `locationName:"vpcInterfaceAttachment" type:"structure"`
4068}
4069
4070// String returns the string representation.
4071//
4072// API parameter values that are decorated as "sensitive" in the API will not
4073// be included in the string output. The member name will be present, but the
4074// value will be replaced with "sensitive".
4075func (s AddOutputRequest) String() string {
4076	return awsutil.Prettify(s)
4077}
4078
4079// GoString returns the string representation.
4080//
4081// API parameter values that are decorated as "sensitive" in the API will not
4082// be included in the string output. The member name will be present, but the
4083// value will be replaced with "sensitive".
4084func (s AddOutputRequest) GoString() string {
4085	return s.String()
4086}
4087
4088// Validate inspects the fields of the type to determine if they are valid.
4089func (s *AddOutputRequest) Validate() error {
4090	invalidParams := request.ErrInvalidParams{Context: "AddOutputRequest"}
4091	if s.Protocol == nil {
4092		invalidParams.Add(request.NewErrParamRequired("Protocol"))
4093	}
4094	if s.Encryption != nil {
4095		if err := s.Encryption.Validate(); err != nil {
4096			invalidParams.AddNested("Encryption", err.(request.ErrInvalidParams))
4097		}
4098	}
4099	if s.MediaStreamOutputConfigurations != nil {
4100		for i, v := range s.MediaStreamOutputConfigurations {
4101			if v == nil {
4102				continue
4103			}
4104			if err := v.Validate(); err != nil {
4105				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MediaStreamOutputConfigurations", i), err.(request.ErrInvalidParams))
4106			}
4107		}
4108	}
4109
4110	if invalidParams.Len() > 0 {
4111		return invalidParams
4112	}
4113	return nil
4114}
4115
4116// SetCidrAllowList sets the CidrAllowList field's value.
4117func (s *AddOutputRequest) SetCidrAllowList(v []*string) *AddOutputRequest {
4118	s.CidrAllowList = v
4119	return s
4120}
4121
4122// SetDescription sets the Description field's value.
4123func (s *AddOutputRequest) SetDescription(v string) *AddOutputRequest {
4124	s.Description = &v
4125	return s
4126}
4127
4128// SetDestination sets the Destination field's value.
4129func (s *AddOutputRequest) SetDestination(v string) *AddOutputRequest {
4130	s.Destination = &v
4131	return s
4132}
4133
4134// SetEncryption sets the Encryption field's value.
4135func (s *AddOutputRequest) SetEncryption(v *Encryption) *AddOutputRequest {
4136	s.Encryption = v
4137	return s
4138}
4139
4140// SetMaxLatency sets the MaxLatency field's value.
4141func (s *AddOutputRequest) SetMaxLatency(v int64) *AddOutputRequest {
4142	s.MaxLatency = &v
4143	return s
4144}
4145
4146// SetMediaStreamOutputConfigurations sets the MediaStreamOutputConfigurations field's value.
4147func (s *AddOutputRequest) SetMediaStreamOutputConfigurations(v []*MediaStreamOutputConfigurationRequest) *AddOutputRequest {
4148	s.MediaStreamOutputConfigurations = v
4149	return s
4150}
4151
4152// SetMinLatency sets the MinLatency field's value.
4153func (s *AddOutputRequest) SetMinLatency(v int64) *AddOutputRequest {
4154	s.MinLatency = &v
4155	return s
4156}
4157
4158// SetName sets the Name field's value.
4159func (s *AddOutputRequest) SetName(v string) *AddOutputRequest {
4160	s.Name = &v
4161	return s
4162}
4163
4164// SetPort sets the Port field's value.
4165func (s *AddOutputRequest) SetPort(v int64) *AddOutputRequest {
4166	s.Port = &v
4167	return s
4168}
4169
4170// SetProtocol sets the Protocol field's value.
4171func (s *AddOutputRequest) SetProtocol(v string) *AddOutputRequest {
4172	s.Protocol = &v
4173	return s
4174}
4175
4176// SetRemoteId sets the RemoteId field's value.
4177func (s *AddOutputRequest) SetRemoteId(v string) *AddOutputRequest {
4178	s.RemoteId = &v
4179	return s
4180}
4181
4182// SetSmoothingLatency sets the SmoothingLatency field's value.
4183func (s *AddOutputRequest) SetSmoothingLatency(v int64) *AddOutputRequest {
4184	s.SmoothingLatency = &v
4185	return s
4186}
4187
4188// SetStreamId sets the StreamId field's value.
4189func (s *AddOutputRequest) SetStreamId(v string) *AddOutputRequest {
4190	s.StreamId = &v
4191	return s
4192}
4193
4194// SetVpcInterfaceAttachment sets the VpcInterfaceAttachment field's value.
4195func (s *AddOutputRequest) SetVpcInterfaceAttachment(v *VpcInterfaceAttachment) *AddOutputRequest {
4196	s.VpcInterfaceAttachment = v
4197	return s
4198}
4199
4200// Exception raised by AWS Elemental MediaConnect. See the error message and
4201// documentation for the operation for more information on the cause of this
4202// exception.
4203type BadRequestException struct {
4204	_            struct{}                  `type:"structure"`
4205	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4206
4207	Message_ *string `locationName:"message" type:"string"`
4208}
4209
4210// String returns the string representation.
4211//
4212// API parameter values that are decorated as "sensitive" in the API will not
4213// be included in the string output. The member name will be present, but the
4214// value will be replaced with "sensitive".
4215func (s BadRequestException) String() string {
4216	return awsutil.Prettify(s)
4217}
4218
4219// GoString returns the string representation.
4220//
4221// API parameter values that are decorated as "sensitive" in the API will not
4222// be included in the string output. The member name will be present, but the
4223// value will be replaced with "sensitive".
4224func (s BadRequestException) GoString() string {
4225	return s.String()
4226}
4227
4228func newErrorBadRequestException(v protocol.ResponseMetadata) error {
4229	return &BadRequestException{
4230		RespMetadata: v,
4231	}
4232}
4233
4234// Code returns the exception type name.
4235func (s *BadRequestException) Code() string {
4236	return "BadRequestException"
4237}
4238
4239// Message returns the exception's message.
4240func (s *BadRequestException) Message() string {
4241	if s.Message_ != nil {
4242		return *s.Message_
4243	}
4244	return ""
4245}
4246
4247// OrigErr always returns nil, satisfies awserr.Error interface.
4248func (s *BadRequestException) OrigErr() error {
4249	return nil
4250}
4251
4252func (s *BadRequestException) Error() string {
4253	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4254}
4255
4256// Status code returns the HTTP status code for the request's response error.
4257func (s *BadRequestException) StatusCode() int {
4258	return s.RespMetadata.StatusCode
4259}
4260
4261// RequestID returns the service's response RequestID for request.
4262func (s *BadRequestException) RequestID() string {
4263	return s.RespMetadata.RequestID
4264}
4265
4266// Exception raised by AWS Elemental MediaConnect. See the error message and
4267// documentation for the operation for more information on the cause of this
4268// exception.
4269type CreateFlow420Exception struct {
4270	_            struct{}                  `type:"structure"`
4271	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4272
4273	Message_ *string `locationName:"message" type:"string"`
4274}
4275
4276// String returns the string representation.
4277//
4278// API parameter values that are decorated as "sensitive" in the API will not
4279// be included in the string output. The member name will be present, but the
4280// value will be replaced with "sensitive".
4281func (s CreateFlow420Exception) String() string {
4282	return awsutil.Prettify(s)
4283}
4284
4285// GoString returns the string representation.
4286//
4287// API parameter values that are decorated as "sensitive" in the API will not
4288// be included in the string output. The member name will be present, but the
4289// value will be replaced with "sensitive".
4290func (s CreateFlow420Exception) GoString() string {
4291	return s.String()
4292}
4293
4294func newErrorCreateFlow420Exception(v protocol.ResponseMetadata) error {
4295	return &CreateFlow420Exception{
4296		RespMetadata: v,
4297	}
4298}
4299
4300// Code returns the exception type name.
4301func (s *CreateFlow420Exception) Code() string {
4302	return "CreateFlow420Exception"
4303}
4304
4305// Message returns the exception's message.
4306func (s *CreateFlow420Exception) Message() string {
4307	if s.Message_ != nil {
4308		return *s.Message_
4309	}
4310	return ""
4311}
4312
4313// OrigErr always returns nil, satisfies awserr.Error interface.
4314func (s *CreateFlow420Exception) OrigErr() error {
4315	return nil
4316}
4317
4318func (s *CreateFlow420Exception) Error() string {
4319	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4320}
4321
4322// Status code returns the HTTP status code for the request's response error.
4323func (s *CreateFlow420Exception) StatusCode() int {
4324	return s.RespMetadata.StatusCode
4325}
4326
4327// RequestID returns the service's response RequestID for request.
4328func (s *CreateFlow420Exception) RequestID() string {
4329	return s.RespMetadata.RequestID
4330}
4331
4332// Creates a new flow. The request must include one source. The request optionally
4333// can include outputs (up to 50) and entitlements (up to 50.)
4334type CreateFlowInput struct {
4335	_ struct{} `type:"structure"`
4336
4337	// The Availability Zone that you want to create the flow in. These options
4338	// are limited to the Availability Zones within the current AWS Region.
4339	AvailabilityZone *string `locationName:"availabilityZone" type:"string"`
4340
4341	// The entitlements that you want to grant on a flow.
4342	Entitlements []*GrantEntitlementRequest `locationName:"entitlements" type:"list"`
4343
4344	// The media streams that you want to add to the flow. You can associate these
4345	// media streams with sources and outputs on the flow.
4346	MediaStreams []*AddMediaStreamRequest `locationName:"mediaStreams" type:"list"`
4347
4348	// The name of the flow.
4349	//
4350	// Name is a required field
4351	Name *string `locationName:"name" type:"string" required:"true"`
4352
4353	// The outputs that you want to add to this flow.
4354	Outputs []*AddOutputRequest `locationName:"outputs" type:"list"`
4355
4356	// The settings for the source of the flow.
4357	Source *SetSourceRequest `locationName:"source" type:"structure"`
4358
4359	// The settings for source failover
4360	SourceFailoverConfig *FailoverConfig `locationName:"sourceFailoverConfig" type:"structure"`
4361
4362	Sources []*SetSourceRequest `locationName:"sources" type:"list"`
4363
4364	// The VPC interfaces you want on the flow.
4365	VpcInterfaces []*VpcInterfaceRequest `locationName:"vpcInterfaces" type:"list"`
4366}
4367
4368// String returns the string representation.
4369//
4370// API parameter values that are decorated as "sensitive" in the API will not
4371// be included in the string output. The member name will be present, but the
4372// value will be replaced with "sensitive".
4373func (s CreateFlowInput) String() string {
4374	return awsutil.Prettify(s)
4375}
4376
4377// GoString returns the string representation.
4378//
4379// API parameter values that are decorated as "sensitive" in the API will not
4380// be included in the string output. The member name will be present, but the
4381// value will be replaced with "sensitive".
4382func (s CreateFlowInput) GoString() string {
4383	return s.String()
4384}
4385
4386// Validate inspects the fields of the type to determine if they are valid.
4387func (s *CreateFlowInput) Validate() error {
4388	invalidParams := request.ErrInvalidParams{Context: "CreateFlowInput"}
4389	if s.Name == nil {
4390		invalidParams.Add(request.NewErrParamRequired("Name"))
4391	}
4392	if s.Entitlements != nil {
4393		for i, v := range s.Entitlements {
4394			if v == nil {
4395				continue
4396			}
4397			if err := v.Validate(); err != nil {
4398				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Entitlements", i), err.(request.ErrInvalidParams))
4399			}
4400		}
4401	}
4402	if s.MediaStreams != nil {
4403		for i, v := range s.MediaStreams {
4404			if v == nil {
4405				continue
4406			}
4407			if err := v.Validate(); err != nil {
4408				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MediaStreams", i), err.(request.ErrInvalidParams))
4409			}
4410		}
4411	}
4412	if s.Outputs != nil {
4413		for i, v := range s.Outputs {
4414			if v == nil {
4415				continue
4416			}
4417			if err := v.Validate(); err != nil {
4418				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Outputs", i), err.(request.ErrInvalidParams))
4419			}
4420		}
4421	}
4422	if s.Source != nil {
4423		if err := s.Source.Validate(); err != nil {
4424			invalidParams.AddNested("Source", err.(request.ErrInvalidParams))
4425		}
4426	}
4427	if s.Sources != nil {
4428		for i, v := range s.Sources {
4429			if v == nil {
4430				continue
4431			}
4432			if err := v.Validate(); err != nil {
4433				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Sources", i), err.(request.ErrInvalidParams))
4434			}
4435		}
4436	}
4437	if s.VpcInterfaces != nil {
4438		for i, v := range s.VpcInterfaces {
4439			if v == nil {
4440				continue
4441			}
4442			if err := v.Validate(); err != nil {
4443				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "VpcInterfaces", i), err.(request.ErrInvalidParams))
4444			}
4445		}
4446	}
4447
4448	if invalidParams.Len() > 0 {
4449		return invalidParams
4450	}
4451	return nil
4452}
4453
4454// SetAvailabilityZone sets the AvailabilityZone field's value.
4455func (s *CreateFlowInput) SetAvailabilityZone(v string) *CreateFlowInput {
4456	s.AvailabilityZone = &v
4457	return s
4458}
4459
4460// SetEntitlements sets the Entitlements field's value.
4461func (s *CreateFlowInput) SetEntitlements(v []*GrantEntitlementRequest) *CreateFlowInput {
4462	s.Entitlements = v
4463	return s
4464}
4465
4466// SetMediaStreams sets the MediaStreams field's value.
4467func (s *CreateFlowInput) SetMediaStreams(v []*AddMediaStreamRequest) *CreateFlowInput {
4468	s.MediaStreams = v
4469	return s
4470}
4471
4472// SetName sets the Name field's value.
4473func (s *CreateFlowInput) SetName(v string) *CreateFlowInput {
4474	s.Name = &v
4475	return s
4476}
4477
4478// SetOutputs sets the Outputs field's value.
4479func (s *CreateFlowInput) SetOutputs(v []*AddOutputRequest) *CreateFlowInput {
4480	s.Outputs = v
4481	return s
4482}
4483
4484// SetSource sets the Source field's value.
4485func (s *CreateFlowInput) SetSource(v *SetSourceRequest) *CreateFlowInput {
4486	s.Source = v
4487	return s
4488}
4489
4490// SetSourceFailoverConfig sets the SourceFailoverConfig field's value.
4491func (s *CreateFlowInput) SetSourceFailoverConfig(v *FailoverConfig) *CreateFlowInput {
4492	s.SourceFailoverConfig = v
4493	return s
4494}
4495
4496// SetSources sets the Sources field's value.
4497func (s *CreateFlowInput) SetSources(v []*SetSourceRequest) *CreateFlowInput {
4498	s.Sources = v
4499	return s
4500}
4501
4502// SetVpcInterfaces sets the VpcInterfaces field's value.
4503func (s *CreateFlowInput) SetVpcInterfaces(v []*VpcInterfaceRequest) *CreateFlowInput {
4504	s.VpcInterfaces = v
4505	return s
4506}
4507
4508// The result of a successful CreateFlow request.
4509type CreateFlowOutput struct {
4510	_ struct{} `type:"structure"`
4511
4512	// The settings for a flow, including its source, outputs, and entitlements.
4513	Flow *Flow `locationName:"flow" type:"structure"`
4514}
4515
4516// String returns the string representation.
4517//
4518// API parameter values that are decorated as "sensitive" in the API will not
4519// be included in the string output. The member name will be present, but the
4520// value will be replaced with "sensitive".
4521func (s CreateFlowOutput) String() string {
4522	return awsutil.Prettify(s)
4523}
4524
4525// GoString returns the string representation.
4526//
4527// API parameter values that are decorated as "sensitive" in the API will not
4528// be included in the string output. The member name will be present, but the
4529// value will be replaced with "sensitive".
4530func (s CreateFlowOutput) GoString() string {
4531	return s.String()
4532}
4533
4534// SetFlow sets the Flow field's value.
4535func (s *CreateFlowOutput) SetFlow(v *Flow) *CreateFlowOutput {
4536	s.Flow = v
4537	return s
4538}
4539
4540type DeleteFlowInput struct {
4541	_ struct{} `type:"structure" nopayload:"true"`
4542
4543	// FlowArn is a required field
4544	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
4545}
4546
4547// String returns the string representation.
4548//
4549// API parameter values that are decorated as "sensitive" in the API will not
4550// be included in the string output. The member name will be present, but the
4551// value will be replaced with "sensitive".
4552func (s DeleteFlowInput) String() string {
4553	return awsutil.Prettify(s)
4554}
4555
4556// GoString returns the string representation.
4557//
4558// API parameter values that are decorated as "sensitive" in the API will not
4559// be included in the string output. The member name will be present, but the
4560// value will be replaced with "sensitive".
4561func (s DeleteFlowInput) GoString() string {
4562	return s.String()
4563}
4564
4565// Validate inspects the fields of the type to determine if they are valid.
4566func (s *DeleteFlowInput) Validate() error {
4567	invalidParams := request.ErrInvalidParams{Context: "DeleteFlowInput"}
4568	if s.FlowArn == nil {
4569		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
4570	}
4571	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
4572		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
4573	}
4574
4575	if invalidParams.Len() > 0 {
4576		return invalidParams
4577	}
4578	return nil
4579}
4580
4581// SetFlowArn sets the FlowArn field's value.
4582func (s *DeleteFlowInput) SetFlowArn(v string) *DeleteFlowInput {
4583	s.FlowArn = &v
4584	return s
4585}
4586
4587// The result of a successful DeleteFlow request.
4588type DeleteFlowOutput struct {
4589	_ struct{} `type:"structure"`
4590
4591	// The ARN of the flow that was deleted.
4592	FlowArn *string `locationName:"flowArn" type:"string"`
4593
4594	// The status of the flow when the DeleteFlow process begins.
4595	Status *string `locationName:"status" type:"string" enum:"Status"`
4596}
4597
4598// String returns the string representation.
4599//
4600// API parameter values that are decorated as "sensitive" in the API will not
4601// be included in the string output. The member name will be present, but the
4602// value will be replaced with "sensitive".
4603func (s DeleteFlowOutput) String() string {
4604	return awsutil.Prettify(s)
4605}
4606
4607// GoString returns the string representation.
4608//
4609// API parameter values that are decorated as "sensitive" in the API will not
4610// be included in the string output. The member name will be present, but the
4611// value will be replaced with "sensitive".
4612func (s DeleteFlowOutput) GoString() string {
4613	return s.String()
4614}
4615
4616// SetFlowArn sets the FlowArn field's value.
4617func (s *DeleteFlowOutput) SetFlowArn(v string) *DeleteFlowOutput {
4618	s.FlowArn = &v
4619	return s
4620}
4621
4622// SetStatus sets the Status field's value.
4623func (s *DeleteFlowOutput) SetStatus(v string) *DeleteFlowOutput {
4624	s.Status = &v
4625	return s
4626}
4627
4628type DescribeFlowInput struct {
4629	_ struct{} `type:"structure" nopayload:"true"`
4630
4631	// FlowArn is a required field
4632	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
4633}
4634
4635// String returns the string representation.
4636//
4637// API parameter values that are decorated as "sensitive" in the API will not
4638// be included in the string output. The member name will be present, but the
4639// value will be replaced with "sensitive".
4640func (s DescribeFlowInput) String() string {
4641	return awsutil.Prettify(s)
4642}
4643
4644// GoString returns the string representation.
4645//
4646// API parameter values that are decorated as "sensitive" in the API will not
4647// be included in the string output. The member name will be present, but the
4648// value will be replaced with "sensitive".
4649func (s DescribeFlowInput) GoString() string {
4650	return s.String()
4651}
4652
4653// Validate inspects the fields of the type to determine if they are valid.
4654func (s *DescribeFlowInput) Validate() error {
4655	invalidParams := request.ErrInvalidParams{Context: "DescribeFlowInput"}
4656	if s.FlowArn == nil {
4657		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
4658	}
4659	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
4660		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
4661	}
4662
4663	if invalidParams.Len() > 0 {
4664		return invalidParams
4665	}
4666	return nil
4667}
4668
4669// SetFlowArn sets the FlowArn field's value.
4670func (s *DescribeFlowInput) SetFlowArn(v string) *DescribeFlowInput {
4671	s.FlowArn = &v
4672	return s
4673}
4674
4675// The result of a successful DescribeFlow request.
4676type DescribeFlowOutput struct {
4677	_ struct{} `type:"structure"`
4678
4679	// The settings for a flow, including its source, outputs, and entitlements.
4680	Flow *Flow `locationName:"flow" type:"structure"`
4681
4682	// Messages that provide the state of the flow.
4683	Messages *Messages `locationName:"messages" type:"structure"`
4684}
4685
4686// String returns the string representation.
4687//
4688// API parameter values that are decorated as "sensitive" in the API will not
4689// be included in the string output. The member name will be present, but the
4690// value will be replaced with "sensitive".
4691func (s DescribeFlowOutput) String() string {
4692	return awsutil.Prettify(s)
4693}
4694
4695// GoString returns the string representation.
4696//
4697// API parameter values that are decorated as "sensitive" in the API will not
4698// be included in the string output. The member name will be present, but the
4699// value will be replaced with "sensitive".
4700func (s DescribeFlowOutput) GoString() string {
4701	return s.String()
4702}
4703
4704// SetFlow sets the Flow field's value.
4705func (s *DescribeFlowOutput) SetFlow(v *Flow) *DescribeFlowOutput {
4706	s.Flow = v
4707	return s
4708}
4709
4710// SetMessages sets the Messages field's value.
4711func (s *DescribeFlowOutput) SetMessages(v *Messages) *DescribeFlowOutput {
4712	s.Messages = v
4713	return s
4714}
4715
4716type DescribeOfferingInput struct {
4717	_ struct{} `type:"structure" nopayload:"true"`
4718
4719	// OfferingArn is a required field
4720	OfferingArn *string `location:"uri" locationName:"offeringArn" type:"string" required:"true"`
4721}
4722
4723// String returns the string representation.
4724//
4725// API parameter values that are decorated as "sensitive" in the API will not
4726// be included in the string output. The member name will be present, but the
4727// value will be replaced with "sensitive".
4728func (s DescribeOfferingInput) String() string {
4729	return awsutil.Prettify(s)
4730}
4731
4732// GoString returns the string representation.
4733//
4734// API parameter values that are decorated as "sensitive" in the API will not
4735// be included in the string output. The member name will be present, but the
4736// value will be replaced with "sensitive".
4737func (s DescribeOfferingInput) GoString() string {
4738	return s.String()
4739}
4740
4741// Validate inspects the fields of the type to determine if they are valid.
4742func (s *DescribeOfferingInput) Validate() error {
4743	invalidParams := request.ErrInvalidParams{Context: "DescribeOfferingInput"}
4744	if s.OfferingArn == nil {
4745		invalidParams.Add(request.NewErrParamRequired("OfferingArn"))
4746	}
4747	if s.OfferingArn != nil && len(*s.OfferingArn) < 1 {
4748		invalidParams.Add(request.NewErrParamMinLen("OfferingArn", 1))
4749	}
4750
4751	if invalidParams.Len() > 0 {
4752		return invalidParams
4753	}
4754	return nil
4755}
4756
4757// SetOfferingArn sets the OfferingArn field's value.
4758func (s *DescribeOfferingInput) SetOfferingArn(v string) *DescribeOfferingInput {
4759	s.OfferingArn = &v
4760	return s
4761}
4762
4763// The result of a successful DescribeOffering request.
4764type DescribeOfferingOutput struct {
4765	_ struct{} `type:"structure"`
4766
4767	// A savings plan that reserves a certain amount of outbound bandwidth usage
4768	// at a discounted rate each month over a period of time.
4769	Offering *Offering `locationName:"offering" type:"structure"`
4770}
4771
4772// String returns the string representation.
4773//
4774// API parameter values that are decorated as "sensitive" in the API will not
4775// be included in the string output. The member name will be present, but the
4776// value will be replaced with "sensitive".
4777func (s DescribeOfferingOutput) String() string {
4778	return awsutil.Prettify(s)
4779}
4780
4781// GoString returns the string representation.
4782//
4783// API parameter values that are decorated as "sensitive" in the API will not
4784// be included in the string output. The member name will be present, but the
4785// value will be replaced with "sensitive".
4786func (s DescribeOfferingOutput) GoString() string {
4787	return s.String()
4788}
4789
4790// SetOffering sets the Offering field's value.
4791func (s *DescribeOfferingOutput) SetOffering(v *Offering) *DescribeOfferingOutput {
4792	s.Offering = v
4793	return s
4794}
4795
4796type DescribeReservationInput struct {
4797	_ struct{} `type:"structure" nopayload:"true"`
4798
4799	// ReservationArn is a required field
4800	ReservationArn *string `location:"uri" locationName:"reservationArn" type:"string" required:"true"`
4801}
4802
4803// String returns the string representation.
4804//
4805// API parameter values that are decorated as "sensitive" in the API will not
4806// be included in the string output. The member name will be present, but the
4807// value will be replaced with "sensitive".
4808func (s DescribeReservationInput) String() string {
4809	return awsutil.Prettify(s)
4810}
4811
4812// GoString returns the string representation.
4813//
4814// API parameter values that are decorated as "sensitive" in the API will not
4815// be included in the string output. The member name will be present, but the
4816// value will be replaced with "sensitive".
4817func (s DescribeReservationInput) GoString() string {
4818	return s.String()
4819}
4820
4821// Validate inspects the fields of the type to determine if they are valid.
4822func (s *DescribeReservationInput) Validate() error {
4823	invalidParams := request.ErrInvalidParams{Context: "DescribeReservationInput"}
4824	if s.ReservationArn == nil {
4825		invalidParams.Add(request.NewErrParamRequired("ReservationArn"))
4826	}
4827	if s.ReservationArn != nil && len(*s.ReservationArn) < 1 {
4828		invalidParams.Add(request.NewErrParamMinLen("ReservationArn", 1))
4829	}
4830
4831	if invalidParams.Len() > 0 {
4832		return invalidParams
4833	}
4834	return nil
4835}
4836
4837// SetReservationArn sets the ReservationArn field's value.
4838func (s *DescribeReservationInput) SetReservationArn(v string) *DescribeReservationInput {
4839	s.ReservationArn = &v
4840	return s
4841}
4842
4843// The result of a successful DescribeReservation request.
4844type DescribeReservationOutput struct {
4845	_ struct{} `type:"structure"`
4846
4847	// A pricing agreement for a discounted rate for a specific outbound bandwidth
4848	// that your MediaConnect account will use each month over a specific time period.
4849	// The discounted rate in the reservation applies to outbound bandwidth for
4850	// all flows from your account until your account reaches the amount of bandwidth
4851	// in your reservation. If you use more outbound bandwidth than the agreed upon
4852	// amount in a single month, the overage is charged at the on-demand rate.
4853	Reservation *Reservation `locationName:"reservation" type:"structure"`
4854}
4855
4856// String returns the string representation.
4857//
4858// API parameter values that are decorated as "sensitive" in the API will not
4859// be included in the string output. The member name will be present, but the
4860// value will be replaced with "sensitive".
4861func (s DescribeReservationOutput) String() string {
4862	return awsutil.Prettify(s)
4863}
4864
4865// GoString returns the string representation.
4866//
4867// API parameter values that are decorated as "sensitive" in the API will not
4868// be included in the string output. The member name will be present, but the
4869// value will be replaced with "sensitive".
4870func (s DescribeReservationOutput) GoString() string {
4871	return s.String()
4872}
4873
4874// SetReservation sets the Reservation field's value.
4875func (s *DescribeReservationOutput) SetReservation(v *Reservation) *DescribeReservationOutput {
4876	s.Reservation = v
4877	return s
4878}
4879
4880// The transport parameters that are associated with an outbound media stream.
4881type DestinationConfiguration struct {
4882	_ struct{} `type:"structure"`
4883
4884	// The IP address where contents of the media stream will be sent.
4885	//
4886	// DestinationIp is a required field
4887	DestinationIp *string `locationName:"destinationIp" type:"string" required:"true"`
4888
4889	// The port to use when the content of the media stream is distributed to the
4890	// output.
4891	//
4892	// DestinationPort is a required field
4893	DestinationPort *int64 `locationName:"destinationPort" type:"integer" required:"true"`
4894
4895	// The VPC interface that is used for the media stream associated with the output.
4896	//
4897	// Interface is a required field
4898	Interface *Interface `locationName:"interface" type:"structure" required:"true"`
4899
4900	// The IP address that the receiver requires in order to establish a connection
4901	// with the flow. This value is represented by the elastic network interface
4902	// IP address of the VPC. This field applies only to outputs that use the CDI
4903	// or ST 2110 JPEG XS protocol.
4904	//
4905	// OutboundIp is a required field
4906	OutboundIp *string `locationName:"outboundIp" type:"string" required:"true"`
4907}
4908
4909// String returns the string representation.
4910//
4911// API parameter values that are decorated as "sensitive" in the API will not
4912// be included in the string output. The member name will be present, but the
4913// value will be replaced with "sensitive".
4914func (s DestinationConfiguration) String() string {
4915	return awsutil.Prettify(s)
4916}
4917
4918// GoString returns the string representation.
4919//
4920// API parameter values that are decorated as "sensitive" in the API will not
4921// be included in the string output. The member name will be present, but the
4922// value will be replaced with "sensitive".
4923func (s DestinationConfiguration) GoString() string {
4924	return s.String()
4925}
4926
4927// SetDestinationIp sets the DestinationIp field's value.
4928func (s *DestinationConfiguration) SetDestinationIp(v string) *DestinationConfiguration {
4929	s.DestinationIp = &v
4930	return s
4931}
4932
4933// SetDestinationPort sets the DestinationPort field's value.
4934func (s *DestinationConfiguration) SetDestinationPort(v int64) *DestinationConfiguration {
4935	s.DestinationPort = &v
4936	return s
4937}
4938
4939// SetInterface sets the Interface field's value.
4940func (s *DestinationConfiguration) SetInterface(v *Interface) *DestinationConfiguration {
4941	s.Interface = v
4942	return s
4943}
4944
4945// SetOutboundIp sets the OutboundIp field's value.
4946func (s *DestinationConfiguration) SetOutboundIp(v string) *DestinationConfiguration {
4947	s.OutboundIp = &v
4948	return s
4949}
4950
4951// The transport parameters that you want to associate with an outbound media
4952// stream.
4953type DestinationConfigurationRequest struct {
4954	_ struct{} `type:"structure"`
4955
4956	// The IP address where you want MediaConnect to send contents of the media
4957	// stream.
4958	//
4959	// DestinationIp is a required field
4960	DestinationIp *string `locationName:"destinationIp" type:"string" required:"true"`
4961
4962	// The port that you want MediaConnect to use when it distributes the media
4963	// stream to the output.
4964	//
4965	// DestinationPort is a required field
4966	DestinationPort *int64 `locationName:"destinationPort" type:"integer" required:"true"`
4967
4968	// The VPC interface that you want to use for the media stream associated with
4969	// the output.
4970	//
4971	// Interface is a required field
4972	Interface *InterfaceRequest `locationName:"interface" type:"structure" required:"true"`
4973}
4974
4975// String returns the string representation.
4976//
4977// API parameter values that are decorated as "sensitive" in the API will not
4978// be included in the string output. The member name will be present, but the
4979// value will be replaced with "sensitive".
4980func (s DestinationConfigurationRequest) String() string {
4981	return awsutil.Prettify(s)
4982}
4983
4984// GoString returns the string representation.
4985//
4986// API parameter values that are decorated as "sensitive" in the API will not
4987// be included in the string output. The member name will be present, but the
4988// value will be replaced with "sensitive".
4989func (s DestinationConfigurationRequest) GoString() string {
4990	return s.String()
4991}
4992
4993// Validate inspects the fields of the type to determine if they are valid.
4994func (s *DestinationConfigurationRequest) Validate() error {
4995	invalidParams := request.ErrInvalidParams{Context: "DestinationConfigurationRequest"}
4996	if s.DestinationIp == nil {
4997		invalidParams.Add(request.NewErrParamRequired("DestinationIp"))
4998	}
4999	if s.DestinationPort == nil {
5000		invalidParams.Add(request.NewErrParamRequired("DestinationPort"))
5001	}
5002	if s.Interface == nil {
5003		invalidParams.Add(request.NewErrParamRequired("Interface"))
5004	}
5005	if s.Interface != nil {
5006		if err := s.Interface.Validate(); err != nil {
5007			invalidParams.AddNested("Interface", err.(request.ErrInvalidParams))
5008		}
5009	}
5010
5011	if invalidParams.Len() > 0 {
5012		return invalidParams
5013	}
5014	return nil
5015}
5016
5017// SetDestinationIp sets the DestinationIp field's value.
5018func (s *DestinationConfigurationRequest) SetDestinationIp(v string) *DestinationConfigurationRequest {
5019	s.DestinationIp = &v
5020	return s
5021}
5022
5023// SetDestinationPort sets the DestinationPort field's value.
5024func (s *DestinationConfigurationRequest) SetDestinationPort(v int64) *DestinationConfigurationRequest {
5025	s.DestinationPort = &v
5026	return s
5027}
5028
5029// SetInterface sets the Interface field's value.
5030func (s *DestinationConfigurationRequest) SetInterface(v *InterfaceRequest) *DestinationConfigurationRequest {
5031	s.Interface = v
5032	return s
5033}
5034
5035// A collection of parameters that determine how MediaConnect will convert the
5036// content. These fields only apply to outputs on flows that have a CDI source.
5037type EncodingParameters struct {
5038	_ struct{} `type:"structure"`
5039
5040	// A value that is used to calculate compression for an output. The bitrate
5041	// of the output is calculated as follows: Output bitrate = (1 / compressionFactor)
5042	// * (source bitrate) This property only applies to outputs that use the ST
5043	// 2110 JPEG XS protocol, with a flow source that uses the CDI protocol. Valid
5044	// values are floating point numbers in the range of 3.0 to 10.0, inclusive.
5045	//
5046	// CompressionFactor is a required field
5047	CompressionFactor *float64 `locationName:"compressionFactor" type:"double" required:"true"`
5048
5049	// A setting on the encoder that drives compression settings. This property
5050	// only applies to video media streams associated with outputs that use the
5051	// ST 2110 JPEG XS protocol, with a flow source that uses the CDI protocol.
5052	//
5053	// EncoderProfile is a required field
5054	EncoderProfile *string `locationName:"encoderProfile" type:"string" required:"true" enum:"EncoderProfile"`
5055}
5056
5057// String returns the string representation.
5058//
5059// API parameter values that are decorated as "sensitive" in the API will not
5060// be included in the string output. The member name will be present, but the
5061// value will be replaced with "sensitive".
5062func (s EncodingParameters) String() string {
5063	return awsutil.Prettify(s)
5064}
5065
5066// GoString returns the string representation.
5067//
5068// API parameter values that are decorated as "sensitive" in the API will not
5069// be included in the string output. The member name will be present, but the
5070// value will be replaced with "sensitive".
5071func (s EncodingParameters) GoString() string {
5072	return s.String()
5073}
5074
5075// SetCompressionFactor sets the CompressionFactor field's value.
5076func (s *EncodingParameters) SetCompressionFactor(v float64) *EncodingParameters {
5077	s.CompressionFactor = &v
5078	return s
5079}
5080
5081// SetEncoderProfile sets the EncoderProfile field's value.
5082func (s *EncodingParameters) SetEncoderProfile(v string) *EncodingParameters {
5083	s.EncoderProfile = &v
5084	return s
5085}
5086
5087// A collection of parameters that determine how MediaConnect will convert the
5088// content. These fields only apply to outputs on flows that have a CDI source.
5089type EncodingParametersRequest struct {
5090	_ struct{} `type:"structure"`
5091
5092	// A value that is used to calculate compression for an output. The bitrate
5093	// of the output is calculated as follows: Output bitrate = (1 / compressionFactor)
5094	// * (source bitrate) This property only applies to outputs that use the ST
5095	// 2110 JPEG XS protocol, with a flow source that uses the CDI protocol. Valid
5096	// values are floating point numbers in the range of 3.0 to 10.0, inclusive.
5097	//
5098	// CompressionFactor is a required field
5099	CompressionFactor *float64 `locationName:"compressionFactor" type:"double" required:"true"`
5100
5101	// A setting on the encoder that drives compression settings. This property
5102	// only applies to video media streams associated with outputs that use the
5103	// ST 2110 JPEG XS protocol, if at least one source on the flow uses the CDI
5104	// protocol.
5105	//
5106	// EncoderProfile is a required field
5107	EncoderProfile *string `locationName:"encoderProfile" type:"string" required:"true" enum:"EncoderProfile"`
5108}
5109
5110// String returns the string representation.
5111//
5112// API parameter values that are decorated as "sensitive" in the API will not
5113// be included in the string output. The member name will be present, but the
5114// value will be replaced with "sensitive".
5115func (s EncodingParametersRequest) String() string {
5116	return awsutil.Prettify(s)
5117}
5118
5119// GoString returns the string representation.
5120//
5121// API parameter values that are decorated as "sensitive" in the API will not
5122// be included in the string output. The member name will be present, but the
5123// value will be replaced with "sensitive".
5124func (s EncodingParametersRequest) GoString() string {
5125	return s.String()
5126}
5127
5128// Validate inspects the fields of the type to determine if they are valid.
5129func (s *EncodingParametersRequest) Validate() error {
5130	invalidParams := request.ErrInvalidParams{Context: "EncodingParametersRequest"}
5131	if s.CompressionFactor == nil {
5132		invalidParams.Add(request.NewErrParamRequired("CompressionFactor"))
5133	}
5134	if s.EncoderProfile == nil {
5135		invalidParams.Add(request.NewErrParamRequired("EncoderProfile"))
5136	}
5137
5138	if invalidParams.Len() > 0 {
5139		return invalidParams
5140	}
5141	return nil
5142}
5143
5144// SetCompressionFactor sets the CompressionFactor field's value.
5145func (s *EncodingParametersRequest) SetCompressionFactor(v float64) *EncodingParametersRequest {
5146	s.CompressionFactor = &v
5147	return s
5148}
5149
5150// SetEncoderProfile sets the EncoderProfile field's value.
5151func (s *EncodingParametersRequest) SetEncoderProfile(v string) *EncodingParametersRequest {
5152	s.EncoderProfile = &v
5153	return s
5154}
5155
5156// Information about the encryption of the flow.
5157type Encryption struct {
5158	_ struct{} `type:"structure"`
5159
5160	// The type of algorithm that is used for the encryption (such as aes128, aes192,
5161	// or aes256).
5162	Algorithm *string `locationName:"algorithm" type:"string" enum:"Algorithm"`
5163
5164	// A 128-bit, 16-byte hex value represented by a 32-character string, to be
5165	// used with the key for encrypting content. This parameter is not valid for
5166	// static key encryption.
5167	ConstantInitializationVector *string `locationName:"constantInitializationVector" type:"string"`
5168
5169	// The value of one of the devices that you configured with your digital rights
5170	// management (DRM) platform key provider. This parameter is required for SPEKE
5171	// encryption and is not valid for static key encryption.
5172	DeviceId *string `locationName:"deviceId" type:"string"`
5173
5174	// The type of key that is used for the encryption. If no keyType is provided,
5175	// the service will use the default setting (static-key).
5176	KeyType *string `locationName:"keyType" type:"string" enum:"KeyType"`
5177
5178	// The AWS Region that the API Gateway proxy endpoint was created in. This parameter
5179	// is required for SPEKE encryption and is not valid for static key encryption.
5180	Region *string `locationName:"region" type:"string"`
5181
5182	// An identifier for the content. The service sends this value to the key server
5183	// to identify the current endpoint. The resource ID is also known as the content
5184	// ID. This parameter is required for SPEKE encryption and is not valid for
5185	// static key encryption.
5186	ResourceId *string `locationName:"resourceId" type:"string"`
5187
5188	// The ARN of the role that you created during setup (when you set up AWS Elemental
5189	// MediaConnect as a trusted entity).
5190	//
5191	// RoleArn is a required field
5192	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
5193
5194	// The ARN of the secret that you created in AWS Secrets Manager to store the
5195	// encryption key. This parameter is required for static key encryption and
5196	// is not valid for SPEKE encryption.
5197	SecretArn *string `locationName:"secretArn" type:"string"`
5198
5199	// The URL from the API Gateway proxy that you set up to talk to your key server.
5200	// This parameter is required for SPEKE encryption and is not valid for static
5201	// key encryption.
5202	Url *string `locationName:"url" type:"string"`
5203}
5204
5205// String returns the string representation.
5206//
5207// API parameter values that are decorated as "sensitive" in the API will not
5208// be included in the string output. The member name will be present, but the
5209// value will be replaced with "sensitive".
5210func (s Encryption) String() string {
5211	return awsutil.Prettify(s)
5212}
5213
5214// GoString returns the string representation.
5215//
5216// API parameter values that are decorated as "sensitive" in the API will not
5217// be included in the string output. The member name will be present, but the
5218// value will be replaced with "sensitive".
5219func (s Encryption) GoString() string {
5220	return s.String()
5221}
5222
5223// Validate inspects the fields of the type to determine if they are valid.
5224func (s *Encryption) Validate() error {
5225	invalidParams := request.ErrInvalidParams{Context: "Encryption"}
5226	if s.RoleArn == nil {
5227		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
5228	}
5229
5230	if invalidParams.Len() > 0 {
5231		return invalidParams
5232	}
5233	return nil
5234}
5235
5236// SetAlgorithm sets the Algorithm field's value.
5237func (s *Encryption) SetAlgorithm(v string) *Encryption {
5238	s.Algorithm = &v
5239	return s
5240}
5241
5242// SetConstantInitializationVector sets the ConstantInitializationVector field's value.
5243func (s *Encryption) SetConstantInitializationVector(v string) *Encryption {
5244	s.ConstantInitializationVector = &v
5245	return s
5246}
5247
5248// SetDeviceId sets the DeviceId field's value.
5249func (s *Encryption) SetDeviceId(v string) *Encryption {
5250	s.DeviceId = &v
5251	return s
5252}
5253
5254// SetKeyType sets the KeyType field's value.
5255func (s *Encryption) SetKeyType(v string) *Encryption {
5256	s.KeyType = &v
5257	return s
5258}
5259
5260// SetRegion sets the Region field's value.
5261func (s *Encryption) SetRegion(v string) *Encryption {
5262	s.Region = &v
5263	return s
5264}
5265
5266// SetResourceId sets the ResourceId field's value.
5267func (s *Encryption) SetResourceId(v string) *Encryption {
5268	s.ResourceId = &v
5269	return s
5270}
5271
5272// SetRoleArn sets the RoleArn field's value.
5273func (s *Encryption) SetRoleArn(v string) *Encryption {
5274	s.RoleArn = &v
5275	return s
5276}
5277
5278// SetSecretArn sets the SecretArn field's value.
5279func (s *Encryption) SetSecretArn(v string) *Encryption {
5280	s.SecretArn = &v
5281	return s
5282}
5283
5284// SetUrl sets the Url field's value.
5285func (s *Encryption) SetUrl(v string) *Encryption {
5286	s.Url = &v
5287	return s
5288}
5289
5290// The settings for a flow entitlement.
5291type Entitlement struct {
5292	_ struct{} `type:"structure"`
5293
5294	// Percentage from 0-100 of the data transfer cost to be billed to the subscriber.
5295	DataTransferSubscriberFeePercent *int64 `locationName:"dataTransferSubscriberFeePercent" type:"integer"`
5296
5297	// A description of the entitlement.
5298	Description *string `locationName:"description" type:"string"`
5299
5300	// The type of encryption that will be used on the output that is associated
5301	// with this entitlement.
5302	Encryption *Encryption `locationName:"encryption" type:"structure"`
5303
5304	// The ARN of the entitlement.
5305	//
5306	// EntitlementArn is a required field
5307	EntitlementArn *string `locationName:"entitlementArn" type:"string" required:"true"`
5308
5309	// An indication of whether the entitlement is enabled.
5310	EntitlementStatus *string `locationName:"entitlementStatus" type:"string" enum:"EntitlementStatus"`
5311
5312	// The name of the entitlement.
5313	//
5314	// Name is a required field
5315	Name *string `locationName:"name" type:"string" required:"true"`
5316
5317	// The AWS account IDs that you want to share your content with. The receiving
5318	// accounts (subscribers) will be allowed to create their own flow using your
5319	// content as the source.
5320	//
5321	// Subscribers is a required field
5322	Subscribers []*string `locationName:"subscribers" type:"list" required:"true"`
5323}
5324
5325// String returns the string representation.
5326//
5327// API parameter values that are decorated as "sensitive" in the API will not
5328// be included in the string output. The member name will be present, but the
5329// value will be replaced with "sensitive".
5330func (s Entitlement) String() string {
5331	return awsutil.Prettify(s)
5332}
5333
5334// GoString returns the string representation.
5335//
5336// API parameter values that are decorated as "sensitive" in the API will not
5337// be included in the string output. The member name will be present, but the
5338// value will be replaced with "sensitive".
5339func (s Entitlement) GoString() string {
5340	return s.String()
5341}
5342
5343// SetDataTransferSubscriberFeePercent sets the DataTransferSubscriberFeePercent field's value.
5344func (s *Entitlement) SetDataTransferSubscriberFeePercent(v int64) *Entitlement {
5345	s.DataTransferSubscriberFeePercent = &v
5346	return s
5347}
5348
5349// SetDescription sets the Description field's value.
5350func (s *Entitlement) SetDescription(v string) *Entitlement {
5351	s.Description = &v
5352	return s
5353}
5354
5355// SetEncryption sets the Encryption field's value.
5356func (s *Entitlement) SetEncryption(v *Encryption) *Entitlement {
5357	s.Encryption = v
5358	return s
5359}
5360
5361// SetEntitlementArn sets the EntitlementArn field's value.
5362func (s *Entitlement) SetEntitlementArn(v string) *Entitlement {
5363	s.EntitlementArn = &v
5364	return s
5365}
5366
5367// SetEntitlementStatus sets the EntitlementStatus field's value.
5368func (s *Entitlement) SetEntitlementStatus(v string) *Entitlement {
5369	s.EntitlementStatus = &v
5370	return s
5371}
5372
5373// SetName sets the Name field's value.
5374func (s *Entitlement) SetName(v string) *Entitlement {
5375	s.Name = &v
5376	return s
5377}
5378
5379// SetSubscribers sets the Subscribers field's value.
5380func (s *Entitlement) SetSubscribers(v []*string) *Entitlement {
5381	s.Subscribers = v
5382	return s
5383}
5384
5385// The settings for source failover
5386type FailoverConfig struct {
5387	_ struct{} `type:"structure"`
5388
5389	// The type of failover you choose for this flow. MERGE combines the source
5390	// streams into a single stream, allowing graceful recovery from any single-source
5391	// loss. FAILOVER allows switching between different streams.
5392	FailoverMode *string `locationName:"failoverMode" type:"string" enum:"FailoverMode"`
5393
5394	// Search window time to look for dash-7 packets
5395	RecoveryWindow *int64 `locationName:"recoveryWindow" type:"integer"`
5396
5397	// The priority you want to assign to a source. You can have a primary stream
5398	// and a backup stream or two equally prioritized streams.
5399	SourcePriority *SourcePriority `locationName:"sourcePriority" type:"structure"`
5400
5401	State *string `locationName:"state" type:"string" enum:"State"`
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 FailoverConfig) 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 FailoverConfig) GoString() string {
5419	return s.String()
5420}
5421
5422// SetFailoverMode sets the FailoverMode field's value.
5423func (s *FailoverConfig) SetFailoverMode(v string) *FailoverConfig {
5424	s.FailoverMode = &v
5425	return s
5426}
5427
5428// SetRecoveryWindow sets the RecoveryWindow field's value.
5429func (s *FailoverConfig) SetRecoveryWindow(v int64) *FailoverConfig {
5430	s.RecoveryWindow = &v
5431	return s
5432}
5433
5434// SetSourcePriority sets the SourcePriority field's value.
5435func (s *FailoverConfig) SetSourcePriority(v *SourcePriority) *FailoverConfig {
5436	s.SourcePriority = v
5437	return s
5438}
5439
5440// SetState sets the State field's value.
5441func (s *FailoverConfig) SetState(v string) *FailoverConfig {
5442	s.State = &v
5443	return s
5444}
5445
5446// The settings for a flow, including its source, outputs, and entitlements.
5447type Flow struct {
5448	_ struct{} `type:"structure"`
5449
5450	// The Availability Zone that you want to create the flow in. These options
5451	// are limited to the Availability Zones within the current AWS.
5452	//
5453	// AvailabilityZone is a required field
5454	AvailabilityZone *string `locationName:"availabilityZone" type:"string" required:"true"`
5455
5456	// A description of the flow. This value is not used or seen outside of the
5457	// current AWS Elemental MediaConnect account.
5458	Description *string `locationName:"description" type:"string"`
5459
5460	// The IP address from which video will be sent to output destinations.
5461	EgressIp *string `locationName:"egressIp" type:"string"`
5462
5463	// The entitlements in this flow.
5464	//
5465	// Entitlements is a required field
5466	Entitlements []*Entitlement `locationName:"entitlements" type:"list" required:"true"`
5467
5468	// The Amazon Resource Name (ARN), a unique identifier for any AWS resource,
5469	// of the flow.
5470	//
5471	// FlowArn is a required field
5472	FlowArn *string `locationName:"flowArn" type:"string" required:"true"`
5473
5474	// The media streams that are associated with the flow. After you associate
5475	// a media stream with a source, you can also associate it with outputs on the
5476	// flow.
5477	MediaStreams []*MediaStream `locationName:"mediaStreams" type:"list"`
5478
5479	// The name of the flow.
5480	//
5481	// Name is a required field
5482	Name *string `locationName:"name" type:"string" required:"true"`
5483
5484	// The outputs in this flow.
5485	//
5486	// Outputs is a required field
5487	Outputs []*Output `locationName:"outputs" type:"list" required:"true"`
5488
5489	// The settings for the source of the flow.
5490	//
5491	// Source is a required field
5492	Source *Source `locationName:"source" type:"structure" required:"true"`
5493
5494	// The settings for source failover
5495	SourceFailoverConfig *FailoverConfig `locationName:"sourceFailoverConfig" type:"structure"`
5496
5497	Sources []*Source `locationName:"sources" type:"list"`
5498
5499	// The current status of the flow.
5500	//
5501	// Status is a required field
5502	Status *string `locationName:"status" type:"string" required:"true" enum:"Status"`
5503
5504	// The VPC Interfaces for this flow.
5505	VpcInterfaces []*VpcInterface `locationName:"vpcInterfaces" type:"list"`
5506}
5507
5508// String returns the string representation.
5509//
5510// API parameter values that are decorated as "sensitive" in the API will not
5511// be included in the string output. The member name will be present, but the
5512// value will be replaced with "sensitive".
5513func (s Flow) String() string {
5514	return awsutil.Prettify(s)
5515}
5516
5517// GoString returns the string representation.
5518//
5519// API parameter values that are decorated as "sensitive" in the API will not
5520// be included in the string output. The member name will be present, but the
5521// value will be replaced with "sensitive".
5522func (s Flow) GoString() string {
5523	return s.String()
5524}
5525
5526// SetAvailabilityZone sets the AvailabilityZone field's value.
5527func (s *Flow) SetAvailabilityZone(v string) *Flow {
5528	s.AvailabilityZone = &v
5529	return s
5530}
5531
5532// SetDescription sets the Description field's value.
5533func (s *Flow) SetDescription(v string) *Flow {
5534	s.Description = &v
5535	return s
5536}
5537
5538// SetEgressIp sets the EgressIp field's value.
5539func (s *Flow) SetEgressIp(v string) *Flow {
5540	s.EgressIp = &v
5541	return s
5542}
5543
5544// SetEntitlements sets the Entitlements field's value.
5545func (s *Flow) SetEntitlements(v []*Entitlement) *Flow {
5546	s.Entitlements = v
5547	return s
5548}
5549
5550// SetFlowArn sets the FlowArn field's value.
5551func (s *Flow) SetFlowArn(v string) *Flow {
5552	s.FlowArn = &v
5553	return s
5554}
5555
5556// SetMediaStreams sets the MediaStreams field's value.
5557func (s *Flow) SetMediaStreams(v []*MediaStream) *Flow {
5558	s.MediaStreams = v
5559	return s
5560}
5561
5562// SetName sets the Name field's value.
5563func (s *Flow) SetName(v string) *Flow {
5564	s.Name = &v
5565	return s
5566}
5567
5568// SetOutputs sets the Outputs field's value.
5569func (s *Flow) SetOutputs(v []*Output) *Flow {
5570	s.Outputs = v
5571	return s
5572}
5573
5574// SetSource sets the Source field's value.
5575func (s *Flow) SetSource(v *Source) *Flow {
5576	s.Source = v
5577	return s
5578}
5579
5580// SetSourceFailoverConfig sets the SourceFailoverConfig field's value.
5581func (s *Flow) SetSourceFailoverConfig(v *FailoverConfig) *Flow {
5582	s.SourceFailoverConfig = v
5583	return s
5584}
5585
5586// SetSources sets the Sources field's value.
5587func (s *Flow) SetSources(v []*Source) *Flow {
5588	s.Sources = v
5589	return s
5590}
5591
5592// SetStatus sets the Status field's value.
5593func (s *Flow) SetStatus(v string) *Flow {
5594	s.Status = &v
5595	return s
5596}
5597
5598// SetVpcInterfaces sets the VpcInterfaces field's value.
5599func (s *Flow) SetVpcInterfaces(v []*VpcInterface) *Flow {
5600	s.VpcInterfaces = v
5601	return s
5602}
5603
5604// FMTP
5605type Fmtp struct {
5606	_ struct{} `type:"structure"`
5607
5608	// The format of the audio channel.
5609	ChannelOrder *string `locationName:"channelOrder" type:"string"`
5610
5611	// The format that is used for the representation of color.
5612	Colorimetry *string `locationName:"colorimetry" type:"string" enum:"Colorimetry"`
5613
5614	// The frame rate for the video stream, in frames/second. For example: 60000/1001.
5615	// If you specify a whole number, MediaConnect uses a ratio of N/1. For example,
5616	// if you specify 60, MediaConnect uses 60/1 as the exactFramerate.
5617	ExactFramerate *string `locationName:"exactFramerate" type:"string"`
5618
5619	// The pixel aspect ratio (PAR) of the video.
5620	Par *string `locationName:"par" type:"string"`
5621
5622	// The encoding range of the video.
5623	Range *string `locationName:"range" type:"string" enum:"Range"`
5624
5625	// The type of compression that was used to smooth the video’s appearance
5626	ScanMode *string `locationName:"scanMode" type:"string" enum:"ScanMode"`
5627
5628	// The transfer characteristic system (TCS) that is used in the video.
5629	Tcs *string `locationName:"tcs" type:"string" enum:"Tcs"`
5630}
5631
5632// String returns the string representation.
5633//
5634// API parameter values that are decorated as "sensitive" in the API will not
5635// be included in the string output. The member name will be present, but the
5636// value will be replaced with "sensitive".
5637func (s Fmtp) String() string {
5638	return awsutil.Prettify(s)
5639}
5640
5641// GoString returns the string representation.
5642//
5643// API parameter values that are decorated as "sensitive" in the API will not
5644// be included in the string output. The member name will be present, but the
5645// value will be replaced with "sensitive".
5646func (s Fmtp) GoString() string {
5647	return s.String()
5648}
5649
5650// SetChannelOrder sets the ChannelOrder field's value.
5651func (s *Fmtp) SetChannelOrder(v string) *Fmtp {
5652	s.ChannelOrder = &v
5653	return s
5654}
5655
5656// SetColorimetry sets the Colorimetry field's value.
5657func (s *Fmtp) SetColorimetry(v string) *Fmtp {
5658	s.Colorimetry = &v
5659	return s
5660}
5661
5662// SetExactFramerate sets the ExactFramerate field's value.
5663func (s *Fmtp) SetExactFramerate(v string) *Fmtp {
5664	s.ExactFramerate = &v
5665	return s
5666}
5667
5668// SetPar sets the Par field's value.
5669func (s *Fmtp) SetPar(v string) *Fmtp {
5670	s.Par = &v
5671	return s
5672}
5673
5674// SetRange sets the Range field's value.
5675func (s *Fmtp) SetRange(v string) *Fmtp {
5676	s.Range = &v
5677	return s
5678}
5679
5680// SetScanMode sets the ScanMode field's value.
5681func (s *Fmtp) SetScanMode(v string) *Fmtp {
5682	s.ScanMode = &v
5683	return s
5684}
5685
5686// SetTcs sets the Tcs field's value.
5687func (s *Fmtp) SetTcs(v string) *Fmtp {
5688	s.Tcs = &v
5689	return s
5690}
5691
5692// The settings that you want to use to define the media stream.
5693type FmtpRequest struct {
5694	_ struct{} `type:"structure"`
5695
5696	// The format of the audio channel.
5697	ChannelOrder *string `locationName:"channelOrder" type:"string"`
5698
5699	// The format that is used for the representation of color.
5700	Colorimetry *string `locationName:"colorimetry" type:"string" enum:"Colorimetry"`
5701
5702	// The frame rate for the video stream, in frames/second. For example: 60000/1001.
5703	// If you specify a whole number, MediaConnect uses a ratio of N/1. For example,
5704	// if you specify 60, MediaConnect uses 60/1 as the exactFramerate.
5705	ExactFramerate *string `locationName:"exactFramerate" type:"string"`
5706
5707	// The pixel aspect ratio (PAR) of the video.
5708	Par *string `locationName:"par" type:"string"`
5709
5710	// The encoding range of the video.
5711	Range *string `locationName:"range" type:"string" enum:"Range"`
5712
5713	// The type of compression that was used to smooth the video’s appearance.
5714	ScanMode *string `locationName:"scanMode" type:"string" enum:"ScanMode"`
5715
5716	// The transfer characteristic system (TCS) that is used in the video.
5717	Tcs *string `locationName:"tcs" type:"string" enum:"Tcs"`
5718}
5719
5720// String returns the string representation.
5721//
5722// API parameter values that are decorated as "sensitive" in the API will not
5723// be included in the string output. The member name will be present, but the
5724// value will be replaced with "sensitive".
5725func (s FmtpRequest) String() string {
5726	return awsutil.Prettify(s)
5727}
5728
5729// GoString returns the string representation.
5730//
5731// API parameter values that are decorated as "sensitive" in the API will not
5732// be included in the string output. The member name will be present, but the
5733// value will be replaced with "sensitive".
5734func (s FmtpRequest) GoString() string {
5735	return s.String()
5736}
5737
5738// SetChannelOrder sets the ChannelOrder field's value.
5739func (s *FmtpRequest) SetChannelOrder(v string) *FmtpRequest {
5740	s.ChannelOrder = &v
5741	return s
5742}
5743
5744// SetColorimetry sets the Colorimetry field's value.
5745func (s *FmtpRequest) SetColorimetry(v string) *FmtpRequest {
5746	s.Colorimetry = &v
5747	return s
5748}
5749
5750// SetExactFramerate sets the ExactFramerate field's value.
5751func (s *FmtpRequest) SetExactFramerate(v string) *FmtpRequest {
5752	s.ExactFramerate = &v
5753	return s
5754}
5755
5756// SetPar sets the Par field's value.
5757func (s *FmtpRequest) SetPar(v string) *FmtpRequest {
5758	s.Par = &v
5759	return s
5760}
5761
5762// SetRange sets the Range field's value.
5763func (s *FmtpRequest) SetRange(v string) *FmtpRequest {
5764	s.Range = &v
5765	return s
5766}
5767
5768// SetScanMode sets the ScanMode field's value.
5769func (s *FmtpRequest) SetScanMode(v string) *FmtpRequest {
5770	s.ScanMode = &v
5771	return s
5772}
5773
5774// SetTcs sets the Tcs field's value.
5775func (s *FmtpRequest) SetTcs(v string) *FmtpRequest {
5776	s.Tcs = &v
5777	return s
5778}
5779
5780// Exception raised by AWS Elemental MediaConnect. See the error message and
5781// documentation for the operation for more information on the cause of this
5782// exception.
5783type ForbiddenException struct {
5784	_            struct{}                  `type:"structure"`
5785	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5786
5787	Message_ *string `locationName:"message" type:"string"`
5788}
5789
5790// String returns the string representation.
5791//
5792// API parameter values that are decorated as "sensitive" in the API will not
5793// be included in the string output. The member name will be present, but the
5794// value will be replaced with "sensitive".
5795func (s ForbiddenException) String() string {
5796	return awsutil.Prettify(s)
5797}
5798
5799// GoString returns the string representation.
5800//
5801// API parameter values that are decorated as "sensitive" in the API will not
5802// be included in the string output. The member name will be present, but the
5803// value will be replaced with "sensitive".
5804func (s ForbiddenException) GoString() string {
5805	return s.String()
5806}
5807
5808func newErrorForbiddenException(v protocol.ResponseMetadata) error {
5809	return &ForbiddenException{
5810		RespMetadata: v,
5811	}
5812}
5813
5814// Code returns the exception type name.
5815func (s *ForbiddenException) Code() string {
5816	return "ForbiddenException"
5817}
5818
5819// Message returns the exception's message.
5820func (s *ForbiddenException) Message() string {
5821	if s.Message_ != nil {
5822		return *s.Message_
5823	}
5824	return ""
5825}
5826
5827// OrigErr always returns nil, satisfies awserr.Error interface.
5828func (s *ForbiddenException) OrigErr() error {
5829	return nil
5830}
5831
5832func (s *ForbiddenException) Error() string {
5833	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5834}
5835
5836// Status code returns the HTTP status code for the request's response error.
5837func (s *ForbiddenException) StatusCode() int {
5838	return s.RespMetadata.StatusCode
5839}
5840
5841// RequestID returns the service's response RequestID for request.
5842func (s *ForbiddenException) RequestID() string {
5843	return s.RespMetadata.RequestID
5844}
5845
5846// The entitlements that you want to grant on a flow.
5847type GrantEntitlementRequest struct {
5848	_ struct{} `type:"structure"`
5849
5850	// Percentage from 0-100 of the data transfer cost to be billed to the subscriber.
5851	DataTransferSubscriberFeePercent *int64 `locationName:"dataTransferSubscriberFeePercent" type:"integer"`
5852
5853	// A description of the entitlement. This description appears only on the AWS
5854	// Elemental MediaConnect console and will not be seen by the subscriber or
5855	// end user.
5856	Description *string `locationName:"description" type:"string"`
5857
5858	// The type of encryption that will be used on the output that is associated
5859	// with this entitlement.
5860	Encryption *Encryption `locationName:"encryption" type:"structure"`
5861
5862	// An indication of whether the new entitlement should be enabled or disabled
5863	// as soon as it is created. If you don’t specify the entitlementStatus field
5864	// in your request, MediaConnect sets it to ENABLED.
5865	EntitlementStatus *string `locationName:"entitlementStatus" type:"string" enum:"EntitlementStatus"`
5866
5867	// The name of the entitlement. This value must be unique within the current
5868	// flow.
5869	Name *string `locationName:"name" type:"string"`
5870
5871	// The AWS account IDs that you want to share your content with. The receiving
5872	// accounts (subscribers) will be allowed to create their own flows using your
5873	// content as the source.
5874	//
5875	// Subscribers is a required field
5876	Subscribers []*string `locationName:"subscribers" type:"list" required:"true"`
5877}
5878
5879// String returns the string representation.
5880//
5881// API parameter values that are decorated as "sensitive" in the API will not
5882// be included in the string output. The member name will be present, but the
5883// value will be replaced with "sensitive".
5884func (s GrantEntitlementRequest) String() string {
5885	return awsutil.Prettify(s)
5886}
5887
5888// GoString returns the string representation.
5889//
5890// API parameter values that are decorated as "sensitive" in the API will not
5891// be included in the string output. The member name will be present, but the
5892// value will be replaced with "sensitive".
5893func (s GrantEntitlementRequest) GoString() string {
5894	return s.String()
5895}
5896
5897// Validate inspects the fields of the type to determine if they are valid.
5898func (s *GrantEntitlementRequest) Validate() error {
5899	invalidParams := request.ErrInvalidParams{Context: "GrantEntitlementRequest"}
5900	if s.Subscribers == nil {
5901		invalidParams.Add(request.NewErrParamRequired("Subscribers"))
5902	}
5903	if s.Encryption != nil {
5904		if err := s.Encryption.Validate(); err != nil {
5905			invalidParams.AddNested("Encryption", err.(request.ErrInvalidParams))
5906		}
5907	}
5908
5909	if invalidParams.Len() > 0 {
5910		return invalidParams
5911	}
5912	return nil
5913}
5914
5915// SetDataTransferSubscriberFeePercent sets the DataTransferSubscriberFeePercent field's value.
5916func (s *GrantEntitlementRequest) SetDataTransferSubscriberFeePercent(v int64) *GrantEntitlementRequest {
5917	s.DataTransferSubscriberFeePercent = &v
5918	return s
5919}
5920
5921// SetDescription sets the Description field's value.
5922func (s *GrantEntitlementRequest) SetDescription(v string) *GrantEntitlementRequest {
5923	s.Description = &v
5924	return s
5925}
5926
5927// SetEncryption sets the Encryption field's value.
5928func (s *GrantEntitlementRequest) SetEncryption(v *Encryption) *GrantEntitlementRequest {
5929	s.Encryption = v
5930	return s
5931}
5932
5933// SetEntitlementStatus sets the EntitlementStatus field's value.
5934func (s *GrantEntitlementRequest) SetEntitlementStatus(v string) *GrantEntitlementRequest {
5935	s.EntitlementStatus = &v
5936	return s
5937}
5938
5939// SetName sets the Name field's value.
5940func (s *GrantEntitlementRequest) SetName(v string) *GrantEntitlementRequest {
5941	s.Name = &v
5942	return s
5943}
5944
5945// SetSubscribers sets the Subscribers field's value.
5946func (s *GrantEntitlementRequest) SetSubscribers(v []*string) *GrantEntitlementRequest {
5947	s.Subscribers = v
5948	return s
5949}
5950
5951// Exception raised by AWS Elemental MediaConnect. See the error message and
5952// documentation for the operation for more information on the cause of this
5953// exception.
5954type GrantFlowEntitlements420Exception struct {
5955	_            struct{}                  `type:"structure"`
5956	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5957
5958	Message_ *string `locationName:"message" type:"string"`
5959}
5960
5961// String returns the string representation.
5962//
5963// API parameter values that are decorated as "sensitive" in the API will not
5964// be included in the string output. The member name will be present, but the
5965// value will be replaced with "sensitive".
5966func (s GrantFlowEntitlements420Exception) String() string {
5967	return awsutil.Prettify(s)
5968}
5969
5970// GoString returns the string representation.
5971//
5972// API parameter values that are decorated as "sensitive" in the API will not
5973// be included in the string output. The member name will be present, but the
5974// value will be replaced with "sensitive".
5975func (s GrantFlowEntitlements420Exception) GoString() string {
5976	return s.String()
5977}
5978
5979func newErrorGrantFlowEntitlements420Exception(v protocol.ResponseMetadata) error {
5980	return &GrantFlowEntitlements420Exception{
5981		RespMetadata: v,
5982	}
5983}
5984
5985// Code returns the exception type name.
5986func (s *GrantFlowEntitlements420Exception) Code() string {
5987	return "GrantFlowEntitlements420Exception"
5988}
5989
5990// Message returns the exception's message.
5991func (s *GrantFlowEntitlements420Exception) Message() string {
5992	if s.Message_ != nil {
5993		return *s.Message_
5994	}
5995	return ""
5996}
5997
5998// OrigErr always returns nil, satisfies awserr.Error interface.
5999func (s *GrantFlowEntitlements420Exception) OrigErr() error {
6000	return nil
6001}
6002
6003func (s *GrantFlowEntitlements420Exception) Error() string {
6004	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6005}
6006
6007// Status code returns the HTTP status code for the request's response error.
6008func (s *GrantFlowEntitlements420Exception) StatusCode() int {
6009	return s.RespMetadata.StatusCode
6010}
6011
6012// RequestID returns the service's response RequestID for request.
6013func (s *GrantFlowEntitlements420Exception) RequestID() string {
6014	return s.RespMetadata.RequestID
6015}
6016
6017// Grants an entitlement on a flow.
6018type GrantFlowEntitlementsInput struct {
6019	_ struct{} `type:"structure"`
6020
6021	// The list of entitlements that you want to grant.
6022	//
6023	// Entitlements is a required field
6024	Entitlements []*GrantEntitlementRequest `locationName:"entitlements" type:"list" required:"true"`
6025
6026	// FlowArn is a required field
6027	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
6028}
6029
6030// String returns the string representation.
6031//
6032// API parameter values that are decorated as "sensitive" in the API will not
6033// be included in the string output. The member name will be present, but the
6034// value will be replaced with "sensitive".
6035func (s GrantFlowEntitlementsInput) String() string {
6036	return awsutil.Prettify(s)
6037}
6038
6039// GoString returns the string representation.
6040//
6041// API parameter values that are decorated as "sensitive" in the API will not
6042// be included in the string output. The member name will be present, but the
6043// value will be replaced with "sensitive".
6044func (s GrantFlowEntitlementsInput) GoString() string {
6045	return s.String()
6046}
6047
6048// Validate inspects the fields of the type to determine if they are valid.
6049func (s *GrantFlowEntitlementsInput) Validate() error {
6050	invalidParams := request.ErrInvalidParams{Context: "GrantFlowEntitlementsInput"}
6051	if s.Entitlements == nil {
6052		invalidParams.Add(request.NewErrParamRequired("Entitlements"))
6053	}
6054	if s.FlowArn == nil {
6055		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
6056	}
6057	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
6058		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
6059	}
6060	if s.Entitlements != nil {
6061		for i, v := range s.Entitlements {
6062			if v == nil {
6063				continue
6064			}
6065			if err := v.Validate(); err != nil {
6066				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Entitlements", i), err.(request.ErrInvalidParams))
6067			}
6068		}
6069	}
6070
6071	if invalidParams.Len() > 0 {
6072		return invalidParams
6073	}
6074	return nil
6075}
6076
6077// SetEntitlements sets the Entitlements field's value.
6078func (s *GrantFlowEntitlementsInput) SetEntitlements(v []*GrantEntitlementRequest) *GrantFlowEntitlementsInput {
6079	s.Entitlements = v
6080	return s
6081}
6082
6083// SetFlowArn sets the FlowArn field's value.
6084func (s *GrantFlowEntitlementsInput) SetFlowArn(v string) *GrantFlowEntitlementsInput {
6085	s.FlowArn = &v
6086	return s
6087}
6088
6089// The entitlements that were just granted.
6090type GrantFlowEntitlementsOutput struct {
6091	_ struct{} `type:"structure"`
6092
6093	// The entitlements that were just granted.
6094	Entitlements []*Entitlement `locationName:"entitlements" type:"list"`
6095
6096	// The ARN of the flow that these entitlements were granted to.
6097	FlowArn *string `locationName:"flowArn" type:"string"`
6098}
6099
6100// String returns the string representation.
6101//
6102// API parameter values that are decorated as "sensitive" in the API will not
6103// be included in the string output. The member name will be present, but the
6104// value will be replaced with "sensitive".
6105func (s GrantFlowEntitlementsOutput) String() string {
6106	return awsutil.Prettify(s)
6107}
6108
6109// GoString returns the string representation.
6110//
6111// API parameter values that are decorated as "sensitive" in the API will not
6112// be included in the string output. The member name will be present, but the
6113// value will be replaced with "sensitive".
6114func (s GrantFlowEntitlementsOutput) GoString() string {
6115	return s.String()
6116}
6117
6118// SetEntitlements sets the Entitlements field's value.
6119func (s *GrantFlowEntitlementsOutput) SetEntitlements(v []*Entitlement) *GrantFlowEntitlementsOutput {
6120	s.Entitlements = v
6121	return s
6122}
6123
6124// SetFlowArn sets the FlowArn field's value.
6125func (s *GrantFlowEntitlementsOutput) SetFlowArn(v string) *GrantFlowEntitlementsOutput {
6126	s.FlowArn = &v
6127	return s
6128}
6129
6130// The transport parameters that are associated with an incoming media stream.
6131type InputConfiguration struct {
6132	_ struct{} `type:"structure"`
6133
6134	// The IP address that the flow listens on for incoming content for a media
6135	// stream.
6136	//
6137	// InputIp is a required field
6138	InputIp *string `locationName:"inputIp" type:"string" required:"true"`
6139
6140	// The port that the flow listens on for an incoming media stream.
6141	//
6142	// InputPort is a required field
6143	InputPort *int64 `locationName:"inputPort" type:"integer" required:"true"`
6144
6145	// The VPC interface where the media stream comes in from.
6146	//
6147	// Interface is a required field
6148	Interface *Interface `locationName:"interface" type:"structure" required:"true"`
6149}
6150
6151// String returns the string representation.
6152//
6153// API parameter values that are decorated as "sensitive" in the API will not
6154// be included in the string output. The member name will be present, but the
6155// value will be replaced with "sensitive".
6156func (s InputConfiguration) String() string {
6157	return awsutil.Prettify(s)
6158}
6159
6160// GoString returns the string representation.
6161//
6162// API parameter values that are decorated as "sensitive" in the API will not
6163// be included in the string output. The member name will be present, but the
6164// value will be replaced with "sensitive".
6165func (s InputConfiguration) GoString() string {
6166	return s.String()
6167}
6168
6169// SetInputIp sets the InputIp field's value.
6170func (s *InputConfiguration) SetInputIp(v string) *InputConfiguration {
6171	s.InputIp = &v
6172	return s
6173}
6174
6175// SetInputPort sets the InputPort field's value.
6176func (s *InputConfiguration) SetInputPort(v int64) *InputConfiguration {
6177	s.InputPort = &v
6178	return s
6179}
6180
6181// SetInterface sets the Interface field's value.
6182func (s *InputConfiguration) SetInterface(v *Interface) *InputConfiguration {
6183	s.Interface = v
6184	return s
6185}
6186
6187// The transport parameters that you want to associate with an incoming media
6188// stream.
6189type InputConfigurationRequest struct {
6190	_ struct{} `type:"structure"`
6191
6192	// The port that you want the flow to listen on for an incoming media stream.
6193	//
6194	// InputPort is a required field
6195	InputPort *int64 `locationName:"inputPort" type:"integer" required:"true"`
6196
6197	// The VPC interface that you want to use for the incoming media stream.
6198	//
6199	// Interface is a required field
6200	Interface *InterfaceRequest `locationName:"interface" type:"structure" required:"true"`
6201}
6202
6203// String returns the string representation.
6204//
6205// API parameter values that are decorated as "sensitive" in the API will not
6206// be included in the string output. The member name will be present, but the
6207// value will be replaced with "sensitive".
6208func (s InputConfigurationRequest) String() string {
6209	return awsutil.Prettify(s)
6210}
6211
6212// GoString returns the string representation.
6213//
6214// API parameter values that are decorated as "sensitive" in the API will not
6215// be included in the string output. The member name will be present, but the
6216// value will be replaced with "sensitive".
6217func (s InputConfigurationRequest) GoString() string {
6218	return s.String()
6219}
6220
6221// Validate inspects the fields of the type to determine if they are valid.
6222func (s *InputConfigurationRequest) Validate() error {
6223	invalidParams := request.ErrInvalidParams{Context: "InputConfigurationRequest"}
6224	if s.InputPort == nil {
6225		invalidParams.Add(request.NewErrParamRequired("InputPort"))
6226	}
6227	if s.Interface == nil {
6228		invalidParams.Add(request.NewErrParamRequired("Interface"))
6229	}
6230	if s.Interface != nil {
6231		if err := s.Interface.Validate(); err != nil {
6232			invalidParams.AddNested("Interface", err.(request.ErrInvalidParams))
6233		}
6234	}
6235
6236	if invalidParams.Len() > 0 {
6237		return invalidParams
6238	}
6239	return nil
6240}
6241
6242// SetInputPort sets the InputPort field's value.
6243func (s *InputConfigurationRequest) SetInputPort(v int64) *InputConfigurationRequest {
6244	s.InputPort = &v
6245	return s
6246}
6247
6248// SetInterface sets the Interface field's value.
6249func (s *InputConfigurationRequest) SetInterface(v *InterfaceRequest) *InputConfigurationRequest {
6250	s.Interface = v
6251	return s
6252}
6253
6254// The VPC interface that is used for the media stream associated with the source
6255// or output.
6256type Interface struct {
6257	_ struct{} `type:"structure"`
6258
6259	// The name of the VPC interface.
6260	//
6261	// Name is a required field
6262	Name *string `locationName:"name" type:"string" required:"true"`
6263}
6264
6265// String returns the string representation.
6266//
6267// API parameter values that are decorated as "sensitive" in the API will not
6268// be included in the string output. The member name will be present, but the
6269// value will be replaced with "sensitive".
6270func (s Interface) String() string {
6271	return awsutil.Prettify(s)
6272}
6273
6274// GoString returns the string representation.
6275//
6276// API parameter values that are decorated as "sensitive" in the API will not
6277// be included in the string output. The member name will be present, but the
6278// value will be replaced with "sensitive".
6279func (s Interface) GoString() string {
6280	return s.String()
6281}
6282
6283// SetName sets the Name field's value.
6284func (s *Interface) SetName(v string) *Interface {
6285	s.Name = &v
6286	return s
6287}
6288
6289// The VPC interface that you want to designate where the media stream is coming
6290// from or going to.
6291type InterfaceRequest struct {
6292	_ struct{} `type:"structure"`
6293
6294	// The name of the VPC interface.
6295	//
6296	// Name is a required field
6297	Name *string `locationName:"name" type:"string" required:"true"`
6298}
6299
6300// String returns the string representation.
6301//
6302// API parameter values that are decorated as "sensitive" in the API will not
6303// be included in the string output. The member name will be present, but the
6304// value will be replaced with "sensitive".
6305func (s InterfaceRequest) String() string {
6306	return awsutil.Prettify(s)
6307}
6308
6309// GoString returns the string representation.
6310//
6311// API parameter values that are decorated as "sensitive" in the API will not
6312// be included in the string output. The member name will be present, but the
6313// value will be replaced with "sensitive".
6314func (s InterfaceRequest) GoString() string {
6315	return s.String()
6316}
6317
6318// Validate inspects the fields of the type to determine if they are valid.
6319func (s *InterfaceRequest) Validate() error {
6320	invalidParams := request.ErrInvalidParams{Context: "InterfaceRequest"}
6321	if s.Name == nil {
6322		invalidParams.Add(request.NewErrParamRequired("Name"))
6323	}
6324
6325	if invalidParams.Len() > 0 {
6326		return invalidParams
6327	}
6328	return nil
6329}
6330
6331// SetName sets the Name field's value.
6332func (s *InterfaceRequest) SetName(v string) *InterfaceRequest {
6333	s.Name = &v
6334	return s
6335}
6336
6337// Exception raised by AWS Elemental MediaConnect. See the error message and
6338// documentation for the operation for more information on the cause of this
6339// exception.
6340type InternalServerErrorException struct {
6341	_            struct{}                  `type:"structure"`
6342	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6343
6344	Message_ *string `locationName:"message" type:"string"`
6345}
6346
6347// String returns the string representation.
6348//
6349// API parameter values that are decorated as "sensitive" in the API will not
6350// be included in the string output. The member name will be present, but the
6351// value will be replaced with "sensitive".
6352func (s InternalServerErrorException) String() string {
6353	return awsutil.Prettify(s)
6354}
6355
6356// GoString returns the string representation.
6357//
6358// API parameter values that are decorated as "sensitive" in the API will not
6359// be included in the string output. The member name will be present, but the
6360// value will be replaced with "sensitive".
6361func (s InternalServerErrorException) GoString() string {
6362	return s.String()
6363}
6364
6365func newErrorInternalServerErrorException(v protocol.ResponseMetadata) error {
6366	return &InternalServerErrorException{
6367		RespMetadata: v,
6368	}
6369}
6370
6371// Code returns the exception type name.
6372func (s *InternalServerErrorException) Code() string {
6373	return "InternalServerErrorException"
6374}
6375
6376// Message returns the exception's message.
6377func (s *InternalServerErrorException) Message() string {
6378	if s.Message_ != nil {
6379		return *s.Message_
6380	}
6381	return ""
6382}
6383
6384// OrigErr always returns nil, satisfies awserr.Error interface.
6385func (s *InternalServerErrorException) OrigErr() error {
6386	return nil
6387}
6388
6389func (s *InternalServerErrorException) Error() string {
6390	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6391}
6392
6393// Status code returns the HTTP status code for the request's response error.
6394func (s *InternalServerErrorException) StatusCode() int {
6395	return s.RespMetadata.StatusCode
6396}
6397
6398// RequestID returns the service's response RequestID for request.
6399func (s *InternalServerErrorException) RequestID() string {
6400	return s.RespMetadata.RequestID
6401}
6402
6403type ListEntitlementsInput struct {
6404	_ struct{} `type:"structure" nopayload:"true"`
6405
6406	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
6407
6408	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
6409}
6410
6411// String returns the string representation.
6412//
6413// API parameter values that are decorated as "sensitive" in the API will not
6414// be included in the string output. The member name will be present, but the
6415// value will be replaced with "sensitive".
6416func (s ListEntitlementsInput) String() string {
6417	return awsutil.Prettify(s)
6418}
6419
6420// GoString returns the string representation.
6421//
6422// API parameter values that are decorated as "sensitive" in the API will not
6423// be included in the string output. The member name will be present, but the
6424// value will be replaced with "sensitive".
6425func (s ListEntitlementsInput) GoString() string {
6426	return s.String()
6427}
6428
6429// Validate inspects the fields of the type to determine if they are valid.
6430func (s *ListEntitlementsInput) Validate() error {
6431	invalidParams := request.ErrInvalidParams{Context: "ListEntitlementsInput"}
6432	if s.MaxResults != nil && *s.MaxResults < 1 {
6433		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6434	}
6435
6436	if invalidParams.Len() > 0 {
6437		return invalidParams
6438	}
6439	return nil
6440}
6441
6442// SetMaxResults sets the MaxResults field's value.
6443func (s *ListEntitlementsInput) SetMaxResults(v int64) *ListEntitlementsInput {
6444	s.MaxResults = &v
6445	return s
6446}
6447
6448// SetNextToken sets the NextToken field's value.
6449func (s *ListEntitlementsInput) SetNextToken(v string) *ListEntitlementsInput {
6450	s.NextToken = &v
6451	return s
6452}
6453
6454// The result of a successful ListEntitlements request. The response includes
6455// the ARN of each entitlement, the name of the associated flow, and the NextToken
6456// to use in a subsequent ListEntitlements request.
6457type ListEntitlementsOutput struct {
6458	_ struct{} `type:"structure"`
6459
6460	// A list of entitlements that have been granted to you from other AWS accounts.
6461	Entitlements []*ListedEntitlement `locationName:"entitlements" type:"list"`
6462
6463	// The token that identifies which batch of results that you want to see. For
6464	// example, you submit a ListEntitlements request with MaxResults set at 5.
6465	// The service returns the first batch of results (up to 5) and a NextToken
6466	// value. To see the next batch of results, you can submit the ListEntitlements
6467	// request a second time and specify the NextToken value.
6468	NextToken *string `locationName:"nextToken" type:"string"`
6469}
6470
6471// String returns the string representation.
6472//
6473// API parameter values that are decorated as "sensitive" in the API will not
6474// be included in the string output. The member name will be present, but the
6475// value will be replaced with "sensitive".
6476func (s ListEntitlementsOutput) String() string {
6477	return awsutil.Prettify(s)
6478}
6479
6480// GoString returns the string representation.
6481//
6482// API parameter values that are decorated as "sensitive" in the API will not
6483// be included in the string output. The member name will be present, but the
6484// value will be replaced with "sensitive".
6485func (s ListEntitlementsOutput) GoString() string {
6486	return s.String()
6487}
6488
6489// SetEntitlements sets the Entitlements field's value.
6490func (s *ListEntitlementsOutput) SetEntitlements(v []*ListedEntitlement) *ListEntitlementsOutput {
6491	s.Entitlements = v
6492	return s
6493}
6494
6495// SetNextToken sets the NextToken field's value.
6496func (s *ListEntitlementsOutput) SetNextToken(v string) *ListEntitlementsOutput {
6497	s.NextToken = &v
6498	return s
6499}
6500
6501type ListFlowsInput struct {
6502	_ struct{} `type:"structure" nopayload:"true"`
6503
6504	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
6505
6506	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
6507}
6508
6509// String returns the string representation.
6510//
6511// API parameter values that are decorated as "sensitive" in the API will not
6512// be included in the string output. The member name will be present, but the
6513// value will be replaced with "sensitive".
6514func (s ListFlowsInput) String() string {
6515	return awsutil.Prettify(s)
6516}
6517
6518// GoString returns the string representation.
6519//
6520// API parameter values that are decorated as "sensitive" in the API will not
6521// be included in the string output. The member name will be present, but the
6522// value will be replaced with "sensitive".
6523func (s ListFlowsInput) GoString() string {
6524	return s.String()
6525}
6526
6527// Validate inspects the fields of the type to determine if they are valid.
6528func (s *ListFlowsInput) Validate() error {
6529	invalidParams := request.ErrInvalidParams{Context: "ListFlowsInput"}
6530	if s.MaxResults != nil && *s.MaxResults < 1 {
6531		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6532	}
6533
6534	if invalidParams.Len() > 0 {
6535		return invalidParams
6536	}
6537	return nil
6538}
6539
6540// SetMaxResults sets the MaxResults field's value.
6541func (s *ListFlowsInput) SetMaxResults(v int64) *ListFlowsInput {
6542	s.MaxResults = &v
6543	return s
6544}
6545
6546// SetNextToken sets the NextToken field's value.
6547func (s *ListFlowsInput) SetNextToken(v string) *ListFlowsInput {
6548	s.NextToken = &v
6549	return s
6550}
6551
6552// The result of a successful ListFlows request. The response includes flow
6553// summaries and the NextToken to use in a subsequent ListFlows request.
6554type ListFlowsOutput struct {
6555	_ struct{} `type:"structure"`
6556
6557	// A list of flow summaries.
6558	Flows []*ListedFlow `locationName:"flows" type:"list"`
6559
6560	// The token that identifies which batch of results that you want to see. For
6561	// example, you submit a ListFlows request with MaxResults set at 5. The service
6562	// returns the first batch of results (up to 5) and a NextToken value. To see
6563	// the next batch of results, you can submit the ListFlows request a second
6564	// time and specify the NextToken value.
6565	NextToken *string `locationName:"nextToken" type:"string"`
6566}
6567
6568// String returns the string representation.
6569//
6570// API parameter values that are decorated as "sensitive" in the API will not
6571// be included in the string output. The member name will be present, but the
6572// value will be replaced with "sensitive".
6573func (s ListFlowsOutput) String() string {
6574	return awsutil.Prettify(s)
6575}
6576
6577// GoString returns the string representation.
6578//
6579// API parameter values that are decorated as "sensitive" in the API will not
6580// be included in the string output. The member name will be present, but the
6581// value will be replaced with "sensitive".
6582func (s ListFlowsOutput) GoString() string {
6583	return s.String()
6584}
6585
6586// SetFlows sets the Flows field's value.
6587func (s *ListFlowsOutput) SetFlows(v []*ListedFlow) *ListFlowsOutput {
6588	s.Flows = v
6589	return s
6590}
6591
6592// SetNextToken sets the NextToken field's value.
6593func (s *ListFlowsOutput) SetNextToken(v string) *ListFlowsOutput {
6594	s.NextToken = &v
6595	return s
6596}
6597
6598type ListOfferingsInput struct {
6599	_ struct{} `type:"structure" nopayload:"true"`
6600
6601	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
6602
6603	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
6604}
6605
6606// String returns the string representation.
6607//
6608// API parameter values that are decorated as "sensitive" in the API will not
6609// be included in the string output. The member name will be present, but the
6610// value will be replaced with "sensitive".
6611func (s ListOfferingsInput) String() string {
6612	return awsutil.Prettify(s)
6613}
6614
6615// GoString returns the string representation.
6616//
6617// API parameter values that are decorated as "sensitive" in the API will not
6618// be included in the string output. The member name will be present, but the
6619// value will be replaced with "sensitive".
6620func (s ListOfferingsInput) GoString() string {
6621	return s.String()
6622}
6623
6624// Validate inspects the fields of the type to determine if they are valid.
6625func (s *ListOfferingsInput) Validate() error {
6626	invalidParams := request.ErrInvalidParams{Context: "ListOfferingsInput"}
6627	if s.MaxResults != nil && *s.MaxResults < 1 {
6628		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6629	}
6630
6631	if invalidParams.Len() > 0 {
6632		return invalidParams
6633	}
6634	return nil
6635}
6636
6637// SetMaxResults sets the MaxResults field's value.
6638func (s *ListOfferingsInput) SetMaxResults(v int64) *ListOfferingsInput {
6639	s.MaxResults = &v
6640	return s
6641}
6642
6643// SetNextToken sets the NextToken field's value.
6644func (s *ListOfferingsInput) SetNextToken(v string) *ListOfferingsInput {
6645	s.NextToken = &v
6646	return s
6647}
6648
6649// The result of a successful ListOfferings request. The response includes the
6650// details of each offering that your account is eligible for. The response
6651// includes the following information for each offering: description, duration,
6652// outbound bandwidth, price, Amazon Resource Name (ARN), and the NextToken
6653// to use in a subsequent ListOfferings request.
6654type ListOfferingsOutput struct {
6655	_ struct{} `type:"structure"`
6656
6657	// The token that identifies which batch of results that you want to see. For
6658	// example, you submit a ListOfferings request with MaxResults set at 5. The
6659	// service returns the first batch of results (up to 5) and a NextToken value.
6660	// To see the next batch of results, you can submit the ListOfferings request
6661	// a second time and specify the NextToken value.
6662	NextToken *string `locationName:"nextToken" type:"string"`
6663
6664	// A list of offerings that are available to this account in the current AWS
6665	// Region.
6666	Offerings []*Offering `locationName:"offerings" type:"list"`
6667}
6668
6669// String returns the string representation.
6670//
6671// API parameter values that are decorated as "sensitive" in the API will not
6672// be included in the string output. The member name will be present, but the
6673// value will be replaced with "sensitive".
6674func (s ListOfferingsOutput) String() string {
6675	return awsutil.Prettify(s)
6676}
6677
6678// GoString returns the string representation.
6679//
6680// API parameter values that are decorated as "sensitive" in the API will not
6681// be included in the string output. The member name will be present, but the
6682// value will be replaced with "sensitive".
6683func (s ListOfferingsOutput) GoString() string {
6684	return s.String()
6685}
6686
6687// SetNextToken sets the NextToken field's value.
6688func (s *ListOfferingsOutput) SetNextToken(v string) *ListOfferingsOutput {
6689	s.NextToken = &v
6690	return s
6691}
6692
6693// SetOfferings sets the Offerings field's value.
6694func (s *ListOfferingsOutput) SetOfferings(v []*Offering) *ListOfferingsOutput {
6695	s.Offerings = v
6696	return s
6697}
6698
6699type ListReservationsInput struct {
6700	_ struct{} `type:"structure" nopayload:"true"`
6701
6702	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
6703
6704	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
6705}
6706
6707// String returns the string representation.
6708//
6709// API parameter values that are decorated as "sensitive" in the API will not
6710// be included in the string output. The member name will be present, but the
6711// value will be replaced with "sensitive".
6712func (s ListReservationsInput) String() string {
6713	return awsutil.Prettify(s)
6714}
6715
6716// GoString returns the string representation.
6717//
6718// API parameter values that are decorated as "sensitive" in the API will not
6719// be included in the string output. The member name will be present, but the
6720// value will be replaced with "sensitive".
6721func (s ListReservationsInput) GoString() string {
6722	return s.String()
6723}
6724
6725// Validate inspects the fields of the type to determine if they are valid.
6726func (s *ListReservationsInput) Validate() error {
6727	invalidParams := request.ErrInvalidParams{Context: "ListReservationsInput"}
6728	if s.MaxResults != nil && *s.MaxResults < 1 {
6729		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6730	}
6731
6732	if invalidParams.Len() > 0 {
6733		return invalidParams
6734	}
6735	return nil
6736}
6737
6738// SetMaxResults sets the MaxResults field's value.
6739func (s *ListReservationsInput) SetMaxResults(v int64) *ListReservationsInput {
6740	s.MaxResults = &v
6741	return s
6742}
6743
6744// SetNextToken sets the NextToken field's value.
6745func (s *ListReservationsInput) SetNextToken(v string) *ListReservationsInput {
6746	s.NextToken = &v
6747	return s
6748}
6749
6750// The result of a successful ListReservations request. The response includes
6751// the details of each offering that your account is eligible for. The response
6752// includes the following information for each offering: description, duration,
6753// outbound bandwidth, price, Amazon Resource Name (ARN), and the NextToken
6754// to use in a subsequent ListOfferings request.
6755type ListReservationsOutput struct {
6756	_ struct{} `type:"structure"`
6757
6758	// The token that identifies which batch of results that you want to see. For
6759	// example, you submit a ListReservations request with MaxResults set at 5.
6760	// The service returns the first batch of results (up to 5) and a NextToken
6761	// value. To see the next batch of results, you can submit the ListReservations
6762	// request a second time and specify the NextToken value.
6763	NextToken *string `locationName:"nextToken" type:"string"`
6764
6765	// A list of all reservations that have been purchased by this account in the
6766	// current AWS Region.
6767	Reservations []*Reservation `locationName:"reservations" type:"list"`
6768}
6769
6770// String returns the string representation.
6771//
6772// API parameter values that are decorated as "sensitive" in the API will not
6773// be included in the string output. The member name will be present, but the
6774// value will be replaced with "sensitive".
6775func (s ListReservationsOutput) String() string {
6776	return awsutil.Prettify(s)
6777}
6778
6779// GoString returns the string representation.
6780//
6781// API parameter values that are decorated as "sensitive" in the API will not
6782// be included in the string output. The member name will be present, but the
6783// value will be replaced with "sensitive".
6784func (s ListReservationsOutput) GoString() string {
6785	return s.String()
6786}
6787
6788// SetNextToken sets the NextToken field's value.
6789func (s *ListReservationsOutput) SetNextToken(v string) *ListReservationsOutput {
6790	s.NextToken = &v
6791	return s
6792}
6793
6794// SetReservations sets the Reservations field's value.
6795func (s *ListReservationsOutput) SetReservations(v []*Reservation) *ListReservationsOutput {
6796	s.Reservations = v
6797	return s
6798}
6799
6800type ListTagsForResourceInput struct {
6801	_ struct{} `type:"structure" nopayload:"true"`
6802
6803	// ResourceArn is a required field
6804	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
6805}
6806
6807// String returns the string representation.
6808//
6809// API parameter values that are decorated as "sensitive" in the API will not
6810// be included in the string output. The member name will be present, but the
6811// value will be replaced with "sensitive".
6812func (s ListTagsForResourceInput) String() string {
6813	return awsutil.Prettify(s)
6814}
6815
6816// GoString returns the string representation.
6817//
6818// API parameter values that are decorated as "sensitive" in the API will not
6819// be included in the string output. The member name will be present, but the
6820// value will be replaced with "sensitive".
6821func (s ListTagsForResourceInput) GoString() string {
6822	return s.String()
6823}
6824
6825// Validate inspects the fields of the type to determine if they are valid.
6826func (s *ListTagsForResourceInput) Validate() error {
6827	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
6828	if s.ResourceArn == nil {
6829		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
6830	}
6831	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
6832		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
6833	}
6834
6835	if invalidParams.Len() > 0 {
6836		return invalidParams
6837	}
6838	return nil
6839}
6840
6841// SetResourceArn sets the ResourceArn field's value.
6842func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
6843	s.ResourceArn = &v
6844	return s
6845}
6846
6847// The tags for the resource.
6848type ListTagsForResourceOutput struct {
6849	_ struct{} `type:"structure"`
6850
6851	// A map from tag keys to values. Tag keys can have a maximum character length
6852	// of 128 characters, and tag values can have a maximum length of 256 characters.
6853	Tags map[string]*string `locationName:"tags" type:"map"`
6854}
6855
6856// String returns the string representation.
6857//
6858// API parameter values that are decorated as "sensitive" in the API will not
6859// be included in the string output. The member name will be present, but the
6860// value will be replaced with "sensitive".
6861func (s ListTagsForResourceOutput) String() string {
6862	return awsutil.Prettify(s)
6863}
6864
6865// GoString returns the string representation.
6866//
6867// API parameter values that are decorated as "sensitive" in the API will not
6868// be included in the string output. The member name will be present, but the
6869// value will be replaced with "sensitive".
6870func (s ListTagsForResourceOutput) GoString() string {
6871	return s.String()
6872}
6873
6874// SetTags sets the Tags field's value.
6875func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
6876	s.Tags = v
6877	return s
6878}
6879
6880// An entitlement that has been granted to you from other AWS accounts.
6881type ListedEntitlement struct {
6882	_ struct{} `type:"structure"`
6883
6884	// Percentage from 0-100 of the data transfer cost to be billed to the subscriber.
6885	DataTransferSubscriberFeePercent *int64 `locationName:"dataTransferSubscriberFeePercent" type:"integer"`
6886
6887	// The ARN of the entitlement.
6888	//
6889	// EntitlementArn is a required field
6890	EntitlementArn *string `locationName:"entitlementArn" type:"string" required:"true"`
6891
6892	// The name of the entitlement.
6893	//
6894	// EntitlementName is a required field
6895	EntitlementName *string `locationName:"entitlementName" type:"string" required:"true"`
6896}
6897
6898// String returns the string representation.
6899//
6900// API parameter values that are decorated as "sensitive" in the API will not
6901// be included in the string output. The member name will be present, but the
6902// value will be replaced with "sensitive".
6903func (s ListedEntitlement) String() string {
6904	return awsutil.Prettify(s)
6905}
6906
6907// GoString returns the string representation.
6908//
6909// API parameter values that are decorated as "sensitive" in the API will not
6910// be included in the string output. The member name will be present, but the
6911// value will be replaced with "sensitive".
6912func (s ListedEntitlement) GoString() string {
6913	return s.String()
6914}
6915
6916// SetDataTransferSubscriberFeePercent sets the DataTransferSubscriberFeePercent field's value.
6917func (s *ListedEntitlement) SetDataTransferSubscriberFeePercent(v int64) *ListedEntitlement {
6918	s.DataTransferSubscriberFeePercent = &v
6919	return s
6920}
6921
6922// SetEntitlementArn sets the EntitlementArn field's value.
6923func (s *ListedEntitlement) SetEntitlementArn(v string) *ListedEntitlement {
6924	s.EntitlementArn = &v
6925	return s
6926}
6927
6928// SetEntitlementName sets the EntitlementName field's value.
6929func (s *ListedEntitlement) SetEntitlementName(v string) *ListedEntitlement {
6930	s.EntitlementName = &v
6931	return s
6932}
6933
6934// Provides a summary of a flow, including its ARN, Availability Zone, and source
6935// type.
6936type ListedFlow struct {
6937	_ struct{} `type:"structure"`
6938
6939	// The Availability Zone that the flow was created in.
6940	//
6941	// AvailabilityZone is a required field
6942	AvailabilityZone *string `locationName:"availabilityZone" type:"string" required:"true"`
6943
6944	// A description of the flow.
6945	//
6946	// Description is a required field
6947	Description *string `locationName:"description" type:"string" required:"true"`
6948
6949	// The ARN of the flow.
6950	//
6951	// FlowArn is a required field
6952	FlowArn *string `locationName:"flowArn" type:"string" required:"true"`
6953
6954	// The name of the flow.
6955	//
6956	// Name is a required field
6957	Name *string `locationName:"name" type:"string" required:"true"`
6958
6959	// The type of source. This value is either owned (originated somewhere other
6960	// than an AWS Elemental MediaConnect flow owned by another AWS account) or
6961	// entitled (originated at an AWS Elemental MediaConnect flow owned by another
6962	// AWS account).
6963	//
6964	// SourceType is a required field
6965	SourceType *string `locationName:"sourceType" type:"string" required:"true" enum:"SourceType"`
6966
6967	// The current status of the flow.
6968	//
6969	// Status is a required field
6970	Status *string `locationName:"status" type:"string" required:"true" enum:"Status"`
6971}
6972
6973// String returns the string representation.
6974//
6975// API parameter values that are decorated as "sensitive" in the API will not
6976// be included in the string output. The member name will be present, but the
6977// value will be replaced with "sensitive".
6978func (s ListedFlow) String() string {
6979	return awsutil.Prettify(s)
6980}
6981
6982// GoString returns the string representation.
6983//
6984// API parameter values that are decorated as "sensitive" in the API will not
6985// be included in the string output. The member name will be present, but the
6986// value will be replaced with "sensitive".
6987func (s ListedFlow) GoString() string {
6988	return s.String()
6989}
6990
6991// SetAvailabilityZone sets the AvailabilityZone field's value.
6992func (s *ListedFlow) SetAvailabilityZone(v string) *ListedFlow {
6993	s.AvailabilityZone = &v
6994	return s
6995}
6996
6997// SetDescription sets the Description field's value.
6998func (s *ListedFlow) SetDescription(v string) *ListedFlow {
6999	s.Description = &v
7000	return s
7001}
7002
7003// SetFlowArn sets the FlowArn field's value.
7004func (s *ListedFlow) SetFlowArn(v string) *ListedFlow {
7005	s.FlowArn = &v
7006	return s
7007}
7008
7009// SetName sets the Name field's value.
7010func (s *ListedFlow) SetName(v string) *ListedFlow {
7011	s.Name = &v
7012	return s
7013}
7014
7015// SetSourceType sets the SourceType field's value.
7016func (s *ListedFlow) SetSourceType(v string) *ListedFlow {
7017	s.SourceType = &v
7018	return s
7019}
7020
7021// SetStatus sets the Status field's value.
7022func (s *ListedFlow) SetStatus(v string) *ListedFlow {
7023	s.Status = &v
7024	return s
7025}
7026
7027// A single track or stream of media that contains video, audio, or ancillary
7028// data. After you add a media stream to a flow, you can associate it with sources
7029// and outputs on that flow, as long as they use the CDI protocol or the ST
7030// 2110 JPEG XS protocol. Each source or output can consist of one or many media
7031// streams.
7032type MediaStream struct {
7033	_ struct{} `type:"structure"`
7034
7035	// Attributes that are related to the media stream.
7036	Attributes *MediaStreamAttributes `locationName:"attributes" type:"structure"`
7037
7038	// The sample rate for the stream. This value is measured in Hz.
7039	ClockRate *int64 `locationName:"clockRate" type:"integer"`
7040
7041	// A description that can help you quickly identify what your media stream is
7042	// used for.
7043	Description *string `locationName:"description" type:"string"`
7044
7045	// The format type number (sometimes referred to as RTP payload type) of the
7046	// media stream. MediaConnect assigns this value to the media stream. For ST
7047	// 2110 JPEG XS outputs, you need to provide this value to the receiver.
7048	//
7049	// Fmt is a required field
7050	Fmt *int64 `locationName:"fmt" type:"integer" required:"true"`
7051
7052	// A unique identifier for the media stream.
7053	//
7054	// MediaStreamId is a required field
7055	MediaStreamId *int64 `locationName:"mediaStreamId" type:"integer" required:"true"`
7056
7057	// A name that helps you distinguish one media stream from another.
7058	//
7059	// MediaStreamName is a required field
7060	MediaStreamName *string `locationName:"mediaStreamName" type:"string" required:"true"`
7061
7062	// The type of media stream.
7063	//
7064	// MediaStreamType is a required field
7065	MediaStreamType *string `locationName:"mediaStreamType" type:"string" required:"true" enum:"MediaStreamType"`
7066
7067	// The resolution of the video.
7068	VideoFormat *string `locationName:"videoFormat" type:"string"`
7069}
7070
7071// String returns the string representation.
7072//
7073// API parameter values that are decorated as "sensitive" in the API will not
7074// be included in the string output. The member name will be present, but the
7075// value will be replaced with "sensitive".
7076func (s MediaStream) String() string {
7077	return awsutil.Prettify(s)
7078}
7079
7080// GoString returns the string representation.
7081//
7082// API parameter values that are decorated as "sensitive" in the API will not
7083// be included in the string output. The member name will be present, but the
7084// value will be replaced with "sensitive".
7085func (s MediaStream) GoString() string {
7086	return s.String()
7087}
7088
7089// SetAttributes sets the Attributes field's value.
7090func (s *MediaStream) SetAttributes(v *MediaStreamAttributes) *MediaStream {
7091	s.Attributes = v
7092	return s
7093}
7094
7095// SetClockRate sets the ClockRate field's value.
7096func (s *MediaStream) SetClockRate(v int64) *MediaStream {
7097	s.ClockRate = &v
7098	return s
7099}
7100
7101// SetDescription sets the Description field's value.
7102func (s *MediaStream) SetDescription(v string) *MediaStream {
7103	s.Description = &v
7104	return s
7105}
7106
7107// SetFmt sets the Fmt field's value.
7108func (s *MediaStream) SetFmt(v int64) *MediaStream {
7109	s.Fmt = &v
7110	return s
7111}
7112
7113// SetMediaStreamId sets the MediaStreamId field's value.
7114func (s *MediaStream) SetMediaStreamId(v int64) *MediaStream {
7115	s.MediaStreamId = &v
7116	return s
7117}
7118
7119// SetMediaStreamName sets the MediaStreamName field's value.
7120func (s *MediaStream) SetMediaStreamName(v string) *MediaStream {
7121	s.MediaStreamName = &v
7122	return s
7123}
7124
7125// SetMediaStreamType sets the MediaStreamType field's value.
7126func (s *MediaStream) SetMediaStreamType(v string) *MediaStream {
7127	s.MediaStreamType = &v
7128	return s
7129}
7130
7131// SetVideoFormat sets the VideoFormat field's value.
7132func (s *MediaStream) SetVideoFormat(v string) *MediaStream {
7133	s.VideoFormat = &v
7134	return s
7135}
7136
7137// Attributes that are related to the media stream.
7138type MediaStreamAttributes struct {
7139	_ struct{} `type:"structure"`
7140
7141	// A set of parameters that define the media stream.
7142	//
7143	// Fmtp is a required field
7144	Fmtp *Fmtp `locationName:"fmtp" type:"structure" required:"true"`
7145
7146	// The audio language, in a format that is recognized by the receiver.
7147	Lang *string `locationName:"lang" type:"string"`
7148}
7149
7150// String returns the string representation.
7151//
7152// API parameter values that are decorated as "sensitive" in the API will not
7153// be included in the string output. The member name will be present, but the
7154// value will be replaced with "sensitive".
7155func (s MediaStreamAttributes) String() string {
7156	return awsutil.Prettify(s)
7157}
7158
7159// GoString returns the string representation.
7160//
7161// API parameter values that are decorated as "sensitive" in the API will not
7162// be included in the string output. The member name will be present, but the
7163// value will be replaced with "sensitive".
7164func (s MediaStreamAttributes) GoString() string {
7165	return s.String()
7166}
7167
7168// SetFmtp sets the Fmtp field's value.
7169func (s *MediaStreamAttributes) SetFmtp(v *Fmtp) *MediaStreamAttributes {
7170	s.Fmtp = v
7171	return s
7172}
7173
7174// SetLang sets the Lang field's value.
7175func (s *MediaStreamAttributes) SetLang(v string) *MediaStreamAttributes {
7176	s.Lang = &v
7177	return s
7178}
7179
7180// Attributes that are related to the media stream.
7181type MediaStreamAttributesRequest struct {
7182	_ struct{} `type:"structure"`
7183
7184	// The settings that you want to use to define the media stream.
7185	Fmtp *FmtpRequest `locationName:"fmtp" type:"structure"`
7186
7187	// The audio language, in a format that is recognized by the receiver.
7188	Lang *string `locationName:"lang" type:"string"`
7189}
7190
7191// String returns the string representation.
7192//
7193// API parameter values that are decorated as "sensitive" in the API will not
7194// be included in the string output. The member name will be present, but the
7195// value will be replaced with "sensitive".
7196func (s MediaStreamAttributesRequest) String() string {
7197	return awsutil.Prettify(s)
7198}
7199
7200// GoString returns the string representation.
7201//
7202// API parameter values that are decorated as "sensitive" in the API will not
7203// be included in the string output. The member name will be present, but the
7204// value will be replaced with "sensitive".
7205func (s MediaStreamAttributesRequest) GoString() string {
7206	return s.String()
7207}
7208
7209// SetFmtp sets the Fmtp field's value.
7210func (s *MediaStreamAttributesRequest) SetFmtp(v *FmtpRequest) *MediaStreamAttributesRequest {
7211	s.Fmtp = v
7212	return s
7213}
7214
7215// SetLang sets the Lang field's value.
7216func (s *MediaStreamAttributesRequest) SetLang(v string) *MediaStreamAttributesRequest {
7217	s.Lang = &v
7218	return s
7219}
7220
7221// The media stream that is associated with the output, and the parameters for
7222// that association.
7223type MediaStreamOutputConfiguration struct {
7224	_ struct{} `type:"structure"`
7225
7226	// The transport parameters that are associated with each outbound media stream.
7227	DestinationConfigurations []*DestinationConfiguration `locationName:"destinationConfigurations" type:"list"`
7228
7229	// The format that was used to encode the data. For ancillary data streams,
7230	// set the encoding name to smpte291. For audio streams, set the encoding name
7231	// to pcm. For video, 2110 streams, set the encoding name to raw. For video,
7232	// JPEG XS streams, set the encoding name to jxsv.
7233	//
7234	// EncodingName is a required field
7235	EncodingName *string `locationName:"encodingName" type:"string" required:"true" enum:"EncodingName"`
7236
7237	// Encoding parameters
7238	EncodingParameters *EncodingParameters `locationName:"encodingParameters" type:"structure"`
7239
7240	// The name of the media stream.
7241	//
7242	// MediaStreamName is a required field
7243	MediaStreamName *string `locationName:"mediaStreamName" type:"string" required:"true"`
7244}
7245
7246// String returns the string representation.
7247//
7248// API parameter values that are decorated as "sensitive" in the API will not
7249// be included in the string output. The member name will be present, but the
7250// value will be replaced with "sensitive".
7251func (s MediaStreamOutputConfiguration) String() string {
7252	return awsutil.Prettify(s)
7253}
7254
7255// GoString returns the string representation.
7256//
7257// API parameter values that are decorated as "sensitive" in the API will not
7258// be included in the string output. The member name will be present, but the
7259// value will be replaced with "sensitive".
7260func (s MediaStreamOutputConfiguration) GoString() string {
7261	return s.String()
7262}
7263
7264// SetDestinationConfigurations sets the DestinationConfigurations field's value.
7265func (s *MediaStreamOutputConfiguration) SetDestinationConfigurations(v []*DestinationConfiguration) *MediaStreamOutputConfiguration {
7266	s.DestinationConfigurations = v
7267	return s
7268}
7269
7270// SetEncodingName sets the EncodingName field's value.
7271func (s *MediaStreamOutputConfiguration) SetEncodingName(v string) *MediaStreamOutputConfiguration {
7272	s.EncodingName = &v
7273	return s
7274}
7275
7276// SetEncodingParameters sets the EncodingParameters field's value.
7277func (s *MediaStreamOutputConfiguration) SetEncodingParameters(v *EncodingParameters) *MediaStreamOutputConfiguration {
7278	s.EncodingParameters = v
7279	return s
7280}
7281
7282// SetMediaStreamName sets the MediaStreamName field's value.
7283func (s *MediaStreamOutputConfiguration) SetMediaStreamName(v string) *MediaStreamOutputConfiguration {
7284	s.MediaStreamName = &v
7285	return s
7286}
7287
7288// The media stream that you want to associate with the output, and the parameters
7289// for that association.
7290type MediaStreamOutputConfigurationRequest struct {
7291	_ struct{} `type:"structure"`
7292
7293	// The transport parameters that you want to associate with the media stream.
7294	DestinationConfigurations []*DestinationConfigurationRequest `locationName:"destinationConfigurations" type:"list"`
7295
7296	// The format that will be used to encode the data. For ancillary data streams,
7297	// set the encoding name to smpte291. For audio streams, set the encoding name
7298	// to pcm. For video, 2110 streams, set the encoding name to raw. For video,
7299	// JPEG XS streams, set the encoding name to jxsv.
7300	//
7301	// EncodingName is a required field
7302	EncodingName *string `locationName:"encodingName" type:"string" required:"true" enum:"EncodingName"`
7303
7304	// A collection of parameters that determine how MediaConnect will convert the
7305	// content. These fields only apply to outputs on flows that have a CDI source.
7306	EncodingParameters *EncodingParametersRequest `locationName:"encodingParameters" type:"structure"`
7307
7308	// The name of the media stream that is associated with the output.
7309	//
7310	// MediaStreamName is a required field
7311	MediaStreamName *string `locationName:"mediaStreamName" type:"string" required:"true"`
7312}
7313
7314// String returns the string representation.
7315//
7316// API parameter values that are decorated as "sensitive" in the API will not
7317// be included in the string output. The member name will be present, but the
7318// value will be replaced with "sensitive".
7319func (s MediaStreamOutputConfigurationRequest) String() string {
7320	return awsutil.Prettify(s)
7321}
7322
7323// GoString returns the string representation.
7324//
7325// API parameter values that are decorated as "sensitive" in the API will not
7326// be included in the string output. The member name will be present, but the
7327// value will be replaced with "sensitive".
7328func (s MediaStreamOutputConfigurationRequest) GoString() string {
7329	return s.String()
7330}
7331
7332// Validate inspects the fields of the type to determine if they are valid.
7333func (s *MediaStreamOutputConfigurationRequest) Validate() error {
7334	invalidParams := request.ErrInvalidParams{Context: "MediaStreamOutputConfigurationRequest"}
7335	if s.EncodingName == nil {
7336		invalidParams.Add(request.NewErrParamRequired("EncodingName"))
7337	}
7338	if s.MediaStreamName == nil {
7339		invalidParams.Add(request.NewErrParamRequired("MediaStreamName"))
7340	}
7341	if s.DestinationConfigurations != nil {
7342		for i, v := range s.DestinationConfigurations {
7343			if v == nil {
7344				continue
7345			}
7346			if err := v.Validate(); err != nil {
7347				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DestinationConfigurations", i), err.(request.ErrInvalidParams))
7348			}
7349		}
7350	}
7351	if s.EncodingParameters != nil {
7352		if err := s.EncodingParameters.Validate(); err != nil {
7353			invalidParams.AddNested("EncodingParameters", err.(request.ErrInvalidParams))
7354		}
7355	}
7356
7357	if invalidParams.Len() > 0 {
7358		return invalidParams
7359	}
7360	return nil
7361}
7362
7363// SetDestinationConfigurations sets the DestinationConfigurations field's value.
7364func (s *MediaStreamOutputConfigurationRequest) SetDestinationConfigurations(v []*DestinationConfigurationRequest) *MediaStreamOutputConfigurationRequest {
7365	s.DestinationConfigurations = v
7366	return s
7367}
7368
7369// SetEncodingName sets the EncodingName field's value.
7370func (s *MediaStreamOutputConfigurationRequest) SetEncodingName(v string) *MediaStreamOutputConfigurationRequest {
7371	s.EncodingName = &v
7372	return s
7373}
7374
7375// SetEncodingParameters sets the EncodingParameters field's value.
7376func (s *MediaStreamOutputConfigurationRequest) SetEncodingParameters(v *EncodingParametersRequest) *MediaStreamOutputConfigurationRequest {
7377	s.EncodingParameters = v
7378	return s
7379}
7380
7381// SetMediaStreamName sets the MediaStreamName field's value.
7382func (s *MediaStreamOutputConfigurationRequest) SetMediaStreamName(v string) *MediaStreamOutputConfigurationRequest {
7383	s.MediaStreamName = &v
7384	return s
7385}
7386
7387// The media stream that is associated with the source, and the parameters for
7388// that association.
7389type MediaStreamSourceConfiguration struct {
7390	_ struct{} `type:"structure"`
7391
7392	// The format that was used to encode the data. For ancillary data streams,
7393	// set the encoding name to smpte291. For audio streams, set the encoding name
7394	// to pcm. For video, 2110 streams, set the encoding name to raw. For video,
7395	// JPEG XS streams, set the encoding name to jxsv.
7396	//
7397	// EncodingName is a required field
7398	EncodingName *string `locationName:"encodingName" type:"string" required:"true" enum:"EncodingName"`
7399
7400	// The transport parameters that are associated with an incoming media stream.
7401	InputConfigurations []*InputConfiguration `locationName:"inputConfigurations" type:"list"`
7402
7403	// The name of the media stream.
7404	//
7405	// MediaStreamName is a required field
7406	MediaStreamName *string `locationName:"mediaStreamName" type:"string" required:"true"`
7407}
7408
7409// String returns the string representation.
7410//
7411// API parameter values that are decorated as "sensitive" in the API will not
7412// be included in the string output. The member name will be present, but the
7413// value will be replaced with "sensitive".
7414func (s MediaStreamSourceConfiguration) String() string {
7415	return awsutil.Prettify(s)
7416}
7417
7418// GoString returns the string representation.
7419//
7420// API parameter values that are decorated as "sensitive" in the API will not
7421// be included in the string output. The member name will be present, but the
7422// value will be replaced with "sensitive".
7423func (s MediaStreamSourceConfiguration) GoString() string {
7424	return s.String()
7425}
7426
7427// SetEncodingName sets the EncodingName field's value.
7428func (s *MediaStreamSourceConfiguration) SetEncodingName(v string) *MediaStreamSourceConfiguration {
7429	s.EncodingName = &v
7430	return s
7431}
7432
7433// SetInputConfigurations sets the InputConfigurations field's value.
7434func (s *MediaStreamSourceConfiguration) SetInputConfigurations(v []*InputConfiguration) *MediaStreamSourceConfiguration {
7435	s.InputConfigurations = v
7436	return s
7437}
7438
7439// SetMediaStreamName sets the MediaStreamName field's value.
7440func (s *MediaStreamSourceConfiguration) SetMediaStreamName(v string) *MediaStreamSourceConfiguration {
7441	s.MediaStreamName = &v
7442	return s
7443}
7444
7445// The definition of a media stream that you want to associate with the source.
7446type MediaStreamSourceConfigurationRequest struct {
7447	_ struct{} `type:"structure"`
7448
7449	// The format you want to use to encode the data. For ancillary data streams,
7450	// set the encoding name to smpte291. For audio streams, set the encoding name
7451	// to pcm. For video, 2110 streams, set the encoding name to raw. For video,
7452	// JPEG XS streams, set the encoding name to jxsv.
7453	//
7454	// EncodingName is a required field
7455	EncodingName *string `locationName:"encodingName" type:"string" required:"true" enum:"EncodingName"`
7456
7457	// The transport parameters that you want to associate with the media stream.
7458	InputConfigurations []*InputConfigurationRequest `locationName:"inputConfigurations" type:"list"`
7459
7460	// The name of the media stream.
7461	//
7462	// MediaStreamName is a required field
7463	MediaStreamName *string `locationName:"mediaStreamName" type:"string" required:"true"`
7464}
7465
7466// String returns the string representation.
7467//
7468// API parameter values that are decorated as "sensitive" in the API will not
7469// be included in the string output. The member name will be present, but the
7470// value will be replaced with "sensitive".
7471func (s MediaStreamSourceConfigurationRequest) String() string {
7472	return awsutil.Prettify(s)
7473}
7474
7475// GoString returns the string representation.
7476//
7477// API parameter values that are decorated as "sensitive" in the API will not
7478// be included in the string output. The member name will be present, but the
7479// value will be replaced with "sensitive".
7480func (s MediaStreamSourceConfigurationRequest) GoString() string {
7481	return s.String()
7482}
7483
7484// Validate inspects the fields of the type to determine if they are valid.
7485func (s *MediaStreamSourceConfigurationRequest) Validate() error {
7486	invalidParams := request.ErrInvalidParams{Context: "MediaStreamSourceConfigurationRequest"}
7487	if s.EncodingName == nil {
7488		invalidParams.Add(request.NewErrParamRequired("EncodingName"))
7489	}
7490	if s.MediaStreamName == nil {
7491		invalidParams.Add(request.NewErrParamRequired("MediaStreamName"))
7492	}
7493	if s.InputConfigurations != nil {
7494		for i, v := range s.InputConfigurations {
7495			if v == nil {
7496				continue
7497			}
7498			if err := v.Validate(); err != nil {
7499				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputConfigurations", i), err.(request.ErrInvalidParams))
7500			}
7501		}
7502	}
7503
7504	if invalidParams.Len() > 0 {
7505		return invalidParams
7506	}
7507	return nil
7508}
7509
7510// SetEncodingName sets the EncodingName field's value.
7511func (s *MediaStreamSourceConfigurationRequest) SetEncodingName(v string) *MediaStreamSourceConfigurationRequest {
7512	s.EncodingName = &v
7513	return s
7514}
7515
7516// SetInputConfigurations sets the InputConfigurations field's value.
7517func (s *MediaStreamSourceConfigurationRequest) SetInputConfigurations(v []*InputConfigurationRequest) *MediaStreamSourceConfigurationRequest {
7518	s.InputConfigurations = v
7519	return s
7520}
7521
7522// SetMediaStreamName sets the MediaStreamName field's value.
7523func (s *MediaStreamSourceConfigurationRequest) SetMediaStreamName(v string) *MediaStreamSourceConfigurationRequest {
7524	s.MediaStreamName = &v
7525	return s
7526}
7527
7528// Messages that provide the state of the flow.
7529type Messages struct {
7530	_ struct{} `type:"structure"`
7531
7532	// A list of errors that might have been generated from processes on this flow.
7533	//
7534	// Errors is a required field
7535	Errors []*string `locationName:"errors" type:"list" required:"true"`
7536}
7537
7538// String returns the string representation.
7539//
7540// API parameter values that are decorated as "sensitive" in the API will not
7541// be included in the string output. The member name will be present, but the
7542// value will be replaced with "sensitive".
7543func (s Messages) String() string {
7544	return awsutil.Prettify(s)
7545}
7546
7547// GoString returns the string representation.
7548//
7549// API parameter values that are decorated as "sensitive" in the API will not
7550// be included in the string output. The member name will be present, but the
7551// value will be replaced with "sensitive".
7552func (s Messages) GoString() string {
7553	return s.String()
7554}
7555
7556// SetErrors sets the Errors field's value.
7557func (s *Messages) SetErrors(v []*string) *Messages {
7558	s.Errors = v
7559	return s
7560}
7561
7562// Exception raised by AWS Elemental MediaConnect. See the error message and
7563// documentation for the operation for more information on the cause of this
7564// exception.
7565type NotFoundException struct {
7566	_            struct{}                  `type:"structure"`
7567	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7568
7569	Message_ *string `locationName:"message" type:"string"`
7570}
7571
7572// String returns the string representation.
7573//
7574// API parameter values that are decorated as "sensitive" in the API will not
7575// be included in the string output. The member name will be present, but the
7576// value will be replaced with "sensitive".
7577func (s NotFoundException) String() string {
7578	return awsutil.Prettify(s)
7579}
7580
7581// GoString returns the string representation.
7582//
7583// API parameter values that are decorated as "sensitive" in the API will not
7584// be included in the string output. The member name will be present, but the
7585// value will be replaced with "sensitive".
7586func (s NotFoundException) GoString() string {
7587	return s.String()
7588}
7589
7590func newErrorNotFoundException(v protocol.ResponseMetadata) error {
7591	return &NotFoundException{
7592		RespMetadata: v,
7593	}
7594}
7595
7596// Code returns the exception type name.
7597func (s *NotFoundException) Code() string {
7598	return "NotFoundException"
7599}
7600
7601// Message returns the exception's message.
7602func (s *NotFoundException) Message() string {
7603	if s.Message_ != nil {
7604		return *s.Message_
7605	}
7606	return ""
7607}
7608
7609// OrigErr always returns nil, satisfies awserr.Error interface.
7610func (s *NotFoundException) OrigErr() error {
7611	return nil
7612}
7613
7614func (s *NotFoundException) Error() string {
7615	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7616}
7617
7618// Status code returns the HTTP status code for the request's response error.
7619func (s *NotFoundException) StatusCode() int {
7620	return s.RespMetadata.StatusCode
7621}
7622
7623// RequestID returns the service's response RequestID for request.
7624func (s *NotFoundException) RequestID() string {
7625	return s.RespMetadata.RequestID
7626}
7627
7628// A savings plan that reserves a certain amount of outbound bandwidth usage
7629// at a discounted rate each month over a period of time.
7630type Offering struct {
7631	_ struct{} `type:"structure"`
7632
7633	// The type of currency that is used for billing. The currencyCode used for
7634	// all reservations is US dollars.
7635	//
7636	// CurrencyCode is a required field
7637	CurrencyCode *string `locationName:"currencyCode" type:"string" required:"true"`
7638
7639	// The length of time that your reservation would be active.
7640	//
7641	// Duration is a required field
7642	Duration *int64 `locationName:"duration" type:"integer" required:"true"`
7643
7644	// The unit of measurement for the duration of the offering.
7645	//
7646	// DurationUnits is a required field
7647	DurationUnits *string `locationName:"durationUnits" type:"string" required:"true" enum:"DurationUnits"`
7648
7649	// The Amazon Resource Name (ARN) that MediaConnect assigns to the offering.
7650	//
7651	// OfferingArn is a required field
7652	OfferingArn *string `locationName:"offeringArn" type:"string" required:"true"`
7653
7654	// A description of the offering.
7655	//
7656	// OfferingDescription is a required field
7657	OfferingDescription *string `locationName:"offeringDescription" type:"string" required:"true"`
7658
7659	// The cost of a single unit. This value, in combination with priceUnits, makes
7660	// up the rate.
7661	//
7662	// PricePerUnit is a required field
7663	PricePerUnit *string `locationName:"pricePerUnit" type:"string" required:"true"`
7664
7665	// The unit of measurement that is used for billing. This value, in combination
7666	// with pricePerUnit, makes up the rate.
7667	//
7668	// PriceUnits is a required field
7669	PriceUnits *string `locationName:"priceUnits" type:"string" required:"true" enum:"PriceUnits"`
7670
7671	// A definition of the amount of outbound bandwidth that you would be reserving
7672	// if you purchase the offering.
7673	//
7674	// ResourceSpecification is a required field
7675	ResourceSpecification *ResourceSpecification `locationName:"resourceSpecification" type:"structure" required:"true"`
7676}
7677
7678// String returns the string representation.
7679//
7680// API parameter values that are decorated as "sensitive" in the API will not
7681// be included in the string output. The member name will be present, but the
7682// value will be replaced with "sensitive".
7683func (s Offering) String() string {
7684	return awsutil.Prettify(s)
7685}
7686
7687// GoString returns the string representation.
7688//
7689// API parameter values that are decorated as "sensitive" in the API will not
7690// be included in the string output. The member name will be present, but the
7691// value will be replaced with "sensitive".
7692func (s Offering) GoString() string {
7693	return s.String()
7694}
7695
7696// SetCurrencyCode sets the CurrencyCode field's value.
7697func (s *Offering) SetCurrencyCode(v string) *Offering {
7698	s.CurrencyCode = &v
7699	return s
7700}
7701
7702// SetDuration sets the Duration field's value.
7703func (s *Offering) SetDuration(v int64) *Offering {
7704	s.Duration = &v
7705	return s
7706}
7707
7708// SetDurationUnits sets the DurationUnits field's value.
7709func (s *Offering) SetDurationUnits(v string) *Offering {
7710	s.DurationUnits = &v
7711	return s
7712}
7713
7714// SetOfferingArn sets the OfferingArn field's value.
7715func (s *Offering) SetOfferingArn(v string) *Offering {
7716	s.OfferingArn = &v
7717	return s
7718}
7719
7720// SetOfferingDescription sets the OfferingDescription field's value.
7721func (s *Offering) SetOfferingDescription(v string) *Offering {
7722	s.OfferingDescription = &v
7723	return s
7724}
7725
7726// SetPricePerUnit sets the PricePerUnit field's value.
7727func (s *Offering) SetPricePerUnit(v string) *Offering {
7728	s.PricePerUnit = &v
7729	return s
7730}
7731
7732// SetPriceUnits sets the PriceUnits field's value.
7733func (s *Offering) SetPriceUnits(v string) *Offering {
7734	s.PriceUnits = &v
7735	return s
7736}
7737
7738// SetResourceSpecification sets the ResourceSpecification field's value.
7739func (s *Offering) SetResourceSpecification(v *ResourceSpecification) *Offering {
7740	s.ResourceSpecification = v
7741	return s
7742}
7743
7744// The settings for an output.
7745type Output struct {
7746	_ struct{} `type:"structure"`
7747
7748	// Percentage from 0-100 of the data transfer cost to be billed to the subscriber.
7749	DataTransferSubscriberFeePercent *int64 `locationName:"dataTransferSubscriberFeePercent" type:"integer"`
7750
7751	// A description of the output.
7752	Description *string `locationName:"description" type:"string"`
7753
7754	// The address where you want to send the output.
7755	Destination *string `locationName:"destination" type:"string"`
7756
7757	// The type of key used for the encryption. If no keyType is provided, the service
7758	// will use the default setting (static-key).
7759	Encryption *Encryption `locationName:"encryption" type:"structure"`
7760
7761	// The ARN of the entitlement on the originator''s flow. This value is relevant
7762	// only on entitled flows.
7763	EntitlementArn *string `locationName:"entitlementArn" type:"string"`
7764
7765	// The IP address that the receiver requires in order to establish a connection
7766	// with the flow. For public networking, the ListenerAddress is represented
7767	// by the elastic IP address of the flow. For private networking, the ListenerAddress
7768	// is represented by the elastic network interface IP address of the VPC. This
7769	// field applies only to outputs that use the Zixi pull or SRT listener protocol.
7770	ListenerAddress *string `locationName:"listenerAddress" type:"string"`
7771
7772	// The input ARN of the AWS Elemental MediaLive channel. This parameter is relevant
7773	// only for outputs that were added by creating a MediaLive input.
7774	MediaLiveInputArn *string `locationName:"mediaLiveInputArn" type:"string"`
7775
7776	// The configuration for each media stream that is associated with the output.
7777	MediaStreamOutputConfigurations []*MediaStreamOutputConfiguration `locationName:"mediaStreamOutputConfigurations" type:"list"`
7778
7779	// The name of the output. This value must be unique within the current flow.
7780	//
7781	// Name is a required field
7782	Name *string `locationName:"name" type:"string" required:"true"`
7783
7784	// The ARN of the output.
7785	//
7786	// OutputArn is a required field
7787	OutputArn *string `locationName:"outputArn" type:"string" required:"true"`
7788
7789	// The port to use when content is distributed to this output.
7790	Port *int64 `locationName:"port" type:"integer"`
7791
7792	// Attributes related to the transport stream that are used in the output.
7793	Transport *Transport `locationName:"transport" type:"structure"`
7794
7795	// The name of the VPC interface attachment to use for this output.
7796	VpcInterfaceAttachment *VpcInterfaceAttachment `locationName:"vpcInterfaceAttachment" type:"structure"`
7797}
7798
7799// String returns the string representation.
7800//
7801// API parameter values that are decorated as "sensitive" in the API will not
7802// be included in the string output. The member name will be present, but the
7803// value will be replaced with "sensitive".
7804func (s Output) String() string {
7805	return awsutil.Prettify(s)
7806}
7807
7808// GoString returns the string representation.
7809//
7810// API parameter values that are decorated as "sensitive" in the API will not
7811// be included in the string output. The member name will be present, but the
7812// value will be replaced with "sensitive".
7813func (s Output) GoString() string {
7814	return s.String()
7815}
7816
7817// SetDataTransferSubscriberFeePercent sets the DataTransferSubscriberFeePercent field's value.
7818func (s *Output) SetDataTransferSubscriberFeePercent(v int64) *Output {
7819	s.DataTransferSubscriberFeePercent = &v
7820	return s
7821}
7822
7823// SetDescription sets the Description field's value.
7824func (s *Output) SetDescription(v string) *Output {
7825	s.Description = &v
7826	return s
7827}
7828
7829// SetDestination sets the Destination field's value.
7830func (s *Output) SetDestination(v string) *Output {
7831	s.Destination = &v
7832	return s
7833}
7834
7835// SetEncryption sets the Encryption field's value.
7836func (s *Output) SetEncryption(v *Encryption) *Output {
7837	s.Encryption = v
7838	return s
7839}
7840
7841// SetEntitlementArn sets the EntitlementArn field's value.
7842func (s *Output) SetEntitlementArn(v string) *Output {
7843	s.EntitlementArn = &v
7844	return s
7845}
7846
7847// SetListenerAddress sets the ListenerAddress field's value.
7848func (s *Output) SetListenerAddress(v string) *Output {
7849	s.ListenerAddress = &v
7850	return s
7851}
7852
7853// SetMediaLiveInputArn sets the MediaLiveInputArn field's value.
7854func (s *Output) SetMediaLiveInputArn(v string) *Output {
7855	s.MediaLiveInputArn = &v
7856	return s
7857}
7858
7859// SetMediaStreamOutputConfigurations sets the MediaStreamOutputConfigurations field's value.
7860func (s *Output) SetMediaStreamOutputConfigurations(v []*MediaStreamOutputConfiguration) *Output {
7861	s.MediaStreamOutputConfigurations = v
7862	return s
7863}
7864
7865// SetName sets the Name field's value.
7866func (s *Output) SetName(v string) *Output {
7867	s.Name = &v
7868	return s
7869}
7870
7871// SetOutputArn sets the OutputArn field's value.
7872func (s *Output) SetOutputArn(v string) *Output {
7873	s.OutputArn = &v
7874	return s
7875}
7876
7877// SetPort sets the Port field's value.
7878func (s *Output) SetPort(v int64) *Output {
7879	s.Port = &v
7880	return s
7881}
7882
7883// SetTransport sets the Transport field's value.
7884func (s *Output) SetTransport(v *Transport) *Output {
7885	s.Transport = v
7886	return s
7887}
7888
7889// SetVpcInterfaceAttachment sets the VpcInterfaceAttachment field's value.
7890func (s *Output) SetVpcInterfaceAttachment(v *VpcInterfaceAttachment) *Output {
7891	s.VpcInterfaceAttachment = v
7892	return s
7893}
7894
7895// Submits a request to purchase an offering, which creates a reservation in
7896// your AWS account. If you already have an active reservation, you can't purchase
7897// another offering.
7898type PurchaseOfferingInput struct {
7899	_ struct{} `type:"structure"`
7900
7901	// OfferingArn is a required field
7902	OfferingArn *string `location:"uri" locationName:"offeringArn" type:"string" required:"true"`
7903
7904	// The name that you want to use for the reservation.
7905	//
7906	// ReservationName is a required field
7907	ReservationName *string `locationName:"reservationName" type:"string" required:"true"`
7908
7909	// The date and time that you want the reservation to begin, in Coordinated
7910	// Universal Time (UTC). You can specify any date and time between 12:00am on
7911	// the first day of the current month to the current time on today's date, inclusive.
7912	// Specify the start in a 24-hour notation. Use the following format: YYYY-MM-DDTHH:mm:SSZ,
7913	// where T and Z are literal characters. For example, to specify 11:30pm on
7914	// March 5, 2020, enter 2020-03-05T23:30:00Z.
7915	//
7916	// Start is a required field
7917	Start *string `locationName:"start" type:"string" required:"true"`
7918}
7919
7920// String returns the string representation.
7921//
7922// API parameter values that are decorated as "sensitive" in the API will not
7923// be included in the string output. The member name will be present, but the
7924// value will be replaced with "sensitive".
7925func (s PurchaseOfferingInput) String() string {
7926	return awsutil.Prettify(s)
7927}
7928
7929// GoString returns the string representation.
7930//
7931// API parameter values that are decorated as "sensitive" in the API will not
7932// be included in the string output. The member name will be present, but the
7933// value will be replaced with "sensitive".
7934func (s PurchaseOfferingInput) GoString() string {
7935	return s.String()
7936}
7937
7938// Validate inspects the fields of the type to determine if they are valid.
7939func (s *PurchaseOfferingInput) Validate() error {
7940	invalidParams := request.ErrInvalidParams{Context: "PurchaseOfferingInput"}
7941	if s.OfferingArn == nil {
7942		invalidParams.Add(request.NewErrParamRequired("OfferingArn"))
7943	}
7944	if s.OfferingArn != nil && len(*s.OfferingArn) < 1 {
7945		invalidParams.Add(request.NewErrParamMinLen("OfferingArn", 1))
7946	}
7947	if s.ReservationName == nil {
7948		invalidParams.Add(request.NewErrParamRequired("ReservationName"))
7949	}
7950	if s.Start == nil {
7951		invalidParams.Add(request.NewErrParamRequired("Start"))
7952	}
7953
7954	if invalidParams.Len() > 0 {
7955		return invalidParams
7956	}
7957	return nil
7958}
7959
7960// SetOfferingArn sets the OfferingArn field's value.
7961func (s *PurchaseOfferingInput) SetOfferingArn(v string) *PurchaseOfferingInput {
7962	s.OfferingArn = &v
7963	return s
7964}
7965
7966// SetReservationName sets the ReservationName field's value.
7967func (s *PurchaseOfferingInput) SetReservationName(v string) *PurchaseOfferingInput {
7968	s.ReservationName = &v
7969	return s
7970}
7971
7972// SetStart sets the Start field's value.
7973func (s *PurchaseOfferingInput) SetStart(v string) *PurchaseOfferingInput {
7974	s.Start = &v
7975	return s
7976}
7977
7978// The result of a successful PurchaseOffering request.
7979type PurchaseOfferingOutput struct {
7980	_ struct{} `type:"structure"`
7981
7982	// A pricing agreement for a discounted rate for a specific outbound bandwidth
7983	// that your MediaConnect account will use each month over a specific time period.
7984	// The discounted rate in the reservation applies to outbound bandwidth for
7985	// all flows from your account until your account reaches the amount of bandwidth
7986	// in your reservation. If you use more outbound bandwidth than the agreed upon
7987	// amount in a single month, the overage is charged at the on-demand rate.
7988	Reservation *Reservation `locationName:"reservation" type:"structure"`
7989}
7990
7991// String returns the string representation.
7992//
7993// API parameter values that are decorated as "sensitive" in the API will not
7994// be included in the string output. The member name will be present, but the
7995// value will be replaced with "sensitive".
7996func (s PurchaseOfferingOutput) String() string {
7997	return awsutil.Prettify(s)
7998}
7999
8000// GoString returns the string representation.
8001//
8002// API parameter values that are decorated as "sensitive" in the API will not
8003// be included in the string output. The member name will be present, but the
8004// value will be replaced with "sensitive".
8005func (s PurchaseOfferingOutput) GoString() string {
8006	return s.String()
8007}
8008
8009// SetReservation sets the Reservation field's value.
8010func (s *PurchaseOfferingOutput) SetReservation(v *Reservation) *PurchaseOfferingOutput {
8011	s.Reservation = v
8012	return s
8013}
8014
8015type RemoveFlowMediaStreamInput struct {
8016	_ struct{} `type:"structure" nopayload:"true"`
8017
8018	// FlowArn is a required field
8019	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
8020
8021	// MediaStreamName is a required field
8022	MediaStreamName *string `location:"uri" locationName:"mediaStreamName" type:"string" required:"true"`
8023}
8024
8025// String returns the string representation.
8026//
8027// API parameter values that are decorated as "sensitive" in the API will not
8028// be included in the string output. The member name will be present, but the
8029// value will be replaced with "sensitive".
8030func (s RemoveFlowMediaStreamInput) String() string {
8031	return awsutil.Prettify(s)
8032}
8033
8034// GoString returns the string representation.
8035//
8036// API parameter values that are decorated as "sensitive" in the API will not
8037// be included in the string output. The member name will be present, but the
8038// value will be replaced with "sensitive".
8039func (s RemoveFlowMediaStreamInput) GoString() string {
8040	return s.String()
8041}
8042
8043// Validate inspects the fields of the type to determine if they are valid.
8044func (s *RemoveFlowMediaStreamInput) Validate() error {
8045	invalidParams := request.ErrInvalidParams{Context: "RemoveFlowMediaStreamInput"}
8046	if s.FlowArn == nil {
8047		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
8048	}
8049	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
8050		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
8051	}
8052	if s.MediaStreamName == nil {
8053		invalidParams.Add(request.NewErrParamRequired("MediaStreamName"))
8054	}
8055	if s.MediaStreamName != nil && len(*s.MediaStreamName) < 1 {
8056		invalidParams.Add(request.NewErrParamMinLen("MediaStreamName", 1))
8057	}
8058
8059	if invalidParams.Len() > 0 {
8060		return invalidParams
8061	}
8062	return nil
8063}
8064
8065// SetFlowArn sets the FlowArn field's value.
8066func (s *RemoveFlowMediaStreamInput) SetFlowArn(v string) *RemoveFlowMediaStreamInput {
8067	s.FlowArn = &v
8068	return s
8069}
8070
8071// SetMediaStreamName sets the MediaStreamName field's value.
8072func (s *RemoveFlowMediaStreamInput) SetMediaStreamName(v string) *RemoveFlowMediaStreamInput {
8073	s.MediaStreamName = &v
8074	return s
8075}
8076
8077// The result of a successful RemoveFlowMediaStream request.
8078type RemoveFlowMediaStreamOutput struct {
8079	_ struct{} `type:"structure"`
8080
8081	// The Amazon Resource Name (ARN) of the flow.
8082	FlowArn *string `locationName:"flowArn" type:"string"`
8083
8084	// The name of the media stream that was removed.
8085	MediaStreamName *string `locationName:"mediaStreamName" type:"string"`
8086}
8087
8088// String returns the string representation.
8089//
8090// API parameter values that are decorated as "sensitive" in the API will not
8091// be included in the string output. The member name will be present, but the
8092// value will be replaced with "sensitive".
8093func (s RemoveFlowMediaStreamOutput) String() string {
8094	return awsutil.Prettify(s)
8095}
8096
8097// GoString returns the string representation.
8098//
8099// API parameter values that are decorated as "sensitive" in the API will not
8100// be included in the string output. The member name will be present, but the
8101// value will be replaced with "sensitive".
8102func (s RemoveFlowMediaStreamOutput) GoString() string {
8103	return s.String()
8104}
8105
8106// SetFlowArn sets the FlowArn field's value.
8107func (s *RemoveFlowMediaStreamOutput) SetFlowArn(v string) *RemoveFlowMediaStreamOutput {
8108	s.FlowArn = &v
8109	return s
8110}
8111
8112// SetMediaStreamName sets the MediaStreamName field's value.
8113func (s *RemoveFlowMediaStreamOutput) SetMediaStreamName(v string) *RemoveFlowMediaStreamOutput {
8114	s.MediaStreamName = &v
8115	return s
8116}
8117
8118type RemoveFlowOutputInput struct {
8119	_ struct{} `type:"structure" nopayload:"true"`
8120
8121	// FlowArn is a required field
8122	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
8123
8124	// OutputArn is a required field
8125	OutputArn *string `location:"uri" locationName:"outputArn" type:"string" required:"true"`
8126}
8127
8128// String returns the string representation.
8129//
8130// API parameter values that are decorated as "sensitive" in the API will not
8131// be included in the string output. The member name will be present, but the
8132// value will be replaced with "sensitive".
8133func (s RemoveFlowOutputInput) String() string {
8134	return awsutil.Prettify(s)
8135}
8136
8137// GoString returns the string representation.
8138//
8139// API parameter values that are decorated as "sensitive" in the API will not
8140// be included in the string output. The member name will be present, but the
8141// value will be replaced with "sensitive".
8142func (s RemoveFlowOutputInput) GoString() string {
8143	return s.String()
8144}
8145
8146// Validate inspects the fields of the type to determine if they are valid.
8147func (s *RemoveFlowOutputInput) Validate() error {
8148	invalidParams := request.ErrInvalidParams{Context: "RemoveFlowOutputInput"}
8149	if s.FlowArn == nil {
8150		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
8151	}
8152	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
8153		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
8154	}
8155	if s.OutputArn == nil {
8156		invalidParams.Add(request.NewErrParamRequired("OutputArn"))
8157	}
8158	if s.OutputArn != nil && len(*s.OutputArn) < 1 {
8159		invalidParams.Add(request.NewErrParamMinLen("OutputArn", 1))
8160	}
8161
8162	if invalidParams.Len() > 0 {
8163		return invalidParams
8164	}
8165	return nil
8166}
8167
8168// SetFlowArn sets the FlowArn field's value.
8169func (s *RemoveFlowOutputInput) SetFlowArn(v string) *RemoveFlowOutputInput {
8170	s.FlowArn = &v
8171	return s
8172}
8173
8174// SetOutputArn sets the OutputArn field's value.
8175func (s *RemoveFlowOutputInput) SetOutputArn(v string) *RemoveFlowOutputInput {
8176	s.OutputArn = &v
8177	return s
8178}
8179
8180// The result of a successful RemoveFlowOutput request including the flow ARN
8181// and the output ARN that was removed.
8182type RemoveFlowOutputOutput struct {
8183	_ struct{} `type:"structure"`
8184
8185	// The ARN of the flow that is associated with the output you removed.
8186	FlowArn *string `locationName:"flowArn" type:"string"`
8187
8188	// The ARN of the output that was removed.
8189	OutputArn *string `locationName:"outputArn" type:"string"`
8190}
8191
8192// String returns the string representation.
8193//
8194// API parameter values that are decorated as "sensitive" in the API will not
8195// be included in the string output. The member name will be present, but the
8196// value will be replaced with "sensitive".
8197func (s RemoveFlowOutputOutput) String() string {
8198	return awsutil.Prettify(s)
8199}
8200
8201// GoString returns the string representation.
8202//
8203// API parameter values that are decorated as "sensitive" in the API will not
8204// be included in the string output. The member name will be present, but the
8205// value will be replaced with "sensitive".
8206func (s RemoveFlowOutputOutput) GoString() string {
8207	return s.String()
8208}
8209
8210// SetFlowArn sets the FlowArn field's value.
8211func (s *RemoveFlowOutputOutput) SetFlowArn(v string) *RemoveFlowOutputOutput {
8212	s.FlowArn = &v
8213	return s
8214}
8215
8216// SetOutputArn sets the OutputArn field's value.
8217func (s *RemoveFlowOutputOutput) SetOutputArn(v string) *RemoveFlowOutputOutput {
8218	s.OutputArn = &v
8219	return s
8220}
8221
8222type RemoveFlowSourceInput struct {
8223	_ struct{} `type:"structure" nopayload:"true"`
8224
8225	// FlowArn is a required field
8226	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
8227
8228	// SourceArn is a required field
8229	SourceArn *string `location:"uri" locationName:"sourceArn" type:"string" required:"true"`
8230}
8231
8232// String returns the string representation.
8233//
8234// API parameter values that are decorated as "sensitive" in the API will not
8235// be included in the string output. The member name will be present, but the
8236// value will be replaced with "sensitive".
8237func (s RemoveFlowSourceInput) String() string {
8238	return awsutil.Prettify(s)
8239}
8240
8241// GoString returns the string representation.
8242//
8243// API parameter values that are decorated as "sensitive" in the API will not
8244// be included in the string output. The member name will be present, but the
8245// value will be replaced with "sensitive".
8246func (s RemoveFlowSourceInput) GoString() string {
8247	return s.String()
8248}
8249
8250// Validate inspects the fields of the type to determine if they are valid.
8251func (s *RemoveFlowSourceInput) Validate() error {
8252	invalidParams := request.ErrInvalidParams{Context: "RemoveFlowSourceInput"}
8253	if s.FlowArn == nil {
8254		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
8255	}
8256	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
8257		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
8258	}
8259	if s.SourceArn == nil {
8260		invalidParams.Add(request.NewErrParamRequired("SourceArn"))
8261	}
8262	if s.SourceArn != nil && len(*s.SourceArn) < 1 {
8263		invalidParams.Add(request.NewErrParamMinLen("SourceArn", 1))
8264	}
8265
8266	if invalidParams.Len() > 0 {
8267		return invalidParams
8268	}
8269	return nil
8270}
8271
8272// SetFlowArn sets the FlowArn field's value.
8273func (s *RemoveFlowSourceInput) SetFlowArn(v string) *RemoveFlowSourceInput {
8274	s.FlowArn = &v
8275	return s
8276}
8277
8278// SetSourceArn sets the SourceArn field's value.
8279func (s *RemoveFlowSourceInput) SetSourceArn(v string) *RemoveFlowSourceInput {
8280	s.SourceArn = &v
8281	return s
8282}
8283
8284// The result of a successful RemoveFlowSource request including the flow ARN
8285// and the source ARN that was removed.
8286type RemoveFlowSourceOutput struct {
8287	_ struct{} `type:"structure"`
8288
8289	// The ARN of the flow that is associated with the source you removed.
8290	FlowArn *string `locationName:"flowArn" type:"string"`
8291
8292	// The ARN of the source that was removed.
8293	SourceArn *string `locationName:"sourceArn" type:"string"`
8294}
8295
8296// String returns the string representation.
8297//
8298// API parameter values that are decorated as "sensitive" in the API will not
8299// be included in the string output. The member name will be present, but the
8300// value will be replaced with "sensitive".
8301func (s RemoveFlowSourceOutput) String() string {
8302	return awsutil.Prettify(s)
8303}
8304
8305// GoString returns the string representation.
8306//
8307// API parameter values that are decorated as "sensitive" in the API will not
8308// be included in the string output. The member name will be present, but the
8309// value will be replaced with "sensitive".
8310func (s RemoveFlowSourceOutput) GoString() string {
8311	return s.String()
8312}
8313
8314// SetFlowArn sets the FlowArn field's value.
8315func (s *RemoveFlowSourceOutput) SetFlowArn(v string) *RemoveFlowSourceOutput {
8316	s.FlowArn = &v
8317	return s
8318}
8319
8320// SetSourceArn sets the SourceArn field's value.
8321func (s *RemoveFlowSourceOutput) SetSourceArn(v string) *RemoveFlowSourceOutput {
8322	s.SourceArn = &v
8323	return s
8324}
8325
8326type RemoveFlowVpcInterfaceInput struct {
8327	_ struct{} `type:"structure" nopayload:"true"`
8328
8329	// FlowArn is a required field
8330	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
8331
8332	// VpcInterfaceName is a required field
8333	VpcInterfaceName *string `location:"uri" locationName:"vpcInterfaceName" type:"string" required:"true"`
8334}
8335
8336// String returns the string representation.
8337//
8338// API parameter values that are decorated as "sensitive" in the API will not
8339// be included in the string output. The member name will be present, but the
8340// value will be replaced with "sensitive".
8341func (s RemoveFlowVpcInterfaceInput) String() string {
8342	return awsutil.Prettify(s)
8343}
8344
8345// GoString returns the string representation.
8346//
8347// API parameter values that are decorated as "sensitive" in the API will not
8348// be included in the string output. The member name will be present, but the
8349// value will be replaced with "sensitive".
8350func (s RemoveFlowVpcInterfaceInput) GoString() string {
8351	return s.String()
8352}
8353
8354// Validate inspects the fields of the type to determine if they are valid.
8355func (s *RemoveFlowVpcInterfaceInput) Validate() error {
8356	invalidParams := request.ErrInvalidParams{Context: "RemoveFlowVpcInterfaceInput"}
8357	if s.FlowArn == nil {
8358		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
8359	}
8360	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
8361		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
8362	}
8363	if s.VpcInterfaceName == nil {
8364		invalidParams.Add(request.NewErrParamRequired("VpcInterfaceName"))
8365	}
8366	if s.VpcInterfaceName != nil && len(*s.VpcInterfaceName) < 1 {
8367		invalidParams.Add(request.NewErrParamMinLen("VpcInterfaceName", 1))
8368	}
8369
8370	if invalidParams.Len() > 0 {
8371		return invalidParams
8372	}
8373	return nil
8374}
8375
8376// SetFlowArn sets the FlowArn field's value.
8377func (s *RemoveFlowVpcInterfaceInput) SetFlowArn(v string) *RemoveFlowVpcInterfaceInput {
8378	s.FlowArn = &v
8379	return s
8380}
8381
8382// SetVpcInterfaceName sets the VpcInterfaceName field's value.
8383func (s *RemoveFlowVpcInterfaceInput) SetVpcInterfaceName(v string) *RemoveFlowVpcInterfaceInput {
8384	s.VpcInterfaceName = &v
8385	return s
8386}
8387
8388// The result of a successful RemoveFlowVpcInterface request including the flow
8389// ARN and the VPC interface name that was removed.
8390type RemoveFlowVpcInterfaceOutput struct {
8391	_ struct{} `type:"structure"`
8392
8393	// The ARN of the flow that is associated with the VPC interface you removed.
8394	FlowArn *string `locationName:"flowArn" type:"string"`
8395
8396	// IDs of network interfaces associated with the removed VPC interface that
8397	// Media Connect was unable to remove.
8398	NonDeletedNetworkInterfaceIds []*string `locationName:"nonDeletedNetworkInterfaceIds" type:"list"`
8399
8400	// The name of the VPC interface that was removed.
8401	VpcInterfaceName *string `locationName:"vpcInterfaceName" type:"string"`
8402}
8403
8404// String returns the string representation.
8405//
8406// API parameter values that are decorated as "sensitive" in the API will not
8407// be included in the string output. The member name will be present, but the
8408// value will be replaced with "sensitive".
8409func (s RemoveFlowVpcInterfaceOutput) String() string {
8410	return awsutil.Prettify(s)
8411}
8412
8413// GoString returns the string representation.
8414//
8415// API parameter values that are decorated as "sensitive" in the API will not
8416// be included in the string output. The member name will be present, but the
8417// value will be replaced with "sensitive".
8418func (s RemoveFlowVpcInterfaceOutput) GoString() string {
8419	return s.String()
8420}
8421
8422// SetFlowArn sets the FlowArn field's value.
8423func (s *RemoveFlowVpcInterfaceOutput) SetFlowArn(v string) *RemoveFlowVpcInterfaceOutput {
8424	s.FlowArn = &v
8425	return s
8426}
8427
8428// SetNonDeletedNetworkInterfaceIds sets the NonDeletedNetworkInterfaceIds field's value.
8429func (s *RemoveFlowVpcInterfaceOutput) SetNonDeletedNetworkInterfaceIds(v []*string) *RemoveFlowVpcInterfaceOutput {
8430	s.NonDeletedNetworkInterfaceIds = v
8431	return s
8432}
8433
8434// SetVpcInterfaceName sets the VpcInterfaceName field's value.
8435func (s *RemoveFlowVpcInterfaceOutput) SetVpcInterfaceName(v string) *RemoveFlowVpcInterfaceOutput {
8436	s.VpcInterfaceName = &v
8437	return s
8438}
8439
8440// A pricing agreement for a discounted rate for a specific outbound bandwidth
8441// that your MediaConnect account will use each month over a specific time period.
8442// The discounted rate in the reservation applies to outbound bandwidth for
8443// all flows from your account until your account reaches the amount of bandwidth
8444// in your reservation. If you use more outbound bandwidth than the agreed upon
8445// amount in a single month, the overage is charged at the on-demand rate.
8446type Reservation struct {
8447	_ struct{} `type:"structure"`
8448
8449	// The type of currency that is used for billing. The currencyCode used for
8450	// your reservation is US dollars.
8451	//
8452	// CurrencyCode is a required field
8453	CurrencyCode *string `locationName:"currencyCode" type:"string" required:"true"`
8454
8455	// The length of time that this reservation is active. MediaConnect defines
8456	// this value in the offering.
8457	//
8458	// Duration is a required field
8459	Duration *int64 `locationName:"duration" type:"integer" required:"true"`
8460
8461	// The unit of measurement for the duration of the reservation. MediaConnect
8462	// defines this value in the offering.
8463	//
8464	// DurationUnits is a required field
8465	DurationUnits *string `locationName:"durationUnits" type:"string" required:"true" enum:"DurationUnits"`
8466
8467	// The day and time that this reservation expires. This value is calculated
8468	// based on the start date and time that you set and the offering's duration.
8469	//
8470	// End is a required field
8471	End *string `locationName:"end" type:"string" required:"true"`
8472
8473	// The Amazon Resource Name (ARN) that MediaConnect assigns to the offering.
8474	//
8475	// OfferingArn is a required field
8476	OfferingArn *string `locationName:"offeringArn" type:"string" required:"true"`
8477
8478	// A description of the offering. MediaConnect defines this value in the offering.
8479	//
8480	// OfferingDescription is a required field
8481	OfferingDescription *string `locationName:"offeringDescription" type:"string" required:"true"`
8482
8483	// The cost of a single unit. This value, in combination with priceUnits, makes
8484	// up the rate. MediaConnect defines this value in the offering.
8485	//
8486	// PricePerUnit is a required field
8487	PricePerUnit *string `locationName:"pricePerUnit" type:"string" required:"true"`
8488
8489	// The unit of measurement that is used for billing. This value, in combination
8490	// with pricePerUnit, makes up the rate. MediaConnect defines this value in
8491	// the offering.
8492	//
8493	// PriceUnits is a required field
8494	PriceUnits *string `locationName:"priceUnits" type:"string" required:"true" enum:"PriceUnits"`
8495
8496	// The Amazon Resource Name (ARN) that MediaConnect assigns to the reservation
8497	// when you purchase an offering.
8498	//
8499	// ReservationArn is a required field
8500	ReservationArn *string `locationName:"reservationArn" type:"string" required:"true"`
8501
8502	// The name that you assigned to the reservation when you purchased the offering.
8503	//
8504	// ReservationName is a required field
8505	ReservationName *string `locationName:"reservationName" type:"string" required:"true"`
8506
8507	// The status of your reservation.
8508	//
8509	// ReservationState is a required field
8510	ReservationState *string `locationName:"reservationState" type:"string" required:"true" enum:"ReservationState"`
8511
8512	// A definition of the amount of outbound bandwidth that you would be reserving
8513	// if you purchase the offering. MediaConnect defines the values that make up
8514	// the resourceSpecification in the offering.
8515	//
8516	// ResourceSpecification is a required field
8517	ResourceSpecification *ResourceSpecification `locationName:"resourceSpecification" type:"structure" required:"true"`
8518
8519	// The day and time that the reservation becomes active. You set this value
8520	// when you purchase the offering.
8521	//
8522	// Start is a required field
8523	Start *string `locationName:"start" type:"string" required:"true"`
8524}
8525
8526// String returns the string representation.
8527//
8528// API parameter values that are decorated as "sensitive" in the API will not
8529// be included in the string output. The member name will be present, but the
8530// value will be replaced with "sensitive".
8531func (s Reservation) String() string {
8532	return awsutil.Prettify(s)
8533}
8534
8535// GoString returns the string representation.
8536//
8537// API parameter values that are decorated as "sensitive" in the API will not
8538// be included in the string output. The member name will be present, but the
8539// value will be replaced with "sensitive".
8540func (s Reservation) GoString() string {
8541	return s.String()
8542}
8543
8544// SetCurrencyCode sets the CurrencyCode field's value.
8545func (s *Reservation) SetCurrencyCode(v string) *Reservation {
8546	s.CurrencyCode = &v
8547	return s
8548}
8549
8550// SetDuration sets the Duration field's value.
8551func (s *Reservation) SetDuration(v int64) *Reservation {
8552	s.Duration = &v
8553	return s
8554}
8555
8556// SetDurationUnits sets the DurationUnits field's value.
8557func (s *Reservation) SetDurationUnits(v string) *Reservation {
8558	s.DurationUnits = &v
8559	return s
8560}
8561
8562// SetEnd sets the End field's value.
8563func (s *Reservation) SetEnd(v string) *Reservation {
8564	s.End = &v
8565	return s
8566}
8567
8568// SetOfferingArn sets the OfferingArn field's value.
8569func (s *Reservation) SetOfferingArn(v string) *Reservation {
8570	s.OfferingArn = &v
8571	return s
8572}
8573
8574// SetOfferingDescription sets the OfferingDescription field's value.
8575func (s *Reservation) SetOfferingDescription(v string) *Reservation {
8576	s.OfferingDescription = &v
8577	return s
8578}
8579
8580// SetPricePerUnit sets the PricePerUnit field's value.
8581func (s *Reservation) SetPricePerUnit(v string) *Reservation {
8582	s.PricePerUnit = &v
8583	return s
8584}
8585
8586// SetPriceUnits sets the PriceUnits field's value.
8587func (s *Reservation) SetPriceUnits(v string) *Reservation {
8588	s.PriceUnits = &v
8589	return s
8590}
8591
8592// SetReservationArn sets the ReservationArn field's value.
8593func (s *Reservation) SetReservationArn(v string) *Reservation {
8594	s.ReservationArn = &v
8595	return s
8596}
8597
8598// SetReservationName sets the ReservationName field's value.
8599func (s *Reservation) SetReservationName(v string) *Reservation {
8600	s.ReservationName = &v
8601	return s
8602}
8603
8604// SetReservationState sets the ReservationState field's value.
8605func (s *Reservation) SetReservationState(v string) *Reservation {
8606	s.ReservationState = &v
8607	return s
8608}
8609
8610// SetResourceSpecification sets the ResourceSpecification field's value.
8611func (s *Reservation) SetResourceSpecification(v *ResourceSpecification) *Reservation {
8612	s.ResourceSpecification = v
8613	return s
8614}
8615
8616// SetStart sets the Start field's value.
8617func (s *Reservation) SetStart(v string) *Reservation {
8618	s.Start = &v
8619	return s
8620}
8621
8622// A definition of what is being billed for, including the type and amount.
8623type ResourceSpecification struct {
8624	_ struct{} `type:"structure"`
8625
8626	// The amount of outbound bandwidth that is discounted in the offering.
8627	ReservedBitrate *int64 `locationName:"reservedBitrate" type:"integer"`
8628
8629	// The type of resource and the unit that is being billed for.
8630	//
8631	// ResourceType is a required field
8632	ResourceType *string `locationName:"resourceType" type:"string" required:"true" enum:"ResourceType"`
8633}
8634
8635// String returns the string representation.
8636//
8637// API parameter values that are decorated as "sensitive" in the API will not
8638// be included in the string output. The member name will be present, but the
8639// value will be replaced with "sensitive".
8640func (s ResourceSpecification) String() string {
8641	return awsutil.Prettify(s)
8642}
8643
8644// GoString returns the string representation.
8645//
8646// API parameter values that are decorated as "sensitive" in the API will not
8647// be included in the string output. The member name will be present, but the
8648// value will be replaced with "sensitive".
8649func (s ResourceSpecification) GoString() string {
8650	return s.String()
8651}
8652
8653// SetReservedBitrate sets the ReservedBitrate field's value.
8654func (s *ResourceSpecification) SetReservedBitrate(v int64) *ResourceSpecification {
8655	s.ReservedBitrate = &v
8656	return s
8657}
8658
8659// SetResourceType sets the ResourceType field's value.
8660func (s *ResourceSpecification) SetResourceType(v string) *ResourceSpecification {
8661	s.ResourceType = &v
8662	return s
8663}
8664
8665type RevokeFlowEntitlementInput struct {
8666	_ struct{} `type:"structure" nopayload:"true"`
8667
8668	// EntitlementArn is a required field
8669	EntitlementArn *string `location:"uri" locationName:"entitlementArn" type:"string" required:"true"`
8670
8671	// FlowArn is a required field
8672	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
8673}
8674
8675// String returns the string representation.
8676//
8677// API parameter values that are decorated as "sensitive" in the API will not
8678// be included in the string output. The member name will be present, but the
8679// value will be replaced with "sensitive".
8680func (s RevokeFlowEntitlementInput) String() string {
8681	return awsutil.Prettify(s)
8682}
8683
8684// GoString returns the string representation.
8685//
8686// API parameter values that are decorated as "sensitive" in the API will not
8687// be included in the string output. The member name will be present, but the
8688// value will be replaced with "sensitive".
8689func (s RevokeFlowEntitlementInput) GoString() string {
8690	return s.String()
8691}
8692
8693// Validate inspects the fields of the type to determine if they are valid.
8694func (s *RevokeFlowEntitlementInput) Validate() error {
8695	invalidParams := request.ErrInvalidParams{Context: "RevokeFlowEntitlementInput"}
8696	if s.EntitlementArn == nil {
8697		invalidParams.Add(request.NewErrParamRequired("EntitlementArn"))
8698	}
8699	if s.EntitlementArn != nil && len(*s.EntitlementArn) < 1 {
8700		invalidParams.Add(request.NewErrParamMinLen("EntitlementArn", 1))
8701	}
8702	if s.FlowArn == nil {
8703		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
8704	}
8705	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
8706		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
8707	}
8708
8709	if invalidParams.Len() > 0 {
8710		return invalidParams
8711	}
8712	return nil
8713}
8714
8715// SetEntitlementArn sets the EntitlementArn field's value.
8716func (s *RevokeFlowEntitlementInput) SetEntitlementArn(v string) *RevokeFlowEntitlementInput {
8717	s.EntitlementArn = &v
8718	return s
8719}
8720
8721// SetFlowArn sets the FlowArn field's value.
8722func (s *RevokeFlowEntitlementInput) SetFlowArn(v string) *RevokeFlowEntitlementInput {
8723	s.FlowArn = &v
8724	return s
8725}
8726
8727// The result of a successful RevokeFlowEntitlement request. The response includes
8728// the ARN of the flow that was updated and the ARN of the entitlement that
8729// was revoked.
8730type RevokeFlowEntitlementOutput struct {
8731	_ struct{} `type:"structure"`
8732
8733	// The ARN of the entitlement that was revoked.
8734	EntitlementArn *string `locationName:"entitlementArn" type:"string"`
8735
8736	// The ARN of the flow that the entitlement was revoked from.
8737	FlowArn *string `locationName:"flowArn" type:"string"`
8738}
8739
8740// String returns the string representation.
8741//
8742// API parameter values that are decorated as "sensitive" in the API will not
8743// be included in the string output. The member name will be present, but the
8744// value will be replaced with "sensitive".
8745func (s RevokeFlowEntitlementOutput) String() string {
8746	return awsutil.Prettify(s)
8747}
8748
8749// GoString returns the string representation.
8750//
8751// API parameter values that are decorated as "sensitive" in the API will not
8752// be included in the string output. The member name will be present, but the
8753// value will be replaced with "sensitive".
8754func (s RevokeFlowEntitlementOutput) GoString() string {
8755	return s.String()
8756}
8757
8758// SetEntitlementArn sets the EntitlementArn field's value.
8759func (s *RevokeFlowEntitlementOutput) SetEntitlementArn(v string) *RevokeFlowEntitlementOutput {
8760	s.EntitlementArn = &v
8761	return s
8762}
8763
8764// SetFlowArn sets the FlowArn field's value.
8765func (s *RevokeFlowEntitlementOutput) SetFlowArn(v string) *RevokeFlowEntitlementOutput {
8766	s.FlowArn = &v
8767	return s
8768}
8769
8770// Exception raised by AWS Elemental MediaConnect. See the error message and
8771// documentation for the operation for more information on the cause of this
8772// exception.
8773type ServiceUnavailableException struct {
8774	_            struct{}                  `type:"structure"`
8775	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8776
8777	Message_ *string `locationName:"message" type:"string"`
8778}
8779
8780// String returns the string representation.
8781//
8782// API parameter values that are decorated as "sensitive" in the API will not
8783// be included in the string output. The member name will be present, but the
8784// value will be replaced with "sensitive".
8785func (s ServiceUnavailableException) String() string {
8786	return awsutil.Prettify(s)
8787}
8788
8789// GoString returns the string representation.
8790//
8791// API parameter values that are decorated as "sensitive" in the API will not
8792// be included in the string output. The member name will be present, but the
8793// value will be replaced with "sensitive".
8794func (s ServiceUnavailableException) GoString() string {
8795	return s.String()
8796}
8797
8798func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
8799	return &ServiceUnavailableException{
8800		RespMetadata: v,
8801	}
8802}
8803
8804// Code returns the exception type name.
8805func (s *ServiceUnavailableException) Code() string {
8806	return "ServiceUnavailableException"
8807}
8808
8809// Message returns the exception's message.
8810func (s *ServiceUnavailableException) Message() string {
8811	if s.Message_ != nil {
8812		return *s.Message_
8813	}
8814	return ""
8815}
8816
8817// OrigErr always returns nil, satisfies awserr.Error interface.
8818func (s *ServiceUnavailableException) OrigErr() error {
8819	return nil
8820}
8821
8822func (s *ServiceUnavailableException) Error() string {
8823	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8824}
8825
8826// Status code returns the HTTP status code for the request's response error.
8827func (s *ServiceUnavailableException) StatusCode() int {
8828	return s.RespMetadata.StatusCode
8829}
8830
8831// RequestID returns the service's response RequestID for request.
8832func (s *ServiceUnavailableException) RequestID() string {
8833	return s.RespMetadata.RequestID
8834}
8835
8836// The settings for the source of the flow.
8837type SetSourceRequest struct {
8838	_ struct{} `type:"structure"`
8839
8840	// The type of encryption that is used on the content ingested from this source.
8841	Decryption *Encryption `locationName:"decryption" type:"structure"`
8842
8843	// A description for the source. This value is not used or seen outside of the
8844	// current AWS Elemental MediaConnect account.
8845	Description *string `locationName:"description" type:"string"`
8846
8847	// The ARN of the entitlement that allows you to subscribe to this flow. The
8848	// entitlement is set by the flow originator, and the ARN is generated as part
8849	// of the originator's flow.
8850	EntitlementArn *string `locationName:"entitlementArn" type:"string"`
8851
8852	// The port that the flow will be listening on for incoming content.
8853	IngestPort *int64 `locationName:"ingestPort" type:"integer"`
8854
8855	// The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.
8856	MaxBitrate *int64 `locationName:"maxBitrate" type:"integer"`
8857
8858	// The maximum latency in milliseconds. This parameter applies only to RIST-based
8859	// and Zixi-based streams.
8860	MaxLatency *int64 `locationName:"maxLatency" type:"integer"`
8861
8862	// The size of the buffer (in milliseconds) to use to sync incoming source data.
8863	MaxSyncBuffer *int64 `locationName:"maxSyncBuffer" type:"integer"`
8864
8865	// The media streams that are associated with the source, and the parameters
8866	// for those associations.
8867	MediaStreamSourceConfigurations []*MediaStreamSourceConfigurationRequest `locationName:"mediaStreamSourceConfigurations" type:"list"`
8868
8869	// The minimum latency in milliseconds for SRT-based streams. In streams that
8870	// use the SRT protocol, this value that you set on your MediaConnect source
8871	// or output represents the minimal potential latency of that connection. The
8872	// latency of the stream is set to the highest number between the sender’s
8873	// minimum latency and the receiver’s minimum latency.
8874	MinLatency *int64 `locationName:"minLatency" type:"integer"`
8875
8876	// The name of the source.
8877	Name *string `locationName:"name" type:"string"`
8878
8879	// The protocol that is used by the source.
8880	Protocol *string `locationName:"protocol" type:"string" enum:"Protocol"`
8881
8882	// The stream ID that you want to use for this transport. This parameter applies
8883	// only to Zixi-based streams.
8884	StreamId *string `locationName:"streamId" type:"string"`
8885
8886	// The name of the VPC interface to use for this source.
8887	VpcInterfaceName *string `locationName:"vpcInterfaceName" type:"string"`
8888
8889	// The range of IP addresses that should be allowed to contribute content to
8890	// your source. These IP addresses should be in the form of a Classless Inter-Domain
8891	// Routing (CIDR) block; for example, 10.0.0.0/16.
8892	WhitelistCidr *string `locationName:"whitelistCidr" type:"string"`
8893}
8894
8895// String returns the string representation.
8896//
8897// API parameter values that are decorated as "sensitive" in the API will not
8898// be included in the string output. The member name will be present, but the
8899// value will be replaced with "sensitive".
8900func (s SetSourceRequest) String() string {
8901	return awsutil.Prettify(s)
8902}
8903
8904// GoString returns the string representation.
8905//
8906// API parameter values that are decorated as "sensitive" in the API will not
8907// be included in the string output. The member name will be present, but the
8908// value will be replaced with "sensitive".
8909func (s SetSourceRequest) GoString() string {
8910	return s.String()
8911}
8912
8913// Validate inspects the fields of the type to determine if they are valid.
8914func (s *SetSourceRequest) Validate() error {
8915	invalidParams := request.ErrInvalidParams{Context: "SetSourceRequest"}
8916	if s.Decryption != nil {
8917		if err := s.Decryption.Validate(); err != nil {
8918			invalidParams.AddNested("Decryption", err.(request.ErrInvalidParams))
8919		}
8920	}
8921	if s.MediaStreamSourceConfigurations != nil {
8922		for i, v := range s.MediaStreamSourceConfigurations {
8923			if v == nil {
8924				continue
8925			}
8926			if err := v.Validate(); err != nil {
8927				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MediaStreamSourceConfigurations", i), err.(request.ErrInvalidParams))
8928			}
8929		}
8930	}
8931
8932	if invalidParams.Len() > 0 {
8933		return invalidParams
8934	}
8935	return nil
8936}
8937
8938// SetDecryption sets the Decryption field's value.
8939func (s *SetSourceRequest) SetDecryption(v *Encryption) *SetSourceRequest {
8940	s.Decryption = v
8941	return s
8942}
8943
8944// SetDescription sets the Description field's value.
8945func (s *SetSourceRequest) SetDescription(v string) *SetSourceRequest {
8946	s.Description = &v
8947	return s
8948}
8949
8950// SetEntitlementArn sets the EntitlementArn field's value.
8951func (s *SetSourceRequest) SetEntitlementArn(v string) *SetSourceRequest {
8952	s.EntitlementArn = &v
8953	return s
8954}
8955
8956// SetIngestPort sets the IngestPort field's value.
8957func (s *SetSourceRequest) SetIngestPort(v int64) *SetSourceRequest {
8958	s.IngestPort = &v
8959	return s
8960}
8961
8962// SetMaxBitrate sets the MaxBitrate field's value.
8963func (s *SetSourceRequest) SetMaxBitrate(v int64) *SetSourceRequest {
8964	s.MaxBitrate = &v
8965	return s
8966}
8967
8968// SetMaxLatency sets the MaxLatency field's value.
8969func (s *SetSourceRequest) SetMaxLatency(v int64) *SetSourceRequest {
8970	s.MaxLatency = &v
8971	return s
8972}
8973
8974// SetMaxSyncBuffer sets the MaxSyncBuffer field's value.
8975func (s *SetSourceRequest) SetMaxSyncBuffer(v int64) *SetSourceRequest {
8976	s.MaxSyncBuffer = &v
8977	return s
8978}
8979
8980// SetMediaStreamSourceConfigurations sets the MediaStreamSourceConfigurations field's value.
8981func (s *SetSourceRequest) SetMediaStreamSourceConfigurations(v []*MediaStreamSourceConfigurationRequest) *SetSourceRequest {
8982	s.MediaStreamSourceConfigurations = v
8983	return s
8984}
8985
8986// SetMinLatency sets the MinLatency field's value.
8987func (s *SetSourceRequest) SetMinLatency(v int64) *SetSourceRequest {
8988	s.MinLatency = &v
8989	return s
8990}
8991
8992// SetName sets the Name field's value.
8993func (s *SetSourceRequest) SetName(v string) *SetSourceRequest {
8994	s.Name = &v
8995	return s
8996}
8997
8998// SetProtocol sets the Protocol field's value.
8999func (s *SetSourceRequest) SetProtocol(v string) *SetSourceRequest {
9000	s.Protocol = &v
9001	return s
9002}
9003
9004// SetStreamId sets the StreamId field's value.
9005func (s *SetSourceRequest) SetStreamId(v string) *SetSourceRequest {
9006	s.StreamId = &v
9007	return s
9008}
9009
9010// SetVpcInterfaceName sets the VpcInterfaceName field's value.
9011func (s *SetSourceRequest) SetVpcInterfaceName(v string) *SetSourceRequest {
9012	s.VpcInterfaceName = &v
9013	return s
9014}
9015
9016// SetWhitelistCidr sets the WhitelistCidr field's value.
9017func (s *SetSourceRequest) SetWhitelistCidr(v string) *SetSourceRequest {
9018	s.WhitelistCidr = &v
9019	return s
9020}
9021
9022// The settings for the source of the flow.
9023type Source struct {
9024	_ struct{} `type:"structure"`
9025
9026	// Percentage from 0-100 of the data transfer cost to be billed to the subscriber.
9027	DataTransferSubscriberFeePercent *int64 `locationName:"dataTransferSubscriberFeePercent" type:"integer"`
9028
9029	// The type of encryption that is used on the content ingested from this source.
9030	Decryption *Encryption `locationName:"decryption" type:"structure"`
9031
9032	// A description for the source. This value is not used or seen outside of the
9033	// current AWS Elemental MediaConnect account.
9034	Description *string `locationName:"description" type:"string"`
9035
9036	// The ARN of the entitlement that allows you to subscribe to content that comes
9037	// from another AWS account. The entitlement is set by the content originator
9038	// and the ARN is generated as part of the originator's flow.
9039	EntitlementArn *string `locationName:"entitlementArn" type:"string"`
9040
9041	// The IP address that the flow will be listening on for incoming content.
9042	IngestIp *string `locationName:"ingestIp" type:"string"`
9043
9044	// The port that the flow will be listening on for incoming content.
9045	IngestPort *int64 `locationName:"ingestPort" type:"integer"`
9046
9047	// The media streams that are associated with the source, and the parameters
9048	// for those associations.
9049	MediaStreamSourceConfigurations []*MediaStreamSourceConfiguration `locationName:"mediaStreamSourceConfigurations" type:"list"`
9050
9051	// The name of the source.
9052	//
9053	// Name is a required field
9054	Name *string `locationName:"name" type:"string" required:"true"`
9055
9056	// The ARN of the source.
9057	//
9058	// SourceArn is a required field
9059	SourceArn *string `locationName:"sourceArn" type:"string" required:"true"`
9060
9061	// Attributes related to the transport stream that are used in the source.
9062	Transport *Transport `locationName:"transport" type:"structure"`
9063
9064	// The name of the VPC interface that is used for this source.
9065	VpcInterfaceName *string `locationName:"vpcInterfaceName" type:"string"`
9066
9067	// The range of IP addresses that should be allowed to contribute content to
9068	// your source. These IP addresses should be in the form of a Classless Inter-Domain
9069	// Routing (CIDR) block; for example, 10.0.0.0/16.
9070	WhitelistCidr *string `locationName:"whitelistCidr" type:"string"`
9071}
9072
9073// String returns the string representation.
9074//
9075// API parameter values that are decorated as "sensitive" in the API will not
9076// be included in the string output. The member name will be present, but the
9077// value will be replaced with "sensitive".
9078func (s Source) String() string {
9079	return awsutil.Prettify(s)
9080}
9081
9082// GoString returns the string representation.
9083//
9084// API parameter values that are decorated as "sensitive" in the API will not
9085// be included in the string output. The member name will be present, but the
9086// value will be replaced with "sensitive".
9087func (s Source) GoString() string {
9088	return s.String()
9089}
9090
9091// SetDataTransferSubscriberFeePercent sets the DataTransferSubscriberFeePercent field's value.
9092func (s *Source) SetDataTransferSubscriberFeePercent(v int64) *Source {
9093	s.DataTransferSubscriberFeePercent = &v
9094	return s
9095}
9096
9097// SetDecryption sets the Decryption field's value.
9098func (s *Source) SetDecryption(v *Encryption) *Source {
9099	s.Decryption = v
9100	return s
9101}
9102
9103// SetDescription sets the Description field's value.
9104func (s *Source) SetDescription(v string) *Source {
9105	s.Description = &v
9106	return s
9107}
9108
9109// SetEntitlementArn sets the EntitlementArn field's value.
9110func (s *Source) SetEntitlementArn(v string) *Source {
9111	s.EntitlementArn = &v
9112	return s
9113}
9114
9115// SetIngestIp sets the IngestIp field's value.
9116func (s *Source) SetIngestIp(v string) *Source {
9117	s.IngestIp = &v
9118	return s
9119}
9120
9121// SetIngestPort sets the IngestPort field's value.
9122func (s *Source) SetIngestPort(v int64) *Source {
9123	s.IngestPort = &v
9124	return s
9125}
9126
9127// SetMediaStreamSourceConfigurations sets the MediaStreamSourceConfigurations field's value.
9128func (s *Source) SetMediaStreamSourceConfigurations(v []*MediaStreamSourceConfiguration) *Source {
9129	s.MediaStreamSourceConfigurations = v
9130	return s
9131}
9132
9133// SetName sets the Name field's value.
9134func (s *Source) SetName(v string) *Source {
9135	s.Name = &v
9136	return s
9137}
9138
9139// SetSourceArn sets the SourceArn field's value.
9140func (s *Source) SetSourceArn(v string) *Source {
9141	s.SourceArn = &v
9142	return s
9143}
9144
9145// SetTransport sets the Transport field's value.
9146func (s *Source) SetTransport(v *Transport) *Source {
9147	s.Transport = v
9148	return s
9149}
9150
9151// SetVpcInterfaceName sets the VpcInterfaceName field's value.
9152func (s *Source) SetVpcInterfaceName(v string) *Source {
9153	s.VpcInterfaceName = &v
9154	return s
9155}
9156
9157// SetWhitelistCidr sets the WhitelistCidr field's value.
9158func (s *Source) SetWhitelistCidr(v string) *Source {
9159	s.WhitelistCidr = &v
9160	return s
9161}
9162
9163// The priority you want to assign to a source. You can have a primary stream
9164// and a backup stream or two equally prioritized streams.
9165type SourcePriority struct {
9166	_ struct{} `type:"structure"`
9167
9168	// The name of the source you choose as the primary source for this flow.
9169	PrimarySource *string `locationName:"primarySource" type:"string"`
9170}
9171
9172// String returns the string representation.
9173//
9174// API parameter values that are decorated as "sensitive" in the API will not
9175// be included in the string output. The member name will be present, but the
9176// value will be replaced with "sensitive".
9177func (s SourcePriority) String() string {
9178	return awsutil.Prettify(s)
9179}
9180
9181// GoString returns the string representation.
9182//
9183// API parameter values that are decorated as "sensitive" in the API will not
9184// be included in the string output. The member name will be present, but the
9185// value will be replaced with "sensitive".
9186func (s SourcePriority) GoString() string {
9187	return s.String()
9188}
9189
9190// SetPrimarySource sets the PrimarySource field's value.
9191func (s *SourcePriority) SetPrimarySource(v string) *SourcePriority {
9192	s.PrimarySource = &v
9193	return s
9194}
9195
9196type StartFlowInput struct {
9197	_ struct{} `type:"structure" nopayload:"true"`
9198
9199	// FlowArn is a required field
9200	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
9201}
9202
9203// String returns the string representation.
9204//
9205// API parameter values that are decorated as "sensitive" in the API will not
9206// be included in the string output. The member name will be present, but the
9207// value will be replaced with "sensitive".
9208func (s StartFlowInput) String() string {
9209	return awsutil.Prettify(s)
9210}
9211
9212// GoString returns the string representation.
9213//
9214// API parameter values that are decorated as "sensitive" in the API will not
9215// be included in the string output. The member name will be present, but the
9216// value will be replaced with "sensitive".
9217func (s StartFlowInput) GoString() string {
9218	return s.String()
9219}
9220
9221// Validate inspects the fields of the type to determine if they are valid.
9222func (s *StartFlowInput) Validate() error {
9223	invalidParams := request.ErrInvalidParams{Context: "StartFlowInput"}
9224	if s.FlowArn == nil {
9225		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
9226	}
9227	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
9228		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
9229	}
9230
9231	if invalidParams.Len() > 0 {
9232		return invalidParams
9233	}
9234	return nil
9235}
9236
9237// SetFlowArn sets the FlowArn field's value.
9238func (s *StartFlowInput) SetFlowArn(v string) *StartFlowInput {
9239	s.FlowArn = &v
9240	return s
9241}
9242
9243// The result of a successful StartFlow request.
9244type StartFlowOutput struct {
9245	_ struct{} `type:"structure"`
9246
9247	// The ARN of the flow that you started.
9248	FlowArn *string `locationName:"flowArn" type:"string"`
9249
9250	// The status of the flow when the StartFlow process begins.
9251	Status *string `locationName:"status" type:"string" enum:"Status"`
9252}
9253
9254// String returns the string representation.
9255//
9256// API parameter values that are decorated as "sensitive" in the API will not
9257// be included in the string output. The member name will be present, but the
9258// value will be replaced with "sensitive".
9259func (s StartFlowOutput) String() string {
9260	return awsutil.Prettify(s)
9261}
9262
9263// GoString returns the string representation.
9264//
9265// API parameter values that are decorated as "sensitive" in the API will not
9266// be included in the string output. The member name will be present, but the
9267// value will be replaced with "sensitive".
9268func (s StartFlowOutput) GoString() string {
9269	return s.String()
9270}
9271
9272// SetFlowArn sets the FlowArn field's value.
9273func (s *StartFlowOutput) SetFlowArn(v string) *StartFlowOutput {
9274	s.FlowArn = &v
9275	return s
9276}
9277
9278// SetStatus sets the Status field's value.
9279func (s *StartFlowOutput) SetStatus(v string) *StartFlowOutput {
9280	s.Status = &v
9281	return s
9282}
9283
9284type StopFlowInput struct {
9285	_ struct{} `type:"structure" nopayload:"true"`
9286
9287	// FlowArn is a required field
9288	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
9289}
9290
9291// String returns the string representation.
9292//
9293// API parameter values that are decorated as "sensitive" in the API will not
9294// be included in the string output. The member name will be present, but the
9295// value will be replaced with "sensitive".
9296func (s StopFlowInput) String() string {
9297	return awsutil.Prettify(s)
9298}
9299
9300// GoString returns the string representation.
9301//
9302// API parameter values that are decorated as "sensitive" in the API will not
9303// be included in the string output. The member name will be present, but the
9304// value will be replaced with "sensitive".
9305func (s StopFlowInput) GoString() string {
9306	return s.String()
9307}
9308
9309// Validate inspects the fields of the type to determine if they are valid.
9310func (s *StopFlowInput) Validate() error {
9311	invalidParams := request.ErrInvalidParams{Context: "StopFlowInput"}
9312	if s.FlowArn == nil {
9313		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
9314	}
9315	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
9316		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
9317	}
9318
9319	if invalidParams.Len() > 0 {
9320		return invalidParams
9321	}
9322	return nil
9323}
9324
9325// SetFlowArn sets the FlowArn field's value.
9326func (s *StopFlowInput) SetFlowArn(v string) *StopFlowInput {
9327	s.FlowArn = &v
9328	return s
9329}
9330
9331// The result of a successful StopFlow request.
9332type StopFlowOutput struct {
9333	_ struct{} `type:"structure"`
9334
9335	// The ARN of the flow that you stopped.
9336	FlowArn *string `locationName:"flowArn" type:"string"`
9337
9338	// The status of the flow when the StopFlow process begins.
9339	Status *string `locationName:"status" type:"string" enum:"Status"`
9340}
9341
9342// String returns the string representation.
9343//
9344// API parameter values that are decorated as "sensitive" in the API will not
9345// be included in the string output. The member name will be present, but the
9346// value will be replaced with "sensitive".
9347func (s StopFlowOutput) String() string {
9348	return awsutil.Prettify(s)
9349}
9350
9351// GoString returns the string representation.
9352//
9353// API parameter values that are decorated as "sensitive" in the API will not
9354// be included in the string output. The member name will be present, but the
9355// value will be replaced with "sensitive".
9356func (s StopFlowOutput) GoString() string {
9357	return s.String()
9358}
9359
9360// SetFlowArn sets the FlowArn field's value.
9361func (s *StopFlowOutput) SetFlowArn(v string) *StopFlowOutput {
9362	s.FlowArn = &v
9363	return s
9364}
9365
9366// SetStatus sets the Status field's value.
9367func (s *StopFlowOutput) SetStatus(v string) *StopFlowOutput {
9368	s.Status = &v
9369	return s
9370}
9371
9372// The tags to add to the resource. Tag keys can have a maximum character length
9373// of 128 characters, and tag values can have a maximum length of 256 characters.
9374type TagResourceInput struct {
9375	_ struct{} `type:"structure"`
9376
9377	// ResourceArn is a required field
9378	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
9379
9380	// A map from tag keys to values. Tag keys can have a maximum character length
9381	// of 128 characters, and tag values can have a maximum length of 256 characters.
9382	//
9383	// Tags is a required field
9384	Tags map[string]*string `locationName:"tags" type:"map" required:"true"`
9385}
9386
9387// String returns the string representation.
9388//
9389// API parameter values that are decorated as "sensitive" in the API will not
9390// be included in the string output. The member name will be present, but the
9391// value will be replaced with "sensitive".
9392func (s TagResourceInput) String() string {
9393	return awsutil.Prettify(s)
9394}
9395
9396// GoString returns the string representation.
9397//
9398// API parameter values that are decorated as "sensitive" in the API will not
9399// be included in the string output. The member name will be present, but the
9400// value will be replaced with "sensitive".
9401func (s TagResourceInput) GoString() string {
9402	return s.String()
9403}
9404
9405// Validate inspects the fields of the type to determine if they are valid.
9406func (s *TagResourceInput) Validate() error {
9407	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
9408	if s.ResourceArn == nil {
9409		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
9410	}
9411	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
9412		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
9413	}
9414	if s.Tags == nil {
9415		invalidParams.Add(request.NewErrParamRequired("Tags"))
9416	}
9417
9418	if invalidParams.Len() > 0 {
9419		return invalidParams
9420	}
9421	return nil
9422}
9423
9424// SetResourceArn sets the ResourceArn field's value.
9425func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
9426	s.ResourceArn = &v
9427	return s
9428}
9429
9430// SetTags sets the Tags field's value.
9431func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
9432	s.Tags = v
9433	return s
9434}
9435
9436type TagResourceOutput struct {
9437	_ struct{} `type:"structure"`
9438}
9439
9440// String returns the string representation.
9441//
9442// API parameter values that are decorated as "sensitive" in the API will not
9443// be included in the string output. The member name will be present, but the
9444// value will be replaced with "sensitive".
9445func (s TagResourceOutput) String() string {
9446	return awsutil.Prettify(s)
9447}
9448
9449// GoString returns the string representation.
9450//
9451// API parameter values that are decorated as "sensitive" in the API will not
9452// be included in the string output. The member name will be present, but the
9453// value will be replaced with "sensitive".
9454func (s TagResourceOutput) GoString() string {
9455	return s.String()
9456}
9457
9458// Exception raised by AWS Elemental MediaConnect. See the error message and
9459// documentation for the operation for more information on the cause of this
9460// exception.
9461type TooManyRequestsException struct {
9462	_            struct{}                  `type:"structure"`
9463	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9464
9465	Message_ *string `locationName:"message" type:"string"`
9466}
9467
9468// String returns the string representation.
9469//
9470// API parameter values that are decorated as "sensitive" in the API will not
9471// be included in the string output. The member name will be present, but the
9472// value will be replaced with "sensitive".
9473func (s TooManyRequestsException) String() string {
9474	return awsutil.Prettify(s)
9475}
9476
9477// GoString returns the string representation.
9478//
9479// API parameter values that are decorated as "sensitive" in the API will not
9480// be included in the string output. The member name will be present, but the
9481// value will be replaced with "sensitive".
9482func (s TooManyRequestsException) GoString() string {
9483	return s.String()
9484}
9485
9486func newErrorTooManyRequestsException(v protocol.ResponseMetadata) error {
9487	return &TooManyRequestsException{
9488		RespMetadata: v,
9489	}
9490}
9491
9492// Code returns the exception type name.
9493func (s *TooManyRequestsException) Code() string {
9494	return "TooManyRequestsException"
9495}
9496
9497// Message returns the exception's message.
9498func (s *TooManyRequestsException) Message() string {
9499	if s.Message_ != nil {
9500		return *s.Message_
9501	}
9502	return ""
9503}
9504
9505// OrigErr always returns nil, satisfies awserr.Error interface.
9506func (s *TooManyRequestsException) OrigErr() error {
9507	return nil
9508}
9509
9510func (s *TooManyRequestsException) Error() string {
9511	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9512}
9513
9514// Status code returns the HTTP status code for the request's response error.
9515func (s *TooManyRequestsException) StatusCode() int {
9516	return s.RespMetadata.StatusCode
9517}
9518
9519// RequestID returns the service's response RequestID for request.
9520func (s *TooManyRequestsException) RequestID() string {
9521	return s.RespMetadata.RequestID
9522}
9523
9524// Attributes related to the transport stream that are used in a source or output.
9525type Transport struct {
9526	_ struct{} `type:"structure"`
9527
9528	// The range of IP addresses that should be allowed to initiate output requests
9529	// to this flow. These IP addresses should be in the form of a Classless Inter-Domain
9530	// Routing (CIDR) block; for example, 10.0.0.0/16.
9531	CidrAllowList []*string `locationName:"cidrAllowList" type:"list"`
9532
9533	// The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.
9534	MaxBitrate *int64 `locationName:"maxBitrate" type:"integer"`
9535
9536	// The maximum latency in milliseconds. This parameter applies only to RIST-based
9537	// and Zixi-based streams.
9538	MaxLatency *int64 `locationName:"maxLatency" type:"integer"`
9539
9540	// The size of the buffer (in milliseconds) to use to sync incoming source data.
9541	MaxSyncBuffer *int64 `locationName:"maxSyncBuffer" type:"integer"`
9542
9543	// The minimum latency in milliseconds for SRT-based streams. In streams that
9544	// use the SRT protocol, this value that you set on your MediaConnect source
9545	// or output represents the minimal potential latency of that connection. The
9546	// latency of the stream is set to the highest number between the sender’s
9547	// minimum latency and the receiver’s minimum latency.
9548	MinLatency *int64 `locationName:"minLatency" type:"integer"`
9549
9550	// The protocol that is used by the source or output.
9551	//
9552	// Protocol is a required field
9553	Protocol *string `locationName:"protocol" type:"string" required:"true" enum:"Protocol"`
9554
9555	// The remote ID for the Zixi-pull stream.
9556	RemoteId *string `locationName:"remoteId" type:"string"`
9557
9558	// The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams.
9559	SmoothingLatency *int64 `locationName:"smoothingLatency" type:"integer"`
9560
9561	// The stream ID that you want to use for this transport. This parameter applies
9562	// only to Zixi-based streams.
9563	StreamId *string `locationName:"streamId" type:"string"`
9564}
9565
9566// String returns the string representation.
9567//
9568// API parameter values that are decorated as "sensitive" in the API will not
9569// be included in the string output. The member name will be present, but the
9570// value will be replaced with "sensitive".
9571func (s Transport) String() string {
9572	return awsutil.Prettify(s)
9573}
9574
9575// GoString returns the string representation.
9576//
9577// API parameter values that are decorated as "sensitive" in the API will not
9578// be included in the string output. The member name will be present, but the
9579// value will be replaced with "sensitive".
9580func (s Transport) GoString() string {
9581	return s.String()
9582}
9583
9584// SetCidrAllowList sets the CidrAllowList field's value.
9585func (s *Transport) SetCidrAllowList(v []*string) *Transport {
9586	s.CidrAllowList = v
9587	return s
9588}
9589
9590// SetMaxBitrate sets the MaxBitrate field's value.
9591func (s *Transport) SetMaxBitrate(v int64) *Transport {
9592	s.MaxBitrate = &v
9593	return s
9594}
9595
9596// SetMaxLatency sets the MaxLatency field's value.
9597func (s *Transport) SetMaxLatency(v int64) *Transport {
9598	s.MaxLatency = &v
9599	return s
9600}
9601
9602// SetMaxSyncBuffer sets the MaxSyncBuffer field's value.
9603func (s *Transport) SetMaxSyncBuffer(v int64) *Transport {
9604	s.MaxSyncBuffer = &v
9605	return s
9606}
9607
9608// SetMinLatency sets the MinLatency field's value.
9609func (s *Transport) SetMinLatency(v int64) *Transport {
9610	s.MinLatency = &v
9611	return s
9612}
9613
9614// SetProtocol sets the Protocol field's value.
9615func (s *Transport) SetProtocol(v string) *Transport {
9616	s.Protocol = &v
9617	return s
9618}
9619
9620// SetRemoteId sets the RemoteId field's value.
9621func (s *Transport) SetRemoteId(v string) *Transport {
9622	s.RemoteId = &v
9623	return s
9624}
9625
9626// SetSmoothingLatency sets the SmoothingLatency field's value.
9627func (s *Transport) SetSmoothingLatency(v int64) *Transport {
9628	s.SmoothingLatency = &v
9629	return s
9630}
9631
9632// SetStreamId sets the StreamId field's value.
9633func (s *Transport) SetStreamId(v string) *Transport {
9634	s.StreamId = &v
9635	return s
9636}
9637
9638type UntagResourceInput struct {
9639	_ struct{} `type:"structure" nopayload:"true"`
9640
9641	// ResourceArn is a required field
9642	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
9643
9644	// TagKeys is a required field
9645	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
9646}
9647
9648// String returns the string representation.
9649//
9650// API parameter values that are decorated as "sensitive" in the API will not
9651// be included in the string output. The member name will be present, but the
9652// value will be replaced with "sensitive".
9653func (s UntagResourceInput) String() string {
9654	return awsutil.Prettify(s)
9655}
9656
9657// GoString returns the string representation.
9658//
9659// API parameter values that are decorated as "sensitive" in the API will not
9660// be included in the string output. The member name will be present, but the
9661// value will be replaced with "sensitive".
9662func (s UntagResourceInput) GoString() string {
9663	return s.String()
9664}
9665
9666// Validate inspects the fields of the type to determine if they are valid.
9667func (s *UntagResourceInput) Validate() error {
9668	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
9669	if s.ResourceArn == nil {
9670		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
9671	}
9672	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
9673		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
9674	}
9675	if s.TagKeys == nil {
9676		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
9677	}
9678
9679	if invalidParams.Len() > 0 {
9680		return invalidParams
9681	}
9682	return nil
9683}
9684
9685// SetResourceArn sets the ResourceArn field's value.
9686func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
9687	s.ResourceArn = &v
9688	return s
9689}
9690
9691// SetTagKeys sets the TagKeys field's value.
9692func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
9693	s.TagKeys = v
9694	return s
9695}
9696
9697type UntagResourceOutput struct {
9698	_ struct{} `type:"structure"`
9699}
9700
9701// String returns the string representation.
9702//
9703// API parameter values that are decorated as "sensitive" in the API will not
9704// be included in the string output. The member name will be present, but the
9705// value will be replaced with "sensitive".
9706func (s UntagResourceOutput) String() string {
9707	return awsutil.Prettify(s)
9708}
9709
9710// GoString returns the string representation.
9711//
9712// API parameter values that are decorated as "sensitive" in the API will not
9713// be included in the string output. The member name will be present, but the
9714// value will be replaced with "sensitive".
9715func (s UntagResourceOutput) GoString() string {
9716	return s.String()
9717}
9718
9719// Information about the encryption of the flow.
9720type UpdateEncryption struct {
9721	_ struct{} `type:"structure"`
9722
9723	// The type of algorithm that is used for the encryption (such as aes128, aes192,
9724	// or aes256).
9725	Algorithm *string `locationName:"algorithm" type:"string" enum:"Algorithm"`
9726
9727	// A 128-bit, 16-byte hex value represented by a 32-character string, to be
9728	// used with the key for encrypting content. This parameter is not valid for
9729	// static key encryption.
9730	ConstantInitializationVector *string `locationName:"constantInitializationVector" type:"string"`
9731
9732	// The value of one of the devices that you configured with your digital rights
9733	// management (DRM) platform key provider. This parameter is required for SPEKE
9734	// encryption and is not valid for static key encryption.
9735	DeviceId *string `locationName:"deviceId" type:"string"`
9736
9737	// The type of key that is used for the encryption. If no keyType is provided,
9738	// the service will use the default setting (static-key).
9739	KeyType *string `locationName:"keyType" type:"string" enum:"KeyType"`
9740
9741	// The AWS Region that the API Gateway proxy endpoint was created in. This parameter
9742	// is required for SPEKE encryption and is not valid for static key encryption.
9743	Region *string `locationName:"region" type:"string"`
9744
9745	// An identifier for the content. The service sends this value to the key server
9746	// to identify the current endpoint. The resource ID is also known as the content
9747	// ID. This parameter is required for SPEKE encryption and is not valid for
9748	// static key encryption.
9749	ResourceId *string `locationName:"resourceId" type:"string"`
9750
9751	// The ARN of the role that you created during setup (when you set up AWS Elemental
9752	// MediaConnect as a trusted entity).
9753	RoleArn *string `locationName:"roleArn" type:"string"`
9754
9755	// The ARN of the secret that you created in AWS Secrets Manager to store the
9756	// encryption key. This parameter is required for static key encryption and
9757	// is not valid for SPEKE encryption.
9758	SecretArn *string `locationName:"secretArn" type:"string"`
9759
9760	// The URL from the API Gateway proxy that you set up to talk to your key server.
9761	// This parameter is required for SPEKE encryption and is not valid for static
9762	// key encryption.
9763	Url *string `locationName:"url" type:"string"`
9764}
9765
9766// String returns the string representation.
9767//
9768// API parameter values that are decorated as "sensitive" in the API will not
9769// be included in the string output. The member name will be present, but the
9770// value will be replaced with "sensitive".
9771func (s UpdateEncryption) String() string {
9772	return awsutil.Prettify(s)
9773}
9774
9775// GoString returns the string representation.
9776//
9777// API parameter values that are decorated as "sensitive" in the API will not
9778// be included in the string output. The member name will be present, but the
9779// value will be replaced with "sensitive".
9780func (s UpdateEncryption) GoString() string {
9781	return s.String()
9782}
9783
9784// SetAlgorithm sets the Algorithm field's value.
9785func (s *UpdateEncryption) SetAlgorithm(v string) *UpdateEncryption {
9786	s.Algorithm = &v
9787	return s
9788}
9789
9790// SetConstantInitializationVector sets the ConstantInitializationVector field's value.
9791func (s *UpdateEncryption) SetConstantInitializationVector(v string) *UpdateEncryption {
9792	s.ConstantInitializationVector = &v
9793	return s
9794}
9795
9796// SetDeviceId sets the DeviceId field's value.
9797func (s *UpdateEncryption) SetDeviceId(v string) *UpdateEncryption {
9798	s.DeviceId = &v
9799	return s
9800}
9801
9802// SetKeyType sets the KeyType field's value.
9803func (s *UpdateEncryption) SetKeyType(v string) *UpdateEncryption {
9804	s.KeyType = &v
9805	return s
9806}
9807
9808// SetRegion sets the Region field's value.
9809func (s *UpdateEncryption) SetRegion(v string) *UpdateEncryption {
9810	s.Region = &v
9811	return s
9812}
9813
9814// SetResourceId sets the ResourceId field's value.
9815func (s *UpdateEncryption) SetResourceId(v string) *UpdateEncryption {
9816	s.ResourceId = &v
9817	return s
9818}
9819
9820// SetRoleArn sets the RoleArn field's value.
9821func (s *UpdateEncryption) SetRoleArn(v string) *UpdateEncryption {
9822	s.RoleArn = &v
9823	return s
9824}
9825
9826// SetSecretArn sets the SecretArn field's value.
9827func (s *UpdateEncryption) SetSecretArn(v string) *UpdateEncryption {
9828	s.SecretArn = &v
9829	return s
9830}
9831
9832// SetUrl sets the Url field's value.
9833func (s *UpdateEncryption) SetUrl(v string) *UpdateEncryption {
9834	s.Url = &v
9835	return s
9836}
9837
9838// The settings for source failover
9839type UpdateFailoverConfig struct {
9840	_ struct{} `type:"structure"`
9841
9842	// The type of failover you choose for this flow. MERGE combines the source
9843	// streams into a single stream, allowing graceful recovery from any single-source
9844	// loss. FAILOVER allows switching between different streams.
9845	FailoverMode *string `locationName:"failoverMode" type:"string" enum:"FailoverMode"`
9846
9847	// Recovery window time to look for dash-7 packets
9848	RecoveryWindow *int64 `locationName:"recoveryWindow" type:"integer"`
9849
9850	// The priority you want to assign to a source. You can have a primary stream
9851	// and a backup stream or two equally prioritized streams.
9852	SourcePriority *SourcePriority `locationName:"sourcePriority" type:"structure"`
9853
9854	State *string `locationName:"state" type:"string" enum:"State"`
9855}
9856
9857// String returns the string representation.
9858//
9859// API parameter values that are decorated as "sensitive" in the API will not
9860// be included in the string output. The member name will be present, but the
9861// value will be replaced with "sensitive".
9862func (s UpdateFailoverConfig) String() string {
9863	return awsutil.Prettify(s)
9864}
9865
9866// GoString returns the string representation.
9867//
9868// API parameter values that are decorated as "sensitive" in the API will not
9869// be included in the string output. The member name will be present, but the
9870// value will be replaced with "sensitive".
9871func (s UpdateFailoverConfig) GoString() string {
9872	return s.String()
9873}
9874
9875// SetFailoverMode sets the FailoverMode field's value.
9876func (s *UpdateFailoverConfig) SetFailoverMode(v string) *UpdateFailoverConfig {
9877	s.FailoverMode = &v
9878	return s
9879}
9880
9881// SetRecoveryWindow sets the RecoveryWindow field's value.
9882func (s *UpdateFailoverConfig) SetRecoveryWindow(v int64) *UpdateFailoverConfig {
9883	s.RecoveryWindow = &v
9884	return s
9885}
9886
9887// SetSourcePriority sets the SourcePriority field's value.
9888func (s *UpdateFailoverConfig) SetSourcePriority(v *SourcePriority) *UpdateFailoverConfig {
9889	s.SourcePriority = v
9890	return s
9891}
9892
9893// SetState sets the State field's value.
9894func (s *UpdateFailoverConfig) SetState(v string) *UpdateFailoverConfig {
9895	s.State = &v
9896	return s
9897}
9898
9899// The updates that you want to make to a specific entitlement.
9900type UpdateFlowEntitlementInput struct {
9901	_ struct{} `type:"structure"`
9902
9903	// A description of the entitlement. This description appears only on the AWS
9904	// Elemental MediaConnect console and will not be seen by the subscriber or
9905	// end user.
9906	Description *string `locationName:"description" type:"string"`
9907
9908	// The type of encryption that will be used on the output associated with this
9909	// entitlement.
9910	Encryption *UpdateEncryption `locationName:"encryption" type:"structure"`
9911
9912	// EntitlementArn is a required field
9913	EntitlementArn *string `location:"uri" locationName:"entitlementArn" type:"string" required:"true"`
9914
9915	// An indication of whether you want to enable the entitlement to allow access,
9916	// or disable it to stop streaming content to the subscriber’s flow temporarily.
9917	// If you don’t specify the entitlementStatus field in your request, MediaConnect
9918	// leaves the value unchanged.
9919	EntitlementStatus *string `locationName:"entitlementStatus" type:"string" enum:"EntitlementStatus"`
9920
9921	// FlowArn is a required field
9922	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
9923
9924	// The AWS account IDs that you want to share your content with. The receiving
9925	// accounts (subscribers) will be allowed to create their own flow using your
9926	// content as the source.
9927	Subscribers []*string `locationName:"subscribers" type:"list"`
9928}
9929
9930// String returns the string representation.
9931//
9932// API parameter values that are decorated as "sensitive" in the API will not
9933// be included in the string output. The member name will be present, but the
9934// value will be replaced with "sensitive".
9935func (s UpdateFlowEntitlementInput) String() string {
9936	return awsutil.Prettify(s)
9937}
9938
9939// GoString returns the string representation.
9940//
9941// API parameter values that are decorated as "sensitive" in the API will not
9942// be included in the string output. The member name will be present, but the
9943// value will be replaced with "sensitive".
9944func (s UpdateFlowEntitlementInput) GoString() string {
9945	return s.String()
9946}
9947
9948// Validate inspects the fields of the type to determine if they are valid.
9949func (s *UpdateFlowEntitlementInput) Validate() error {
9950	invalidParams := request.ErrInvalidParams{Context: "UpdateFlowEntitlementInput"}
9951	if s.EntitlementArn == nil {
9952		invalidParams.Add(request.NewErrParamRequired("EntitlementArn"))
9953	}
9954	if s.EntitlementArn != nil && len(*s.EntitlementArn) < 1 {
9955		invalidParams.Add(request.NewErrParamMinLen("EntitlementArn", 1))
9956	}
9957	if s.FlowArn == nil {
9958		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
9959	}
9960	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
9961		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
9962	}
9963
9964	if invalidParams.Len() > 0 {
9965		return invalidParams
9966	}
9967	return nil
9968}
9969
9970// SetDescription sets the Description field's value.
9971func (s *UpdateFlowEntitlementInput) SetDescription(v string) *UpdateFlowEntitlementInput {
9972	s.Description = &v
9973	return s
9974}
9975
9976// SetEncryption sets the Encryption field's value.
9977func (s *UpdateFlowEntitlementInput) SetEncryption(v *UpdateEncryption) *UpdateFlowEntitlementInput {
9978	s.Encryption = v
9979	return s
9980}
9981
9982// SetEntitlementArn sets the EntitlementArn field's value.
9983func (s *UpdateFlowEntitlementInput) SetEntitlementArn(v string) *UpdateFlowEntitlementInput {
9984	s.EntitlementArn = &v
9985	return s
9986}
9987
9988// SetEntitlementStatus sets the EntitlementStatus field's value.
9989func (s *UpdateFlowEntitlementInput) SetEntitlementStatus(v string) *UpdateFlowEntitlementInput {
9990	s.EntitlementStatus = &v
9991	return s
9992}
9993
9994// SetFlowArn sets the FlowArn field's value.
9995func (s *UpdateFlowEntitlementInput) SetFlowArn(v string) *UpdateFlowEntitlementInput {
9996	s.FlowArn = &v
9997	return s
9998}
9999
10000// SetSubscribers sets the Subscribers field's value.
10001func (s *UpdateFlowEntitlementInput) SetSubscribers(v []*string) *UpdateFlowEntitlementInput {
10002	s.Subscribers = v
10003	return s
10004}
10005
10006// The result of a successful UpdateFlowEntitlement request. The response includes
10007// the ARN of the flow that was updated and the updated entitlement configuration.
10008type UpdateFlowEntitlementOutput struct {
10009	_ struct{} `type:"structure"`
10010
10011	// The new configuration of the entitlement that you updated.
10012	Entitlement *Entitlement `locationName:"entitlement" type:"structure"`
10013
10014	// The ARN of the flow that this entitlement was granted on.
10015	FlowArn *string `locationName:"flowArn" type:"string"`
10016}
10017
10018// String returns the string representation.
10019//
10020// API parameter values that are decorated as "sensitive" in the API will not
10021// be included in the string output. The member name will be present, but the
10022// value will be replaced with "sensitive".
10023func (s UpdateFlowEntitlementOutput) String() string {
10024	return awsutil.Prettify(s)
10025}
10026
10027// GoString returns the string representation.
10028//
10029// API parameter values that are decorated as "sensitive" in the API will not
10030// be included in the string output. The member name will be present, but the
10031// value will be replaced with "sensitive".
10032func (s UpdateFlowEntitlementOutput) GoString() string {
10033	return s.String()
10034}
10035
10036// SetEntitlement sets the Entitlement field's value.
10037func (s *UpdateFlowEntitlementOutput) SetEntitlement(v *Entitlement) *UpdateFlowEntitlementOutput {
10038	s.Entitlement = v
10039	return s
10040}
10041
10042// SetFlowArn sets the FlowArn field's value.
10043func (s *UpdateFlowEntitlementOutput) SetFlowArn(v string) *UpdateFlowEntitlementOutput {
10044	s.FlowArn = &v
10045	return s
10046}
10047
10048// Updates an existing flow.
10049type UpdateFlowInput struct {
10050	_ struct{} `type:"structure"`
10051
10052	// FlowArn is a required field
10053	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
10054
10055	// The settings for source failover
10056	SourceFailoverConfig *UpdateFailoverConfig `locationName:"sourceFailoverConfig" type:"structure"`
10057}
10058
10059// String returns the string representation.
10060//
10061// API parameter values that are decorated as "sensitive" in the API will not
10062// be included in the string output. The member name will be present, but the
10063// value will be replaced with "sensitive".
10064func (s UpdateFlowInput) String() string {
10065	return awsutil.Prettify(s)
10066}
10067
10068// GoString returns the string representation.
10069//
10070// API parameter values that are decorated as "sensitive" in the API will not
10071// be included in the string output. The member name will be present, but the
10072// value will be replaced with "sensitive".
10073func (s UpdateFlowInput) GoString() string {
10074	return s.String()
10075}
10076
10077// Validate inspects the fields of the type to determine if they are valid.
10078func (s *UpdateFlowInput) Validate() error {
10079	invalidParams := request.ErrInvalidParams{Context: "UpdateFlowInput"}
10080	if s.FlowArn == nil {
10081		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
10082	}
10083	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
10084		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
10085	}
10086
10087	if invalidParams.Len() > 0 {
10088		return invalidParams
10089	}
10090	return nil
10091}
10092
10093// SetFlowArn sets the FlowArn field's value.
10094func (s *UpdateFlowInput) SetFlowArn(v string) *UpdateFlowInput {
10095	s.FlowArn = &v
10096	return s
10097}
10098
10099// SetSourceFailoverConfig sets the SourceFailoverConfig field's value.
10100func (s *UpdateFlowInput) SetSourceFailoverConfig(v *UpdateFailoverConfig) *UpdateFlowInput {
10101	s.SourceFailoverConfig = v
10102	return s
10103}
10104
10105// Update a media stream on a flow.
10106type UpdateFlowMediaStreamInput struct {
10107	_ struct{} `type:"structure"`
10108
10109	// The attributes that you want to assign to the media stream.
10110	Attributes *MediaStreamAttributesRequest `locationName:"attributes" type:"structure"`
10111
10112	// The sample rate (in Hz) for the stream. If the media stream type is video
10113	// or ancillary data, set this value to 90000. If the media stream type is audio,
10114	// set this value to either 48000 or 96000.
10115	ClockRate *int64 `locationName:"clockRate" type:"integer"`
10116
10117	// Description
10118	Description *string `locationName:"description" type:"string"`
10119
10120	// FlowArn is a required field
10121	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
10122
10123	// MediaStreamName is a required field
10124	MediaStreamName *string `location:"uri" locationName:"mediaStreamName" type:"string" required:"true"`
10125
10126	// The type of media stream.
10127	MediaStreamType *string `locationName:"mediaStreamType" type:"string" enum:"MediaStreamType"`
10128
10129	// The resolution of the video.
10130	VideoFormat *string `locationName:"videoFormat" type:"string"`
10131}
10132
10133// String returns the string representation.
10134//
10135// API parameter values that are decorated as "sensitive" in the API will not
10136// be included in the string output. The member name will be present, but the
10137// value will be replaced with "sensitive".
10138func (s UpdateFlowMediaStreamInput) String() string {
10139	return awsutil.Prettify(s)
10140}
10141
10142// GoString returns the string representation.
10143//
10144// API parameter values that are decorated as "sensitive" in the API will not
10145// be included in the string output. The member name will be present, but the
10146// value will be replaced with "sensitive".
10147func (s UpdateFlowMediaStreamInput) GoString() string {
10148	return s.String()
10149}
10150
10151// Validate inspects the fields of the type to determine if they are valid.
10152func (s *UpdateFlowMediaStreamInput) Validate() error {
10153	invalidParams := request.ErrInvalidParams{Context: "UpdateFlowMediaStreamInput"}
10154	if s.FlowArn == nil {
10155		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
10156	}
10157	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
10158		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
10159	}
10160	if s.MediaStreamName == nil {
10161		invalidParams.Add(request.NewErrParamRequired("MediaStreamName"))
10162	}
10163	if s.MediaStreamName != nil && len(*s.MediaStreamName) < 1 {
10164		invalidParams.Add(request.NewErrParamMinLen("MediaStreamName", 1))
10165	}
10166
10167	if invalidParams.Len() > 0 {
10168		return invalidParams
10169	}
10170	return nil
10171}
10172
10173// SetAttributes sets the Attributes field's value.
10174func (s *UpdateFlowMediaStreamInput) SetAttributes(v *MediaStreamAttributesRequest) *UpdateFlowMediaStreamInput {
10175	s.Attributes = v
10176	return s
10177}
10178
10179// SetClockRate sets the ClockRate field's value.
10180func (s *UpdateFlowMediaStreamInput) SetClockRate(v int64) *UpdateFlowMediaStreamInput {
10181	s.ClockRate = &v
10182	return s
10183}
10184
10185// SetDescription sets the Description field's value.
10186func (s *UpdateFlowMediaStreamInput) SetDescription(v string) *UpdateFlowMediaStreamInput {
10187	s.Description = &v
10188	return s
10189}
10190
10191// SetFlowArn sets the FlowArn field's value.
10192func (s *UpdateFlowMediaStreamInput) SetFlowArn(v string) *UpdateFlowMediaStreamInput {
10193	s.FlowArn = &v
10194	return s
10195}
10196
10197// SetMediaStreamName sets the MediaStreamName field's value.
10198func (s *UpdateFlowMediaStreamInput) SetMediaStreamName(v string) *UpdateFlowMediaStreamInput {
10199	s.MediaStreamName = &v
10200	return s
10201}
10202
10203// SetMediaStreamType sets the MediaStreamType field's value.
10204func (s *UpdateFlowMediaStreamInput) SetMediaStreamType(v string) *UpdateFlowMediaStreamInput {
10205	s.MediaStreamType = &v
10206	return s
10207}
10208
10209// SetVideoFormat sets the VideoFormat field's value.
10210func (s *UpdateFlowMediaStreamInput) SetVideoFormat(v string) *UpdateFlowMediaStreamInput {
10211	s.VideoFormat = &v
10212	return s
10213}
10214
10215// Update response
10216type UpdateFlowMediaStreamOutput struct {
10217	_ struct{} `type:"structure"`
10218
10219	// The ARN of the flow that is associated with the media stream that you updated.
10220	FlowArn *string `locationName:"flowArn" type:"string"`
10221
10222	// The media stream that you updated.
10223	MediaStream *MediaStream `locationName:"mediaStream" type:"structure"`
10224}
10225
10226// String returns the string representation.
10227//
10228// API parameter values that are decorated as "sensitive" in the API will not
10229// be included in the string output. The member name will be present, but the
10230// value will be replaced with "sensitive".
10231func (s UpdateFlowMediaStreamOutput) String() string {
10232	return awsutil.Prettify(s)
10233}
10234
10235// GoString returns the string representation.
10236//
10237// API parameter values that are decorated as "sensitive" in the API will not
10238// be included in the string output. The member name will be present, but the
10239// value will be replaced with "sensitive".
10240func (s UpdateFlowMediaStreamOutput) GoString() string {
10241	return s.String()
10242}
10243
10244// SetFlowArn sets the FlowArn field's value.
10245func (s *UpdateFlowMediaStreamOutput) SetFlowArn(v string) *UpdateFlowMediaStreamOutput {
10246	s.FlowArn = &v
10247	return s
10248}
10249
10250// SetMediaStream sets the MediaStream field's value.
10251func (s *UpdateFlowMediaStreamOutput) SetMediaStream(v *MediaStream) *UpdateFlowMediaStreamOutput {
10252	s.MediaStream = v
10253	return s
10254}
10255
10256// Updates an existing flow.
10257type UpdateFlowOutput struct {
10258	_ struct{} `type:"structure"`
10259
10260	// The settings for a flow, including its source, outputs, and entitlements.
10261	Flow *Flow `locationName:"flow" type:"structure"`
10262}
10263
10264// String returns the string representation.
10265//
10266// API parameter values that are decorated as "sensitive" in the API will not
10267// be included in the string output. The member name will be present, but the
10268// value will be replaced with "sensitive".
10269func (s UpdateFlowOutput) String() string {
10270	return awsutil.Prettify(s)
10271}
10272
10273// GoString returns the string representation.
10274//
10275// API parameter values that are decorated as "sensitive" in the API will not
10276// be included in the string output. The member name will be present, but the
10277// value will be replaced with "sensitive".
10278func (s UpdateFlowOutput) GoString() string {
10279	return s.String()
10280}
10281
10282// SetFlow sets the Flow field's value.
10283func (s *UpdateFlowOutput) SetFlow(v *Flow) *UpdateFlowOutput {
10284	s.Flow = v
10285	return s
10286}
10287
10288// The updates that you want to make to an existing output of an existing flow.
10289type UpdateFlowOutputInput struct {
10290	_ struct{} `type:"structure"`
10291
10292	// The range of IP addresses that should be allowed to initiate output requests
10293	// to this flow. These IP addresses should be in the form of a Classless Inter-Domain
10294	// Routing (CIDR) block; for example, 10.0.0.0/16.
10295	CidrAllowList []*string `locationName:"cidrAllowList" type:"list"`
10296
10297	// A description of the output. This description appears only on the AWS Elemental
10298	// MediaConnect console and will not be seen by the end user.
10299	Description *string `locationName:"description" type:"string"`
10300
10301	// The IP address where you want to send the output.
10302	Destination *string `locationName:"destination" type:"string"`
10303
10304	// The type of key used for the encryption. If no keyType is provided, the service
10305	// will use the default setting (static-key).
10306	Encryption *UpdateEncryption `locationName:"encryption" type:"structure"`
10307
10308	// FlowArn is a required field
10309	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
10310
10311	// The maximum latency in milliseconds for Zixi-based streams.
10312	MaxLatency *int64 `locationName:"maxLatency" type:"integer"`
10313
10314	// The media streams that are associated with the output, and the parameters
10315	// for those associations.
10316	MediaStreamOutputConfigurations []*MediaStreamOutputConfigurationRequest `locationName:"mediaStreamOutputConfigurations" type:"list"`
10317
10318	// The minimum latency in milliseconds for SRT-based streams. In streams that
10319	// use the SRT protocol, this value that you set on your MediaConnect source
10320	// or output represents the minimal potential latency of that connection. The
10321	// latency of the stream is set to the highest number between the sender’s
10322	// minimum latency and the receiver’s minimum latency.
10323	MinLatency *int64 `locationName:"minLatency" type:"integer"`
10324
10325	// OutputArn is a required field
10326	OutputArn *string `location:"uri" locationName:"outputArn" type:"string" required:"true"`
10327
10328	// The port to use when content is distributed to this output.
10329	Port *int64 `locationName:"port" type:"integer"`
10330
10331	// The protocol to use for the output.
10332	Protocol *string `locationName:"protocol" type:"string" enum:"Protocol"`
10333
10334	// The remote ID for the Zixi-pull stream.
10335	RemoteId *string `locationName:"remoteId" type:"string"`
10336
10337	// The smoothing latency in milliseconds for RIST, RTP, and RTP-FEC streams.
10338	SmoothingLatency *int64 `locationName:"smoothingLatency" type:"integer"`
10339
10340	// The stream ID that you want to use for this transport. This parameter applies
10341	// only to Zixi-based streams.
10342	StreamId *string `locationName:"streamId" type:"string"`
10343
10344	// The name of the VPC interface attachment to use for this output.
10345	VpcInterfaceAttachment *VpcInterfaceAttachment `locationName:"vpcInterfaceAttachment" type:"structure"`
10346}
10347
10348// String returns the string representation.
10349//
10350// API parameter values that are decorated as "sensitive" in the API will not
10351// be included in the string output. The member name will be present, but the
10352// value will be replaced with "sensitive".
10353func (s UpdateFlowOutputInput) String() string {
10354	return awsutil.Prettify(s)
10355}
10356
10357// GoString returns the string representation.
10358//
10359// API parameter values that are decorated as "sensitive" in the API will not
10360// be included in the string output. The member name will be present, but the
10361// value will be replaced with "sensitive".
10362func (s UpdateFlowOutputInput) GoString() string {
10363	return s.String()
10364}
10365
10366// Validate inspects the fields of the type to determine if they are valid.
10367func (s *UpdateFlowOutputInput) Validate() error {
10368	invalidParams := request.ErrInvalidParams{Context: "UpdateFlowOutputInput"}
10369	if s.FlowArn == nil {
10370		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
10371	}
10372	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
10373		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
10374	}
10375	if s.OutputArn == nil {
10376		invalidParams.Add(request.NewErrParamRequired("OutputArn"))
10377	}
10378	if s.OutputArn != nil && len(*s.OutputArn) < 1 {
10379		invalidParams.Add(request.NewErrParamMinLen("OutputArn", 1))
10380	}
10381	if s.MediaStreamOutputConfigurations != nil {
10382		for i, v := range s.MediaStreamOutputConfigurations {
10383			if v == nil {
10384				continue
10385			}
10386			if err := v.Validate(); err != nil {
10387				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MediaStreamOutputConfigurations", i), err.(request.ErrInvalidParams))
10388			}
10389		}
10390	}
10391
10392	if invalidParams.Len() > 0 {
10393		return invalidParams
10394	}
10395	return nil
10396}
10397
10398// SetCidrAllowList sets the CidrAllowList field's value.
10399func (s *UpdateFlowOutputInput) SetCidrAllowList(v []*string) *UpdateFlowOutputInput {
10400	s.CidrAllowList = v
10401	return s
10402}
10403
10404// SetDescription sets the Description field's value.
10405func (s *UpdateFlowOutputInput) SetDescription(v string) *UpdateFlowOutputInput {
10406	s.Description = &v
10407	return s
10408}
10409
10410// SetDestination sets the Destination field's value.
10411func (s *UpdateFlowOutputInput) SetDestination(v string) *UpdateFlowOutputInput {
10412	s.Destination = &v
10413	return s
10414}
10415
10416// SetEncryption sets the Encryption field's value.
10417func (s *UpdateFlowOutputInput) SetEncryption(v *UpdateEncryption) *UpdateFlowOutputInput {
10418	s.Encryption = v
10419	return s
10420}
10421
10422// SetFlowArn sets the FlowArn field's value.
10423func (s *UpdateFlowOutputInput) SetFlowArn(v string) *UpdateFlowOutputInput {
10424	s.FlowArn = &v
10425	return s
10426}
10427
10428// SetMaxLatency sets the MaxLatency field's value.
10429func (s *UpdateFlowOutputInput) SetMaxLatency(v int64) *UpdateFlowOutputInput {
10430	s.MaxLatency = &v
10431	return s
10432}
10433
10434// SetMediaStreamOutputConfigurations sets the MediaStreamOutputConfigurations field's value.
10435func (s *UpdateFlowOutputInput) SetMediaStreamOutputConfigurations(v []*MediaStreamOutputConfigurationRequest) *UpdateFlowOutputInput {
10436	s.MediaStreamOutputConfigurations = v
10437	return s
10438}
10439
10440// SetMinLatency sets the MinLatency field's value.
10441func (s *UpdateFlowOutputInput) SetMinLatency(v int64) *UpdateFlowOutputInput {
10442	s.MinLatency = &v
10443	return s
10444}
10445
10446// SetOutputArn sets the OutputArn field's value.
10447func (s *UpdateFlowOutputInput) SetOutputArn(v string) *UpdateFlowOutputInput {
10448	s.OutputArn = &v
10449	return s
10450}
10451
10452// SetPort sets the Port field's value.
10453func (s *UpdateFlowOutputInput) SetPort(v int64) *UpdateFlowOutputInput {
10454	s.Port = &v
10455	return s
10456}
10457
10458// SetProtocol sets the Protocol field's value.
10459func (s *UpdateFlowOutputInput) SetProtocol(v string) *UpdateFlowOutputInput {
10460	s.Protocol = &v
10461	return s
10462}
10463
10464// SetRemoteId sets the RemoteId field's value.
10465func (s *UpdateFlowOutputInput) SetRemoteId(v string) *UpdateFlowOutputInput {
10466	s.RemoteId = &v
10467	return s
10468}
10469
10470// SetSmoothingLatency sets the SmoothingLatency field's value.
10471func (s *UpdateFlowOutputInput) SetSmoothingLatency(v int64) *UpdateFlowOutputInput {
10472	s.SmoothingLatency = &v
10473	return s
10474}
10475
10476// SetStreamId sets the StreamId field's value.
10477func (s *UpdateFlowOutputInput) SetStreamId(v string) *UpdateFlowOutputInput {
10478	s.StreamId = &v
10479	return s
10480}
10481
10482// SetVpcInterfaceAttachment sets the VpcInterfaceAttachment field's value.
10483func (s *UpdateFlowOutputInput) SetVpcInterfaceAttachment(v *VpcInterfaceAttachment) *UpdateFlowOutputInput {
10484	s.VpcInterfaceAttachment = v
10485	return s
10486}
10487
10488// The result of a successful UpdateFlowOutput request including the flow ARN
10489// and the updated output.
10490type UpdateFlowOutputOutput struct {
10491	_ struct{} `type:"structure"`
10492
10493	// The ARN of the flow that is associated with the updated output.
10494	FlowArn *string `locationName:"flowArn" type:"string"`
10495
10496	// The new settings of the output that you updated.
10497	Output *Output `locationName:"output" type:"structure"`
10498}
10499
10500// String returns the string representation.
10501//
10502// API parameter values that are decorated as "sensitive" in the API will not
10503// be included in the string output. The member name will be present, but the
10504// value will be replaced with "sensitive".
10505func (s UpdateFlowOutputOutput) String() string {
10506	return awsutil.Prettify(s)
10507}
10508
10509// GoString returns the string representation.
10510//
10511// API parameter values that are decorated as "sensitive" in the API will not
10512// be included in the string output. The member name will be present, but the
10513// value will be replaced with "sensitive".
10514func (s UpdateFlowOutputOutput) GoString() string {
10515	return s.String()
10516}
10517
10518// SetFlowArn sets the FlowArn field's value.
10519func (s *UpdateFlowOutputOutput) SetFlowArn(v string) *UpdateFlowOutputOutput {
10520	s.FlowArn = &v
10521	return s
10522}
10523
10524// SetOutput sets the Output field's value.
10525func (s *UpdateFlowOutputOutput) SetOutput(v *Output) *UpdateFlowOutputOutput {
10526	s.Output = v
10527	return s
10528}
10529
10530// The updates that you want to make to an existing source of an existing flow.
10531type UpdateFlowSourceInput struct {
10532	_ struct{} `type:"structure"`
10533
10534	// The type of encryption used on the content ingested from this source.
10535	Decryption *UpdateEncryption `locationName:"decryption" type:"structure"`
10536
10537	// A description for the source. This value is not used or seen outside of the
10538	// current AWS Elemental MediaConnect account.
10539	Description *string `locationName:"description" type:"string"`
10540
10541	// The ARN of the entitlement that allows you to subscribe to this flow. The
10542	// entitlement is set by the flow originator, and the ARN is generated as part
10543	// of the originator's flow.
10544	EntitlementArn *string `locationName:"entitlementArn" type:"string"`
10545
10546	// FlowArn is a required field
10547	FlowArn *string `location:"uri" locationName:"flowArn" type:"string" required:"true"`
10548
10549	// The port that the flow will be listening on for incoming content.
10550	IngestPort *int64 `locationName:"ingestPort" type:"integer"`
10551
10552	// The smoothing max bitrate for RIST, RTP, and RTP-FEC streams.
10553	MaxBitrate *int64 `locationName:"maxBitrate" type:"integer"`
10554
10555	// The maximum latency in milliseconds. This parameter applies only to RIST-based
10556	// and Zixi-based streams.
10557	MaxLatency *int64 `locationName:"maxLatency" type:"integer"`
10558
10559	// The size of the buffer (in milliseconds) to use to sync incoming source data.
10560	MaxSyncBuffer *int64 `locationName:"maxSyncBuffer" type:"integer"`
10561
10562	// The media streams that are associated with the source, and the parameters
10563	// for those associations.
10564	MediaStreamSourceConfigurations []*MediaStreamSourceConfigurationRequest `locationName:"mediaStreamSourceConfigurations" type:"list"`
10565
10566	// The minimum latency in milliseconds for SRT-based streams. In streams that
10567	// use the SRT protocol, this value that you set on your MediaConnect source
10568	// or output represents the minimal potential latency of that connection. The
10569	// latency of the stream is set to the highest number between the sender’s
10570	// minimum latency and the receiver’s minimum latency.
10571	MinLatency *int64 `locationName:"minLatency" type:"integer"`
10572
10573	// The protocol that is used by the source.
10574	Protocol *string `locationName:"protocol" type:"string" enum:"Protocol"`
10575
10576	// SourceArn is a required field
10577	SourceArn *string `location:"uri" locationName:"sourceArn" type:"string" required:"true"`
10578
10579	// The stream ID that you want to use for this transport. This parameter applies
10580	// only to Zixi-based streams.
10581	StreamId *string `locationName:"streamId" type:"string"`
10582
10583	// The name of the VPC interface to use for this source.
10584	VpcInterfaceName *string `locationName:"vpcInterfaceName" type:"string"`
10585
10586	// The range of IP addresses that should be allowed to contribute content to
10587	// your source. These IP addresses should be in the form of a Classless Inter-Domain
10588	// Routing (CIDR) block; for example, 10.0.0.0/16.
10589	WhitelistCidr *string `locationName:"whitelistCidr" type:"string"`
10590}
10591
10592// String returns the string representation.
10593//
10594// API parameter values that are decorated as "sensitive" in the API will not
10595// be included in the string output. The member name will be present, but the
10596// value will be replaced with "sensitive".
10597func (s UpdateFlowSourceInput) String() string {
10598	return awsutil.Prettify(s)
10599}
10600
10601// GoString returns the string representation.
10602//
10603// API parameter values that are decorated as "sensitive" in the API will not
10604// be included in the string output. The member name will be present, but the
10605// value will be replaced with "sensitive".
10606func (s UpdateFlowSourceInput) GoString() string {
10607	return s.String()
10608}
10609
10610// Validate inspects the fields of the type to determine if they are valid.
10611func (s *UpdateFlowSourceInput) Validate() error {
10612	invalidParams := request.ErrInvalidParams{Context: "UpdateFlowSourceInput"}
10613	if s.FlowArn == nil {
10614		invalidParams.Add(request.NewErrParamRequired("FlowArn"))
10615	}
10616	if s.FlowArn != nil && len(*s.FlowArn) < 1 {
10617		invalidParams.Add(request.NewErrParamMinLen("FlowArn", 1))
10618	}
10619	if s.SourceArn == nil {
10620		invalidParams.Add(request.NewErrParamRequired("SourceArn"))
10621	}
10622	if s.SourceArn != nil && len(*s.SourceArn) < 1 {
10623		invalidParams.Add(request.NewErrParamMinLen("SourceArn", 1))
10624	}
10625	if s.MediaStreamSourceConfigurations != nil {
10626		for i, v := range s.MediaStreamSourceConfigurations {
10627			if v == nil {
10628				continue
10629			}
10630			if err := v.Validate(); err != nil {
10631				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MediaStreamSourceConfigurations", i), err.(request.ErrInvalidParams))
10632			}
10633		}
10634	}
10635
10636	if invalidParams.Len() > 0 {
10637		return invalidParams
10638	}
10639	return nil
10640}
10641
10642// SetDecryption sets the Decryption field's value.
10643func (s *UpdateFlowSourceInput) SetDecryption(v *UpdateEncryption) *UpdateFlowSourceInput {
10644	s.Decryption = v
10645	return s
10646}
10647
10648// SetDescription sets the Description field's value.
10649func (s *UpdateFlowSourceInput) SetDescription(v string) *UpdateFlowSourceInput {
10650	s.Description = &v
10651	return s
10652}
10653
10654// SetEntitlementArn sets the EntitlementArn field's value.
10655func (s *UpdateFlowSourceInput) SetEntitlementArn(v string) *UpdateFlowSourceInput {
10656	s.EntitlementArn = &v
10657	return s
10658}
10659
10660// SetFlowArn sets the FlowArn field's value.
10661func (s *UpdateFlowSourceInput) SetFlowArn(v string) *UpdateFlowSourceInput {
10662	s.FlowArn = &v
10663	return s
10664}
10665
10666// SetIngestPort sets the IngestPort field's value.
10667func (s *UpdateFlowSourceInput) SetIngestPort(v int64) *UpdateFlowSourceInput {
10668	s.IngestPort = &v
10669	return s
10670}
10671
10672// SetMaxBitrate sets the MaxBitrate field's value.
10673func (s *UpdateFlowSourceInput) SetMaxBitrate(v int64) *UpdateFlowSourceInput {
10674	s.MaxBitrate = &v
10675	return s
10676}
10677
10678// SetMaxLatency sets the MaxLatency field's value.
10679func (s *UpdateFlowSourceInput) SetMaxLatency(v int64) *UpdateFlowSourceInput {
10680	s.MaxLatency = &v
10681	return s
10682}
10683
10684// SetMaxSyncBuffer sets the MaxSyncBuffer field's value.
10685func (s *UpdateFlowSourceInput) SetMaxSyncBuffer(v int64) *UpdateFlowSourceInput {
10686	s.MaxSyncBuffer = &v
10687	return s
10688}
10689
10690// SetMediaStreamSourceConfigurations sets the MediaStreamSourceConfigurations field's value.
10691func (s *UpdateFlowSourceInput) SetMediaStreamSourceConfigurations(v []*MediaStreamSourceConfigurationRequest) *UpdateFlowSourceInput {
10692	s.MediaStreamSourceConfigurations = v
10693	return s
10694}
10695
10696// SetMinLatency sets the MinLatency field's value.
10697func (s *UpdateFlowSourceInput) SetMinLatency(v int64) *UpdateFlowSourceInput {
10698	s.MinLatency = &v
10699	return s
10700}
10701
10702// SetProtocol sets the Protocol field's value.
10703func (s *UpdateFlowSourceInput) SetProtocol(v string) *UpdateFlowSourceInput {
10704	s.Protocol = &v
10705	return s
10706}
10707
10708// SetSourceArn sets the SourceArn field's value.
10709func (s *UpdateFlowSourceInput) SetSourceArn(v string) *UpdateFlowSourceInput {
10710	s.SourceArn = &v
10711	return s
10712}
10713
10714// SetStreamId sets the StreamId field's value.
10715func (s *UpdateFlowSourceInput) SetStreamId(v string) *UpdateFlowSourceInput {
10716	s.StreamId = &v
10717	return s
10718}
10719
10720// SetVpcInterfaceName sets the VpcInterfaceName field's value.
10721func (s *UpdateFlowSourceInput) SetVpcInterfaceName(v string) *UpdateFlowSourceInput {
10722	s.VpcInterfaceName = &v
10723	return s
10724}
10725
10726// SetWhitelistCidr sets the WhitelistCidr field's value.
10727func (s *UpdateFlowSourceInput) SetWhitelistCidr(v string) *UpdateFlowSourceInput {
10728	s.WhitelistCidr = &v
10729	return s
10730}
10731
10732// The result of a successful UpdateFlowSource request. The response includes
10733// the ARN of the flow that was updated and the updated source configuration.
10734type UpdateFlowSourceOutput struct {
10735	_ struct{} `type:"structure"`
10736
10737	// The ARN of the flow that you want to update.
10738	FlowArn *string `locationName:"flowArn" type:"string"`
10739
10740	// The settings for the source of the flow.
10741	Source *Source `locationName:"source" type:"structure"`
10742}
10743
10744// String returns the string representation.
10745//
10746// API parameter values that are decorated as "sensitive" in the API will not
10747// be included in the string output. The member name will be present, but the
10748// value will be replaced with "sensitive".
10749func (s UpdateFlowSourceOutput) String() string {
10750	return awsutil.Prettify(s)
10751}
10752
10753// GoString returns the string representation.
10754//
10755// API parameter values that are decorated as "sensitive" in the API will not
10756// be included in the string output. The member name will be present, but the
10757// value will be replaced with "sensitive".
10758func (s UpdateFlowSourceOutput) GoString() string {
10759	return s.String()
10760}
10761
10762// SetFlowArn sets the FlowArn field's value.
10763func (s *UpdateFlowSourceOutput) SetFlowArn(v string) *UpdateFlowSourceOutput {
10764	s.FlowArn = &v
10765	return s
10766}
10767
10768// SetSource sets the Source field's value.
10769func (s *UpdateFlowSourceOutput) SetSource(v *Source) *UpdateFlowSourceOutput {
10770	s.Source = v
10771	return s
10772}
10773
10774// The settings for a VPC Source.
10775type VpcInterface struct {
10776	_ struct{} `type:"structure"`
10777
10778	// Immutable and has to be a unique against other VpcInterfaces in this Flow
10779	//
10780	// Name is a required field
10781	Name *string `locationName:"name" type:"string" required:"true"`
10782
10783	// IDs of the network interfaces created in customer's account by MediaConnect.
10784	//
10785	// NetworkInterfaceIds is a required field
10786	NetworkInterfaceIds []*string `locationName:"networkInterfaceIds" type:"list" required:"true"`
10787
10788	// The type of network interface.
10789	//
10790	// NetworkInterfaceType is a required field
10791	NetworkInterfaceType *string `locationName:"networkInterfaceType" type:"string" required:"true" enum:"NetworkInterfaceType"`
10792
10793	// Role Arn MediaConnect can assumes to create ENIs in customer's account
10794	//
10795	// RoleArn is a required field
10796	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
10797
10798	// Security Group IDs to be used on ENI.
10799	//
10800	// SecurityGroupIds is a required field
10801	SecurityGroupIds []*string `locationName:"securityGroupIds" type:"list" required:"true"`
10802
10803	// Subnet must be in the AZ of the Flow
10804	//
10805	// SubnetId is a required field
10806	SubnetId *string `locationName:"subnetId" type:"string" required:"true"`
10807}
10808
10809// String returns the string representation.
10810//
10811// API parameter values that are decorated as "sensitive" in the API will not
10812// be included in the string output. The member name will be present, but the
10813// value will be replaced with "sensitive".
10814func (s VpcInterface) String() string {
10815	return awsutil.Prettify(s)
10816}
10817
10818// GoString returns the string representation.
10819//
10820// API parameter values that are decorated as "sensitive" in the API will not
10821// be included in the string output. The member name will be present, but the
10822// value will be replaced with "sensitive".
10823func (s VpcInterface) GoString() string {
10824	return s.String()
10825}
10826
10827// SetName sets the Name field's value.
10828func (s *VpcInterface) SetName(v string) *VpcInterface {
10829	s.Name = &v
10830	return s
10831}
10832
10833// SetNetworkInterfaceIds sets the NetworkInterfaceIds field's value.
10834func (s *VpcInterface) SetNetworkInterfaceIds(v []*string) *VpcInterface {
10835	s.NetworkInterfaceIds = v
10836	return s
10837}
10838
10839// SetNetworkInterfaceType sets the NetworkInterfaceType field's value.
10840func (s *VpcInterface) SetNetworkInterfaceType(v string) *VpcInterface {
10841	s.NetworkInterfaceType = &v
10842	return s
10843}
10844
10845// SetRoleArn sets the RoleArn field's value.
10846func (s *VpcInterface) SetRoleArn(v string) *VpcInterface {
10847	s.RoleArn = &v
10848	return s
10849}
10850
10851// SetSecurityGroupIds sets the SecurityGroupIds field's value.
10852func (s *VpcInterface) SetSecurityGroupIds(v []*string) *VpcInterface {
10853	s.SecurityGroupIds = v
10854	return s
10855}
10856
10857// SetSubnetId sets the SubnetId field's value.
10858func (s *VpcInterface) SetSubnetId(v string) *VpcInterface {
10859	s.SubnetId = &v
10860	return s
10861}
10862
10863// The settings for attaching a VPC interface to an output.
10864type VpcInterfaceAttachment struct {
10865	_ struct{} `type:"structure"`
10866
10867	// The name of the VPC interface to use for this output.
10868	VpcInterfaceName *string `locationName:"vpcInterfaceName" type:"string"`
10869}
10870
10871// String returns the string representation.
10872//
10873// API parameter values that are decorated as "sensitive" in the API will not
10874// be included in the string output. The member name will be present, but the
10875// value will be replaced with "sensitive".
10876func (s VpcInterfaceAttachment) String() string {
10877	return awsutil.Prettify(s)
10878}
10879
10880// GoString returns the string representation.
10881//
10882// API parameter values that are decorated as "sensitive" in the API will not
10883// be included in the string output. The member name will be present, but the
10884// value will be replaced with "sensitive".
10885func (s VpcInterfaceAttachment) GoString() string {
10886	return s.String()
10887}
10888
10889// SetVpcInterfaceName sets the VpcInterfaceName field's value.
10890func (s *VpcInterfaceAttachment) SetVpcInterfaceName(v string) *VpcInterfaceAttachment {
10891	s.VpcInterfaceName = &v
10892	return s
10893}
10894
10895// Desired VPC Interface for a Flow
10896type VpcInterfaceRequest struct {
10897	_ struct{} `type:"structure"`
10898
10899	// The name of the VPC Interface. This value must be unique within the current
10900	// flow.
10901	//
10902	// Name is a required field
10903	Name *string `locationName:"name" type:"string" required:"true"`
10904
10905	// The type of network interface. If this value is not included in the request,
10906	// MediaConnect uses ENA as the networkInterfaceType.
10907	NetworkInterfaceType *string `locationName:"networkInterfaceType" type:"string" enum:"NetworkInterfaceType"`
10908
10909	// Role Arn MediaConnect can assumes to create ENIs in customer's account
10910	//
10911	// RoleArn is a required field
10912	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
10913
10914	// Security Group IDs to be used on ENI.
10915	//
10916	// SecurityGroupIds is a required field
10917	SecurityGroupIds []*string `locationName:"securityGroupIds" type:"list" required:"true"`
10918
10919	// Subnet must be in the AZ of the Flow
10920	//
10921	// SubnetId is a required field
10922	SubnetId *string `locationName:"subnetId" type:"string" required:"true"`
10923}
10924
10925// String returns the string representation.
10926//
10927// API parameter values that are decorated as "sensitive" in the API will not
10928// be included in the string output. The member name will be present, but the
10929// value will be replaced with "sensitive".
10930func (s VpcInterfaceRequest) String() string {
10931	return awsutil.Prettify(s)
10932}
10933
10934// GoString returns the string representation.
10935//
10936// API parameter values that are decorated as "sensitive" in the API will not
10937// be included in the string output. The member name will be present, but the
10938// value will be replaced with "sensitive".
10939func (s VpcInterfaceRequest) GoString() string {
10940	return s.String()
10941}
10942
10943// Validate inspects the fields of the type to determine if they are valid.
10944func (s *VpcInterfaceRequest) Validate() error {
10945	invalidParams := request.ErrInvalidParams{Context: "VpcInterfaceRequest"}
10946	if s.Name == nil {
10947		invalidParams.Add(request.NewErrParamRequired("Name"))
10948	}
10949	if s.RoleArn == nil {
10950		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
10951	}
10952	if s.SecurityGroupIds == nil {
10953		invalidParams.Add(request.NewErrParamRequired("SecurityGroupIds"))
10954	}
10955	if s.SubnetId == nil {
10956		invalidParams.Add(request.NewErrParamRequired("SubnetId"))
10957	}
10958
10959	if invalidParams.Len() > 0 {
10960		return invalidParams
10961	}
10962	return nil
10963}
10964
10965// SetName sets the Name field's value.
10966func (s *VpcInterfaceRequest) SetName(v string) *VpcInterfaceRequest {
10967	s.Name = &v
10968	return s
10969}
10970
10971// SetNetworkInterfaceType sets the NetworkInterfaceType field's value.
10972func (s *VpcInterfaceRequest) SetNetworkInterfaceType(v string) *VpcInterfaceRequest {
10973	s.NetworkInterfaceType = &v
10974	return s
10975}
10976
10977// SetRoleArn sets the RoleArn field's value.
10978func (s *VpcInterfaceRequest) SetRoleArn(v string) *VpcInterfaceRequest {
10979	s.RoleArn = &v
10980	return s
10981}
10982
10983// SetSecurityGroupIds sets the SecurityGroupIds field's value.
10984func (s *VpcInterfaceRequest) SetSecurityGroupIds(v []*string) *VpcInterfaceRequest {
10985	s.SecurityGroupIds = v
10986	return s
10987}
10988
10989// SetSubnetId sets the SubnetId field's value.
10990func (s *VpcInterfaceRequest) SetSubnetId(v string) *VpcInterfaceRequest {
10991	s.SubnetId = &v
10992	return s
10993}
10994
10995const (
10996	// AlgorithmAes128 is a Algorithm enum value
10997	AlgorithmAes128 = "aes128"
10998
10999	// AlgorithmAes192 is a Algorithm enum value
11000	AlgorithmAes192 = "aes192"
11001
11002	// AlgorithmAes256 is a Algorithm enum value
11003	AlgorithmAes256 = "aes256"
11004)
11005
11006// Algorithm_Values returns all elements of the Algorithm enum
11007func Algorithm_Values() []string {
11008	return []string{
11009		AlgorithmAes128,
11010		AlgorithmAes192,
11011		AlgorithmAes256,
11012	}
11013}
11014
11015const (
11016	// ColorimetryBt601 is a Colorimetry enum value
11017	ColorimetryBt601 = "BT601"
11018
11019	// ColorimetryBt709 is a Colorimetry enum value
11020	ColorimetryBt709 = "BT709"
11021
11022	// ColorimetryBt2020 is a Colorimetry enum value
11023	ColorimetryBt2020 = "BT2020"
11024
11025	// ColorimetryBt2100 is a Colorimetry enum value
11026	ColorimetryBt2100 = "BT2100"
11027
11028	// ColorimetrySt20651 is a Colorimetry enum value
11029	ColorimetrySt20651 = "ST2065-1"
11030
11031	// ColorimetrySt20653 is a Colorimetry enum value
11032	ColorimetrySt20653 = "ST2065-3"
11033
11034	// ColorimetryXyz is a Colorimetry enum value
11035	ColorimetryXyz = "XYZ"
11036)
11037
11038// Colorimetry_Values returns all elements of the Colorimetry enum
11039func Colorimetry_Values() []string {
11040	return []string{
11041		ColorimetryBt601,
11042		ColorimetryBt709,
11043		ColorimetryBt2020,
11044		ColorimetryBt2100,
11045		ColorimetrySt20651,
11046		ColorimetrySt20653,
11047		ColorimetryXyz,
11048	}
11049}
11050
11051const (
11052	// DurationUnitsMonths is a DurationUnits enum value
11053	DurationUnitsMonths = "MONTHS"
11054)
11055
11056// DurationUnits_Values returns all elements of the DurationUnits enum
11057func DurationUnits_Values() []string {
11058	return []string{
11059		DurationUnitsMonths,
11060	}
11061}
11062
11063const (
11064	// EncoderProfileMain is a EncoderProfile enum value
11065	EncoderProfileMain = "main"
11066
11067	// EncoderProfileHigh is a EncoderProfile enum value
11068	EncoderProfileHigh = "high"
11069)
11070
11071// EncoderProfile_Values returns all elements of the EncoderProfile enum
11072func EncoderProfile_Values() []string {
11073	return []string{
11074		EncoderProfileMain,
11075		EncoderProfileHigh,
11076	}
11077}
11078
11079const (
11080	// EncodingNameJxsv is a EncodingName enum value
11081	EncodingNameJxsv = "jxsv"
11082
11083	// EncodingNameRaw is a EncodingName enum value
11084	EncodingNameRaw = "raw"
11085
11086	// EncodingNameSmpte291 is a EncodingName enum value
11087	EncodingNameSmpte291 = "smpte291"
11088
11089	// EncodingNamePcm is a EncodingName enum value
11090	EncodingNamePcm = "pcm"
11091)
11092
11093// EncodingName_Values returns all elements of the EncodingName enum
11094func EncodingName_Values() []string {
11095	return []string{
11096		EncodingNameJxsv,
11097		EncodingNameRaw,
11098		EncodingNameSmpte291,
11099		EncodingNamePcm,
11100	}
11101}
11102
11103const (
11104	// EntitlementStatusEnabled is a EntitlementStatus enum value
11105	EntitlementStatusEnabled = "ENABLED"
11106
11107	// EntitlementStatusDisabled is a EntitlementStatus enum value
11108	EntitlementStatusDisabled = "DISABLED"
11109)
11110
11111// EntitlementStatus_Values returns all elements of the EntitlementStatus enum
11112func EntitlementStatus_Values() []string {
11113	return []string{
11114		EntitlementStatusEnabled,
11115		EntitlementStatusDisabled,
11116	}
11117}
11118
11119const (
11120	// FailoverModeMerge is a FailoverMode enum value
11121	FailoverModeMerge = "MERGE"
11122
11123	// FailoverModeFailover is a FailoverMode enum value
11124	FailoverModeFailover = "FAILOVER"
11125)
11126
11127// FailoverMode_Values returns all elements of the FailoverMode enum
11128func FailoverMode_Values() []string {
11129	return []string{
11130		FailoverModeMerge,
11131		FailoverModeFailover,
11132	}
11133}
11134
11135const (
11136	// KeyTypeSpeke is a KeyType enum value
11137	KeyTypeSpeke = "speke"
11138
11139	// KeyTypeStaticKey is a KeyType enum value
11140	KeyTypeStaticKey = "static-key"
11141
11142	// KeyTypeSrtPassword is a KeyType enum value
11143	KeyTypeSrtPassword = "srt-password"
11144)
11145
11146// KeyType_Values returns all elements of the KeyType enum
11147func KeyType_Values() []string {
11148	return []string{
11149		KeyTypeSpeke,
11150		KeyTypeStaticKey,
11151		KeyTypeSrtPassword,
11152	}
11153}
11154
11155const (
11156	// MediaStreamTypeVideo is a MediaStreamType enum value
11157	MediaStreamTypeVideo = "video"
11158
11159	// MediaStreamTypeAudio is a MediaStreamType enum value
11160	MediaStreamTypeAudio = "audio"
11161
11162	// MediaStreamTypeAncillaryData is a MediaStreamType enum value
11163	MediaStreamTypeAncillaryData = "ancillary-data"
11164)
11165
11166// MediaStreamType_Values returns all elements of the MediaStreamType enum
11167func MediaStreamType_Values() []string {
11168	return []string{
11169		MediaStreamTypeVideo,
11170		MediaStreamTypeAudio,
11171		MediaStreamTypeAncillaryData,
11172	}
11173}
11174
11175const (
11176	// NetworkInterfaceTypeEna is a NetworkInterfaceType enum value
11177	NetworkInterfaceTypeEna = "ena"
11178
11179	// NetworkInterfaceTypeEfa is a NetworkInterfaceType enum value
11180	NetworkInterfaceTypeEfa = "efa"
11181)
11182
11183// NetworkInterfaceType_Values returns all elements of the NetworkInterfaceType enum
11184func NetworkInterfaceType_Values() []string {
11185	return []string{
11186		NetworkInterfaceTypeEna,
11187		NetworkInterfaceTypeEfa,
11188	}
11189}
11190
11191const (
11192	// PriceUnitsHourly is a PriceUnits enum value
11193	PriceUnitsHourly = "HOURLY"
11194)
11195
11196// PriceUnits_Values returns all elements of the PriceUnits enum
11197func PriceUnits_Values() []string {
11198	return []string{
11199		PriceUnitsHourly,
11200	}
11201}
11202
11203const (
11204	// ProtocolZixiPush is a Protocol enum value
11205	ProtocolZixiPush = "zixi-push"
11206
11207	// ProtocolRtpFec is a Protocol enum value
11208	ProtocolRtpFec = "rtp-fec"
11209
11210	// ProtocolRtp is a Protocol enum value
11211	ProtocolRtp = "rtp"
11212
11213	// ProtocolZixiPull is a Protocol enum value
11214	ProtocolZixiPull = "zixi-pull"
11215
11216	// ProtocolRist is a Protocol enum value
11217	ProtocolRist = "rist"
11218
11219	// ProtocolSt2110Jpegxs is a Protocol enum value
11220	ProtocolSt2110Jpegxs = "st2110-jpegxs"
11221
11222	// ProtocolCdi is a Protocol enum value
11223	ProtocolCdi = "cdi"
11224
11225	// ProtocolSrtListener is a Protocol enum value
11226	ProtocolSrtListener = "srt-listener"
11227)
11228
11229// Protocol_Values returns all elements of the Protocol enum
11230func Protocol_Values() []string {
11231	return []string{
11232		ProtocolZixiPush,
11233		ProtocolRtpFec,
11234		ProtocolRtp,
11235		ProtocolZixiPull,
11236		ProtocolRist,
11237		ProtocolSt2110Jpegxs,
11238		ProtocolCdi,
11239		ProtocolSrtListener,
11240	}
11241}
11242
11243const (
11244	// RangeNarrow is a Range enum value
11245	RangeNarrow = "NARROW"
11246
11247	// RangeFull is a Range enum value
11248	RangeFull = "FULL"
11249
11250	// RangeFullprotect is a Range enum value
11251	RangeFullprotect = "FULLPROTECT"
11252)
11253
11254// Range_Values returns all elements of the Range enum
11255func Range_Values() []string {
11256	return []string{
11257		RangeNarrow,
11258		RangeFull,
11259		RangeFullprotect,
11260	}
11261}
11262
11263const (
11264	// ReservationStateActive is a ReservationState enum value
11265	ReservationStateActive = "ACTIVE"
11266
11267	// ReservationStateExpired is a ReservationState enum value
11268	ReservationStateExpired = "EXPIRED"
11269
11270	// ReservationStateProcessing is a ReservationState enum value
11271	ReservationStateProcessing = "PROCESSING"
11272
11273	// ReservationStateCanceled is a ReservationState enum value
11274	ReservationStateCanceled = "CANCELED"
11275)
11276
11277// ReservationState_Values returns all elements of the ReservationState enum
11278func ReservationState_Values() []string {
11279	return []string{
11280		ReservationStateActive,
11281		ReservationStateExpired,
11282		ReservationStateProcessing,
11283		ReservationStateCanceled,
11284	}
11285}
11286
11287const (
11288	// ResourceTypeMbpsOutboundBandwidth is a ResourceType enum value
11289	ResourceTypeMbpsOutboundBandwidth = "Mbps_Outbound_Bandwidth"
11290)
11291
11292// ResourceType_Values returns all elements of the ResourceType enum
11293func ResourceType_Values() []string {
11294	return []string{
11295		ResourceTypeMbpsOutboundBandwidth,
11296	}
11297}
11298
11299const (
11300	// ScanModeProgressive is a ScanMode enum value
11301	ScanModeProgressive = "progressive"
11302
11303	// ScanModeInterlace is a ScanMode enum value
11304	ScanModeInterlace = "interlace"
11305
11306	// ScanModeProgressiveSegmentedFrame is a ScanMode enum value
11307	ScanModeProgressiveSegmentedFrame = "progressive-segmented-frame"
11308)
11309
11310// ScanMode_Values returns all elements of the ScanMode enum
11311func ScanMode_Values() []string {
11312	return []string{
11313		ScanModeProgressive,
11314		ScanModeInterlace,
11315		ScanModeProgressiveSegmentedFrame,
11316	}
11317}
11318
11319const (
11320	// SourceTypeOwned is a SourceType enum value
11321	SourceTypeOwned = "OWNED"
11322
11323	// SourceTypeEntitled is a SourceType enum value
11324	SourceTypeEntitled = "ENTITLED"
11325)
11326
11327// SourceType_Values returns all elements of the SourceType enum
11328func SourceType_Values() []string {
11329	return []string{
11330		SourceTypeOwned,
11331		SourceTypeEntitled,
11332	}
11333}
11334
11335const (
11336	// StateEnabled is a State enum value
11337	StateEnabled = "ENABLED"
11338
11339	// StateDisabled is a State enum value
11340	StateDisabled = "DISABLED"
11341)
11342
11343// State_Values returns all elements of the State enum
11344func State_Values() []string {
11345	return []string{
11346		StateEnabled,
11347		StateDisabled,
11348	}
11349}
11350
11351const (
11352	// StatusStandby is a Status enum value
11353	StatusStandby = "STANDBY"
11354
11355	// StatusActive is a Status enum value
11356	StatusActive = "ACTIVE"
11357
11358	// StatusUpdating is a Status enum value
11359	StatusUpdating = "UPDATING"
11360
11361	// StatusDeleting is a Status enum value
11362	StatusDeleting = "DELETING"
11363
11364	// StatusStarting is a Status enum value
11365	StatusStarting = "STARTING"
11366
11367	// StatusStopping is a Status enum value
11368	StatusStopping = "STOPPING"
11369
11370	// StatusError is a Status enum value
11371	StatusError = "ERROR"
11372)
11373
11374// Status_Values returns all elements of the Status enum
11375func Status_Values() []string {
11376	return []string{
11377		StatusStandby,
11378		StatusActive,
11379		StatusUpdating,
11380		StatusDeleting,
11381		StatusStarting,
11382		StatusStopping,
11383		StatusError,
11384	}
11385}
11386
11387const (
11388	// TcsSdr is a Tcs enum value
11389	TcsSdr = "SDR"
11390
11391	// TcsPq is a Tcs enum value
11392	TcsPq = "PQ"
11393
11394	// TcsHlg is a Tcs enum value
11395	TcsHlg = "HLG"
11396
11397	// TcsLinear is a Tcs enum value
11398	TcsLinear = "LINEAR"
11399
11400	// TcsBt2100linpq is a Tcs enum value
11401	TcsBt2100linpq = "BT2100LINPQ"
11402
11403	// TcsBt2100linhlg is a Tcs enum value
11404	TcsBt2100linhlg = "BT2100LINHLG"
11405
11406	// TcsSt20651 is a Tcs enum value
11407	TcsSt20651 = "ST2065-1"
11408
11409	// TcsSt4281 is a Tcs enum value
11410	TcsSt4281 = "ST428-1"
11411
11412	// TcsDensity is a Tcs enum value
11413	TcsDensity = "DENSITY"
11414)
11415
11416// Tcs_Values returns all elements of the Tcs enum
11417func Tcs_Values() []string {
11418	return []string{
11419		TcsSdr,
11420		TcsPq,
11421		TcsHlg,
11422		TcsLinear,
11423		TcsBt2100linpq,
11424		TcsBt2100linhlg,
11425		TcsSt20651,
11426		TcsSt4281,
11427		TcsDensity,
11428	}
11429}
11430