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.
2023//
2024// API parameter values that are decorated as "sensitive" in the API will not
2025// be included in the string output. The member name will be present, but the
2026// value will be replaced with "sensitive".
2027func (s AccessDeniedException) String() string {
2028	return awsutil.Prettify(s)
2029}
2030
2031// GoString returns the string representation.
2032//
2033// API parameter values that are decorated as "sensitive" in the API will not
2034// be included in the string output. The member name will be present, but the
2035// value will be replaced with "sensitive".
2036func (s AccessDeniedException) GoString() string {
2037	return s.String()
2038}
2039
2040func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
2041	return &AccessDeniedException{
2042		RespMetadata: v,
2043	}
2044}
2045
2046// Code returns the exception type name.
2047func (s *AccessDeniedException) Code() string {
2048	return "AccessDeniedException"
2049}
2050
2051// Message returns the exception's message.
2052func (s *AccessDeniedException) Message() string {
2053	if s.Message_ != nil {
2054		return *s.Message_
2055	}
2056	return ""
2057}
2058
2059// OrigErr always returns nil, satisfies awserr.Error interface.
2060func (s *AccessDeniedException) OrigErr() error {
2061	return nil
2062}
2063
2064func (s *AccessDeniedException) Error() string {
2065	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2066}
2067
2068// Status code returns the HTTP status code for the request's response error.
2069func (s *AccessDeniedException) StatusCode() int {
2070	return s.RespMetadata.StatusCode
2071}
2072
2073// RequestID returns the service's response RequestID for request.
2074func (s *AccessDeniedException) RequestID() string {
2075	return s.RespMetadata.RequestID
2076}
2077
2078// You have reached the maximum limit of active signaling channels for this
2079// AWS account in this region.
2080type AccountChannelLimitExceededException struct {
2081	_            struct{}                  `type:"structure"`
2082	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2083
2084	Message_ *string `locationName:"Message" type:"string"`
2085}
2086
2087// String returns the string representation.
2088//
2089// API parameter values that are decorated as "sensitive" in the API will not
2090// be included in the string output. The member name will be present, but the
2091// value will be replaced with "sensitive".
2092func (s AccountChannelLimitExceededException) String() string {
2093	return awsutil.Prettify(s)
2094}
2095
2096// GoString returns the string representation.
2097//
2098// API parameter values that are decorated as "sensitive" in the API will not
2099// be included in the string output. The member name will be present, but the
2100// value will be replaced with "sensitive".
2101func (s AccountChannelLimitExceededException) GoString() string {
2102	return s.String()
2103}
2104
2105func newErrorAccountChannelLimitExceededException(v protocol.ResponseMetadata) error {
2106	return &AccountChannelLimitExceededException{
2107		RespMetadata: v,
2108	}
2109}
2110
2111// Code returns the exception type name.
2112func (s *AccountChannelLimitExceededException) Code() string {
2113	return "AccountChannelLimitExceededException"
2114}
2115
2116// Message returns the exception's message.
2117func (s *AccountChannelLimitExceededException) Message() string {
2118	if s.Message_ != nil {
2119		return *s.Message_
2120	}
2121	return ""
2122}
2123
2124// OrigErr always returns nil, satisfies awserr.Error interface.
2125func (s *AccountChannelLimitExceededException) OrigErr() error {
2126	return nil
2127}
2128
2129func (s *AccountChannelLimitExceededException) Error() string {
2130	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2131}
2132
2133// Status code returns the HTTP status code for the request's response error.
2134func (s *AccountChannelLimitExceededException) StatusCode() int {
2135	return s.RespMetadata.StatusCode
2136}
2137
2138// RequestID returns the service's response RequestID for request.
2139func (s *AccountChannelLimitExceededException) RequestID() string {
2140	return s.RespMetadata.RequestID
2141}
2142
2143// The number of streams created for the account is too high.
2144type AccountStreamLimitExceededException struct {
2145	_            struct{}                  `type:"structure"`
2146	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2147
2148	Message_ *string `locationName:"Message" type:"string"`
2149}
2150
2151// String returns the string representation.
2152//
2153// API parameter values that are decorated as "sensitive" in the API will not
2154// be included in the string output. The member name will be present, but the
2155// value will be replaced with "sensitive".
2156func (s AccountStreamLimitExceededException) String() string {
2157	return awsutil.Prettify(s)
2158}
2159
2160// GoString returns the string representation.
2161//
2162// API parameter values that are decorated as "sensitive" in the API will not
2163// be included in the string output. The member name will be present, but the
2164// value will be replaced with "sensitive".
2165func (s AccountStreamLimitExceededException) GoString() string {
2166	return s.String()
2167}
2168
2169func newErrorAccountStreamLimitExceededException(v protocol.ResponseMetadata) error {
2170	return &AccountStreamLimitExceededException{
2171		RespMetadata: v,
2172	}
2173}
2174
2175// Code returns the exception type name.
2176func (s *AccountStreamLimitExceededException) Code() string {
2177	return "AccountStreamLimitExceededException"
2178}
2179
2180// Message returns the exception's message.
2181func (s *AccountStreamLimitExceededException) Message() string {
2182	if s.Message_ != nil {
2183		return *s.Message_
2184	}
2185	return ""
2186}
2187
2188// OrigErr always returns nil, satisfies awserr.Error interface.
2189func (s *AccountStreamLimitExceededException) OrigErr() error {
2190	return nil
2191}
2192
2193func (s *AccountStreamLimitExceededException) Error() string {
2194	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2195}
2196
2197// Status code returns the HTTP status code for the request's response error.
2198func (s *AccountStreamLimitExceededException) StatusCode() int {
2199	return s.RespMetadata.StatusCode
2200}
2201
2202// RequestID returns the service's response RequestID for request.
2203func (s *AccountStreamLimitExceededException) RequestID() string {
2204	return s.RespMetadata.RequestID
2205}
2206
2207// A structure that encapsulates a signaling channel's metadata and properties.
2208type ChannelInfo struct {
2209	_ struct{} `type:"structure"`
2210
2211	// The Amazon Resource Name (ARN) of the signaling channel.
2212	ChannelARN *string `min:"1" type:"string"`
2213
2214	// The name of the signaling channel.
2215	ChannelName *string `min:"1" type:"string"`
2216
2217	// Current status of the signaling channel.
2218	ChannelStatus *string `type:"string" enum:"Status"`
2219
2220	// The type of the signaling channel.
2221	ChannelType *string `type:"string" enum:"ChannelType"`
2222
2223	// The time at which the signaling channel was created.
2224	CreationTime *time.Time `type:"timestamp"`
2225
2226	// A structure that contains the configuration for the SINGLE_MASTER channel
2227	// type.
2228	SingleMasterConfiguration *SingleMasterConfiguration `type:"structure"`
2229
2230	// The current version of the signaling channel.
2231	Version *string `min:"1" type:"string"`
2232}
2233
2234// String returns the string representation.
2235//
2236// API parameter values that are decorated as "sensitive" in the API will not
2237// be included in the string output. The member name will be present, but the
2238// value will be replaced with "sensitive".
2239func (s ChannelInfo) String() string {
2240	return awsutil.Prettify(s)
2241}
2242
2243// GoString returns the string representation.
2244//
2245// API parameter values that are decorated as "sensitive" in the API will not
2246// be included in the string output. The member name will be present, but the
2247// value will be replaced with "sensitive".
2248func (s ChannelInfo) GoString() string {
2249	return s.String()
2250}
2251
2252// SetChannelARN sets the ChannelARN field's value.
2253func (s *ChannelInfo) SetChannelARN(v string) *ChannelInfo {
2254	s.ChannelARN = &v
2255	return s
2256}
2257
2258// SetChannelName sets the ChannelName field's value.
2259func (s *ChannelInfo) SetChannelName(v string) *ChannelInfo {
2260	s.ChannelName = &v
2261	return s
2262}
2263
2264// SetChannelStatus sets the ChannelStatus field's value.
2265func (s *ChannelInfo) SetChannelStatus(v string) *ChannelInfo {
2266	s.ChannelStatus = &v
2267	return s
2268}
2269
2270// SetChannelType sets the ChannelType field's value.
2271func (s *ChannelInfo) SetChannelType(v string) *ChannelInfo {
2272	s.ChannelType = &v
2273	return s
2274}
2275
2276// SetCreationTime sets the CreationTime field's value.
2277func (s *ChannelInfo) SetCreationTime(v time.Time) *ChannelInfo {
2278	s.CreationTime = &v
2279	return s
2280}
2281
2282// SetSingleMasterConfiguration sets the SingleMasterConfiguration field's value.
2283func (s *ChannelInfo) SetSingleMasterConfiguration(v *SingleMasterConfiguration) *ChannelInfo {
2284	s.SingleMasterConfiguration = v
2285	return s
2286}
2287
2288// SetVersion sets the Version field's value.
2289func (s *ChannelInfo) SetVersion(v string) *ChannelInfo {
2290	s.Version = &v
2291	return s
2292}
2293
2294// An optional input parameter for the ListSignalingChannels API. When this
2295// parameter is specified while invoking ListSignalingChannels, the API returns
2296// only the channels that satisfy a condition specified in ChannelNameCondition.
2297type ChannelNameCondition struct {
2298	_ struct{} `type:"structure"`
2299
2300	// A comparison operator. Currently, you can only specify the BEGINS_WITH operator,
2301	// which finds signaling channels whose names begin with a given prefix.
2302	ComparisonOperator *string `type:"string" enum:"ComparisonOperator"`
2303
2304	// A value to compare.
2305	ComparisonValue *string `min:"1" type:"string"`
2306}
2307
2308// String returns the string representation.
2309//
2310// API parameter values that are decorated as "sensitive" in the API will not
2311// be included in the string output. The member name will be present, but the
2312// value will be replaced with "sensitive".
2313func (s ChannelNameCondition) String() string {
2314	return awsutil.Prettify(s)
2315}
2316
2317// GoString returns the string representation.
2318//
2319// API parameter values that are decorated as "sensitive" in the API will not
2320// be included in the string output. The member name will be present, but the
2321// value will be replaced with "sensitive".
2322func (s ChannelNameCondition) GoString() string {
2323	return s.String()
2324}
2325
2326// Validate inspects the fields of the type to determine if they are valid.
2327func (s *ChannelNameCondition) Validate() error {
2328	invalidParams := request.ErrInvalidParams{Context: "ChannelNameCondition"}
2329	if s.ComparisonValue != nil && len(*s.ComparisonValue) < 1 {
2330		invalidParams.Add(request.NewErrParamMinLen("ComparisonValue", 1))
2331	}
2332
2333	if invalidParams.Len() > 0 {
2334		return invalidParams
2335	}
2336	return nil
2337}
2338
2339// SetComparisonOperator sets the ComparisonOperator field's value.
2340func (s *ChannelNameCondition) SetComparisonOperator(v string) *ChannelNameCondition {
2341	s.ComparisonOperator = &v
2342	return s
2343}
2344
2345// SetComparisonValue sets the ComparisonValue field's value.
2346func (s *ChannelNameCondition) SetComparisonValue(v string) *ChannelNameCondition {
2347	s.ComparisonValue = &v
2348	return s
2349}
2350
2351// Kinesis Video Streams has throttled the request because you have exceeded
2352// the limit of allowed client calls. Try making the call later.
2353type ClientLimitExceededException struct {
2354	_            struct{}                  `type:"structure"`
2355	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2356
2357	Message_ *string `locationName:"Message" type:"string"`
2358}
2359
2360// String returns the string representation.
2361//
2362// API parameter values that are decorated as "sensitive" in the API will not
2363// be included in the string output. The member name will be present, but the
2364// value will be replaced with "sensitive".
2365func (s ClientLimitExceededException) String() string {
2366	return awsutil.Prettify(s)
2367}
2368
2369// GoString returns the string representation.
2370//
2371// API parameter values that are decorated as "sensitive" in the API will not
2372// be included in the string output. The member name will be present, but the
2373// value will be replaced with "sensitive".
2374func (s ClientLimitExceededException) GoString() string {
2375	return s.String()
2376}
2377
2378func newErrorClientLimitExceededException(v protocol.ResponseMetadata) error {
2379	return &ClientLimitExceededException{
2380		RespMetadata: v,
2381	}
2382}
2383
2384// Code returns the exception type name.
2385func (s *ClientLimitExceededException) Code() string {
2386	return "ClientLimitExceededException"
2387}
2388
2389// Message returns the exception's message.
2390func (s *ClientLimitExceededException) Message() string {
2391	if s.Message_ != nil {
2392		return *s.Message_
2393	}
2394	return ""
2395}
2396
2397// OrigErr always returns nil, satisfies awserr.Error interface.
2398func (s *ClientLimitExceededException) OrigErr() error {
2399	return nil
2400}
2401
2402func (s *ClientLimitExceededException) Error() string {
2403	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2404}
2405
2406// Status code returns the HTTP status code for the request's response error.
2407func (s *ClientLimitExceededException) StatusCode() int {
2408	return s.RespMetadata.StatusCode
2409}
2410
2411// RequestID returns the service's response RequestID for request.
2412func (s *ClientLimitExceededException) RequestID() string {
2413	return s.RespMetadata.RequestID
2414}
2415
2416type CreateSignalingChannelInput struct {
2417	_ struct{} `type:"structure"`
2418
2419	// A name for the signaling channel that you are creating. It must be unique
2420	// for each AWS account and AWS Region.
2421	//
2422	// ChannelName is a required field
2423	ChannelName *string `min:"1" type:"string" required:"true"`
2424
2425	// A type of the signaling channel that you are creating. Currently, SINGLE_MASTER
2426	// is the only supported channel type.
2427	ChannelType *string `type:"string" enum:"ChannelType"`
2428
2429	// A structure containing the configuration for the SINGLE_MASTER channel type.
2430	SingleMasterConfiguration *SingleMasterConfiguration `type:"structure"`
2431
2432	// A set of tags (key-value pairs) that you want to associate with this channel.
2433	Tags []*Tag `type:"list"`
2434}
2435
2436// String returns the string representation.
2437//
2438// API parameter values that are decorated as "sensitive" in the API will not
2439// be included in the string output. The member name will be present, but the
2440// value will be replaced with "sensitive".
2441func (s CreateSignalingChannelInput) String() string {
2442	return awsutil.Prettify(s)
2443}
2444
2445// GoString returns the string representation.
2446//
2447// API parameter values that are decorated as "sensitive" in the API will not
2448// be included in the string output. The member name will be present, but the
2449// value will be replaced with "sensitive".
2450func (s CreateSignalingChannelInput) GoString() string {
2451	return s.String()
2452}
2453
2454// Validate inspects the fields of the type to determine if they are valid.
2455func (s *CreateSignalingChannelInput) Validate() error {
2456	invalidParams := request.ErrInvalidParams{Context: "CreateSignalingChannelInput"}
2457	if s.ChannelName == nil {
2458		invalidParams.Add(request.NewErrParamRequired("ChannelName"))
2459	}
2460	if s.ChannelName != nil && len(*s.ChannelName) < 1 {
2461		invalidParams.Add(request.NewErrParamMinLen("ChannelName", 1))
2462	}
2463	if s.SingleMasterConfiguration != nil {
2464		if err := s.SingleMasterConfiguration.Validate(); err != nil {
2465			invalidParams.AddNested("SingleMasterConfiguration", err.(request.ErrInvalidParams))
2466		}
2467	}
2468	if s.Tags != nil {
2469		for i, v := range s.Tags {
2470			if v == nil {
2471				continue
2472			}
2473			if err := v.Validate(); err != nil {
2474				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
2475			}
2476		}
2477	}
2478
2479	if invalidParams.Len() > 0 {
2480		return invalidParams
2481	}
2482	return nil
2483}
2484
2485// SetChannelName sets the ChannelName field's value.
2486func (s *CreateSignalingChannelInput) SetChannelName(v string) *CreateSignalingChannelInput {
2487	s.ChannelName = &v
2488	return s
2489}
2490
2491// SetChannelType sets the ChannelType field's value.
2492func (s *CreateSignalingChannelInput) SetChannelType(v string) *CreateSignalingChannelInput {
2493	s.ChannelType = &v
2494	return s
2495}
2496
2497// SetSingleMasterConfiguration sets the SingleMasterConfiguration field's value.
2498func (s *CreateSignalingChannelInput) SetSingleMasterConfiguration(v *SingleMasterConfiguration) *CreateSignalingChannelInput {
2499	s.SingleMasterConfiguration = v
2500	return s
2501}
2502
2503// SetTags sets the Tags field's value.
2504func (s *CreateSignalingChannelInput) SetTags(v []*Tag) *CreateSignalingChannelInput {
2505	s.Tags = v
2506	return s
2507}
2508
2509type CreateSignalingChannelOutput struct {
2510	_ struct{} `type:"structure"`
2511
2512	// The Amazon Resource Name (ARN) of the created channel.
2513	ChannelARN *string `min:"1" type:"string"`
2514}
2515
2516// String returns the string representation.
2517//
2518// API parameter values that are decorated as "sensitive" in the API will not
2519// be included in the string output. The member name will be present, but the
2520// value will be replaced with "sensitive".
2521func (s CreateSignalingChannelOutput) String() string {
2522	return awsutil.Prettify(s)
2523}
2524
2525// GoString returns the string representation.
2526//
2527// API parameter values that are decorated as "sensitive" in the API will not
2528// be included in the string output. The member name will be present, but the
2529// value will be replaced with "sensitive".
2530func (s CreateSignalingChannelOutput) GoString() string {
2531	return s.String()
2532}
2533
2534// SetChannelARN sets the ChannelARN field's value.
2535func (s *CreateSignalingChannelOutput) SetChannelARN(v string) *CreateSignalingChannelOutput {
2536	s.ChannelARN = &v
2537	return s
2538}
2539
2540type CreateStreamInput struct {
2541	_ struct{} `type:"structure"`
2542
2543	// The number of hours that you want to retain the data in the stream. Kinesis
2544	// Video Streams retains the data in a data store that is associated with the
2545	// stream.
2546	//
2547	// The default value is 0, indicating that the stream does not persist data.
2548	//
2549	// When the DataRetentionInHours value is 0, consumers can still consume the
2550	// fragments that remain in the service host buffer, which has a retention time
2551	// limit of 5 minutes and a retention memory limit of 200 MB. Fragments are
2552	// removed from the buffer when either limit is reached.
2553	DataRetentionInHours *int64 `type:"integer"`
2554
2555	// The name of the device that is writing to the stream.
2556	//
2557	// In the current implementation, Kinesis Video Streams does not use this name.
2558	DeviceName *string `min:"1" type:"string"`
2559
2560	// The ID of the AWS Key Management Service (AWS KMS) key that you want Kinesis
2561	// Video Streams to use to encrypt stream data.
2562	//
2563	// If no key ID is specified, the default, Kinesis Video-managed key (aws/kinesisvideo)
2564	// is used.
2565	//
2566	// For more information, see DescribeKey (https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters).
2567	KmsKeyId *string `min:"1" type:"string"`
2568
2569	// The media type of the stream. Consumers of the stream can use this information
2570	// when processing the stream. For more information about media types, see Media
2571	// Types (http://www.iana.org/assignments/media-types/media-types.xhtml). If
2572	// you choose to specify the MediaType, see Naming Requirements (https://tools.ietf.org/html/rfc6838#section-4.2)
2573	// for guidelines.
2574	//
2575	// Example valid values include "video/h264" and "video/h264,audio/aac".
2576	//
2577	// This parameter is optional; the default value is null (or empty in JSON).
2578	MediaType *string `min:"1" type:"string"`
2579
2580	// A name for the stream that you are creating.
2581	//
2582	// The stream name is an identifier for the stream, and must be unique for each
2583	// account and region.
2584	//
2585	// StreamName is a required field
2586	StreamName *string `min:"1" type:"string" required:"true"`
2587
2588	// A list of tags to associate with the specified stream. Each tag is a key-value
2589	// pair (the value is optional).
2590	Tags map[string]*string `min:"1" type:"map"`
2591}
2592
2593// String returns the string representation.
2594//
2595// API parameter values that are decorated as "sensitive" in the API will not
2596// be included in the string output. The member name will be present, but the
2597// value will be replaced with "sensitive".
2598func (s CreateStreamInput) String() string {
2599	return awsutil.Prettify(s)
2600}
2601
2602// GoString returns the string representation.
2603//
2604// API parameter values that are decorated as "sensitive" in the API will not
2605// be included in the string output. The member name will be present, but the
2606// value will be replaced with "sensitive".
2607func (s CreateStreamInput) GoString() string {
2608	return s.String()
2609}
2610
2611// Validate inspects the fields of the type to determine if they are valid.
2612func (s *CreateStreamInput) Validate() error {
2613	invalidParams := request.ErrInvalidParams{Context: "CreateStreamInput"}
2614	if s.DeviceName != nil && len(*s.DeviceName) < 1 {
2615		invalidParams.Add(request.NewErrParamMinLen("DeviceName", 1))
2616	}
2617	if s.KmsKeyId != nil && len(*s.KmsKeyId) < 1 {
2618		invalidParams.Add(request.NewErrParamMinLen("KmsKeyId", 1))
2619	}
2620	if s.MediaType != nil && len(*s.MediaType) < 1 {
2621		invalidParams.Add(request.NewErrParamMinLen("MediaType", 1))
2622	}
2623	if s.StreamName == nil {
2624		invalidParams.Add(request.NewErrParamRequired("StreamName"))
2625	}
2626	if s.StreamName != nil && len(*s.StreamName) < 1 {
2627		invalidParams.Add(request.NewErrParamMinLen("StreamName", 1))
2628	}
2629	if s.Tags != nil && len(s.Tags) < 1 {
2630		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
2631	}
2632
2633	if invalidParams.Len() > 0 {
2634		return invalidParams
2635	}
2636	return nil
2637}
2638
2639// SetDataRetentionInHours sets the DataRetentionInHours field's value.
2640func (s *CreateStreamInput) SetDataRetentionInHours(v int64) *CreateStreamInput {
2641	s.DataRetentionInHours = &v
2642	return s
2643}
2644
2645// SetDeviceName sets the DeviceName field's value.
2646func (s *CreateStreamInput) SetDeviceName(v string) *CreateStreamInput {
2647	s.DeviceName = &v
2648	return s
2649}
2650
2651// SetKmsKeyId sets the KmsKeyId field's value.
2652func (s *CreateStreamInput) SetKmsKeyId(v string) *CreateStreamInput {
2653	s.KmsKeyId = &v
2654	return s
2655}
2656
2657// SetMediaType sets the MediaType field's value.
2658func (s *CreateStreamInput) SetMediaType(v string) *CreateStreamInput {
2659	s.MediaType = &v
2660	return s
2661}
2662
2663// SetStreamName sets the StreamName field's value.
2664func (s *CreateStreamInput) SetStreamName(v string) *CreateStreamInput {
2665	s.StreamName = &v
2666	return s
2667}
2668
2669// SetTags sets the Tags field's value.
2670func (s *CreateStreamInput) SetTags(v map[string]*string) *CreateStreamInput {
2671	s.Tags = v
2672	return s
2673}
2674
2675type CreateStreamOutput struct {
2676	_ struct{} `type:"structure"`
2677
2678	// The Amazon Resource Name (ARN) of the stream.
2679	StreamARN *string `min:"1" type:"string"`
2680}
2681
2682// String returns the string representation.
2683//
2684// API parameter values that are decorated as "sensitive" in the API will not
2685// be included in the string output. The member name will be present, but the
2686// value will be replaced with "sensitive".
2687func (s CreateStreamOutput) String() string {
2688	return awsutil.Prettify(s)
2689}
2690
2691// GoString returns the string representation.
2692//
2693// API parameter values that are decorated as "sensitive" in the API will not
2694// be included in the string output. The member name will be present, but the
2695// value will be replaced with "sensitive".
2696func (s CreateStreamOutput) GoString() string {
2697	return s.String()
2698}
2699
2700// SetStreamARN sets the StreamARN field's value.
2701func (s *CreateStreamOutput) SetStreamARN(v string) *CreateStreamOutput {
2702	s.StreamARN = &v
2703	return s
2704}
2705
2706type DeleteSignalingChannelInput struct {
2707	_ struct{} `type:"structure"`
2708
2709	// The Amazon Resource Name (ARN) of the signaling channel that you want to
2710	// delete.
2711	//
2712	// ChannelARN is a required field
2713	ChannelARN *string `min:"1" type:"string" required:"true"`
2714
2715	// The current version of the signaling channel that you want to delete. You
2716	// can obtain the current version by invoking the DescribeSignalingChannel or
2717	// ListSignalingChannels API operations.
2718	CurrentVersion *string `min:"1" type:"string"`
2719}
2720
2721// String returns the string representation.
2722//
2723// API parameter values that are decorated as "sensitive" in the API will not
2724// be included in the string output. The member name will be present, but the
2725// value will be replaced with "sensitive".
2726func (s DeleteSignalingChannelInput) String() string {
2727	return awsutil.Prettify(s)
2728}
2729
2730// GoString returns the string representation.
2731//
2732// API parameter values that are decorated as "sensitive" in the API will not
2733// be included in the string output. The member name will be present, but the
2734// value will be replaced with "sensitive".
2735func (s DeleteSignalingChannelInput) GoString() string {
2736	return s.String()
2737}
2738
2739// Validate inspects the fields of the type to determine if they are valid.
2740func (s *DeleteSignalingChannelInput) Validate() error {
2741	invalidParams := request.ErrInvalidParams{Context: "DeleteSignalingChannelInput"}
2742	if s.ChannelARN == nil {
2743		invalidParams.Add(request.NewErrParamRequired("ChannelARN"))
2744	}
2745	if s.ChannelARN != nil && len(*s.ChannelARN) < 1 {
2746		invalidParams.Add(request.NewErrParamMinLen("ChannelARN", 1))
2747	}
2748	if s.CurrentVersion != nil && len(*s.CurrentVersion) < 1 {
2749		invalidParams.Add(request.NewErrParamMinLen("CurrentVersion", 1))
2750	}
2751
2752	if invalidParams.Len() > 0 {
2753		return invalidParams
2754	}
2755	return nil
2756}
2757
2758// SetChannelARN sets the ChannelARN field's value.
2759func (s *DeleteSignalingChannelInput) SetChannelARN(v string) *DeleteSignalingChannelInput {
2760	s.ChannelARN = &v
2761	return s
2762}
2763
2764// SetCurrentVersion sets the CurrentVersion field's value.
2765func (s *DeleteSignalingChannelInput) SetCurrentVersion(v string) *DeleteSignalingChannelInput {
2766	s.CurrentVersion = &v
2767	return s
2768}
2769
2770type DeleteSignalingChannelOutput struct {
2771	_ struct{} `type:"structure"`
2772}
2773
2774// String returns the string representation.
2775//
2776// API parameter values that are decorated as "sensitive" in the API will not
2777// be included in the string output. The member name will be present, but the
2778// value will be replaced with "sensitive".
2779func (s DeleteSignalingChannelOutput) String() string {
2780	return awsutil.Prettify(s)
2781}
2782
2783// GoString returns the string representation.
2784//
2785// API parameter values that are decorated as "sensitive" in the API will not
2786// be included in the string output. The member name will be present, but the
2787// value will be replaced with "sensitive".
2788func (s DeleteSignalingChannelOutput) GoString() string {
2789	return s.String()
2790}
2791
2792type DeleteStreamInput struct {
2793	_ struct{} `type:"structure"`
2794
2795	// Optional: The version of the stream that you want to delete.
2796	//
2797	// Specify the version as a safeguard to ensure that your are deleting the correct
2798	// stream. To get the stream version, use the DescribeStream API.
2799	//
2800	// If not specified, only the CreationTime is checked before deleting the stream.
2801	CurrentVersion *string `min:"1" type:"string"`
2802
2803	// The Amazon Resource Name (ARN) of the stream that you want to delete.
2804	//
2805	// StreamARN is a required field
2806	StreamARN *string `min:"1" type:"string" required:"true"`
2807}
2808
2809// String returns the string representation.
2810//
2811// API parameter values that are decorated as "sensitive" in the API will not
2812// be included in the string output. The member name will be present, but the
2813// value will be replaced with "sensitive".
2814func (s DeleteStreamInput) String() string {
2815	return awsutil.Prettify(s)
2816}
2817
2818// GoString returns the string representation.
2819//
2820// API parameter values that are decorated as "sensitive" in the API will not
2821// be included in the string output. The member name will be present, but the
2822// value will be replaced with "sensitive".
2823func (s DeleteStreamInput) GoString() string {
2824	return s.String()
2825}
2826
2827// Validate inspects the fields of the type to determine if they are valid.
2828func (s *DeleteStreamInput) Validate() error {
2829	invalidParams := request.ErrInvalidParams{Context: "DeleteStreamInput"}
2830	if s.CurrentVersion != nil && len(*s.CurrentVersion) < 1 {
2831		invalidParams.Add(request.NewErrParamMinLen("CurrentVersion", 1))
2832	}
2833	if s.StreamARN == nil {
2834		invalidParams.Add(request.NewErrParamRequired("StreamARN"))
2835	}
2836	if s.StreamARN != nil && len(*s.StreamARN) < 1 {
2837		invalidParams.Add(request.NewErrParamMinLen("StreamARN", 1))
2838	}
2839
2840	if invalidParams.Len() > 0 {
2841		return invalidParams
2842	}
2843	return nil
2844}
2845
2846// SetCurrentVersion sets the CurrentVersion field's value.
2847func (s *DeleteStreamInput) SetCurrentVersion(v string) *DeleteStreamInput {
2848	s.CurrentVersion = &v
2849	return s
2850}
2851
2852// SetStreamARN sets the StreamARN field's value.
2853func (s *DeleteStreamInput) SetStreamARN(v string) *DeleteStreamInput {
2854	s.StreamARN = &v
2855	return s
2856}
2857
2858type DeleteStreamOutput struct {
2859	_ struct{} `type:"structure"`
2860}
2861
2862// String returns the string representation.
2863//
2864// API parameter values that are decorated as "sensitive" in the API will not
2865// be included in the string output. The member name will be present, but the
2866// value will be replaced with "sensitive".
2867func (s DeleteStreamOutput) String() string {
2868	return awsutil.Prettify(s)
2869}
2870
2871// GoString returns the string representation.
2872//
2873// API parameter values that are decorated as "sensitive" in the API will not
2874// be included in the string output. The member name will be present, but the
2875// value will be replaced with "sensitive".
2876func (s DeleteStreamOutput) GoString() string {
2877	return s.String()
2878}
2879
2880type DescribeSignalingChannelInput struct {
2881	_ struct{} `type:"structure"`
2882
2883	// The ARN of the signaling channel that you want to describe.
2884	ChannelARN *string `min:"1" type:"string"`
2885
2886	// The name of the signaling channel that you want to describe.
2887	ChannelName *string `min:"1" type:"string"`
2888}
2889
2890// String returns the string representation.
2891//
2892// API parameter values that are decorated as "sensitive" in the API will not
2893// be included in the string output. The member name will be present, but the
2894// value will be replaced with "sensitive".
2895func (s DescribeSignalingChannelInput) String() string {
2896	return awsutil.Prettify(s)
2897}
2898
2899// GoString returns the string representation.
2900//
2901// API parameter values that are decorated as "sensitive" in the API will not
2902// be included in the string output. The member name will be present, but the
2903// value will be replaced with "sensitive".
2904func (s DescribeSignalingChannelInput) GoString() string {
2905	return s.String()
2906}
2907
2908// Validate inspects the fields of the type to determine if they are valid.
2909func (s *DescribeSignalingChannelInput) Validate() error {
2910	invalidParams := request.ErrInvalidParams{Context: "DescribeSignalingChannelInput"}
2911	if s.ChannelARN != nil && len(*s.ChannelARN) < 1 {
2912		invalidParams.Add(request.NewErrParamMinLen("ChannelARN", 1))
2913	}
2914	if s.ChannelName != nil && len(*s.ChannelName) < 1 {
2915		invalidParams.Add(request.NewErrParamMinLen("ChannelName", 1))
2916	}
2917
2918	if invalidParams.Len() > 0 {
2919		return invalidParams
2920	}
2921	return nil
2922}
2923
2924// SetChannelARN sets the ChannelARN field's value.
2925func (s *DescribeSignalingChannelInput) SetChannelARN(v string) *DescribeSignalingChannelInput {
2926	s.ChannelARN = &v
2927	return s
2928}
2929
2930// SetChannelName sets the ChannelName field's value.
2931func (s *DescribeSignalingChannelInput) SetChannelName(v string) *DescribeSignalingChannelInput {
2932	s.ChannelName = &v
2933	return s
2934}
2935
2936type DescribeSignalingChannelOutput struct {
2937	_ struct{} `type:"structure"`
2938
2939	// A structure that encapsulates the specified signaling channel's metadata
2940	// and properties.
2941	ChannelInfo *ChannelInfo `type:"structure"`
2942}
2943
2944// String returns the string representation.
2945//
2946// API parameter values that are decorated as "sensitive" in the API will not
2947// be included in the string output. The member name will be present, but the
2948// value will be replaced with "sensitive".
2949func (s DescribeSignalingChannelOutput) String() string {
2950	return awsutil.Prettify(s)
2951}
2952
2953// GoString returns the string representation.
2954//
2955// API parameter values that are decorated as "sensitive" in the API will not
2956// be included in the string output. The member name will be present, but the
2957// value will be replaced with "sensitive".
2958func (s DescribeSignalingChannelOutput) GoString() string {
2959	return s.String()
2960}
2961
2962// SetChannelInfo sets the ChannelInfo field's value.
2963func (s *DescribeSignalingChannelOutput) SetChannelInfo(v *ChannelInfo) *DescribeSignalingChannelOutput {
2964	s.ChannelInfo = v
2965	return s
2966}
2967
2968type DescribeStreamInput struct {
2969	_ struct{} `type:"structure"`
2970
2971	// The Amazon Resource Name (ARN) of the stream.
2972	StreamARN *string `min:"1" type:"string"`
2973
2974	// The name of the stream.
2975	StreamName *string `min:"1" type:"string"`
2976}
2977
2978// String returns the string representation.
2979//
2980// API parameter values that are decorated as "sensitive" in the API will not
2981// be included in the string output. The member name will be present, but the
2982// value will be replaced with "sensitive".
2983func (s DescribeStreamInput) String() string {
2984	return awsutil.Prettify(s)
2985}
2986
2987// GoString returns the string representation.
2988//
2989// API parameter values that are decorated as "sensitive" in the API will not
2990// be included in the string output. The member name will be present, but the
2991// value will be replaced with "sensitive".
2992func (s DescribeStreamInput) GoString() string {
2993	return s.String()
2994}
2995
2996// Validate inspects the fields of the type to determine if they are valid.
2997func (s *DescribeStreamInput) Validate() error {
2998	invalidParams := request.ErrInvalidParams{Context: "DescribeStreamInput"}
2999	if s.StreamARN != nil && len(*s.StreamARN) < 1 {
3000		invalidParams.Add(request.NewErrParamMinLen("StreamARN", 1))
3001	}
3002	if s.StreamName != nil && len(*s.StreamName) < 1 {
3003		invalidParams.Add(request.NewErrParamMinLen("StreamName", 1))
3004	}
3005
3006	if invalidParams.Len() > 0 {
3007		return invalidParams
3008	}
3009	return nil
3010}
3011
3012// SetStreamARN sets the StreamARN field's value.
3013func (s *DescribeStreamInput) SetStreamARN(v string) *DescribeStreamInput {
3014	s.StreamARN = &v
3015	return s
3016}
3017
3018// SetStreamName sets the StreamName field's value.
3019func (s *DescribeStreamInput) SetStreamName(v string) *DescribeStreamInput {
3020	s.StreamName = &v
3021	return s
3022}
3023
3024type DescribeStreamOutput struct {
3025	_ struct{} `type:"structure"`
3026
3027	// An object that describes the stream.
3028	StreamInfo *StreamInfo `type:"structure"`
3029}
3030
3031// String returns the string representation.
3032//
3033// API parameter values that are decorated as "sensitive" in the API will not
3034// be included in the string output. The member name will be present, but the
3035// value will be replaced with "sensitive".
3036func (s DescribeStreamOutput) String() string {
3037	return awsutil.Prettify(s)
3038}
3039
3040// GoString returns the string representation.
3041//
3042// API parameter values that are decorated as "sensitive" in the API will not
3043// be included in the string output. The member name will be present, but the
3044// value will be replaced with "sensitive".
3045func (s DescribeStreamOutput) GoString() string {
3046	return s.String()
3047}
3048
3049// SetStreamInfo sets the StreamInfo field's value.
3050func (s *DescribeStreamOutput) SetStreamInfo(v *StreamInfo) *DescribeStreamOutput {
3051	s.StreamInfo = v
3052	return s
3053}
3054
3055// Not implemented.
3056type DeviceStreamLimitExceededException struct {
3057	_            struct{}                  `type:"structure"`
3058	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3059
3060	Message_ *string `locationName:"Message" type:"string"`
3061}
3062
3063// String returns the string representation.
3064//
3065// API parameter values that are decorated as "sensitive" in the API will not
3066// be included in the string output. The member name will be present, but the
3067// value will be replaced with "sensitive".
3068func (s DeviceStreamLimitExceededException) String() string {
3069	return awsutil.Prettify(s)
3070}
3071
3072// GoString returns the string representation.
3073//
3074// API parameter values that are decorated as "sensitive" in the API will not
3075// be included in the string output. The member name will be present, but the
3076// value will be replaced with "sensitive".
3077func (s DeviceStreamLimitExceededException) GoString() string {
3078	return s.String()
3079}
3080
3081func newErrorDeviceStreamLimitExceededException(v protocol.ResponseMetadata) error {
3082	return &DeviceStreamLimitExceededException{
3083		RespMetadata: v,
3084	}
3085}
3086
3087// Code returns the exception type name.
3088func (s *DeviceStreamLimitExceededException) Code() string {
3089	return "DeviceStreamLimitExceededException"
3090}
3091
3092// Message returns the exception's message.
3093func (s *DeviceStreamLimitExceededException) Message() string {
3094	if s.Message_ != nil {
3095		return *s.Message_
3096	}
3097	return ""
3098}
3099
3100// OrigErr always returns nil, satisfies awserr.Error interface.
3101func (s *DeviceStreamLimitExceededException) OrigErr() error {
3102	return nil
3103}
3104
3105func (s *DeviceStreamLimitExceededException) Error() string {
3106	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3107}
3108
3109// Status code returns the HTTP status code for the request's response error.
3110func (s *DeviceStreamLimitExceededException) StatusCode() int {
3111	return s.RespMetadata.StatusCode
3112}
3113
3114// RequestID returns the service's response RequestID for request.
3115func (s *DeviceStreamLimitExceededException) RequestID() string {
3116	return s.RespMetadata.RequestID
3117}
3118
3119type GetDataEndpointInput struct {
3120	_ struct{} `type:"structure"`
3121
3122	// The name of the API action for which to get an endpoint.
3123	//
3124	// APIName is a required field
3125	APIName *string `type:"string" required:"true" enum:"APIName"`
3126
3127	// The Amazon Resource Name (ARN) of the stream that you want to get the endpoint
3128	// for. You must specify either this parameter or a StreamName in the request.
3129	StreamARN *string `min:"1" type:"string"`
3130
3131	// The name of the stream that you want to get the endpoint for. You must specify
3132	// either this parameter or a StreamARN in the request.
3133	StreamName *string `min:"1" type:"string"`
3134}
3135
3136// String returns the string representation.
3137//
3138// API parameter values that are decorated as "sensitive" in the API will not
3139// be included in the string output. The member name will be present, but the
3140// value will be replaced with "sensitive".
3141func (s GetDataEndpointInput) String() string {
3142	return awsutil.Prettify(s)
3143}
3144
3145// GoString returns the string representation.
3146//
3147// API parameter values that are decorated as "sensitive" in the API will not
3148// be included in the string output. The member name will be present, but the
3149// value will be replaced with "sensitive".
3150func (s GetDataEndpointInput) GoString() string {
3151	return s.String()
3152}
3153
3154// Validate inspects the fields of the type to determine if they are valid.
3155func (s *GetDataEndpointInput) Validate() error {
3156	invalidParams := request.ErrInvalidParams{Context: "GetDataEndpointInput"}
3157	if s.APIName == nil {
3158		invalidParams.Add(request.NewErrParamRequired("APIName"))
3159	}
3160	if s.StreamARN != nil && len(*s.StreamARN) < 1 {
3161		invalidParams.Add(request.NewErrParamMinLen("StreamARN", 1))
3162	}
3163	if s.StreamName != nil && len(*s.StreamName) < 1 {
3164		invalidParams.Add(request.NewErrParamMinLen("StreamName", 1))
3165	}
3166
3167	if invalidParams.Len() > 0 {
3168		return invalidParams
3169	}
3170	return nil
3171}
3172
3173// SetAPIName sets the APIName field's value.
3174func (s *GetDataEndpointInput) SetAPIName(v string) *GetDataEndpointInput {
3175	s.APIName = &v
3176	return s
3177}
3178
3179// SetStreamARN sets the StreamARN field's value.
3180func (s *GetDataEndpointInput) SetStreamARN(v string) *GetDataEndpointInput {
3181	s.StreamARN = &v
3182	return s
3183}
3184
3185// SetStreamName sets the StreamName field's value.
3186func (s *GetDataEndpointInput) SetStreamName(v string) *GetDataEndpointInput {
3187	s.StreamName = &v
3188	return s
3189}
3190
3191type GetDataEndpointOutput struct {
3192	_ struct{} `type:"structure"`
3193
3194	// The endpoint value. To read data from the stream or to write data to it,
3195	// specify this endpoint in your application.
3196	DataEndpoint *string `type:"string"`
3197}
3198
3199// String returns the string representation.
3200//
3201// API parameter values that are decorated as "sensitive" in the API will not
3202// be included in the string output. The member name will be present, but the
3203// value will be replaced with "sensitive".
3204func (s GetDataEndpointOutput) String() string {
3205	return awsutil.Prettify(s)
3206}
3207
3208// GoString returns the string representation.
3209//
3210// API parameter values that are decorated as "sensitive" in the API will not
3211// be included in the string output. The member name will be present, but the
3212// value will be replaced with "sensitive".
3213func (s GetDataEndpointOutput) GoString() string {
3214	return s.String()
3215}
3216
3217// SetDataEndpoint sets the DataEndpoint field's value.
3218func (s *GetDataEndpointOutput) SetDataEndpoint(v string) *GetDataEndpointOutput {
3219	s.DataEndpoint = &v
3220	return s
3221}
3222
3223type GetSignalingChannelEndpointInput struct {
3224	_ struct{} `type:"structure"`
3225
3226	// The Amazon Resource Name (ARN) of the signalling channel for which you want
3227	// to get an endpoint.
3228	//
3229	// ChannelARN is a required field
3230	ChannelARN *string `min:"1" type:"string" required:"true"`
3231
3232	// A structure containing the endpoint configuration for the SINGLE_MASTER channel
3233	// type.
3234	SingleMasterChannelEndpointConfiguration *SingleMasterChannelEndpointConfiguration `type:"structure"`
3235}
3236
3237// String returns the string representation.
3238//
3239// API parameter values that are decorated as "sensitive" in the API will not
3240// be included in the string output. The member name will be present, but the
3241// value will be replaced with "sensitive".
3242func (s GetSignalingChannelEndpointInput) String() string {
3243	return awsutil.Prettify(s)
3244}
3245
3246// GoString returns the string representation.
3247//
3248// API parameter values that are decorated as "sensitive" in the API will not
3249// be included in the string output. The member name will be present, but the
3250// value will be replaced with "sensitive".
3251func (s GetSignalingChannelEndpointInput) GoString() string {
3252	return s.String()
3253}
3254
3255// Validate inspects the fields of the type to determine if they are valid.
3256func (s *GetSignalingChannelEndpointInput) Validate() error {
3257	invalidParams := request.ErrInvalidParams{Context: "GetSignalingChannelEndpointInput"}
3258	if s.ChannelARN == nil {
3259		invalidParams.Add(request.NewErrParamRequired("ChannelARN"))
3260	}
3261	if s.ChannelARN != nil && len(*s.ChannelARN) < 1 {
3262		invalidParams.Add(request.NewErrParamMinLen("ChannelARN", 1))
3263	}
3264	if s.SingleMasterChannelEndpointConfiguration != nil {
3265		if err := s.SingleMasterChannelEndpointConfiguration.Validate(); err != nil {
3266			invalidParams.AddNested("SingleMasterChannelEndpointConfiguration", err.(request.ErrInvalidParams))
3267		}
3268	}
3269
3270	if invalidParams.Len() > 0 {
3271		return invalidParams
3272	}
3273	return nil
3274}
3275
3276// SetChannelARN sets the ChannelARN field's value.
3277func (s *GetSignalingChannelEndpointInput) SetChannelARN(v string) *GetSignalingChannelEndpointInput {
3278	s.ChannelARN = &v
3279	return s
3280}
3281
3282// SetSingleMasterChannelEndpointConfiguration sets the SingleMasterChannelEndpointConfiguration field's value.
3283func (s *GetSignalingChannelEndpointInput) SetSingleMasterChannelEndpointConfiguration(v *SingleMasterChannelEndpointConfiguration) *GetSignalingChannelEndpointInput {
3284	s.SingleMasterChannelEndpointConfiguration = v
3285	return s
3286}
3287
3288type GetSignalingChannelEndpointOutput struct {
3289	_ struct{} `type:"structure"`
3290
3291	// A list of endpoints for the specified signaling channel.
3292	ResourceEndpointList []*ResourceEndpointListItem `type:"list"`
3293}
3294
3295// String returns the string representation.
3296//
3297// API parameter values that are decorated as "sensitive" in the API will not
3298// be included in the string output. The member name will be present, but the
3299// value will be replaced with "sensitive".
3300func (s GetSignalingChannelEndpointOutput) String() string {
3301	return awsutil.Prettify(s)
3302}
3303
3304// GoString returns the string representation.
3305//
3306// API parameter values that are decorated as "sensitive" in the API will not
3307// be included in the string output. The member name will be present, but the
3308// value will be replaced with "sensitive".
3309func (s GetSignalingChannelEndpointOutput) GoString() string {
3310	return s.String()
3311}
3312
3313// SetResourceEndpointList sets the ResourceEndpointList field's value.
3314func (s *GetSignalingChannelEndpointOutput) SetResourceEndpointList(v []*ResourceEndpointListItem) *GetSignalingChannelEndpointOutput {
3315	s.ResourceEndpointList = v
3316	return s
3317}
3318
3319// The value for this input parameter is invalid.
3320type InvalidArgumentException struct {
3321	_            struct{}                  `type:"structure"`
3322	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3323
3324	Message_ *string `locationName:"Message" type:"string"`
3325}
3326
3327// String returns the string representation.
3328//
3329// API parameter values that are decorated as "sensitive" in the API will not
3330// be included in the string output. The member name will be present, but the
3331// value will be replaced with "sensitive".
3332func (s InvalidArgumentException) String() string {
3333	return awsutil.Prettify(s)
3334}
3335
3336// GoString returns the string representation.
3337//
3338// API parameter values that are decorated as "sensitive" in the API will not
3339// be included in the string output. The member name will be present, but the
3340// value will be replaced with "sensitive".
3341func (s InvalidArgumentException) GoString() string {
3342	return s.String()
3343}
3344
3345func newErrorInvalidArgumentException(v protocol.ResponseMetadata) error {
3346	return &InvalidArgumentException{
3347		RespMetadata: v,
3348	}
3349}
3350
3351// Code returns the exception type name.
3352func (s *InvalidArgumentException) Code() string {
3353	return "InvalidArgumentException"
3354}
3355
3356// Message returns the exception's message.
3357func (s *InvalidArgumentException) Message() string {
3358	if s.Message_ != nil {
3359		return *s.Message_
3360	}
3361	return ""
3362}
3363
3364// OrigErr always returns nil, satisfies awserr.Error interface.
3365func (s *InvalidArgumentException) OrigErr() error {
3366	return nil
3367}
3368
3369func (s *InvalidArgumentException) Error() string {
3370	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3371}
3372
3373// Status code returns the HTTP status code for the request's response error.
3374func (s *InvalidArgumentException) StatusCode() int {
3375	return s.RespMetadata.StatusCode
3376}
3377
3378// RequestID returns the service's response RequestID for request.
3379func (s *InvalidArgumentException) RequestID() string {
3380	return s.RespMetadata.RequestID
3381}
3382
3383// Not implemented.
3384type InvalidDeviceException struct {
3385	_            struct{}                  `type:"structure"`
3386	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3387
3388	Message_ *string `locationName:"Message" type:"string"`
3389}
3390
3391// String returns the string representation.
3392//
3393// API parameter values that are decorated as "sensitive" in the API will not
3394// be included in the string output. The member name will be present, but the
3395// value will be replaced with "sensitive".
3396func (s InvalidDeviceException) String() string {
3397	return awsutil.Prettify(s)
3398}
3399
3400// GoString returns the string representation.
3401//
3402// API parameter values that are decorated as "sensitive" in the API will not
3403// be included in the string output. The member name will be present, but the
3404// value will be replaced with "sensitive".
3405func (s InvalidDeviceException) GoString() string {
3406	return s.String()
3407}
3408
3409func newErrorInvalidDeviceException(v protocol.ResponseMetadata) error {
3410	return &InvalidDeviceException{
3411		RespMetadata: v,
3412	}
3413}
3414
3415// Code returns the exception type name.
3416func (s *InvalidDeviceException) Code() string {
3417	return "InvalidDeviceException"
3418}
3419
3420// Message returns the exception's message.
3421func (s *InvalidDeviceException) Message() string {
3422	if s.Message_ != nil {
3423		return *s.Message_
3424	}
3425	return ""
3426}
3427
3428// OrigErr always returns nil, satisfies awserr.Error interface.
3429func (s *InvalidDeviceException) OrigErr() error {
3430	return nil
3431}
3432
3433func (s *InvalidDeviceException) Error() string {
3434	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3435}
3436
3437// Status code returns the HTTP status code for the request's response error.
3438func (s *InvalidDeviceException) StatusCode() int {
3439	return s.RespMetadata.StatusCode
3440}
3441
3442// RequestID returns the service's response RequestID for request.
3443func (s *InvalidDeviceException) RequestID() string {
3444	return s.RespMetadata.RequestID
3445}
3446
3447// The format of the StreamARN is invalid.
3448type InvalidResourceFormatException struct {
3449	_            struct{}                  `type:"structure"`
3450	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3451
3452	Message_ *string `locationName:"Message" type:"string"`
3453}
3454
3455// String returns the string representation.
3456//
3457// API parameter values that are decorated as "sensitive" in the API will not
3458// be included in the string output. The member name will be present, but the
3459// value will be replaced with "sensitive".
3460func (s InvalidResourceFormatException) String() string {
3461	return awsutil.Prettify(s)
3462}
3463
3464// GoString returns the string representation.
3465//
3466// API parameter values that are decorated as "sensitive" in the API will not
3467// be included in the string output. The member name will be present, but the
3468// value will be replaced with "sensitive".
3469func (s InvalidResourceFormatException) GoString() string {
3470	return s.String()
3471}
3472
3473func newErrorInvalidResourceFormatException(v protocol.ResponseMetadata) error {
3474	return &InvalidResourceFormatException{
3475		RespMetadata: v,
3476	}
3477}
3478
3479// Code returns the exception type name.
3480func (s *InvalidResourceFormatException) Code() string {
3481	return "InvalidResourceFormatException"
3482}
3483
3484// Message returns the exception's message.
3485func (s *InvalidResourceFormatException) Message() string {
3486	if s.Message_ != nil {
3487		return *s.Message_
3488	}
3489	return ""
3490}
3491
3492// OrigErr always returns nil, satisfies awserr.Error interface.
3493func (s *InvalidResourceFormatException) OrigErr() error {
3494	return nil
3495}
3496
3497func (s *InvalidResourceFormatException) Error() string {
3498	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3499}
3500
3501// Status code returns the HTTP status code for the request's response error.
3502func (s *InvalidResourceFormatException) StatusCode() int {
3503	return s.RespMetadata.StatusCode
3504}
3505
3506// RequestID returns the service's response RequestID for request.
3507func (s *InvalidResourceFormatException) RequestID() string {
3508	return s.RespMetadata.RequestID
3509}
3510
3511type ListSignalingChannelsInput struct {
3512	_ struct{} `type:"structure"`
3513
3514	// Optional: Returns only the channels that satisfy a specific condition.
3515	ChannelNameCondition *ChannelNameCondition `type:"structure"`
3516
3517	// The maximum number of channels to return in the response. The default is
3518	// 500.
3519	MaxResults *int64 `min:"1" type:"integer"`
3520
3521	// If you specify this parameter, when the result of a ListSignalingChannels
3522	// operation is truncated, the call returns the NextToken in the response. To
3523	// get another batch of channels, provide this token in your next request.
3524	NextToken *string `type:"string"`
3525}
3526
3527// String returns the string representation.
3528//
3529// API parameter values that are decorated as "sensitive" in the API will not
3530// be included in the string output. The member name will be present, but the
3531// value will be replaced with "sensitive".
3532func (s ListSignalingChannelsInput) String() string {
3533	return awsutil.Prettify(s)
3534}
3535
3536// GoString returns the string representation.
3537//
3538// API parameter values that are decorated as "sensitive" in the API will not
3539// be included in the string output. The member name will be present, but the
3540// value will be replaced with "sensitive".
3541func (s ListSignalingChannelsInput) GoString() string {
3542	return s.String()
3543}
3544
3545// Validate inspects the fields of the type to determine if they are valid.
3546func (s *ListSignalingChannelsInput) Validate() error {
3547	invalidParams := request.ErrInvalidParams{Context: "ListSignalingChannelsInput"}
3548	if s.MaxResults != nil && *s.MaxResults < 1 {
3549		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3550	}
3551	if s.ChannelNameCondition != nil {
3552		if err := s.ChannelNameCondition.Validate(); err != nil {
3553			invalidParams.AddNested("ChannelNameCondition", err.(request.ErrInvalidParams))
3554		}
3555	}
3556
3557	if invalidParams.Len() > 0 {
3558		return invalidParams
3559	}
3560	return nil
3561}
3562
3563// SetChannelNameCondition sets the ChannelNameCondition field's value.
3564func (s *ListSignalingChannelsInput) SetChannelNameCondition(v *ChannelNameCondition) *ListSignalingChannelsInput {
3565	s.ChannelNameCondition = v
3566	return s
3567}
3568
3569// SetMaxResults sets the MaxResults field's value.
3570func (s *ListSignalingChannelsInput) SetMaxResults(v int64) *ListSignalingChannelsInput {
3571	s.MaxResults = &v
3572	return s
3573}
3574
3575// SetNextToken sets the NextToken field's value.
3576func (s *ListSignalingChannelsInput) SetNextToken(v string) *ListSignalingChannelsInput {
3577	s.NextToken = &v
3578	return s
3579}
3580
3581type ListSignalingChannelsOutput struct {
3582	_ struct{} `type:"structure"`
3583
3584	// An array of ChannelInfo objects.
3585	ChannelInfoList []*ChannelInfo `type:"list"`
3586
3587	// If the response is truncated, the call returns this element with a token.
3588	// To get the next batch of streams, use this token in your next request.
3589	NextToken *string `type:"string"`
3590}
3591
3592// String returns the string representation.
3593//
3594// API parameter values that are decorated as "sensitive" in the API will not
3595// be included in the string output. The member name will be present, but the
3596// value will be replaced with "sensitive".
3597func (s ListSignalingChannelsOutput) String() string {
3598	return awsutil.Prettify(s)
3599}
3600
3601// GoString returns the string representation.
3602//
3603// API parameter values that are decorated as "sensitive" in the API will not
3604// be included in the string output. The member name will be present, but the
3605// value will be replaced with "sensitive".
3606func (s ListSignalingChannelsOutput) GoString() string {
3607	return s.String()
3608}
3609
3610// SetChannelInfoList sets the ChannelInfoList field's value.
3611func (s *ListSignalingChannelsOutput) SetChannelInfoList(v []*ChannelInfo) *ListSignalingChannelsOutput {
3612	s.ChannelInfoList = v
3613	return s
3614}
3615
3616// SetNextToken sets the NextToken field's value.
3617func (s *ListSignalingChannelsOutput) SetNextToken(v string) *ListSignalingChannelsOutput {
3618	s.NextToken = &v
3619	return s
3620}
3621
3622type ListStreamsInput struct {
3623	_ struct{} `type:"structure"`
3624
3625	// The maximum number of streams to return in the response. The default is 10,000.
3626	MaxResults *int64 `min:"1" type:"integer"`
3627
3628	// If you specify this parameter, when the result of a ListStreams operation
3629	// is truncated, the call returns the NextToken in the response. To get another
3630	// batch of streams, provide this token in your next request.
3631	NextToken *string `type:"string"`
3632
3633	// Optional: Returns only streams that satisfy a specific condition. Currently,
3634	// you can specify only the prefix of a stream name as a condition.
3635	StreamNameCondition *StreamNameCondition `type:"structure"`
3636}
3637
3638// String returns the string representation.
3639//
3640// API parameter values that are decorated as "sensitive" in the API will not
3641// be included in the string output. The member name will be present, but the
3642// value will be replaced with "sensitive".
3643func (s ListStreamsInput) String() string {
3644	return awsutil.Prettify(s)
3645}
3646
3647// GoString returns the string representation.
3648//
3649// API parameter values that are decorated as "sensitive" in the API will not
3650// be included in the string output. The member name will be present, but the
3651// value will be replaced with "sensitive".
3652func (s ListStreamsInput) GoString() string {
3653	return s.String()
3654}
3655
3656// Validate inspects the fields of the type to determine if they are valid.
3657func (s *ListStreamsInput) Validate() error {
3658	invalidParams := request.ErrInvalidParams{Context: "ListStreamsInput"}
3659	if s.MaxResults != nil && *s.MaxResults < 1 {
3660		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
3661	}
3662	if s.StreamNameCondition != nil {
3663		if err := s.StreamNameCondition.Validate(); err != nil {
3664			invalidParams.AddNested("StreamNameCondition", err.(request.ErrInvalidParams))
3665		}
3666	}
3667
3668	if invalidParams.Len() > 0 {
3669		return invalidParams
3670	}
3671	return nil
3672}
3673
3674// SetMaxResults sets the MaxResults field's value.
3675func (s *ListStreamsInput) SetMaxResults(v int64) *ListStreamsInput {
3676	s.MaxResults = &v
3677	return s
3678}
3679
3680// SetNextToken sets the NextToken field's value.
3681func (s *ListStreamsInput) SetNextToken(v string) *ListStreamsInput {
3682	s.NextToken = &v
3683	return s
3684}
3685
3686// SetStreamNameCondition sets the StreamNameCondition field's value.
3687func (s *ListStreamsInput) SetStreamNameCondition(v *StreamNameCondition) *ListStreamsInput {
3688	s.StreamNameCondition = v
3689	return s
3690}
3691
3692type ListStreamsOutput struct {
3693	_ struct{} `type:"structure"`
3694
3695	// If the response is truncated, the call returns this element with a token.
3696	// To get the next batch of streams, use this token in your next request.
3697	NextToken *string `type:"string"`
3698
3699	// An array of StreamInfo objects.
3700	StreamInfoList []*StreamInfo `type:"list"`
3701}
3702
3703// String returns the string representation.
3704//
3705// API parameter values that are decorated as "sensitive" in the API will not
3706// be included in the string output. The member name will be present, but the
3707// value will be replaced with "sensitive".
3708func (s ListStreamsOutput) String() string {
3709	return awsutil.Prettify(s)
3710}
3711
3712// GoString returns the string representation.
3713//
3714// API parameter values that are decorated as "sensitive" in the API will not
3715// be included in the string output. The member name will be present, but the
3716// value will be replaced with "sensitive".
3717func (s ListStreamsOutput) GoString() string {
3718	return s.String()
3719}
3720
3721// SetNextToken sets the NextToken field's value.
3722func (s *ListStreamsOutput) SetNextToken(v string) *ListStreamsOutput {
3723	s.NextToken = &v
3724	return s
3725}
3726
3727// SetStreamInfoList sets the StreamInfoList field's value.
3728func (s *ListStreamsOutput) SetStreamInfoList(v []*StreamInfo) *ListStreamsOutput {
3729	s.StreamInfoList = v
3730	return s
3731}
3732
3733type ListTagsForResourceInput struct {
3734	_ struct{} `type:"structure"`
3735
3736	// If you specify this parameter and the result of a ListTagsForResource call
3737	// is truncated, the response includes a token that you can use in the next
3738	// request to fetch the next batch of tags.
3739	NextToken *string `type:"string"`
3740
3741	// The Amazon Resource Name (ARN) of the signaling channel for which you want
3742	// to list tags.
3743	//
3744	// ResourceARN is a required field
3745	ResourceARN *string `min:"1" type:"string" required:"true"`
3746}
3747
3748// String returns the string representation.
3749//
3750// API parameter values that are decorated as "sensitive" in the API will not
3751// be included in the string output. The member name will be present, but the
3752// value will be replaced with "sensitive".
3753func (s ListTagsForResourceInput) String() string {
3754	return awsutil.Prettify(s)
3755}
3756
3757// GoString returns the string representation.
3758//
3759// API parameter values that are decorated as "sensitive" in the API will not
3760// be included in the string output. The member name will be present, but the
3761// value will be replaced with "sensitive".
3762func (s ListTagsForResourceInput) GoString() string {
3763	return s.String()
3764}
3765
3766// Validate inspects the fields of the type to determine if they are valid.
3767func (s *ListTagsForResourceInput) Validate() error {
3768	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
3769	if s.ResourceARN == nil {
3770		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
3771	}
3772	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
3773		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
3774	}
3775
3776	if invalidParams.Len() > 0 {
3777		return invalidParams
3778	}
3779	return nil
3780}
3781
3782// SetNextToken sets the NextToken field's value.
3783func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
3784	s.NextToken = &v
3785	return s
3786}
3787
3788// SetResourceARN sets the ResourceARN field's value.
3789func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
3790	s.ResourceARN = &v
3791	return s
3792}
3793
3794type ListTagsForResourceOutput struct {
3795	_ struct{} `type:"structure"`
3796
3797	// If you specify this parameter and the result of a ListTagsForResource call
3798	// is truncated, the response includes a token that you can use in the next
3799	// request to fetch the next set of tags.
3800	NextToken *string `type:"string"`
3801
3802	// A map of tag keys and values associated with the specified signaling channel.
3803	Tags map[string]*string `min:"1" type:"map"`
3804}
3805
3806// String returns the string representation.
3807//
3808// API parameter values that are decorated as "sensitive" in the API will not
3809// be included in the string output. The member name will be present, but the
3810// value will be replaced with "sensitive".
3811func (s ListTagsForResourceOutput) String() string {
3812	return awsutil.Prettify(s)
3813}
3814
3815// GoString returns the string representation.
3816//
3817// API parameter values that are decorated as "sensitive" in the API will not
3818// be included in the string output. The member name will be present, but the
3819// value will be replaced with "sensitive".
3820func (s ListTagsForResourceOutput) GoString() string {
3821	return s.String()
3822}
3823
3824// SetNextToken sets the NextToken field's value.
3825func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
3826	s.NextToken = &v
3827	return s
3828}
3829
3830// SetTags sets the Tags field's value.
3831func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
3832	s.Tags = v
3833	return s
3834}
3835
3836type ListTagsForStreamInput struct {
3837	_ struct{} `type:"structure"`
3838
3839	// If you specify this parameter and the result of a ListTagsForStream call
3840	// is truncated, the response includes a token that you can use in the next
3841	// request to fetch the next batch of tags.
3842	NextToken *string `type:"string"`
3843
3844	// The Amazon Resource Name (ARN) of the stream that you want to list tags for.
3845	StreamARN *string `min:"1" type:"string"`
3846
3847	// The name of the stream that you want to list tags for.
3848	StreamName *string `min:"1" type:"string"`
3849}
3850
3851// String returns the string representation.
3852//
3853// API parameter values that are decorated as "sensitive" in the API will not
3854// be included in the string output. The member name will be present, but the
3855// value will be replaced with "sensitive".
3856func (s ListTagsForStreamInput) String() string {
3857	return awsutil.Prettify(s)
3858}
3859
3860// GoString returns the string representation.
3861//
3862// API parameter values that are decorated as "sensitive" in the API will not
3863// be included in the string output. The member name will be present, but the
3864// value will be replaced with "sensitive".
3865func (s ListTagsForStreamInput) GoString() string {
3866	return s.String()
3867}
3868
3869// Validate inspects the fields of the type to determine if they are valid.
3870func (s *ListTagsForStreamInput) Validate() error {
3871	invalidParams := request.ErrInvalidParams{Context: "ListTagsForStreamInput"}
3872	if s.StreamARN != nil && len(*s.StreamARN) < 1 {
3873		invalidParams.Add(request.NewErrParamMinLen("StreamARN", 1))
3874	}
3875	if s.StreamName != nil && len(*s.StreamName) < 1 {
3876		invalidParams.Add(request.NewErrParamMinLen("StreamName", 1))
3877	}
3878
3879	if invalidParams.Len() > 0 {
3880		return invalidParams
3881	}
3882	return nil
3883}
3884
3885// SetNextToken sets the NextToken field's value.
3886func (s *ListTagsForStreamInput) SetNextToken(v string) *ListTagsForStreamInput {
3887	s.NextToken = &v
3888	return s
3889}
3890
3891// SetStreamARN sets the StreamARN field's value.
3892func (s *ListTagsForStreamInput) SetStreamARN(v string) *ListTagsForStreamInput {
3893	s.StreamARN = &v
3894	return s
3895}
3896
3897// SetStreamName sets the StreamName field's value.
3898func (s *ListTagsForStreamInput) SetStreamName(v string) *ListTagsForStreamInput {
3899	s.StreamName = &v
3900	return s
3901}
3902
3903type ListTagsForStreamOutput struct {
3904	_ struct{} `type:"structure"`
3905
3906	// If you specify this parameter and the result of a ListTags call is truncated,
3907	// the response includes a token that you can use in the next request to fetch
3908	// the next set of tags.
3909	NextToken *string `type:"string"`
3910
3911	// A map of tag keys and values associated with the specified stream.
3912	Tags map[string]*string `min:"1" type:"map"`
3913}
3914
3915// String returns the string representation.
3916//
3917// API parameter values that are decorated as "sensitive" in the API will not
3918// be included in the string output. The member name will be present, but the
3919// value will be replaced with "sensitive".
3920func (s ListTagsForStreamOutput) String() string {
3921	return awsutil.Prettify(s)
3922}
3923
3924// GoString returns the string representation.
3925//
3926// API parameter values that are decorated as "sensitive" in the API will not
3927// be included in the string output. The member name will be present, but the
3928// value will be replaced with "sensitive".
3929func (s ListTagsForStreamOutput) GoString() string {
3930	return s.String()
3931}
3932
3933// SetNextToken sets the NextToken field's value.
3934func (s *ListTagsForStreamOutput) SetNextToken(v string) *ListTagsForStreamOutput {
3935	s.NextToken = &v
3936	return s
3937}
3938
3939// SetTags sets the Tags field's value.
3940func (s *ListTagsForStreamOutput) SetTags(v map[string]*string) *ListTagsForStreamOutput {
3941	s.Tags = v
3942	return s
3943}
3944
3945// The caller is not authorized to perform this operation.
3946type NotAuthorizedException struct {
3947	_            struct{}                  `type:"structure"`
3948	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
3949
3950	Message_ *string `locationName:"Message" type:"string"`
3951}
3952
3953// String returns the string representation.
3954//
3955// API parameter values that are decorated as "sensitive" in the API will not
3956// be included in the string output. The member name will be present, but the
3957// value will be replaced with "sensitive".
3958func (s NotAuthorizedException) String() string {
3959	return awsutil.Prettify(s)
3960}
3961
3962// GoString returns the string representation.
3963//
3964// API parameter values that are decorated as "sensitive" in the API will not
3965// be included in the string output. The member name will be present, but the
3966// value will be replaced with "sensitive".
3967func (s NotAuthorizedException) GoString() string {
3968	return s.String()
3969}
3970
3971func newErrorNotAuthorizedException(v protocol.ResponseMetadata) error {
3972	return &NotAuthorizedException{
3973		RespMetadata: v,
3974	}
3975}
3976
3977// Code returns the exception type name.
3978func (s *NotAuthorizedException) Code() string {
3979	return "NotAuthorizedException"
3980}
3981
3982// Message returns the exception's message.
3983func (s *NotAuthorizedException) Message() string {
3984	if s.Message_ != nil {
3985		return *s.Message_
3986	}
3987	return ""
3988}
3989
3990// OrigErr always returns nil, satisfies awserr.Error interface.
3991func (s *NotAuthorizedException) OrigErr() error {
3992	return nil
3993}
3994
3995func (s *NotAuthorizedException) Error() string {
3996	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
3997}
3998
3999// Status code returns the HTTP status code for the request's response error.
4000func (s *NotAuthorizedException) StatusCode() int {
4001	return s.RespMetadata.StatusCode
4002}
4003
4004// RequestID returns the service's response RequestID for request.
4005func (s *NotAuthorizedException) RequestID() string {
4006	return s.RespMetadata.RequestID
4007}
4008
4009// An object that describes the endpoint of the signaling channel returned by
4010// the GetSignalingChannelEndpoint API.
4011type ResourceEndpointListItem struct {
4012	_ struct{} `type:"structure"`
4013
4014	// The protocol of the signaling channel returned by the GetSignalingChannelEndpoint
4015	// API.
4016	Protocol *string `type:"string" enum:"ChannelProtocol"`
4017
4018	// The endpoint of the signaling channel returned by the GetSignalingChannelEndpoint
4019	// API.
4020	ResourceEndpoint *string `type:"string"`
4021}
4022
4023// String returns the string representation.
4024//
4025// API parameter values that are decorated as "sensitive" in the API will not
4026// be included in the string output. The member name will be present, but the
4027// value will be replaced with "sensitive".
4028func (s ResourceEndpointListItem) String() string {
4029	return awsutil.Prettify(s)
4030}
4031
4032// GoString returns the string representation.
4033//
4034// API parameter values that are decorated as "sensitive" in the API will not
4035// be included in the string output. The member name will be present, but the
4036// value will be replaced with "sensitive".
4037func (s ResourceEndpointListItem) GoString() string {
4038	return s.String()
4039}
4040
4041// SetProtocol sets the Protocol field's value.
4042func (s *ResourceEndpointListItem) SetProtocol(v string) *ResourceEndpointListItem {
4043	s.Protocol = &v
4044	return s
4045}
4046
4047// SetResourceEndpoint sets the ResourceEndpoint field's value.
4048func (s *ResourceEndpointListItem) SetResourceEndpoint(v string) *ResourceEndpointListItem {
4049	s.ResourceEndpoint = &v
4050	return s
4051}
4052
4053// The signaling channel is currently not available for this operation.
4054type ResourceInUseException struct {
4055	_            struct{}                  `type:"structure"`
4056	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4057
4058	Message_ *string `locationName:"Message" type:"string"`
4059}
4060
4061// String returns the string representation.
4062//
4063// API parameter values that are decorated as "sensitive" in the API will not
4064// be included in the string output. The member name will be present, but the
4065// value will be replaced with "sensitive".
4066func (s ResourceInUseException) String() string {
4067	return awsutil.Prettify(s)
4068}
4069
4070// GoString returns the string representation.
4071//
4072// API parameter values that are decorated as "sensitive" in the API will not
4073// be included in the string output. The member name will be present, but the
4074// value will be replaced with "sensitive".
4075func (s ResourceInUseException) GoString() string {
4076	return s.String()
4077}
4078
4079func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
4080	return &ResourceInUseException{
4081		RespMetadata: v,
4082	}
4083}
4084
4085// Code returns the exception type name.
4086func (s *ResourceInUseException) Code() string {
4087	return "ResourceInUseException"
4088}
4089
4090// Message returns the exception's message.
4091func (s *ResourceInUseException) Message() string {
4092	if s.Message_ != nil {
4093		return *s.Message_
4094	}
4095	return ""
4096}
4097
4098// OrigErr always returns nil, satisfies awserr.Error interface.
4099func (s *ResourceInUseException) OrigErr() error {
4100	return nil
4101}
4102
4103func (s *ResourceInUseException) Error() string {
4104	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4105}
4106
4107// Status code returns the HTTP status code for the request's response error.
4108func (s *ResourceInUseException) StatusCode() int {
4109	return s.RespMetadata.StatusCode
4110}
4111
4112// RequestID returns the service's response RequestID for request.
4113func (s *ResourceInUseException) RequestID() string {
4114	return s.RespMetadata.RequestID
4115}
4116
4117// Amazon Kinesis Video Streams can't find the stream that you specified.
4118type ResourceNotFoundException struct {
4119	_            struct{}                  `type:"structure"`
4120	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4121
4122	Message_ *string `locationName:"Message" type:"string"`
4123}
4124
4125// String returns the string representation.
4126//
4127// API parameter values that are decorated as "sensitive" in the API will not
4128// be included in the string output. The member name will be present, but the
4129// value will be replaced with "sensitive".
4130func (s ResourceNotFoundException) String() string {
4131	return awsutil.Prettify(s)
4132}
4133
4134// GoString returns the string representation.
4135//
4136// API parameter values that are decorated as "sensitive" in the API will not
4137// be included in the string output. The member name will be present, but the
4138// value will be replaced with "sensitive".
4139func (s ResourceNotFoundException) GoString() string {
4140	return s.String()
4141}
4142
4143func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
4144	return &ResourceNotFoundException{
4145		RespMetadata: v,
4146	}
4147}
4148
4149// Code returns the exception type name.
4150func (s *ResourceNotFoundException) Code() string {
4151	return "ResourceNotFoundException"
4152}
4153
4154// Message returns the exception's message.
4155func (s *ResourceNotFoundException) Message() string {
4156	if s.Message_ != nil {
4157		return *s.Message_
4158	}
4159	return ""
4160}
4161
4162// OrigErr always returns nil, satisfies awserr.Error interface.
4163func (s *ResourceNotFoundException) OrigErr() error {
4164	return nil
4165}
4166
4167func (s *ResourceNotFoundException) Error() string {
4168	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4169}
4170
4171// Status code returns the HTTP status code for the request's response error.
4172func (s *ResourceNotFoundException) StatusCode() int {
4173	return s.RespMetadata.StatusCode
4174}
4175
4176// RequestID returns the service's response RequestID for request.
4177func (s *ResourceNotFoundException) RequestID() string {
4178	return s.RespMetadata.RequestID
4179}
4180
4181// An object that contains the endpoint configuration for the SINGLE_MASTER
4182// channel type.
4183type SingleMasterChannelEndpointConfiguration struct {
4184	_ struct{} `type:"structure"`
4185
4186	// This property is used to determine the nature of communication over this
4187	// SINGLE_MASTER signaling channel. If WSS is specified, this API returns a
4188	// websocket endpoint. If HTTPS is specified, this API returns an HTTPS endpoint.
4189	Protocols []*string `min:"1" type:"list"`
4190
4191	// This property is used to determine messaging permissions in this SINGLE_MASTER
4192	// signaling channel. If MASTER is specified, this API returns an endpoint that
4193	// a client can use to receive offers from and send answers to any of the viewers
4194	// on this signaling channel. If VIEWER is specified, this API returns an endpoint
4195	// that a client can use only to send offers to another MASTER client on this
4196	// signaling channel.
4197	Role *string `type:"string" enum:"ChannelRole"`
4198}
4199
4200// String returns the string representation.
4201//
4202// API parameter values that are decorated as "sensitive" in the API will not
4203// be included in the string output. The member name will be present, but the
4204// value will be replaced with "sensitive".
4205func (s SingleMasterChannelEndpointConfiguration) String() string {
4206	return awsutil.Prettify(s)
4207}
4208
4209// GoString returns the string representation.
4210//
4211// API parameter values that are decorated as "sensitive" in the API will not
4212// be included in the string output. The member name will be present, but the
4213// value will be replaced with "sensitive".
4214func (s SingleMasterChannelEndpointConfiguration) GoString() string {
4215	return s.String()
4216}
4217
4218// Validate inspects the fields of the type to determine if they are valid.
4219func (s *SingleMasterChannelEndpointConfiguration) Validate() error {
4220	invalidParams := request.ErrInvalidParams{Context: "SingleMasterChannelEndpointConfiguration"}
4221	if s.Protocols != nil && len(s.Protocols) < 1 {
4222		invalidParams.Add(request.NewErrParamMinLen("Protocols", 1))
4223	}
4224
4225	if invalidParams.Len() > 0 {
4226		return invalidParams
4227	}
4228	return nil
4229}
4230
4231// SetProtocols sets the Protocols field's value.
4232func (s *SingleMasterChannelEndpointConfiguration) SetProtocols(v []*string) *SingleMasterChannelEndpointConfiguration {
4233	s.Protocols = v
4234	return s
4235}
4236
4237// SetRole sets the Role field's value.
4238func (s *SingleMasterChannelEndpointConfiguration) SetRole(v string) *SingleMasterChannelEndpointConfiguration {
4239	s.Role = &v
4240	return s
4241}
4242
4243// A structure that contains the configuration for the SINGLE_MASTER channel
4244// type.
4245type SingleMasterConfiguration struct {
4246	_ struct{} `type:"structure"`
4247
4248	// The period of time a signaling channel retains underlivered messages before
4249	// they are discarded.
4250	MessageTtlSeconds *int64 `min:"5" type:"integer"`
4251}
4252
4253// String returns the string representation.
4254//
4255// API parameter values that are decorated as "sensitive" in the API will not
4256// be included in the string output. The member name will be present, but the
4257// value will be replaced with "sensitive".
4258func (s SingleMasterConfiguration) String() string {
4259	return awsutil.Prettify(s)
4260}
4261
4262// GoString returns the string representation.
4263//
4264// API parameter values that are decorated as "sensitive" in the API will not
4265// be included in the string output. The member name will be present, but the
4266// value will be replaced with "sensitive".
4267func (s SingleMasterConfiguration) GoString() string {
4268	return s.String()
4269}
4270
4271// Validate inspects the fields of the type to determine if they are valid.
4272func (s *SingleMasterConfiguration) Validate() error {
4273	invalidParams := request.ErrInvalidParams{Context: "SingleMasterConfiguration"}
4274	if s.MessageTtlSeconds != nil && *s.MessageTtlSeconds < 5 {
4275		invalidParams.Add(request.NewErrParamMinValue("MessageTtlSeconds", 5))
4276	}
4277
4278	if invalidParams.Len() > 0 {
4279		return invalidParams
4280	}
4281	return nil
4282}
4283
4284// SetMessageTtlSeconds sets the MessageTtlSeconds field's value.
4285func (s *SingleMasterConfiguration) SetMessageTtlSeconds(v int64) *SingleMasterConfiguration {
4286	s.MessageTtlSeconds = &v
4287	return s
4288}
4289
4290// An object describing a Kinesis video stream.
4291type StreamInfo struct {
4292	_ struct{} `type:"structure"`
4293
4294	// A time stamp that indicates when the stream was created.
4295	CreationTime *time.Time `type:"timestamp"`
4296
4297	// How long the stream retains data, in hours.
4298	DataRetentionInHours *int64 `type:"integer"`
4299
4300	// The name of the device that is associated with the stream.
4301	DeviceName *string `min:"1" type:"string"`
4302
4303	// The ID of the AWS Key Management Service (AWS KMS) key that Kinesis Video
4304	// Streams uses to encrypt data on the stream.
4305	KmsKeyId *string `min:"1" type:"string"`
4306
4307	// The MediaType of the stream.
4308	MediaType *string `min:"1" type:"string"`
4309
4310	// The status of the stream.
4311	Status *string `type:"string" enum:"Status"`
4312
4313	// The Amazon Resource Name (ARN) of the stream.
4314	StreamARN *string `min:"1" type:"string"`
4315
4316	// The name of the stream.
4317	StreamName *string `min:"1" type:"string"`
4318
4319	// The version of the stream.
4320	Version *string `min:"1" type:"string"`
4321}
4322
4323// String returns the string representation.
4324//
4325// API parameter values that are decorated as "sensitive" in the API will not
4326// be included in the string output. The member name will be present, but the
4327// value will be replaced with "sensitive".
4328func (s StreamInfo) String() string {
4329	return awsutil.Prettify(s)
4330}
4331
4332// GoString returns the string representation.
4333//
4334// API parameter values that are decorated as "sensitive" in the API will not
4335// be included in the string output. The member name will be present, but the
4336// value will be replaced with "sensitive".
4337func (s StreamInfo) GoString() string {
4338	return s.String()
4339}
4340
4341// SetCreationTime sets the CreationTime field's value.
4342func (s *StreamInfo) SetCreationTime(v time.Time) *StreamInfo {
4343	s.CreationTime = &v
4344	return s
4345}
4346
4347// SetDataRetentionInHours sets the DataRetentionInHours field's value.
4348func (s *StreamInfo) SetDataRetentionInHours(v int64) *StreamInfo {
4349	s.DataRetentionInHours = &v
4350	return s
4351}
4352
4353// SetDeviceName sets the DeviceName field's value.
4354func (s *StreamInfo) SetDeviceName(v string) *StreamInfo {
4355	s.DeviceName = &v
4356	return s
4357}
4358
4359// SetKmsKeyId sets the KmsKeyId field's value.
4360func (s *StreamInfo) SetKmsKeyId(v string) *StreamInfo {
4361	s.KmsKeyId = &v
4362	return s
4363}
4364
4365// SetMediaType sets the MediaType field's value.
4366func (s *StreamInfo) SetMediaType(v string) *StreamInfo {
4367	s.MediaType = &v
4368	return s
4369}
4370
4371// SetStatus sets the Status field's value.
4372func (s *StreamInfo) SetStatus(v string) *StreamInfo {
4373	s.Status = &v
4374	return s
4375}
4376
4377// SetStreamARN sets the StreamARN field's value.
4378func (s *StreamInfo) SetStreamARN(v string) *StreamInfo {
4379	s.StreamARN = &v
4380	return s
4381}
4382
4383// SetStreamName sets the StreamName field's value.
4384func (s *StreamInfo) SetStreamName(v string) *StreamInfo {
4385	s.StreamName = &v
4386	return s
4387}
4388
4389// SetVersion sets the Version field's value.
4390func (s *StreamInfo) SetVersion(v string) *StreamInfo {
4391	s.Version = &v
4392	return s
4393}
4394
4395// Specifies the condition that streams must satisfy to be returned when you
4396// list streams (see the ListStreams API). A condition has a comparison operation
4397// and a value. Currently, you can specify only the BEGINS_WITH operator, which
4398// finds streams whose names start with a given prefix.
4399type StreamNameCondition struct {
4400	_ struct{} `type:"structure"`
4401
4402	// A comparison operator. Currently, you can specify only the BEGINS_WITH operator,
4403	// which finds streams whose names start with a given prefix.
4404	ComparisonOperator *string `type:"string" enum:"ComparisonOperator"`
4405
4406	// A value to compare.
4407	ComparisonValue *string `min:"1" type:"string"`
4408}
4409
4410// String returns the string representation.
4411//
4412// API parameter values that are decorated as "sensitive" in the API will not
4413// be included in the string output. The member name will be present, but the
4414// value will be replaced with "sensitive".
4415func (s StreamNameCondition) String() string {
4416	return awsutil.Prettify(s)
4417}
4418
4419// GoString returns the string representation.
4420//
4421// API parameter values that are decorated as "sensitive" in the API will not
4422// be included in the string output. The member name will be present, but the
4423// value will be replaced with "sensitive".
4424func (s StreamNameCondition) GoString() string {
4425	return s.String()
4426}
4427
4428// Validate inspects the fields of the type to determine if they are valid.
4429func (s *StreamNameCondition) Validate() error {
4430	invalidParams := request.ErrInvalidParams{Context: "StreamNameCondition"}
4431	if s.ComparisonValue != nil && len(*s.ComparisonValue) < 1 {
4432		invalidParams.Add(request.NewErrParamMinLen("ComparisonValue", 1))
4433	}
4434
4435	if invalidParams.Len() > 0 {
4436		return invalidParams
4437	}
4438	return nil
4439}
4440
4441// SetComparisonOperator sets the ComparisonOperator field's value.
4442func (s *StreamNameCondition) SetComparisonOperator(v string) *StreamNameCondition {
4443	s.ComparisonOperator = &v
4444	return s
4445}
4446
4447// SetComparisonValue sets the ComparisonValue field's value.
4448func (s *StreamNameCondition) SetComparisonValue(v string) *StreamNameCondition {
4449	s.ComparisonValue = &v
4450	return s
4451}
4452
4453// A key and value pair that is associated with the specified signaling channel.
4454type Tag struct {
4455	_ struct{} `type:"structure"`
4456
4457	// The key of the tag that is associated with the specified signaling channel.
4458	//
4459	// Key is a required field
4460	Key *string `min:"1" type:"string" required:"true"`
4461
4462	// The value of the tag that is associated with the specified signaling channel.
4463	//
4464	// Value is a required field
4465	Value *string `type:"string" required:"true"`
4466}
4467
4468// String returns the string representation.
4469//
4470// API parameter values that are decorated as "sensitive" in the API will not
4471// be included in the string output. The member name will be present, but the
4472// value will be replaced with "sensitive".
4473func (s Tag) String() string {
4474	return awsutil.Prettify(s)
4475}
4476
4477// GoString returns the string representation.
4478//
4479// API parameter values that are decorated as "sensitive" in the API will not
4480// be included in the string output. The member name will be present, but the
4481// value will be replaced with "sensitive".
4482func (s Tag) GoString() string {
4483	return s.String()
4484}
4485
4486// Validate inspects the fields of the type to determine if they are valid.
4487func (s *Tag) Validate() error {
4488	invalidParams := request.ErrInvalidParams{Context: "Tag"}
4489	if s.Key == nil {
4490		invalidParams.Add(request.NewErrParamRequired("Key"))
4491	}
4492	if s.Key != nil && len(*s.Key) < 1 {
4493		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
4494	}
4495	if s.Value == nil {
4496		invalidParams.Add(request.NewErrParamRequired("Value"))
4497	}
4498
4499	if invalidParams.Len() > 0 {
4500		return invalidParams
4501	}
4502	return nil
4503}
4504
4505// SetKey sets the Key field's value.
4506func (s *Tag) SetKey(v string) *Tag {
4507	s.Key = &v
4508	return s
4509}
4510
4511// SetValue sets the Value field's value.
4512func (s *Tag) SetValue(v string) *Tag {
4513	s.Value = &v
4514	return s
4515}
4516
4517type TagResourceInput struct {
4518	_ struct{} `type:"structure"`
4519
4520	// The Amazon Resource Name (ARN) of the signaling channel to which you want
4521	// to add tags.
4522	//
4523	// ResourceARN is a required field
4524	ResourceARN *string `min:"1" type:"string" required:"true"`
4525
4526	// A list of tags to associate with the specified signaling channel. Each tag
4527	// is a key-value pair.
4528	//
4529	// Tags is a required field
4530	Tags []*Tag `min:"1" type:"list" required:"true"`
4531}
4532
4533// String returns the string representation.
4534//
4535// API parameter values that are decorated as "sensitive" in the API will not
4536// be included in the string output. The member name will be present, but the
4537// value will be replaced with "sensitive".
4538func (s TagResourceInput) String() string {
4539	return awsutil.Prettify(s)
4540}
4541
4542// GoString returns the string representation.
4543//
4544// API parameter values that are decorated as "sensitive" in the API will not
4545// be included in the string output. The member name will be present, but the
4546// value will be replaced with "sensitive".
4547func (s TagResourceInput) GoString() string {
4548	return s.String()
4549}
4550
4551// Validate inspects the fields of the type to determine if they are valid.
4552func (s *TagResourceInput) Validate() error {
4553	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
4554	if s.ResourceARN == nil {
4555		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
4556	}
4557	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
4558		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
4559	}
4560	if s.Tags == nil {
4561		invalidParams.Add(request.NewErrParamRequired("Tags"))
4562	}
4563	if s.Tags != nil && len(s.Tags) < 1 {
4564		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
4565	}
4566	if s.Tags != nil {
4567		for i, v := range s.Tags {
4568			if v == nil {
4569				continue
4570			}
4571			if err := v.Validate(); err != nil {
4572				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4573			}
4574		}
4575	}
4576
4577	if invalidParams.Len() > 0 {
4578		return invalidParams
4579	}
4580	return nil
4581}
4582
4583// SetResourceARN sets the ResourceARN field's value.
4584func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
4585	s.ResourceARN = &v
4586	return s
4587}
4588
4589// SetTags sets the Tags field's value.
4590func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
4591	s.Tags = v
4592	return s
4593}
4594
4595type TagResourceOutput struct {
4596	_ struct{} `type:"structure"`
4597}
4598
4599// String returns the string representation.
4600//
4601// API parameter values that are decorated as "sensitive" in the API will not
4602// be included in the string output. The member name will be present, but the
4603// value will be replaced with "sensitive".
4604func (s TagResourceOutput) String() string {
4605	return awsutil.Prettify(s)
4606}
4607
4608// GoString returns the string representation.
4609//
4610// API parameter values that are decorated as "sensitive" in the API will not
4611// be included in the string output. The member name will be present, but the
4612// value will be replaced with "sensitive".
4613func (s TagResourceOutput) GoString() string {
4614	return s.String()
4615}
4616
4617type TagStreamInput struct {
4618	_ struct{} `type:"structure"`
4619
4620	// The Amazon Resource Name (ARN) of the resource that you want to add the tag
4621	// or tags to.
4622	StreamARN *string `min:"1" type:"string"`
4623
4624	// The name of the stream that you want to add the tag or tags to.
4625	StreamName *string `min:"1" type:"string"`
4626
4627	// A list of tags to associate with the specified stream. Each tag is a key-value
4628	// pair (the value is optional).
4629	//
4630	// Tags is a required field
4631	Tags map[string]*string `min:"1" type:"map" required:"true"`
4632}
4633
4634// String returns the string representation.
4635//
4636// API parameter values that are decorated as "sensitive" in the API will not
4637// be included in the string output. The member name will be present, but the
4638// value will be replaced with "sensitive".
4639func (s TagStreamInput) String() string {
4640	return awsutil.Prettify(s)
4641}
4642
4643// GoString returns the string representation.
4644//
4645// API parameter values that are decorated as "sensitive" in the API will not
4646// be included in the string output. The member name will be present, but the
4647// value will be replaced with "sensitive".
4648func (s TagStreamInput) GoString() string {
4649	return s.String()
4650}
4651
4652// Validate inspects the fields of the type to determine if they are valid.
4653func (s *TagStreamInput) Validate() error {
4654	invalidParams := request.ErrInvalidParams{Context: "TagStreamInput"}
4655	if s.StreamARN != nil && len(*s.StreamARN) < 1 {
4656		invalidParams.Add(request.NewErrParamMinLen("StreamARN", 1))
4657	}
4658	if s.StreamName != nil && len(*s.StreamName) < 1 {
4659		invalidParams.Add(request.NewErrParamMinLen("StreamName", 1))
4660	}
4661	if s.Tags == nil {
4662		invalidParams.Add(request.NewErrParamRequired("Tags"))
4663	}
4664	if s.Tags != nil && len(s.Tags) < 1 {
4665		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
4666	}
4667
4668	if invalidParams.Len() > 0 {
4669		return invalidParams
4670	}
4671	return nil
4672}
4673
4674// SetStreamARN sets the StreamARN field's value.
4675func (s *TagStreamInput) SetStreamARN(v string) *TagStreamInput {
4676	s.StreamARN = &v
4677	return s
4678}
4679
4680// SetStreamName sets the StreamName field's value.
4681func (s *TagStreamInput) SetStreamName(v string) *TagStreamInput {
4682	s.StreamName = &v
4683	return s
4684}
4685
4686// SetTags sets the Tags field's value.
4687func (s *TagStreamInput) SetTags(v map[string]*string) *TagStreamInput {
4688	s.Tags = v
4689	return s
4690}
4691
4692type TagStreamOutput struct {
4693	_ struct{} `type:"structure"`
4694}
4695
4696// String returns the string representation.
4697//
4698// API parameter values that are decorated as "sensitive" in the API will not
4699// be included in the string output. The member name will be present, but the
4700// value will be replaced with "sensitive".
4701func (s TagStreamOutput) String() string {
4702	return awsutil.Prettify(s)
4703}
4704
4705// GoString returns the string representation.
4706//
4707// API parameter values that are decorated as "sensitive" in the API will not
4708// be included in the string output. The member name will be present, but the
4709// value will be replaced with "sensitive".
4710func (s TagStreamOutput) GoString() string {
4711	return s.String()
4712}
4713
4714// You have exceeded the limit of tags that you can associate with the resource.
4715// Kinesis video streams support up to 50 tags.
4716type TagsPerResourceExceededLimitException struct {
4717	_            struct{}                  `type:"structure"`
4718	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4719
4720	Message_ *string `locationName:"Message" type:"string"`
4721}
4722
4723// String returns the string representation.
4724//
4725// API parameter values that are decorated as "sensitive" in the API will not
4726// be included in the string output. The member name will be present, but the
4727// value will be replaced with "sensitive".
4728func (s TagsPerResourceExceededLimitException) String() string {
4729	return awsutil.Prettify(s)
4730}
4731
4732// GoString returns the string representation.
4733//
4734// API parameter values that are decorated as "sensitive" in the API will not
4735// be included in the string output. The member name will be present, but the
4736// value will be replaced with "sensitive".
4737func (s TagsPerResourceExceededLimitException) GoString() string {
4738	return s.String()
4739}
4740
4741func newErrorTagsPerResourceExceededLimitException(v protocol.ResponseMetadata) error {
4742	return &TagsPerResourceExceededLimitException{
4743		RespMetadata: v,
4744	}
4745}
4746
4747// Code returns the exception type name.
4748func (s *TagsPerResourceExceededLimitException) Code() string {
4749	return "TagsPerResourceExceededLimitException"
4750}
4751
4752// Message returns the exception's message.
4753func (s *TagsPerResourceExceededLimitException) Message() string {
4754	if s.Message_ != nil {
4755		return *s.Message_
4756	}
4757	return ""
4758}
4759
4760// OrigErr always returns nil, satisfies awserr.Error interface.
4761func (s *TagsPerResourceExceededLimitException) OrigErr() error {
4762	return nil
4763}
4764
4765func (s *TagsPerResourceExceededLimitException) Error() string {
4766	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4767}
4768
4769// Status code returns the HTTP status code for the request's response error.
4770func (s *TagsPerResourceExceededLimitException) StatusCode() int {
4771	return s.RespMetadata.StatusCode
4772}
4773
4774// RequestID returns the service's response RequestID for request.
4775func (s *TagsPerResourceExceededLimitException) RequestID() string {
4776	return s.RespMetadata.RequestID
4777}
4778
4779type UntagResourceInput struct {
4780	_ struct{} `type:"structure"`
4781
4782	// The Amazon Resource Name (ARN) of the signaling channel from which you want
4783	// to remove tags.
4784	//
4785	// ResourceARN is a required field
4786	ResourceARN *string `min:"1" type:"string" required:"true"`
4787
4788	// A list of the keys of the tags that you want to remove.
4789	//
4790	// TagKeyList is a required field
4791	TagKeyList []*string `min:"1" type:"list" required:"true"`
4792}
4793
4794// String returns the string representation.
4795//
4796// API parameter values that are decorated as "sensitive" in the API will not
4797// be included in the string output. The member name will be present, but the
4798// value will be replaced with "sensitive".
4799func (s UntagResourceInput) String() string {
4800	return awsutil.Prettify(s)
4801}
4802
4803// GoString returns the string representation.
4804//
4805// API parameter values that are decorated as "sensitive" in the API will not
4806// be included in the string output. The member name will be present, but the
4807// value will be replaced with "sensitive".
4808func (s UntagResourceInput) GoString() string {
4809	return s.String()
4810}
4811
4812// Validate inspects the fields of the type to determine if they are valid.
4813func (s *UntagResourceInput) Validate() error {
4814	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
4815	if s.ResourceARN == nil {
4816		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
4817	}
4818	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
4819		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
4820	}
4821	if s.TagKeyList == nil {
4822		invalidParams.Add(request.NewErrParamRequired("TagKeyList"))
4823	}
4824	if s.TagKeyList != nil && len(s.TagKeyList) < 1 {
4825		invalidParams.Add(request.NewErrParamMinLen("TagKeyList", 1))
4826	}
4827
4828	if invalidParams.Len() > 0 {
4829		return invalidParams
4830	}
4831	return nil
4832}
4833
4834// SetResourceARN sets the ResourceARN field's value.
4835func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
4836	s.ResourceARN = &v
4837	return s
4838}
4839
4840// SetTagKeyList sets the TagKeyList field's value.
4841func (s *UntagResourceInput) SetTagKeyList(v []*string) *UntagResourceInput {
4842	s.TagKeyList = v
4843	return s
4844}
4845
4846type UntagResourceOutput struct {
4847	_ struct{} `type:"structure"`
4848}
4849
4850// String returns the string representation.
4851//
4852// API parameter values that are decorated as "sensitive" in the API will not
4853// be included in the string output. The member name will be present, but the
4854// value will be replaced with "sensitive".
4855func (s UntagResourceOutput) String() string {
4856	return awsutil.Prettify(s)
4857}
4858
4859// GoString returns the string representation.
4860//
4861// API parameter values that are decorated as "sensitive" in the API will not
4862// be included in the string output. The member name will be present, but the
4863// value will be replaced with "sensitive".
4864func (s UntagResourceOutput) GoString() string {
4865	return s.String()
4866}
4867
4868type UntagStreamInput struct {
4869	_ struct{} `type:"structure"`
4870
4871	// The Amazon Resource Name (ARN) of the stream that you want to remove tags
4872	// from.
4873	StreamARN *string `min:"1" type:"string"`
4874
4875	// The name of the stream that you want to remove tags from.
4876	StreamName *string `min:"1" type:"string"`
4877
4878	// A list of the keys of the tags that you want to remove.
4879	//
4880	// TagKeyList is a required field
4881	TagKeyList []*string `min:"1" type:"list" required:"true"`
4882}
4883
4884// String returns the string representation.
4885//
4886// API parameter values that are decorated as "sensitive" in the API will not
4887// be included in the string output. The member name will be present, but the
4888// value will be replaced with "sensitive".
4889func (s UntagStreamInput) String() string {
4890	return awsutil.Prettify(s)
4891}
4892
4893// GoString returns the string representation.
4894//
4895// API parameter values that are decorated as "sensitive" in the API will not
4896// be included in the string output. The member name will be present, but the
4897// value will be replaced with "sensitive".
4898func (s UntagStreamInput) GoString() string {
4899	return s.String()
4900}
4901
4902// Validate inspects the fields of the type to determine if they are valid.
4903func (s *UntagStreamInput) Validate() error {
4904	invalidParams := request.ErrInvalidParams{Context: "UntagStreamInput"}
4905	if s.StreamARN != nil && len(*s.StreamARN) < 1 {
4906		invalidParams.Add(request.NewErrParamMinLen("StreamARN", 1))
4907	}
4908	if s.StreamName != nil && len(*s.StreamName) < 1 {
4909		invalidParams.Add(request.NewErrParamMinLen("StreamName", 1))
4910	}
4911	if s.TagKeyList == nil {
4912		invalidParams.Add(request.NewErrParamRequired("TagKeyList"))
4913	}
4914	if s.TagKeyList != nil && len(s.TagKeyList) < 1 {
4915		invalidParams.Add(request.NewErrParamMinLen("TagKeyList", 1))
4916	}
4917
4918	if invalidParams.Len() > 0 {
4919		return invalidParams
4920	}
4921	return nil
4922}
4923
4924// SetStreamARN sets the StreamARN field's value.
4925func (s *UntagStreamInput) SetStreamARN(v string) *UntagStreamInput {
4926	s.StreamARN = &v
4927	return s
4928}
4929
4930// SetStreamName sets the StreamName field's value.
4931func (s *UntagStreamInput) SetStreamName(v string) *UntagStreamInput {
4932	s.StreamName = &v
4933	return s
4934}
4935
4936// SetTagKeyList sets the TagKeyList field's value.
4937func (s *UntagStreamInput) SetTagKeyList(v []*string) *UntagStreamInput {
4938	s.TagKeyList = v
4939	return s
4940}
4941
4942type UntagStreamOutput struct {
4943	_ struct{} `type:"structure"`
4944}
4945
4946// String returns the string representation.
4947//
4948// API parameter values that are decorated as "sensitive" in the API will not
4949// be included in the string output. The member name will be present, but the
4950// value will be replaced with "sensitive".
4951func (s UntagStreamOutput) String() string {
4952	return awsutil.Prettify(s)
4953}
4954
4955// GoString returns the string representation.
4956//
4957// API parameter values that are decorated as "sensitive" in the API will not
4958// be included in the string output. The member name will be present, but the
4959// value will be replaced with "sensitive".
4960func (s UntagStreamOutput) GoString() string {
4961	return s.String()
4962}
4963
4964type UpdateDataRetentionInput struct {
4965	_ struct{} `type:"structure"`
4966
4967	// The version of the stream whose retention period you want to change. To get
4968	// the version, call either the DescribeStream or the ListStreams API.
4969	//
4970	// CurrentVersion is a required field
4971	CurrentVersion *string `min:"1" type:"string" required:"true"`
4972
4973	// The retention period, in hours. The value you specify replaces the current
4974	// value. The maximum value for this parameter is 87600 (ten years).
4975	//
4976	// DataRetentionChangeInHours is a required field
4977	DataRetentionChangeInHours *int64 `min:"1" type:"integer" required:"true"`
4978
4979	// Indicates whether you want to increase or decrease the retention period.
4980	//
4981	// Operation is a required field
4982	Operation *string `type:"string" required:"true" enum:"UpdateDataRetentionOperation"`
4983
4984	// The Amazon Resource Name (ARN) of the stream whose retention period you want
4985	// to change.
4986	StreamARN *string `min:"1" type:"string"`
4987
4988	// The name of the stream whose retention period you want to change.
4989	StreamName *string `min:"1" type:"string"`
4990}
4991
4992// String returns the string representation.
4993//
4994// API parameter values that are decorated as "sensitive" in the API will not
4995// be included in the string output. The member name will be present, but the
4996// value will be replaced with "sensitive".
4997func (s UpdateDataRetentionInput) String() string {
4998	return awsutil.Prettify(s)
4999}
5000
5001// GoString returns the string representation.
5002//
5003// API parameter values that are decorated as "sensitive" in the API will not
5004// be included in the string output. The member name will be present, but the
5005// value will be replaced with "sensitive".
5006func (s UpdateDataRetentionInput) GoString() string {
5007	return s.String()
5008}
5009
5010// Validate inspects the fields of the type to determine if they are valid.
5011func (s *UpdateDataRetentionInput) Validate() error {
5012	invalidParams := request.ErrInvalidParams{Context: "UpdateDataRetentionInput"}
5013	if s.CurrentVersion == nil {
5014		invalidParams.Add(request.NewErrParamRequired("CurrentVersion"))
5015	}
5016	if s.CurrentVersion != nil && len(*s.CurrentVersion) < 1 {
5017		invalidParams.Add(request.NewErrParamMinLen("CurrentVersion", 1))
5018	}
5019	if s.DataRetentionChangeInHours == nil {
5020		invalidParams.Add(request.NewErrParamRequired("DataRetentionChangeInHours"))
5021	}
5022	if s.DataRetentionChangeInHours != nil && *s.DataRetentionChangeInHours < 1 {
5023		invalidParams.Add(request.NewErrParamMinValue("DataRetentionChangeInHours", 1))
5024	}
5025	if s.Operation == nil {
5026		invalidParams.Add(request.NewErrParamRequired("Operation"))
5027	}
5028	if s.StreamARN != nil && len(*s.StreamARN) < 1 {
5029		invalidParams.Add(request.NewErrParamMinLen("StreamARN", 1))
5030	}
5031	if s.StreamName != nil && len(*s.StreamName) < 1 {
5032		invalidParams.Add(request.NewErrParamMinLen("StreamName", 1))
5033	}
5034
5035	if invalidParams.Len() > 0 {
5036		return invalidParams
5037	}
5038	return nil
5039}
5040
5041// SetCurrentVersion sets the CurrentVersion field's value.
5042func (s *UpdateDataRetentionInput) SetCurrentVersion(v string) *UpdateDataRetentionInput {
5043	s.CurrentVersion = &v
5044	return s
5045}
5046
5047// SetDataRetentionChangeInHours sets the DataRetentionChangeInHours field's value.
5048func (s *UpdateDataRetentionInput) SetDataRetentionChangeInHours(v int64) *UpdateDataRetentionInput {
5049	s.DataRetentionChangeInHours = &v
5050	return s
5051}
5052
5053// SetOperation sets the Operation field's value.
5054func (s *UpdateDataRetentionInput) SetOperation(v string) *UpdateDataRetentionInput {
5055	s.Operation = &v
5056	return s
5057}
5058
5059// SetStreamARN sets the StreamARN field's value.
5060func (s *UpdateDataRetentionInput) SetStreamARN(v string) *UpdateDataRetentionInput {
5061	s.StreamARN = &v
5062	return s
5063}
5064
5065// SetStreamName sets the StreamName field's value.
5066func (s *UpdateDataRetentionInput) SetStreamName(v string) *UpdateDataRetentionInput {
5067	s.StreamName = &v
5068	return s
5069}
5070
5071type UpdateDataRetentionOutput struct {
5072	_ struct{} `type:"structure"`
5073}
5074
5075// String returns the string representation.
5076//
5077// API parameter values that are decorated as "sensitive" in the API will not
5078// be included in the string output. The member name will be present, but the
5079// value will be replaced with "sensitive".
5080func (s UpdateDataRetentionOutput) String() string {
5081	return awsutil.Prettify(s)
5082}
5083
5084// GoString returns the string representation.
5085//
5086// API parameter values that are decorated as "sensitive" in the API will not
5087// be included in the string output. The member name will be present, but the
5088// value will be replaced with "sensitive".
5089func (s UpdateDataRetentionOutput) GoString() string {
5090	return s.String()
5091}
5092
5093type UpdateSignalingChannelInput struct {
5094	_ struct{} `type:"structure"`
5095
5096	// The Amazon Resource Name (ARN) of the signaling channel that you want to
5097	// update.
5098	//
5099	// ChannelARN is a required field
5100	ChannelARN *string `min:"1" type:"string" required:"true"`
5101
5102	// The current version of the signaling channel that you want to update.
5103	//
5104	// CurrentVersion is a required field
5105	CurrentVersion *string `min:"1" type:"string" required:"true"`
5106
5107	// The structure containing the configuration for the SINGLE_MASTER type of
5108	// the signaling channel that you want to update.
5109	SingleMasterConfiguration *SingleMasterConfiguration `type:"structure"`
5110}
5111
5112// String returns the string representation.
5113//
5114// API parameter values that are decorated as "sensitive" in the API will not
5115// be included in the string output. The member name will be present, but the
5116// value will be replaced with "sensitive".
5117func (s UpdateSignalingChannelInput) String() string {
5118	return awsutil.Prettify(s)
5119}
5120
5121// GoString returns the string representation.
5122//
5123// API parameter values that are decorated as "sensitive" in the API will not
5124// be included in the string output. The member name will be present, but the
5125// value will be replaced with "sensitive".
5126func (s UpdateSignalingChannelInput) GoString() string {
5127	return s.String()
5128}
5129
5130// Validate inspects the fields of the type to determine if they are valid.
5131func (s *UpdateSignalingChannelInput) Validate() error {
5132	invalidParams := request.ErrInvalidParams{Context: "UpdateSignalingChannelInput"}
5133	if s.ChannelARN == nil {
5134		invalidParams.Add(request.NewErrParamRequired("ChannelARN"))
5135	}
5136	if s.ChannelARN != nil && len(*s.ChannelARN) < 1 {
5137		invalidParams.Add(request.NewErrParamMinLen("ChannelARN", 1))
5138	}
5139	if s.CurrentVersion == nil {
5140		invalidParams.Add(request.NewErrParamRequired("CurrentVersion"))
5141	}
5142	if s.CurrentVersion != nil && len(*s.CurrentVersion) < 1 {
5143		invalidParams.Add(request.NewErrParamMinLen("CurrentVersion", 1))
5144	}
5145	if s.SingleMasterConfiguration != nil {
5146		if err := s.SingleMasterConfiguration.Validate(); err != nil {
5147			invalidParams.AddNested("SingleMasterConfiguration", err.(request.ErrInvalidParams))
5148		}
5149	}
5150
5151	if invalidParams.Len() > 0 {
5152		return invalidParams
5153	}
5154	return nil
5155}
5156
5157// SetChannelARN sets the ChannelARN field's value.
5158func (s *UpdateSignalingChannelInput) SetChannelARN(v string) *UpdateSignalingChannelInput {
5159	s.ChannelARN = &v
5160	return s
5161}
5162
5163// SetCurrentVersion sets the CurrentVersion field's value.
5164func (s *UpdateSignalingChannelInput) SetCurrentVersion(v string) *UpdateSignalingChannelInput {
5165	s.CurrentVersion = &v
5166	return s
5167}
5168
5169// SetSingleMasterConfiguration sets the SingleMasterConfiguration field's value.
5170func (s *UpdateSignalingChannelInput) SetSingleMasterConfiguration(v *SingleMasterConfiguration) *UpdateSignalingChannelInput {
5171	s.SingleMasterConfiguration = v
5172	return s
5173}
5174
5175type UpdateSignalingChannelOutput struct {
5176	_ struct{} `type:"structure"`
5177}
5178
5179// String returns the string representation.
5180//
5181// API parameter values that are decorated as "sensitive" in the API will not
5182// be included in the string output. The member name will be present, but the
5183// value will be replaced with "sensitive".
5184func (s UpdateSignalingChannelOutput) String() string {
5185	return awsutil.Prettify(s)
5186}
5187
5188// GoString returns the string representation.
5189//
5190// API parameter values that are decorated as "sensitive" in the API will not
5191// be included in the string output. The member name will be present, but the
5192// value will be replaced with "sensitive".
5193func (s UpdateSignalingChannelOutput) GoString() string {
5194	return s.String()
5195}
5196
5197type UpdateStreamInput struct {
5198	_ struct{} `type:"structure"`
5199
5200	// The version of the stream whose metadata you want to update.
5201	//
5202	// CurrentVersion is a required field
5203	CurrentVersion *string `min:"1" type:"string" required:"true"`
5204
5205	// The name of the device that is writing to the stream.
5206	//
5207	// In the current implementation, Kinesis Video Streams does not use this name.
5208	DeviceName *string `min:"1" type:"string"`
5209
5210	// The stream's media type. Use MediaType to specify the type of content that
5211	// the stream contains to the consumers of the stream. For more information
5212	// about media types, see Media Types (http://www.iana.org/assignments/media-types/media-types.xhtml).
5213	// If you choose to specify the MediaType, see Naming Requirements (https://tools.ietf.org/html/rfc6838#section-4.2).
5214	//
5215	// To play video on the console, you must specify the correct video type. For
5216	// example, if the video in the stream is H.264, specify video/h264 as the MediaType.
5217	MediaType *string `min:"1" type:"string"`
5218
5219	// The ARN of the stream whose metadata you want to update.
5220	StreamARN *string `min:"1" type:"string"`
5221
5222	// The name of the stream whose metadata you want to update.
5223	//
5224	// The stream name is an identifier for the stream, and must be unique for each
5225	// account and region.
5226	StreamName *string `min:"1" type:"string"`
5227}
5228
5229// String returns the string representation.
5230//
5231// API parameter values that are decorated as "sensitive" in the API will not
5232// be included in the string output. The member name will be present, but the
5233// value will be replaced with "sensitive".
5234func (s UpdateStreamInput) String() string {
5235	return awsutil.Prettify(s)
5236}
5237
5238// GoString returns the string representation.
5239//
5240// API parameter values that are decorated as "sensitive" in the API will not
5241// be included in the string output. The member name will be present, but the
5242// value will be replaced with "sensitive".
5243func (s UpdateStreamInput) GoString() string {
5244	return s.String()
5245}
5246
5247// Validate inspects the fields of the type to determine if they are valid.
5248func (s *UpdateStreamInput) Validate() error {
5249	invalidParams := request.ErrInvalidParams{Context: "UpdateStreamInput"}
5250	if s.CurrentVersion == nil {
5251		invalidParams.Add(request.NewErrParamRequired("CurrentVersion"))
5252	}
5253	if s.CurrentVersion != nil && len(*s.CurrentVersion) < 1 {
5254		invalidParams.Add(request.NewErrParamMinLen("CurrentVersion", 1))
5255	}
5256	if s.DeviceName != nil && len(*s.DeviceName) < 1 {
5257		invalidParams.Add(request.NewErrParamMinLen("DeviceName", 1))
5258	}
5259	if s.MediaType != nil && len(*s.MediaType) < 1 {
5260		invalidParams.Add(request.NewErrParamMinLen("MediaType", 1))
5261	}
5262	if s.StreamARN != nil && len(*s.StreamARN) < 1 {
5263		invalidParams.Add(request.NewErrParamMinLen("StreamARN", 1))
5264	}
5265	if s.StreamName != nil && len(*s.StreamName) < 1 {
5266		invalidParams.Add(request.NewErrParamMinLen("StreamName", 1))
5267	}
5268
5269	if invalidParams.Len() > 0 {
5270		return invalidParams
5271	}
5272	return nil
5273}
5274
5275// SetCurrentVersion sets the CurrentVersion field's value.
5276func (s *UpdateStreamInput) SetCurrentVersion(v string) *UpdateStreamInput {
5277	s.CurrentVersion = &v
5278	return s
5279}
5280
5281// SetDeviceName sets the DeviceName field's value.
5282func (s *UpdateStreamInput) SetDeviceName(v string) *UpdateStreamInput {
5283	s.DeviceName = &v
5284	return s
5285}
5286
5287// SetMediaType sets the MediaType field's value.
5288func (s *UpdateStreamInput) SetMediaType(v string) *UpdateStreamInput {
5289	s.MediaType = &v
5290	return s
5291}
5292
5293// SetStreamARN sets the StreamARN field's value.
5294func (s *UpdateStreamInput) SetStreamARN(v string) *UpdateStreamInput {
5295	s.StreamARN = &v
5296	return s
5297}
5298
5299// SetStreamName sets the StreamName field's value.
5300func (s *UpdateStreamInput) SetStreamName(v string) *UpdateStreamInput {
5301	s.StreamName = &v
5302	return s
5303}
5304
5305type UpdateStreamOutput struct {
5306	_ struct{} `type:"structure"`
5307}
5308
5309// String returns the string representation.
5310//
5311// API parameter values that are decorated as "sensitive" in the API will not
5312// be included in the string output. The member name will be present, but the
5313// value will be replaced with "sensitive".
5314func (s UpdateStreamOutput) String() string {
5315	return awsutil.Prettify(s)
5316}
5317
5318// GoString returns the string representation.
5319//
5320// API parameter values that are decorated as "sensitive" in the API will not
5321// be included in the string output. The member name will be present, but the
5322// value will be replaced with "sensitive".
5323func (s UpdateStreamOutput) GoString() string {
5324	return s.String()
5325}
5326
5327// The stream version that you specified is not the latest version. To get the
5328// latest version, use the DescribeStream (https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_DescribeStream.html)
5329// API.
5330type VersionMismatchException struct {
5331	_            struct{}                  `type:"structure"`
5332	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5333
5334	Message_ *string `locationName:"Message" type:"string"`
5335}
5336
5337// String returns the string representation.
5338//
5339// API parameter values that are decorated as "sensitive" in the API will not
5340// be included in the string output. The member name will be present, but the
5341// value will be replaced with "sensitive".
5342func (s VersionMismatchException) String() string {
5343	return awsutil.Prettify(s)
5344}
5345
5346// GoString returns the string representation.
5347//
5348// API parameter values that are decorated as "sensitive" in the API will not
5349// be included in the string output. The member name will be present, but the
5350// value will be replaced with "sensitive".
5351func (s VersionMismatchException) GoString() string {
5352	return s.String()
5353}
5354
5355func newErrorVersionMismatchException(v protocol.ResponseMetadata) error {
5356	return &VersionMismatchException{
5357		RespMetadata: v,
5358	}
5359}
5360
5361// Code returns the exception type name.
5362func (s *VersionMismatchException) Code() string {
5363	return "VersionMismatchException"
5364}
5365
5366// Message returns the exception's message.
5367func (s *VersionMismatchException) Message() string {
5368	if s.Message_ != nil {
5369		return *s.Message_
5370	}
5371	return ""
5372}
5373
5374// OrigErr always returns nil, satisfies awserr.Error interface.
5375func (s *VersionMismatchException) OrigErr() error {
5376	return nil
5377}
5378
5379func (s *VersionMismatchException) Error() string {
5380	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5381}
5382
5383// Status code returns the HTTP status code for the request's response error.
5384func (s *VersionMismatchException) StatusCode() int {
5385	return s.RespMetadata.StatusCode
5386}
5387
5388// RequestID returns the service's response RequestID for request.
5389func (s *VersionMismatchException) RequestID() string {
5390	return s.RespMetadata.RequestID
5391}
5392
5393const (
5394	// APINamePutMedia is a APIName enum value
5395	APINamePutMedia = "PUT_MEDIA"
5396
5397	// APINameGetMedia is a APIName enum value
5398	APINameGetMedia = "GET_MEDIA"
5399
5400	// APINameListFragments is a APIName enum value
5401	APINameListFragments = "LIST_FRAGMENTS"
5402
5403	// APINameGetMediaForFragmentList is a APIName enum value
5404	APINameGetMediaForFragmentList = "GET_MEDIA_FOR_FRAGMENT_LIST"
5405
5406	// APINameGetHlsStreamingSessionUrl is a APIName enum value
5407	APINameGetHlsStreamingSessionUrl = "GET_HLS_STREAMING_SESSION_URL"
5408
5409	// APINameGetDashStreamingSessionUrl is a APIName enum value
5410	APINameGetDashStreamingSessionUrl = "GET_DASH_STREAMING_SESSION_URL"
5411
5412	// APINameGetClip is a APIName enum value
5413	APINameGetClip = "GET_CLIP"
5414)
5415
5416// APIName_Values returns all elements of the APIName enum
5417func APIName_Values() []string {
5418	return []string{
5419		APINamePutMedia,
5420		APINameGetMedia,
5421		APINameListFragments,
5422		APINameGetMediaForFragmentList,
5423		APINameGetHlsStreamingSessionUrl,
5424		APINameGetDashStreamingSessionUrl,
5425		APINameGetClip,
5426	}
5427}
5428
5429const (
5430	// ChannelProtocolWss is a ChannelProtocol enum value
5431	ChannelProtocolWss = "WSS"
5432
5433	// ChannelProtocolHttps is a ChannelProtocol enum value
5434	ChannelProtocolHttps = "HTTPS"
5435)
5436
5437// ChannelProtocol_Values returns all elements of the ChannelProtocol enum
5438func ChannelProtocol_Values() []string {
5439	return []string{
5440		ChannelProtocolWss,
5441		ChannelProtocolHttps,
5442	}
5443}
5444
5445const (
5446	// ChannelRoleMaster is a ChannelRole enum value
5447	ChannelRoleMaster = "MASTER"
5448
5449	// ChannelRoleViewer is a ChannelRole enum value
5450	ChannelRoleViewer = "VIEWER"
5451)
5452
5453// ChannelRole_Values returns all elements of the ChannelRole enum
5454func ChannelRole_Values() []string {
5455	return []string{
5456		ChannelRoleMaster,
5457		ChannelRoleViewer,
5458	}
5459}
5460
5461const (
5462	// ChannelTypeSingleMaster is a ChannelType enum value
5463	ChannelTypeSingleMaster = "SINGLE_MASTER"
5464)
5465
5466// ChannelType_Values returns all elements of the ChannelType enum
5467func ChannelType_Values() []string {
5468	return []string{
5469		ChannelTypeSingleMaster,
5470	}
5471}
5472
5473const (
5474	// ComparisonOperatorBeginsWith is a ComparisonOperator enum value
5475	ComparisonOperatorBeginsWith = "BEGINS_WITH"
5476)
5477
5478// ComparisonOperator_Values returns all elements of the ComparisonOperator enum
5479func ComparisonOperator_Values() []string {
5480	return []string{
5481		ComparisonOperatorBeginsWith,
5482	}
5483}
5484
5485const (
5486	// StatusCreating is a Status enum value
5487	StatusCreating = "CREATING"
5488
5489	// StatusActive is a Status enum value
5490	StatusActive = "ACTIVE"
5491
5492	// StatusUpdating is a Status enum value
5493	StatusUpdating = "UPDATING"
5494
5495	// StatusDeleting is a Status enum value
5496	StatusDeleting = "DELETING"
5497)
5498
5499// Status_Values returns all elements of the Status enum
5500func Status_Values() []string {
5501	return []string{
5502		StatusCreating,
5503		StatusActive,
5504		StatusUpdating,
5505		StatusDeleting,
5506	}
5507}
5508
5509const (
5510	// UpdateDataRetentionOperationIncreaseDataRetention is a UpdateDataRetentionOperation enum value
5511	UpdateDataRetentionOperationIncreaseDataRetention = "INCREASE_DATA_RETENTION"
5512
5513	// UpdateDataRetentionOperationDecreaseDataRetention is a UpdateDataRetentionOperation enum value
5514	UpdateDataRetentionOperationDecreaseDataRetention = "DECREASE_DATA_RETENTION"
5515)
5516
5517// UpdateDataRetentionOperation_Values returns all elements of the UpdateDataRetentionOperation enum
5518func UpdateDataRetentionOperation_Values() []string {
5519	return []string{
5520		UpdateDataRetentionOperationIncreaseDataRetention,
5521		UpdateDataRetentionOperationDecreaseDataRetention,
5522	}
5523}
5524