1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package kinesisvideo
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/restjson"
14)
15
16const opCreateSignalingChannel = "CreateSignalingChannel"
17
18// CreateSignalingChannelRequest generates a "aws/request.Request" representing the
19// client's request for the CreateSignalingChannel operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See CreateSignalingChannel for more information on using the CreateSignalingChannel
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the CreateSignalingChannelRequest method.
34//    req, resp := client.CreateSignalingChannelRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/CreateSignalingChannel
42func (c *KinesisVideo) CreateSignalingChannelRequest(input *CreateSignalingChannelInput) (req *request.Request, output *CreateSignalingChannelOutput) {
43	op := &request.Operation{
44		Name:       opCreateSignalingChannel,
45		HTTPMethod: "POST",
46		HTTPPath:   "/createSignalingChannel",
47	}
48
49	if input == nil {
50		input = &CreateSignalingChannelInput{}
51	}
52
53	output = &CreateSignalingChannelOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// CreateSignalingChannel API operation for Amazon Kinesis Video Streams.
59//
60// Creates a signaling channel.
61//
62// CreateSignalingChannel is an asynchronous operation.
63//
64// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
65// with awserr.Error's Code and Message methods to get detailed information about
66// the error.
67//
68// See the AWS API reference guide for Amazon Kinesis Video Streams's
69// API operation CreateSignalingChannel for usage and error information.
70//
71// Returned Error Types:
72//   * InvalidArgumentException
73//   The value for this input parameter is invalid.
74//
75//   * ClientLimitExceededException
76//   Kinesis Video Streams has throttled the request because you have exceeded
77//   the limit of allowed client calls. Try making the call later.
78//
79//   * AccountChannelLimitExceededException
80//   You have reached the maximum limit of active signaling channels for this
81//   AWS account in this region.
82//
83//   * ResourceInUseException
84//   The signaling channel is currently not available for this operation.
85//
86//   * AccessDeniedException
87//   You do not have required permissions to perform this operation.
88//
89//   * TagsPerResourceExceededLimitException
90//   You have exceeded the limit of tags that you can associate with the resource.
91//   Kinesis video streams support up to 50 tags.
92//
93// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/CreateSignalingChannel
94func (c *KinesisVideo) CreateSignalingChannel(input *CreateSignalingChannelInput) (*CreateSignalingChannelOutput, error) {
95	req, out := c.CreateSignalingChannelRequest(input)
96	return out, req.Send()
97}
98
99// CreateSignalingChannelWithContext is the same as CreateSignalingChannel with the addition of
100// the ability to pass a context and additional request options.
101//
102// See CreateSignalingChannel for details on how to use this API operation.
103//
104// The context must be non-nil and will be used for request cancellation. If
105// the context is nil a panic will occur. In the future the SDK may create
106// sub-contexts for http.Requests. See https://golang.org/pkg/context/
107// for more information on using Contexts.
108func (c *KinesisVideo) CreateSignalingChannelWithContext(ctx aws.Context, input *CreateSignalingChannelInput, opts ...request.Option) (*CreateSignalingChannelOutput, error) {
109	req, out := c.CreateSignalingChannelRequest(input)
110	req.SetContext(ctx)
111	req.ApplyOptions(opts...)
112	return out, req.Send()
113}
114
115const opCreateStream = "CreateStream"
116
117// CreateStreamRequest generates a "aws/request.Request" representing the
118// client's request for the CreateStream operation. The "output" return
119// value will be populated with the request's response once the request completes
120// successfully.
121//
122// Use "Send" method on the returned Request to send the API call to the service.
123// the "output" return value is not valid until after Send returns without error.
124//
125// See CreateStream for more information on using the CreateStream
126// API call, and error handling.
127//
128// This method is useful when you want to inject custom logic or configuration
129// into the SDK's request lifecycle. Such as custom headers, or retry logic.
130//
131//
132//    // Example sending a request using the CreateStreamRequest method.
133//    req, resp := client.CreateStreamRequest(params)
134//
135//    err := req.Send()
136//    if err == nil { // resp is now filled
137//        fmt.Println(resp)
138//    }
139//
140// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/CreateStream
141func (c *KinesisVideo) CreateStreamRequest(input *CreateStreamInput) (req *request.Request, output *CreateStreamOutput) {
142	op := &request.Operation{
143		Name:       opCreateStream,
144		HTTPMethod: "POST",
145		HTTPPath:   "/createStream",
146	}
147
148	if input == nil {
149		input = &CreateStreamInput{}
150	}
151
152	output = &CreateStreamOutput{}
153	req = c.newRequest(op, input, output)
154	return
155}
156
157// CreateStream API operation for Amazon Kinesis Video Streams.
158//
159// Creates a new Kinesis video stream.
160//
161// When you create a new stream, Kinesis Video Streams assigns it a version
162// number. When you change the stream's metadata, Kinesis Video Streams updates
163// the version.
164//
165// CreateStream is an asynchronous operation.
166//
167// For information about how the service works, see How it Works (https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/how-it-works.html).
168//
169// You must have permissions for the KinesisVideo:CreateStream action.
170//
171// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
172// with awserr.Error's Code and Message methods to get detailed information about
173// the error.
174//
175// See the AWS API reference guide for Amazon Kinesis Video Streams's
176// API operation CreateStream for usage and error information.
177//
178// Returned Error Types:
179//   * AccountStreamLimitExceededException
180//   The number of streams created for the account is too high.
181//
182//   * DeviceStreamLimitExceededException
183//   Not implemented.
184//
185//   * ResourceInUseException
186//   The signaling channel is currently not available for this operation.
187//
188//   * InvalidDeviceException
189//   Not implemented.
190//
191//   * InvalidArgumentException
192//   The value for this input parameter is invalid.
193//
194//   * ClientLimitExceededException
195//   Kinesis Video Streams has throttled the request because you have exceeded
196//   the limit of allowed client calls. Try making the call later.
197//
198//   * TagsPerResourceExceededLimitException
199//   You have exceeded the limit of tags that you can associate with the resource.
200//   Kinesis video streams support up to 50 tags.
201//
202// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/CreateStream
203func (c *KinesisVideo) CreateStream(input *CreateStreamInput) (*CreateStreamOutput, error) {
204	req, out := c.CreateStreamRequest(input)
205	return out, req.Send()
206}
207
208// CreateStreamWithContext is the same as CreateStream with the addition of
209// the ability to pass a context and additional request options.
210//
211// See CreateStream for details on how to use this API operation.
212//
213// The context must be non-nil and will be used for request cancellation. If
214// the context is nil a panic will occur. In the future the SDK may create
215// sub-contexts for http.Requests. See https://golang.org/pkg/context/
216// for more information on using Contexts.
217func (c *KinesisVideo) CreateStreamWithContext(ctx aws.Context, input *CreateStreamInput, opts ...request.Option) (*CreateStreamOutput, error) {
218	req, out := c.CreateStreamRequest(input)
219	req.SetContext(ctx)
220	req.ApplyOptions(opts...)
221	return out, req.Send()
222}
223
224const opDeleteSignalingChannel = "DeleteSignalingChannel"
225
226// DeleteSignalingChannelRequest generates a "aws/request.Request" representing the
227// client's request for the DeleteSignalingChannel operation. The "output" return
228// value will be populated with the request's response once the request completes
229// successfully.
230//
231// Use "Send" method on the returned Request to send the API call to the service.
232// the "output" return value is not valid until after Send returns without error.
233//
234// See DeleteSignalingChannel for more information on using the DeleteSignalingChannel
235// API call, and error handling.
236//
237// This method is useful when you want to inject custom logic or configuration
238// into the SDK's request lifecycle. Such as custom headers, or retry logic.
239//
240//
241//    // Example sending a request using the DeleteSignalingChannelRequest method.
242//    req, resp := client.DeleteSignalingChannelRequest(params)
243//
244//    err := req.Send()
245//    if err == nil { // resp is now filled
246//        fmt.Println(resp)
247//    }
248//
249// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/DeleteSignalingChannel
250func (c *KinesisVideo) DeleteSignalingChannelRequest(input *DeleteSignalingChannelInput) (req *request.Request, output *DeleteSignalingChannelOutput) {
251	op := &request.Operation{
252		Name:       opDeleteSignalingChannel,
253		HTTPMethod: "POST",
254		HTTPPath:   "/deleteSignalingChannel",
255	}
256
257	if input == nil {
258		input = &DeleteSignalingChannelInput{}
259	}
260
261	output = &DeleteSignalingChannelOutput{}
262	req = c.newRequest(op, input, output)
263	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
264	return
265}
266
267// DeleteSignalingChannel API operation for Amazon Kinesis Video Streams.
268//
269// Deletes a specified signaling channel. DeleteSignalingChannel is an asynchronous
270// operation. If you don't specify the channel's current version, the most recent
271// version is deleted.
272//
273// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
274// with awserr.Error's Code and Message methods to get detailed information about
275// the error.
276//
277// See the AWS API reference guide for Amazon Kinesis Video Streams's
278// API operation DeleteSignalingChannel for usage and error information.
279//
280// Returned Error Types:
281//   * InvalidArgumentException
282//   The value for this input parameter is invalid.
283//
284//   * ClientLimitExceededException
285//   Kinesis Video Streams has throttled the request because you have exceeded
286//   the limit of allowed client calls. Try making the call later.
287//
288//   * ResourceNotFoundException
289//   Amazon Kinesis Video Streams can't find the stream that you specified.
290//
291//   * AccessDeniedException
292//   You do not have required permissions to perform this operation.
293//
294//   * VersionMismatchException
295//   The stream version that you specified is not the latest version. To get the
296//   latest version, use the DescribeStream (https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DescribeStream.html)
297//   API.
298//
299//   * ResourceInUseException
300//   The signaling channel is currently not available for this operation.
301//
302// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/DeleteSignalingChannel
303func (c *KinesisVideo) DeleteSignalingChannel(input *DeleteSignalingChannelInput) (*DeleteSignalingChannelOutput, error) {
304	req, out := c.DeleteSignalingChannelRequest(input)
305	return out, req.Send()
306}
307
308// DeleteSignalingChannelWithContext is the same as DeleteSignalingChannel with the addition of
309// the ability to pass a context and additional request options.
310//
311// See DeleteSignalingChannel for details on how to use this API operation.
312//
313// The context must be non-nil and will be used for request cancellation. If
314// the context is nil a panic will occur. In the future the SDK may create
315// sub-contexts for http.Requests. See https://golang.org/pkg/context/
316// for more information on using Contexts.
317func (c *KinesisVideo) DeleteSignalingChannelWithContext(ctx aws.Context, input *DeleteSignalingChannelInput, opts ...request.Option) (*DeleteSignalingChannelOutput, error) {
318	req, out := c.DeleteSignalingChannelRequest(input)
319	req.SetContext(ctx)
320	req.ApplyOptions(opts...)
321	return out, req.Send()
322}
323
324const opDeleteStream = "DeleteStream"
325
326// DeleteStreamRequest generates a "aws/request.Request" representing the
327// client's request for the DeleteStream operation. The "output" return
328// value will be populated with the request's response once the request completes
329// successfully.
330//
331// Use "Send" method on the returned Request to send the API call to the service.
332// the "output" return value is not valid until after Send returns without error.
333//
334// See DeleteStream for more information on using the DeleteStream
335// API call, and error handling.
336//
337// This method is useful when you want to inject custom logic or configuration
338// into the SDK's request lifecycle. Such as custom headers, or retry logic.
339//
340//
341//    // Example sending a request using the DeleteStreamRequest method.
342//    req, resp := client.DeleteStreamRequest(params)
343//
344//    err := req.Send()
345//    if err == nil { // resp is now filled
346//        fmt.Println(resp)
347//    }
348//
349// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/DeleteStream
350func (c *KinesisVideo) DeleteStreamRequest(input *DeleteStreamInput) (req *request.Request, output *DeleteStreamOutput) {
351	op := &request.Operation{
352		Name:       opDeleteStream,
353		HTTPMethod: "POST",
354		HTTPPath:   "/deleteStream",
355	}
356
357	if input == nil {
358		input = &DeleteStreamInput{}
359	}
360
361	output = &DeleteStreamOutput{}
362	req = c.newRequest(op, input, output)
363	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
364	return
365}
366
367// DeleteStream API operation for Amazon Kinesis Video Streams.
368//
369// Deletes a Kinesis video stream and the data contained in the stream.
370//
371// This method marks the stream for deletion, and makes the data in the stream
372// inaccessible immediately.
373//
374// To ensure that you have the latest version of the stream before deleting
375// it, you can specify the stream version. Kinesis Video Streams assigns a version
376// to each stream. When you update a stream, Kinesis Video Streams assigns a
377// new version number. To get the latest stream version, use the DescribeStream
378// API.
379//
380// This operation requires permission for the KinesisVideo:DeleteStream action.
381//
382// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
383// with awserr.Error's Code and Message methods to get detailed information about
384// the error.
385//
386// See the AWS API reference guide for Amazon Kinesis Video Streams's
387// API operation DeleteStream for usage and error information.
388//
389// Returned Error Types:
390//   * ClientLimitExceededException
391//   Kinesis Video Streams has throttled the request because you have exceeded
392//   the limit of allowed client calls. Try making the call later.
393//
394//   * InvalidArgumentException
395//   The value for this input parameter is invalid.
396//
397//   * ResourceNotFoundException
398//   Amazon Kinesis Video Streams can't find the stream that you specified.
399//
400//   * NotAuthorizedException
401//   The caller is not authorized to perform this operation.
402//
403//   * VersionMismatchException
404//   The stream version that you specified is not the latest version. To get the
405//   latest version, use the DescribeStream (https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DescribeStream.html)
406//   API.
407//
408//   * ResourceInUseException
409//   The signaling channel is currently not available for this operation.
410//
411// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/DeleteStream
412func (c *KinesisVideo) DeleteStream(input *DeleteStreamInput) (*DeleteStreamOutput, error) {
413	req, out := c.DeleteStreamRequest(input)
414	return out, req.Send()
415}
416
417// DeleteStreamWithContext is the same as DeleteStream with the addition of
418// the ability to pass a context and additional request options.
419//
420// See DeleteStream for details on how to use this API operation.
421//
422// The context must be non-nil and will be used for request cancellation. If
423// the context is nil a panic will occur. In the future the SDK may create
424// sub-contexts for http.Requests. See https://golang.org/pkg/context/
425// for more information on using Contexts.
426func (c *KinesisVideo) DeleteStreamWithContext(ctx aws.Context, input *DeleteStreamInput, opts ...request.Option) (*DeleteStreamOutput, error) {
427	req, out := c.DeleteStreamRequest(input)
428	req.SetContext(ctx)
429	req.ApplyOptions(opts...)
430	return out, req.Send()
431}
432
433const opDescribeSignalingChannel = "DescribeSignalingChannel"
434
435// DescribeSignalingChannelRequest generates a "aws/request.Request" representing the
436// client's request for the DescribeSignalingChannel operation. The "output" return
437// value will be populated with the request's response once the request completes
438// successfully.
439//
440// Use "Send" method on the returned Request to send the API call to the service.
441// the "output" return value is not valid until after Send returns without error.
442//
443// See DescribeSignalingChannel for more information on using the DescribeSignalingChannel
444// API call, and error handling.
445//
446// This method is useful when you want to inject custom logic or configuration
447// into the SDK's request lifecycle. Such as custom headers, or retry logic.
448//
449//
450//    // Example sending a request using the DescribeSignalingChannelRequest method.
451//    req, resp := client.DescribeSignalingChannelRequest(params)
452//
453//    err := req.Send()
454//    if err == nil { // resp is now filled
455//        fmt.Println(resp)
456//    }
457//
458// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/DescribeSignalingChannel
459func (c *KinesisVideo) DescribeSignalingChannelRequest(input *DescribeSignalingChannelInput) (req *request.Request, output *DescribeSignalingChannelOutput) {
460	op := &request.Operation{
461		Name:       opDescribeSignalingChannel,
462		HTTPMethod: "POST",
463		HTTPPath:   "/describeSignalingChannel",
464	}
465
466	if input == nil {
467		input = &DescribeSignalingChannelInput{}
468	}
469
470	output = &DescribeSignalingChannelOutput{}
471	req = c.newRequest(op, input, output)
472	return
473}
474
475// DescribeSignalingChannel API operation for Amazon Kinesis Video Streams.
476//
477// Returns the most current information about the signaling channel. You must
478// specify either the name or the Amazon Resource Name (ARN) of the channel
479// that you want to describe.
480//
481// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
482// with awserr.Error's Code and Message methods to get detailed information about
483// the error.
484//
485// See the AWS API reference guide for Amazon Kinesis Video Streams's
486// API operation DescribeSignalingChannel for usage and error information.
487//
488// Returned Error Types:
489//   * InvalidArgumentException
490//   The value for this input parameter is invalid.
491//
492//   * ClientLimitExceededException
493//   Kinesis Video Streams has throttled the request because you have exceeded
494//   the limit of allowed client calls. Try making the call later.
495//
496//   * ResourceNotFoundException
497//   Amazon Kinesis Video Streams can't find the stream that you specified.
498//
499//   * AccessDeniedException
500//   You do not have required permissions to perform this operation.
501//
502// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/DescribeSignalingChannel
503func (c *KinesisVideo) DescribeSignalingChannel(input *DescribeSignalingChannelInput) (*DescribeSignalingChannelOutput, error) {
504	req, out := c.DescribeSignalingChannelRequest(input)
505	return out, req.Send()
506}
507
508// DescribeSignalingChannelWithContext is the same as DescribeSignalingChannel with the addition of
509// the ability to pass a context and additional request options.
510//
511// See DescribeSignalingChannel for details on how to use this API operation.
512//
513// The context must be non-nil and will be used for request cancellation. If
514// the context is nil a panic will occur. In the future the SDK may create
515// sub-contexts for http.Requests. See https://golang.org/pkg/context/
516// for more information on using Contexts.
517func (c *KinesisVideo) DescribeSignalingChannelWithContext(ctx aws.Context, input *DescribeSignalingChannelInput, opts ...request.Option) (*DescribeSignalingChannelOutput, error) {
518	req, out := c.DescribeSignalingChannelRequest(input)
519	req.SetContext(ctx)
520	req.ApplyOptions(opts...)
521	return out, req.Send()
522}
523
524const opDescribeStream = "DescribeStream"
525
526// DescribeStreamRequest generates a "aws/request.Request" representing the
527// client's request for the DescribeStream operation. The "output" return
528// value will be populated with the request's response once the request completes
529// successfully.
530//
531// Use "Send" method on the returned Request to send the API call to the service.
532// the "output" return value is not valid until after Send returns without error.
533//
534// See DescribeStream for more information on using the DescribeStream
535// API call, and error handling.
536//
537// This method is useful when you want to inject custom logic or configuration
538// into the SDK's request lifecycle. Such as custom headers, or retry logic.
539//
540//
541//    // Example sending a request using the DescribeStreamRequest method.
542//    req, resp := client.DescribeStreamRequest(params)
543//
544//    err := req.Send()
545//    if err == nil { // resp is now filled
546//        fmt.Println(resp)
547//    }
548//
549// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/DescribeStream
550func (c *KinesisVideo) DescribeStreamRequest(input *DescribeStreamInput) (req *request.Request, output *DescribeStreamOutput) {
551	op := &request.Operation{
552		Name:       opDescribeStream,
553		HTTPMethod: "POST",
554		HTTPPath:   "/describeStream",
555	}
556
557	if input == nil {
558		input = &DescribeStreamInput{}
559	}
560
561	output = &DescribeStreamOutput{}
562	req = c.newRequest(op, input, output)
563	return
564}
565
566// DescribeStream API operation for Amazon Kinesis Video Streams.
567//
568// Returns the most current information about the specified stream. You must
569// specify either the StreamName or the StreamARN.
570//
571// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
572// with awserr.Error's Code and Message methods to get detailed information about
573// the error.
574//
575// See the AWS API reference guide for Amazon Kinesis Video Streams's
576// API operation DescribeStream for usage and error information.
577//
578// Returned Error Types:
579//   * InvalidArgumentException
580//   The value for this input parameter is invalid.
581//
582//   * ResourceNotFoundException
583//   Amazon Kinesis Video Streams can't find the stream that you specified.
584//
585//   * ClientLimitExceededException
586//   Kinesis Video Streams has throttled the request because you have exceeded
587//   the limit of allowed client calls. Try making the call later.
588//
589//   * NotAuthorizedException
590//   The caller is not authorized to perform this operation.
591//
592// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/DescribeStream
593func (c *KinesisVideo) DescribeStream(input *DescribeStreamInput) (*DescribeStreamOutput, error) {
594	req, out := c.DescribeStreamRequest(input)
595	return out, req.Send()
596}
597
598// DescribeStreamWithContext is the same as DescribeStream with the addition of
599// the ability to pass a context and additional request options.
600//
601// See DescribeStream for details on how to use this API operation.
602//
603// The context must be non-nil and will be used for request cancellation. If
604// the context is nil a panic will occur. In the future the SDK may create
605// sub-contexts for http.Requests. See https://golang.org/pkg/context/
606// for more information on using Contexts.
607func (c *KinesisVideo) DescribeStreamWithContext(ctx aws.Context, input *DescribeStreamInput, opts ...request.Option) (*DescribeStreamOutput, error) {
608	req, out := c.DescribeStreamRequest(input)
609	req.SetContext(ctx)
610	req.ApplyOptions(opts...)
611	return out, req.Send()
612}
613
614const opGetDataEndpoint = "GetDataEndpoint"
615
616// GetDataEndpointRequest generates a "aws/request.Request" representing the
617// client's request for the GetDataEndpoint operation. The "output" return
618// value will be populated with the request's response once the request completes
619// successfully.
620//
621// Use "Send" method on the returned Request to send the API call to the service.
622// the "output" return value is not valid until after Send returns without error.
623//
624// See GetDataEndpoint for more information on using the GetDataEndpoint
625// API call, and error handling.
626//
627// This method is useful when you want to inject custom logic or configuration
628// into the SDK's request lifecycle. Such as custom headers, or retry logic.
629//
630//
631//    // Example sending a request using the GetDataEndpointRequest method.
632//    req, resp := client.GetDataEndpointRequest(params)
633//
634//    err := req.Send()
635//    if err == nil { // resp is now filled
636//        fmt.Println(resp)
637//    }
638//
639// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/GetDataEndpoint
640func (c *KinesisVideo) GetDataEndpointRequest(input *GetDataEndpointInput) (req *request.Request, output *GetDataEndpointOutput) {
641	op := &request.Operation{
642		Name:       opGetDataEndpoint,
643		HTTPMethod: "POST",
644		HTTPPath:   "/getDataEndpoint",
645	}
646
647	if input == nil {
648		input = &GetDataEndpointInput{}
649	}
650
651	output = &GetDataEndpointOutput{}
652	req = c.newRequest(op, input, output)
653	return
654}
655
656// GetDataEndpoint API operation for Amazon Kinesis Video Streams.
657//
658// Gets an endpoint for a specified stream for either reading or writing. Use
659// this endpoint in your application to read from the specified stream (using
660// the GetMedia or GetMediaForFragmentList operations) or write to it (using
661// the PutMedia operation).
662//
663// The returned endpoint does not have the API name appended. The client needs
664// to add the API name to the returned endpoint.
665//
666// In the request, specify the stream either by StreamName or StreamARN.
667//
668// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
669// with awserr.Error's Code and Message methods to get detailed information about
670// the error.
671//
672// See the AWS API reference guide for Amazon Kinesis Video Streams's
673// API operation GetDataEndpoint for usage and error information.
674//
675// Returned Error Types:
676//   * InvalidArgumentException
677//   The value for this input parameter is invalid.
678//
679//   * ResourceNotFoundException
680//   Amazon Kinesis Video Streams can't find the stream that you specified.
681//
682//   * ClientLimitExceededException
683//   Kinesis Video Streams has throttled the request because you have exceeded
684//   the limit of allowed client calls. Try making the call later.
685//
686//   * NotAuthorizedException
687//   The caller is not authorized to perform this operation.
688//
689// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/GetDataEndpoint
690func (c *KinesisVideo) GetDataEndpoint(input *GetDataEndpointInput) (*GetDataEndpointOutput, error) {
691	req, out := c.GetDataEndpointRequest(input)
692	return out, req.Send()
693}
694
695// GetDataEndpointWithContext is the same as GetDataEndpoint with the addition of
696// the ability to pass a context and additional request options.
697//
698// See GetDataEndpoint for details on how to use this API operation.
699//
700// The context must be non-nil and will be used for request cancellation. If
701// the context is nil a panic will occur. In the future the SDK may create
702// sub-contexts for http.Requests. See https://golang.org/pkg/context/
703// for more information on using Contexts.
704func (c *KinesisVideo) GetDataEndpointWithContext(ctx aws.Context, input *GetDataEndpointInput, opts ...request.Option) (*GetDataEndpointOutput, error) {
705	req, out := c.GetDataEndpointRequest(input)
706	req.SetContext(ctx)
707	req.ApplyOptions(opts...)
708	return out, req.Send()
709}
710
711const opGetSignalingChannelEndpoint = "GetSignalingChannelEndpoint"
712
713// GetSignalingChannelEndpointRequest generates a "aws/request.Request" representing the
714// client's request for the GetSignalingChannelEndpoint operation. The "output" return
715// value will be populated with the request's response once the request completes
716// successfully.
717//
718// Use "Send" method on the returned Request to send the API call to the service.
719// the "output" return value is not valid until after Send returns without error.
720//
721// See GetSignalingChannelEndpoint for more information on using the GetSignalingChannelEndpoint
722// API call, and error handling.
723//
724// This method is useful when you want to inject custom logic or configuration
725// into the SDK's request lifecycle. Such as custom headers, or retry logic.
726//
727//
728//    // Example sending a request using the GetSignalingChannelEndpointRequest method.
729//    req, resp := client.GetSignalingChannelEndpointRequest(params)
730//
731//    err := req.Send()
732//    if err == nil { // resp is now filled
733//        fmt.Println(resp)
734//    }
735//
736// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/GetSignalingChannelEndpoint
737func (c *KinesisVideo) GetSignalingChannelEndpointRequest(input *GetSignalingChannelEndpointInput) (req *request.Request, output *GetSignalingChannelEndpointOutput) {
738	op := &request.Operation{
739		Name:       opGetSignalingChannelEndpoint,
740		HTTPMethod: "POST",
741		HTTPPath:   "/getSignalingChannelEndpoint",
742	}
743
744	if input == nil {
745		input = &GetSignalingChannelEndpointInput{}
746	}
747
748	output = &GetSignalingChannelEndpointOutput{}
749	req = c.newRequest(op, input, output)
750	return
751}
752
753// GetSignalingChannelEndpoint API operation for Amazon Kinesis Video Streams.
754//
755// Provides an endpoint for the specified signaling channel to send and receive
756// messages. This API uses the SingleMasterChannelEndpointConfiguration input
757// parameter, which consists of the Protocols and Role properties.
758//
759// Protocols is used to determine the communication mechanism. For example,
760// if you specify WSS as the protocol, this API produces a secure websocket
761// endpoint. If you specify HTTPS as the protocol, this API generates an HTTPS
762// endpoint.
763//
764// Role determines the messaging permissions. A MASTER role results in this
765// API generating an endpoint that a client can use to communicate with any
766// of the viewers on the channel. A VIEWER role results in this API generating
767// an endpoint that a client can use to communicate only with a MASTER.
768//
769// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
770// with awserr.Error's Code and Message methods to get detailed information about
771// the error.
772//
773// See the AWS API reference guide for Amazon Kinesis Video Streams's
774// API operation GetSignalingChannelEndpoint for usage and error information.
775//
776// Returned Error Types:
777//   * InvalidArgumentException
778//   The value for this input parameter is invalid.
779//
780//   * ClientLimitExceededException
781//   Kinesis Video Streams has throttled the request because you have exceeded
782//   the limit of allowed client calls. Try making the call later.
783//
784//   * ResourceNotFoundException
785//   Amazon Kinesis Video Streams can't find the stream that you specified.
786//
787//   * ResourceInUseException
788//   The signaling channel is currently not available for this operation.
789//
790//   * AccessDeniedException
791//   You do not have required permissions to perform this operation.
792//
793// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/GetSignalingChannelEndpoint
794func (c *KinesisVideo) GetSignalingChannelEndpoint(input *GetSignalingChannelEndpointInput) (*GetSignalingChannelEndpointOutput, error) {
795	req, out := c.GetSignalingChannelEndpointRequest(input)
796	return out, req.Send()
797}
798
799// GetSignalingChannelEndpointWithContext is the same as GetSignalingChannelEndpoint with the addition of
800// the ability to pass a context and additional request options.
801//
802// See GetSignalingChannelEndpoint for details on how to use this API operation.
803//
804// The context must be non-nil and will be used for request cancellation. If
805// the context is nil a panic will occur. In the future the SDK may create
806// sub-contexts for http.Requests. See https://golang.org/pkg/context/
807// for more information on using Contexts.
808func (c *KinesisVideo) GetSignalingChannelEndpointWithContext(ctx aws.Context, input *GetSignalingChannelEndpointInput, opts ...request.Option) (*GetSignalingChannelEndpointOutput, error) {
809	req, out := c.GetSignalingChannelEndpointRequest(input)
810	req.SetContext(ctx)
811	req.ApplyOptions(opts...)
812	return out, req.Send()
813}
814
815const opListSignalingChannels = "ListSignalingChannels"
816
817// ListSignalingChannelsRequest generates a "aws/request.Request" representing the
818// client's request for the ListSignalingChannels operation. The "output" return
819// value will be populated with the request's response once the request completes
820// successfully.
821//
822// Use "Send" method on the returned Request to send the API call to the service.
823// the "output" return value is not valid until after Send returns without error.
824//
825// See ListSignalingChannels for more information on using the ListSignalingChannels
826// API call, and error handling.
827//
828// This method is useful when you want to inject custom logic or configuration
829// into the SDK's request lifecycle. Such as custom headers, or retry logic.
830//
831//
832//    // Example sending a request using the ListSignalingChannelsRequest method.
833//    req, resp := client.ListSignalingChannelsRequest(params)
834//
835//    err := req.Send()
836//    if err == nil { // resp is now filled
837//        fmt.Println(resp)
838//    }
839//
840// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/ListSignalingChannels
841func (c *KinesisVideo) ListSignalingChannelsRequest(input *ListSignalingChannelsInput) (req *request.Request, output *ListSignalingChannelsOutput) {
842	op := &request.Operation{
843		Name:       opListSignalingChannels,
844		HTTPMethod: "POST",
845		HTTPPath:   "/listSignalingChannels",
846		Paginator: &request.Paginator{
847			InputTokens:     []string{"NextToken"},
848			OutputTokens:    []string{"NextToken"},
849			LimitToken:      "MaxResults",
850			TruncationToken: "",
851		},
852	}
853
854	if input == nil {
855		input = &ListSignalingChannelsInput{}
856	}
857
858	output = &ListSignalingChannelsOutput{}
859	req = c.newRequest(op, input, output)
860	return
861}
862
863// ListSignalingChannels API operation for Amazon Kinesis Video Streams.
864//
865// Returns an array of ChannelInfo objects. Each object describes a signaling
866// channel. To retrieve only those channels that satisfy a specific condition,
867// you can specify a ChannelNameCondition.
868//
869// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
870// with awserr.Error's Code and Message methods to get detailed information about
871// the error.
872//
873// See the AWS API reference guide for Amazon Kinesis Video Streams's
874// API operation ListSignalingChannels for usage and error information.
875//
876// Returned Error Types:
877//   * InvalidArgumentException
878//   The value for this input parameter is invalid.
879//
880//   * ClientLimitExceededException
881//   Kinesis Video Streams has throttled the request because you have exceeded
882//   the limit of allowed client calls. Try making the call later.
883//
884//   * AccessDeniedException
885//   You do not have required permissions to perform this operation.
886//
887// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/ListSignalingChannels
888func (c *KinesisVideo) ListSignalingChannels(input *ListSignalingChannelsInput) (*ListSignalingChannelsOutput, error) {
889	req, out := c.ListSignalingChannelsRequest(input)
890	return out, req.Send()
891}
892
893// ListSignalingChannelsWithContext is the same as ListSignalingChannels with the addition of
894// the ability to pass a context and additional request options.
895//
896// See ListSignalingChannels for details on how to use this API operation.
897//
898// The context must be non-nil and will be used for request cancellation. If
899// the context is nil a panic will occur. In the future the SDK may create
900// sub-contexts for http.Requests. See https://golang.org/pkg/context/
901// for more information on using Contexts.
902func (c *KinesisVideo) ListSignalingChannelsWithContext(ctx aws.Context, input *ListSignalingChannelsInput, opts ...request.Option) (*ListSignalingChannelsOutput, error) {
903	req, out := c.ListSignalingChannelsRequest(input)
904	req.SetContext(ctx)
905	req.ApplyOptions(opts...)
906	return out, req.Send()
907}
908
909// ListSignalingChannelsPages iterates over the pages of a ListSignalingChannels operation,
910// calling the "fn" function with the response data for each page. To stop
911// iterating, return false from the fn function.
912//
913// See ListSignalingChannels method for more information on how to use this operation.
914//
915// Note: This operation can generate multiple requests to a service.
916//
917//    // Example iterating over at most 3 pages of a ListSignalingChannels operation.
918//    pageNum := 0
919//    err := client.ListSignalingChannelsPages(params,
920//        func(page *kinesisvideo.ListSignalingChannelsOutput, lastPage bool) bool {
921//            pageNum++
922//            fmt.Println(page)
923//            return pageNum <= 3
924//        })
925//
926func (c *KinesisVideo) ListSignalingChannelsPages(input *ListSignalingChannelsInput, fn func(*ListSignalingChannelsOutput, bool) bool) error {
927	return c.ListSignalingChannelsPagesWithContext(aws.BackgroundContext(), input, fn)
928}
929
930// ListSignalingChannelsPagesWithContext same as ListSignalingChannelsPages except
931// it takes a Context and allows setting request options on the pages.
932//
933// The context must be non-nil and will be used for request cancellation. If
934// the context is nil a panic will occur. In the future the SDK may create
935// sub-contexts for http.Requests. See https://golang.org/pkg/context/
936// for more information on using Contexts.
937func (c *KinesisVideo) ListSignalingChannelsPagesWithContext(ctx aws.Context, input *ListSignalingChannelsInput, fn func(*ListSignalingChannelsOutput, bool) bool, opts ...request.Option) error {
938	p := request.Pagination{
939		NewRequest: func() (*request.Request, error) {
940			var inCpy *ListSignalingChannelsInput
941			if input != nil {
942				tmp := *input
943				inCpy = &tmp
944			}
945			req, _ := c.ListSignalingChannelsRequest(inCpy)
946			req.SetContext(ctx)
947			req.ApplyOptions(opts...)
948			return req, nil
949		},
950	}
951
952	for p.Next() {
953		if !fn(p.Page().(*ListSignalingChannelsOutput), !p.HasNextPage()) {
954			break
955		}
956	}
957
958	return p.Err()
959}
960
961const opListStreams = "ListStreams"
962
963// ListStreamsRequest generates a "aws/request.Request" representing the
964// client's request for the ListStreams operation. The "output" return
965// value will be populated with the request's response once the request completes
966// successfully.
967//
968// Use "Send" method on the returned Request to send the API call to the service.
969// the "output" return value is not valid until after Send returns without error.
970//
971// See ListStreams for more information on using the ListStreams
972// API call, and error handling.
973//
974// This method is useful when you want to inject custom logic or configuration
975// into the SDK's request lifecycle. Such as custom headers, or retry logic.
976//
977//
978//    // Example sending a request using the ListStreamsRequest method.
979//    req, resp := client.ListStreamsRequest(params)
980//
981//    err := req.Send()
982//    if err == nil { // resp is now filled
983//        fmt.Println(resp)
984//    }
985//
986// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/ListStreams
987func (c *KinesisVideo) ListStreamsRequest(input *ListStreamsInput) (req *request.Request, output *ListStreamsOutput) {
988	op := &request.Operation{
989		Name:       opListStreams,
990		HTTPMethod: "POST",
991		HTTPPath:   "/listStreams",
992		Paginator: &request.Paginator{
993			InputTokens:     []string{"NextToken"},
994			OutputTokens:    []string{"NextToken"},
995			LimitToken:      "MaxResults",
996			TruncationToken: "",
997		},
998	}
999
1000	if input == nil {
1001		input = &ListStreamsInput{}
1002	}
1003
1004	output = &ListStreamsOutput{}
1005	req = c.newRequest(op, input, output)
1006	return
1007}
1008
1009// ListStreams API operation for Amazon Kinesis Video Streams.
1010//
1011// Returns an array of StreamInfo objects. Each object describes a stream. To
1012// retrieve only streams that satisfy a specific condition, you can specify
1013// a StreamNameCondition.
1014//
1015// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1016// with awserr.Error's Code and Message methods to get detailed information about
1017// the error.
1018//
1019// See the AWS API reference guide for Amazon Kinesis Video Streams's
1020// API operation ListStreams for usage and error information.
1021//
1022// Returned Error Types:
1023//   * ClientLimitExceededException
1024//   Kinesis Video Streams has throttled the request because you have exceeded
1025//   the limit of allowed client calls. Try making the call later.
1026//
1027//   * InvalidArgumentException
1028//   The value for this input parameter is invalid.
1029//
1030// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/ListStreams
1031func (c *KinesisVideo) ListStreams(input *ListStreamsInput) (*ListStreamsOutput, error) {
1032	req, out := c.ListStreamsRequest(input)
1033	return out, req.Send()
1034}
1035
1036// ListStreamsWithContext is the same as ListStreams with the addition of
1037// the ability to pass a context and additional request options.
1038//
1039// See ListStreams for details on how to use this API operation.
1040//
1041// The context must be non-nil and will be used for request cancellation. If
1042// the context is nil a panic will occur. In the future the SDK may create
1043// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1044// for more information on using Contexts.
1045func (c *KinesisVideo) ListStreamsWithContext(ctx aws.Context, input *ListStreamsInput, opts ...request.Option) (*ListStreamsOutput, error) {
1046	req, out := c.ListStreamsRequest(input)
1047	req.SetContext(ctx)
1048	req.ApplyOptions(opts...)
1049	return out, req.Send()
1050}
1051
1052// ListStreamsPages iterates over the pages of a ListStreams operation,
1053// calling the "fn" function with the response data for each page. To stop
1054// iterating, return false from the fn function.
1055//
1056// See ListStreams method for more information on how to use this operation.
1057//
1058// Note: This operation can generate multiple requests to a service.
1059//
1060//    // Example iterating over at most 3 pages of a ListStreams operation.
1061//    pageNum := 0
1062//    err := client.ListStreamsPages(params,
1063//        func(page *kinesisvideo.ListStreamsOutput, lastPage bool) bool {
1064//            pageNum++
1065//            fmt.Println(page)
1066//            return pageNum <= 3
1067//        })
1068//
1069func (c *KinesisVideo) ListStreamsPages(input *ListStreamsInput, fn func(*ListStreamsOutput, bool) bool) error {
1070	return c.ListStreamsPagesWithContext(aws.BackgroundContext(), input, fn)
1071}
1072
1073// ListStreamsPagesWithContext same as ListStreamsPages except
1074// it takes a Context and allows setting request options on the pages.
1075//
1076// The context must be non-nil and will be used for request cancellation. If
1077// the context is nil a panic will occur. In the future the SDK may create
1078// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1079// for more information on using Contexts.
1080func (c *KinesisVideo) ListStreamsPagesWithContext(ctx aws.Context, input *ListStreamsInput, fn func(*ListStreamsOutput, bool) bool, opts ...request.Option) error {
1081	p := request.Pagination{
1082		NewRequest: func() (*request.Request, error) {
1083			var inCpy *ListStreamsInput
1084			if input != nil {
1085				tmp := *input
1086				inCpy = &tmp
1087			}
1088			req, _ := c.ListStreamsRequest(inCpy)
1089			req.SetContext(ctx)
1090			req.ApplyOptions(opts...)
1091			return req, nil
1092		},
1093	}
1094
1095	for p.Next() {
1096		if !fn(p.Page().(*ListStreamsOutput), !p.HasNextPage()) {
1097			break
1098		}
1099	}
1100
1101	return p.Err()
1102}
1103
1104const opListTagsForResource = "ListTagsForResource"
1105
1106// ListTagsForResourceRequest generates a "aws/request.Request" representing the
1107// client's request for the ListTagsForResource operation. The "output" return
1108// value will be populated with the request's response once the request completes
1109// successfully.
1110//
1111// Use "Send" method on the returned Request to send the API call to the service.
1112// the "output" return value is not valid until after Send returns without error.
1113//
1114// See ListTagsForResource for more information on using the ListTagsForResource
1115// API call, and error handling.
1116//
1117// This method is useful when you want to inject custom logic or configuration
1118// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1119//
1120//
1121//    // Example sending a request using the ListTagsForResourceRequest method.
1122//    req, resp := client.ListTagsForResourceRequest(params)
1123//
1124//    err := req.Send()
1125//    if err == nil { // resp is now filled
1126//        fmt.Println(resp)
1127//    }
1128//
1129// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/ListTagsForResource
1130func (c *KinesisVideo) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
1131	op := &request.Operation{
1132		Name:       opListTagsForResource,
1133		HTTPMethod: "POST",
1134		HTTPPath:   "/ListTagsForResource",
1135	}
1136
1137	if input == nil {
1138		input = &ListTagsForResourceInput{}
1139	}
1140
1141	output = &ListTagsForResourceOutput{}
1142	req = c.newRequest(op, input, output)
1143	return
1144}
1145
1146// ListTagsForResource API operation for Amazon Kinesis Video Streams.
1147//
1148// Returns a list of tags associated with the specified signaling channel.
1149//
1150// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1151// with awserr.Error's Code and Message methods to get detailed information about
1152// the error.
1153//
1154// See the AWS API reference guide for Amazon Kinesis Video Streams's
1155// API operation ListTagsForResource for usage and error information.
1156//
1157// Returned Error Types:
1158//   * InvalidArgumentException
1159//   The value for this input parameter is invalid.
1160//
1161//   * ClientLimitExceededException
1162//   Kinesis Video Streams has throttled the request because you have exceeded
1163//   the limit of allowed client calls. Try making the call later.
1164//
1165//   * ResourceNotFoundException
1166//   Amazon Kinesis Video Streams can't find the stream that you specified.
1167//
1168//   * AccessDeniedException
1169//   You do not have required permissions to perform this operation.
1170//
1171// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/ListTagsForResource
1172func (c *KinesisVideo) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
1173	req, out := c.ListTagsForResourceRequest(input)
1174	return out, req.Send()
1175}
1176
1177// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
1178// the ability to pass a context and additional request options.
1179//
1180// See ListTagsForResource for details on how to use this API operation.
1181//
1182// The context must be non-nil and will be used for request cancellation. If
1183// the context is nil a panic will occur. In the future the SDK may create
1184// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1185// for more information on using Contexts.
1186func (c *KinesisVideo) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
1187	req, out := c.ListTagsForResourceRequest(input)
1188	req.SetContext(ctx)
1189	req.ApplyOptions(opts...)
1190	return out, req.Send()
1191}
1192
1193const opListTagsForStream = "ListTagsForStream"
1194
1195// ListTagsForStreamRequest generates a "aws/request.Request" representing the
1196// client's request for the ListTagsForStream operation. The "output" return
1197// value will be populated with the request's response once the request completes
1198// successfully.
1199//
1200// Use "Send" method on the returned Request to send the API call to the service.
1201// the "output" return value is not valid until after Send returns without error.
1202//
1203// See ListTagsForStream for more information on using the ListTagsForStream
1204// API call, and error handling.
1205//
1206// This method is useful when you want to inject custom logic or configuration
1207// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1208//
1209//
1210//    // Example sending a request using the ListTagsForStreamRequest method.
1211//    req, resp := client.ListTagsForStreamRequest(params)
1212//
1213//    err := req.Send()
1214//    if err == nil { // resp is now filled
1215//        fmt.Println(resp)
1216//    }
1217//
1218// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/ListTagsForStream
1219func (c *KinesisVideo) ListTagsForStreamRequest(input *ListTagsForStreamInput) (req *request.Request, output *ListTagsForStreamOutput) {
1220	op := &request.Operation{
1221		Name:       opListTagsForStream,
1222		HTTPMethod: "POST",
1223		HTTPPath:   "/listTagsForStream",
1224	}
1225
1226	if input == nil {
1227		input = &ListTagsForStreamInput{}
1228	}
1229
1230	output = &ListTagsForStreamOutput{}
1231	req = c.newRequest(op, input, output)
1232	return
1233}
1234
1235// ListTagsForStream API operation for Amazon Kinesis Video Streams.
1236//
1237// Returns a list of tags associated with the specified stream.
1238//
1239// In the request, you must specify either the StreamName or the StreamARN.
1240//
1241// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1242// with awserr.Error's Code and Message methods to get detailed information about
1243// the error.
1244//
1245// See the AWS API reference guide for Amazon Kinesis Video Streams's
1246// API operation ListTagsForStream for usage and error information.
1247//
1248// Returned Error Types:
1249//   * ClientLimitExceededException
1250//   Kinesis Video Streams has throttled the request because you have exceeded
1251//   the limit of allowed client calls. Try making the call later.
1252//
1253//   * InvalidArgumentException
1254//   The value for this input parameter is invalid.
1255//
1256//   * ResourceNotFoundException
1257//   Amazon Kinesis Video Streams can't find the stream that you specified.
1258//
1259//   * NotAuthorizedException
1260//   The caller is not authorized to perform this operation.
1261//
1262//   * InvalidResourceFormatException
1263//   The format of the StreamARN is invalid.
1264//
1265// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/ListTagsForStream
1266func (c *KinesisVideo) ListTagsForStream(input *ListTagsForStreamInput) (*ListTagsForStreamOutput, error) {
1267	req, out := c.ListTagsForStreamRequest(input)
1268	return out, req.Send()
1269}
1270
1271// ListTagsForStreamWithContext is the same as ListTagsForStream with the addition of
1272// the ability to pass a context and additional request options.
1273//
1274// See ListTagsForStream for details on how to use this API operation.
1275//
1276// The context must be non-nil and will be used for request cancellation. If
1277// the context is nil a panic will occur. In the future the SDK may create
1278// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1279// for more information on using Contexts.
1280func (c *KinesisVideo) ListTagsForStreamWithContext(ctx aws.Context, input *ListTagsForStreamInput, opts ...request.Option) (*ListTagsForStreamOutput, error) {
1281	req, out := c.ListTagsForStreamRequest(input)
1282	req.SetContext(ctx)
1283	req.ApplyOptions(opts...)
1284	return out, req.Send()
1285}
1286
1287const opTagResource = "TagResource"
1288
1289// TagResourceRequest generates a "aws/request.Request" representing the
1290// client's request for the TagResource operation. The "output" return
1291// value will be populated with the request's response once the request completes
1292// successfully.
1293//
1294// Use "Send" method on the returned Request to send the API call to the service.
1295// the "output" return value is not valid until after Send returns without error.
1296//
1297// See TagResource for more information on using the TagResource
1298// API call, and error handling.
1299//
1300// This method is useful when you want to inject custom logic or configuration
1301// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1302//
1303//
1304//    // Example sending a request using the TagResourceRequest method.
1305//    req, resp := client.TagResourceRequest(params)
1306//
1307//    err := req.Send()
1308//    if err == nil { // resp is now filled
1309//        fmt.Println(resp)
1310//    }
1311//
1312// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/TagResource
1313func (c *KinesisVideo) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
1314	op := &request.Operation{
1315		Name:       opTagResource,
1316		HTTPMethod: "POST",
1317		HTTPPath:   "/TagResource",
1318	}
1319
1320	if input == nil {
1321		input = &TagResourceInput{}
1322	}
1323
1324	output = &TagResourceOutput{}
1325	req = c.newRequest(op, input, output)
1326	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1327	return
1328}
1329
1330// TagResource API operation for Amazon Kinesis Video Streams.
1331//
1332// Adds one or more tags to a signaling channel. A tag is a key-value pair (the
1333// value is optional) that you can define and assign to AWS resources. If you
1334// specify a tag that already exists, the tag value is replaced with the value
1335// that you specify in the request. For more information, see Using Cost Allocation
1336// Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)
1337// in the AWS Billing and Cost Management User Guide.
1338//
1339// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1340// with awserr.Error's Code and Message methods to get detailed information about
1341// the error.
1342//
1343// See the AWS API reference guide for Amazon Kinesis Video Streams's
1344// API operation TagResource for usage and error information.
1345//
1346// Returned Error Types:
1347//   * InvalidArgumentException
1348//   The value for this input parameter is invalid.
1349//
1350//   * ClientLimitExceededException
1351//   Kinesis Video Streams has throttled the request because you have exceeded
1352//   the limit of allowed client calls. Try making the call later.
1353//
1354//   * ResourceNotFoundException
1355//   Amazon Kinesis Video Streams can't find the stream that you specified.
1356//
1357//   * AccessDeniedException
1358//   You do not have required permissions to perform this operation.
1359//
1360//   * TagsPerResourceExceededLimitException
1361//   You have exceeded the limit of tags that you can associate with the resource.
1362//   Kinesis video streams support up to 50 tags.
1363//
1364// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/TagResource
1365func (c *KinesisVideo) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
1366	req, out := c.TagResourceRequest(input)
1367	return out, req.Send()
1368}
1369
1370// TagResourceWithContext is the same as TagResource with the addition of
1371// the ability to pass a context and additional request options.
1372//
1373// See TagResource for details on how to use this API operation.
1374//
1375// The context must be non-nil and will be used for request cancellation. If
1376// the context is nil a panic will occur. In the future the SDK may create
1377// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1378// for more information on using Contexts.
1379func (c *KinesisVideo) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
1380	req, out := c.TagResourceRequest(input)
1381	req.SetContext(ctx)
1382	req.ApplyOptions(opts...)
1383	return out, req.Send()
1384}
1385
1386const opTagStream = "TagStream"
1387
1388// TagStreamRequest generates a "aws/request.Request" representing the
1389// client's request for the TagStream operation. The "output" return
1390// value will be populated with the request's response once the request completes
1391// successfully.
1392//
1393// Use "Send" method on the returned Request to send the API call to the service.
1394// the "output" return value is not valid until after Send returns without error.
1395//
1396// See TagStream for more information on using the TagStream
1397// API call, and error handling.
1398//
1399// This method is useful when you want to inject custom logic or configuration
1400// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1401//
1402//
1403//    // Example sending a request using the TagStreamRequest method.
1404//    req, resp := client.TagStreamRequest(params)
1405//
1406//    err := req.Send()
1407//    if err == nil { // resp is now filled
1408//        fmt.Println(resp)
1409//    }
1410//
1411// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/TagStream
1412func (c *KinesisVideo) TagStreamRequest(input *TagStreamInput) (req *request.Request, output *TagStreamOutput) {
1413	op := &request.Operation{
1414		Name:       opTagStream,
1415		HTTPMethod: "POST",
1416		HTTPPath:   "/tagStream",
1417	}
1418
1419	if input == nil {
1420		input = &TagStreamInput{}
1421	}
1422
1423	output = &TagStreamOutput{}
1424	req = c.newRequest(op, input, output)
1425	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1426	return
1427}
1428
1429// TagStream API operation for Amazon Kinesis Video Streams.
1430//
1431// Adds one or more tags to a stream. A tag is a key-value pair (the value is
1432// optional) that you can define and assign to AWS resources. If you specify
1433// a tag that already exists, the tag value is replaced with the value that
1434// you specify in the request. For more information, see Using Cost Allocation
1435// Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)
1436// in the AWS Billing and Cost Management User Guide.
1437//
1438// You must provide either the StreamName or the StreamARN.
1439//
1440// This operation requires permission for the KinesisVideo:TagStream action.
1441//
1442// Kinesis video streams support up to 50 tags.
1443//
1444// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1445// with awserr.Error's Code and Message methods to get detailed information about
1446// the error.
1447//
1448// See the AWS API reference guide for Amazon Kinesis Video Streams's
1449// API operation TagStream for usage and error information.
1450//
1451// Returned Error Types:
1452//   * ClientLimitExceededException
1453//   Kinesis Video Streams has throttled the request because you have exceeded
1454//   the limit of allowed client calls. Try making the call later.
1455//
1456//   * InvalidArgumentException
1457//   The value for this input parameter is invalid.
1458//
1459//   * ResourceNotFoundException
1460//   Amazon Kinesis Video Streams can't find the stream that you specified.
1461//
1462//   * NotAuthorizedException
1463//   The caller is not authorized to perform this operation.
1464//
1465//   * InvalidResourceFormatException
1466//   The format of the StreamARN is invalid.
1467//
1468//   * TagsPerResourceExceededLimitException
1469//   You have exceeded the limit of tags that you can associate with the resource.
1470//   Kinesis video streams support up to 50 tags.
1471//
1472// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/TagStream
1473func (c *KinesisVideo) TagStream(input *TagStreamInput) (*TagStreamOutput, error) {
1474	req, out := c.TagStreamRequest(input)
1475	return out, req.Send()
1476}
1477
1478// TagStreamWithContext is the same as TagStream with the addition of
1479// the ability to pass a context and additional request options.
1480//
1481// See TagStream for details on how to use this API operation.
1482//
1483// The context must be non-nil and will be used for request cancellation. If
1484// the context is nil a panic will occur. In the future the SDK may create
1485// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1486// for more information on using Contexts.
1487func (c *KinesisVideo) TagStreamWithContext(ctx aws.Context, input *TagStreamInput, opts ...request.Option) (*TagStreamOutput, error) {
1488	req, out := c.TagStreamRequest(input)
1489	req.SetContext(ctx)
1490	req.ApplyOptions(opts...)
1491	return out, req.Send()
1492}
1493
1494const opUntagResource = "UntagResource"
1495
1496// UntagResourceRequest generates a "aws/request.Request" representing the
1497// client's request for the UntagResource operation. The "output" return
1498// value will be populated with the request's response once the request completes
1499// successfully.
1500//
1501// Use "Send" method on the returned Request to send the API call to the service.
1502// the "output" return value is not valid until after Send returns without error.
1503//
1504// See UntagResource for more information on using the UntagResource
1505// API call, and error handling.
1506//
1507// This method is useful when you want to inject custom logic or configuration
1508// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1509//
1510//
1511//    // Example sending a request using the UntagResourceRequest method.
1512//    req, resp := client.UntagResourceRequest(params)
1513//
1514//    err := req.Send()
1515//    if err == nil { // resp is now filled
1516//        fmt.Println(resp)
1517//    }
1518//
1519// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/UntagResource
1520func (c *KinesisVideo) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
1521	op := &request.Operation{
1522		Name:       opUntagResource,
1523		HTTPMethod: "POST",
1524		HTTPPath:   "/UntagResource",
1525	}
1526
1527	if input == nil {
1528		input = &UntagResourceInput{}
1529	}
1530
1531	output = &UntagResourceOutput{}
1532	req = c.newRequest(op, input, output)
1533	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1534	return
1535}
1536
1537// UntagResource API operation for Amazon Kinesis Video Streams.
1538//
1539// Removes one or more tags from a signaling channel. In the request, specify
1540// only a tag key or keys; don't specify the value. If you specify a tag key
1541// that does not exist, it's ignored.
1542//
1543// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1544// with awserr.Error's Code and Message methods to get detailed information about
1545// the error.
1546//
1547// See the AWS API reference guide for Amazon Kinesis Video Streams's
1548// API operation UntagResource for usage and error information.
1549//
1550// Returned Error Types:
1551//   * InvalidArgumentException
1552//   The value for this input parameter is invalid.
1553//
1554//   * ClientLimitExceededException
1555//   Kinesis Video Streams has throttled the request because you have exceeded
1556//   the limit of allowed client calls. Try making the call later.
1557//
1558//   * ResourceNotFoundException
1559//   Amazon Kinesis Video Streams can't find the stream that you specified.
1560//
1561//   * AccessDeniedException
1562//   You do not have required permissions to perform this operation.
1563//
1564// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/UntagResource
1565func (c *KinesisVideo) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
1566	req, out := c.UntagResourceRequest(input)
1567	return out, req.Send()
1568}
1569
1570// UntagResourceWithContext is the same as UntagResource with the addition of
1571// the ability to pass a context and additional request options.
1572//
1573// See UntagResource for details on how to use this API operation.
1574//
1575// The context must be non-nil and will be used for request cancellation. If
1576// the context is nil a panic will occur. In the future the SDK may create
1577// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1578// for more information on using Contexts.
1579func (c *KinesisVideo) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
1580	req, out := c.UntagResourceRequest(input)
1581	req.SetContext(ctx)
1582	req.ApplyOptions(opts...)
1583	return out, req.Send()
1584}
1585
1586const opUntagStream = "UntagStream"
1587
1588// UntagStreamRequest generates a "aws/request.Request" representing the
1589// client's request for the UntagStream operation. The "output" return
1590// value will be populated with the request's response once the request completes
1591// successfully.
1592//
1593// Use "Send" method on the returned Request to send the API call to the service.
1594// the "output" return value is not valid until after Send returns without error.
1595//
1596// See UntagStream for more information on using the UntagStream
1597// API call, and error handling.
1598//
1599// This method is useful when you want to inject custom logic or configuration
1600// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1601//
1602//
1603//    // Example sending a request using the UntagStreamRequest method.
1604//    req, resp := client.UntagStreamRequest(params)
1605//
1606//    err := req.Send()
1607//    if err == nil { // resp is now filled
1608//        fmt.Println(resp)
1609//    }
1610//
1611// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/UntagStream
1612func (c *KinesisVideo) UntagStreamRequest(input *UntagStreamInput) (req *request.Request, output *UntagStreamOutput) {
1613	op := &request.Operation{
1614		Name:       opUntagStream,
1615		HTTPMethod: "POST",
1616		HTTPPath:   "/untagStream",
1617	}
1618
1619	if input == nil {
1620		input = &UntagStreamInput{}
1621	}
1622
1623	output = &UntagStreamOutput{}
1624	req = c.newRequest(op, input, output)
1625	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1626	return
1627}
1628
1629// UntagStream API operation for Amazon Kinesis Video Streams.
1630//
1631// Removes one or more tags from a stream. In the request, specify only a tag
1632// key or keys; don't specify the value. If you specify a tag key that does
1633// not exist, it's ignored.
1634//
1635// In the request, you must provide the StreamName or StreamARN.
1636//
1637// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1638// with awserr.Error's Code and Message methods to get detailed information about
1639// the error.
1640//
1641// See the AWS API reference guide for Amazon Kinesis Video Streams's
1642// API operation UntagStream for usage and error information.
1643//
1644// Returned Error Types:
1645//   * ClientLimitExceededException
1646//   Kinesis Video Streams has throttled the request because you have exceeded
1647//   the limit of allowed client calls. Try making the call later.
1648//
1649//   * InvalidArgumentException
1650//   The value for this input parameter is invalid.
1651//
1652//   * ResourceNotFoundException
1653//   Amazon Kinesis Video Streams can't find the stream that you specified.
1654//
1655//   * NotAuthorizedException
1656//   The caller is not authorized to perform this operation.
1657//
1658//   * InvalidResourceFormatException
1659//   The format of the StreamARN is invalid.
1660//
1661// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/UntagStream
1662func (c *KinesisVideo) UntagStream(input *UntagStreamInput) (*UntagStreamOutput, error) {
1663	req, out := c.UntagStreamRequest(input)
1664	return out, req.Send()
1665}
1666
1667// UntagStreamWithContext is the same as UntagStream with the addition of
1668// the ability to pass a context and additional request options.
1669//
1670// See UntagStream for details on how to use this API operation.
1671//
1672// The context must be non-nil and will be used for request cancellation. If
1673// the context is nil a panic will occur. In the future the SDK may create
1674// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1675// for more information on using Contexts.
1676func (c *KinesisVideo) UntagStreamWithContext(ctx aws.Context, input *UntagStreamInput, opts ...request.Option) (*UntagStreamOutput, error) {
1677	req, out := c.UntagStreamRequest(input)
1678	req.SetContext(ctx)
1679	req.ApplyOptions(opts...)
1680	return out, req.Send()
1681}
1682
1683const opUpdateDataRetention = "UpdateDataRetention"
1684
1685// UpdateDataRetentionRequest generates a "aws/request.Request" representing the
1686// client's request for the UpdateDataRetention operation. The "output" return
1687// value will be populated with the request's response once the request completes
1688// successfully.
1689//
1690// Use "Send" method on the returned Request to send the API call to the service.
1691// the "output" return value is not valid until after Send returns without error.
1692//
1693// See UpdateDataRetention for more information on using the UpdateDataRetention
1694// API call, and error handling.
1695//
1696// This method is useful when you want to inject custom logic or configuration
1697// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1698//
1699//
1700//    // Example sending a request using the UpdateDataRetentionRequest method.
1701//    req, resp := client.UpdateDataRetentionRequest(params)
1702//
1703//    err := req.Send()
1704//    if err == nil { // resp is now filled
1705//        fmt.Println(resp)
1706//    }
1707//
1708// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/UpdateDataRetention
1709func (c *KinesisVideo) UpdateDataRetentionRequest(input *UpdateDataRetentionInput) (req *request.Request, output *UpdateDataRetentionOutput) {
1710	op := &request.Operation{
1711		Name:       opUpdateDataRetention,
1712		HTTPMethod: "POST",
1713		HTTPPath:   "/updateDataRetention",
1714	}
1715
1716	if input == nil {
1717		input = &UpdateDataRetentionInput{}
1718	}
1719
1720	output = &UpdateDataRetentionOutput{}
1721	req = c.newRequest(op, input, output)
1722	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1723	return
1724}
1725
1726// UpdateDataRetention API operation for Amazon Kinesis Video Streams.
1727//
1728// Increases or decreases the stream's data retention period by the value that
1729// you specify. To indicate whether you want to increase or decrease the data
1730// retention period, specify the Operation parameter in the request body. In
1731// the request, you must specify either the StreamName or the StreamARN.
1732//
1733// The retention period that you specify replaces the current value.
1734//
1735// This operation requires permission for the KinesisVideo:UpdateDataRetention
1736// action.
1737//
1738// Changing the data retention period affects the data in the stream as follows:
1739//
1740//    * If the data retention period is increased, existing data is retained
1741//    for the new retention period. For example, if the data retention period
1742//    is increased from one hour to seven hours, all existing data is retained
1743//    for seven hours.
1744//
1745//    * If the data retention period is decreased, existing data is retained
1746//    for the new retention period. For example, if the data retention period
1747//    is decreased from seven hours to one hour, all existing data is retained
1748//    for one hour, and any data older than one hour is deleted immediately.
1749//
1750// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1751// with awserr.Error's Code and Message methods to get detailed information about
1752// the error.
1753//
1754// See the AWS API reference guide for Amazon Kinesis Video Streams's
1755// API operation UpdateDataRetention for usage and error information.
1756//
1757// Returned Error Types:
1758//   * ClientLimitExceededException
1759//   Kinesis Video Streams has throttled the request because you have exceeded
1760//   the limit of allowed client calls. Try making the call later.
1761//
1762//   * InvalidArgumentException
1763//   The value for this input parameter is invalid.
1764//
1765//   * ResourceNotFoundException
1766//   Amazon Kinesis Video Streams can't find the stream that you specified.
1767//
1768//   * ResourceInUseException
1769//   The signaling channel is currently not available for this operation.
1770//
1771//   * NotAuthorizedException
1772//   The caller is not authorized to perform this operation.
1773//
1774//   * VersionMismatchException
1775//   The stream version that you specified is not the latest version. To get the
1776//   latest version, use the DescribeStream (https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DescribeStream.html)
1777//   API.
1778//
1779// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/UpdateDataRetention
1780func (c *KinesisVideo) UpdateDataRetention(input *UpdateDataRetentionInput) (*UpdateDataRetentionOutput, error) {
1781	req, out := c.UpdateDataRetentionRequest(input)
1782	return out, req.Send()
1783}
1784
1785// UpdateDataRetentionWithContext is the same as UpdateDataRetention with the addition of
1786// the ability to pass a context and additional request options.
1787//
1788// See UpdateDataRetention for details on how to use this API operation.
1789//
1790// The context must be non-nil and will be used for request cancellation. If
1791// the context is nil a panic will occur. In the future the SDK may create
1792// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1793// for more information on using Contexts.
1794func (c *KinesisVideo) UpdateDataRetentionWithContext(ctx aws.Context, input *UpdateDataRetentionInput, opts ...request.Option) (*UpdateDataRetentionOutput, error) {
1795	req, out := c.UpdateDataRetentionRequest(input)
1796	req.SetContext(ctx)
1797	req.ApplyOptions(opts...)
1798	return out, req.Send()
1799}
1800
1801const opUpdateSignalingChannel = "UpdateSignalingChannel"
1802
1803// UpdateSignalingChannelRequest generates a "aws/request.Request" representing the
1804// client's request for the UpdateSignalingChannel operation. The "output" return
1805// value will be populated with the request's response once the request completes
1806// successfully.
1807//
1808// Use "Send" method on the returned Request to send the API call to the service.
1809// the "output" return value is not valid until after Send returns without error.
1810//
1811// See UpdateSignalingChannel for more information on using the UpdateSignalingChannel
1812// API call, and error handling.
1813//
1814// This method is useful when you want to inject custom logic or configuration
1815// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1816//
1817//
1818//    // Example sending a request using the UpdateSignalingChannelRequest method.
1819//    req, resp := client.UpdateSignalingChannelRequest(params)
1820//
1821//    err := req.Send()
1822//    if err == nil { // resp is now filled
1823//        fmt.Println(resp)
1824//    }
1825//
1826// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/UpdateSignalingChannel
1827func (c *KinesisVideo) UpdateSignalingChannelRequest(input *UpdateSignalingChannelInput) (req *request.Request, output *UpdateSignalingChannelOutput) {
1828	op := &request.Operation{
1829		Name:       opUpdateSignalingChannel,
1830		HTTPMethod: "POST",
1831		HTTPPath:   "/updateSignalingChannel",
1832	}
1833
1834	if input == nil {
1835		input = &UpdateSignalingChannelInput{}
1836	}
1837
1838	output = &UpdateSignalingChannelOutput{}
1839	req = c.newRequest(op, input, output)
1840	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1841	return
1842}
1843
1844// UpdateSignalingChannel API operation for Amazon Kinesis Video Streams.
1845//
1846// Updates the existing signaling channel. This is an asynchronous operation
1847// and takes time to complete.
1848//
1849// If the MessageTtlSeconds value is updated (either increased or reduced),
1850// it only applies to new messages sent via this channel after it's been updated.
1851// Existing messages are still expired as per the previous MessageTtlSeconds
1852// value.
1853//
1854// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1855// with awserr.Error's Code and Message methods to get detailed information about
1856// the error.
1857//
1858// See the AWS API reference guide for Amazon Kinesis Video Streams's
1859// API operation UpdateSignalingChannel for usage and error information.
1860//
1861// Returned Error Types:
1862//   * InvalidArgumentException
1863//   The value for this input parameter is invalid.
1864//
1865//   * ClientLimitExceededException
1866//   Kinesis Video Streams has throttled the request because you have exceeded
1867//   the limit of allowed client calls. Try making the call later.
1868//
1869//   * ResourceNotFoundException
1870//   Amazon Kinesis Video Streams can't find the stream that you specified.
1871//
1872//   * ResourceInUseException
1873//   The signaling channel is currently not available for this operation.
1874//
1875//   * AccessDeniedException
1876//   You do not have required permissions to perform this operation.
1877//
1878//   * VersionMismatchException
1879//   The stream version that you specified is not the latest version. To get the
1880//   latest version, use the DescribeStream (https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DescribeStream.html)
1881//   API.
1882//
1883// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/UpdateSignalingChannel
1884func (c *KinesisVideo) UpdateSignalingChannel(input *UpdateSignalingChannelInput) (*UpdateSignalingChannelOutput, error) {
1885	req, out := c.UpdateSignalingChannelRequest(input)
1886	return out, req.Send()
1887}
1888
1889// UpdateSignalingChannelWithContext is the same as UpdateSignalingChannel with the addition of
1890// the ability to pass a context and additional request options.
1891//
1892// See UpdateSignalingChannel for details on how to use this API operation.
1893//
1894// The context must be non-nil and will be used for request cancellation. If
1895// the context is nil a panic will occur. In the future the SDK may create
1896// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1897// for more information on using Contexts.
1898func (c *KinesisVideo) UpdateSignalingChannelWithContext(ctx aws.Context, input *UpdateSignalingChannelInput, opts ...request.Option) (*UpdateSignalingChannelOutput, error) {
1899	req, out := c.UpdateSignalingChannelRequest(input)
1900	req.SetContext(ctx)
1901	req.ApplyOptions(opts...)
1902	return out, req.Send()
1903}
1904
1905const opUpdateStream = "UpdateStream"
1906
1907// UpdateStreamRequest generates a "aws/request.Request" representing the
1908// client's request for the UpdateStream operation. The "output" return
1909// value will be populated with the request's response once the request completes
1910// successfully.
1911//
1912// Use "Send" method on the returned Request to send the API call to the service.
1913// the "output" return value is not valid until after Send returns without error.
1914//
1915// See UpdateStream for more information on using the UpdateStream
1916// API call, and error handling.
1917//
1918// This method is useful when you want to inject custom logic or configuration
1919// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1920//
1921//
1922//    // Example sending a request using the UpdateStreamRequest method.
1923//    req, resp := client.UpdateStreamRequest(params)
1924//
1925//    err := req.Send()
1926//    if err == nil { // resp is now filled
1927//        fmt.Println(resp)
1928//    }
1929//
1930// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/UpdateStream
1931func (c *KinesisVideo) UpdateStreamRequest(input *UpdateStreamInput) (req *request.Request, output *UpdateStreamOutput) {
1932	op := &request.Operation{
1933		Name:       opUpdateStream,
1934		HTTPMethod: "POST",
1935		HTTPPath:   "/updateStream",
1936	}
1937
1938	if input == nil {
1939		input = &UpdateStreamInput{}
1940	}
1941
1942	output = &UpdateStreamOutput{}
1943	req = c.newRequest(op, input, output)
1944	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1945	return
1946}
1947
1948// UpdateStream API operation for Amazon Kinesis Video Streams.
1949//
1950// Updates stream metadata, such as the device name and media type.
1951//
1952// You must provide the stream name or the Amazon Resource Name (ARN) of the
1953// stream.
1954//
1955// To make sure that you have the latest version of the stream before updating
1956// it, you can specify the stream version. Kinesis Video Streams assigns a version
1957// to each stream. When you update a stream, Kinesis Video Streams assigns a
1958// new version number. To get the latest stream version, use the DescribeStream
1959// API.
1960//
1961// UpdateStream is an asynchronous operation, and takes time to complete.
1962//
1963// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1964// with awserr.Error's Code and Message methods to get detailed information about
1965// the error.
1966//
1967// See the AWS API reference guide for Amazon Kinesis Video Streams's
1968// API operation UpdateStream for usage and error information.
1969//
1970// Returned Error Types:
1971//   * ClientLimitExceededException
1972//   Kinesis Video Streams has throttled the request because you have exceeded
1973//   the limit of allowed client calls. Try making the call later.
1974//
1975//   * InvalidArgumentException
1976//   The value for this input parameter is invalid.
1977//
1978//   * ResourceNotFoundException
1979//   Amazon Kinesis Video Streams can't find the stream that you specified.
1980//
1981//   * ResourceInUseException
1982//   The signaling channel is currently not available for this operation.
1983//
1984//   * NotAuthorizedException
1985//   The caller is not authorized to perform this operation.
1986//
1987//   * VersionMismatchException
1988//   The stream version that you specified is not the latest version. To get the
1989//   latest version, use the DescribeStream (https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DescribeStream.html)
1990//   API.
1991//
1992// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/UpdateStream
1993func (c *KinesisVideo) UpdateStream(input *UpdateStreamInput) (*UpdateStreamOutput, error) {
1994	req, out := c.UpdateStreamRequest(input)
1995	return out, req.Send()
1996}
1997
1998// UpdateStreamWithContext is the same as UpdateStream with the addition of
1999// the ability to pass a context and additional request options.
2000//
2001// See UpdateStream for details on how to use this API operation.
2002//
2003// The context must be non-nil and will be used for request cancellation. If
2004// the context is nil a panic will occur. In the future the SDK may create
2005// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2006// for more information on using Contexts.
2007func (c *KinesisVideo) UpdateStreamWithContext(ctx aws.Context, input *UpdateStreamInput, opts ...request.Option) (*UpdateStreamOutput, error) {
2008	req, out := c.UpdateStreamRequest(input)
2009	req.SetContext(ctx)
2010	req.ApplyOptions(opts...)
2011	return out, req.Send()
2012}
2013
2014// You do not have required permissions to perform this operation.
2015type AccessDeniedException struct {
2016	_            struct{}                  `type:"structure"`
2017	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2018
2019	Message_ *string `locationName:"Message" type:"string"`
2020}
2021
2022// String returns the string representation
2023func (s AccessDeniedException) String() string {
2024	return awsutil.Prettify(s)
2025}
2026
2027// GoString returns the string representation
2028func (s AccessDeniedException) GoString() string {
2029	return s.String()
2030}
2031
2032func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
2033	return &AccessDeniedException{
2034		RespMetadata: v,
2035	}
2036}
2037
2038// Code returns the exception type name.
2039func (s *AccessDeniedException) Code() string {
2040	return "AccessDeniedException"
2041}
2042
2043// Message returns the exception's message.
2044func (s *AccessDeniedException) Message() string {
2045	if s.Message_ != nil {
2046		return *s.Message_
2047	}
2048	return ""
2049}
2050
2051// OrigErr always returns nil, satisfies awserr.Error interface.
2052func (s *AccessDeniedException) OrigErr() error {
2053	return nil
2054}
2055
2056func (s *AccessDeniedException) Error() string {
2057	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2058}
2059
2060// Status code returns the HTTP status code for the request's response error.
2061func (s *AccessDeniedException) StatusCode() int {
2062	return s.RespMetadata.StatusCode
2063}
2064
2065// RequestID returns the service's response RequestID for request.
2066func (s *AccessDeniedException) RequestID() string {
2067	return s.RespMetadata.RequestID
2068}
2069
2070// You have reached the maximum limit of active signaling channels for this
2071// AWS account in this region.
2072type AccountChannelLimitExceededException struct {
2073	_            struct{}                  `type:"structure"`
2074	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2075
2076	Message_ *string `locationName:"Message" type:"string"`
2077}
2078
2079// String returns the string representation
2080func (s AccountChannelLimitExceededException) String() string {
2081	return awsutil.Prettify(s)
2082}
2083
2084// GoString returns the string representation
2085func (s AccountChannelLimitExceededException) GoString() string {
2086	return s.String()
2087}
2088
2089func newErrorAccountChannelLimitExceededException(v protocol.ResponseMetadata) error {
2090	return &AccountChannelLimitExceededException{
2091		RespMetadata: v,
2092	}
2093}
2094
2095// Code returns the exception type name.
2096func (s *AccountChannelLimitExceededException) Code() string {
2097	return "AccountChannelLimitExceededException"
2098}
2099
2100// Message returns the exception's message.
2101func (s *AccountChannelLimitExceededException) Message() string {
2102	if s.Message_ != nil {
2103		return *s.Message_
2104	}
2105	return ""
2106}
2107
2108// OrigErr always returns nil, satisfies awserr.Error interface.
2109func (s *AccountChannelLimitExceededException) OrigErr() error {
2110	return nil
2111}
2112
2113func (s *AccountChannelLimitExceededException) Error() string {
2114	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2115}
2116
2117// Status code returns the HTTP status code for the request's response error.
2118func (s *AccountChannelLimitExceededException) StatusCode() int {
2119	return s.RespMetadata.StatusCode
2120}
2121
2122// RequestID returns the service's response RequestID for request.
2123func (s *AccountChannelLimitExceededException) RequestID() string {
2124	return s.RespMetadata.RequestID
2125}
2126
2127// The number of streams created for the account is too high.
2128type AccountStreamLimitExceededException struct {
2129	_            struct{}                  `type:"structure"`
2130	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2131
2132	Message_ *string `locationName:"Message" type:"string"`
2133}
2134
2135// String returns the string representation
2136func (s AccountStreamLimitExceededException) String() string {
2137	return awsutil.Prettify(s)
2138}
2139
2140// GoString returns the string representation
2141func (s AccountStreamLimitExceededException) GoString() string {
2142	return s.String()
2143}
2144
2145func newErrorAccountStreamLimitExceededException(v protocol.ResponseMetadata) error {
2146	return &AccountStreamLimitExceededException{
2147		RespMetadata: v,
2148	}
2149}
2150
2151// Code returns the exception type name.
2152func (s *AccountStreamLimitExceededException) Code() string {
2153	return "AccountStreamLimitExceededException"
2154}
2155
2156// Message returns the exception's message.
2157func (s *AccountStreamLimitExceededException) Message() string {
2158	if s.Message_ != nil {
2159		return *s.Message_
2160	}
2161	return ""
2162}
2163
2164// OrigErr always returns nil, satisfies awserr.Error interface.
2165func (s *AccountStreamLimitExceededException) OrigErr() error {
2166	return nil
2167}
2168
2169func (s *AccountStreamLimitExceededException) Error() string {
2170	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2171}
2172
2173// Status code returns the HTTP status code for the request's response error.
2174func (s *AccountStreamLimitExceededException) StatusCode() int {
2175	return s.RespMetadata.StatusCode
2176}
2177
2178// RequestID returns the service's response RequestID for request.
2179func (s *AccountStreamLimitExceededException) RequestID() string {
2180	return s.RespMetadata.RequestID
2181}
2182
2183// A structure that encapsulates a signaling channel's metadata and properties.
2184type ChannelInfo struct {
2185	_ struct{} `type:"structure"`
2186
2187	// The Amazon Resource Name (ARN) of the signaling channel.
2188	ChannelARN *string `min:"1" type:"string"`
2189
2190	// The name of the signaling channel.
2191	ChannelName *string `min:"1" type:"string"`
2192
2193	// Current status of the signaling channel.
2194	ChannelStatus *string `type:"string" enum:"Status"`
2195
2196	// The type of the signaling channel.
2197	ChannelType *string `type:"string" enum:"ChannelType"`
2198
2199	// The time at which the signaling channel was created.
2200	CreationTime *time.Time `type:"timestamp"`
2201
2202	// A structure that contains the configuration for the SINGLE_MASTER channel
2203	// type.
2204	SingleMasterConfiguration *SingleMasterConfiguration `type:"structure"`
2205
2206	// The current version of the signaling channel.
2207	Version *string `min:"1" type:"string"`
2208}
2209
2210// String returns the string representation
2211func (s ChannelInfo) String() string {
2212	return awsutil.Prettify(s)
2213}
2214
2215// GoString returns the string representation
2216func (s ChannelInfo) GoString() string {
2217	return s.String()
2218}
2219
2220// SetChannelARN sets the ChannelARN field's value.
2221func (s *ChannelInfo) SetChannelARN(v string) *ChannelInfo {
2222	s.ChannelARN = &v
2223	return s
2224}
2225
2226// SetChannelName sets the ChannelName field's value.
2227func (s *ChannelInfo) SetChannelName(v string) *ChannelInfo {
2228	s.ChannelName = &v
2229	return s
2230}
2231
2232// SetChannelStatus sets the ChannelStatus field's value.
2233func (s *ChannelInfo) SetChannelStatus(v string) *ChannelInfo {
2234	s.ChannelStatus = &v
2235	return s
2236}
2237
2238// SetChannelType sets the ChannelType field's value.
2239func (s *ChannelInfo) SetChannelType(v string) *ChannelInfo {
2240	s.ChannelType = &v
2241	return s
2242}
2243
2244// SetCreationTime sets the CreationTime field's value.
2245func (s *ChannelInfo) SetCreationTime(v time.Time) *ChannelInfo {
2246	s.CreationTime = &v
2247	return s
2248}
2249
2250// SetSingleMasterConfiguration sets the SingleMasterConfiguration field's value.
2251func (s *ChannelInfo) SetSingleMasterConfiguration(v *SingleMasterConfiguration) *ChannelInfo {
2252	s.SingleMasterConfiguration = v
2253	return s
2254}
2255
2256// SetVersion sets the Version field's value.
2257func (s *ChannelInfo) SetVersion(v string) *ChannelInfo {
2258	s.Version = &v
2259	return s
2260}
2261
2262// An optional input parameter for the ListSignalingChannels API. When this
2263// parameter is specified while invoking ListSignalingChannels, the API returns
2264// only the channels that satisfy a condition specified in ChannelNameCondition.
2265type ChannelNameCondition struct {
2266	_ struct{} `type:"structure"`
2267
2268	// A comparison operator. Currently, you can only specify the BEGINS_WITH operator,
2269	// which finds signaling channels whose names begin with a given prefix.
2270	ComparisonOperator *string `type:"string" enum:"ComparisonOperator"`
2271
2272	// A value to compare.
2273	ComparisonValue *string `min:"1" type:"string"`
2274}
2275
2276// String returns the string representation
2277func (s ChannelNameCondition) String() string {
2278	return awsutil.Prettify(s)
2279}
2280
2281// GoString returns the string representation
2282func (s ChannelNameCondition) GoString() string {
2283	return s.String()
2284}
2285
2286// Validate inspects the fields of the type to determine if they are valid.
2287func (s *ChannelNameCondition) Validate() error {
2288	invalidParams := request.ErrInvalidParams{Context: "ChannelNameCondition"}
2289	if s.ComparisonValue != nil && len(*s.ComparisonValue) < 1 {
2290		invalidParams.Add(request.NewErrParamMinLen("ComparisonValue", 1))
2291	}
2292
2293	if invalidParams.Len() > 0 {
2294		return invalidParams
2295	}
2296	return nil
2297}
2298
2299// SetComparisonOperator sets the ComparisonOperator field's value.
2300func (s *ChannelNameCondition) SetComparisonOperator(v string) *ChannelNameCondition {
2301	s.ComparisonOperator = &v
2302	return s
2303}
2304
2305// SetComparisonValue sets the ComparisonValue field's value.
2306func (s *ChannelNameCondition) SetComparisonValue(v string) *ChannelNameCondition {
2307	s.ComparisonValue = &v
2308	return s
2309}
2310
2311// Kinesis Video Streams has throttled the request because you have exceeded
2312// the limit of allowed client calls. Try making the call later.
2313type ClientLimitExceededException struct {
2314	_            struct{}                  `type:"structure"`
2315	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2316
2317	Message_ *string `locationName:"Message" type:"string"`
2318}
2319
2320// String returns the string representation
2321func (s ClientLimitExceededException) String() string {
2322	return awsutil.Prettify(s)
2323}
2324
2325// GoString returns the string representation
2326func (s ClientLimitExceededException) GoString() string {
2327	return s.String()
2328}
2329
2330func newErrorClientLimitExceededException(v protocol.ResponseMetadata) error {
2331	return &ClientLimitExceededException{
2332		RespMetadata: v,
2333	}
2334}
2335
2336// Code returns the exception type name.
2337func (s *ClientLimitExceededException) Code() string {
2338	return "ClientLimitExceededException"
2339}
2340
2341// Message returns the exception's message.
2342func (s *ClientLimitExceededException) Message() string {
2343	if s.Message_ != nil {
2344		return *s.Message_
2345	}
2346	return ""
2347}
2348
2349// OrigErr always returns nil, satisfies awserr.Error interface.
2350func (s *ClientLimitExceededException) OrigErr() error {
2351	return nil
2352}
2353
2354func (s *ClientLimitExceededException) Error() string {
2355	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2356}
2357
2358// Status code returns the HTTP status code for the request's response error.
2359func (s *ClientLimitExceededException) StatusCode() int {
2360	return s.RespMetadata.StatusCode
2361}
2362
2363// RequestID returns the service's response RequestID for request.
2364func (s *ClientLimitExceededException) RequestID() string {
2365	return s.RespMetadata.RequestID
2366}
2367
2368type CreateSignalingChannelInput struct {
2369	_ struct{} `type:"structure"`
2370
2371	// A name for the signaling channel that you are creating. It must be unique
2372	// for each AWS account and AWS Region.
2373	//
2374	// ChannelName is a required field
2375	ChannelName *string `min:"1" type:"string" required:"true"`
2376
2377	// A type of the signaling channel that you are creating. Currently, SINGLE_MASTER
2378	// is the only supported channel type.
2379	ChannelType *string `type:"string" enum:"ChannelType"`
2380
2381	// A structure containing the configuration for the SINGLE_MASTER channel type.
2382	SingleMasterConfiguration *SingleMasterConfiguration `type:"structure"`
2383
2384	// A set of tags (key-value pairs) that you want to associate with this channel.
2385	Tags []*Tag `type:"list"`
2386}
2387
2388// String returns the string representation
2389func (s CreateSignalingChannelInput) String() string {
2390	return awsutil.Prettify(s)
2391}
2392
2393// GoString returns the string representation
2394func (s CreateSignalingChannelInput) GoString() string {
2395	return s.String()
2396}
2397
2398// Validate inspects the fields of the type to determine if they are valid.
2399func (s *CreateSignalingChannelInput) Validate() error {
2400	invalidParams := request.ErrInvalidParams{Context: "CreateSignalingChannelInput"}
2401	if s.ChannelName == nil {
2402		invalidParams.Add(request.NewErrParamRequired("ChannelName"))
2403	}
2404	if s.ChannelName != nil && len(*s.ChannelName) < 1 {
2405		invalidParams.Add(request.NewErrParamMinLen("ChannelName", 1))
2406	}
2407	if s.SingleMasterConfiguration != nil {
2408		if err := s.SingleMasterConfiguration.Validate(); err != nil {
2409			invalidParams.AddNested("SingleMasterConfiguration", err.(request.ErrInvalidParams))
2410		}
2411	}
2412	if s.Tags != nil {
2413		for i, v := range s.Tags {
2414			if v == nil {
2415				continue
2416			}
2417			if err := v.Validate(); err != nil {
2418				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
2419			}
2420		}
2421	}
2422
2423	if invalidParams.Len() > 0 {
2424		return invalidParams
2425	}
2426	return nil
2427}
2428
2429// SetChannelName sets the ChannelName field's value.
2430func (s *CreateSignalingChannelInput) SetChannelName(v string) *CreateSignalingChannelInput {
2431	s.ChannelName = &v
2432	return s
2433}
2434
2435// SetChannelType sets the ChannelType field's value.
2436func (s *CreateSignalingChannelInput) SetChannelType(v string) *CreateSignalingChannelInput {
2437	s.ChannelType = &v
2438	return s
2439}
2440
2441// SetSingleMasterConfiguration sets the SingleMasterConfiguration field's value.
2442func (s *CreateSignalingChannelInput) SetSingleMasterConfiguration(v *SingleMasterConfiguration) *CreateSignalingChannelInput {
2443	s.SingleMasterConfiguration = v
2444	return s
2445}
2446
2447// SetTags sets the Tags field's value.
2448func (s *CreateSignalingChannelInput) SetTags(v []*Tag) *CreateSignalingChannelInput {
2449	s.Tags = v
2450	return s
2451}
2452
2453type CreateSignalingChannelOutput struct {
2454	_ struct{} `type:"structure"`
2455
2456	// The Amazon Resource Name (ARN) of the created channel.
2457	ChannelARN *string `min:"1" type:"string"`
2458}
2459
2460// String returns the string representation
2461func (s CreateSignalingChannelOutput) String() string {
2462	return awsutil.Prettify(s)
2463}
2464
2465// GoString returns the string representation
2466func (s CreateSignalingChannelOutput) GoString() string {
2467	return s.String()
2468}
2469
2470// SetChannelARN sets the ChannelARN field's value.
2471func (s *CreateSignalingChannelOutput) SetChannelARN(v string) *CreateSignalingChannelOutput {
2472	s.ChannelARN = &v
2473	return s
2474}
2475
2476type CreateStreamInput struct {
2477	_ struct{} `type:"structure"`
2478
2479	// The number of hours that you want to retain the data in the stream. Kinesis
2480	// Video Streams retains the data in a data store that is associated with the
2481	// stream.
2482	//
2483	// The default value is 0, indicating that the stream does not persist data.
2484	//
2485	// When the DataRetentionInHours value is 0, consumers can still consume the
2486	// fragments that remain in the service host buffer, which has a retention time
2487	// limit of 5 minutes and a retention memory limit of 200 MB. Fragments are
2488	// removed from the buffer when either limit is reached.
2489	DataRetentionInHours *int64 `type:"integer"`
2490
2491	// The name of the device that is writing to the stream.
2492	//
2493	// In the current implementation, Kinesis Video Streams does not use this name.
2494	DeviceName *string `min:"1" type:"string"`
2495
2496	// The ID of the AWS Key Management Service (AWS KMS) key that you want Kinesis
2497	// Video Streams to use to encrypt stream data.
2498	//
2499	// If no key ID is specified, the default, Kinesis Video-managed key (aws/kinesisvideo)
2500	// is used.
2501	//
2502	// For more information, see DescribeKey (https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters).
2503	KmsKeyId *string `min:"1" type:"string"`
2504
2505	// The media type of the stream. Consumers of the stream can use this information
2506	// when processing the stream. For more information about media types, see Media
2507	// Types (http://www.iana.org/assignments/media-types/media-types.xhtml). If
2508	// you choose to specify the MediaType, see Naming Requirements (https://tools.ietf.org/html/rfc6838#section-4.2)
2509	// for guidelines.
2510	//
2511	// Example valid values include "video/h264" and "video/h264,audio/aac".
2512	//
2513	// This parameter is optional; the default value is null (or empty in JSON).
2514	MediaType *string `min:"1" type:"string"`
2515
2516	// A name for the stream that you are creating.
2517	//
2518	// The stream name is an identifier for the stream, and must be unique for each
2519	// account and region.
2520	//
2521	// StreamName is a required field
2522	StreamName *string `min:"1" type:"string" required:"true"`
2523
2524	// A list of tags to associate with the specified stream. Each tag is a key-value
2525	// pair (the value is optional).
2526	Tags map[string]*string `min:"1" type:"map"`
2527}
2528
2529// String returns the string representation
2530func (s CreateStreamInput) String() string {
2531	return awsutil.Prettify(s)
2532}
2533
2534// GoString returns the string representation
2535func (s CreateStreamInput) GoString() string {
2536	return s.String()
2537}
2538
2539// Validate inspects the fields of the type to determine if they are valid.
2540func (s *CreateStreamInput) Validate() error {
2541	invalidParams := request.ErrInvalidParams{Context: "CreateStreamInput"}
2542	if s.DeviceName != nil && len(*s.DeviceName) < 1 {
2543		invalidParams.Add(request.NewErrParamMinLen("DeviceName", 1))
2544	}
2545	if s.KmsKeyId != nil && len(*s.KmsKeyId) < 1 {
2546		invalidParams.Add(request.NewErrParamMinLen("KmsKeyId", 1))
2547	}
2548	if s.MediaType != nil && len(*s.MediaType) < 1 {
2549		invalidParams.Add(request.NewErrParamMinLen("MediaType", 1))
2550	}
2551	if s.StreamName == nil {
2552		invalidParams.Add(request.NewErrParamRequired("StreamName"))
2553	}
2554	if s.StreamName != nil && len(*s.StreamName) < 1 {
2555		invalidParams.Add(request.NewErrParamMinLen("StreamName", 1))
2556	}
2557	if s.Tags != nil && len(s.Tags) < 1 {
2558		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
2559	}
2560
2561	if invalidParams.Len() > 0 {
2562		return invalidParams
2563	}
2564	return nil
2565}
2566
2567// SetDataRetentionInHours sets the DataRetentionInHours field's value.
2568func (s *CreateStreamInput) SetDataRetentionInHours(v int64) *CreateStreamInput {
2569	s.DataRetentionInHours = &v
2570	return s
2571}
2572
2573// SetDeviceName sets the DeviceName field's value.
2574func (s *CreateStreamInput) SetDeviceName(v string) *CreateStreamInput {
2575	s.DeviceName = &v
2576	return s
2577}
2578
2579// SetKmsKeyId sets the KmsKeyId field's value.
2580func (s *CreateStreamInput) SetKmsKeyId(v string) *CreateStreamInput {
2581	s.KmsKeyId = &v
2582	return s
2583}
2584
2585// SetMediaType sets the MediaType field's value.
2586func (s *CreateStreamInput) SetMediaType(v string) *CreateStreamInput {
2587	s.MediaType = &v
2588	return s
2589}
2590
2591// SetStreamName sets the StreamName field's value.
2592func (s *CreateStreamInput) SetStreamName(v string) *CreateStreamInput {
2593	s.StreamName = &v
2594	return s
2595}
2596
2597// SetTags sets the Tags field's value.
2598func (s *CreateStreamInput) SetTags(v map[string]*string) *CreateStreamInput {
2599	s.Tags = v
2600	return s
2601}
2602
2603type CreateStreamOutput struct {
2604	_ struct{} `type:"structure"`
2605
2606	// The Amazon Resource Name (ARN) of the stream.
2607	StreamARN *string `min:"1" type:"string"`
2608}
2609
2610// String returns the string representation
2611func (s CreateStreamOutput) String() string {
2612	return awsutil.Prettify(s)
2613}
2614
2615// GoString returns the string representation
2616func (s CreateStreamOutput) GoString() string {
2617	return s.String()
2618}
2619
2620// SetStreamARN sets the StreamARN field's value.
2621func (s *CreateStreamOutput) SetStreamARN(v string) *CreateStreamOutput {
2622	s.StreamARN = &v
2623	return s
2624}
2625
2626type DeleteSignalingChannelInput struct {
2627	_ struct{} `type:"structure"`
2628
2629	// The Amazon Resource Name (ARN) of the signaling channel that you want to
2630	// delete.
2631	//
2632	// ChannelARN is a required field
2633	ChannelARN *string `min:"1" type:"string" required:"true"`
2634
2635	// The current version of the signaling channel that you want to delete. You
2636	// can obtain the current version by invoking the DescribeSignalingChannel or
2637	// ListSignalingChannels API operations.
2638	CurrentVersion *string `min:"1" type:"string"`
2639}
2640
2641// String returns the string representation
2642func (s DeleteSignalingChannelInput) String() string {
2643	return awsutil.Prettify(s)
2644}
2645
2646// GoString returns the string representation
2647func (s DeleteSignalingChannelInput) GoString() string {
2648	return s.String()
2649}
2650
2651// Validate inspects the fields of the type to determine if they are valid.
2652func (s *DeleteSignalingChannelInput) Validate() error {
2653	invalidParams := request.ErrInvalidParams{Context: "DeleteSignalingChannelInput"}
2654	if s.ChannelARN == nil {
2655		invalidParams.Add(request.NewErrParamRequired("ChannelARN"))
2656	}
2657	if s.ChannelARN != nil && len(*s.ChannelARN) < 1 {
2658		invalidParams.Add(request.NewErrParamMinLen("ChannelARN", 1))
2659	}
2660	if s.CurrentVersion != nil && len(*s.CurrentVersion) < 1 {
2661		invalidParams.Add(request.NewErrParamMinLen("CurrentVersion", 1))
2662	}
2663
2664	if invalidParams.Len() > 0 {
2665		return invalidParams
2666	}
2667	return nil
2668}
2669
2670// SetChannelARN sets the ChannelARN field's value.
2671func (s *DeleteSignalingChannelInput) SetChannelARN(v string) *DeleteSignalingChannelInput {
2672	s.ChannelARN = &v
2673	return s
2674}
2675
2676// SetCurrentVersion sets the CurrentVersion field's value.
2677func (s *DeleteSignalingChannelInput) SetCurrentVersion(v string) *DeleteSignalingChannelInput {
2678	s.CurrentVersion = &v
2679	return s
2680}
2681
2682type DeleteSignalingChannelOutput struct {
2683	_ struct{} `type:"structure"`
2684}
2685
2686// String returns the string representation
2687func (s DeleteSignalingChannelOutput) String() string {
2688	return awsutil.Prettify(s)
2689}
2690
2691// GoString returns the string representation
2692func (s DeleteSignalingChannelOutput) GoString() string {
2693	return s.String()
2694}
2695
2696type DeleteStreamInput struct {
2697	_ struct{} `type:"structure"`
2698
2699	// Optional: The version of the stream that you want to delete.
2700	//
2701	// Specify the version as a safeguard to ensure that your are deleting the correct
2702	// stream. To get the stream version, use the DescribeStream API.
2703	//
2704	// If not specified, only the CreationTime is checked before deleting the stream.
2705	CurrentVersion *string `min:"1" type:"string"`
2706
2707	// The Amazon Resource Name (ARN) of the stream that you want to delete.
2708	//
2709	// StreamARN is a required field
2710	StreamARN *string `min:"1" type:"string" required:"true"`
2711}
2712
2713// String returns the string representation
2714func (s DeleteStreamInput) String() string {
2715	return awsutil.Prettify(s)
2716}
2717
2718// GoString returns the string representation
2719func (s DeleteStreamInput) GoString() string {
2720	return s.String()
2721}
2722
2723// Validate inspects the fields of the type to determine if they are valid.
2724func (s *DeleteStreamInput) Validate() error {
2725	invalidParams := request.ErrInvalidParams{Context: "DeleteStreamInput"}
2726	if s.CurrentVersion != nil && len(*s.CurrentVersion) < 1 {
2727		invalidParams.Add(request.NewErrParamMinLen("CurrentVersion", 1))
2728	}
2729	if s.StreamARN == nil {
2730		invalidParams.Add(request.NewErrParamRequired("StreamARN"))
2731	}
2732	if s.StreamARN != nil && len(*s.StreamARN) < 1 {
2733		invalidParams.Add(request.NewErrParamMinLen("StreamARN", 1))
2734	}
2735
2736	if invalidParams.Len() > 0 {
2737		return invalidParams
2738	}
2739	return nil
2740}
2741
2742// SetCurrentVersion sets the CurrentVersion field's value.
2743func (s *DeleteStreamInput) SetCurrentVersion(v string) *DeleteStreamInput {
2744	s.CurrentVersion = &v
2745	return s
2746}
2747
2748// SetStreamARN sets the StreamARN field's value.
2749func (s *DeleteStreamInput) SetStreamARN(v string) *DeleteStreamInput {
2750	s.StreamARN = &v
2751	return s
2752}
2753
2754type DeleteStreamOutput struct {
2755	_ struct{} `type:"structure"`
2756}
2757
2758// String returns the string representation
2759func (s DeleteStreamOutput) String() string {
2760	return awsutil.Prettify(s)
2761}
2762
2763// GoString returns the string representation
2764func (s DeleteStreamOutput) GoString() string {
2765	return s.String()
2766}
2767
2768type DescribeSignalingChannelInput struct {
2769	_ struct{} `type:"structure"`
2770
2771	// The ARN of the signaling channel that you want to describe.
2772	ChannelARN *string `min:"1" type:"string"`
2773
2774	// The name of the signaling channel that you want to describe.
2775	ChannelName *string `min:"1" type:"string"`
2776}
2777
2778// String returns the string representation
2779func (s DescribeSignalingChannelInput) String() string {
2780	return awsutil.Prettify(s)
2781}
2782
2783// GoString returns the string representation
2784func (s DescribeSignalingChannelInput) GoString() string {
2785	return s.String()
2786}
2787
2788// Validate inspects the fields of the type to determine if they are valid.
2789func (s *DescribeSignalingChannelInput) Validate() error {
2790	invalidParams := request.ErrInvalidParams{Context: "DescribeSignalingChannelInput"}
2791	if s.ChannelARN != nil && len(*s.ChannelARN) < 1 {
2792		invalidParams.Add(request.NewErrParamMinLen("ChannelARN", 1))
2793	}
2794	if s.ChannelName != nil && len(*s.ChannelName) < 1 {
2795		invalidParams.Add(request.NewErrParamMinLen("ChannelName", 1))
2796	}
2797
2798	if invalidParams.Len() > 0 {
2799		return invalidParams
2800	}
2801	return nil
2802}
2803
2804// SetChannelARN sets the ChannelARN field's value.
2805func (s *DescribeSignalingChannelInput) SetChannelARN(v string) *DescribeSignalingChannelInput {
2806	s.ChannelARN = &v
2807	return s
2808}
2809
2810// SetChannelName sets the ChannelName field's value.
2811func (s *DescribeSignalingChannelInput) SetChannelName(v string) *DescribeSignalingChannelInput {
2812	s.ChannelName = &v
2813	return s
2814}
2815
2816type DescribeSignalingChannelOutput struct {
2817	_ struct{} `type:"structure"`
2818
2819	// A structure that encapsulates the specified signaling channel's metadata
2820	// and properties.
2821	ChannelInfo *ChannelInfo `type:"structure"`
2822}
2823
2824// String returns the string representation
2825func (s DescribeSignalingChannelOutput) String() string {
2826	return awsutil.Prettify(s)
2827}
2828
2829// GoString returns the string representation
2830func (s DescribeSignalingChannelOutput) GoString() string {
2831	return s.String()
2832}
2833
2834// SetChannelInfo sets the ChannelInfo field's value.
2835func (s *DescribeSignalingChannelOutput) SetChannelInfo(v *ChannelInfo) *DescribeSignalingChannelOutput {
2836	s.ChannelInfo = v
2837	return s
2838}
2839
2840type DescribeStreamInput struct {
2841	_ struct{} `type:"structure"`
2842
2843	// The Amazon Resource Name (ARN) of the stream.
2844	StreamARN *string `min:"1" type:"string"`
2845
2846	// The name of the stream.
2847	StreamName *string `min:"1" type:"string"`
2848}
2849
2850// String returns the string representation
2851func (s DescribeStreamInput) String() string {
2852	return awsutil.Prettify(s)
2853}
2854
2855// GoString returns the string representation
2856func (s DescribeStreamInput) GoString() string {
2857	return s.String()
2858}
2859
2860// Validate inspects the fields of the type to determine if they are valid.
2861func (s *DescribeStreamInput) Validate() error {
2862	invalidParams := request.ErrInvalidParams{Context: "DescribeStreamInput"}
2863	if s.StreamARN != nil && len(*s.StreamARN) < 1 {
2864		invalidParams.Add(request.NewErrParamMinLen("StreamARN", 1))
2865	}
2866	if s.StreamName != nil && len(*s.StreamName) < 1 {
2867		invalidParams.Add(request.NewErrParamMinLen("StreamName", 1))
2868	}
2869
2870	if invalidParams.Len() > 0 {
2871		return invalidParams
2872	}
2873	return nil
2874}
2875
2876// SetStreamARN sets the StreamARN field's value.
2877func (s *DescribeStreamInput) SetStreamARN(v string) *DescribeStreamInput {
2878	s.StreamARN = &v
2879	return s
2880}
2881
2882// SetStreamName sets the StreamName field's value.
2883func (s *DescribeStreamInput) SetStreamName(v string) *DescribeStreamInput {
2884	s.StreamName = &v
2885	return s
2886}
2887
2888type DescribeStreamOutput struct {
2889	_ struct{} `type:"structure"`
2890
2891	// An object that describes the stream.
2892	StreamInfo *StreamInfo `type:"structure"`
2893}
2894
2895// String returns the string representation
2896func (s DescribeStreamOutput) String() string {
2897	return awsutil.Prettify(s)
2898}
2899
2900// GoString returns the string representation
2901func (s DescribeStreamOutput) GoString() string {
2902	return s.String()
2903}
2904
2905// SetStreamInfo sets the StreamInfo field's value.
2906func (s *DescribeStreamOutput) SetStreamInfo(v *StreamInfo) *DescribeStreamOutput {
2907	s.StreamInfo = v
2908	return s
2909}
2910
2911// Not implemented.
2912type DeviceStreamLimitExceededException struct {
2913	_            struct{}                  `type:"structure"`
2914	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2915
2916	Message_ *string `locationName:"Message" type:"string"`
2917}
2918
2919// String returns the string representation
2920func (s DeviceStreamLimitExceededException) String() string {
2921	return awsutil.Prettify(s)
2922}
2923
2924// GoString returns the string representation
2925func (s DeviceStreamLimitExceededException) GoString() string {
2926	return s.String()
2927}
2928
2929func newErrorDeviceStreamLimitExceededException(v protocol.ResponseMetadata) error {
2930	return &DeviceStreamLimitExceededException{
2931		RespMetadata: v,
2932	}
2933}
2934
2935// Code returns the exception type name.
2936func (s *DeviceStreamLimitExceededException) Code() string {
2937	return "DeviceStreamLimitExceededException"
2938}
2939
2940// Message returns the exception's message.
2941func (s *DeviceStreamLimitExceededException) Message() string {
2942	if s.Message_ != nil {
2943		return *s.Message_
2944	}
2945	return ""
2946}
2947
2948// OrigErr always returns nil, satisfies awserr.Error interface.
2949func (s *DeviceStreamLimitExceededException) OrigErr() error {
2950	return nil
2951}
2952
2953func (s *DeviceStreamLimitExceededException) Error() string {
2954	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2955}
2956
2957// Status code returns the HTTP status code for the request's response error.
2958func (s *DeviceStreamLimitExceededException) StatusCode() int {
2959	return s.RespMetadata.StatusCode
2960}
2961
2962// RequestID returns the service's response RequestID for request.
2963func (s *DeviceStreamLimitExceededException) RequestID() string {
2964	return s.RespMetadata.RequestID
2965}
2966
2967type GetDataEndpointInput struct {
2968	_ struct{} `type:"structure"`
2969
2970	// The name of the API action for which to get an endpoint.
2971	//
2972	// APIName is a required field
2973	APIName *string `type:"string" required:"true" enum:"APIName"`
2974
2975	// The Amazon Resource Name (ARN) of the stream that you want to get the endpoint
2976	// for. You must specify either this parameter or a StreamName in the request.
2977	StreamARN *string `min:"1" type:"string"`
2978
2979	// The name of the stream that you want to get the endpoint for. You must specify
2980	// either this parameter or a StreamARN in the request.
2981	StreamName *string `min:"1" type:"string"`
2982}
2983
2984// String returns the string representation
2985func (s GetDataEndpointInput) String() string {
2986	return awsutil.Prettify(s)
2987}
2988
2989// GoString returns the string representation
2990func (s GetDataEndpointInput) GoString() string {
2991	return s.String()
2992}
2993
2994// Validate inspects the fields of the type to determine if they are valid.
2995func (s *GetDataEndpointInput) Validate() error {
2996	invalidParams := request.ErrInvalidParams{Context: "GetDataEndpointInput"}
2997	if s.APIName == nil {
2998		invalidParams.Add(request.NewErrParamRequired("APIName"))
2999	}
3000	if s.StreamARN != nil && len(*s.StreamARN) < 1 {
3001		invalidParams.Add(request.NewErrParamMinLen("StreamARN", 1))
3002	}
3003	if s.StreamName != nil && len(*s.StreamName) < 1 {
3004		invalidParams.Add(request.NewErrParamMinLen("StreamName", 1))
3005	}
3006
3007	if invalidParams.Len() > 0 {
3008		return invalidParams
3009	}
3010	return nil
3011}
3012
3013// SetAPIName sets the APIName field's value.
3014func (s *GetDataEndpointInput) SetAPIName(v string) *GetDataEndpointInput {
3015	s.APIName = &v
3016	return s
3017}
3018
3019// SetStreamARN sets the StreamARN field's value.
3020func (s *GetDataEndpointInput) SetStreamARN(v string) *GetDataEndpointInput {
3021	s.StreamARN = &v
3022	return s
3023}
3024
3025// SetStreamName sets the StreamName field's value.
3026func (s *GetDataEndpointInput) SetStreamName(v string) *GetDataEndpointInput {
3027	s.StreamName = &v
3028	return s
3029}
3030
3031type GetDataEndpointOutput struct {
3032	_ struct{} `type:"structure"`
3033
3034	// The endpoint value. To read data from the stream or to write data to it,
3035	// specify this endpoint in your application.
3036	DataEndpoint *string `type:"string"`
3037}
3038
3039// String returns the string representation
3040func (s GetDataEndpointOutput) String() string {
3041	return awsutil.Prettify(s)
3042}
3043
3044// GoString returns the string representation
3045func (s GetDataEndpointOutput) GoString() string {
3046	return s.String()
3047}
3048
3049// SetDataEndpoint sets the DataEndpoint field's value.
3050func (s *GetDataEndpointOutput) SetDataEndpoint(v string) *GetDataEndpointOutput {
3051	s.DataEndpoint = &v
3052	return s
3053}
3054
3055type GetSignalingChannelEndpointInput struct {
3056	_ struct{} `type:"structure"`
3057
3058	// The Amazon Resource Name (ARN) of the signalling channel for which you want
3059	// to get an endpoint.
3060	//
3061	// ChannelARN is a required field
3062	ChannelARN *string `min:"1" type:"string" required:"true"`
3063
3064	// A structure containing the endpoint configuration for the SINGLE_MASTER channel
3065	// type.
3066	SingleMasterChannelEndpointConfiguration *SingleMasterChannelEndpointConfiguration `type:"structure"`
3067}
3068
3069// String returns the string representation
3070func (s GetSignalingChannelEndpointInput) String() string {
3071	return awsutil.Prettify(s)
3072}
3073
3074// GoString returns the string representation
3075func (s GetSignalingChannelEndpointInput) GoString() string {
3076	return s.String()
3077}
3078
3079// Validate inspects the fields of the type to determine if they are valid.
3080func (s *GetSignalingChannelEndpointInput) Validate() error {
3081	invalidParams := request.ErrInvalidParams{Context: "GetSignalingChannelEndpointInput"}
3082	if s.ChannelARN == nil {
3083		invalidParams.Add(request.NewErrParamRequired("ChannelARN"))
3084	}
3085	if s.ChannelARN != nil && len(*s.ChannelARN) < 1 {
3086		invalidParams.Add(request.NewErrParamMinLen("ChannelARN", 1))
3087	}
3088	if s.SingleMasterChannelEndpointConfiguration != nil {
3089		if err := s.SingleMasterChannelEndpointConfiguration.Validate(); err != nil {
3090			invalidParams.AddNested("SingleMasterChannelEndpointConfiguration", err.(request.ErrInvalidParams))
3091		}
3092	}
3093
3094	if invalidParams.Len() > 0 {
3095		return invalidParams
3096	}
3097	return nil
3098}
3099
3100// SetChannelARN sets the ChannelARN field's value.
3101func (s *GetSignalingChannelEndpointInput) SetChannelARN(v string) *GetSignalingChannelEndpointInput {
3102	s.ChannelARN = &v
3103	return s
3104}
3105
3106// SetSingleMasterChannelEndpointConfiguration sets the SingleMasterChannelEndpointConfiguration field's value.
3107func (s *GetSignalingChannelEndpointInput) SetSingleMasterChannelEndpointConfiguration(v *SingleMasterChannelEndpointConfiguration) *GetSignalingChannelEndpointInput {
3108	s.SingleMasterChannelEndpointConfiguration = v
3109	return s
3110}
3111
3112type GetSignalingChannelEndpointOutput struct {
3113	_ struct{} `type:"structure"`
3114
3115	// A list of endpoints for the specified signaling channel.
3116	ResourceEndpointList []*ResourceEndpointListItem `type:"list"`
3117}
3118
3119// String returns the string representation
3120func (s GetSignalingChannelEndpointOutput) String() string {
3121	return awsutil.Prettify(s)
3122}
3123
3124// GoString returns the string representation
3125func (s GetSignalingChannelEndpointOutput) GoString() string {
3126	return s.String()
3127}
3128
3129// SetResourceEndpointList sets the ResourceEndpointList field's value.
3130func (s *GetSignalingChannelEndpointOutput) SetResourceEndpointList(v []*ResourceEndpointListItem) *GetSignalingChannelEndpointOutput {
3131	s.ResourceEndpointList = v
3132	return s
3133}
3134
3135// The value for this input parameter is invalid.
3136type InvalidArgumentException struct {
3137	_            struct{}                  `type:"structure"`
3138	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3139
3140	Message_ *string `locationName:"Message" type:"string"`
3141}
3142
3143// String returns the string representation
3144func (s InvalidArgumentException) String() string {
3145	return awsutil.Prettify(s)
3146}
3147
3148// GoString returns the string representation
3149func (s InvalidArgumentException) GoString() string {
3150	return s.String()
3151}
3152
3153func newErrorInvalidArgumentException(v protocol.ResponseMetadata) error {
3154	return &InvalidArgumentException{
3155		RespMetadata: v,
3156	}
3157}
3158
3159// Code returns the exception type name.
3160func (s *InvalidArgumentException) Code() string {
3161	return "InvalidArgumentException"
3162}
3163
3164// Message returns the exception's message.
3165func (s *InvalidArgumentException) Message() string {
3166	if s.Message_ != nil {
3167		return *s.Message_
3168	}
3169	return ""
3170}
3171
3172// OrigErr always returns nil, satisfies awserr.Error interface.
3173func (s *InvalidArgumentException) OrigErr() error {
3174	return nil
3175}
3176
3177func (s *InvalidArgumentException) Error() string {
3178	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3179}
3180
3181// Status code returns the HTTP status code for the request's response error.
3182func (s *InvalidArgumentException) StatusCode() int {
3183	return s.RespMetadata.StatusCode
3184}
3185
3186// RequestID returns the service's response RequestID for request.
3187func (s *InvalidArgumentException) RequestID() string {
3188	return s.RespMetadata.RequestID
3189}
3190
3191// Not implemented.
3192type InvalidDeviceException struct {
3193	_            struct{}                  `type:"structure"`
3194	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3195
3196	Message_ *string `locationName:"Message" type:"string"`
3197}
3198
3199// String returns the string representation
3200func (s InvalidDeviceException) String() string {
3201	return awsutil.Prettify(s)
3202}
3203
3204// GoString returns the string representation
3205func (s InvalidDeviceException) GoString() string {
3206	return s.String()
3207}
3208
3209func newErrorInvalidDeviceException(v protocol.ResponseMetadata) error {
3210	return &InvalidDeviceException{
3211		RespMetadata: v,
3212	}
3213}
3214
3215// Code returns the exception type name.
3216func (s *InvalidDeviceException) Code() string {
3217	return "InvalidDeviceException"
3218}
3219
3220// Message returns the exception's message.
3221func (s *InvalidDeviceException) Message() string {
3222	if s.Message_ != nil {
3223		return *s.Message_
3224	}
3225	return ""
3226}
3227
3228// OrigErr always returns nil, satisfies awserr.Error interface.
3229func (s *InvalidDeviceException) OrigErr() error {
3230	return nil
3231}
3232
3233func (s *InvalidDeviceException) Error() string {
3234	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3235}
3236
3237// Status code returns the HTTP status code for the request's response error.
3238func (s *InvalidDeviceException) StatusCode() int {
3239	return s.RespMetadata.StatusCode
3240}
3241
3242// RequestID returns the service's response RequestID for request.
3243func (s *InvalidDeviceException) RequestID() string {
3244	return s.RespMetadata.RequestID
3245}
3246
3247// The format of the StreamARN is invalid.
3248type InvalidResourceFormatException struct {
3249	_            struct{}                  `type:"structure"`
3250	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3251
3252	Message_ *string `locationName:"Message" type:"string"`
3253}
3254
3255// String returns the string representation
3256func (s InvalidResourceFormatException) String() string {
3257	return awsutil.Prettify(s)
3258}
3259
3260// GoString returns the string representation
3261func (s InvalidResourceFormatException) GoString() string {
3262	return s.String()
3263}
3264
3265func newErrorInvalidResourceFormatException(v protocol.ResponseMetadata) error {
3266	return &InvalidResourceFormatException{
3267		RespMetadata: v,
3268	}
3269}
3270
3271// Code returns the exception type name.
3272func (s *InvalidResourceFormatException) Code() string {
3273	return "InvalidResourceFormatException"
3274}
3275
3276// Message returns the exception's message.
3277func (s *InvalidResourceFormatException) Message() string {
3278	if s.Message_ != nil {
3279		return *s.Message_
3280	}
3281	return ""
3282}
3283
3284// OrigErr always returns nil, satisfies awserr.Error interface.
3285func (s *InvalidResourceFormatException) OrigErr() error {
3286	return nil
3287}
3288
3289func (s *InvalidResourceFormatException) Error() string {
3290	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3291}
3292
3293// Status code returns the HTTP status code for the request's response error.
3294func (s *InvalidResourceFormatException) StatusCode() int {
3295	return s.RespMetadata.StatusCode
3296}
3297
3298// RequestID returns the service's response RequestID for request.
3299func (s *InvalidResourceFormatException) RequestID() string {
3300	return s.RespMetadata.RequestID
3301}
3302
3303type ListSignalingChannelsInput struct {
3304	_ struct{} `type:"structure"`
3305
3306	// Optional: Returns only the channels that satisfy a specific condition.
3307	ChannelNameCondition *ChannelNameCondition `type:"structure"`
3308
3309	// The maximum number of channels to return in the response. The default is
3310	// 500.
3311	MaxResults *int64 `min:"1" type:"integer"`
3312
3313	// If you specify this parameter, when the result of a ListSignalingChannels
3314	// operation is truncated, the call returns the NextToken in the response. To
3315	// get another batch of channels, provide this token in your next request.
3316	NextToken *string `type:"string"`
3317}
3318
3319// String returns the string representation
3320func (s ListSignalingChannelsInput) String() string {
3321	return awsutil.Prettify(s)
3322}
3323
3324// GoString returns the string representation
3325func (s ListSignalingChannelsInput) GoString() string {
3326	return s.String()
3327}
3328
3329// Validate inspects the fields of the type to determine if they are valid.
3330func (s *ListSignalingChannelsInput) Validate() error {
3331	invalidParams := request.ErrInvalidParams{Context: "ListSignalingChannelsInput"}
3332	if s.MaxResults != nil && *s.MaxResults < 1 {
3333		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3334	}
3335	if s.ChannelNameCondition != nil {
3336		if err := s.ChannelNameCondition.Validate(); err != nil {
3337			invalidParams.AddNested("ChannelNameCondition", err.(request.ErrInvalidParams))
3338		}
3339	}
3340
3341	if invalidParams.Len() > 0 {
3342		return invalidParams
3343	}
3344	return nil
3345}
3346
3347// SetChannelNameCondition sets the ChannelNameCondition field's value.
3348func (s *ListSignalingChannelsInput) SetChannelNameCondition(v *ChannelNameCondition) *ListSignalingChannelsInput {
3349	s.ChannelNameCondition = v
3350	return s
3351}
3352
3353// SetMaxResults sets the MaxResults field's value.
3354func (s *ListSignalingChannelsInput) SetMaxResults(v int64) *ListSignalingChannelsInput {
3355	s.MaxResults = &v
3356	return s
3357}
3358
3359// SetNextToken sets the NextToken field's value.
3360func (s *ListSignalingChannelsInput) SetNextToken(v string) *ListSignalingChannelsInput {
3361	s.NextToken = &v
3362	return s
3363}
3364
3365type ListSignalingChannelsOutput struct {
3366	_ struct{} `type:"structure"`
3367
3368	// An array of ChannelInfo objects.
3369	ChannelInfoList []*ChannelInfo `type:"list"`
3370
3371	// If the response is truncated, the call returns this element with a token.
3372	// To get the next batch of streams, use this token in your next request.
3373	NextToken *string `type:"string"`
3374}
3375
3376// String returns the string representation
3377func (s ListSignalingChannelsOutput) String() string {
3378	return awsutil.Prettify(s)
3379}
3380
3381// GoString returns the string representation
3382func (s ListSignalingChannelsOutput) GoString() string {
3383	return s.String()
3384}
3385
3386// SetChannelInfoList sets the ChannelInfoList field's value.
3387func (s *ListSignalingChannelsOutput) SetChannelInfoList(v []*ChannelInfo) *ListSignalingChannelsOutput {
3388	s.ChannelInfoList = v
3389	return s
3390}
3391
3392// SetNextToken sets the NextToken field's value.
3393func (s *ListSignalingChannelsOutput) SetNextToken(v string) *ListSignalingChannelsOutput {
3394	s.NextToken = &v
3395	return s
3396}
3397
3398type ListStreamsInput struct {
3399	_ struct{} `type:"structure"`
3400
3401	// The maximum number of streams to return in the response. The default is 10,000.
3402	MaxResults *int64 `min:"1" type:"integer"`
3403
3404	// If you specify this parameter, when the result of a ListStreams operation
3405	// is truncated, the call returns the NextToken in the response. To get another
3406	// batch of streams, provide this token in your next request.
3407	NextToken *string `type:"string"`
3408
3409	// Optional: Returns only streams that satisfy a specific condition. Currently,
3410	// you can specify only the prefix of a stream name as a condition.
3411	StreamNameCondition *StreamNameCondition `type:"structure"`
3412}
3413
3414// String returns the string representation
3415func (s ListStreamsInput) String() string {
3416	return awsutil.Prettify(s)
3417}
3418
3419// GoString returns the string representation
3420func (s ListStreamsInput) GoString() string {
3421	return s.String()
3422}
3423
3424// Validate inspects the fields of the type to determine if they are valid.
3425func (s *ListStreamsInput) Validate() error {
3426	invalidParams := request.ErrInvalidParams{Context: "ListStreamsInput"}
3427	if s.MaxResults != nil && *s.MaxResults < 1 {
3428		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3429	}
3430	if s.StreamNameCondition != nil {
3431		if err := s.StreamNameCondition.Validate(); err != nil {
3432			invalidParams.AddNested("StreamNameCondition", err.(request.ErrInvalidParams))
3433		}
3434	}
3435
3436	if invalidParams.Len() > 0 {
3437		return invalidParams
3438	}
3439	return nil
3440}
3441
3442// SetMaxResults sets the MaxResults field's value.
3443func (s *ListStreamsInput) SetMaxResults(v int64) *ListStreamsInput {
3444	s.MaxResults = &v
3445	return s
3446}
3447
3448// SetNextToken sets the NextToken field's value.
3449func (s *ListStreamsInput) SetNextToken(v string) *ListStreamsInput {
3450	s.NextToken = &v
3451	return s
3452}
3453
3454// SetStreamNameCondition sets the StreamNameCondition field's value.
3455func (s *ListStreamsInput) SetStreamNameCondition(v *StreamNameCondition) *ListStreamsInput {
3456	s.StreamNameCondition = v
3457	return s
3458}
3459
3460type ListStreamsOutput struct {
3461	_ struct{} `type:"structure"`
3462
3463	// If the response is truncated, the call returns this element with a token.
3464	// To get the next batch of streams, use this token in your next request.
3465	NextToken *string `type:"string"`
3466
3467	// An array of StreamInfo objects.
3468	StreamInfoList []*StreamInfo `type:"list"`
3469}
3470
3471// String returns the string representation
3472func (s ListStreamsOutput) String() string {
3473	return awsutil.Prettify(s)
3474}
3475
3476// GoString returns the string representation
3477func (s ListStreamsOutput) GoString() string {
3478	return s.String()
3479}
3480
3481// SetNextToken sets the NextToken field's value.
3482func (s *ListStreamsOutput) SetNextToken(v string) *ListStreamsOutput {
3483	s.NextToken = &v
3484	return s
3485}
3486
3487// SetStreamInfoList sets the StreamInfoList field's value.
3488func (s *ListStreamsOutput) SetStreamInfoList(v []*StreamInfo) *ListStreamsOutput {
3489	s.StreamInfoList = v
3490	return s
3491}
3492
3493type ListTagsForResourceInput struct {
3494	_ struct{} `type:"structure"`
3495
3496	// If you specify this parameter and the result of a ListTagsForResource call
3497	// is truncated, the response includes a token that you can use in the next
3498	// request to fetch the next batch of tags.
3499	NextToken *string `type:"string"`
3500
3501	// The Amazon Resource Name (ARN) of the signaling channel for which you want
3502	// to list tags.
3503	//
3504	// ResourceARN is a required field
3505	ResourceARN *string `min:"1" type:"string" required:"true"`
3506}
3507
3508// String returns the string representation
3509func (s ListTagsForResourceInput) String() string {
3510	return awsutil.Prettify(s)
3511}
3512
3513// GoString returns the string representation
3514func (s ListTagsForResourceInput) GoString() string {
3515	return s.String()
3516}
3517
3518// Validate inspects the fields of the type to determine if they are valid.
3519func (s *ListTagsForResourceInput) Validate() error {
3520	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
3521	if s.ResourceARN == nil {
3522		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
3523	}
3524	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
3525		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
3526	}
3527
3528	if invalidParams.Len() > 0 {
3529		return invalidParams
3530	}
3531	return nil
3532}
3533
3534// SetNextToken sets the NextToken field's value.
3535func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
3536	s.NextToken = &v
3537	return s
3538}
3539
3540// SetResourceARN sets the ResourceARN field's value.
3541func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
3542	s.ResourceARN = &v
3543	return s
3544}
3545
3546type ListTagsForResourceOutput struct {
3547	_ struct{} `type:"structure"`
3548
3549	// If you specify this parameter and the result of a ListTagsForResource call
3550	// is truncated, the response includes a token that you can use in the next
3551	// request to fetch the next set of tags.
3552	NextToken *string `type:"string"`
3553
3554	// A map of tag keys and values associated with the specified signaling channel.
3555	Tags map[string]*string `min:"1" type:"map"`
3556}
3557
3558// String returns the string representation
3559func (s ListTagsForResourceOutput) String() string {
3560	return awsutil.Prettify(s)
3561}
3562
3563// GoString returns the string representation
3564func (s ListTagsForResourceOutput) GoString() string {
3565	return s.String()
3566}
3567
3568// SetNextToken sets the NextToken field's value.
3569func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
3570	s.NextToken = &v
3571	return s
3572}
3573
3574// SetTags sets the Tags field's value.
3575func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
3576	s.Tags = v
3577	return s
3578}
3579
3580type ListTagsForStreamInput struct {
3581	_ struct{} `type:"structure"`
3582
3583	// If you specify this parameter and the result of a ListTagsForStream call
3584	// is truncated, the response includes a token that you can use in the next
3585	// request to fetch the next batch of tags.
3586	NextToken *string `type:"string"`
3587
3588	// The Amazon Resource Name (ARN) of the stream that you want to list tags for.
3589	StreamARN *string `min:"1" type:"string"`
3590
3591	// The name of the stream that you want to list tags for.
3592	StreamName *string `min:"1" type:"string"`
3593}
3594
3595// String returns the string representation
3596func (s ListTagsForStreamInput) String() string {
3597	return awsutil.Prettify(s)
3598}
3599
3600// GoString returns the string representation
3601func (s ListTagsForStreamInput) GoString() string {
3602	return s.String()
3603}
3604
3605// Validate inspects the fields of the type to determine if they are valid.
3606func (s *ListTagsForStreamInput) Validate() error {
3607	invalidParams := request.ErrInvalidParams{Context: "ListTagsForStreamInput"}
3608	if s.StreamARN != nil && len(*s.StreamARN) < 1 {
3609		invalidParams.Add(request.NewErrParamMinLen("StreamARN", 1))
3610	}
3611	if s.StreamName != nil && len(*s.StreamName) < 1 {
3612		invalidParams.Add(request.NewErrParamMinLen("StreamName", 1))
3613	}
3614
3615	if invalidParams.Len() > 0 {
3616		return invalidParams
3617	}
3618	return nil
3619}
3620
3621// SetNextToken sets the NextToken field's value.
3622func (s *ListTagsForStreamInput) SetNextToken(v string) *ListTagsForStreamInput {
3623	s.NextToken = &v
3624	return s
3625}
3626
3627// SetStreamARN sets the StreamARN field's value.
3628func (s *ListTagsForStreamInput) SetStreamARN(v string) *ListTagsForStreamInput {
3629	s.StreamARN = &v
3630	return s
3631}
3632
3633// SetStreamName sets the StreamName field's value.
3634func (s *ListTagsForStreamInput) SetStreamName(v string) *ListTagsForStreamInput {
3635	s.StreamName = &v
3636	return s
3637}
3638
3639type ListTagsForStreamOutput struct {
3640	_ struct{} `type:"structure"`
3641
3642	// If you specify this parameter and the result of a ListTags call is truncated,
3643	// the response includes a token that you can use in the next request to fetch
3644	// the next set of tags.
3645	NextToken *string `type:"string"`
3646
3647	// A map of tag keys and values associated with the specified stream.
3648	Tags map[string]*string `min:"1" type:"map"`
3649}
3650
3651// String returns the string representation
3652func (s ListTagsForStreamOutput) String() string {
3653	return awsutil.Prettify(s)
3654}
3655
3656// GoString returns the string representation
3657func (s ListTagsForStreamOutput) GoString() string {
3658	return s.String()
3659}
3660
3661// SetNextToken sets the NextToken field's value.
3662func (s *ListTagsForStreamOutput) SetNextToken(v string) *ListTagsForStreamOutput {
3663	s.NextToken = &v
3664	return s
3665}
3666
3667// SetTags sets the Tags field's value.
3668func (s *ListTagsForStreamOutput) SetTags(v map[string]*string) *ListTagsForStreamOutput {
3669	s.Tags = v
3670	return s
3671}
3672
3673// The caller is not authorized to perform this operation.
3674type NotAuthorizedException struct {
3675	_            struct{}                  `type:"structure"`
3676	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3677
3678	Message_ *string `locationName:"Message" type:"string"`
3679}
3680
3681// String returns the string representation
3682func (s NotAuthorizedException) String() string {
3683	return awsutil.Prettify(s)
3684}
3685
3686// GoString returns the string representation
3687func (s NotAuthorizedException) GoString() string {
3688	return s.String()
3689}
3690
3691func newErrorNotAuthorizedException(v protocol.ResponseMetadata) error {
3692	return &NotAuthorizedException{
3693		RespMetadata: v,
3694	}
3695}
3696
3697// Code returns the exception type name.
3698func (s *NotAuthorizedException) Code() string {
3699	return "NotAuthorizedException"
3700}
3701
3702// Message returns the exception's message.
3703func (s *NotAuthorizedException) Message() string {
3704	if s.Message_ != nil {
3705		return *s.Message_
3706	}
3707	return ""
3708}
3709
3710// OrigErr always returns nil, satisfies awserr.Error interface.
3711func (s *NotAuthorizedException) OrigErr() error {
3712	return nil
3713}
3714
3715func (s *NotAuthorizedException) Error() string {
3716	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3717}
3718
3719// Status code returns the HTTP status code for the request's response error.
3720func (s *NotAuthorizedException) StatusCode() int {
3721	return s.RespMetadata.StatusCode
3722}
3723
3724// RequestID returns the service's response RequestID for request.
3725func (s *NotAuthorizedException) RequestID() string {
3726	return s.RespMetadata.RequestID
3727}
3728
3729// An object that describes the endpoint of the signaling channel returned by
3730// the GetSignalingChannelEndpoint API.
3731type ResourceEndpointListItem struct {
3732	_ struct{} `type:"structure"`
3733
3734	// The protocol of the signaling channel returned by the GetSignalingChannelEndpoint
3735	// API.
3736	Protocol *string `type:"string" enum:"ChannelProtocol"`
3737
3738	// The endpoint of the signaling channel returned by the GetSignalingChannelEndpoint
3739	// API.
3740	ResourceEndpoint *string `type:"string"`
3741}
3742
3743// String returns the string representation
3744func (s ResourceEndpointListItem) String() string {
3745	return awsutil.Prettify(s)
3746}
3747
3748// GoString returns the string representation
3749func (s ResourceEndpointListItem) GoString() string {
3750	return s.String()
3751}
3752
3753// SetProtocol sets the Protocol field's value.
3754func (s *ResourceEndpointListItem) SetProtocol(v string) *ResourceEndpointListItem {
3755	s.Protocol = &v
3756	return s
3757}
3758
3759// SetResourceEndpoint sets the ResourceEndpoint field's value.
3760func (s *ResourceEndpointListItem) SetResourceEndpoint(v string) *ResourceEndpointListItem {
3761	s.ResourceEndpoint = &v
3762	return s
3763}
3764
3765// The signaling channel is currently not available for this operation.
3766type ResourceInUseException struct {
3767	_            struct{}                  `type:"structure"`
3768	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3769
3770	Message_ *string `locationName:"Message" type:"string"`
3771}
3772
3773// String returns the string representation
3774func (s ResourceInUseException) String() string {
3775	return awsutil.Prettify(s)
3776}
3777
3778// GoString returns the string representation
3779func (s ResourceInUseException) GoString() string {
3780	return s.String()
3781}
3782
3783func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
3784	return &ResourceInUseException{
3785		RespMetadata: v,
3786	}
3787}
3788
3789// Code returns the exception type name.
3790func (s *ResourceInUseException) Code() string {
3791	return "ResourceInUseException"
3792}
3793
3794// Message returns the exception's message.
3795func (s *ResourceInUseException) Message() string {
3796	if s.Message_ != nil {
3797		return *s.Message_
3798	}
3799	return ""
3800}
3801
3802// OrigErr always returns nil, satisfies awserr.Error interface.
3803func (s *ResourceInUseException) OrigErr() error {
3804	return nil
3805}
3806
3807func (s *ResourceInUseException) Error() string {
3808	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3809}
3810
3811// Status code returns the HTTP status code for the request's response error.
3812func (s *ResourceInUseException) StatusCode() int {
3813	return s.RespMetadata.StatusCode
3814}
3815
3816// RequestID returns the service's response RequestID for request.
3817func (s *ResourceInUseException) RequestID() string {
3818	return s.RespMetadata.RequestID
3819}
3820
3821// Amazon Kinesis Video Streams can't find the stream that you specified.
3822type ResourceNotFoundException struct {
3823	_            struct{}                  `type:"structure"`
3824	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3825
3826	Message_ *string `locationName:"Message" type:"string"`
3827}
3828
3829// String returns the string representation
3830func (s ResourceNotFoundException) String() string {
3831	return awsutil.Prettify(s)
3832}
3833
3834// GoString returns the string representation
3835func (s ResourceNotFoundException) GoString() string {
3836	return s.String()
3837}
3838
3839func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
3840	return &ResourceNotFoundException{
3841		RespMetadata: v,
3842	}
3843}
3844
3845// Code returns the exception type name.
3846func (s *ResourceNotFoundException) Code() string {
3847	return "ResourceNotFoundException"
3848}
3849
3850// Message returns the exception's message.
3851func (s *ResourceNotFoundException) Message() string {
3852	if s.Message_ != nil {
3853		return *s.Message_
3854	}
3855	return ""
3856}
3857
3858// OrigErr always returns nil, satisfies awserr.Error interface.
3859func (s *ResourceNotFoundException) OrigErr() error {
3860	return nil
3861}
3862
3863func (s *ResourceNotFoundException) Error() string {
3864	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3865}
3866
3867// Status code returns the HTTP status code for the request's response error.
3868func (s *ResourceNotFoundException) StatusCode() int {
3869	return s.RespMetadata.StatusCode
3870}
3871
3872// RequestID returns the service's response RequestID for request.
3873func (s *ResourceNotFoundException) RequestID() string {
3874	return s.RespMetadata.RequestID
3875}
3876
3877// An object that contains the endpoint configuration for the SINGLE_MASTER
3878// channel type.
3879type SingleMasterChannelEndpointConfiguration struct {
3880	_ struct{} `type:"structure"`
3881
3882	// This property is used to determine the nature of communication over this
3883	// SINGLE_MASTER signaling channel. If WSS is specified, this API returns a
3884	// websocket endpoint. If HTTPS is specified, this API returns an HTTPS endpoint.
3885	Protocols []*string `min:"1" type:"list"`
3886
3887	// This property is used to determine messaging permissions in this SINGLE_MASTER
3888	// signaling channel. If MASTER is specified, this API returns an endpoint that
3889	// a client can use to receive offers from and send answers to any of the viewers
3890	// on this signaling channel. If VIEWER is specified, this API returns an endpoint
3891	// that a client can use only to send offers to another MASTER client on this
3892	// signaling channel.
3893	Role *string `type:"string" enum:"ChannelRole"`
3894}
3895
3896// String returns the string representation
3897func (s SingleMasterChannelEndpointConfiguration) String() string {
3898	return awsutil.Prettify(s)
3899}
3900
3901// GoString returns the string representation
3902func (s SingleMasterChannelEndpointConfiguration) GoString() string {
3903	return s.String()
3904}
3905
3906// Validate inspects the fields of the type to determine if they are valid.
3907func (s *SingleMasterChannelEndpointConfiguration) Validate() error {
3908	invalidParams := request.ErrInvalidParams{Context: "SingleMasterChannelEndpointConfiguration"}
3909	if s.Protocols != nil && len(s.Protocols) < 1 {
3910		invalidParams.Add(request.NewErrParamMinLen("Protocols", 1))
3911	}
3912
3913	if invalidParams.Len() > 0 {
3914		return invalidParams
3915	}
3916	return nil
3917}
3918
3919// SetProtocols sets the Protocols field's value.
3920func (s *SingleMasterChannelEndpointConfiguration) SetProtocols(v []*string) *SingleMasterChannelEndpointConfiguration {
3921	s.Protocols = v
3922	return s
3923}
3924
3925// SetRole sets the Role field's value.
3926func (s *SingleMasterChannelEndpointConfiguration) SetRole(v string) *SingleMasterChannelEndpointConfiguration {
3927	s.Role = &v
3928	return s
3929}
3930
3931// A structure that contains the configuration for the SINGLE_MASTER channel
3932// type.
3933type SingleMasterConfiguration struct {
3934	_ struct{} `type:"structure"`
3935
3936	// The period of time a signaling channel retains underlivered messages before
3937	// they are discarded.
3938	MessageTtlSeconds *int64 `min:"5" type:"integer"`
3939}
3940
3941// String returns the string representation
3942func (s SingleMasterConfiguration) String() string {
3943	return awsutil.Prettify(s)
3944}
3945
3946// GoString returns the string representation
3947func (s SingleMasterConfiguration) GoString() string {
3948	return s.String()
3949}
3950
3951// Validate inspects the fields of the type to determine if they are valid.
3952func (s *SingleMasterConfiguration) Validate() error {
3953	invalidParams := request.ErrInvalidParams{Context: "SingleMasterConfiguration"}
3954	if s.MessageTtlSeconds != nil && *s.MessageTtlSeconds < 5 {
3955		invalidParams.Add(request.NewErrParamMinValue("MessageTtlSeconds", 5))
3956	}
3957
3958	if invalidParams.Len() > 0 {
3959		return invalidParams
3960	}
3961	return nil
3962}
3963
3964// SetMessageTtlSeconds sets the MessageTtlSeconds field's value.
3965func (s *SingleMasterConfiguration) SetMessageTtlSeconds(v int64) *SingleMasterConfiguration {
3966	s.MessageTtlSeconds = &v
3967	return s
3968}
3969
3970// An object describing a Kinesis video stream.
3971type StreamInfo struct {
3972	_ struct{} `type:"structure"`
3973
3974	// A time stamp that indicates when the stream was created.
3975	CreationTime *time.Time `type:"timestamp"`
3976
3977	// How long the stream retains data, in hours.
3978	DataRetentionInHours *int64 `type:"integer"`
3979
3980	// The name of the device that is associated with the stream.
3981	DeviceName *string `min:"1" type:"string"`
3982
3983	// The ID of the AWS Key Management Service (AWS KMS) key that Kinesis Video
3984	// Streams uses to encrypt data on the stream.
3985	KmsKeyId *string `min:"1" type:"string"`
3986
3987	// The MediaType of the stream.
3988	MediaType *string `min:"1" type:"string"`
3989
3990	// The status of the stream.
3991	Status *string `type:"string" enum:"Status"`
3992
3993	// The Amazon Resource Name (ARN) of the stream.
3994	StreamARN *string `min:"1" type:"string"`
3995
3996	// The name of the stream.
3997	StreamName *string `min:"1" type:"string"`
3998
3999	// The version of the stream.
4000	Version *string `min:"1" type:"string"`
4001}
4002
4003// String returns the string representation
4004func (s StreamInfo) String() string {
4005	return awsutil.Prettify(s)
4006}
4007
4008// GoString returns the string representation
4009func (s StreamInfo) GoString() string {
4010	return s.String()
4011}
4012
4013// SetCreationTime sets the CreationTime field's value.
4014func (s *StreamInfo) SetCreationTime(v time.Time) *StreamInfo {
4015	s.CreationTime = &v
4016	return s
4017}
4018
4019// SetDataRetentionInHours sets the DataRetentionInHours field's value.
4020func (s *StreamInfo) SetDataRetentionInHours(v int64) *StreamInfo {
4021	s.DataRetentionInHours = &v
4022	return s
4023}
4024
4025// SetDeviceName sets the DeviceName field's value.
4026func (s *StreamInfo) SetDeviceName(v string) *StreamInfo {
4027	s.DeviceName = &v
4028	return s
4029}
4030
4031// SetKmsKeyId sets the KmsKeyId field's value.
4032func (s *StreamInfo) SetKmsKeyId(v string) *StreamInfo {
4033	s.KmsKeyId = &v
4034	return s
4035}
4036
4037// SetMediaType sets the MediaType field's value.
4038func (s *StreamInfo) SetMediaType(v string) *StreamInfo {
4039	s.MediaType = &v
4040	return s
4041}
4042
4043// SetStatus sets the Status field's value.
4044func (s *StreamInfo) SetStatus(v string) *StreamInfo {
4045	s.Status = &v
4046	return s
4047}
4048
4049// SetStreamARN sets the StreamARN field's value.
4050func (s *StreamInfo) SetStreamARN(v string) *StreamInfo {
4051	s.StreamARN = &v
4052	return s
4053}
4054
4055// SetStreamName sets the StreamName field's value.
4056func (s *StreamInfo) SetStreamName(v string) *StreamInfo {
4057	s.StreamName = &v
4058	return s
4059}
4060
4061// SetVersion sets the Version field's value.
4062func (s *StreamInfo) SetVersion(v string) *StreamInfo {
4063	s.Version = &v
4064	return s
4065}
4066
4067// Specifies the condition that streams must satisfy to be returned when you
4068// list streams (see the ListStreams API). A condition has a comparison operation
4069// and a value. Currently, you can specify only the BEGINS_WITH operator, which
4070// finds streams whose names start with a given prefix.
4071type StreamNameCondition struct {
4072	_ struct{} `type:"structure"`
4073
4074	// A comparison operator. Currently, you can specify only the BEGINS_WITH operator,
4075	// which finds streams whose names start with a given prefix.
4076	ComparisonOperator *string `type:"string" enum:"ComparisonOperator"`
4077
4078	// A value to compare.
4079	ComparisonValue *string `min:"1" type:"string"`
4080}
4081
4082// String returns the string representation
4083func (s StreamNameCondition) String() string {
4084	return awsutil.Prettify(s)
4085}
4086
4087// GoString returns the string representation
4088func (s StreamNameCondition) GoString() string {
4089	return s.String()
4090}
4091
4092// Validate inspects the fields of the type to determine if they are valid.
4093func (s *StreamNameCondition) Validate() error {
4094	invalidParams := request.ErrInvalidParams{Context: "StreamNameCondition"}
4095	if s.ComparisonValue != nil && len(*s.ComparisonValue) < 1 {
4096		invalidParams.Add(request.NewErrParamMinLen("ComparisonValue", 1))
4097	}
4098
4099	if invalidParams.Len() > 0 {
4100		return invalidParams
4101	}
4102	return nil
4103}
4104
4105// SetComparisonOperator sets the ComparisonOperator field's value.
4106func (s *StreamNameCondition) SetComparisonOperator(v string) *StreamNameCondition {
4107	s.ComparisonOperator = &v
4108	return s
4109}
4110
4111// SetComparisonValue sets the ComparisonValue field's value.
4112func (s *StreamNameCondition) SetComparisonValue(v string) *StreamNameCondition {
4113	s.ComparisonValue = &v
4114	return s
4115}
4116
4117// A key and value pair that is associated with the specified signaling channel.
4118type Tag struct {
4119	_ struct{} `type:"structure"`
4120
4121	// The key of the tag that is associated with the specified signaling channel.
4122	//
4123	// Key is a required field
4124	Key *string `min:"1" type:"string" required:"true"`
4125
4126	// The value of the tag that is associated with the specified signaling channel.
4127	//
4128	// Value is a required field
4129	Value *string `type:"string" required:"true"`
4130}
4131
4132// String returns the string representation
4133func (s Tag) String() string {
4134	return awsutil.Prettify(s)
4135}
4136
4137// GoString returns the string representation
4138func (s Tag) GoString() string {
4139	return s.String()
4140}
4141
4142// Validate inspects the fields of the type to determine if they are valid.
4143func (s *Tag) Validate() error {
4144	invalidParams := request.ErrInvalidParams{Context: "Tag"}
4145	if s.Key == nil {
4146		invalidParams.Add(request.NewErrParamRequired("Key"))
4147	}
4148	if s.Key != nil && len(*s.Key) < 1 {
4149		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
4150	}
4151	if s.Value == nil {
4152		invalidParams.Add(request.NewErrParamRequired("Value"))
4153	}
4154
4155	if invalidParams.Len() > 0 {
4156		return invalidParams
4157	}
4158	return nil
4159}
4160
4161// SetKey sets the Key field's value.
4162func (s *Tag) SetKey(v string) *Tag {
4163	s.Key = &v
4164	return s
4165}
4166
4167// SetValue sets the Value field's value.
4168func (s *Tag) SetValue(v string) *Tag {
4169	s.Value = &v
4170	return s
4171}
4172
4173type TagResourceInput struct {
4174	_ struct{} `type:"structure"`
4175
4176	// The Amazon Resource Name (ARN) of the signaling channel to which you want
4177	// to add tags.
4178	//
4179	// ResourceARN is a required field
4180	ResourceARN *string `min:"1" type:"string" required:"true"`
4181
4182	// A list of tags to associate with the specified signaling channel. Each tag
4183	// is a key-value pair.
4184	//
4185	// Tags is a required field
4186	Tags []*Tag `min:"1" type:"list" required:"true"`
4187}
4188
4189// String returns the string representation
4190func (s TagResourceInput) String() string {
4191	return awsutil.Prettify(s)
4192}
4193
4194// GoString returns the string representation
4195func (s TagResourceInput) GoString() string {
4196	return s.String()
4197}
4198
4199// Validate inspects the fields of the type to determine if they are valid.
4200func (s *TagResourceInput) Validate() error {
4201	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
4202	if s.ResourceARN == nil {
4203		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
4204	}
4205	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
4206		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
4207	}
4208	if s.Tags == nil {
4209		invalidParams.Add(request.NewErrParamRequired("Tags"))
4210	}
4211	if s.Tags != nil && len(s.Tags) < 1 {
4212		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
4213	}
4214	if s.Tags != nil {
4215		for i, v := range s.Tags {
4216			if v == nil {
4217				continue
4218			}
4219			if err := v.Validate(); err != nil {
4220				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4221			}
4222		}
4223	}
4224
4225	if invalidParams.Len() > 0 {
4226		return invalidParams
4227	}
4228	return nil
4229}
4230
4231// SetResourceARN sets the ResourceARN field's value.
4232func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
4233	s.ResourceARN = &v
4234	return s
4235}
4236
4237// SetTags sets the Tags field's value.
4238func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
4239	s.Tags = v
4240	return s
4241}
4242
4243type TagResourceOutput struct {
4244	_ struct{} `type:"structure"`
4245}
4246
4247// String returns the string representation
4248func (s TagResourceOutput) String() string {
4249	return awsutil.Prettify(s)
4250}
4251
4252// GoString returns the string representation
4253func (s TagResourceOutput) GoString() string {
4254	return s.String()
4255}
4256
4257type TagStreamInput struct {
4258	_ struct{} `type:"structure"`
4259
4260	// The Amazon Resource Name (ARN) of the resource that you want to add the tag
4261	// or tags to.
4262	StreamARN *string `min:"1" type:"string"`
4263
4264	// The name of the stream that you want to add the tag or tags to.
4265	StreamName *string `min:"1" type:"string"`
4266
4267	// A list of tags to associate with the specified stream. Each tag is a key-value
4268	// pair (the value is optional).
4269	//
4270	// Tags is a required field
4271	Tags map[string]*string `min:"1" type:"map" required:"true"`
4272}
4273
4274// String returns the string representation
4275func (s TagStreamInput) String() string {
4276	return awsutil.Prettify(s)
4277}
4278
4279// GoString returns the string representation
4280func (s TagStreamInput) GoString() string {
4281	return s.String()
4282}
4283
4284// Validate inspects the fields of the type to determine if they are valid.
4285func (s *TagStreamInput) Validate() error {
4286	invalidParams := request.ErrInvalidParams{Context: "TagStreamInput"}
4287	if s.StreamARN != nil && len(*s.StreamARN) < 1 {
4288		invalidParams.Add(request.NewErrParamMinLen("StreamARN", 1))
4289	}
4290	if s.StreamName != nil && len(*s.StreamName) < 1 {
4291		invalidParams.Add(request.NewErrParamMinLen("StreamName", 1))
4292	}
4293	if s.Tags == nil {
4294		invalidParams.Add(request.NewErrParamRequired("Tags"))
4295	}
4296	if s.Tags != nil && len(s.Tags) < 1 {
4297		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
4298	}
4299
4300	if invalidParams.Len() > 0 {
4301		return invalidParams
4302	}
4303	return nil
4304}
4305
4306// SetStreamARN sets the StreamARN field's value.
4307func (s *TagStreamInput) SetStreamARN(v string) *TagStreamInput {
4308	s.StreamARN = &v
4309	return s
4310}
4311
4312// SetStreamName sets the StreamName field's value.
4313func (s *TagStreamInput) SetStreamName(v string) *TagStreamInput {
4314	s.StreamName = &v
4315	return s
4316}
4317
4318// SetTags sets the Tags field's value.
4319func (s *TagStreamInput) SetTags(v map[string]*string) *TagStreamInput {
4320	s.Tags = v
4321	return s
4322}
4323
4324type TagStreamOutput struct {
4325	_ struct{} `type:"structure"`
4326}
4327
4328// String returns the string representation
4329func (s TagStreamOutput) String() string {
4330	return awsutil.Prettify(s)
4331}
4332
4333// GoString returns the string representation
4334func (s TagStreamOutput) GoString() string {
4335	return s.String()
4336}
4337
4338// You have exceeded the limit of tags that you can associate with the resource.
4339// Kinesis video streams support up to 50 tags.
4340type TagsPerResourceExceededLimitException struct {
4341	_            struct{}                  `type:"structure"`
4342	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4343
4344	Message_ *string `locationName:"Message" type:"string"`
4345}
4346
4347// String returns the string representation
4348func (s TagsPerResourceExceededLimitException) String() string {
4349	return awsutil.Prettify(s)
4350}
4351
4352// GoString returns the string representation
4353func (s TagsPerResourceExceededLimitException) GoString() string {
4354	return s.String()
4355}
4356
4357func newErrorTagsPerResourceExceededLimitException(v protocol.ResponseMetadata) error {
4358	return &TagsPerResourceExceededLimitException{
4359		RespMetadata: v,
4360	}
4361}
4362
4363// Code returns the exception type name.
4364func (s *TagsPerResourceExceededLimitException) Code() string {
4365	return "TagsPerResourceExceededLimitException"
4366}
4367
4368// Message returns the exception's message.
4369func (s *TagsPerResourceExceededLimitException) Message() string {
4370	if s.Message_ != nil {
4371		return *s.Message_
4372	}
4373	return ""
4374}
4375
4376// OrigErr always returns nil, satisfies awserr.Error interface.
4377func (s *TagsPerResourceExceededLimitException) OrigErr() error {
4378	return nil
4379}
4380
4381func (s *TagsPerResourceExceededLimitException) Error() string {
4382	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4383}
4384
4385// Status code returns the HTTP status code for the request's response error.
4386func (s *TagsPerResourceExceededLimitException) StatusCode() int {
4387	return s.RespMetadata.StatusCode
4388}
4389
4390// RequestID returns the service's response RequestID for request.
4391func (s *TagsPerResourceExceededLimitException) RequestID() string {
4392	return s.RespMetadata.RequestID
4393}
4394
4395type UntagResourceInput struct {
4396	_ struct{} `type:"structure"`
4397
4398	// The Amazon Resource Name (ARN) of the signaling channel from which you want
4399	// to remove tags.
4400	//
4401	// ResourceARN is a required field
4402	ResourceARN *string `min:"1" type:"string" required:"true"`
4403
4404	// A list of the keys of the tags that you want to remove.
4405	//
4406	// TagKeyList is a required field
4407	TagKeyList []*string `min:"1" type:"list" required:"true"`
4408}
4409
4410// String returns the string representation
4411func (s UntagResourceInput) String() string {
4412	return awsutil.Prettify(s)
4413}
4414
4415// GoString returns the string representation
4416func (s UntagResourceInput) GoString() string {
4417	return s.String()
4418}
4419
4420// Validate inspects the fields of the type to determine if they are valid.
4421func (s *UntagResourceInput) Validate() error {
4422	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
4423	if s.ResourceARN == nil {
4424		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
4425	}
4426	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
4427		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
4428	}
4429	if s.TagKeyList == nil {
4430		invalidParams.Add(request.NewErrParamRequired("TagKeyList"))
4431	}
4432	if s.TagKeyList != nil && len(s.TagKeyList) < 1 {
4433		invalidParams.Add(request.NewErrParamMinLen("TagKeyList", 1))
4434	}
4435
4436	if invalidParams.Len() > 0 {
4437		return invalidParams
4438	}
4439	return nil
4440}
4441
4442// SetResourceARN sets the ResourceARN field's value.
4443func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
4444	s.ResourceARN = &v
4445	return s
4446}
4447
4448// SetTagKeyList sets the TagKeyList field's value.
4449func (s *UntagResourceInput) SetTagKeyList(v []*string) *UntagResourceInput {
4450	s.TagKeyList = v
4451	return s
4452}
4453
4454type UntagResourceOutput struct {
4455	_ struct{} `type:"structure"`
4456}
4457
4458// String returns the string representation
4459func (s UntagResourceOutput) String() string {
4460	return awsutil.Prettify(s)
4461}
4462
4463// GoString returns the string representation
4464func (s UntagResourceOutput) GoString() string {
4465	return s.String()
4466}
4467
4468type UntagStreamInput struct {
4469	_ struct{} `type:"structure"`
4470
4471	// The Amazon Resource Name (ARN) of the stream that you want to remove tags
4472	// from.
4473	StreamARN *string `min:"1" type:"string"`
4474
4475	// The name of the stream that you want to remove tags from.
4476	StreamName *string `min:"1" type:"string"`
4477
4478	// A list of the keys of the tags that you want to remove.
4479	//
4480	// TagKeyList is a required field
4481	TagKeyList []*string `min:"1" type:"list" required:"true"`
4482}
4483
4484// String returns the string representation
4485func (s UntagStreamInput) String() string {
4486	return awsutil.Prettify(s)
4487}
4488
4489// GoString returns the string representation
4490func (s UntagStreamInput) GoString() string {
4491	return s.String()
4492}
4493
4494// Validate inspects the fields of the type to determine if they are valid.
4495func (s *UntagStreamInput) Validate() error {
4496	invalidParams := request.ErrInvalidParams{Context: "UntagStreamInput"}
4497	if s.StreamARN != nil && len(*s.StreamARN) < 1 {
4498		invalidParams.Add(request.NewErrParamMinLen("StreamARN", 1))
4499	}
4500	if s.StreamName != nil && len(*s.StreamName) < 1 {
4501		invalidParams.Add(request.NewErrParamMinLen("StreamName", 1))
4502	}
4503	if s.TagKeyList == nil {
4504		invalidParams.Add(request.NewErrParamRequired("TagKeyList"))
4505	}
4506	if s.TagKeyList != nil && len(s.TagKeyList) < 1 {
4507		invalidParams.Add(request.NewErrParamMinLen("TagKeyList", 1))
4508	}
4509
4510	if invalidParams.Len() > 0 {
4511		return invalidParams
4512	}
4513	return nil
4514}
4515
4516// SetStreamARN sets the StreamARN field's value.
4517func (s *UntagStreamInput) SetStreamARN(v string) *UntagStreamInput {
4518	s.StreamARN = &v
4519	return s
4520}
4521
4522// SetStreamName sets the StreamName field's value.
4523func (s *UntagStreamInput) SetStreamName(v string) *UntagStreamInput {
4524	s.StreamName = &v
4525	return s
4526}
4527
4528// SetTagKeyList sets the TagKeyList field's value.
4529func (s *UntagStreamInput) SetTagKeyList(v []*string) *UntagStreamInput {
4530	s.TagKeyList = v
4531	return s
4532}
4533
4534type UntagStreamOutput struct {
4535	_ struct{} `type:"structure"`
4536}
4537
4538// String returns the string representation
4539func (s UntagStreamOutput) String() string {
4540	return awsutil.Prettify(s)
4541}
4542
4543// GoString returns the string representation
4544func (s UntagStreamOutput) GoString() string {
4545	return s.String()
4546}
4547
4548type UpdateDataRetentionInput struct {
4549	_ struct{} `type:"structure"`
4550
4551	// The version of the stream whose retention period you want to change. To get
4552	// the version, call either the DescribeStream or the ListStreams API.
4553	//
4554	// CurrentVersion is a required field
4555	CurrentVersion *string `min:"1" type:"string" required:"true"`
4556
4557	// The retention period, in hours. The value you specify replaces the current
4558	// value. The maximum value for this parameter is 87600 (ten years).
4559	//
4560	// DataRetentionChangeInHours is a required field
4561	DataRetentionChangeInHours *int64 `min:"1" type:"integer" required:"true"`
4562
4563	// Indicates whether you want to increase or decrease the retention period.
4564	//
4565	// Operation is a required field
4566	Operation *string `type:"string" required:"true" enum:"UpdateDataRetentionOperation"`
4567
4568	// The Amazon Resource Name (ARN) of the stream whose retention period you want
4569	// to change.
4570	StreamARN *string `min:"1" type:"string"`
4571
4572	// The name of the stream whose retention period you want to change.
4573	StreamName *string `min:"1" type:"string"`
4574}
4575
4576// String returns the string representation
4577func (s UpdateDataRetentionInput) String() string {
4578	return awsutil.Prettify(s)
4579}
4580
4581// GoString returns the string representation
4582func (s UpdateDataRetentionInput) GoString() string {
4583	return s.String()
4584}
4585
4586// Validate inspects the fields of the type to determine if they are valid.
4587func (s *UpdateDataRetentionInput) Validate() error {
4588	invalidParams := request.ErrInvalidParams{Context: "UpdateDataRetentionInput"}
4589	if s.CurrentVersion == nil {
4590		invalidParams.Add(request.NewErrParamRequired("CurrentVersion"))
4591	}
4592	if s.CurrentVersion != nil && len(*s.CurrentVersion) < 1 {
4593		invalidParams.Add(request.NewErrParamMinLen("CurrentVersion", 1))
4594	}
4595	if s.DataRetentionChangeInHours == nil {
4596		invalidParams.Add(request.NewErrParamRequired("DataRetentionChangeInHours"))
4597	}
4598	if s.DataRetentionChangeInHours != nil && *s.DataRetentionChangeInHours < 1 {
4599		invalidParams.Add(request.NewErrParamMinValue("DataRetentionChangeInHours", 1))
4600	}
4601	if s.Operation == nil {
4602		invalidParams.Add(request.NewErrParamRequired("Operation"))
4603	}
4604	if s.StreamARN != nil && len(*s.StreamARN) < 1 {
4605		invalidParams.Add(request.NewErrParamMinLen("StreamARN", 1))
4606	}
4607	if s.StreamName != nil && len(*s.StreamName) < 1 {
4608		invalidParams.Add(request.NewErrParamMinLen("StreamName", 1))
4609	}
4610
4611	if invalidParams.Len() > 0 {
4612		return invalidParams
4613	}
4614	return nil
4615}
4616
4617// SetCurrentVersion sets the CurrentVersion field's value.
4618func (s *UpdateDataRetentionInput) SetCurrentVersion(v string) *UpdateDataRetentionInput {
4619	s.CurrentVersion = &v
4620	return s
4621}
4622
4623// SetDataRetentionChangeInHours sets the DataRetentionChangeInHours field's value.
4624func (s *UpdateDataRetentionInput) SetDataRetentionChangeInHours(v int64) *UpdateDataRetentionInput {
4625	s.DataRetentionChangeInHours = &v
4626	return s
4627}
4628
4629// SetOperation sets the Operation field's value.
4630func (s *UpdateDataRetentionInput) SetOperation(v string) *UpdateDataRetentionInput {
4631	s.Operation = &v
4632	return s
4633}
4634
4635// SetStreamARN sets the StreamARN field's value.
4636func (s *UpdateDataRetentionInput) SetStreamARN(v string) *UpdateDataRetentionInput {
4637	s.StreamARN = &v
4638	return s
4639}
4640
4641// SetStreamName sets the StreamName field's value.
4642func (s *UpdateDataRetentionInput) SetStreamName(v string) *UpdateDataRetentionInput {
4643	s.StreamName = &v
4644	return s
4645}
4646
4647type UpdateDataRetentionOutput struct {
4648	_ struct{} `type:"structure"`
4649}
4650
4651// String returns the string representation
4652func (s UpdateDataRetentionOutput) String() string {
4653	return awsutil.Prettify(s)
4654}
4655
4656// GoString returns the string representation
4657func (s UpdateDataRetentionOutput) GoString() string {
4658	return s.String()
4659}
4660
4661type UpdateSignalingChannelInput struct {
4662	_ struct{} `type:"structure"`
4663
4664	// The Amazon Resource Name (ARN) of the signaling channel that you want to
4665	// update.
4666	//
4667	// ChannelARN is a required field
4668	ChannelARN *string `min:"1" type:"string" required:"true"`
4669
4670	// The current version of the signaling channel that you want to update.
4671	//
4672	// CurrentVersion is a required field
4673	CurrentVersion *string `min:"1" type:"string" required:"true"`
4674
4675	// The structure containing the configuration for the SINGLE_MASTER type of
4676	// the signaling channel that you want to update.
4677	SingleMasterConfiguration *SingleMasterConfiguration `type:"structure"`
4678}
4679
4680// String returns the string representation
4681func (s UpdateSignalingChannelInput) String() string {
4682	return awsutil.Prettify(s)
4683}
4684
4685// GoString returns the string representation
4686func (s UpdateSignalingChannelInput) GoString() string {
4687	return s.String()
4688}
4689
4690// Validate inspects the fields of the type to determine if they are valid.
4691func (s *UpdateSignalingChannelInput) Validate() error {
4692	invalidParams := request.ErrInvalidParams{Context: "UpdateSignalingChannelInput"}
4693	if s.ChannelARN == nil {
4694		invalidParams.Add(request.NewErrParamRequired("ChannelARN"))
4695	}
4696	if s.ChannelARN != nil && len(*s.ChannelARN) < 1 {
4697		invalidParams.Add(request.NewErrParamMinLen("ChannelARN", 1))
4698	}
4699	if s.CurrentVersion == nil {
4700		invalidParams.Add(request.NewErrParamRequired("CurrentVersion"))
4701	}
4702	if s.CurrentVersion != nil && len(*s.CurrentVersion) < 1 {
4703		invalidParams.Add(request.NewErrParamMinLen("CurrentVersion", 1))
4704	}
4705	if s.SingleMasterConfiguration != nil {
4706		if err := s.SingleMasterConfiguration.Validate(); err != nil {
4707			invalidParams.AddNested("SingleMasterConfiguration", err.(request.ErrInvalidParams))
4708		}
4709	}
4710
4711	if invalidParams.Len() > 0 {
4712		return invalidParams
4713	}
4714	return nil
4715}
4716
4717// SetChannelARN sets the ChannelARN field's value.
4718func (s *UpdateSignalingChannelInput) SetChannelARN(v string) *UpdateSignalingChannelInput {
4719	s.ChannelARN = &v
4720	return s
4721}
4722
4723// SetCurrentVersion sets the CurrentVersion field's value.
4724func (s *UpdateSignalingChannelInput) SetCurrentVersion(v string) *UpdateSignalingChannelInput {
4725	s.CurrentVersion = &v
4726	return s
4727}
4728
4729// SetSingleMasterConfiguration sets the SingleMasterConfiguration field's value.
4730func (s *UpdateSignalingChannelInput) SetSingleMasterConfiguration(v *SingleMasterConfiguration) *UpdateSignalingChannelInput {
4731	s.SingleMasterConfiguration = v
4732	return s
4733}
4734
4735type UpdateSignalingChannelOutput struct {
4736	_ struct{} `type:"structure"`
4737}
4738
4739// String returns the string representation
4740func (s UpdateSignalingChannelOutput) String() string {
4741	return awsutil.Prettify(s)
4742}
4743
4744// GoString returns the string representation
4745func (s UpdateSignalingChannelOutput) GoString() string {
4746	return s.String()
4747}
4748
4749type UpdateStreamInput struct {
4750	_ struct{} `type:"structure"`
4751
4752	// The version of the stream whose metadata you want to update.
4753	//
4754	// CurrentVersion is a required field
4755	CurrentVersion *string `min:"1" type:"string" required:"true"`
4756
4757	// The name of the device that is writing to the stream.
4758	//
4759	// In the current implementation, Kinesis Video Streams does not use this name.
4760	DeviceName *string `min:"1" type:"string"`
4761
4762	// The stream's media type. Use MediaType to specify the type of content that
4763	// the stream contains to the consumers of the stream. For more information
4764	// about media types, see Media Types (http://www.iana.org/assignments/media-types/media-types.xhtml).
4765	// If you choose to specify the MediaType, see Naming Requirements (https://tools.ietf.org/html/rfc6838#section-4.2).
4766	//
4767	// To play video on the console, you must specify the correct video type. For
4768	// example, if the video in the stream is H.264, specify video/h264 as the MediaType.
4769	MediaType *string `min:"1" type:"string"`
4770
4771	// The ARN of the stream whose metadata you want to update.
4772	StreamARN *string `min:"1" type:"string"`
4773
4774	// The name of the stream whose metadata you want to update.
4775	//
4776	// The stream name is an identifier for the stream, and must be unique for each
4777	// account and region.
4778	StreamName *string `min:"1" type:"string"`
4779}
4780
4781// String returns the string representation
4782func (s UpdateStreamInput) String() string {
4783	return awsutil.Prettify(s)
4784}
4785
4786// GoString returns the string representation
4787func (s UpdateStreamInput) GoString() string {
4788	return s.String()
4789}
4790
4791// Validate inspects the fields of the type to determine if they are valid.
4792func (s *UpdateStreamInput) Validate() error {
4793	invalidParams := request.ErrInvalidParams{Context: "UpdateStreamInput"}
4794	if s.CurrentVersion == nil {
4795		invalidParams.Add(request.NewErrParamRequired("CurrentVersion"))
4796	}
4797	if s.CurrentVersion != nil && len(*s.CurrentVersion) < 1 {
4798		invalidParams.Add(request.NewErrParamMinLen("CurrentVersion", 1))
4799	}
4800	if s.DeviceName != nil && len(*s.DeviceName) < 1 {
4801		invalidParams.Add(request.NewErrParamMinLen("DeviceName", 1))
4802	}
4803	if s.MediaType != nil && len(*s.MediaType) < 1 {
4804		invalidParams.Add(request.NewErrParamMinLen("MediaType", 1))
4805	}
4806	if s.StreamARN != nil && len(*s.StreamARN) < 1 {
4807		invalidParams.Add(request.NewErrParamMinLen("StreamARN", 1))
4808	}
4809	if s.StreamName != nil && len(*s.StreamName) < 1 {
4810		invalidParams.Add(request.NewErrParamMinLen("StreamName", 1))
4811	}
4812
4813	if invalidParams.Len() > 0 {
4814		return invalidParams
4815	}
4816	return nil
4817}
4818
4819// SetCurrentVersion sets the CurrentVersion field's value.
4820func (s *UpdateStreamInput) SetCurrentVersion(v string) *UpdateStreamInput {
4821	s.CurrentVersion = &v
4822	return s
4823}
4824
4825// SetDeviceName sets the DeviceName field's value.
4826func (s *UpdateStreamInput) SetDeviceName(v string) *UpdateStreamInput {
4827	s.DeviceName = &v
4828	return s
4829}
4830
4831// SetMediaType sets the MediaType field's value.
4832func (s *UpdateStreamInput) SetMediaType(v string) *UpdateStreamInput {
4833	s.MediaType = &v
4834	return s
4835}
4836
4837// SetStreamARN sets the StreamARN field's value.
4838func (s *UpdateStreamInput) SetStreamARN(v string) *UpdateStreamInput {
4839	s.StreamARN = &v
4840	return s
4841}
4842
4843// SetStreamName sets the StreamName field's value.
4844func (s *UpdateStreamInput) SetStreamName(v string) *UpdateStreamInput {
4845	s.StreamName = &v
4846	return s
4847}
4848
4849type UpdateStreamOutput struct {
4850	_ struct{} `type:"structure"`
4851}
4852
4853// String returns the string representation
4854func (s UpdateStreamOutput) String() string {
4855	return awsutil.Prettify(s)
4856}
4857
4858// GoString returns the string representation
4859func (s UpdateStreamOutput) GoString() string {
4860	return s.String()
4861}
4862
4863// The stream version that you specified is not the latest version. To get the
4864// latest version, use the DescribeStream (https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DescribeStream.html)
4865// API.
4866type VersionMismatchException struct {
4867	_            struct{}                  `type:"structure"`
4868	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4869
4870	Message_ *string `locationName:"Message" type:"string"`
4871}
4872
4873// String returns the string representation
4874func (s VersionMismatchException) String() string {
4875	return awsutil.Prettify(s)
4876}
4877
4878// GoString returns the string representation
4879func (s VersionMismatchException) GoString() string {
4880	return s.String()
4881}
4882
4883func newErrorVersionMismatchException(v protocol.ResponseMetadata) error {
4884	return &VersionMismatchException{
4885		RespMetadata: v,
4886	}
4887}
4888
4889// Code returns the exception type name.
4890func (s *VersionMismatchException) Code() string {
4891	return "VersionMismatchException"
4892}
4893
4894// Message returns the exception's message.
4895func (s *VersionMismatchException) Message() string {
4896	if s.Message_ != nil {
4897		return *s.Message_
4898	}
4899	return ""
4900}
4901
4902// OrigErr always returns nil, satisfies awserr.Error interface.
4903func (s *VersionMismatchException) OrigErr() error {
4904	return nil
4905}
4906
4907func (s *VersionMismatchException) Error() string {
4908	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4909}
4910
4911// Status code returns the HTTP status code for the request's response error.
4912func (s *VersionMismatchException) StatusCode() int {
4913	return s.RespMetadata.StatusCode
4914}
4915
4916// RequestID returns the service's response RequestID for request.
4917func (s *VersionMismatchException) RequestID() string {
4918	return s.RespMetadata.RequestID
4919}
4920
4921const (
4922	// APINamePutMedia is a APIName enum value
4923	APINamePutMedia = "PUT_MEDIA"
4924
4925	// APINameGetMedia is a APIName enum value
4926	APINameGetMedia = "GET_MEDIA"
4927
4928	// APINameListFragments is a APIName enum value
4929	APINameListFragments = "LIST_FRAGMENTS"
4930
4931	// APINameGetMediaForFragmentList is a APIName enum value
4932	APINameGetMediaForFragmentList = "GET_MEDIA_FOR_FRAGMENT_LIST"
4933
4934	// APINameGetHlsStreamingSessionUrl is a APIName enum value
4935	APINameGetHlsStreamingSessionUrl = "GET_HLS_STREAMING_SESSION_URL"
4936
4937	// APINameGetDashStreamingSessionUrl is a APIName enum value
4938	APINameGetDashStreamingSessionUrl = "GET_DASH_STREAMING_SESSION_URL"
4939
4940	// APINameGetClip is a APIName enum value
4941	APINameGetClip = "GET_CLIP"
4942)
4943
4944// APIName_Values returns all elements of the APIName enum
4945func APIName_Values() []string {
4946	return []string{
4947		APINamePutMedia,
4948		APINameGetMedia,
4949		APINameListFragments,
4950		APINameGetMediaForFragmentList,
4951		APINameGetHlsStreamingSessionUrl,
4952		APINameGetDashStreamingSessionUrl,
4953		APINameGetClip,
4954	}
4955}
4956
4957const (
4958	// ChannelProtocolWss is a ChannelProtocol enum value
4959	ChannelProtocolWss = "WSS"
4960
4961	// ChannelProtocolHttps is a ChannelProtocol enum value
4962	ChannelProtocolHttps = "HTTPS"
4963)
4964
4965// ChannelProtocol_Values returns all elements of the ChannelProtocol enum
4966func ChannelProtocol_Values() []string {
4967	return []string{
4968		ChannelProtocolWss,
4969		ChannelProtocolHttps,
4970	}
4971}
4972
4973const (
4974	// ChannelRoleMaster is a ChannelRole enum value
4975	ChannelRoleMaster = "MASTER"
4976
4977	// ChannelRoleViewer is a ChannelRole enum value
4978	ChannelRoleViewer = "VIEWER"
4979)
4980
4981// ChannelRole_Values returns all elements of the ChannelRole enum
4982func ChannelRole_Values() []string {
4983	return []string{
4984		ChannelRoleMaster,
4985		ChannelRoleViewer,
4986	}
4987}
4988
4989const (
4990	// ChannelTypeSingleMaster is a ChannelType enum value
4991	ChannelTypeSingleMaster = "SINGLE_MASTER"
4992)
4993
4994// ChannelType_Values returns all elements of the ChannelType enum
4995func ChannelType_Values() []string {
4996	return []string{
4997		ChannelTypeSingleMaster,
4998	}
4999}
5000
5001const (
5002	// ComparisonOperatorBeginsWith is a ComparisonOperator enum value
5003	ComparisonOperatorBeginsWith = "BEGINS_WITH"
5004)
5005
5006// ComparisonOperator_Values returns all elements of the ComparisonOperator enum
5007func ComparisonOperator_Values() []string {
5008	return []string{
5009		ComparisonOperatorBeginsWith,
5010	}
5011}
5012
5013const (
5014	// StatusCreating is a Status enum value
5015	StatusCreating = "CREATING"
5016
5017	// StatusActive is a Status enum value
5018	StatusActive = "ACTIVE"
5019
5020	// StatusUpdating is a Status enum value
5021	StatusUpdating = "UPDATING"
5022
5023	// StatusDeleting is a Status enum value
5024	StatusDeleting = "DELETING"
5025)
5026
5027// Status_Values returns all elements of the Status enum
5028func Status_Values() []string {
5029	return []string{
5030		StatusCreating,
5031		StatusActive,
5032		StatusUpdating,
5033		StatusDeleting,
5034	}
5035}
5036
5037const (
5038	// UpdateDataRetentionOperationIncreaseDataRetention is a UpdateDataRetentionOperation enum value
5039	UpdateDataRetentionOperationIncreaseDataRetention = "INCREASE_DATA_RETENTION"
5040
5041	// UpdateDataRetentionOperationDecreaseDataRetention is a UpdateDataRetentionOperation enum value
5042	UpdateDataRetentionOperationDecreaseDataRetention = "DECREASE_DATA_RETENTION"
5043)
5044
5045// UpdateDataRetentionOperation_Values returns all elements of the UpdateDataRetentionOperation enum
5046func UpdateDataRetentionOperation_Values() []string {
5047	return []string{
5048		UpdateDataRetentionOperationIncreaseDataRetention,
5049		UpdateDataRetentionOperationDecreaseDataRetention,
5050	}
5051}
5052