1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package kinesisanalytics
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/jsonrpc"
14)
15
16const opAddApplicationCloudWatchLoggingOption = "AddApplicationCloudWatchLoggingOption"
17
18// AddApplicationCloudWatchLoggingOptionRequest generates a "aws/request.Request" representing the
19// client's request for the AddApplicationCloudWatchLoggingOption 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 AddApplicationCloudWatchLoggingOption for more information on using the AddApplicationCloudWatchLoggingOption
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 AddApplicationCloudWatchLoggingOptionRequest method.
34//    req, resp := client.AddApplicationCloudWatchLoggingOptionRequest(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/kinesisanalytics-2015-08-14/AddApplicationCloudWatchLoggingOption
42func (c *KinesisAnalytics) AddApplicationCloudWatchLoggingOptionRequest(input *AddApplicationCloudWatchLoggingOptionInput) (req *request.Request, output *AddApplicationCloudWatchLoggingOptionOutput) {
43	op := &request.Operation{
44		Name:       opAddApplicationCloudWatchLoggingOption,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &AddApplicationCloudWatchLoggingOptionInput{}
51	}
52
53	output = &AddApplicationCloudWatchLoggingOptionOutput{}
54	req = c.newRequest(op, input, output)
55	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
56	return
57}
58
59// AddApplicationCloudWatchLoggingOption API operation for Amazon Kinesis Analytics.
60//
61//
62// This documentation is for version 1 of the Amazon Kinesis Data Analytics
63// API, which only supports SQL applications. Version 2 of the API supports
64// SQL and Java applications. For more information about version 2, see Amazon
65// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
66//
67// Adds a CloudWatch log stream to monitor application configuration errors.
68// For more information about using CloudWatch log streams with Amazon Kinesis
69// Analytics applications, see Working with Amazon CloudWatch Logs (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/cloudwatch-logs.html).
70//
71// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
72// with awserr.Error's Code and Message methods to get detailed information about
73// the error.
74//
75// See the AWS API reference guide for Amazon Kinesis Analytics's
76// API operation AddApplicationCloudWatchLoggingOption for usage and error information.
77//
78// Returned Error Codes:
79//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
80//   Specified application can't be found.
81//
82//   * ErrCodeResourceInUseException "ResourceInUseException"
83//   Application is not available for this operation.
84//
85//   * ErrCodeInvalidArgumentException "InvalidArgumentException"
86//   Specified input parameter value is invalid.
87//
88//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
89//   Exception thrown as a result of concurrent modification to an application.
90//   For example, two individuals attempting to edit the same application at the
91//   same time.
92//
93//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
94//   The request was rejected because a specified parameter is not supported or
95//   a specified resource is not valid for this operation.
96//
97// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/AddApplicationCloudWatchLoggingOption
98func (c *KinesisAnalytics) AddApplicationCloudWatchLoggingOption(input *AddApplicationCloudWatchLoggingOptionInput) (*AddApplicationCloudWatchLoggingOptionOutput, error) {
99	req, out := c.AddApplicationCloudWatchLoggingOptionRequest(input)
100	return out, req.Send()
101}
102
103// AddApplicationCloudWatchLoggingOptionWithContext is the same as AddApplicationCloudWatchLoggingOption with the addition of
104// the ability to pass a context and additional request options.
105//
106// See AddApplicationCloudWatchLoggingOption for details on how to use this API operation.
107//
108// The context must be non-nil and will be used for request cancellation. If
109// the context is nil a panic will occur. In the future the SDK may create
110// sub-contexts for http.Requests. See https://golang.org/pkg/context/
111// for more information on using Contexts.
112func (c *KinesisAnalytics) AddApplicationCloudWatchLoggingOptionWithContext(ctx aws.Context, input *AddApplicationCloudWatchLoggingOptionInput, opts ...request.Option) (*AddApplicationCloudWatchLoggingOptionOutput, error) {
113	req, out := c.AddApplicationCloudWatchLoggingOptionRequest(input)
114	req.SetContext(ctx)
115	req.ApplyOptions(opts...)
116	return out, req.Send()
117}
118
119const opAddApplicationInput = "AddApplicationInput"
120
121// AddApplicationInputRequest generates a "aws/request.Request" representing the
122// client's request for the AddApplicationInput operation. The "output" return
123// value will be populated with the request's response once the request completes
124// successfully.
125//
126// Use "Send" method on the returned Request to send the API call to the service.
127// the "output" return value is not valid until after Send returns without error.
128//
129// See AddApplicationInput for more information on using the AddApplicationInput
130// API call, and error handling.
131//
132// This method is useful when you want to inject custom logic or configuration
133// into the SDK's request lifecycle. Such as custom headers, or retry logic.
134//
135//
136//    // Example sending a request using the AddApplicationInputRequest method.
137//    req, resp := client.AddApplicationInputRequest(params)
138//
139//    err := req.Send()
140//    if err == nil { // resp is now filled
141//        fmt.Println(resp)
142//    }
143//
144// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/AddApplicationInput
145func (c *KinesisAnalytics) AddApplicationInputRequest(input *AddApplicationInputInput) (req *request.Request, output *AddApplicationInputOutput) {
146	op := &request.Operation{
147		Name:       opAddApplicationInput,
148		HTTPMethod: "POST",
149		HTTPPath:   "/",
150	}
151
152	if input == nil {
153		input = &AddApplicationInputInput{}
154	}
155
156	output = &AddApplicationInputOutput{}
157	req = c.newRequest(op, input, output)
158	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
159	return
160}
161
162// AddApplicationInput API operation for Amazon Kinesis Analytics.
163//
164//
165// This documentation is for version 1 of the Amazon Kinesis Data Analytics
166// API, which only supports SQL applications. Version 2 of the API supports
167// SQL and Java applications. For more information about version 2, see Amazon
168// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
169//
170// Adds a streaming source to your Amazon Kinesis application. For conceptual
171// information, see Configuring Application Input (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html).
172//
173// You can add a streaming source either when you create an application or you
174// can use this operation to add a streaming source after you create an application.
175// For more information, see CreateApplication (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_CreateApplication.html).
176//
177// Any configuration update, including adding a streaming source using this
178// operation, results in a new version of the application. You can use the DescribeApplication
179// (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html)
180// operation to find the current application version.
181//
182// This operation requires permissions to perform the kinesisanalytics:AddApplicationInput
183// action.
184//
185// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
186// with awserr.Error's Code and Message methods to get detailed information about
187// the error.
188//
189// See the AWS API reference guide for Amazon Kinesis Analytics's
190// API operation AddApplicationInput for usage and error information.
191//
192// Returned Error Codes:
193//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
194//   Specified application can't be found.
195//
196//   * ErrCodeResourceInUseException "ResourceInUseException"
197//   Application is not available for this operation.
198//
199//   * ErrCodeInvalidArgumentException "InvalidArgumentException"
200//   Specified input parameter value is invalid.
201//
202//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
203//   Exception thrown as a result of concurrent modification to an application.
204//   For example, two individuals attempting to edit the same application at the
205//   same time.
206//
207//   * ErrCodeCodeValidationException "CodeValidationException"
208//   User-provided application code (query) is invalid. This can be a simple syntax
209//   error.
210//
211//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
212//   The request was rejected because a specified parameter is not supported or
213//   a specified resource is not valid for this operation.
214//
215// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/AddApplicationInput
216func (c *KinesisAnalytics) AddApplicationInput(input *AddApplicationInputInput) (*AddApplicationInputOutput, error) {
217	req, out := c.AddApplicationInputRequest(input)
218	return out, req.Send()
219}
220
221// AddApplicationInputWithContext is the same as AddApplicationInput with the addition of
222// the ability to pass a context and additional request options.
223//
224// See AddApplicationInput for details on how to use this API operation.
225//
226// The context must be non-nil and will be used for request cancellation. If
227// the context is nil a panic will occur. In the future the SDK may create
228// sub-contexts for http.Requests. See https://golang.org/pkg/context/
229// for more information on using Contexts.
230func (c *KinesisAnalytics) AddApplicationInputWithContext(ctx aws.Context, input *AddApplicationInputInput, opts ...request.Option) (*AddApplicationInputOutput, error) {
231	req, out := c.AddApplicationInputRequest(input)
232	req.SetContext(ctx)
233	req.ApplyOptions(opts...)
234	return out, req.Send()
235}
236
237const opAddApplicationInputProcessingConfiguration = "AddApplicationInputProcessingConfiguration"
238
239// AddApplicationInputProcessingConfigurationRequest generates a "aws/request.Request" representing the
240// client's request for the AddApplicationInputProcessingConfiguration operation. The "output" return
241// value will be populated with the request's response once the request completes
242// successfully.
243//
244// Use "Send" method on the returned Request to send the API call to the service.
245// the "output" return value is not valid until after Send returns without error.
246//
247// See AddApplicationInputProcessingConfiguration for more information on using the AddApplicationInputProcessingConfiguration
248// API call, and error handling.
249//
250// This method is useful when you want to inject custom logic or configuration
251// into the SDK's request lifecycle. Such as custom headers, or retry logic.
252//
253//
254//    // Example sending a request using the AddApplicationInputProcessingConfigurationRequest method.
255//    req, resp := client.AddApplicationInputProcessingConfigurationRequest(params)
256//
257//    err := req.Send()
258//    if err == nil { // resp is now filled
259//        fmt.Println(resp)
260//    }
261//
262// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/AddApplicationInputProcessingConfiguration
263func (c *KinesisAnalytics) AddApplicationInputProcessingConfigurationRequest(input *AddApplicationInputProcessingConfigurationInput) (req *request.Request, output *AddApplicationInputProcessingConfigurationOutput) {
264	op := &request.Operation{
265		Name:       opAddApplicationInputProcessingConfiguration,
266		HTTPMethod: "POST",
267		HTTPPath:   "/",
268	}
269
270	if input == nil {
271		input = &AddApplicationInputProcessingConfigurationInput{}
272	}
273
274	output = &AddApplicationInputProcessingConfigurationOutput{}
275	req = c.newRequest(op, input, output)
276	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
277	return
278}
279
280// AddApplicationInputProcessingConfiguration API operation for Amazon Kinesis Analytics.
281//
282//
283// This documentation is for version 1 of the Amazon Kinesis Data Analytics
284// API, which only supports SQL applications. Version 2 of the API supports
285// SQL and Java applications. For more information about version 2, see Amazon
286// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
287//
288// Adds an InputProcessingConfiguration (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputProcessingConfiguration.html)
289// to an application. An input processor preprocesses records on the input stream
290// before the application's SQL code executes. Currently, the only input processor
291// available is AWS Lambda (https://docs.aws.amazon.com/lambda/).
292//
293// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
294// with awserr.Error's Code and Message methods to get detailed information about
295// the error.
296//
297// See the AWS API reference guide for Amazon Kinesis Analytics's
298// API operation AddApplicationInputProcessingConfiguration for usage and error information.
299//
300// Returned Error Codes:
301//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
302//   Specified application can't be found.
303//
304//   * ErrCodeResourceInUseException "ResourceInUseException"
305//   Application is not available for this operation.
306//
307//   * ErrCodeInvalidArgumentException "InvalidArgumentException"
308//   Specified input parameter value is invalid.
309//
310//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
311//   Exception thrown as a result of concurrent modification to an application.
312//   For example, two individuals attempting to edit the same application at the
313//   same time.
314//
315//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
316//   The request was rejected because a specified parameter is not supported or
317//   a specified resource is not valid for this operation.
318//
319// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/AddApplicationInputProcessingConfiguration
320func (c *KinesisAnalytics) AddApplicationInputProcessingConfiguration(input *AddApplicationInputProcessingConfigurationInput) (*AddApplicationInputProcessingConfigurationOutput, error) {
321	req, out := c.AddApplicationInputProcessingConfigurationRequest(input)
322	return out, req.Send()
323}
324
325// AddApplicationInputProcessingConfigurationWithContext is the same as AddApplicationInputProcessingConfiguration with the addition of
326// the ability to pass a context and additional request options.
327//
328// See AddApplicationInputProcessingConfiguration for details on how to use this API operation.
329//
330// The context must be non-nil and will be used for request cancellation. If
331// the context is nil a panic will occur. In the future the SDK may create
332// sub-contexts for http.Requests. See https://golang.org/pkg/context/
333// for more information on using Contexts.
334func (c *KinesisAnalytics) AddApplicationInputProcessingConfigurationWithContext(ctx aws.Context, input *AddApplicationInputProcessingConfigurationInput, opts ...request.Option) (*AddApplicationInputProcessingConfigurationOutput, error) {
335	req, out := c.AddApplicationInputProcessingConfigurationRequest(input)
336	req.SetContext(ctx)
337	req.ApplyOptions(opts...)
338	return out, req.Send()
339}
340
341const opAddApplicationOutput = "AddApplicationOutput"
342
343// AddApplicationOutputRequest generates a "aws/request.Request" representing the
344// client's request for the AddApplicationOutput operation. The "output" return
345// value will be populated with the request's response once the request completes
346// successfully.
347//
348// Use "Send" method on the returned Request to send the API call to the service.
349// the "output" return value is not valid until after Send returns without error.
350//
351// See AddApplicationOutput for more information on using the AddApplicationOutput
352// API call, and error handling.
353//
354// This method is useful when you want to inject custom logic or configuration
355// into the SDK's request lifecycle. Such as custom headers, or retry logic.
356//
357//
358//    // Example sending a request using the AddApplicationOutputRequest method.
359//    req, resp := client.AddApplicationOutputRequest(params)
360//
361//    err := req.Send()
362//    if err == nil { // resp is now filled
363//        fmt.Println(resp)
364//    }
365//
366// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/AddApplicationOutput
367func (c *KinesisAnalytics) AddApplicationOutputRequest(input *AddApplicationOutputInput) (req *request.Request, output *AddApplicationOutputOutput) {
368	op := &request.Operation{
369		Name:       opAddApplicationOutput,
370		HTTPMethod: "POST",
371		HTTPPath:   "/",
372	}
373
374	if input == nil {
375		input = &AddApplicationOutputInput{}
376	}
377
378	output = &AddApplicationOutputOutput{}
379	req = c.newRequest(op, input, output)
380	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
381	return
382}
383
384// AddApplicationOutput API operation for Amazon Kinesis Analytics.
385//
386//
387// This documentation is for version 1 of the Amazon Kinesis Data Analytics
388// API, which only supports SQL applications. Version 2 of the API supports
389// SQL and Java applications. For more information about version 2, see Amazon
390// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
391//
392// Adds an external destination to your Amazon Kinesis Analytics application.
393//
394// If you want Amazon Kinesis Analytics to deliver data from an in-application
395// stream within your application to an external destination (such as an Amazon
396// Kinesis stream, an Amazon Kinesis Firehose delivery stream, or an AWS Lambda
397// function), you add the relevant configuration to your application using this
398// operation. You can configure one or more outputs for your application. Each
399// output configuration maps an in-application stream and an external destination.
400//
401// You can use one of the output configurations to deliver data from your in-application
402// error stream to an external destination so that you can analyze the errors.
403// For more information, see Understanding Application Output (Destination)
404// (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html).
405//
406// Any configuration update, including adding a streaming source using this
407// operation, results in a new version of the application. You can use the DescribeApplication
408// (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html)
409// operation to find the current application version.
410//
411// For the limits on the number of application inputs and outputs you can configure,
412// see Limits (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/limits.html).
413//
414// This operation requires permissions to perform the kinesisanalytics:AddApplicationOutput
415// action.
416//
417// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
418// with awserr.Error's Code and Message methods to get detailed information about
419// the error.
420//
421// See the AWS API reference guide for Amazon Kinesis Analytics's
422// API operation AddApplicationOutput for usage and error information.
423//
424// Returned Error Codes:
425//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
426//   Specified application can't be found.
427//
428//   * ErrCodeResourceInUseException "ResourceInUseException"
429//   Application is not available for this operation.
430//
431//   * ErrCodeInvalidArgumentException "InvalidArgumentException"
432//   Specified input parameter value is invalid.
433//
434//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
435//   Exception thrown as a result of concurrent modification to an application.
436//   For example, two individuals attempting to edit the same application at the
437//   same time.
438//
439//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
440//   The request was rejected because a specified parameter is not supported or
441//   a specified resource is not valid for this operation.
442//
443// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/AddApplicationOutput
444func (c *KinesisAnalytics) AddApplicationOutput(input *AddApplicationOutputInput) (*AddApplicationOutputOutput, error) {
445	req, out := c.AddApplicationOutputRequest(input)
446	return out, req.Send()
447}
448
449// AddApplicationOutputWithContext is the same as AddApplicationOutput with the addition of
450// the ability to pass a context and additional request options.
451//
452// See AddApplicationOutput for details on how to use this API operation.
453//
454// The context must be non-nil and will be used for request cancellation. If
455// the context is nil a panic will occur. In the future the SDK may create
456// sub-contexts for http.Requests. See https://golang.org/pkg/context/
457// for more information on using Contexts.
458func (c *KinesisAnalytics) AddApplicationOutputWithContext(ctx aws.Context, input *AddApplicationOutputInput, opts ...request.Option) (*AddApplicationOutputOutput, error) {
459	req, out := c.AddApplicationOutputRequest(input)
460	req.SetContext(ctx)
461	req.ApplyOptions(opts...)
462	return out, req.Send()
463}
464
465const opAddApplicationReferenceDataSource = "AddApplicationReferenceDataSource"
466
467// AddApplicationReferenceDataSourceRequest generates a "aws/request.Request" representing the
468// client's request for the AddApplicationReferenceDataSource operation. The "output" return
469// value will be populated with the request's response once the request completes
470// successfully.
471//
472// Use "Send" method on the returned Request to send the API call to the service.
473// the "output" return value is not valid until after Send returns without error.
474//
475// See AddApplicationReferenceDataSource for more information on using the AddApplicationReferenceDataSource
476// API call, and error handling.
477//
478// This method is useful when you want to inject custom logic or configuration
479// into the SDK's request lifecycle. Such as custom headers, or retry logic.
480//
481//
482//    // Example sending a request using the AddApplicationReferenceDataSourceRequest method.
483//    req, resp := client.AddApplicationReferenceDataSourceRequest(params)
484//
485//    err := req.Send()
486//    if err == nil { // resp is now filled
487//        fmt.Println(resp)
488//    }
489//
490// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/AddApplicationReferenceDataSource
491func (c *KinesisAnalytics) AddApplicationReferenceDataSourceRequest(input *AddApplicationReferenceDataSourceInput) (req *request.Request, output *AddApplicationReferenceDataSourceOutput) {
492	op := &request.Operation{
493		Name:       opAddApplicationReferenceDataSource,
494		HTTPMethod: "POST",
495		HTTPPath:   "/",
496	}
497
498	if input == nil {
499		input = &AddApplicationReferenceDataSourceInput{}
500	}
501
502	output = &AddApplicationReferenceDataSourceOutput{}
503	req = c.newRequest(op, input, output)
504	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
505	return
506}
507
508// AddApplicationReferenceDataSource API operation for Amazon Kinesis Analytics.
509//
510//
511// This documentation is for version 1 of the Amazon Kinesis Data Analytics
512// API, which only supports SQL applications. Version 2 of the API supports
513// SQL and Java applications. For more information about version 2, see Amazon
514// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
515//
516// Adds a reference data source to an existing application.
517//
518// Amazon Kinesis Analytics reads reference data (that is, an Amazon S3 object)
519// and creates an in-application table within your application. In the request,
520// you provide the source (S3 bucket name and object key name), name of the
521// in-application table to create, and the necessary mapping information that
522// describes how data in Amazon S3 object maps to columns in the resulting in-application
523// table.
524//
525// For conceptual information, see Configuring Application Input (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html).
526// For the limits on data sources you can add to your application, see Limits
527// (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/limits.html).
528//
529// This operation requires permissions to perform the kinesisanalytics:AddApplicationOutput
530// action.
531//
532// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
533// with awserr.Error's Code and Message methods to get detailed information about
534// the error.
535//
536// See the AWS API reference guide for Amazon Kinesis Analytics's
537// API operation AddApplicationReferenceDataSource for usage and error information.
538//
539// Returned Error Codes:
540//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
541//   Specified application can't be found.
542//
543//   * ErrCodeResourceInUseException "ResourceInUseException"
544//   Application is not available for this operation.
545//
546//   * ErrCodeInvalidArgumentException "InvalidArgumentException"
547//   Specified input parameter value is invalid.
548//
549//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
550//   Exception thrown as a result of concurrent modification to an application.
551//   For example, two individuals attempting to edit the same application at the
552//   same time.
553//
554//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
555//   The request was rejected because a specified parameter is not supported or
556//   a specified resource is not valid for this operation.
557//
558// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/AddApplicationReferenceDataSource
559func (c *KinesisAnalytics) AddApplicationReferenceDataSource(input *AddApplicationReferenceDataSourceInput) (*AddApplicationReferenceDataSourceOutput, error) {
560	req, out := c.AddApplicationReferenceDataSourceRequest(input)
561	return out, req.Send()
562}
563
564// AddApplicationReferenceDataSourceWithContext is the same as AddApplicationReferenceDataSource with the addition of
565// the ability to pass a context and additional request options.
566//
567// See AddApplicationReferenceDataSource for details on how to use this API operation.
568//
569// The context must be non-nil and will be used for request cancellation. If
570// the context is nil a panic will occur. In the future the SDK may create
571// sub-contexts for http.Requests. See https://golang.org/pkg/context/
572// for more information on using Contexts.
573func (c *KinesisAnalytics) AddApplicationReferenceDataSourceWithContext(ctx aws.Context, input *AddApplicationReferenceDataSourceInput, opts ...request.Option) (*AddApplicationReferenceDataSourceOutput, error) {
574	req, out := c.AddApplicationReferenceDataSourceRequest(input)
575	req.SetContext(ctx)
576	req.ApplyOptions(opts...)
577	return out, req.Send()
578}
579
580const opCreateApplication = "CreateApplication"
581
582// CreateApplicationRequest generates a "aws/request.Request" representing the
583// client's request for the CreateApplication operation. The "output" return
584// value will be populated with the request's response once the request completes
585// successfully.
586//
587// Use "Send" method on the returned Request to send the API call to the service.
588// the "output" return value is not valid until after Send returns without error.
589//
590// See CreateApplication for more information on using the CreateApplication
591// API call, and error handling.
592//
593// This method is useful when you want to inject custom logic or configuration
594// into the SDK's request lifecycle. Such as custom headers, or retry logic.
595//
596//
597//    // Example sending a request using the CreateApplicationRequest method.
598//    req, resp := client.CreateApplicationRequest(params)
599//
600//    err := req.Send()
601//    if err == nil { // resp is now filled
602//        fmt.Println(resp)
603//    }
604//
605// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/CreateApplication
606func (c *KinesisAnalytics) CreateApplicationRequest(input *CreateApplicationInput) (req *request.Request, output *CreateApplicationOutput) {
607	op := &request.Operation{
608		Name:       opCreateApplication,
609		HTTPMethod: "POST",
610		HTTPPath:   "/",
611	}
612
613	if input == nil {
614		input = &CreateApplicationInput{}
615	}
616
617	output = &CreateApplicationOutput{}
618	req = c.newRequest(op, input, output)
619	return
620}
621
622// CreateApplication API operation for Amazon Kinesis Analytics.
623//
624//
625// This documentation is for version 1 of the Amazon Kinesis Data Analytics
626// API, which only supports SQL applications. Version 2 of the API supports
627// SQL and Java applications. For more information about version 2, see Amazon
628// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
629//
630// Creates an Amazon Kinesis Analytics application. You can configure each application
631// with one streaming source as input, application code to process the input,
632// and up to three destinations where you want Amazon Kinesis Analytics to write
633// the output data from your application. For an overview, see How it Works
634// (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works.html).
635//
636// In the input configuration, you map the streaming source to an in-application
637// stream, which you can think of as a constantly updating table. In the mapping,
638// you must provide a schema for the in-application stream and map each data
639// column in the in-application stream to a data element in the streaming source.
640//
641// Your application code is one or more SQL statements that read input data,
642// transform it, and generate output. Your application code can create one or
643// more SQL artifacts like SQL streams or pumps.
644//
645// In the output configuration, you can configure the application to write data
646// from in-application streams created in your applications to up to three destinations.
647//
648// To read data from your source stream or write data to destination streams,
649// Amazon Kinesis Analytics needs your permissions. You grant these permissions
650// by creating IAM roles. This operation requires permissions to perform the
651// kinesisanalytics:CreateApplication action.
652//
653// For introductory exercises to create an Amazon Kinesis Analytics application,
654// see Getting Started (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/getting-started.html).
655//
656// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
657// with awserr.Error's Code and Message methods to get detailed information about
658// the error.
659//
660// See the AWS API reference guide for Amazon Kinesis Analytics's
661// API operation CreateApplication for usage and error information.
662//
663// Returned Error Codes:
664//   * ErrCodeCodeValidationException "CodeValidationException"
665//   User-provided application code (query) is invalid. This can be a simple syntax
666//   error.
667//
668//   * ErrCodeResourceInUseException "ResourceInUseException"
669//   Application is not available for this operation.
670//
671//   * ErrCodeLimitExceededException "LimitExceededException"
672//   Exceeded the number of applications allowed.
673//
674//   * ErrCodeInvalidArgumentException "InvalidArgumentException"
675//   Specified input parameter value is invalid.
676//
677//   * ErrCodeTooManyTagsException "TooManyTagsException"
678//   Application created with too many tags, or too many tags added to an application.
679//   Note that the maximum number of application tags includes system tags. The
680//   maximum number of user-defined application tags is 50.
681//
682//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
683//   Exception thrown as a result of concurrent modification to an application.
684//   For example, two individuals attempting to edit the same application at the
685//   same time.
686//
687// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/CreateApplication
688func (c *KinesisAnalytics) CreateApplication(input *CreateApplicationInput) (*CreateApplicationOutput, error) {
689	req, out := c.CreateApplicationRequest(input)
690	return out, req.Send()
691}
692
693// CreateApplicationWithContext is the same as CreateApplication with the addition of
694// the ability to pass a context and additional request options.
695//
696// See CreateApplication for details on how to use this API operation.
697//
698// The context must be non-nil and will be used for request cancellation. If
699// the context is nil a panic will occur. In the future the SDK may create
700// sub-contexts for http.Requests. See https://golang.org/pkg/context/
701// for more information on using Contexts.
702func (c *KinesisAnalytics) CreateApplicationWithContext(ctx aws.Context, input *CreateApplicationInput, opts ...request.Option) (*CreateApplicationOutput, error) {
703	req, out := c.CreateApplicationRequest(input)
704	req.SetContext(ctx)
705	req.ApplyOptions(opts...)
706	return out, req.Send()
707}
708
709const opDeleteApplication = "DeleteApplication"
710
711// DeleteApplicationRequest generates a "aws/request.Request" representing the
712// client's request for the DeleteApplication operation. The "output" return
713// value will be populated with the request's response once the request completes
714// successfully.
715//
716// Use "Send" method on the returned Request to send the API call to the service.
717// the "output" return value is not valid until after Send returns without error.
718//
719// See DeleteApplication for more information on using the DeleteApplication
720// API call, and error handling.
721//
722// This method is useful when you want to inject custom logic or configuration
723// into the SDK's request lifecycle. Such as custom headers, or retry logic.
724//
725//
726//    // Example sending a request using the DeleteApplicationRequest method.
727//    req, resp := client.DeleteApplicationRequest(params)
728//
729//    err := req.Send()
730//    if err == nil { // resp is now filled
731//        fmt.Println(resp)
732//    }
733//
734// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DeleteApplication
735func (c *KinesisAnalytics) DeleteApplicationRequest(input *DeleteApplicationInput) (req *request.Request, output *DeleteApplicationOutput) {
736	op := &request.Operation{
737		Name:       opDeleteApplication,
738		HTTPMethod: "POST",
739		HTTPPath:   "/",
740	}
741
742	if input == nil {
743		input = &DeleteApplicationInput{}
744	}
745
746	output = &DeleteApplicationOutput{}
747	req = c.newRequest(op, input, output)
748	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
749	return
750}
751
752// DeleteApplication API operation for Amazon Kinesis Analytics.
753//
754//
755// This documentation is for version 1 of the Amazon Kinesis Data Analytics
756// API, which only supports SQL applications. Version 2 of the API supports
757// SQL and Java applications. For more information about version 2, see Amazon
758// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
759//
760// Deletes the specified application. Amazon Kinesis Analytics halts application
761// execution and deletes the application, including any application artifacts
762// (such as in-application streams, reference table, and application code).
763//
764// This operation requires permissions to perform the kinesisanalytics:DeleteApplication
765// action.
766//
767// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
768// with awserr.Error's Code and Message methods to get detailed information about
769// the error.
770//
771// See the AWS API reference guide for Amazon Kinesis Analytics's
772// API operation DeleteApplication for usage and error information.
773//
774// Returned Error Codes:
775//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
776//   Exception thrown as a result of concurrent modification to an application.
777//   For example, two individuals attempting to edit the same application at the
778//   same time.
779//
780//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
781//   Specified application can't be found.
782//
783//   * ErrCodeResourceInUseException "ResourceInUseException"
784//   Application is not available for this operation.
785//
786//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
787//   The request was rejected because a specified parameter is not supported or
788//   a specified resource is not valid for this operation.
789//
790// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DeleteApplication
791func (c *KinesisAnalytics) DeleteApplication(input *DeleteApplicationInput) (*DeleteApplicationOutput, error) {
792	req, out := c.DeleteApplicationRequest(input)
793	return out, req.Send()
794}
795
796// DeleteApplicationWithContext is the same as DeleteApplication with the addition of
797// the ability to pass a context and additional request options.
798//
799// See DeleteApplication for details on how to use this API operation.
800//
801// The context must be non-nil and will be used for request cancellation. If
802// the context is nil a panic will occur. In the future the SDK may create
803// sub-contexts for http.Requests. See https://golang.org/pkg/context/
804// for more information on using Contexts.
805func (c *KinesisAnalytics) DeleteApplicationWithContext(ctx aws.Context, input *DeleteApplicationInput, opts ...request.Option) (*DeleteApplicationOutput, error) {
806	req, out := c.DeleteApplicationRequest(input)
807	req.SetContext(ctx)
808	req.ApplyOptions(opts...)
809	return out, req.Send()
810}
811
812const opDeleteApplicationCloudWatchLoggingOption = "DeleteApplicationCloudWatchLoggingOption"
813
814// DeleteApplicationCloudWatchLoggingOptionRequest generates a "aws/request.Request" representing the
815// client's request for the DeleteApplicationCloudWatchLoggingOption operation. The "output" return
816// value will be populated with the request's response once the request completes
817// successfully.
818//
819// Use "Send" method on the returned Request to send the API call to the service.
820// the "output" return value is not valid until after Send returns without error.
821//
822// See DeleteApplicationCloudWatchLoggingOption for more information on using the DeleteApplicationCloudWatchLoggingOption
823// API call, and error handling.
824//
825// This method is useful when you want to inject custom logic or configuration
826// into the SDK's request lifecycle. Such as custom headers, or retry logic.
827//
828//
829//    // Example sending a request using the DeleteApplicationCloudWatchLoggingOptionRequest method.
830//    req, resp := client.DeleteApplicationCloudWatchLoggingOptionRequest(params)
831//
832//    err := req.Send()
833//    if err == nil { // resp is now filled
834//        fmt.Println(resp)
835//    }
836//
837// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DeleteApplicationCloudWatchLoggingOption
838func (c *KinesisAnalytics) DeleteApplicationCloudWatchLoggingOptionRequest(input *DeleteApplicationCloudWatchLoggingOptionInput) (req *request.Request, output *DeleteApplicationCloudWatchLoggingOptionOutput) {
839	op := &request.Operation{
840		Name:       opDeleteApplicationCloudWatchLoggingOption,
841		HTTPMethod: "POST",
842		HTTPPath:   "/",
843	}
844
845	if input == nil {
846		input = &DeleteApplicationCloudWatchLoggingOptionInput{}
847	}
848
849	output = &DeleteApplicationCloudWatchLoggingOptionOutput{}
850	req = c.newRequest(op, input, output)
851	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
852	return
853}
854
855// DeleteApplicationCloudWatchLoggingOption API operation for Amazon Kinesis Analytics.
856//
857//
858// This documentation is for version 1 of the Amazon Kinesis Data Analytics
859// API, which only supports SQL applications. Version 2 of the API supports
860// SQL and Java applications. For more information about version 2, see Amazon
861// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
862//
863// Deletes a CloudWatch log stream from an application. For more information
864// about using CloudWatch log streams with Amazon Kinesis Analytics applications,
865// see Working with Amazon CloudWatch Logs (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/cloudwatch-logs.html).
866//
867// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
868// with awserr.Error's Code and Message methods to get detailed information about
869// the error.
870//
871// See the AWS API reference guide for Amazon Kinesis Analytics's
872// API operation DeleteApplicationCloudWatchLoggingOption for usage and error information.
873//
874// Returned Error Codes:
875//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
876//   Specified application can't be found.
877//
878//   * ErrCodeResourceInUseException "ResourceInUseException"
879//   Application is not available for this operation.
880//
881//   * ErrCodeInvalidArgumentException "InvalidArgumentException"
882//   Specified input parameter value is invalid.
883//
884//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
885//   Exception thrown as a result of concurrent modification to an application.
886//   For example, two individuals attempting to edit the same application at the
887//   same time.
888//
889//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
890//   The request was rejected because a specified parameter is not supported or
891//   a specified resource is not valid for this operation.
892//
893// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DeleteApplicationCloudWatchLoggingOption
894func (c *KinesisAnalytics) DeleteApplicationCloudWatchLoggingOption(input *DeleteApplicationCloudWatchLoggingOptionInput) (*DeleteApplicationCloudWatchLoggingOptionOutput, error) {
895	req, out := c.DeleteApplicationCloudWatchLoggingOptionRequest(input)
896	return out, req.Send()
897}
898
899// DeleteApplicationCloudWatchLoggingOptionWithContext is the same as DeleteApplicationCloudWatchLoggingOption with the addition of
900// the ability to pass a context and additional request options.
901//
902// See DeleteApplicationCloudWatchLoggingOption for details on how to use this API operation.
903//
904// The context must be non-nil and will be used for request cancellation. If
905// the context is nil a panic will occur. In the future the SDK may create
906// sub-contexts for http.Requests. See https://golang.org/pkg/context/
907// for more information on using Contexts.
908func (c *KinesisAnalytics) DeleteApplicationCloudWatchLoggingOptionWithContext(ctx aws.Context, input *DeleteApplicationCloudWatchLoggingOptionInput, opts ...request.Option) (*DeleteApplicationCloudWatchLoggingOptionOutput, error) {
909	req, out := c.DeleteApplicationCloudWatchLoggingOptionRequest(input)
910	req.SetContext(ctx)
911	req.ApplyOptions(opts...)
912	return out, req.Send()
913}
914
915const opDeleteApplicationInputProcessingConfiguration = "DeleteApplicationInputProcessingConfiguration"
916
917// DeleteApplicationInputProcessingConfigurationRequest generates a "aws/request.Request" representing the
918// client's request for the DeleteApplicationInputProcessingConfiguration operation. The "output" return
919// value will be populated with the request's response once the request completes
920// successfully.
921//
922// Use "Send" method on the returned Request to send the API call to the service.
923// the "output" return value is not valid until after Send returns without error.
924//
925// See DeleteApplicationInputProcessingConfiguration for more information on using the DeleteApplicationInputProcessingConfiguration
926// API call, and error handling.
927//
928// This method is useful when you want to inject custom logic or configuration
929// into the SDK's request lifecycle. Such as custom headers, or retry logic.
930//
931//
932//    // Example sending a request using the DeleteApplicationInputProcessingConfigurationRequest method.
933//    req, resp := client.DeleteApplicationInputProcessingConfigurationRequest(params)
934//
935//    err := req.Send()
936//    if err == nil { // resp is now filled
937//        fmt.Println(resp)
938//    }
939//
940// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DeleteApplicationInputProcessingConfiguration
941func (c *KinesisAnalytics) DeleteApplicationInputProcessingConfigurationRequest(input *DeleteApplicationInputProcessingConfigurationInput) (req *request.Request, output *DeleteApplicationInputProcessingConfigurationOutput) {
942	op := &request.Operation{
943		Name:       opDeleteApplicationInputProcessingConfiguration,
944		HTTPMethod: "POST",
945		HTTPPath:   "/",
946	}
947
948	if input == nil {
949		input = &DeleteApplicationInputProcessingConfigurationInput{}
950	}
951
952	output = &DeleteApplicationInputProcessingConfigurationOutput{}
953	req = c.newRequest(op, input, output)
954	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
955	return
956}
957
958// DeleteApplicationInputProcessingConfiguration API operation for Amazon Kinesis Analytics.
959//
960//
961// This documentation is for version 1 of the Amazon Kinesis Data Analytics
962// API, which only supports SQL applications. Version 2 of the API supports
963// SQL and Java applications. For more information about version 2, see Amazon
964// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
965//
966// Deletes an InputProcessingConfiguration (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputProcessingConfiguration.html)
967// from an input.
968//
969// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
970// with awserr.Error's Code and Message methods to get detailed information about
971// the error.
972//
973// See the AWS API reference guide for Amazon Kinesis Analytics's
974// API operation DeleteApplicationInputProcessingConfiguration for usage and error information.
975//
976// Returned Error Codes:
977//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
978//   Specified application can't be found.
979//
980//   * ErrCodeResourceInUseException "ResourceInUseException"
981//   Application is not available for this operation.
982//
983//   * ErrCodeInvalidArgumentException "InvalidArgumentException"
984//   Specified input parameter value is invalid.
985//
986//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
987//   Exception thrown as a result of concurrent modification to an application.
988//   For example, two individuals attempting to edit the same application at the
989//   same time.
990//
991//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
992//   The request was rejected because a specified parameter is not supported or
993//   a specified resource is not valid for this operation.
994//
995// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DeleteApplicationInputProcessingConfiguration
996func (c *KinesisAnalytics) DeleteApplicationInputProcessingConfiguration(input *DeleteApplicationInputProcessingConfigurationInput) (*DeleteApplicationInputProcessingConfigurationOutput, error) {
997	req, out := c.DeleteApplicationInputProcessingConfigurationRequest(input)
998	return out, req.Send()
999}
1000
1001// DeleteApplicationInputProcessingConfigurationWithContext is the same as DeleteApplicationInputProcessingConfiguration with the addition of
1002// the ability to pass a context and additional request options.
1003//
1004// See DeleteApplicationInputProcessingConfiguration for details on how to use this API operation.
1005//
1006// The context must be non-nil and will be used for request cancellation. If
1007// the context is nil a panic will occur. In the future the SDK may create
1008// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1009// for more information on using Contexts.
1010func (c *KinesisAnalytics) DeleteApplicationInputProcessingConfigurationWithContext(ctx aws.Context, input *DeleteApplicationInputProcessingConfigurationInput, opts ...request.Option) (*DeleteApplicationInputProcessingConfigurationOutput, error) {
1011	req, out := c.DeleteApplicationInputProcessingConfigurationRequest(input)
1012	req.SetContext(ctx)
1013	req.ApplyOptions(opts...)
1014	return out, req.Send()
1015}
1016
1017const opDeleteApplicationOutput = "DeleteApplicationOutput"
1018
1019// DeleteApplicationOutputRequest generates a "aws/request.Request" representing the
1020// client's request for the DeleteApplicationOutput operation. The "output" return
1021// value will be populated with the request's response once the request completes
1022// successfully.
1023//
1024// Use "Send" method on the returned Request to send the API call to the service.
1025// the "output" return value is not valid until after Send returns without error.
1026//
1027// See DeleteApplicationOutput for more information on using the DeleteApplicationOutput
1028// API call, and error handling.
1029//
1030// This method is useful when you want to inject custom logic or configuration
1031// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1032//
1033//
1034//    // Example sending a request using the DeleteApplicationOutputRequest method.
1035//    req, resp := client.DeleteApplicationOutputRequest(params)
1036//
1037//    err := req.Send()
1038//    if err == nil { // resp is now filled
1039//        fmt.Println(resp)
1040//    }
1041//
1042// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DeleteApplicationOutput
1043func (c *KinesisAnalytics) DeleteApplicationOutputRequest(input *DeleteApplicationOutputInput) (req *request.Request, output *DeleteApplicationOutputOutput) {
1044	op := &request.Operation{
1045		Name:       opDeleteApplicationOutput,
1046		HTTPMethod: "POST",
1047		HTTPPath:   "/",
1048	}
1049
1050	if input == nil {
1051		input = &DeleteApplicationOutputInput{}
1052	}
1053
1054	output = &DeleteApplicationOutputOutput{}
1055	req = c.newRequest(op, input, output)
1056	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1057	return
1058}
1059
1060// DeleteApplicationOutput API operation for Amazon Kinesis Analytics.
1061//
1062//
1063// This documentation is for version 1 of the Amazon Kinesis Data Analytics
1064// API, which only supports SQL applications. Version 2 of the API supports
1065// SQL and Java applications. For more information about version 2, see Amazon
1066// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
1067//
1068// Deletes output destination configuration from your application configuration.
1069// Amazon Kinesis Analytics will no longer write data from the corresponding
1070// in-application stream to the external output destination.
1071//
1072// This operation requires permissions to perform the kinesisanalytics:DeleteApplicationOutput
1073// action.
1074//
1075// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1076// with awserr.Error's Code and Message methods to get detailed information about
1077// the error.
1078//
1079// See the AWS API reference guide for Amazon Kinesis Analytics's
1080// API operation DeleteApplicationOutput for usage and error information.
1081//
1082// Returned Error Codes:
1083//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1084//   Specified application can't be found.
1085//
1086//   * ErrCodeResourceInUseException "ResourceInUseException"
1087//   Application is not available for this operation.
1088//
1089//   * ErrCodeInvalidArgumentException "InvalidArgumentException"
1090//   Specified input parameter value is invalid.
1091//
1092//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
1093//   Exception thrown as a result of concurrent modification to an application.
1094//   For example, two individuals attempting to edit the same application at the
1095//   same time.
1096//
1097//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1098//   The request was rejected because a specified parameter is not supported or
1099//   a specified resource is not valid for this operation.
1100//
1101// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DeleteApplicationOutput
1102func (c *KinesisAnalytics) DeleteApplicationOutput(input *DeleteApplicationOutputInput) (*DeleteApplicationOutputOutput, error) {
1103	req, out := c.DeleteApplicationOutputRequest(input)
1104	return out, req.Send()
1105}
1106
1107// DeleteApplicationOutputWithContext is the same as DeleteApplicationOutput with the addition of
1108// the ability to pass a context and additional request options.
1109//
1110// See DeleteApplicationOutput for details on how to use this API operation.
1111//
1112// The context must be non-nil and will be used for request cancellation. If
1113// the context is nil a panic will occur. In the future the SDK may create
1114// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1115// for more information on using Contexts.
1116func (c *KinesisAnalytics) DeleteApplicationOutputWithContext(ctx aws.Context, input *DeleteApplicationOutputInput, opts ...request.Option) (*DeleteApplicationOutputOutput, error) {
1117	req, out := c.DeleteApplicationOutputRequest(input)
1118	req.SetContext(ctx)
1119	req.ApplyOptions(opts...)
1120	return out, req.Send()
1121}
1122
1123const opDeleteApplicationReferenceDataSource = "DeleteApplicationReferenceDataSource"
1124
1125// DeleteApplicationReferenceDataSourceRequest generates a "aws/request.Request" representing the
1126// client's request for the DeleteApplicationReferenceDataSource operation. The "output" return
1127// value will be populated with the request's response once the request completes
1128// successfully.
1129//
1130// Use "Send" method on the returned Request to send the API call to the service.
1131// the "output" return value is not valid until after Send returns without error.
1132//
1133// See DeleteApplicationReferenceDataSource for more information on using the DeleteApplicationReferenceDataSource
1134// API call, and error handling.
1135//
1136// This method is useful when you want to inject custom logic or configuration
1137// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1138//
1139//
1140//    // Example sending a request using the DeleteApplicationReferenceDataSourceRequest method.
1141//    req, resp := client.DeleteApplicationReferenceDataSourceRequest(params)
1142//
1143//    err := req.Send()
1144//    if err == nil { // resp is now filled
1145//        fmt.Println(resp)
1146//    }
1147//
1148// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DeleteApplicationReferenceDataSource
1149func (c *KinesisAnalytics) DeleteApplicationReferenceDataSourceRequest(input *DeleteApplicationReferenceDataSourceInput) (req *request.Request, output *DeleteApplicationReferenceDataSourceOutput) {
1150	op := &request.Operation{
1151		Name:       opDeleteApplicationReferenceDataSource,
1152		HTTPMethod: "POST",
1153		HTTPPath:   "/",
1154	}
1155
1156	if input == nil {
1157		input = &DeleteApplicationReferenceDataSourceInput{}
1158	}
1159
1160	output = &DeleteApplicationReferenceDataSourceOutput{}
1161	req = c.newRequest(op, input, output)
1162	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1163	return
1164}
1165
1166// DeleteApplicationReferenceDataSource API operation for Amazon Kinesis Analytics.
1167//
1168//
1169// This documentation is for version 1 of the Amazon Kinesis Data Analytics
1170// API, which only supports SQL applications. Version 2 of the API supports
1171// SQL and Java applications. For more information about version 2, see Amazon
1172// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
1173//
1174// Deletes a reference data source configuration from the specified application
1175// configuration.
1176//
1177// If the application is running, Amazon Kinesis Analytics immediately removes
1178// the in-application table that you created using the AddApplicationReferenceDataSource
1179// (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_AddApplicationReferenceDataSource.html)
1180// operation.
1181//
1182// This operation requires permissions to perform the kinesisanalytics.DeleteApplicationReferenceDataSource
1183// action.
1184//
1185// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1186// with awserr.Error's Code and Message methods to get detailed information about
1187// the error.
1188//
1189// See the AWS API reference guide for Amazon Kinesis Analytics's
1190// API operation DeleteApplicationReferenceDataSource for usage and error information.
1191//
1192// Returned Error Codes:
1193//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1194//   Specified application can't be found.
1195//
1196//   * ErrCodeResourceInUseException "ResourceInUseException"
1197//   Application is not available for this operation.
1198//
1199//   * ErrCodeInvalidArgumentException "InvalidArgumentException"
1200//   Specified input parameter value is invalid.
1201//
1202//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
1203//   Exception thrown as a result of concurrent modification to an application.
1204//   For example, two individuals attempting to edit the same application at the
1205//   same time.
1206//
1207//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1208//   The request was rejected because a specified parameter is not supported or
1209//   a specified resource is not valid for this operation.
1210//
1211// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DeleteApplicationReferenceDataSource
1212func (c *KinesisAnalytics) DeleteApplicationReferenceDataSource(input *DeleteApplicationReferenceDataSourceInput) (*DeleteApplicationReferenceDataSourceOutput, error) {
1213	req, out := c.DeleteApplicationReferenceDataSourceRequest(input)
1214	return out, req.Send()
1215}
1216
1217// DeleteApplicationReferenceDataSourceWithContext is the same as DeleteApplicationReferenceDataSource with the addition of
1218// the ability to pass a context and additional request options.
1219//
1220// See DeleteApplicationReferenceDataSource for details on how to use this API operation.
1221//
1222// The context must be non-nil and will be used for request cancellation. If
1223// the context is nil a panic will occur. In the future the SDK may create
1224// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1225// for more information on using Contexts.
1226func (c *KinesisAnalytics) DeleteApplicationReferenceDataSourceWithContext(ctx aws.Context, input *DeleteApplicationReferenceDataSourceInput, opts ...request.Option) (*DeleteApplicationReferenceDataSourceOutput, error) {
1227	req, out := c.DeleteApplicationReferenceDataSourceRequest(input)
1228	req.SetContext(ctx)
1229	req.ApplyOptions(opts...)
1230	return out, req.Send()
1231}
1232
1233const opDescribeApplication = "DescribeApplication"
1234
1235// DescribeApplicationRequest generates a "aws/request.Request" representing the
1236// client's request for the DescribeApplication operation. The "output" return
1237// value will be populated with the request's response once the request completes
1238// successfully.
1239//
1240// Use "Send" method on the returned Request to send the API call to the service.
1241// the "output" return value is not valid until after Send returns without error.
1242//
1243// See DescribeApplication for more information on using the DescribeApplication
1244// API call, and error handling.
1245//
1246// This method is useful when you want to inject custom logic or configuration
1247// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1248//
1249//
1250//    // Example sending a request using the DescribeApplicationRequest method.
1251//    req, resp := client.DescribeApplicationRequest(params)
1252//
1253//    err := req.Send()
1254//    if err == nil { // resp is now filled
1255//        fmt.Println(resp)
1256//    }
1257//
1258// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DescribeApplication
1259func (c *KinesisAnalytics) DescribeApplicationRequest(input *DescribeApplicationInput) (req *request.Request, output *DescribeApplicationOutput) {
1260	op := &request.Operation{
1261		Name:       opDescribeApplication,
1262		HTTPMethod: "POST",
1263		HTTPPath:   "/",
1264	}
1265
1266	if input == nil {
1267		input = &DescribeApplicationInput{}
1268	}
1269
1270	output = &DescribeApplicationOutput{}
1271	req = c.newRequest(op, input, output)
1272	return
1273}
1274
1275// DescribeApplication API operation for Amazon Kinesis Analytics.
1276//
1277//
1278// This documentation is for version 1 of the Amazon Kinesis Data Analytics
1279// API, which only supports SQL applications. Version 2 of the API supports
1280// SQL and Java applications. For more information about version 2, see Amazon
1281// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
1282//
1283// Returns information about a specific Amazon Kinesis Analytics application.
1284//
1285// If you want to retrieve a list of all applications in your account, use the
1286// ListApplications (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_ListApplications.html)
1287// operation.
1288//
1289// This operation requires permissions to perform the kinesisanalytics:DescribeApplication
1290// action. You can use DescribeApplication to get the current application versionId,
1291// which you need to call other operations such as Update.
1292//
1293// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1294// with awserr.Error's Code and Message methods to get detailed information about
1295// the error.
1296//
1297// See the AWS API reference guide for Amazon Kinesis Analytics's
1298// API operation DescribeApplication for usage and error information.
1299//
1300// Returned Error Codes:
1301//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1302//   Specified application can't be found.
1303//
1304//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1305//   The request was rejected because a specified parameter is not supported or
1306//   a specified resource is not valid for this operation.
1307//
1308// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DescribeApplication
1309func (c *KinesisAnalytics) DescribeApplication(input *DescribeApplicationInput) (*DescribeApplicationOutput, error) {
1310	req, out := c.DescribeApplicationRequest(input)
1311	return out, req.Send()
1312}
1313
1314// DescribeApplicationWithContext is the same as DescribeApplication with the addition of
1315// the ability to pass a context and additional request options.
1316//
1317// See DescribeApplication for details on how to use this API operation.
1318//
1319// The context must be non-nil and will be used for request cancellation. If
1320// the context is nil a panic will occur. In the future the SDK may create
1321// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1322// for more information on using Contexts.
1323func (c *KinesisAnalytics) DescribeApplicationWithContext(ctx aws.Context, input *DescribeApplicationInput, opts ...request.Option) (*DescribeApplicationOutput, error) {
1324	req, out := c.DescribeApplicationRequest(input)
1325	req.SetContext(ctx)
1326	req.ApplyOptions(opts...)
1327	return out, req.Send()
1328}
1329
1330const opDiscoverInputSchema = "DiscoverInputSchema"
1331
1332// DiscoverInputSchemaRequest generates a "aws/request.Request" representing the
1333// client's request for the DiscoverInputSchema operation. The "output" return
1334// value will be populated with the request's response once the request completes
1335// successfully.
1336//
1337// Use "Send" method on the returned Request to send the API call to the service.
1338// the "output" return value is not valid until after Send returns without error.
1339//
1340// See DiscoverInputSchema for more information on using the DiscoverInputSchema
1341// API call, and error handling.
1342//
1343// This method is useful when you want to inject custom logic or configuration
1344// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1345//
1346//
1347//    // Example sending a request using the DiscoverInputSchemaRequest method.
1348//    req, resp := client.DiscoverInputSchemaRequest(params)
1349//
1350//    err := req.Send()
1351//    if err == nil { // resp is now filled
1352//        fmt.Println(resp)
1353//    }
1354//
1355// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DiscoverInputSchema
1356func (c *KinesisAnalytics) DiscoverInputSchemaRequest(input *DiscoverInputSchemaInput) (req *request.Request, output *DiscoverInputSchemaOutput) {
1357	op := &request.Operation{
1358		Name:       opDiscoverInputSchema,
1359		HTTPMethod: "POST",
1360		HTTPPath:   "/",
1361	}
1362
1363	if input == nil {
1364		input = &DiscoverInputSchemaInput{}
1365	}
1366
1367	output = &DiscoverInputSchemaOutput{}
1368	req = c.newRequest(op, input, output)
1369	return
1370}
1371
1372// DiscoverInputSchema API operation for Amazon Kinesis Analytics.
1373//
1374//
1375// This documentation is for version 1 of the Amazon Kinesis Data Analytics
1376// API, which only supports SQL applications. Version 2 of the API supports
1377// SQL and Java applications. For more information about version 2, see Amazon
1378// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
1379//
1380// Infers a schema by evaluating sample records on the specified streaming source
1381// (Amazon Kinesis stream or Amazon Kinesis Firehose delivery stream) or S3
1382// object. In the response, the operation returns the inferred schema and also
1383// the sample records that the operation used to infer the schema.
1384//
1385// You can use the inferred schema when configuring a streaming source for your
1386// application. For conceptual information, see Configuring Application Input
1387// (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html).
1388// Note that when you create an application using the Amazon Kinesis Analytics
1389// console, the console uses this operation to infer a schema and show it in
1390// the console user interface.
1391//
1392// This operation requires permissions to perform the kinesisanalytics:DiscoverInputSchema
1393// action.
1394//
1395// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1396// with awserr.Error's Code and Message methods to get detailed information about
1397// the error.
1398//
1399// See the AWS API reference guide for Amazon Kinesis Analytics's
1400// API operation DiscoverInputSchema for usage and error information.
1401//
1402// Returned Error Codes:
1403//   * ErrCodeInvalidArgumentException "InvalidArgumentException"
1404//   Specified input parameter value is invalid.
1405//
1406//   * ErrCodeUnableToDetectSchemaException "UnableToDetectSchemaException"
1407//   Data format is not valid. Amazon Kinesis Analytics is not able to detect
1408//   schema for the given streaming source.
1409//
1410//   * ErrCodeResourceProvisionedThroughputExceededException "ResourceProvisionedThroughputExceededException"
1411//   Discovery failed to get a record from the streaming source because of the
1412//   Amazon Kinesis Streams ProvisionedThroughputExceededException. For more information,
1413//   see GetRecords (https://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetRecords.html)
1414//   in the Amazon Kinesis Streams API Reference.
1415//
1416//   * ErrCodeServiceUnavailableException "ServiceUnavailableException"
1417//   The service is unavailable. Back off and retry the operation.
1418//
1419// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/DiscoverInputSchema
1420func (c *KinesisAnalytics) DiscoverInputSchema(input *DiscoverInputSchemaInput) (*DiscoverInputSchemaOutput, error) {
1421	req, out := c.DiscoverInputSchemaRequest(input)
1422	return out, req.Send()
1423}
1424
1425// DiscoverInputSchemaWithContext is the same as DiscoverInputSchema with the addition of
1426// the ability to pass a context and additional request options.
1427//
1428// See DiscoverInputSchema for details on how to use this API operation.
1429//
1430// The context must be non-nil and will be used for request cancellation. If
1431// the context is nil a panic will occur. In the future the SDK may create
1432// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1433// for more information on using Contexts.
1434func (c *KinesisAnalytics) DiscoverInputSchemaWithContext(ctx aws.Context, input *DiscoverInputSchemaInput, opts ...request.Option) (*DiscoverInputSchemaOutput, error) {
1435	req, out := c.DiscoverInputSchemaRequest(input)
1436	req.SetContext(ctx)
1437	req.ApplyOptions(opts...)
1438	return out, req.Send()
1439}
1440
1441const opListApplications = "ListApplications"
1442
1443// ListApplicationsRequest generates a "aws/request.Request" representing the
1444// client's request for the ListApplications operation. The "output" return
1445// value will be populated with the request's response once the request completes
1446// successfully.
1447//
1448// Use "Send" method on the returned Request to send the API call to the service.
1449// the "output" return value is not valid until after Send returns without error.
1450//
1451// See ListApplications for more information on using the ListApplications
1452// API call, and error handling.
1453//
1454// This method is useful when you want to inject custom logic or configuration
1455// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1456//
1457//
1458//    // Example sending a request using the ListApplicationsRequest method.
1459//    req, resp := client.ListApplicationsRequest(params)
1460//
1461//    err := req.Send()
1462//    if err == nil { // resp is now filled
1463//        fmt.Println(resp)
1464//    }
1465//
1466// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/ListApplications
1467func (c *KinesisAnalytics) ListApplicationsRequest(input *ListApplicationsInput) (req *request.Request, output *ListApplicationsOutput) {
1468	op := &request.Operation{
1469		Name:       opListApplications,
1470		HTTPMethod: "POST",
1471		HTTPPath:   "/",
1472	}
1473
1474	if input == nil {
1475		input = &ListApplicationsInput{}
1476	}
1477
1478	output = &ListApplicationsOutput{}
1479	req = c.newRequest(op, input, output)
1480	return
1481}
1482
1483// ListApplications API operation for Amazon Kinesis Analytics.
1484//
1485//
1486// This documentation is for version 1 of the Amazon Kinesis Data Analytics
1487// API, which only supports SQL applications. Version 2 of the API supports
1488// SQL and Java applications. For more information about version 2, see Amazon
1489// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
1490//
1491// Returns a list of Amazon Kinesis Analytics applications in your account.
1492// For each application, the response includes the application name, Amazon
1493// Resource Name (ARN), and status. If the response returns the HasMoreApplications
1494// value as true, you can send another request by adding the ExclusiveStartApplicationName
1495// in the request body, and set the value of this to the last application name
1496// from the previous response.
1497//
1498// If you want detailed information about a specific application, use DescribeApplication
1499// (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html).
1500//
1501// This operation requires permissions to perform the kinesisanalytics:ListApplications
1502// action.
1503//
1504// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1505// with awserr.Error's Code and Message methods to get detailed information about
1506// the error.
1507//
1508// See the AWS API reference guide for Amazon Kinesis Analytics's
1509// API operation ListApplications for usage and error information.
1510// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/ListApplications
1511func (c *KinesisAnalytics) ListApplications(input *ListApplicationsInput) (*ListApplicationsOutput, error) {
1512	req, out := c.ListApplicationsRequest(input)
1513	return out, req.Send()
1514}
1515
1516// ListApplicationsWithContext is the same as ListApplications with the addition of
1517// the ability to pass a context and additional request options.
1518//
1519// See ListApplications for details on how to use this API operation.
1520//
1521// The context must be non-nil and will be used for request cancellation. If
1522// the context is nil a panic will occur. In the future the SDK may create
1523// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1524// for more information on using Contexts.
1525func (c *KinesisAnalytics) ListApplicationsWithContext(ctx aws.Context, input *ListApplicationsInput, opts ...request.Option) (*ListApplicationsOutput, error) {
1526	req, out := c.ListApplicationsRequest(input)
1527	req.SetContext(ctx)
1528	req.ApplyOptions(opts...)
1529	return out, req.Send()
1530}
1531
1532const opListTagsForResource = "ListTagsForResource"
1533
1534// ListTagsForResourceRequest generates a "aws/request.Request" representing the
1535// client's request for the ListTagsForResource operation. The "output" return
1536// value will be populated with the request's response once the request completes
1537// successfully.
1538//
1539// Use "Send" method on the returned Request to send the API call to the service.
1540// the "output" return value is not valid until after Send returns without error.
1541//
1542// See ListTagsForResource for more information on using the ListTagsForResource
1543// API call, and error handling.
1544//
1545// This method is useful when you want to inject custom logic or configuration
1546// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1547//
1548//
1549//    // Example sending a request using the ListTagsForResourceRequest method.
1550//    req, resp := client.ListTagsForResourceRequest(params)
1551//
1552//    err := req.Send()
1553//    if err == nil { // resp is now filled
1554//        fmt.Println(resp)
1555//    }
1556//
1557// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/ListTagsForResource
1558func (c *KinesisAnalytics) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
1559	op := &request.Operation{
1560		Name:       opListTagsForResource,
1561		HTTPMethod: "POST",
1562		HTTPPath:   "/",
1563	}
1564
1565	if input == nil {
1566		input = &ListTagsForResourceInput{}
1567	}
1568
1569	output = &ListTagsForResourceOutput{}
1570	req = c.newRequest(op, input, output)
1571	return
1572}
1573
1574// ListTagsForResource API operation for Amazon Kinesis Analytics.
1575//
1576// Retrieves the list of key-value tags assigned to the application. For more
1577// information, see Using Tagging (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-tagging.html).
1578//
1579// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1580// with awserr.Error's Code and Message methods to get detailed information about
1581// the error.
1582//
1583// See the AWS API reference guide for Amazon Kinesis Analytics's
1584// API operation ListTagsForResource for usage and error information.
1585//
1586// Returned Error Codes:
1587//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1588//   Specified application can't be found.
1589//
1590//   * ErrCodeInvalidArgumentException "InvalidArgumentException"
1591//   Specified input parameter value is invalid.
1592//
1593//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
1594//   Exception thrown as a result of concurrent modification to an application.
1595//   For example, two individuals attempting to edit the same application at the
1596//   same time.
1597//
1598// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/ListTagsForResource
1599func (c *KinesisAnalytics) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
1600	req, out := c.ListTagsForResourceRequest(input)
1601	return out, req.Send()
1602}
1603
1604// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
1605// the ability to pass a context and additional request options.
1606//
1607// See ListTagsForResource for details on how to use this API operation.
1608//
1609// The context must be non-nil and will be used for request cancellation. If
1610// the context is nil a panic will occur. In the future the SDK may create
1611// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1612// for more information on using Contexts.
1613func (c *KinesisAnalytics) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
1614	req, out := c.ListTagsForResourceRequest(input)
1615	req.SetContext(ctx)
1616	req.ApplyOptions(opts...)
1617	return out, req.Send()
1618}
1619
1620const opStartApplication = "StartApplication"
1621
1622// StartApplicationRequest generates a "aws/request.Request" representing the
1623// client's request for the StartApplication operation. The "output" return
1624// value will be populated with the request's response once the request completes
1625// successfully.
1626//
1627// Use "Send" method on the returned Request to send the API call to the service.
1628// the "output" return value is not valid until after Send returns without error.
1629//
1630// See StartApplication for more information on using the StartApplication
1631// API call, and error handling.
1632//
1633// This method is useful when you want to inject custom logic or configuration
1634// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1635//
1636//
1637//    // Example sending a request using the StartApplicationRequest method.
1638//    req, resp := client.StartApplicationRequest(params)
1639//
1640//    err := req.Send()
1641//    if err == nil { // resp is now filled
1642//        fmt.Println(resp)
1643//    }
1644//
1645// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/StartApplication
1646func (c *KinesisAnalytics) StartApplicationRequest(input *StartApplicationInput) (req *request.Request, output *StartApplicationOutput) {
1647	op := &request.Operation{
1648		Name:       opStartApplication,
1649		HTTPMethod: "POST",
1650		HTTPPath:   "/",
1651	}
1652
1653	if input == nil {
1654		input = &StartApplicationInput{}
1655	}
1656
1657	output = &StartApplicationOutput{}
1658	req = c.newRequest(op, input, output)
1659	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1660	return
1661}
1662
1663// StartApplication API operation for Amazon Kinesis Analytics.
1664//
1665//
1666// This documentation is for version 1 of the Amazon Kinesis Data Analytics
1667// API, which only supports SQL applications. Version 2 of the API supports
1668// SQL and Java applications. For more information about version 2, see Amazon
1669// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
1670//
1671// Starts the specified Amazon Kinesis Analytics application. After creating
1672// an application, you must exclusively call this operation to start your application.
1673//
1674// After the application starts, it begins consuming the input data, processes
1675// it, and writes the output to the configured destination.
1676//
1677// The application status must be READY for you to start an application. You
1678// can get the application status in the console or using the DescribeApplication
1679// (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html)
1680// operation.
1681//
1682// After you start the application, you can stop the application from processing
1683// the input by calling the StopApplication (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_StopApplication.html)
1684// operation.
1685//
1686// This operation requires permissions to perform the kinesisanalytics:StartApplication
1687// action.
1688//
1689// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1690// with awserr.Error's Code and Message methods to get detailed information about
1691// the error.
1692//
1693// See the AWS API reference guide for Amazon Kinesis Analytics's
1694// API operation StartApplication for usage and error information.
1695//
1696// Returned Error Codes:
1697//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1698//   Specified application can't be found.
1699//
1700//   * ErrCodeResourceInUseException "ResourceInUseException"
1701//   Application is not available for this operation.
1702//
1703//   * ErrCodeInvalidArgumentException "InvalidArgumentException"
1704//   Specified input parameter value is invalid.
1705//
1706//   * ErrCodeInvalidApplicationConfigurationException "InvalidApplicationConfigurationException"
1707//   User-provided application configuration is not valid.
1708//
1709//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1710//   The request was rejected because a specified parameter is not supported or
1711//   a specified resource is not valid for this operation.
1712//
1713// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/StartApplication
1714func (c *KinesisAnalytics) StartApplication(input *StartApplicationInput) (*StartApplicationOutput, error) {
1715	req, out := c.StartApplicationRequest(input)
1716	return out, req.Send()
1717}
1718
1719// StartApplicationWithContext is the same as StartApplication with the addition of
1720// the ability to pass a context and additional request options.
1721//
1722// See StartApplication for details on how to use this API operation.
1723//
1724// The context must be non-nil and will be used for request cancellation. If
1725// the context is nil a panic will occur. In the future the SDK may create
1726// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1727// for more information on using Contexts.
1728func (c *KinesisAnalytics) StartApplicationWithContext(ctx aws.Context, input *StartApplicationInput, opts ...request.Option) (*StartApplicationOutput, error) {
1729	req, out := c.StartApplicationRequest(input)
1730	req.SetContext(ctx)
1731	req.ApplyOptions(opts...)
1732	return out, req.Send()
1733}
1734
1735const opStopApplication = "StopApplication"
1736
1737// StopApplicationRequest generates a "aws/request.Request" representing the
1738// client's request for the StopApplication operation. The "output" return
1739// value will be populated with the request's response once the request completes
1740// successfully.
1741//
1742// Use "Send" method on the returned Request to send the API call to the service.
1743// the "output" return value is not valid until after Send returns without error.
1744//
1745// See StopApplication for more information on using the StopApplication
1746// API call, and error handling.
1747//
1748// This method is useful when you want to inject custom logic or configuration
1749// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1750//
1751//
1752//    // Example sending a request using the StopApplicationRequest method.
1753//    req, resp := client.StopApplicationRequest(params)
1754//
1755//    err := req.Send()
1756//    if err == nil { // resp is now filled
1757//        fmt.Println(resp)
1758//    }
1759//
1760// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/StopApplication
1761func (c *KinesisAnalytics) StopApplicationRequest(input *StopApplicationInput) (req *request.Request, output *StopApplicationOutput) {
1762	op := &request.Operation{
1763		Name:       opStopApplication,
1764		HTTPMethod: "POST",
1765		HTTPPath:   "/",
1766	}
1767
1768	if input == nil {
1769		input = &StopApplicationInput{}
1770	}
1771
1772	output = &StopApplicationOutput{}
1773	req = c.newRequest(op, input, output)
1774	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1775	return
1776}
1777
1778// StopApplication API operation for Amazon Kinesis Analytics.
1779//
1780//
1781// This documentation is for version 1 of the Amazon Kinesis Data Analytics
1782// API, which only supports SQL applications. Version 2 of the API supports
1783// SQL and Java applications. For more information about version 2, see Amazon
1784// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
1785//
1786// Stops the application from processing input data. You can stop an application
1787// only if it is in the running state. You can use the DescribeApplication (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html)
1788// operation to find the application state. After the application is stopped,
1789// Amazon Kinesis Analytics stops reading data from the input, the application
1790// stops processing data, and there is no output written to the destination.
1791//
1792// This operation requires permissions to perform the kinesisanalytics:StopApplication
1793// action.
1794//
1795// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1796// with awserr.Error's Code and Message methods to get detailed information about
1797// the error.
1798//
1799// See the AWS API reference guide for Amazon Kinesis Analytics's
1800// API operation StopApplication for usage and error information.
1801//
1802// Returned Error Codes:
1803//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1804//   Specified application can't be found.
1805//
1806//   * ErrCodeResourceInUseException "ResourceInUseException"
1807//   Application is not available for this operation.
1808//
1809//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
1810//   The request was rejected because a specified parameter is not supported or
1811//   a specified resource is not valid for this operation.
1812//
1813// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/StopApplication
1814func (c *KinesisAnalytics) StopApplication(input *StopApplicationInput) (*StopApplicationOutput, error) {
1815	req, out := c.StopApplicationRequest(input)
1816	return out, req.Send()
1817}
1818
1819// StopApplicationWithContext is the same as StopApplication with the addition of
1820// the ability to pass a context and additional request options.
1821//
1822// See StopApplication for details on how to use this API operation.
1823//
1824// The context must be non-nil and will be used for request cancellation. If
1825// the context is nil a panic will occur. In the future the SDK may create
1826// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1827// for more information on using Contexts.
1828func (c *KinesisAnalytics) StopApplicationWithContext(ctx aws.Context, input *StopApplicationInput, opts ...request.Option) (*StopApplicationOutput, error) {
1829	req, out := c.StopApplicationRequest(input)
1830	req.SetContext(ctx)
1831	req.ApplyOptions(opts...)
1832	return out, req.Send()
1833}
1834
1835const opTagResource = "TagResource"
1836
1837// TagResourceRequest generates a "aws/request.Request" representing the
1838// client's request for the TagResource operation. The "output" return
1839// value will be populated with the request's response once the request completes
1840// successfully.
1841//
1842// Use "Send" method on the returned Request to send the API call to the service.
1843// the "output" return value is not valid until after Send returns without error.
1844//
1845// See TagResource for more information on using the TagResource
1846// API call, and error handling.
1847//
1848// This method is useful when you want to inject custom logic or configuration
1849// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1850//
1851//
1852//    // Example sending a request using the TagResourceRequest method.
1853//    req, resp := client.TagResourceRequest(params)
1854//
1855//    err := req.Send()
1856//    if err == nil { // resp is now filled
1857//        fmt.Println(resp)
1858//    }
1859//
1860// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/TagResource
1861func (c *KinesisAnalytics) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
1862	op := &request.Operation{
1863		Name:       opTagResource,
1864		HTTPMethod: "POST",
1865		HTTPPath:   "/",
1866	}
1867
1868	if input == nil {
1869		input = &TagResourceInput{}
1870	}
1871
1872	output = &TagResourceOutput{}
1873	req = c.newRequest(op, input, output)
1874	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1875	return
1876}
1877
1878// TagResource API operation for Amazon Kinesis Analytics.
1879//
1880// Adds one or more key-value tags to a Kinesis Analytics application. Note
1881// that the maximum number of application tags includes system tags. The maximum
1882// number of user-defined application tags is 50. For more information, see
1883// Using Tagging (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-tagging.html).
1884//
1885// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1886// with awserr.Error's Code and Message methods to get detailed information about
1887// the error.
1888//
1889// See the AWS API reference guide for Amazon Kinesis Analytics's
1890// API operation TagResource for usage and error information.
1891//
1892// Returned Error Codes:
1893//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1894//   Specified application can't be found.
1895//
1896//   * ErrCodeResourceInUseException "ResourceInUseException"
1897//   Application is not available for this operation.
1898//
1899//   * ErrCodeTooManyTagsException "TooManyTagsException"
1900//   Application created with too many tags, or too many tags added to an application.
1901//   Note that the maximum number of application tags includes system tags. The
1902//   maximum number of user-defined application tags is 50.
1903//
1904//   * ErrCodeInvalidArgumentException "InvalidArgumentException"
1905//   Specified input parameter value is invalid.
1906//
1907//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
1908//   Exception thrown as a result of concurrent modification to an application.
1909//   For example, two individuals attempting to edit the same application at the
1910//   same time.
1911//
1912// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/TagResource
1913func (c *KinesisAnalytics) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
1914	req, out := c.TagResourceRequest(input)
1915	return out, req.Send()
1916}
1917
1918// TagResourceWithContext is the same as TagResource with the addition of
1919// the ability to pass a context and additional request options.
1920//
1921// See TagResource for details on how to use this API operation.
1922//
1923// The context must be non-nil and will be used for request cancellation. If
1924// the context is nil a panic will occur. In the future the SDK may create
1925// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1926// for more information on using Contexts.
1927func (c *KinesisAnalytics) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
1928	req, out := c.TagResourceRequest(input)
1929	req.SetContext(ctx)
1930	req.ApplyOptions(opts...)
1931	return out, req.Send()
1932}
1933
1934const opUntagResource = "UntagResource"
1935
1936// UntagResourceRequest generates a "aws/request.Request" representing the
1937// client's request for the UntagResource operation. The "output" return
1938// value will be populated with the request's response once the request completes
1939// successfully.
1940//
1941// Use "Send" method on the returned Request to send the API call to the service.
1942// the "output" return value is not valid until after Send returns without error.
1943//
1944// See UntagResource for more information on using the UntagResource
1945// API call, and error handling.
1946//
1947// This method is useful when you want to inject custom logic or configuration
1948// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1949//
1950//
1951//    // Example sending a request using the UntagResourceRequest method.
1952//    req, resp := client.UntagResourceRequest(params)
1953//
1954//    err := req.Send()
1955//    if err == nil { // resp is now filled
1956//        fmt.Println(resp)
1957//    }
1958//
1959// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/UntagResource
1960func (c *KinesisAnalytics) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
1961	op := &request.Operation{
1962		Name:       opUntagResource,
1963		HTTPMethod: "POST",
1964		HTTPPath:   "/",
1965	}
1966
1967	if input == nil {
1968		input = &UntagResourceInput{}
1969	}
1970
1971	output = &UntagResourceOutput{}
1972	req = c.newRequest(op, input, output)
1973	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1974	return
1975}
1976
1977// UntagResource API operation for Amazon Kinesis Analytics.
1978//
1979// Removes one or more tags from a Kinesis Analytics application. For more information,
1980// see Using Tagging (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-tagging.html).
1981//
1982// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1983// with awserr.Error's Code and Message methods to get detailed information about
1984// the error.
1985//
1986// See the AWS API reference guide for Amazon Kinesis Analytics's
1987// API operation UntagResource for usage and error information.
1988//
1989// Returned Error Codes:
1990//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1991//   Specified application can't be found.
1992//
1993//   * ErrCodeResourceInUseException "ResourceInUseException"
1994//   Application is not available for this operation.
1995//
1996//   * ErrCodeTooManyTagsException "TooManyTagsException"
1997//   Application created with too many tags, or too many tags added to an application.
1998//   Note that the maximum number of application tags includes system tags. The
1999//   maximum number of user-defined application tags is 50.
2000//
2001//   * ErrCodeInvalidArgumentException "InvalidArgumentException"
2002//   Specified input parameter value is invalid.
2003//
2004//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
2005//   Exception thrown as a result of concurrent modification to an application.
2006//   For example, two individuals attempting to edit the same application at the
2007//   same time.
2008//
2009// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/UntagResource
2010func (c *KinesisAnalytics) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
2011	req, out := c.UntagResourceRequest(input)
2012	return out, req.Send()
2013}
2014
2015// UntagResourceWithContext is the same as UntagResource with the addition of
2016// the ability to pass a context and additional request options.
2017//
2018// See UntagResource for details on how to use this API operation.
2019//
2020// The context must be non-nil and will be used for request cancellation. If
2021// the context is nil a panic will occur. In the future the SDK may create
2022// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2023// for more information on using Contexts.
2024func (c *KinesisAnalytics) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
2025	req, out := c.UntagResourceRequest(input)
2026	req.SetContext(ctx)
2027	req.ApplyOptions(opts...)
2028	return out, req.Send()
2029}
2030
2031const opUpdateApplication = "UpdateApplication"
2032
2033// UpdateApplicationRequest generates a "aws/request.Request" representing the
2034// client's request for the UpdateApplication operation. The "output" return
2035// value will be populated with the request's response once the request completes
2036// successfully.
2037//
2038// Use "Send" method on the returned Request to send the API call to the service.
2039// the "output" return value is not valid until after Send returns without error.
2040//
2041// See UpdateApplication for more information on using the UpdateApplication
2042// API call, and error handling.
2043//
2044// This method is useful when you want to inject custom logic or configuration
2045// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2046//
2047//
2048//    // Example sending a request using the UpdateApplicationRequest method.
2049//    req, resp := client.UpdateApplicationRequest(params)
2050//
2051//    err := req.Send()
2052//    if err == nil { // resp is now filled
2053//        fmt.Println(resp)
2054//    }
2055//
2056// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/UpdateApplication
2057func (c *KinesisAnalytics) UpdateApplicationRequest(input *UpdateApplicationInput) (req *request.Request, output *UpdateApplicationOutput) {
2058	op := &request.Operation{
2059		Name:       opUpdateApplication,
2060		HTTPMethod: "POST",
2061		HTTPPath:   "/",
2062	}
2063
2064	if input == nil {
2065		input = &UpdateApplicationInput{}
2066	}
2067
2068	output = &UpdateApplicationOutput{}
2069	req = c.newRequest(op, input, output)
2070	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2071	return
2072}
2073
2074// UpdateApplication API operation for Amazon Kinesis Analytics.
2075//
2076//
2077// This documentation is for version 1 of the Amazon Kinesis Data Analytics
2078// API, which only supports SQL applications. Version 2 of the API supports
2079// SQL and Java applications. For more information about version 2, see Amazon
2080// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
2081//
2082// Updates an existing Amazon Kinesis Analytics application. Using this API,
2083// you can update application code, input configuration, and output configuration.
2084//
2085// Note that Amazon Kinesis Analytics updates the CurrentApplicationVersionId
2086// each time you update your application.
2087//
2088// This operation requires permission for the kinesisanalytics:UpdateApplication
2089// action.
2090//
2091// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2092// with awserr.Error's Code and Message methods to get detailed information about
2093// the error.
2094//
2095// See the AWS API reference guide for Amazon Kinesis Analytics's
2096// API operation UpdateApplication for usage and error information.
2097//
2098// Returned Error Codes:
2099//   * ErrCodeCodeValidationException "CodeValidationException"
2100//   User-provided application code (query) is invalid. This can be a simple syntax
2101//   error.
2102//
2103//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2104//   Specified application can't be found.
2105//
2106//   * ErrCodeResourceInUseException "ResourceInUseException"
2107//   Application is not available for this operation.
2108//
2109//   * ErrCodeInvalidArgumentException "InvalidArgumentException"
2110//   Specified input parameter value is invalid.
2111//
2112//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
2113//   Exception thrown as a result of concurrent modification to an application.
2114//   For example, two individuals attempting to edit the same application at the
2115//   same time.
2116//
2117//   * ErrCodeUnsupportedOperationException "UnsupportedOperationException"
2118//   The request was rejected because a specified parameter is not supported or
2119//   a specified resource is not valid for this operation.
2120//
2121// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesisanalytics-2015-08-14/UpdateApplication
2122func (c *KinesisAnalytics) UpdateApplication(input *UpdateApplicationInput) (*UpdateApplicationOutput, error) {
2123	req, out := c.UpdateApplicationRequest(input)
2124	return out, req.Send()
2125}
2126
2127// UpdateApplicationWithContext is the same as UpdateApplication with the addition of
2128// the ability to pass a context and additional request options.
2129//
2130// See UpdateApplication for details on how to use this API operation.
2131//
2132// The context must be non-nil and will be used for request cancellation. If
2133// the context is nil a panic will occur. In the future the SDK may create
2134// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2135// for more information on using Contexts.
2136func (c *KinesisAnalytics) UpdateApplicationWithContext(ctx aws.Context, input *UpdateApplicationInput, opts ...request.Option) (*UpdateApplicationOutput, error) {
2137	req, out := c.UpdateApplicationRequest(input)
2138	req.SetContext(ctx)
2139	req.ApplyOptions(opts...)
2140	return out, req.Send()
2141}
2142
2143type AddApplicationCloudWatchLoggingOptionInput struct {
2144	_ struct{} `type:"structure"`
2145
2146	// The Kinesis Analytics application name.
2147	//
2148	// ApplicationName is a required field
2149	ApplicationName *string `min:"1" type:"string" required:"true"`
2150
2151	// Provides the CloudWatch log stream Amazon Resource Name (ARN) and the IAM
2152	// role ARN. Note: To write application messages to CloudWatch, the IAM role
2153	// that is used must have the PutLogEvents policy action enabled.
2154	//
2155	// CloudWatchLoggingOption is a required field
2156	CloudWatchLoggingOption *CloudWatchLoggingOption `type:"structure" required:"true"`
2157
2158	// The version ID of the Kinesis Analytics application.
2159	//
2160	// CurrentApplicationVersionId is a required field
2161	CurrentApplicationVersionId *int64 `min:"1" type:"long" required:"true"`
2162}
2163
2164// String returns the string representation
2165func (s AddApplicationCloudWatchLoggingOptionInput) String() string {
2166	return awsutil.Prettify(s)
2167}
2168
2169// GoString returns the string representation
2170func (s AddApplicationCloudWatchLoggingOptionInput) GoString() string {
2171	return s.String()
2172}
2173
2174// Validate inspects the fields of the type to determine if they are valid.
2175func (s *AddApplicationCloudWatchLoggingOptionInput) Validate() error {
2176	invalidParams := request.ErrInvalidParams{Context: "AddApplicationCloudWatchLoggingOptionInput"}
2177	if s.ApplicationName == nil {
2178		invalidParams.Add(request.NewErrParamRequired("ApplicationName"))
2179	}
2180	if s.ApplicationName != nil && len(*s.ApplicationName) < 1 {
2181		invalidParams.Add(request.NewErrParamMinLen("ApplicationName", 1))
2182	}
2183	if s.CloudWatchLoggingOption == nil {
2184		invalidParams.Add(request.NewErrParamRequired("CloudWatchLoggingOption"))
2185	}
2186	if s.CurrentApplicationVersionId == nil {
2187		invalidParams.Add(request.NewErrParamRequired("CurrentApplicationVersionId"))
2188	}
2189	if s.CurrentApplicationVersionId != nil && *s.CurrentApplicationVersionId < 1 {
2190		invalidParams.Add(request.NewErrParamMinValue("CurrentApplicationVersionId", 1))
2191	}
2192	if s.CloudWatchLoggingOption != nil {
2193		if err := s.CloudWatchLoggingOption.Validate(); err != nil {
2194			invalidParams.AddNested("CloudWatchLoggingOption", err.(request.ErrInvalidParams))
2195		}
2196	}
2197
2198	if invalidParams.Len() > 0 {
2199		return invalidParams
2200	}
2201	return nil
2202}
2203
2204// SetApplicationName sets the ApplicationName field's value.
2205func (s *AddApplicationCloudWatchLoggingOptionInput) SetApplicationName(v string) *AddApplicationCloudWatchLoggingOptionInput {
2206	s.ApplicationName = &v
2207	return s
2208}
2209
2210// SetCloudWatchLoggingOption sets the CloudWatchLoggingOption field's value.
2211func (s *AddApplicationCloudWatchLoggingOptionInput) SetCloudWatchLoggingOption(v *CloudWatchLoggingOption) *AddApplicationCloudWatchLoggingOptionInput {
2212	s.CloudWatchLoggingOption = v
2213	return s
2214}
2215
2216// SetCurrentApplicationVersionId sets the CurrentApplicationVersionId field's value.
2217func (s *AddApplicationCloudWatchLoggingOptionInput) SetCurrentApplicationVersionId(v int64) *AddApplicationCloudWatchLoggingOptionInput {
2218	s.CurrentApplicationVersionId = &v
2219	return s
2220}
2221
2222type AddApplicationCloudWatchLoggingOptionOutput struct {
2223	_ struct{} `type:"structure"`
2224}
2225
2226// String returns the string representation
2227func (s AddApplicationCloudWatchLoggingOptionOutput) String() string {
2228	return awsutil.Prettify(s)
2229}
2230
2231// GoString returns the string representation
2232func (s AddApplicationCloudWatchLoggingOptionOutput) GoString() string {
2233	return s.String()
2234}
2235
2236type AddApplicationInputInput struct {
2237	_ struct{} `type:"structure"`
2238
2239	// Name of your existing Amazon Kinesis Analytics application to which you want
2240	// to add the streaming source.
2241	//
2242	// ApplicationName is a required field
2243	ApplicationName *string `min:"1" type:"string" required:"true"`
2244
2245	// Current version of your Amazon Kinesis Analytics application. You can use
2246	// the DescribeApplication (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html)
2247	// operation to find the current application version.
2248	//
2249	// CurrentApplicationVersionId is a required field
2250	CurrentApplicationVersionId *int64 `min:"1" type:"long" required:"true"`
2251
2252	// The Input (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_Input.html)
2253	// to add.
2254	//
2255	// Input is a required field
2256	Input *Input `type:"structure" required:"true"`
2257}
2258
2259// String returns the string representation
2260func (s AddApplicationInputInput) String() string {
2261	return awsutil.Prettify(s)
2262}
2263
2264// GoString returns the string representation
2265func (s AddApplicationInputInput) GoString() string {
2266	return s.String()
2267}
2268
2269// Validate inspects the fields of the type to determine if they are valid.
2270func (s *AddApplicationInputInput) Validate() error {
2271	invalidParams := request.ErrInvalidParams{Context: "AddApplicationInputInput"}
2272	if s.ApplicationName == nil {
2273		invalidParams.Add(request.NewErrParamRequired("ApplicationName"))
2274	}
2275	if s.ApplicationName != nil && len(*s.ApplicationName) < 1 {
2276		invalidParams.Add(request.NewErrParamMinLen("ApplicationName", 1))
2277	}
2278	if s.CurrentApplicationVersionId == nil {
2279		invalidParams.Add(request.NewErrParamRequired("CurrentApplicationVersionId"))
2280	}
2281	if s.CurrentApplicationVersionId != nil && *s.CurrentApplicationVersionId < 1 {
2282		invalidParams.Add(request.NewErrParamMinValue("CurrentApplicationVersionId", 1))
2283	}
2284	if s.Input == nil {
2285		invalidParams.Add(request.NewErrParamRequired("Input"))
2286	}
2287	if s.Input != nil {
2288		if err := s.Input.Validate(); err != nil {
2289			invalidParams.AddNested("Input", err.(request.ErrInvalidParams))
2290		}
2291	}
2292
2293	if invalidParams.Len() > 0 {
2294		return invalidParams
2295	}
2296	return nil
2297}
2298
2299// SetApplicationName sets the ApplicationName field's value.
2300func (s *AddApplicationInputInput) SetApplicationName(v string) *AddApplicationInputInput {
2301	s.ApplicationName = &v
2302	return s
2303}
2304
2305// SetCurrentApplicationVersionId sets the CurrentApplicationVersionId field's value.
2306func (s *AddApplicationInputInput) SetCurrentApplicationVersionId(v int64) *AddApplicationInputInput {
2307	s.CurrentApplicationVersionId = &v
2308	return s
2309}
2310
2311// SetInput sets the Input field's value.
2312func (s *AddApplicationInputInput) SetInput(v *Input) *AddApplicationInputInput {
2313	s.Input = v
2314	return s
2315}
2316
2317type AddApplicationInputOutput struct {
2318	_ struct{} `type:"structure"`
2319}
2320
2321// String returns the string representation
2322func (s AddApplicationInputOutput) String() string {
2323	return awsutil.Prettify(s)
2324}
2325
2326// GoString returns the string representation
2327func (s AddApplicationInputOutput) GoString() string {
2328	return s.String()
2329}
2330
2331type AddApplicationInputProcessingConfigurationInput struct {
2332	_ struct{} `type:"structure"`
2333
2334	// Name of the application to which you want to add the input processing configuration.
2335	//
2336	// ApplicationName is a required field
2337	ApplicationName *string `min:"1" type:"string" required:"true"`
2338
2339	// Version of the application to which you want to add the input processing
2340	// configuration. You can use the DescribeApplication (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html)
2341	// operation to get the current application version. If the version specified
2342	// is not the current version, the ConcurrentModificationException is returned.
2343	//
2344	// CurrentApplicationVersionId is a required field
2345	CurrentApplicationVersionId *int64 `min:"1" type:"long" required:"true"`
2346
2347	// The ID of the input configuration to add the input processing configuration
2348	// to. You can get a list of the input IDs for an application using the DescribeApplication
2349	// (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html)
2350	// operation.
2351	//
2352	// InputId is a required field
2353	InputId *string `min:"1" type:"string" required:"true"`
2354
2355	// The InputProcessingConfiguration (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputProcessingConfiguration.html)
2356	// to add to the application.
2357	//
2358	// InputProcessingConfiguration is a required field
2359	InputProcessingConfiguration *InputProcessingConfiguration `type:"structure" required:"true"`
2360}
2361
2362// String returns the string representation
2363func (s AddApplicationInputProcessingConfigurationInput) String() string {
2364	return awsutil.Prettify(s)
2365}
2366
2367// GoString returns the string representation
2368func (s AddApplicationInputProcessingConfigurationInput) GoString() string {
2369	return s.String()
2370}
2371
2372// Validate inspects the fields of the type to determine if they are valid.
2373func (s *AddApplicationInputProcessingConfigurationInput) Validate() error {
2374	invalidParams := request.ErrInvalidParams{Context: "AddApplicationInputProcessingConfigurationInput"}
2375	if s.ApplicationName == nil {
2376		invalidParams.Add(request.NewErrParamRequired("ApplicationName"))
2377	}
2378	if s.ApplicationName != nil && len(*s.ApplicationName) < 1 {
2379		invalidParams.Add(request.NewErrParamMinLen("ApplicationName", 1))
2380	}
2381	if s.CurrentApplicationVersionId == nil {
2382		invalidParams.Add(request.NewErrParamRequired("CurrentApplicationVersionId"))
2383	}
2384	if s.CurrentApplicationVersionId != nil && *s.CurrentApplicationVersionId < 1 {
2385		invalidParams.Add(request.NewErrParamMinValue("CurrentApplicationVersionId", 1))
2386	}
2387	if s.InputId == nil {
2388		invalidParams.Add(request.NewErrParamRequired("InputId"))
2389	}
2390	if s.InputId != nil && len(*s.InputId) < 1 {
2391		invalidParams.Add(request.NewErrParamMinLen("InputId", 1))
2392	}
2393	if s.InputProcessingConfiguration == nil {
2394		invalidParams.Add(request.NewErrParamRequired("InputProcessingConfiguration"))
2395	}
2396	if s.InputProcessingConfiguration != nil {
2397		if err := s.InputProcessingConfiguration.Validate(); err != nil {
2398			invalidParams.AddNested("InputProcessingConfiguration", err.(request.ErrInvalidParams))
2399		}
2400	}
2401
2402	if invalidParams.Len() > 0 {
2403		return invalidParams
2404	}
2405	return nil
2406}
2407
2408// SetApplicationName sets the ApplicationName field's value.
2409func (s *AddApplicationInputProcessingConfigurationInput) SetApplicationName(v string) *AddApplicationInputProcessingConfigurationInput {
2410	s.ApplicationName = &v
2411	return s
2412}
2413
2414// SetCurrentApplicationVersionId sets the CurrentApplicationVersionId field's value.
2415func (s *AddApplicationInputProcessingConfigurationInput) SetCurrentApplicationVersionId(v int64) *AddApplicationInputProcessingConfigurationInput {
2416	s.CurrentApplicationVersionId = &v
2417	return s
2418}
2419
2420// SetInputId sets the InputId field's value.
2421func (s *AddApplicationInputProcessingConfigurationInput) SetInputId(v string) *AddApplicationInputProcessingConfigurationInput {
2422	s.InputId = &v
2423	return s
2424}
2425
2426// SetInputProcessingConfiguration sets the InputProcessingConfiguration field's value.
2427func (s *AddApplicationInputProcessingConfigurationInput) SetInputProcessingConfiguration(v *InputProcessingConfiguration) *AddApplicationInputProcessingConfigurationInput {
2428	s.InputProcessingConfiguration = v
2429	return s
2430}
2431
2432type AddApplicationInputProcessingConfigurationOutput struct {
2433	_ struct{} `type:"structure"`
2434}
2435
2436// String returns the string representation
2437func (s AddApplicationInputProcessingConfigurationOutput) String() string {
2438	return awsutil.Prettify(s)
2439}
2440
2441// GoString returns the string representation
2442func (s AddApplicationInputProcessingConfigurationOutput) GoString() string {
2443	return s.String()
2444}
2445
2446type AddApplicationOutputInput struct {
2447	_ struct{} `type:"structure"`
2448
2449	// Name of the application to which you want to add the output configuration.
2450	//
2451	// ApplicationName is a required field
2452	ApplicationName *string `min:"1" type:"string" required:"true"`
2453
2454	// Version of the application to which you want to add the output configuration.
2455	// You can use the DescribeApplication (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html)
2456	// operation to get the current application version. If the version specified
2457	// is not the current version, the ConcurrentModificationException is returned.
2458	//
2459	// CurrentApplicationVersionId is a required field
2460	CurrentApplicationVersionId *int64 `min:"1" type:"long" required:"true"`
2461
2462	// An array of objects, each describing one output configuration. In the output
2463	// configuration, you specify the name of an in-application stream, a destination
2464	// (that is, an Amazon Kinesis stream, an Amazon Kinesis Firehose delivery stream,
2465	// or an AWS Lambda function), and record the formation to use when writing
2466	// to the destination.
2467	//
2468	// Output is a required field
2469	Output *Output `type:"structure" required:"true"`
2470}
2471
2472// String returns the string representation
2473func (s AddApplicationOutputInput) String() string {
2474	return awsutil.Prettify(s)
2475}
2476
2477// GoString returns the string representation
2478func (s AddApplicationOutputInput) GoString() string {
2479	return s.String()
2480}
2481
2482// Validate inspects the fields of the type to determine if they are valid.
2483func (s *AddApplicationOutputInput) Validate() error {
2484	invalidParams := request.ErrInvalidParams{Context: "AddApplicationOutputInput"}
2485	if s.ApplicationName == nil {
2486		invalidParams.Add(request.NewErrParamRequired("ApplicationName"))
2487	}
2488	if s.ApplicationName != nil && len(*s.ApplicationName) < 1 {
2489		invalidParams.Add(request.NewErrParamMinLen("ApplicationName", 1))
2490	}
2491	if s.CurrentApplicationVersionId == nil {
2492		invalidParams.Add(request.NewErrParamRequired("CurrentApplicationVersionId"))
2493	}
2494	if s.CurrentApplicationVersionId != nil && *s.CurrentApplicationVersionId < 1 {
2495		invalidParams.Add(request.NewErrParamMinValue("CurrentApplicationVersionId", 1))
2496	}
2497	if s.Output == nil {
2498		invalidParams.Add(request.NewErrParamRequired("Output"))
2499	}
2500	if s.Output != nil {
2501		if err := s.Output.Validate(); err != nil {
2502			invalidParams.AddNested("Output", err.(request.ErrInvalidParams))
2503		}
2504	}
2505
2506	if invalidParams.Len() > 0 {
2507		return invalidParams
2508	}
2509	return nil
2510}
2511
2512// SetApplicationName sets the ApplicationName field's value.
2513func (s *AddApplicationOutputInput) SetApplicationName(v string) *AddApplicationOutputInput {
2514	s.ApplicationName = &v
2515	return s
2516}
2517
2518// SetCurrentApplicationVersionId sets the CurrentApplicationVersionId field's value.
2519func (s *AddApplicationOutputInput) SetCurrentApplicationVersionId(v int64) *AddApplicationOutputInput {
2520	s.CurrentApplicationVersionId = &v
2521	return s
2522}
2523
2524// SetOutput sets the Output field's value.
2525func (s *AddApplicationOutputInput) SetOutput(v *Output) *AddApplicationOutputInput {
2526	s.Output = v
2527	return s
2528}
2529
2530type AddApplicationOutputOutput struct {
2531	_ struct{} `type:"structure"`
2532}
2533
2534// String returns the string representation
2535func (s AddApplicationOutputOutput) String() string {
2536	return awsutil.Prettify(s)
2537}
2538
2539// GoString returns the string representation
2540func (s AddApplicationOutputOutput) GoString() string {
2541	return s.String()
2542}
2543
2544type AddApplicationReferenceDataSourceInput struct {
2545	_ struct{} `type:"structure"`
2546
2547	// Name of an existing application.
2548	//
2549	// ApplicationName is a required field
2550	ApplicationName *string `min:"1" type:"string" required:"true"`
2551
2552	// Version of the application for which you are adding the reference data source.
2553	// You can use the DescribeApplication (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html)
2554	// operation to get the current application version. If the version specified
2555	// is not the current version, the ConcurrentModificationException is returned.
2556	//
2557	// CurrentApplicationVersionId is a required field
2558	CurrentApplicationVersionId *int64 `min:"1" type:"long" required:"true"`
2559
2560	// The reference data source can be an object in your Amazon S3 bucket. Amazon
2561	// Kinesis Analytics reads the object and copies the data into the in-application
2562	// table that is created. You provide an S3 bucket, object key name, and the
2563	// resulting in-application table that is created. You must also provide an
2564	// IAM role with the necessary permissions that Amazon Kinesis Analytics can
2565	// assume to read the object from your S3 bucket on your behalf.
2566	//
2567	// ReferenceDataSource is a required field
2568	ReferenceDataSource *ReferenceDataSource `type:"structure" required:"true"`
2569}
2570
2571// String returns the string representation
2572func (s AddApplicationReferenceDataSourceInput) String() string {
2573	return awsutil.Prettify(s)
2574}
2575
2576// GoString returns the string representation
2577func (s AddApplicationReferenceDataSourceInput) GoString() string {
2578	return s.String()
2579}
2580
2581// Validate inspects the fields of the type to determine if they are valid.
2582func (s *AddApplicationReferenceDataSourceInput) Validate() error {
2583	invalidParams := request.ErrInvalidParams{Context: "AddApplicationReferenceDataSourceInput"}
2584	if s.ApplicationName == nil {
2585		invalidParams.Add(request.NewErrParamRequired("ApplicationName"))
2586	}
2587	if s.ApplicationName != nil && len(*s.ApplicationName) < 1 {
2588		invalidParams.Add(request.NewErrParamMinLen("ApplicationName", 1))
2589	}
2590	if s.CurrentApplicationVersionId == nil {
2591		invalidParams.Add(request.NewErrParamRequired("CurrentApplicationVersionId"))
2592	}
2593	if s.CurrentApplicationVersionId != nil && *s.CurrentApplicationVersionId < 1 {
2594		invalidParams.Add(request.NewErrParamMinValue("CurrentApplicationVersionId", 1))
2595	}
2596	if s.ReferenceDataSource == nil {
2597		invalidParams.Add(request.NewErrParamRequired("ReferenceDataSource"))
2598	}
2599	if s.ReferenceDataSource != nil {
2600		if err := s.ReferenceDataSource.Validate(); err != nil {
2601			invalidParams.AddNested("ReferenceDataSource", err.(request.ErrInvalidParams))
2602		}
2603	}
2604
2605	if invalidParams.Len() > 0 {
2606		return invalidParams
2607	}
2608	return nil
2609}
2610
2611// SetApplicationName sets the ApplicationName field's value.
2612func (s *AddApplicationReferenceDataSourceInput) SetApplicationName(v string) *AddApplicationReferenceDataSourceInput {
2613	s.ApplicationName = &v
2614	return s
2615}
2616
2617// SetCurrentApplicationVersionId sets the CurrentApplicationVersionId field's value.
2618func (s *AddApplicationReferenceDataSourceInput) SetCurrentApplicationVersionId(v int64) *AddApplicationReferenceDataSourceInput {
2619	s.CurrentApplicationVersionId = &v
2620	return s
2621}
2622
2623// SetReferenceDataSource sets the ReferenceDataSource field's value.
2624func (s *AddApplicationReferenceDataSourceInput) SetReferenceDataSource(v *ReferenceDataSource) *AddApplicationReferenceDataSourceInput {
2625	s.ReferenceDataSource = v
2626	return s
2627}
2628
2629type AddApplicationReferenceDataSourceOutput struct {
2630	_ struct{} `type:"structure"`
2631}
2632
2633// String returns the string representation
2634func (s AddApplicationReferenceDataSourceOutput) String() string {
2635	return awsutil.Prettify(s)
2636}
2637
2638// GoString returns the string representation
2639func (s AddApplicationReferenceDataSourceOutput) GoString() string {
2640	return s.String()
2641}
2642
2643//
2644// This documentation is for version 1 of the Amazon Kinesis Data Analytics
2645// API, which only supports SQL applications. Version 2 of the API supports
2646// SQL and Java applications. For more information about version 2, see Amazon
2647// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
2648//
2649// Provides a description of the application, including the application Amazon
2650// Resource Name (ARN), status, latest version, and input and output configuration.
2651type ApplicationDetail struct {
2652	_ struct{} `type:"structure"`
2653
2654	// ARN of the application.
2655	//
2656	// ApplicationARN is a required field
2657	ApplicationARN *string `min:"1" type:"string" required:"true"`
2658
2659	// Returns the application code that you provided to perform data analysis on
2660	// any of the in-application streams in your application.
2661	ApplicationCode *string `type:"string"`
2662
2663	// Description of the application.
2664	ApplicationDescription *string `type:"string"`
2665
2666	// Name of the application.
2667	//
2668	// ApplicationName is a required field
2669	ApplicationName *string `min:"1" type:"string" required:"true"`
2670
2671	// Status of the application.
2672	//
2673	// ApplicationStatus is a required field
2674	ApplicationStatus *string `type:"string" required:"true" enum:"ApplicationStatus"`
2675
2676	// Provides the current application version.
2677	//
2678	// ApplicationVersionId is a required field
2679	ApplicationVersionId *int64 `min:"1" type:"long" required:"true"`
2680
2681	// Describes the CloudWatch log streams that are configured to receive application
2682	// messages. For more information about using CloudWatch log streams with Amazon
2683	// Kinesis Analytics applications, see Working with Amazon CloudWatch Logs (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/cloudwatch-logs.html).
2684	CloudWatchLoggingOptionDescriptions []*CloudWatchLoggingOptionDescription `type:"list"`
2685
2686	// Time stamp when the application version was created.
2687	CreateTimestamp *time.Time `type:"timestamp"`
2688
2689	// Describes the application input configuration. For more information, see
2690	// Configuring Application Input (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html).
2691	InputDescriptions []*InputDescription `type:"list"`
2692
2693	// Time stamp when the application was last updated.
2694	LastUpdateTimestamp *time.Time `type:"timestamp"`
2695
2696	// Describes the application output configuration. For more information, see
2697	// Configuring Application Output (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html).
2698	OutputDescriptions []*OutputDescription `type:"list"`
2699
2700	// Describes reference data sources configured for the application. For more
2701	// information, see Configuring Application Input (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html).
2702	ReferenceDataSourceDescriptions []*ReferenceDataSourceDescription `type:"list"`
2703}
2704
2705// String returns the string representation
2706func (s ApplicationDetail) String() string {
2707	return awsutil.Prettify(s)
2708}
2709
2710// GoString returns the string representation
2711func (s ApplicationDetail) GoString() string {
2712	return s.String()
2713}
2714
2715// SetApplicationARN sets the ApplicationARN field's value.
2716func (s *ApplicationDetail) SetApplicationARN(v string) *ApplicationDetail {
2717	s.ApplicationARN = &v
2718	return s
2719}
2720
2721// SetApplicationCode sets the ApplicationCode field's value.
2722func (s *ApplicationDetail) SetApplicationCode(v string) *ApplicationDetail {
2723	s.ApplicationCode = &v
2724	return s
2725}
2726
2727// SetApplicationDescription sets the ApplicationDescription field's value.
2728func (s *ApplicationDetail) SetApplicationDescription(v string) *ApplicationDetail {
2729	s.ApplicationDescription = &v
2730	return s
2731}
2732
2733// SetApplicationName sets the ApplicationName field's value.
2734func (s *ApplicationDetail) SetApplicationName(v string) *ApplicationDetail {
2735	s.ApplicationName = &v
2736	return s
2737}
2738
2739// SetApplicationStatus sets the ApplicationStatus field's value.
2740func (s *ApplicationDetail) SetApplicationStatus(v string) *ApplicationDetail {
2741	s.ApplicationStatus = &v
2742	return s
2743}
2744
2745// SetApplicationVersionId sets the ApplicationVersionId field's value.
2746func (s *ApplicationDetail) SetApplicationVersionId(v int64) *ApplicationDetail {
2747	s.ApplicationVersionId = &v
2748	return s
2749}
2750
2751// SetCloudWatchLoggingOptionDescriptions sets the CloudWatchLoggingOptionDescriptions field's value.
2752func (s *ApplicationDetail) SetCloudWatchLoggingOptionDescriptions(v []*CloudWatchLoggingOptionDescription) *ApplicationDetail {
2753	s.CloudWatchLoggingOptionDescriptions = v
2754	return s
2755}
2756
2757// SetCreateTimestamp sets the CreateTimestamp field's value.
2758func (s *ApplicationDetail) SetCreateTimestamp(v time.Time) *ApplicationDetail {
2759	s.CreateTimestamp = &v
2760	return s
2761}
2762
2763// SetInputDescriptions sets the InputDescriptions field's value.
2764func (s *ApplicationDetail) SetInputDescriptions(v []*InputDescription) *ApplicationDetail {
2765	s.InputDescriptions = v
2766	return s
2767}
2768
2769// SetLastUpdateTimestamp sets the LastUpdateTimestamp field's value.
2770func (s *ApplicationDetail) SetLastUpdateTimestamp(v time.Time) *ApplicationDetail {
2771	s.LastUpdateTimestamp = &v
2772	return s
2773}
2774
2775// SetOutputDescriptions sets the OutputDescriptions field's value.
2776func (s *ApplicationDetail) SetOutputDescriptions(v []*OutputDescription) *ApplicationDetail {
2777	s.OutputDescriptions = v
2778	return s
2779}
2780
2781// SetReferenceDataSourceDescriptions sets the ReferenceDataSourceDescriptions field's value.
2782func (s *ApplicationDetail) SetReferenceDataSourceDescriptions(v []*ReferenceDataSourceDescription) *ApplicationDetail {
2783	s.ReferenceDataSourceDescriptions = v
2784	return s
2785}
2786
2787//
2788// This documentation is for version 1 of the Amazon Kinesis Data Analytics
2789// API, which only supports SQL applications. Version 2 of the API supports
2790// SQL and Java applications. For more information about version 2, see Amazon
2791// Kinesis Data Analytics API V2 Documentation (/kinesisanalytics/latest/apiv2/Welcome.html).
2792//
2793// Provides application summary information, including the application Amazon
2794// Resource Name (ARN), name, and status.
2795type ApplicationSummary struct {
2796	_ struct{} `type:"structure"`
2797
2798	// ARN of the application.
2799	//
2800	// ApplicationARN is a required field
2801	ApplicationARN *string `min:"1" type:"string" required:"true"`
2802
2803	// Name of the application.
2804	//
2805	// ApplicationName is a required field
2806	ApplicationName *string `min:"1" type:"string" required:"true"`
2807
2808	// Status of the application.
2809	//
2810	// ApplicationStatus is a required field
2811	ApplicationStatus *string `type:"string" required:"true" enum:"ApplicationStatus"`
2812}
2813
2814// String returns the string representation
2815func (s ApplicationSummary) String() string {
2816	return awsutil.Prettify(s)
2817}
2818
2819// GoString returns the string representation
2820func (s ApplicationSummary) GoString() string {
2821	return s.String()
2822}
2823
2824// SetApplicationARN sets the ApplicationARN field's value.
2825func (s *ApplicationSummary) SetApplicationARN(v string) *ApplicationSummary {
2826	s.ApplicationARN = &v
2827	return s
2828}
2829
2830// SetApplicationName sets the ApplicationName field's value.
2831func (s *ApplicationSummary) SetApplicationName(v string) *ApplicationSummary {
2832	s.ApplicationName = &v
2833	return s
2834}
2835
2836// SetApplicationStatus sets the ApplicationStatus field's value.
2837func (s *ApplicationSummary) SetApplicationStatus(v string) *ApplicationSummary {
2838	s.ApplicationStatus = &v
2839	return s
2840}
2841
2842// Describes updates to apply to an existing Amazon Kinesis Analytics application.
2843type ApplicationUpdate struct {
2844	_ struct{} `type:"structure"`
2845
2846	// Describes application code updates.
2847	ApplicationCodeUpdate *string `type:"string"`
2848
2849	// Describes application CloudWatch logging option updates.
2850	CloudWatchLoggingOptionUpdates []*CloudWatchLoggingOptionUpdate `type:"list"`
2851
2852	// Describes application input configuration updates.
2853	InputUpdates []*InputUpdate `type:"list"`
2854
2855	// Describes application output configuration updates.
2856	OutputUpdates []*OutputUpdate `type:"list"`
2857
2858	// Describes application reference data source updates.
2859	ReferenceDataSourceUpdates []*ReferenceDataSourceUpdate `type:"list"`
2860}
2861
2862// String returns the string representation
2863func (s ApplicationUpdate) String() string {
2864	return awsutil.Prettify(s)
2865}
2866
2867// GoString returns the string representation
2868func (s ApplicationUpdate) GoString() string {
2869	return s.String()
2870}
2871
2872// Validate inspects the fields of the type to determine if they are valid.
2873func (s *ApplicationUpdate) Validate() error {
2874	invalidParams := request.ErrInvalidParams{Context: "ApplicationUpdate"}
2875	if s.CloudWatchLoggingOptionUpdates != nil {
2876		for i, v := range s.CloudWatchLoggingOptionUpdates {
2877			if v == nil {
2878				continue
2879			}
2880			if err := v.Validate(); err != nil {
2881				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CloudWatchLoggingOptionUpdates", i), err.(request.ErrInvalidParams))
2882			}
2883		}
2884	}
2885	if s.InputUpdates != nil {
2886		for i, v := range s.InputUpdates {
2887			if v == nil {
2888				continue
2889			}
2890			if err := v.Validate(); err != nil {
2891				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputUpdates", i), err.(request.ErrInvalidParams))
2892			}
2893		}
2894	}
2895	if s.OutputUpdates != nil {
2896		for i, v := range s.OutputUpdates {
2897			if v == nil {
2898				continue
2899			}
2900			if err := v.Validate(); err != nil {
2901				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "OutputUpdates", i), err.(request.ErrInvalidParams))
2902			}
2903		}
2904	}
2905	if s.ReferenceDataSourceUpdates != nil {
2906		for i, v := range s.ReferenceDataSourceUpdates {
2907			if v == nil {
2908				continue
2909			}
2910			if err := v.Validate(); err != nil {
2911				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ReferenceDataSourceUpdates", i), err.(request.ErrInvalidParams))
2912			}
2913		}
2914	}
2915
2916	if invalidParams.Len() > 0 {
2917		return invalidParams
2918	}
2919	return nil
2920}
2921
2922// SetApplicationCodeUpdate sets the ApplicationCodeUpdate field's value.
2923func (s *ApplicationUpdate) SetApplicationCodeUpdate(v string) *ApplicationUpdate {
2924	s.ApplicationCodeUpdate = &v
2925	return s
2926}
2927
2928// SetCloudWatchLoggingOptionUpdates sets the CloudWatchLoggingOptionUpdates field's value.
2929func (s *ApplicationUpdate) SetCloudWatchLoggingOptionUpdates(v []*CloudWatchLoggingOptionUpdate) *ApplicationUpdate {
2930	s.CloudWatchLoggingOptionUpdates = v
2931	return s
2932}
2933
2934// SetInputUpdates sets the InputUpdates field's value.
2935func (s *ApplicationUpdate) SetInputUpdates(v []*InputUpdate) *ApplicationUpdate {
2936	s.InputUpdates = v
2937	return s
2938}
2939
2940// SetOutputUpdates sets the OutputUpdates field's value.
2941func (s *ApplicationUpdate) SetOutputUpdates(v []*OutputUpdate) *ApplicationUpdate {
2942	s.OutputUpdates = v
2943	return s
2944}
2945
2946// SetReferenceDataSourceUpdates sets the ReferenceDataSourceUpdates field's value.
2947func (s *ApplicationUpdate) SetReferenceDataSourceUpdates(v []*ReferenceDataSourceUpdate) *ApplicationUpdate {
2948	s.ReferenceDataSourceUpdates = v
2949	return s
2950}
2951
2952// Provides additional mapping information when the record format uses delimiters,
2953// such as CSV. For example, the following sample records use CSV format, where
2954// the records use the '\n' as the row delimiter and a comma (",") as the column
2955// delimiter:
2956//
2957// "name1", "address1"
2958//
2959// "name2", "address2"
2960type CSVMappingParameters struct {
2961	_ struct{} `type:"structure"`
2962
2963	// Column delimiter. For example, in a CSV format, a comma (",") is the typical
2964	// column delimiter.
2965	//
2966	// RecordColumnDelimiter is a required field
2967	RecordColumnDelimiter *string `min:"1" type:"string" required:"true"`
2968
2969	// Row delimiter. For example, in a CSV format, '\n' is the typical row delimiter.
2970	//
2971	// RecordRowDelimiter is a required field
2972	RecordRowDelimiter *string `min:"1" type:"string" required:"true"`
2973}
2974
2975// String returns the string representation
2976func (s CSVMappingParameters) String() string {
2977	return awsutil.Prettify(s)
2978}
2979
2980// GoString returns the string representation
2981func (s CSVMappingParameters) GoString() string {
2982	return s.String()
2983}
2984
2985// Validate inspects the fields of the type to determine if they are valid.
2986func (s *CSVMappingParameters) Validate() error {
2987	invalidParams := request.ErrInvalidParams{Context: "CSVMappingParameters"}
2988	if s.RecordColumnDelimiter == nil {
2989		invalidParams.Add(request.NewErrParamRequired("RecordColumnDelimiter"))
2990	}
2991	if s.RecordColumnDelimiter != nil && len(*s.RecordColumnDelimiter) < 1 {
2992		invalidParams.Add(request.NewErrParamMinLen("RecordColumnDelimiter", 1))
2993	}
2994	if s.RecordRowDelimiter == nil {
2995		invalidParams.Add(request.NewErrParamRequired("RecordRowDelimiter"))
2996	}
2997	if s.RecordRowDelimiter != nil && len(*s.RecordRowDelimiter) < 1 {
2998		invalidParams.Add(request.NewErrParamMinLen("RecordRowDelimiter", 1))
2999	}
3000
3001	if invalidParams.Len() > 0 {
3002		return invalidParams
3003	}
3004	return nil
3005}
3006
3007// SetRecordColumnDelimiter sets the RecordColumnDelimiter field's value.
3008func (s *CSVMappingParameters) SetRecordColumnDelimiter(v string) *CSVMappingParameters {
3009	s.RecordColumnDelimiter = &v
3010	return s
3011}
3012
3013// SetRecordRowDelimiter sets the RecordRowDelimiter field's value.
3014func (s *CSVMappingParameters) SetRecordRowDelimiter(v string) *CSVMappingParameters {
3015	s.RecordRowDelimiter = &v
3016	return s
3017}
3018
3019// Provides a description of CloudWatch logging options, including the log stream
3020// Amazon Resource Name (ARN) and the role ARN.
3021type CloudWatchLoggingOption struct {
3022	_ struct{} `type:"structure"`
3023
3024	// ARN of the CloudWatch log to receive application messages.
3025	//
3026	// LogStreamARN is a required field
3027	LogStreamARN *string `min:"1" type:"string" required:"true"`
3028
3029	// IAM ARN of the role to use to send application messages. Note: To write application
3030	// messages to CloudWatch, the IAM role that is used must have the PutLogEvents
3031	// policy action enabled.
3032	//
3033	// RoleARN is a required field
3034	RoleARN *string `min:"1" type:"string" required:"true"`
3035}
3036
3037// String returns the string representation
3038func (s CloudWatchLoggingOption) String() string {
3039	return awsutil.Prettify(s)
3040}
3041
3042// GoString returns the string representation
3043func (s CloudWatchLoggingOption) GoString() string {
3044	return s.String()
3045}
3046
3047// Validate inspects the fields of the type to determine if they are valid.
3048func (s *CloudWatchLoggingOption) Validate() error {
3049	invalidParams := request.ErrInvalidParams{Context: "CloudWatchLoggingOption"}
3050	if s.LogStreamARN == nil {
3051		invalidParams.Add(request.NewErrParamRequired("LogStreamARN"))
3052	}
3053	if s.LogStreamARN != nil && len(*s.LogStreamARN) < 1 {
3054		invalidParams.Add(request.NewErrParamMinLen("LogStreamARN", 1))
3055	}
3056	if s.RoleARN == nil {
3057		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
3058	}
3059	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
3060		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
3061	}
3062
3063	if invalidParams.Len() > 0 {
3064		return invalidParams
3065	}
3066	return nil
3067}
3068
3069// SetLogStreamARN sets the LogStreamARN field's value.
3070func (s *CloudWatchLoggingOption) SetLogStreamARN(v string) *CloudWatchLoggingOption {
3071	s.LogStreamARN = &v
3072	return s
3073}
3074
3075// SetRoleARN sets the RoleARN field's value.
3076func (s *CloudWatchLoggingOption) SetRoleARN(v string) *CloudWatchLoggingOption {
3077	s.RoleARN = &v
3078	return s
3079}
3080
3081// Description of the CloudWatch logging option.
3082type CloudWatchLoggingOptionDescription struct {
3083	_ struct{} `type:"structure"`
3084
3085	// ID of the CloudWatch logging option description.
3086	CloudWatchLoggingOptionId *string `min:"1" type:"string"`
3087
3088	// ARN of the CloudWatch log to receive application messages.
3089	//
3090	// LogStreamARN is a required field
3091	LogStreamARN *string `min:"1" type:"string" required:"true"`
3092
3093	// IAM ARN of the role to use to send application messages. Note: To write application
3094	// messages to CloudWatch, the IAM role used must have the PutLogEvents policy
3095	// action enabled.
3096	//
3097	// RoleARN is a required field
3098	RoleARN *string `min:"1" type:"string" required:"true"`
3099}
3100
3101// String returns the string representation
3102func (s CloudWatchLoggingOptionDescription) String() string {
3103	return awsutil.Prettify(s)
3104}
3105
3106// GoString returns the string representation
3107func (s CloudWatchLoggingOptionDescription) GoString() string {
3108	return s.String()
3109}
3110
3111// SetCloudWatchLoggingOptionId sets the CloudWatchLoggingOptionId field's value.
3112func (s *CloudWatchLoggingOptionDescription) SetCloudWatchLoggingOptionId(v string) *CloudWatchLoggingOptionDescription {
3113	s.CloudWatchLoggingOptionId = &v
3114	return s
3115}
3116
3117// SetLogStreamARN sets the LogStreamARN field's value.
3118func (s *CloudWatchLoggingOptionDescription) SetLogStreamARN(v string) *CloudWatchLoggingOptionDescription {
3119	s.LogStreamARN = &v
3120	return s
3121}
3122
3123// SetRoleARN sets the RoleARN field's value.
3124func (s *CloudWatchLoggingOptionDescription) SetRoleARN(v string) *CloudWatchLoggingOptionDescription {
3125	s.RoleARN = &v
3126	return s
3127}
3128
3129// Describes CloudWatch logging option updates.
3130type CloudWatchLoggingOptionUpdate struct {
3131	_ struct{} `type:"structure"`
3132
3133	// ID of the CloudWatch logging option to update
3134	//
3135	// CloudWatchLoggingOptionId is a required field
3136	CloudWatchLoggingOptionId *string `min:"1" type:"string" required:"true"`
3137
3138	// ARN of the CloudWatch log to receive application messages.
3139	LogStreamARNUpdate *string `min:"1" type:"string"`
3140
3141	// IAM ARN of the role to use to send application messages. Note: To write application
3142	// messages to CloudWatch, the IAM role used must have the PutLogEvents policy
3143	// action enabled.
3144	RoleARNUpdate *string `min:"1" type:"string"`
3145}
3146
3147// String returns the string representation
3148func (s CloudWatchLoggingOptionUpdate) String() string {
3149	return awsutil.Prettify(s)
3150}
3151
3152// GoString returns the string representation
3153func (s CloudWatchLoggingOptionUpdate) GoString() string {
3154	return s.String()
3155}
3156
3157// Validate inspects the fields of the type to determine if they are valid.
3158func (s *CloudWatchLoggingOptionUpdate) Validate() error {
3159	invalidParams := request.ErrInvalidParams{Context: "CloudWatchLoggingOptionUpdate"}
3160	if s.CloudWatchLoggingOptionId == nil {
3161		invalidParams.Add(request.NewErrParamRequired("CloudWatchLoggingOptionId"))
3162	}
3163	if s.CloudWatchLoggingOptionId != nil && len(*s.CloudWatchLoggingOptionId) < 1 {
3164		invalidParams.Add(request.NewErrParamMinLen("CloudWatchLoggingOptionId", 1))
3165	}
3166	if s.LogStreamARNUpdate != nil && len(*s.LogStreamARNUpdate) < 1 {
3167		invalidParams.Add(request.NewErrParamMinLen("LogStreamARNUpdate", 1))
3168	}
3169	if s.RoleARNUpdate != nil && len(*s.RoleARNUpdate) < 1 {
3170		invalidParams.Add(request.NewErrParamMinLen("RoleARNUpdate", 1))
3171	}
3172
3173	if invalidParams.Len() > 0 {
3174		return invalidParams
3175	}
3176	return nil
3177}
3178
3179// SetCloudWatchLoggingOptionId sets the CloudWatchLoggingOptionId field's value.
3180func (s *CloudWatchLoggingOptionUpdate) SetCloudWatchLoggingOptionId(v string) *CloudWatchLoggingOptionUpdate {
3181	s.CloudWatchLoggingOptionId = &v
3182	return s
3183}
3184
3185// SetLogStreamARNUpdate sets the LogStreamARNUpdate field's value.
3186func (s *CloudWatchLoggingOptionUpdate) SetLogStreamARNUpdate(v string) *CloudWatchLoggingOptionUpdate {
3187	s.LogStreamARNUpdate = &v
3188	return s
3189}
3190
3191// SetRoleARNUpdate sets the RoleARNUpdate field's value.
3192func (s *CloudWatchLoggingOptionUpdate) SetRoleARNUpdate(v string) *CloudWatchLoggingOptionUpdate {
3193	s.RoleARNUpdate = &v
3194	return s
3195}
3196
3197// TBD
3198type CreateApplicationInput struct {
3199	_ struct{} `type:"structure"`
3200
3201	// One or more SQL statements that read input data, transform it, and generate
3202	// output. For example, you can write a SQL statement that reads data from one
3203	// in-application stream, generates a running average of the number of advertisement
3204	// clicks by vendor, and insert resulting rows in another in-application stream
3205	// using pumps. For more information about the typical pattern, see Application
3206	// Code (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-app-code.html).
3207	//
3208	// You can provide such series of SQL statements, where output of one statement
3209	// can be used as the input for the next statement. You store intermediate results
3210	// by creating in-application streams and pumps.
3211	//
3212	// Note that the application code must create the streams with names specified
3213	// in the Outputs. For example, if your Outputs defines output streams named
3214	// ExampleOutputStream1 and ExampleOutputStream2, then your application code
3215	// must create these streams.
3216	ApplicationCode *string `type:"string"`
3217
3218	// Summary description of the application.
3219	ApplicationDescription *string `type:"string"`
3220
3221	// Name of your Amazon Kinesis Analytics application (for example, sample-app).
3222	//
3223	// ApplicationName is a required field
3224	ApplicationName *string `min:"1" type:"string" required:"true"`
3225
3226	// Use this parameter to configure a CloudWatch log stream to monitor application
3227	// configuration errors. For more information, see Working with Amazon CloudWatch
3228	// Logs (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/cloudwatch-logs.html).
3229	CloudWatchLoggingOptions []*CloudWatchLoggingOption `type:"list"`
3230
3231	// Use this parameter to configure the application input.
3232	//
3233	// You can configure your application to receive input from a single streaming
3234	// source. In this configuration, you map this streaming source to an in-application
3235	// stream that is created. Your application code can then query the in-application
3236	// stream like a table (you can think of it as a constantly updating table).
3237	//
3238	// For the streaming source, you provide its Amazon Resource Name (ARN) and
3239	// format of data on the stream (for example, JSON, CSV, etc.). You also must
3240	// provide an IAM role that Amazon Kinesis Analytics can assume to read this
3241	// stream on your behalf.
3242	//
3243	// To create the in-application stream, you need to specify a schema to transform
3244	// your data into a schematized version used in SQL. In the schema, you provide
3245	// the necessary mapping of the data elements in the streaming source to record
3246	// columns in the in-app stream.
3247	Inputs []*Input `type:"list"`
3248
3249	// You can configure application output to write data from any of the in-application
3250	// streams to up to three destinations.
3251	//
3252	// These destinations can be Amazon Kinesis streams, Amazon Kinesis Firehose
3253	// delivery streams, AWS Lambda destinations, or any combination of the three.
3254	//
3255	// In the configuration, you specify the in-application stream name, the destination
3256	// stream or Lambda function Amazon Resource Name (ARN), and the format to use
3257	// when writing data. You must also provide an IAM role that Amazon Kinesis
3258	// Analytics can assume to write to the destination stream or Lambda function
3259	// on your behalf.
3260	//
3261	// In the output configuration, you also provide the output stream or Lambda
3262	// function ARN. For stream destinations, you provide the format of data in
3263	// the stream (for example, JSON, CSV). You also must provide an IAM role that
3264	// Amazon Kinesis Analytics can assume to write to the stream or Lambda function
3265	// on your behalf.
3266	Outputs []*Output `type:"list"`
3267
3268	// A list of one or more tags to assign to the application. A tag is a key-value
3269	// pair that identifies an application. Note that the maximum number of application
3270	// tags includes system tags. The maximum number of user-defined application
3271	// tags is 50. For more information, see Using Tagging (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-tagging.html).
3272	Tags []*Tag `min:"1" type:"list"`
3273}
3274
3275// String returns the string representation
3276func (s CreateApplicationInput) String() string {
3277	return awsutil.Prettify(s)
3278}
3279
3280// GoString returns the string representation
3281func (s CreateApplicationInput) GoString() string {
3282	return s.String()
3283}
3284
3285// Validate inspects the fields of the type to determine if they are valid.
3286func (s *CreateApplicationInput) Validate() error {
3287	invalidParams := request.ErrInvalidParams{Context: "CreateApplicationInput"}
3288	if s.ApplicationName == nil {
3289		invalidParams.Add(request.NewErrParamRequired("ApplicationName"))
3290	}
3291	if s.ApplicationName != nil && len(*s.ApplicationName) < 1 {
3292		invalidParams.Add(request.NewErrParamMinLen("ApplicationName", 1))
3293	}
3294	if s.Tags != nil && len(s.Tags) < 1 {
3295		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
3296	}
3297	if s.CloudWatchLoggingOptions != nil {
3298		for i, v := range s.CloudWatchLoggingOptions {
3299			if v == nil {
3300				continue
3301			}
3302			if err := v.Validate(); err != nil {
3303				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CloudWatchLoggingOptions", i), err.(request.ErrInvalidParams))
3304			}
3305		}
3306	}
3307	if s.Inputs != nil {
3308		for i, v := range s.Inputs {
3309			if v == nil {
3310				continue
3311			}
3312			if err := v.Validate(); err != nil {
3313				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Inputs", i), err.(request.ErrInvalidParams))
3314			}
3315		}
3316	}
3317	if s.Outputs != nil {
3318		for i, v := range s.Outputs {
3319			if v == nil {
3320				continue
3321			}
3322			if err := v.Validate(); err != nil {
3323				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Outputs", i), err.(request.ErrInvalidParams))
3324			}
3325		}
3326	}
3327	if s.Tags != nil {
3328		for i, v := range s.Tags {
3329			if v == nil {
3330				continue
3331			}
3332			if err := v.Validate(); err != nil {
3333				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3334			}
3335		}
3336	}
3337
3338	if invalidParams.Len() > 0 {
3339		return invalidParams
3340	}
3341	return nil
3342}
3343
3344// SetApplicationCode sets the ApplicationCode field's value.
3345func (s *CreateApplicationInput) SetApplicationCode(v string) *CreateApplicationInput {
3346	s.ApplicationCode = &v
3347	return s
3348}
3349
3350// SetApplicationDescription sets the ApplicationDescription field's value.
3351func (s *CreateApplicationInput) SetApplicationDescription(v string) *CreateApplicationInput {
3352	s.ApplicationDescription = &v
3353	return s
3354}
3355
3356// SetApplicationName sets the ApplicationName field's value.
3357func (s *CreateApplicationInput) SetApplicationName(v string) *CreateApplicationInput {
3358	s.ApplicationName = &v
3359	return s
3360}
3361
3362// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
3363func (s *CreateApplicationInput) SetCloudWatchLoggingOptions(v []*CloudWatchLoggingOption) *CreateApplicationInput {
3364	s.CloudWatchLoggingOptions = v
3365	return s
3366}
3367
3368// SetInputs sets the Inputs field's value.
3369func (s *CreateApplicationInput) SetInputs(v []*Input) *CreateApplicationInput {
3370	s.Inputs = v
3371	return s
3372}
3373
3374// SetOutputs sets the Outputs field's value.
3375func (s *CreateApplicationInput) SetOutputs(v []*Output) *CreateApplicationInput {
3376	s.Outputs = v
3377	return s
3378}
3379
3380// SetTags sets the Tags field's value.
3381func (s *CreateApplicationInput) SetTags(v []*Tag) *CreateApplicationInput {
3382	s.Tags = v
3383	return s
3384}
3385
3386// TBD
3387type CreateApplicationOutput struct {
3388	_ struct{} `type:"structure"`
3389
3390	// In response to your CreateApplication request, Amazon Kinesis Analytics returns
3391	// a response with a summary of the application it created, including the application
3392	// Amazon Resource Name (ARN), name, and status.
3393	//
3394	// ApplicationSummary is a required field
3395	ApplicationSummary *ApplicationSummary `type:"structure" required:"true"`
3396}
3397
3398// String returns the string representation
3399func (s CreateApplicationOutput) String() string {
3400	return awsutil.Prettify(s)
3401}
3402
3403// GoString returns the string representation
3404func (s CreateApplicationOutput) GoString() string {
3405	return s.String()
3406}
3407
3408// SetApplicationSummary sets the ApplicationSummary field's value.
3409func (s *CreateApplicationOutput) SetApplicationSummary(v *ApplicationSummary) *CreateApplicationOutput {
3410	s.ApplicationSummary = v
3411	return s
3412}
3413
3414type DeleteApplicationCloudWatchLoggingOptionInput struct {
3415	_ struct{} `type:"structure"`
3416
3417	// The Kinesis Analytics application name.
3418	//
3419	// ApplicationName is a required field
3420	ApplicationName *string `min:"1" type:"string" required:"true"`
3421
3422	// The CloudWatchLoggingOptionId of the CloudWatch logging option to delete.
3423	// You can get the CloudWatchLoggingOptionId by using the DescribeApplication
3424	// (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html)
3425	// operation.
3426	//
3427	// CloudWatchLoggingOptionId is a required field
3428	CloudWatchLoggingOptionId *string `min:"1" type:"string" required:"true"`
3429
3430	// The version ID of the Kinesis Analytics application.
3431	//
3432	// CurrentApplicationVersionId is a required field
3433	CurrentApplicationVersionId *int64 `min:"1" type:"long" required:"true"`
3434}
3435
3436// String returns the string representation
3437func (s DeleteApplicationCloudWatchLoggingOptionInput) String() string {
3438	return awsutil.Prettify(s)
3439}
3440
3441// GoString returns the string representation
3442func (s DeleteApplicationCloudWatchLoggingOptionInput) GoString() string {
3443	return s.String()
3444}
3445
3446// Validate inspects the fields of the type to determine if they are valid.
3447func (s *DeleteApplicationCloudWatchLoggingOptionInput) Validate() error {
3448	invalidParams := request.ErrInvalidParams{Context: "DeleteApplicationCloudWatchLoggingOptionInput"}
3449	if s.ApplicationName == nil {
3450		invalidParams.Add(request.NewErrParamRequired("ApplicationName"))
3451	}
3452	if s.ApplicationName != nil && len(*s.ApplicationName) < 1 {
3453		invalidParams.Add(request.NewErrParamMinLen("ApplicationName", 1))
3454	}
3455	if s.CloudWatchLoggingOptionId == nil {
3456		invalidParams.Add(request.NewErrParamRequired("CloudWatchLoggingOptionId"))
3457	}
3458	if s.CloudWatchLoggingOptionId != nil && len(*s.CloudWatchLoggingOptionId) < 1 {
3459		invalidParams.Add(request.NewErrParamMinLen("CloudWatchLoggingOptionId", 1))
3460	}
3461	if s.CurrentApplicationVersionId == nil {
3462		invalidParams.Add(request.NewErrParamRequired("CurrentApplicationVersionId"))
3463	}
3464	if s.CurrentApplicationVersionId != nil && *s.CurrentApplicationVersionId < 1 {
3465		invalidParams.Add(request.NewErrParamMinValue("CurrentApplicationVersionId", 1))
3466	}
3467
3468	if invalidParams.Len() > 0 {
3469		return invalidParams
3470	}
3471	return nil
3472}
3473
3474// SetApplicationName sets the ApplicationName field's value.
3475func (s *DeleteApplicationCloudWatchLoggingOptionInput) SetApplicationName(v string) *DeleteApplicationCloudWatchLoggingOptionInput {
3476	s.ApplicationName = &v
3477	return s
3478}
3479
3480// SetCloudWatchLoggingOptionId sets the CloudWatchLoggingOptionId field's value.
3481func (s *DeleteApplicationCloudWatchLoggingOptionInput) SetCloudWatchLoggingOptionId(v string) *DeleteApplicationCloudWatchLoggingOptionInput {
3482	s.CloudWatchLoggingOptionId = &v
3483	return s
3484}
3485
3486// SetCurrentApplicationVersionId sets the CurrentApplicationVersionId field's value.
3487func (s *DeleteApplicationCloudWatchLoggingOptionInput) SetCurrentApplicationVersionId(v int64) *DeleteApplicationCloudWatchLoggingOptionInput {
3488	s.CurrentApplicationVersionId = &v
3489	return s
3490}
3491
3492type DeleteApplicationCloudWatchLoggingOptionOutput struct {
3493	_ struct{} `type:"structure"`
3494}
3495
3496// String returns the string representation
3497func (s DeleteApplicationCloudWatchLoggingOptionOutput) String() string {
3498	return awsutil.Prettify(s)
3499}
3500
3501// GoString returns the string representation
3502func (s DeleteApplicationCloudWatchLoggingOptionOutput) GoString() string {
3503	return s.String()
3504}
3505
3506type DeleteApplicationInput struct {
3507	_ struct{} `type:"structure"`
3508
3509	// Name of the Amazon Kinesis Analytics application to delete.
3510	//
3511	// ApplicationName is a required field
3512	ApplicationName *string `min:"1" type:"string" required:"true"`
3513
3514	// You can use the DescribeApplication operation to get this value.
3515	//
3516	// CreateTimestamp is a required field
3517	CreateTimestamp *time.Time `type:"timestamp" required:"true"`
3518}
3519
3520// String returns the string representation
3521func (s DeleteApplicationInput) String() string {
3522	return awsutil.Prettify(s)
3523}
3524
3525// GoString returns the string representation
3526func (s DeleteApplicationInput) GoString() string {
3527	return s.String()
3528}
3529
3530// Validate inspects the fields of the type to determine if they are valid.
3531func (s *DeleteApplicationInput) Validate() error {
3532	invalidParams := request.ErrInvalidParams{Context: "DeleteApplicationInput"}
3533	if s.ApplicationName == nil {
3534		invalidParams.Add(request.NewErrParamRequired("ApplicationName"))
3535	}
3536	if s.ApplicationName != nil && len(*s.ApplicationName) < 1 {
3537		invalidParams.Add(request.NewErrParamMinLen("ApplicationName", 1))
3538	}
3539	if s.CreateTimestamp == nil {
3540		invalidParams.Add(request.NewErrParamRequired("CreateTimestamp"))
3541	}
3542
3543	if invalidParams.Len() > 0 {
3544		return invalidParams
3545	}
3546	return nil
3547}
3548
3549// SetApplicationName sets the ApplicationName field's value.
3550func (s *DeleteApplicationInput) SetApplicationName(v string) *DeleteApplicationInput {
3551	s.ApplicationName = &v
3552	return s
3553}
3554
3555// SetCreateTimestamp sets the CreateTimestamp field's value.
3556func (s *DeleteApplicationInput) SetCreateTimestamp(v time.Time) *DeleteApplicationInput {
3557	s.CreateTimestamp = &v
3558	return s
3559}
3560
3561type DeleteApplicationInputProcessingConfigurationInput struct {
3562	_ struct{} `type:"structure"`
3563
3564	// The Kinesis Analytics application name.
3565	//
3566	// ApplicationName is a required field
3567	ApplicationName *string `min:"1" type:"string" required:"true"`
3568
3569	// The version ID of the Kinesis Analytics application.
3570	//
3571	// CurrentApplicationVersionId is a required field
3572	CurrentApplicationVersionId *int64 `min:"1" type:"long" required:"true"`
3573
3574	// The ID of the input configuration from which to delete the input processing
3575	// configuration. You can get a list of the input IDs for an application by
3576	// using the DescribeApplication (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html)
3577	// operation.
3578	//
3579	// InputId is a required field
3580	InputId *string `min:"1" type:"string" required:"true"`
3581}
3582
3583// String returns the string representation
3584func (s DeleteApplicationInputProcessingConfigurationInput) String() string {
3585	return awsutil.Prettify(s)
3586}
3587
3588// GoString returns the string representation
3589func (s DeleteApplicationInputProcessingConfigurationInput) GoString() string {
3590	return s.String()
3591}
3592
3593// Validate inspects the fields of the type to determine if they are valid.
3594func (s *DeleteApplicationInputProcessingConfigurationInput) Validate() error {
3595	invalidParams := request.ErrInvalidParams{Context: "DeleteApplicationInputProcessingConfigurationInput"}
3596	if s.ApplicationName == nil {
3597		invalidParams.Add(request.NewErrParamRequired("ApplicationName"))
3598	}
3599	if s.ApplicationName != nil && len(*s.ApplicationName) < 1 {
3600		invalidParams.Add(request.NewErrParamMinLen("ApplicationName", 1))
3601	}
3602	if s.CurrentApplicationVersionId == nil {
3603		invalidParams.Add(request.NewErrParamRequired("CurrentApplicationVersionId"))
3604	}
3605	if s.CurrentApplicationVersionId != nil && *s.CurrentApplicationVersionId < 1 {
3606		invalidParams.Add(request.NewErrParamMinValue("CurrentApplicationVersionId", 1))
3607	}
3608	if s.InputId == nil {
3609		invalidParams.Add(request.NewErrParamRequired("InputId"))
3610	}
3611	if s.InputId != nil && len(*s.InputId) < 1 {
3612		invalidParams.Add(request.NewErrParamMinLen("InputId", 1))
3613	}
3614
3615	if invalidParams.Len() > 0 {
3616		return invalidParams
3617	}
3618	return nil
3619}
3620
3621// SetApplicationName sets the ApplicationName field's value.
3622func (s *DeleteApplicationInputProcessingConfigurationInput) SetApplicationName(v string) *DeleteApplicationInputProcessingConfigurationInput {
3623	s.ApplicationName = &v
3624	return s
3625}
3626
3627// SetCurrentApplicationVersionId sets the CurrentApplicationVersionId field's value.
3628func (s *DeleteApplicationInputProcessingConfigurationInput) SetCurrentApplicationVersionId(v int64) *DeleteApplicationInputProcessingConfigurationInput {
3629	s.CurrentApplicationVersionId = &v
3630	return s
3631}
3632
3633// SetInputId sets the InputId field's value.
3634func (s *DeleteApplicationInputProcessingConfigurationInput) SetInputId(v string) *DeleteApplicationInputProcessingConfigurationInput {
3635	s.InputId = &v
3636	return s
3637}
3638
3639type DeleteApplicationInputProcessingConfigurationOutput struct {
3640	_ struct{} `type:"structure"`
3641}
3642
3643// String returns the string representation
3644func (s DeleteApplicationInputProcessingConfigurationOutput) String() string {
3645	return awsutil.Prettify(s)
3646}
3647
3648// GoString returns the string representation
3649func (s DeleteApplicationInputProcessingConfigurationOutput) GoString() string {
3650	return s.String()
3651}
3652
3653type DeleteApplicationOutput struct {
3654	_ struct{} `type:"structure"`
3655}
3656
3657// String returns the string representation
3658func (s DeleteApplicationOutput) String() string {
3659	return awsutil.Prettify(s)
3660}
3661
3662// GoString returns the string representation
3663func (s DeleteApplicationOutput) GoString() string {
3664	return s.String()
3665}
3666
3667type DeleteApplicationOutputInput struct {
3668	_ struct{} `type:"structure"`
3669
3670	// Amazon Kinesis Analytics application name.
3671	//
3672	// ApplicationName is a required field
3673	ApplicationName *string `min:"1" type:"string" required:"true"`
3674
3675	// Amazon Kinesis Analytics application version. You can use the DescribeApplication
3676	// (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html)
3677	// operation to get the current application version. If the version specified
3678	// is not the current version, the ConcurrentModificationException is returned.
3679	//
3680	// CurrentApplicationVersionId is a required field
3681	CurrentApplicationVersionId *int64 `min:"1" type:"long" required:"true"`
3682
3683	// The ID of the configuration to delete. Each output configuration that is
3684	// added to the application, either when the application is created or later
3685	// using the AddApplicationOutput (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_AddApplicationOutput.html)
3686	// operation, has a unique ID. You need to provide the ID to uniquely identify
3687	// the output configuration that you want to delete from the application configuration.
3688	// You can use the DescribeApplication (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html)
3689	// operation to get the specific OutputId.
3690	//
3691	// OutputId is a required field
3692	OutputId *string `min:"1" type:"string" required:"true"`
3693}
3694
3695// String returns the string representation
3696func (s DeleteApplicationOutputInput) String() string {
3697	return awsutil.Prettify(s)
3698}
3699
3700// GoString returns the string representation
3701func (s DeleteApplicationOutputInput) GoString() string {
3702	return s.String()
3703}
3704
3705// Validate inspects the fields of the type to determine if they are valid.
3706func (s *DeleteApplicationOutputInput) Validate() error {
3707	invalidParams := request.ErrInvalidParams{Context: "DeleteApplicationOutputInput"}
3708	if s.ApplicationName == nil {
3709		invalidParams.Add(request.NewErrParamRequired("ApplicationName"))
3710	}
3711	if s.ApplicationName != nil && len(*s.ApplicationName) < 1 {
3712		invalidParams.Add(request.NewErrParamMinLen("ApplicationName", 1))
3713	}
3714	if s.CurrentApplicationVersionId == nil {
3715		invalidParams.Add(request.NewErrParamRequired("CurrentApplicationVersionId"))
3716	}
3717	if s.CurrentApplicationVersionId != nil && *s.CurrentApplicationVersionId < 1 {
3718		invalidParams.Add(request.NewErrParamMinValue("CurrentApplicationVersionId", 1))
3719	}
3720	if s.OutputId == nil {
3721		invalidParams.Add(request.NewErrParamRequired("OutputId"))
3722	}
3723	if s.OutputId != nil && len(*s.OutputId) < 1 {
3724		invalidParams.Add(request.NewErrParamMinLen("OutputId", 1))
3725	}
3726
3727	if invalidParams.Len() > 0 {
3728		return invalidParams
3729	}
3730	return nil
3731}
3732
3733// SetApplicationName sets the ApplicationName field's value.
3734func (s *DeleteApplicationOutputInput) SetApplicationName(v string) *DeleteApplicationOutputInput {
3735	s.ApplicationName = &v
3736	return s
3737}
3738
3739// SetCurrentApplicationVersionId sets the CurrentApplicationVersionId field's value.
3740func (s *DeleteApplicationOutputInput) SetCurrentApplicationVersionId(v int64) *DeleteApplicationOutputInput {
3741	s.CurrentApplicationVersionId = &v
3742	return s
3743}
3744
3745// SetOutputId sets the OutputId field's value.
3746func (s *DeleteApplicationOutputInput) SetOutputId(v string) *DeleteApplicationOutputInput {
3747	s.OutputId = &v
3748	return s
3749}
3750
3751type DeleteApplicationOutputOutput struct {
3752	_ struct{} `type:"structure"`
3753}
3754
3755// String returns the string representation
3756func (s DeleteApplicationOutputOutput) String() string {
3757	return awsutil.Prettify(s)
3758}
3759
3760// GoString returns the string representation
3761func (s DeleteApplicationOutputOutput) GoString() string {
3762	return s.String()
3763}
3764
3765type DeleteApplicationReferenceDataSourceInput struct {
3766	_ struct{} `type:"structure"`
3767
3768	// Name of an existing application.
3769	//
3770	// ApplicationName is a required field
3771	ApplicationName *string `min:"1" type:"string" required:"true"`
3772
3773	// Version of the application. You can use the DescribeApplication (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html)
3774	// operation to get the current application version. If the version specified
3775	// is not the current version, the ConcurrentModificationException is returned.
3776	//
3777	// CurrentApplicationVersionId is a required field
3778	CurrentApplicationVersionId *int64 `min:"1" type:"long" required:"true"`
3779
3780	// ID of the reference data source. When you add a reference data source to
3781	// your application using the AddApplicationReferenceDataSource (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_AddApplicationReferenceDataSource.html),
3782	// Amazon Kinesis Analytics assigns an ID. You can use the DescribeApplication
3783	// (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html)
3784	// operation to get the reference ID.
3785	//
3786	// ReferenceId is a required field
3787	ReferenceId *string `min:"1" type:"string" required:"true"`
3788}
3789
3790// String returns the string representation
3791func (s DeleteApplicationReferenceDataSourceInput) String() string {
3792	return awsutil.Prettify(s)
3793}
3794
3795// GoString returns the string representation
3796func (s DeleteApplicationReferenceDataSourceInput) GoString() string {
3797	return s.String()
3798}
3799
3800// Validate inspects the fields of the type to determine if they are valid.
3801func (s *DeleteApplicationReferenceDataSourceInput) Validate() error {
3802	invalidParams := request.ErrInvalidParams{Context: "DeleteApplicationReferenceDataSourceInput"}
3803	if s.ApplicationName == nil {
3804		invalidParams.Add(request.NewErrParamRequired("ApplicationName"))
3805	}
3806	if s.ApplicationName != nil && len(*s.ApplicationName) < 1 {
3807		invalidParams.Add(request.NewErrParamMinLen("ApplicationName", 1))
3808	}
3809	if s.CurrentApplicationVersionId == nil {
3810		invalidParams.Add(request.NewErrParamRequired("CurrentApplicationVersionId"))
3811	}
3812	if s.CurrentApplicationVersionId != nil && *s.CurrentApplicationVersionId < 1 {
3813		invalidParams.Add(request.NewErrParamMinValue("CurrentApplicationVersionId", 1))
3814	}
3815	if s.ReferenceId == nil {
3816		invalidParams.Add(request.NewErrParamRequired("ReferenceId"))
3817	}
3818	if s.ReferenceId != nil && len(*s.ReferenceId) < 1 {
3819		invalidParams.Add(request.NewErrParamMinLen("ReferenceId", 1))
3820	}
3821
3822	if invalidParams.Len() > 0 {
3823		return invalidParams
3824	}
3825	return nil
3826}
3827
3828// SetApplicationName sets the ApplicationName field's value.
3829func (s *DeleteApplicationReferenceDataSourceInput) SetApplicationName(v string) *DeleteApplicationReferenceDataSourceInput {
3830	s.ApplicationName = &v
3831	return s
3832}
3833
3834// SetCurrentApplicationVersionId sets the CurrentApplicationVersionId field's value.
3835func (s *DeleteApplicationReferenceDataSourceInput) SetCurrentApplicationVersionId(v int64) *DeleteApplicationReferenceDataSourceInput {
3836	s.CurrentApplicationVersionId = &v
3837	return s
3838}
3839
3840// SetReferenceId sets the ReferenceId field's value.
3841func (s *DeleteApplicationReferenceDataSourceInput) SetReferenceId(v string) *DeleteApplicationReferenceDataSourceInput {
3842	s.ReferenceId = &v
3843	return s
3844}
3845
3846type DeleteApplicationReferenceDataSourceOutput struct {
3847	_ struct{} `type:"structure"`
3848}
3849
3850// String returns the string representation
3851func (s DeleteApplicationReferenceDataSourceOutput) String() string {
3852	return awsutil.Prettify(s)
3853}
3854
3855// GoString returns the string representation
3856func (s DeleteApplicationReferenceDataSourceOutput) GoString() string {
3857	return s.String()
3858}
3859
3860type DescribeApplicationInput struct {
3861	_ struct{} `type:"structure"`
3862
3863	// Name of the application.
3864	//
3865	// ApplicationName is a required field
3866	ApplicationName *string `min:"1" type:"string" required:"true"`
3867}
3868
3869// String returns the string representation
3870func (s DescribeApplicationInput) String() string {
3871	return awsutil.Prettify(s)
3872}
3873
3874// GoString returns the string representation
3875func (s DescribeApplicationInput) GoString() string {
3876	return s.String()
3877}
3878
3879// Validate inspects the fields of the type to determine if they are valid.
3880func (s *DescribeApplicationInput) Validate() error {
3881	invalidParams := request.ErrInvalidParams{Context: "DescribeApplicationInput"}
3882	if s.ApplicationName == nil {
3883		invalidParams.Add(request.NewErrParamRequired("ApplicationName"))
3884	}
3885	if s.ApplicationName != nil && len(*s.ApplicationName) < 1 {
3886		invalidParams.Add(request.NewErrParamMinLen("ApplicationName", 1))
3887	}
3888
3889	if invalidParams.Len() > 0 {
3890		return invalidParams
3891	}
3892	return nil
3893}
3894
3895// SetApplicationName sets the ApplicationName field's value.
3896func (s *DescribeApplicationInput) SetApplicationName(v string) *DescribeApplicationInput {
3897	s.ApplicationName = &v
3898	return s
3899}
3900
3901type DescribeApplicationOutput struct {
3902	_ struct{} `type:"structure"`
3903
3904	// Provides a description of the application, such as the application Amazon
3905	// Resource Name (ARN), status, latest version, and input and output configuration
3906	// details.
3907	//
3908	// ApplicationDetail is a required field
3909	ApplicationDetail *ApplicationDetail `type:"structure" required:"true"`
3910}
3911
3912// String returns the string representation
3913func (s DescribeApplicationOutput) String() string {
3914	return awsutil.Prettify(s)
3915}
3916
3917// GoString returns the string representation
3918func (s DescribeApplicationOutput) GoString() string {
3919	return s.String()
3920}
3921
3922// SetApplicationDetail sets the ApplicationDetail field's value.
3923func (s *DescribeApplicationOutput) SetApplicationDetail(v *ApplicationDetail) *DescribeApplicationOutput {
3924	s.ApplicationDetail = v
3925	return s
3926}
3927
3928// Describes the data format when records are written to the destination. For
3929// more information, see Configuring Application Output (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html).
3930type DestinationSchema struct {
3931	_ struct{} `type:"structure"`
3932
3933	// Specifies the format of the records on the output stream.
3934	//
3935	// RecordFormatType is a required field
3936	RecordFormatType *string `type:"string" required:"true" enum:"RecordFormatType"`
3937}
3938
3939// String returns the string representation
3940func (s DestinationSchema) String() string {
3941	return awsutil.Prettify(s)
3942}
3943
3944// GoString returns the string representation
3945func (s DestinationSchema) GoString() string {
3946	return s.String()
3947}
3948
3949// Validate inspects the fields of the type to determine if they are valid.
3950func (s *DestinationSchema) Validate() error {
3951	invalidParams := request.ErrInvalidParams{Context: "DestinationSchema"}
3952	if s.RecordFormatType == nil {
3953		invalidParams.Add(request.NewErrParamRequired("RecordFormatType"))
3954	}
3955
3956	if invalidParams.Len() > 0 {
3957		return invalidParams
3958	}
3959	return nil
3960}
3961
3962// SetRecordFormatType sets the RecordFormatType field's value.
3963func (s *DestinationSchema) SetRecordFormatType(v string) *DestinationSchema {
3964	s.RecordFormatType = &v
3965	return s
3966}
3967
3968type DiscoverInputSchemaInput struct {
3969	_ struct{} `type:"structure"`
3970
3971	// The InputProcessingConfiguration (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputProcessingConfiguration.html)
3972	// to use to preprocess the records before discovering the schema of the records.
3973	InputProcessingConfiguration *InputProcessingConfiguration `type:"structure"`
3974
3975	// Point at which you want Amazon Kinesis Analytics to start reading records
3976	// from the specified streaming source discovery purposes.
3977	InputStartingPositionConfiguration *InputStartingPositionConfiguration `type:"structure"`
3978
3979	// Amazon Resource Name (ARN) of the streaming source.
3980	ResourceARN *string `min:"1" type:"string"`
3981
3982	// ARN of the IAM role that Amazon Kinesis Analytics can assume to access the
3983	// stream on your behalf.
3984	RoleARN *string `min:"1" type:"string"`
3985
3986	// Specify this parameter to discover a schema from data in an Amazon S3 object.
3987	S3Configuration *S3Configuration `type:"structure"`
3988}
3989
3990// String returns the string representation
3991func (s DiscoverInputSchemaInput) String() string {
3992	return awsutil.Prettify(s)
3993}
3994
3995// GoString returns the string representation
3996func (s DiscoverInputSchemaInput) GoString() string {
3997	return s.String()
3998}
3999
4000// Validate inspects the fields of the type to determine if they are valid.
4001func (s *DiscoverInputSchemaInput) Validate() error {
4002	invalidParams := request.ErrInvalidParams{Context: "DiscoverInputSchemaInput"}
4003	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
4004		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
4005	}
4006	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
4007		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
4008	}
4009	if s.InputProcessingConfiguration != nil {
4010		if err := s.InputProcessingConfiguration.Validate(); err != nil {
4011			invalidParams.AddNested("InputProcessingConfiguration", err.(request.ErrInvalidParams))
4012		}
4013	}
4014	if s.S3Configuration != nil {
4015		if err := s.S3Configuration.Validate(); err != nil {
4016			invalidParams.AddNested("S3Configuration", err.(request.ErrInvalidParams))
4017		}
4018	}
4019
4020	if invalidParams.Len() > 0 {
4021		return invalidParams
4022	}
4023	return nil
4024}
4025
4026// SetInputProcessingConfiguration sets the InputProcessingConfiguration field's value.
4027func (s *DiscoverInputSchemaInput) SetInputProcessingConfiguration(v *InputProcessingConfiguration) *DiscoverInputSchemaInput {
4028	s.InputProcessingConfiguration = v
4029	return s
4030}
4031
4032// SetInputStartingPositionConfiguration sets the InputStartingPositionConfiguration field's value.
4033func (s *DiscoverInputSchemaInput) SetInputStartingPositionConfiguration(v *InputStartingPositionConfiguration) *DiscoverInputSchemaInput {
4034	s.InputStartingPositionConfiguration = v
4035	return s
4036}
4037
4038// SetResourceARN sets the ResourceARN field's value.
4039func (s *DiscoverInputSchemaInput) SetResourceARN(v string) *DiscoverInputSchemaInput {
4040	s.ResourceARN = &v
4041	return s
4042}
4043
4044// SetRoleARN sets the RoleARN field's value.
4045func (s *DiscoverInputSchemaInput) SetRoleARN(v string) *DiscoverInputSchemaInput {
4046	s.RoleARN = &v
4047	return s
4048}
4049
4050// SetS3Configuration sets the S3Configuration field's value.
4051func (s *DiscoverInputSchemaInput) SetS3Configuration(v *S3Configuration) *DiscoverInputSchemaInput {
4052	s.S3Configuration = v
4053	return s
4054}
4055
4056type DiscoverInputSchemaOutput struct {
4057	_ struct{} `type:"structure"`
4058
4059	// Schema inferred from the streaming source. It identifies the format of the
4060	// data in the streaming source and how each data element maps to corresponding
4061	// columns in the in-application stream that you can create.
4062	InputSchema *SourceSchema `type:"structure"`
4063
4064	// An array of elements, where each element corresponds to a row in a stream
4065	// record (a stream record can have more than one row).
4066	ParsedInputRecords [][]*string `type:"list"`
4067
4068	// Stream data that was modified by the processor specified in the InputProcessingConfiguration
4069	// parameter.
4070	ProcessedInputRecords []*string `type:"list"`
4071
4072	// Raw stream data that was sampled to infer the schema.
4073	RawInputRecords []*string `type:"list"`
4074}
4075
4076// String returns the string representation
4077func (s DiscoverInputSchemaOutput) String() string {
4078	return awsutil.Prettify(s)
4079}
4080
4081// GoString returns the string representation
4082func (s DiscoverInputSchemaOutput) GoString() string {
4083	return s.String()
4084}
4085
4086// SetInputSchema sets the InputSchema field's value.
4087func (s *DiscoverInputSchemaOutput) SetInputSchema(v *SourceSchema) *DiscoverInputSchemaOutput {
4088	s.InputSchema = v
4089	return s
4090}
4091
4092// SetParsedInputRecords sets the ParsedInputRecords field's value.
4093func (s *DiscoverInputSchemaOutput) SetParsedInputRecords(v [][]*string) *DiscoverInputSchemaOutput {
4094	s.ParsedInputRecords = v
4095	return s
4096}
4097
4098// SetProcessedInputRecords sets the ProcessedInputRecords field's value.
4099func (s *DiscoverInputSchemaOutput) SetProcessedInputRecords(v []*string) *DiscoverInputSchemaOutput {
4100	s.ProcessedInputRecords = v
4101	return s
4102}
4103
4104// SetRawInputRecords sets the RawInputRecords field's value.
4105func (s *DiscoverInputSchemaOutput) SetRawInputRecords(v []*string) *DiscoverInputSchemaOutput {
4106	s.RawInputRecords = v
4107	return s
4108}
4109
4110// When you configure the application input, you specify the streaming source,
4111// the in-application stream name that is created, and the mapping between the
4112// two. For more information, see Configuring Application Input (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html).
4113type Input struct {
4114	_ struct{} `type:"structure"`
4115
4116	// Describes the number of in-application streams to create.
4117	//
4118	// Data from your source is routed to these in-application input streams.
4119	//
4120	// (see Configuring Application Input (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html).
4121	InputParallelism *InputParallelism `type:"structure"`
4122
4123	// The InputProcessingConfiguration (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputProcessingConfiguration.html)
4124	// for the input. An input processor transforms records as they are received
4125	// from the stream, before the application's SQL code executes. Currently, the
4126	// only input processing configuration available is InputLambdaProcessor (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputLambdaProcessor.html).
4127	InputProcessingConfiguration *InputProcessingConfiguration `type:"structure"`
4128
4129	// Describes the format of the data in the streaming source, and how each data
4130	// element maps to corresponding columns in the in-application stream that is
4131	// being created.
4132	//
4133	// Also used to describe the format of the reference data source.
4134	//
4135	// InputSchema is a required field
4136	InputSchema *SourceSchema `type:"structure" required:"true"`
4137
4138	// If the streaming source is an Amazon Kinesis Firehose delivery stream, identifies
4139	// the delivery stream's ARN and an IAM role that enables Amazon Kinesis Analytics
4140	// to access the stream on your behalf.
4141	//
4142	// Note: Either KinesisStreamsInput or KinesisFirehoseInput is required.
4143	KinesisFirehoseInput *KinesisFirehoseInput `type:"structure"`
4144
4145	// If the streaming source is an Amazon Kinesis stream, identifies the stream's
4146	// Amazon Resource Name (ARN) and an IAM role that enables Amazon Kinesis Analytics
4147	// to access the stream on your behalf.
4148	//
4149	// Note: Either KinesisStreamsInput or KinesisFirehoseInput is required.
4150	KinesisStreamsInput *KinesisStreamsInput `type:"structure"`
4151
4152	// Name prefix to use when creating an in-application stream. Suppose that you
4153	// specify a prefix "MyInApplicationStream." Amazon Kinesis Analytics then creates
4154	// one or more (as per the InputParallelism count you specified) in-application
4155	// streams with names "MyInApplicationStream_001," "MyInApplicationStream_002,"
4156	// and so on.
4157	//
4158	// NamePrefix is a required field
4159	NamePrefix *string `min:"1" type:"string" required:"true"`
4160}
4161
4162// String returns the string representation
4163func (s Input) String() string {
4164	return awsutil.Prettify(s)
4165}
4166
4167// GoString returns the string representation
4168func (s Input) GoString() string {
4169	return s.String()
4170}
4171
4172// Validate inspects the fields of the type to determine if they are valid.
4173func (s *Input) Validate() error {
4174	invalidParams := request.ErrInvalidParams{Context: "Input"}
4175	if s.InputSchema == nil {
4176		invalidParams.Add(request.NewErrParamRequired("InputSchema"))
4177	}
4178	if s.NamePrefix == nil {
4179		invalidParams.Add(request.NewErrParamRequired("NamePrefix"))
4180	}
4181	if s.NamePrefix != nil && len(*s.NamePrefix) < 1 {
4182		invalidParams.Add(request.NewErrParamMinLen("NamePrefix", 1))
4183	}
4184	if s.InputParallelism != nil {
4185		if err := s.InputParallelism.Validate(); err != nil {
4186			invalidParams.AddNested("InputParallelism", err.(request.ErrInvalidParams))
4187		}
4188	}
4189	if s.InputProcessingConfiguration != nil {
4190		if err := s.InputProcessingConfiguration.Validate(); err != nil {
4191			invalidParams.AddNested("InputProcessingConfiguration", err.(request.ErrInvalidParams))
4192		}
4193	}
4194	if s.InputSchema != nil {
4195		if err := s.InputSchema.Validate(); err != nil {
4196			invalidParams.AddNested("InputSchema", err.(request.ErrInvalidParams))
4197		}
4198	}
4199	if s.KinesisFirehoseInput != nil {
4200		if err := s.KinesisFirehoseInput.Validate(); err != nil {
4201			invalidParams.AddNested("KinesisFirehoseInput", err.(request.ErrInvalidParams))
4202		}
4203	}
4204	if s.KinesisStreamsInput != nil {
4205		if err := s.KinesisStreamsInput.Validate(); err != nil {
4206			invalidParams.AddNested("KinesisStreamsInput", err.(request.ErrInvalidParams))
4207		}
4208	}
4209
4210	if invalidParams.Len() > 0 {
4211		return invalidParams
4212	}
4213	return nil
4214}
4215
4216// SetInputParallelism sets the InputParallelism field's value.
4217func (s *Input) SetInputParallelism(v *InputParallelism) *Input {
4218	s.InputParallelism = v
4219	return s
4220}
4221
4222// SetInputProcessingConfiguration sets the InputProcessingConfiguration field's value.
4223func (s *Input) SetInputProcessingConfiguration(v *InputProcessingConfiguration) *Input {
4224	s.InputProcessingConfiguration = v
4225	return s
4226}
4227
4228// SetInputSchema sets the InputSchema field's value.
4229func (s *Input) SetInputSchema(v *SourceSchema) *Input {
4230	s.InputSchema = v
4231	return s
4232}
4233
4234// SetKinesisFirehoseInput sets the KinesisFirehoseInput field's value.
4235func (s *Input) SetKinesisFirehoseInput(v *KinesisFirehoseInput) *Input {
4236	s.KinesisFirehoseInput = v
4237	return s
4238}
4239
4240// SetKinesisStreamsInput sets the KinesisStreamsInput field's value.
4241func (s *Input) SetKinesisStreamsInput(v *KinesisStreamsInput) *Input {
4242	s.KinesisStreamsInput = v
4243	return s
4244}
4245
4246// SetNamePrefix sets the NamePrefix field's value.
4247func (s *Input) SetNamePrefix(v string) *Input {
4248	s.NamePrefix = &v
4249	return s
4250}
4251
4252// When you start your application, you provide this configuration, which identifies
4253// the input source and the point in the input source at which you want the
4254// application to start processing records.
4255type InputConfiguration struct {
4256	_ struct{} `type:"structure"`
4257
4258	// Input source ID. You can get this ID by calling the DescribeApplication (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html)
4259	// operation.
4260	//
4261	// Id is a required field
4262	Id *string `min:"1" type:"string" required:"true"`
4263
4264	// Point at which you want the application to start processing records from
4265	// the streaming source.
4266	//
4267	// InputStartingPositionConfiguration is a required field
4268	InputStartingPositionConfiguration *InputStartingPositionConfiguration `type:"structure" required:"true"`
4269}
4270
4271// String returns the string representation
4272func (s InputConfiguration) String() string {
4273	return awsutil.Prettify(s)
4274}
4275
4276// GoString returns the string representation
4277func (s InputConfiguration) GoString() string {
4278	return s.String()
4279}
4280
4281// Validate inspects the fields of the type to determine if they are valid.
4282func (s *InputConfiguration) Validate() error {
4283	invalidParams := request.ErrInvalidParams{Context: "InputConfiguration"}
4284	if s.Id == nil {
4285		invalidParams.Add(request.NewErrParamRequired("Id"))
4286	}
4287	if s.Id != nil && len(*s.Id) < 1 {
4288		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
4289	}
4290	if s.InputStartingPositionConfiguration == nil {
4291		invalidParams.Add(request.NewErrParamRequired("InputStartingPositionConfiguration"))
4292	}
4293
4294	if invalidParams.Len() > 0 {
4295		return invalidParams
4296	}
4297	return nil
4298}
4299
4300// SetId sets the Id field's value.
4301func (s *InputConfiguration) SetId(v string) *InputConfiguration {
4302	s.Id = &v
4303	return s
4304}
4305
4306// SetInputStartingPositionConfiguration sets the InputStartingPositionConfiguration field's value.
4307func (s *InputConfiguration) SetInputStartingPositionConfiguration(v *InputStartingPositionConfiguration) *InputConfiguration {
4308	s.InputStartingPositionConfiguration = v
4309	return s
4310}
4311
4312// Describes the application input configuration. For more information, see
4313// Configuring Application Input (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html).
4314type InputDescription struct {
4315	_ struct{} `type:"structure"`
4316
4317	// Returns the in-application stream names that are mapped to the stream source.
4318	InAppStreamNames []*string `type:"list"`
4319
4320	// Input ID associated with the application input. This is the ID that Amazon
4321	// Kinesis Analytics assigns to each input configuration you add to your application.
4322	InputId *string `min:"1" type:"string"`
4323
4324	// Describes the configured parallelism (number of in-application streams mapped
4325	// to the streaming source).
4326	InputParallelism *InputParallelism `type:"structure"`
4327
4328	// The description of the preprocessor that executes on records in this input
4329	// before the application's code is run.
4330	InputProcessingConfigurationDescription *InputProcessingConfigurationDescription `type:"structure"`
4331
4332	// Describes the format of the data in the streaming source, and how each data
4333	// element maps to corresponding columns in the in-application stream that is
4334	// being created.
4335	InputSchema *SourceSchema `type:"structure"`
4336
4337	// Point at which the application is configured to read from the input stream.
4338	InputStartingPositionConfiguration *InputStartingPositionConfiguration `type:"structure"`
4339
4340	// If an Amazon Kinesis Firehose delivery stream is configured as a streaming
4341	// source, provides the delivery stream's ARN and an IAM role that enables Amazon
4342	// Kinesis Analytics to access the stream on your behalf.
4343	KinesisFirehoseInputDescription *KinesisFirehoseInputDescription `type:"structure"`
4344
4345	// If an Amazon Kinesis stream is configured as streaming source, provides Amazon
4346	// Kinesis stream's Amazon Resource Name (ARN) and an IAM role that enables
4347	// Amazon Kinesis Analytics to access the stream on your behalf.
4348	KinesisStreamsInputDescription *KinesisStreamsInputDescription `type:"structure"`
4349
4350	// In-application name prefix.
4351	NamePrefix *string `min:"1" type:"string"`
4352}
4353
4354// String returns the string representation
4355func (s InputDescription) String() string {
4356	return awsutil.Prettify(s)
4357}
4358
4359// GoString returns the string representation
4360func (s InputDescription) GoString() string {
4361	return s.String()
4362}
4363
4364// SetInAppStreamNames sets the InAppStreamNames field's value.
4365func (s *InputDescription) SetInAppStreamNames(v []*string) *InputDescription {
4366	s.InAppStreamNames = v
4367	return s
4368}
4369
4370// SetInputId sets the InputId field's value.
4371func (s *InputDescription) SetInputId(v string) *InputDescription {
4372	s.InputId = &v
4373	return s
4374}
4375
4376// SetInputParallelism sets the InputParallelism field's value.
4377func (s *InputDescription) SetInputParallelism(v *InputParallelism) *InputDescription {
4378	s.InputParallelism = v
4379	return s
4380}
4381
4382// SetInputProcessingConfigurationDescription sets the InputProcessingConfigurationDescription field's value.
4383func (s *InputDescription) SetInputProcessingConfigurationDescription(v *InputProcessingConfigurationDescription) *InputDescription {
4384	s.InputProcessingConfigurationDescription = v
4385	return s
4386}
4387
4388// SetInputSchema sets the InputSchema field's value.
4389func (s *InputDescription) SetInputSchema(v *SourceSchema) *InputDescription {
4390	s.InputSchema = v
4391	return s
4392}
4393
4394// SetInputStartingPositionConfiguration sets the InputStartingPositionConfiguration field's value.
4395func (s *InputDescription) SetInputStartingPositionConfiguration(v *InputStartingPositionConfiguration) *InputDescription {
4396	s.InputStartingPositionConfiguration = v
4397	return s
4398}
4399
4400// SetKinesisFirehoseInputDescription sets the KinesisFirehoseInputDescription field's value.
4401func (s *InputDescription) SetKinesisFirehoseInputDescription(v *KinesisFirehoseInputDescription) *InputDescription {
4402	s.KinesisFirehoseInputDescription = v
4403	return s
4404}
4405
4406// SetKinesisStreamsInputDescription sets the KinesisStreamsInputDescription field's value.
4407func (s *InputDescription) SetKinesisStreamsInputDescription(v *KinesisStreamsInputDescription) *InputDescription {
4408	s.KinesisStreamsInputDescription = v
4409	return s
4410}
4411
4412// SetNamePrefix sets the NamePrefix field's value.
4413func (s *InputDescription) SetNamePrefix(v string) *InputDescription {
4414	s.NamePrefix = &v
4415	return s
4416}
4417
4418// An object that contains the Amazon Resource Name (ARN) of the AWS Lambda
4419// (https://docs.aws.amazon.com/lambda/) function that is used to preprocess
4420// records in the stream, and the ARN of the IAM role that is used to access
4421// the AWS Lambda function.
4422type InputLambdaProcessor struct {
4423	_ struct{} `type:"structure"`
4424
4425	// The ARN of the AWS Lambda (https://docs.aws.amazon.com/lambda/) function
4426	// that operates on records in the stream.
4427	//
4428	// To specify an earlier version of the Lambda function than the latest, include
4429	// the Lambda function version in the Lambda function ARN. For more information
4430	// about Lambda ARNs, see Example ARNs: AWS Lambda (/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda)
4431	//
4432	// ResourceARN is a required field
4433	ResourceARN *string `min:"1" type:"string" required:"true"`
4434
4435	// The ARN of the IAM role that is used to access the AWS Lambda function.
4436	//
4437	// RoleARN is a required field
4438	RoleARN *string `min:"1" type:"string" required:"true"`
4439}
4440
4441// String returns the string representation
4442func (s InputLambdaProcessor) String() string {
4443	return awsutil.Prettify(s)
4444}
4445
4446// GoString returns the string representation
4447func (s InputLambdaProcessor) GoString() string {
4448	return s.String()
4449}
4450
4451// Validate inspects the fields of the type to determine if they are valid.
4452func (s *InputLambdaProcessor) Validate() error {
4453	invalidParams := request.ErrInvalidParams{Context: "InputLambdaProcessor"}
4454	if s.ResourceARN == nil {
4455		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
4456	}
4457	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
4458		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
4459	}
4460	if s.RoleARN == nil {
4461		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
4462	}
4463	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
4464		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
4465	}
4466
4467	if invalidParams.Len() > 0 {
4468		return invalidParams
4469	}
4470	return nil
4471}
4472
4473// SetResourceARN sets the ResourceARN field's value.
4474func (s *InputLambdaProcessor) SetResourceARN(v string) *InputLambdaProcessor {
4475	s.ResourceARN = &v
4476	return s
4477}
4478
4479// SetRoleARN sets the RoleARN field's value.
4480func (s *InputLambdaProcessor) SetRoleARN(v string) *InputLambdaProcessor {
4481	s.RoleARN = &v
4482	return s
4483}
4484
4485// An object that contains the Amazon Resource Name (ARN) of the AWS Lambda
4486// (https://docs.aws.amazon.com/lambda/) function that is used to preprocess
4487// records in the stream, and the ARN of the IAM role that is used to access
4488// the AWS Lambda expression.
4489type InputLambdaProcessorDescription struct {
4490	_ struct{} `type:"structure"`
4491
4492	// The ARN of the AWS Lambda (https://docs.aws.amazon.com/lambda/) function
4493	// that is used to preprocess the records in the stream.
4494	ResourceARN *string `min:"1" type:"string"`
4495
4496	// The ARN of the IAM role that is used to access the AWS Lambda function.
4497	RoleARN *string `min:"1" type:"string"`
4498}
4499
4500// String returns the string representation
4501func (s InputLambdaProcessorDescription) String() string {
4502	return awsutil.Prettify(s)
4503}
4504
4505// GoString returns the string representation
4506func (s InputLambdaProcessorDescription) GoString() string {
4507	return s.String()
4508}
4509
4510// SetResourceARN sets the ResourceARN field's value.
4511func (s *InputLambdaProcessorDescription) SetResourceARN(v string) *InputLambdaProcessorDescription {
4512	s.ResourceARN = &v
4513	return s
4514}
4515
4516// SetRoleARN sets the RoleARN field's value.
4517func (s *InputLambdaProcessorDescription) SetRoleARN(v string) *InputLambdaProcessorDescription {
4518	s.RoleARN = &v
4519	return s
4520}
4521
4522// Represents an update to the InputLambdaProcessor (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputLambdaProcessor.html)
4523// that is used to preprocess the records in the stream.
4524type InputLambdaProcessorUpdate struct {
4525	_ struct{} `type:"structure"`
4526
4527	// The Amazon Resource Name (ARN) of the new AWS Lambda (https://docs.aws.amazon.com/lambda/)
4528	// function that is used to preprocess the records in the stream.
4529	//
4530	// To specify an earlier version of the Lambda function than the latest, include
4531	// the Lambda function version in the Lambda function ARN. For more information
4532	// about Lambda ARNs, see Example ARNs: AWS Lambda (/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda)
4533	ResourceARNUpdate *string `min:"1" type:"string"`
4534
4535	// The ARN of the new IAM role that is used to access the AWS Lambda function.
4536	RoleARNUpdate *string `min:"1" type:"string"`
4537}
4538
4539// String returns the string representation
4540func (s InputLambdaProcessorUpdate) String() string {
4541	return awsutil.Prettify(s)
4542}
4543
4544// GoString returns the string representation
4545func (s InputLambdaProcessorUpdate) GoString() string {
4546	return s.String()
4547}
4548
4549// Validate inspects the fields of the type to determine if they are valid.
4550func (s *InputLambdaProcessorUpdate) Validate() error {
4551	invalidParams := request.ErrInvalidParams{Context: "InputLambdaProcessorUpdate"}
4552	if s.ResourceARNUpdate != nil && len(*s.ResourceARNUpdate) < 1 {
4553		invalidParams.Add(request.NewErrParamMinLen("ResourceARNUpdate", 1))
4554	}
4555	if s.RoleARNUpdate != nil && len(*s.RoleARNUpdate) < 1 {
4556		invalidParams.Add(request.NewErrParamMinLen("RoleARNUpdate", 1))
4557	}
4558
4559	if invalidParams.Len() > 0 {
4560		return invalidParams
4561	}
4562	return nil
4563}
4564
4565// SetResourceARNUpdate sets the ResourceARNUpdate field's value.
4566func (s *InputLambdaProcessorUpdate) SetResourceARNUpdate(v string) *InputLambdaProcessorUpdate {
4567	s.ResourceARNUpdate = &v
4568	return s
4569}
4570
4571// SetRoleARNUpdate sets the RoleARNUpdate field's value.
4572func (s *InputLambdaProcessorUpdate) SetRoleARNUpdate(v string) *InputLambdaProcessorUpdate {
4573	s.RoleARNUpdate = &v
4574	return s
4575}
4576
4577// Describes the number of in-application streams to create for a given streaming
4578// source. For information about parallelism, see Configuring Application Input
4579// (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html).
4580type InputParallelism struct {
4581	_ struct{} `type:"structure"`
4582
4583	// Number of in-application streams to create. For more information, see Limits
4584	// (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/limits.html).
4585	Count *int64 `min:"1" type:"integer"`
4586}
4587
4588// String returns the string representation
4589func (s InputParallelism) String() string {
4590	return awsutil.Prettify(s)
4591}
4592
4593// GoString returns the string representation
4594func (s InputParallelism) GoString() string {
4595	return s.String()
4596}
4597
4598// Validate inspects the fields of the type to determine if they are valid.
4599func (s *InputParallelism) Validate() error {
4600	invalidParams := request.ErrInvalidParams{Context: "InputParallelism"}
4601	if s.Count != nil && *s.Count < 1 {
4602		invalidParams.Add(request.NewErrParamMinValue("Count", 1))
4603	}
4604
4605	if invalidParams.Len() > 0 {
4606		return invalidParams
4607	}
4608	return nil
4609}
4610
4611// SetCount sets the Count field's value.
4612func (s *InputParallelism) SetCount(v int64) *InputParallelism {
4613	s.Count = &v
4614	return s
4615}
4616
4617// Provides updates to the parallelism count.
4618type InputParallelismUpdate struct {
4619	_ struct{} `type:"structure"`
4620
4621	// Number of in-application streams to create for the specified streaming source.
4622	CountUpdate *int64 `min:"1" type:"integer"`
4623}
4624
4625// String returns the string representation
4626func (s InputParallelismUpdate) String() string {
4627	return awsutil.Prettify(s)
4628}
4629
4630// GoString returns the string representation
4631func (s InputParallelismUpdate) GoString() string {
4632	return s.String()
4633}
4634
4635// Validate inspects the fields of the type to determine if they are valid.
4636func (s *InputParallelismUpdate) Validate() error {
4637	invalidParams := request.ErrInvalidParams{Context: "InputParallelismUpdate"}
4638	if s.CountUpdate != nil && *s.CountUpdate < 1 {
4639		invalidParams.Add(request.NewErrParamMinValue("CountUpdate", 1))
4640	}
4641
4642	if invalidParams.Len() > 0 {
4643		return invalidParams
4644	}
4645	return nil
4646}
4647
4648// SetCountUpdate sets the CountUpdate field's value.
4649func (s *InputParallelismUpdate) SetCountUpdate(v int64) *InputParallelismUpdate {
4650	s.CountUpdate = &v
4651	return s
4652}
4653
4654// Provides a description of a processor that is used to preprocess the records
4655// in the stream before being processed by your application code. Currently,
4656// the only input processor available is AWS Lambda (https://docs.aws.amazon.com/lambda/).
4657type InputProcessingConfiguration struct {
4658	_ struct{} `type:"structure"`
4659
4660	// The InputLambdaProcessor (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputLambdaProcessor.html)
4661	// that is used to preprocess the records in the stream before being processed
4662	// by your application code.
4663	//
4664	// InputLambdaProcessor is a required field
4665	InputLambdaProcessor *InputLambdaProcessor `type:"structure" required:"true"`
4666}
4667
4668// String returns the string representation
4669func (s InputProcessingConfiguration) String() string {
4670	return awsutil.Prettify(s)
4671}
4672
4673// GoString returns the string representation
4674func (s InputProcessingConfiguration) GoString() string {
4675	return s.String()
4676}
4677
4678// Validate inspects the fields of the type to determine if they are valid.
4679func (s *InputProcessingConfiguration) Validate() error {
4680	invalidParams := request.ErrInvalidParams{Context: "InputProcessingConfiguration"}
4681	if s.InputLambdaProcessor == nil {
4682		invalidParams.Add(request.NewErrParamRequired("InputLambdaProcessor"))
4683	}
4684	if s.InputLambdaProcessor != nil {
4685		if err := s.InputLambdaProcessor.Validate(); err != nil {
4686			invalidParams.AddNested("InputLambdaProcessor", err.(request.ErrInvalidParams))
4687		}
4688	}
4689
4690	if invalidParams.Len() > 0 {
4691		return invalidParams
4692	}
4693	return nil
4694}
4695
4696// SetInputLambdaProcessor sets the InputLambdaProcessor field's value.
4697func (s *InputProcessingConfiguration) SetInputLambdaProcessor(v *InputLambdaProcessor) *InputProcessingConfiguration {
4698	s.InputLambdaProcessor = v
4699	return s
4700}
4701
4702// Provides configuration information about an input processor. Currently, the
4703// only input processor available is AWS Lambda (https://docs.aws.amazon.com/lambda/).
4704type InputProcessingConfigurationDescription struct {
4705	_ struct{} `type:"structure"`
4706
4707	// Provides configuration information about the associated InputLambdaProcessorDescription
4708	// (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputLambdaProcessorDescription.html).
4709	InputLambdaProcessorDescription *InputLambdaProcessorDescription `type:"structure"`
4710}
4711
4712// String returns the string representation
4713func (s InputProcessingConfigurationDescription) String() string {
4714	return awsutil.Prettify(s)
4715}
4716
4717// GoString returns the string representation
4718func (s InputProcessingConfigurationDescription) GoString() string {
4719	return s.String()
4720}
4721
4722// SetInputLambdaProcessorDescription sets the InputLambdaProcessorDescription field's value.
4723func (s *InputProcessingConfigurationDescription) SetInputLambdaProcessorDescription(v *InputLambdaProcessorDescription) *InputProcessingConfigurationDescription {
4724	s.InputLambdaProcessorDescription = v
4725	return s
4726}
4727
4728// Describes updates to an InputProcessingConfiguration (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputProcessingConfiguration.html).
4729type InputProcessingConfigurationUpdate struct {
4730	_ struct{} `type:"structure"`
4731
4732	// Provides update information for an InputLambdaProcessor (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_InputLambdaProcessor.html).
4733	//
4734	// InputLambdaProcessorUpdate is a required field
4735	InputLambdaProcessorUpdate *InputLambdaProcessorUpdate `type:"structure" required:"true"`
4736}
4737
4738// String returns the string representation
4739func (s InputProcessingConfigurationUpdate) String() string {
4740	return awsutil.Prettify(s)
4741}
4742
4743// GoString returns the string representation
4744func (s InputProcessingConfigurationUpdate) GoString() string {
4745	return s.String()
4746}
4747
4748// Validate inspects the fields of the type to determine if they are valid.
4749func (s *InputProcessingConfigurationUpdate) Validate() error {
4750	invalidParams := request.ErrInvalidParams{Context: "InputProcessingConfigurationUpdate"}
4751	if s.InputLambdaProcessorUpdate == nil {
4752		invalidParams.Add(request.NewErrParamRequired("InputLambdaProcessorUpdate"))
4753	}
4754	if s.InputLambdaProcessorUpdate != nil {
4755		if err := s.InputLambdaProcessorUpdate.Validate(); err != nil {
4756			invalidParams.AddNested("InputLambdaProcessorUpdate", err.(request.ErrInvalidParams))
4757		}
4758	}
4759
4760	if invalidParams.Len() > 0 {
4761		return invalidParams
4762	}
4763	return nil
4764}
4765
4766// SetInputLambdaProcessorUpdate sets the InputLambdaProcessorUpdate field's value.
4767func (s *InputProcessingConfigurationUpdate) SetInputLambdaProcessorUpdate(v *InputLambdaProcessorUpdate) *InputProcessingConfigurationUpdate {
4768	s.InputLambdaProcessorUpdate = v
4769	return s
4770}
4771
4772// Describes updates for the application's input schema.
4773type InputSchemaUpdate struct {
4774	_ struct{} `type:"structure"`
4775
4776	// A list of RecordColumn objects. Each object describes the mapping of the
4777	// streaming source element to the corresponding column in the in-application
4778	// stream.
4779	RecordColumnUpdates []*RecordColumn `min:"1" type:"list"`
4780
4781	// Specifies the encoding of the records in the streaming source. For example,
4782	// UTF-8.
4783	RecordEncodingUpdate *string `type:"string"`
4784
4785	// Specifies the format of the records on the streaming source.
4786	RecordFormatUpdate *RecordFormat `type:"structure"`
4787}
4788
4789// String returns the string representation
4790func (s InputSchemaUpdate) String() string {
4791	return awsutil.Prettify(s)
4792}
4793
4794// GoString returns the string representation
4795func (s InputSchemaUpdate) GoString() string {
4796	return s.String()
4797}
4798
4799// Validate inspects the fields of the type to determine if they are valid.
4800func (s *InputSchemaUpdate) Validate() error {
4801	invalidParams := request.ErrInvalidParams{Context: "InputSchemaUpdate"}
4802	if s.RecordColumnUpdates != nil && len(s.RecordColumnUpdates) < 1 {
4803		invalidParams.Add(request.NewErrParamMinLen("RecordColumnUpdates", 1))
4804	}
4805	if s.RecordColumnUpdates != nil {
4806		for i, v := range s.RecordColumnUpdates {
4807			if v == nil {
4808				continue
4809			}
4810			if err := v.Validate(); err != nil {
4811				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RecordColumnUpdates", i), err.(request.ErrInvalidParams))
4812			}
4813		}
4814	}
4815	if s.RecordFormatUpdate != nil {
4816		if err := s.RecordFormatUpdate.Validate(); err != nil {
4817			invalidParams.AddNested("RecordFormatUpdate", err.(request.ErrInvalidParams))
4818		}
4819	}
4820
4821	if invalidParams.Len() > 0 {
4822		return invalidParams
4823	}
4824	return nil
4825}
4826
4827// SetRecordColumnUpdates sets the RecordColumnUpdates field's value.
4828func (s *InputSchemaUpdate) SetRecordColumnUpdates(v []*RecordColumn) *InputSchemaUpdate {
4829	s.RecordColumnUpdates = v
4830	return s
4831}
4832
4833// SetRecordEncodingUpdate sets the RecordEncodingUpdate field's value.
4834func (s *InputSchemaUpdate) SetRecordEncodingUpdate(v string) *InputSchemaUpdate {
4835	s.RecordEncodingUpdate = &v
4836	return s
4837}
4838
4839// SetRecordFormatUpdate sets the RecordFormatUpdate field's value.
4840func (s *InputSchemaUpdate) SetRecordFormatUpdate(v *RecordFormat) *InputSchemaUpdate {
4841	s.RecordFormatUpdate = v
4842	return s
4843}
4844
4845// Describes the point at which the application reads from the streaming source.
4846type InputStartingPositionConfiguration struct {
4847	_ struct{} `type:"structure"`
4848
4849	// The starting position on the stream.
4850	//
4851	//    * NOW - Start reading just after the most recent record in the stream,
4852	//    start at the request time stamp that the customer issued.
4853	//
4854	//    * TRIM_HORIZON - Start reading at the last untrimmed record in the stream,
4855	//    which is the oldest record available in the stream. This option is not
4856	//    available for an Amazon Kinesis Firehose delivery stream.
4857	//
4858	//    * LAST_STOPPED_POINT - Resume reading from where the application last
4859	//    stopped reading.
4860	InputStartingPosition *string `type:"string" enum:"InputStartingPosition"`
4861}
4862
4863// String returns the string representation
4864func (s InputStartingPositionConfiguration) String() string {
4865	return awsutil.Prettify(s)
4866}
4867
4868// GoString returns the string representation
4869func (s InputStartingPositionConfiguration) GoString() string {
4870	return s.String()
4871}
4872
4873// SetInputStartingPosition sets the InputStartingPosition field's value.
4874func (s *InputStartingPositionConfiguration) SetInputStartingPosition(v string) *InputStartingPositionConfiguration {
4875	s.InputStartingPosition = &v
4876	return s
4877}
4878
4879// Describes updates to a specific input configuration (identified by the InputId
4880// of an application).
4881type InputUpdate struct {
4882	_ struct{} `type:"structure"`
4883
4884	// Input ID of the application input to be updated.
4885	//
4886	// InputId is a required field
4887	InputId *string `min:"1" type:"string" required:"true"`
4888
4889	// Describes the parallelism updates (the number in-application streams Amazon
4890	// Kinesis Analytics creates for the specific streaming source).
4891	InputParallelismUpdate *InputParallelismUpdate `type:"structure"`
4892
4893	// Describes updates for an input processing configuration.
4894	InputProcessingConfigurationUpdate *InputProcessingConfigurationUpdate `type:"structure"`
4895
4896	// Describes the data format on the streaming source, and how record elements
4897	// on the streaming source map to columns of the in-application stream that
4898	// is created.
4899	InputSchemaUpdate *InputSchemaUpdate `type:"structure"`
4900
4901	// If an Amazon Kinesis Firehose delivery stream is the streaming source to
4902	// be updated, provides an updated stream ARN and IAM role ARN.
4903	KinesisFirehoseInputUpdate *KinesisFirehoseInputUpdate `type:"structure"`
4904
4905	// If an Amazon Kinesis stream is the streaming source to be updated, provides
4906	// an updated stream Amazon Resource Name (ARN) and IAM role ARN.
4907	KinesisStreamsInputUpdate *KinesisStreamsInputUpdate `type:"structure"`
4908
4909	// Name prefix for in-application streams that Amazon Kinesis Analytics creates
4910	// for the specific streaming source.
4911	NamePrefixUpdate *string `min:"1" type:"string"`
4912}
4913
4914// String returns the string representation
4915func (s InputUpdate) String() string {
4916	return awsutil.Prettify(s)
4917}
4918
4919// GoString returns the string representation
4920func (s InputUpdate) GoString() string {
4921	return s.String()
4922}
4923
4924// Validate inspects the fields of the type to determine if they are valid.
4925func (s *InputUpdate) Validate() error {
4926	invalidParams := request.ErrInvalidParams{Context: "InputUpdate"}
4927	if s.InputId == nil {
4928		invalidParams.Add(request.NewErrParamRequired("InputId"))
4929	}
4930	if s.InputId != nil && len(*s.InputId) < 1 {
4931		invalidParams.Add(request.NewErrParamMinLen("InputId", 1))
4932	}
4933	if s.NamePrefixUpdate != nil && len(*s.NamePrefixUpdate) < 1 {
4934		invalidParams.Add(request.NewErrParamMinLen("NamePrefixUpdate", 1))
4935	}
4936	if s.InputParallelismUpdate != nil {
4937		if err := s.InputParallelismUpdate.Validate(); err != nil {
4938			invalidParams.AddNested("InputParallelismUpdate", err.(request.ErrInvalidParams))
4939		}
4940	}
4941	if s.InputProcessingConfigurationUpdate != nil {
4942		if err := s.InputProcessingConfigurationUpdate.Validate(); err != nil {
4943			invalidParams.AddNested("InputProcessingConfigurationUpdate", err.(request.ErrInvalidParams))
4944		}
4945	}
4946	if s.InputSchemaUpdate != nil {
4947		if err := s.InputSchemaUpdate.Validate(); err != nil {
4948			invalidParams.AddNested("InputSchemaUpdate", err.(request.ErrInvalidParams))
4949		}
4950	}
4951	if s.KinesisFirehoseInputUpdate != nil {
4952		if err := s.KinesisFirehoseInputUpdate.Validate(); err != nil {
4953			invalidParams.AddNested("KinesisFirehoseInputUpdate", err.(request.ErrInvalidParams))
4954		}
4955	}
4956	if s.KinesisStreamsInputUpdate != nil {
4957		if err := s.KinesisStreamsInputUpdate.Validate(); err != nil {
4958			invalidParams.AddNested("KinesisStreamsInputUpdate", err.(request.ErrInvalidParams))
4959		}
4960	}
4961
4962	if invalidParams.Len() > 0 {
4963		return invalidParams
4964	}
4965	return nil
4966}
4967
4968// SetInputId sets the InputId field's value.
4969func (s *InputUpdate) SetInputId(v string) *InputUpdate {
4970	s.InputId = &v
4971	return s
4972}
4973
4974// SetInputParallelismUpdate sets the InputParallelismUpdate field's value.
4975func (s *InputUpdate) SetInputParallelismUpdate(v *InputParallelismUpdate) *InputUpdate {
4976	s.InputParallelismUpdate = v
4977	return s
4978}
4979
4980// SetInputProcessingConfigurationUpdate sets the InputProcessingConfigurationUpdate field's value.
4981func (s *InputUpdate) SetInputProcessingConfigurationUpdate(v *InputProcessingConfigurationUpdate) *InputUpdate {
4982	s.InputProcessingConfigurationUpdate = v
4983	return s
4984}
4985
4986// SetInputSchemaUpdate sets the InputSchemaUpdate field's value.
4987func (s *InputUpdate) SetInputSchemaUpdate(v *InputSchemaUpdate) *InputUpdate {
4988	s.InputSchemaUpdate = v
4989	return s
4990}
4991
4992// SetKinesisFirehoseInputUpdate sets the KinesisFirehoseInputUpdate field's value.
4993func (s *InputUpdate) SetKinesisFirehoseInputUpdate(v *KinesisFirehoseInputUpdate) *InputUpdate {
4994	s.KinesisFirehoseInputUpdate = v
4995	return s
4996}
4997
4998// SetKinesisStreamsInputUpdate sets the KinesisStreamsInputUpdate field's value.
4999func (s *InputUpdate) SetKinesisStreamsInputUpdate(v *KinesisStreamsInputUpdate) *InputUpdate {
5000	s.KinesisStreamsInputUpdate = v
5001	return s
5002}
5003
5004// SetNamePrefixUpdate sets the NamePrefixUpdate field's value.
5005func (s *InputUpdate) SetNamePrefixUpdate(v string) *InputUpdate {
5006	s.NamePrefixUpdate = &v
5007	return s
5008}
5009
5010// Provides additional mapping information when JSON is the record format on
5011// the streaming source.
5012type JSONMappingParameters struct {
5013	_ struct{} `type:"structure"`
5014
5015	// Path to the top-level parent that contains the records.
5016	//
5017	// RecordRowPath is a required field
5018	RecordRowPath *string `min:"1" type:"string" required:"true"`
5019}
5020
5021// String returns the string representation
5022func (s JSONMappingParameters) String() string {
5023	return awsutil.Prettify(s)
5024}
5025
5026// GoString returns the string representation
5027func (s JSONMappingParameters) GoString() string {
5028	return s.String()
5029}
5030
5031// Validate inspects the fields of the type to determine if they are valid.
5032func (s *JSONMappingParameters) Validate() error {
5033	invalidParams := request.ErrInvalidParams{Context: "JSONMappingParameters"}
5034	if s.RecordRowPath == nil {
5035		invalidParams.Add(request.NewErrParamRequired("RecordRowPath"))
5036	}
5037	if s.RecordRowPath != nil && len(*s.RecordRowPath) < 1 {
5038		invalidParams.Add(request.NewErrParamMinLen("RecordRowPath", 1))
5039	}
5040
5041	if invalidParams.Len() > 0 {
5042		return invalidParams
5043	}
5044	return nil
5045}
5046
5047// SetRecordRowPath sets the RecordRowPath field's value.
5048func (s *JSONMappingParameters) SetRecordRowPath(v string) *JSONMappingParameters {
5049	s.RecordRowPath = &v
5050	return s
5051}
5052
5053// Identifies an Amazon Kinesis Firehose delivery stream as the streaming source.
5054// You provide the delivery stream's Amazon Resource Name (ARN) and an IAM role
5055// ARN that enables Amazon Kinesis Analytics to access the stream on your behalf.
5056type KinesisFirehoseInput struct {
5057	_ struct{} `type:"structure"`
5058
5059	// ARN of the input delivery stream.
5060	//
5061	// ResourceARN is a required field
5062	ResourceARN *string `min:"1" type:"string" required:"true"`
5063
5064	// ARN of the IAM role that Amazon Kinesis Analytics can assume to access the
5065	// stream on your behalf. You need to make sure that the role has the necessary
5066	// permissions to access the stream.
5067	//
5068	// RoleARN is a required field
5069	RoleARN *string `min:"1" type:"string" required:"true"`
5070}
5071
5072// String returns the string representation
5073func (s KinesisFirehoseInput) String() string {
5074	return awsutil.Prettify(s)
5075}
5076
5077// GoString returns the string representation
5078func (s KinesisFirehoseInput) GoString() string {
5079	return s.String()
5080}
5081
5082// Validate inspects the fields of the type to determine if they are valid.
5083func (s *KinesisFirehoseInput) Validate() error {
5084	invalidParams := request.ErrInvalidParams{Context: "KinesisFirehoseInput"}
5085	if s.ResourceARN == nil {
5086		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
5087	}
5088	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
5089		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
5090	}
5091	if s.RoleARN == nil {
5092		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
5093	}
5094	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
5095		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
5096	}
5097
5098	if invalidParams.Len() > 0 {
5099		return invalidParams
5100	}
5101	return nil
5102}
5103
5104// SetResourceARN sets the ResourceARN field's value.
5105func (s *KinesisFirehoseInput) SetResourceARN(v string) *KinesisFirehoseInput {
5106	s.ResourceARN = &v
5107	return s
5108}
5109
5110// SetRoleARN sets the RoleARN field's value.
5111func (s *KinesisFirehoseInput) SetRoleARN(v string) *KinesisFirehoseInput {
5112	s.RoleARN = &v
5113	return s
5114}
5115
5116// Describes the Amazon Kinesis Firehose delivery stream that is configured
5117// as the streaming source in the application input configuration.
5118type KinesisFirehoseInputDescription struct {
5119	_ struct{} `type:"structure"`
5120
5121	// Amazon Resource Name (ARN) of the Amazon Kinesis Firehose delivery stream.
5122	ResourceARN *string `min:"1" type:"string"`
5123
5124	// ARN of the IAM role that Amazon Kinesis Analytics assumes to access the stream.
5125	RoleARN *string `min:"1" type:"string"`
5126}
5127
5128// String returns the string representation
5129func (s KinesisFirehoseInputDescription) String() string {
5130	return awsutil.Prettify(s)
5131}
5132
5133// GoString returns the string representation
5134func (s KinesisFirehoseInputDescription) GoString() string {
5135	return s.String()
5136}
5137
5138// SetResourceARN sets the ResourceARN field's value.
5139func (s *KinesisFirehoseInputDescription) SetResourceARN(v string) *KinesisFirehoseInputDescription {
5140	s.ResourceARN = &v
5141	return s
5142}
5143
5144// SetRoleARN sets the RoleARN field's value.
5145func (s *KinesisFirehoseInputDescription) SetRoleARN(v string) *KinesisFirehoseInputDescription {
5146	s.RoleARN = &v
5147	return s
5148}
5149
5150// When updating application input configuration, provides information about
5151// an Amazon Kinesis Firehose delivery stream as the streaming source.
5152type KinesisFirehoseInputUpdate struct {
5153	_ struct{} `type:"structure"`
5154
5155	// Amazon Resource Name (ARN) of the input Amazon Kinesis Firehose delivery
5156	// stream to read.
5157	ResourceARNUpdate *string `min:"1" type:"string"`
5158
5159	// ARN of the IAM role that Amazon Kinesis Analytics can assume to access the
5160	// stream on your behalf. You need to grant the necessary permissions to this
5161	// role.
5162	RoleARNUpdate *string `min:"1" type:"string"`
5163}
5164
5165// String returns the string representation
5166func (s KinesisFirehoseInputUpdate) String() string {
5167	return awsutil.Prettify(s)
5168}
5169
5170// GoString returns the string representation
5171func (s KinesisFirehoseInputUpdate) GoString() string {
5172	return s.String()
5173}
5174
5175// Validate inspects the fields of the type to determine if they are valid.
5176func (s *KinesisFirehoseInputUpdate) Validate() error {
5177	invalidParams := request.ErrInvalidParams{Context: "KinesisFirehoseInputUpdate"}
5178	if s.ResourceARNUpdate != nil && len(*s.ResourceARNUpdate) < 1 {
5179		invalidParams.Add(request.NewErrParamMinLen("ResourceARNUpdate", 1))
5180	}
5181	if s.RoleARNUpdate != nil && len(*s.RoleARNUpdate) < 1 {
5182		invalidParams.Add(request.NewErrParamMinLen("RoleARNUpdate", 1))
5183	}
5184
5185	if invalidParams.Len() > 0 {
5186		return invalidParams
5187	}
5188	return nil
5189}
5190
5191// SetResourceARNUpdate sets the ResourceARNUpdate field's value.
5192func (s *KinesisFirehoseInputUpdate) SetResourceARNUpdate(v string) *KinesisFirehoseInputUpdate {
5193	s.ResourceARNUpdate = &v
5194	return s
5195}
5196
5197// SetRoleARNUpdate sets the RoleARNUpdate field's value.
5198func (s *KinesisFirehoseInputUpdate) SetRoleARNUpdate(v string) *KinesisFirehoseInputUpdate {
5199	s.RoleARNUpdate = &v
5200	return s
5201}
5202
5203// When configuring application output, identifies an Amazon Kinesis Firehose
5204// delivery stream as the destination. You provide the stream Amazon Resource
5205// Name (ARN) and an IAM role that enables Amazon Kinesis Analytics to write
5206// to the stream on your behalf.
5207type KinesisFirehoseOutput struct {
5208	_ struct{} `type:"structure"`
5209
5210	// ARN of the destination Amazon Kinesis Firehose delivery stream to write to.
5211	//
5212	// ResourceARN is a required field
5213	ResourceARN *string `min:"1" type:"string" required:"true"`
5214
5215	// ARN of the IAM role that Amazon Kinesis Analytics can assume to write to
5216	// the destination stream on your behalf. You need to grant the necessary permissions
5217	// to this role.
5218	//
5219	// RoleARN is a required field
5220	RoleARN *string `min:"1" type:"string" required:"true"`
5221}
5222
5223// String returns the string representation
5224func (s KinesisFirehoseOutput) String() string {
5225	return awsutil.Prettify(s)
5226}
5227
5228// GoString returns the string representation
5229func (s KinesisFirehoseOutput) GoString() string {
5230	return s.String()
5231}
5232
5233// Validate inspects the fields of the type to determine if they are valid.
5234func (s *KinesisFirehoseOutput) Validate() error {
5235	invalidParams := request.ErrInvalidParams{Context: "KinesisFirehoseOutput"}
5236	if s.ResourceARN == nil {
5237		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
5238	}
5239	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
5240		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
5241	}
5242	if s.RoleARN == nil {
5243		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
5244	}
5245	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
5246		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
5247	}
5248
5249	if invalidParams.Len() > 0 {
5250		return invalidParams
5251	}
5252	return nil
5253}
5254
5255// SetResourceARN sets the ResourceARN field's value.
5256func (s *KinesisFirehoseOutput) SetResourceARN(v string) *KinesisFirehoseOutput {
5257	s.ResourceARN = &v
5258	return s
5259}
5260
5261// SetRoleARN sets the RoleARN field's value.
5262func (s *KinesisFirehoseOutput) SetRoleARN(v string) *KinesisFirehoseOutput {
5263	s.RoleARN = &v
5264	return s
5265}
5266
5267// For an application output, describes the Amazon Kinesis Firehose delivery
5268// stream configured as its destination.
5269type KinesisFirehoseOutputDescription struct {
5270	_ struct{} `type:"structure"`
5271
5272	// Amazon Resource Name (ARN) of the Amazon Kinesis Firehose delivery stream.
5273	ResourceARN *string `min:"1" type:"string"`
5274
5275	// ARN of the IAM role that Amazon Kinesis Analytics can assume to access the
5276	// stream.
5277	RoleARN *string `min:"1" type:"string"`
5278}
5279
5280// String returns the string representation
5281func (s KinesisFirehoseOutputDescription) String() string {
5282	return awsutil.Prettify(s)
5283}
5284
5285// GoString returns the string representation
5286func (s KinesisFirehoseOutputDescription) GoString() string {
5287	return s.String()
5288}
5289
5290// SetResourceARN sets the ResourceARN field's value.
5291func (s *KinesisFirehoseOutputDescription) SetResourceARN(v string) *KinesisFirehoseOutputDescription {
5292	s.ResourceARN = &v
5293	return s
5294}
5295
5296// SetRoleARN sets the RoleARN field's value.
5297func (s *KinesisFirehoseOutputDescription) SetRoleARN(v string) *KinesisFirehoseOutputDescription {
5298	s.RoleARN = &v
5299	return s
5300}
5301
5302// When updating an output configuration using the UpdateApplication (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_UpdateApplication.html)
5303// operation, provides information about an Amazon Kinesis Firehose delivery
5304// stream configured as the destination.
5305type KinesisFirehoseOutputUpdate struct {
5306	_ struct{} `type:"structure"`
5307
5308	// Amazon Resource Name (ARN) of the Amazon Kinesis Firehose delivery stream
5309	// to write to.
5310	ResourceARNUpdate *string `min:"1" type:"string"`
5311
5312	// ARN of the IAM role that Amazon Kinesis Analytics can assume to access the
5313	// stream on your behalf. You need to grant the necessary permissions to this
5314	// role.
5315	RoleARNUpdate *string `min:"1" type:"string"`
5316}
5317
5318// String returns the string representation
5319func (s KinesisFirehoseOutputUpdate) String() string {
5320	return awsutil.Prettify(s)
5321}
5322
5323// GoString returns the string representation
5324func (s KinesisFirehoseOutputUpdate) GoString() string {
5325	return s.String()
5326}
5327
5328// Validate inspects the fields of the type to determine if they are valid.
5329func (s *KinesisFirehoseOutputUpdate) Validate() error {
5330	invalidParams := request.ErrInvalidParams{Context: "KinesisFirehoseOutputUpdate"}
5331	if s.ResourceARNUpdate != nil && len(*s.ResourceARNUpdate) < 1 {
5332		invalidParams.Add(request.NewErrParamMinLen("ResourceARNUpdate", 1))
5333	}
5334	if s.RoleARNUpdate != nil && len(*s.RoleARNUpdate) < 1 {
5335		invalidParams.Add(request.NewErrParamMinLen("RoleARNUpdate", 1))
5336	}
5337
5338	if invalidParams.Len() > 0 {
5339		return invalidParams
5340	}
5341	return nil
5342}
5343
5344// SetResourceARNUpdate sets the ResourceARNUpdate field's value.
5345func (s *KinesisFirehoseOutputUpdate) SetResourceARNUpdate(v string) *KinesisFirehoseOutputUpdate {
5346	s.ResourceARNUpdate = &v
5347	return s
5348}
5349
5350// SetRoleARNUpdate sets the RoleARNUpdate field's value.
5351func (s *KinesisFirehoseOutputUpdate) SetRoleARNUpdate(v string) *KinesisFirehoseOutputUpdate {
5352	s.RoleARNUpdate = &v
5353	return s
5354}
5355
5356// Identifies an Amazon Kinesis stream as the streaming source. You provide
5357// the stream's Amazon Resource Name (ARN) and an IAM role ARN that enables
5358// Amazon Kinesis Analytics to access the stream on your behalf.
5359type KinesisStreamsInput struct {
5360	_ struct{} `type:"structure"`
5361
5362	// ARN of the input Amazon Kinesis stream to read.
5363	//
5364	// ResourceARN is a required field
5365	ResourceARN *string `min:"1" type:"string" required:"true"`
5366
5367	// ARN of the IAM role that Amazon Kinesis Analytics can assume to access the
5368	// stream on your behalf. You need to grant the necessary permissions to this
5369	// role.
5370	//
5371	// RoleARN is a required field
5372	RoleARN *string `min:"1" type:"string" required:"true"`
5373}
5374
5375// String returns the string representation
5376func (s KinesisStreamsInput) String() string {
5377	return awsutil.Prettify(s)
5378}
5379
5380// GoString returns the string representation
5381func (s KinesisStreamsInput) GoString() string {
5382	return s.String()
5383}
5384
5385// Validate inspects the fields of the type to determine if they are valid.
5386func (s *KinesisStreamsInput) Validate() error {
5387	invalidParams := request.ErrInvalidParams{Context: "KinesisStreamsInput"}
5388	if s.ResourceARN == nil {
5389		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
5390	}
5391	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
5392		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
5393	}
5394	if s.RoleARN == nil {
5395		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
5396	}
5397	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
5398		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
5399	}
5400
5401	if invalidParams.Len() > 0 {
5402		return invalidParams
5403	}
5404	return nil
5405}
5406
5407// SetResourceARN sets the ResourceARN field's value.
5408func (s *KinesisStreamsInput) SetResourceARN(v string) *KinesisStreamsInput {
5409	s.ResourceARN = &v
5410	return s
5411}
5412
5413// SetRoleARN sets the RoleARN field's value.
5414func (s *KinesisStreamsInput) SetRoleARN(v string) *KinesisStreamsInput {
5415	s.RoleARN = &v
5416	return s
5417}
5418
5419// Describes the Amazon Kinesis stream that is configured as the streaming source
5420// in the application input configuration.
5421type KinesisStreamsInputDescription struct {
5422	_ struct{} `type:"structure"`
5423
5424	// Amazon Resource Name (ARN) of the Amazon Kinesis stream.
5425	ResourceARN *string `min:"1" type:"string"`
5426
5427	// ARN of the IAM role that Amazon Kinesis Analytics can assume to access the
5428	// stream.
5429	RoleARN *string `min:"1" type:"string"`
5430}
5431
5432// String returns the string representation
5433func (s KinesisStreamsInputDescription) String() string {
5434	return awsutil.Prettify(s)
5435}
5436
5437// GoString returns the string representation
5438func (s KinesisStreamsInputDescription) GoString() string {
5439	return s.String()
5440}
5441
5442// SetResourceARN sets the ResourceARN field's value.
5443func (s *KinesisStreamsInputDescription) SetResourceARN(v string) *KinesisStreamsInputDescription {
5444	s.ResourceARN = &v
5445	return s
5446}
5447
5448// SetRoleARN sets the RoleARN field's value.
5449func (s *KinesisStreamsInputDescription) SetRoleARN(v string) *KinesisStreamsInputDescription {
5450	s.RoleARN = &v
5451	return s
5452}
5453
5454// When updating application input configuration, provides information about
5455// an Amazon Kinesis stream as the streaming source.
5456type KinesisStreamsInputUpdate struct {
5457	_ struct{} `type:"structure"`
5458
5459	// Amazon Resource Name (ARN) of the input Amazon Kinesis stream to read.
5460	ResourceARNUpdate *string `min:"1" type:"string"`
5461
5462	// ARN of the IAM role that Amazon Kinesis Analytics can assume to access the
5463	// stream on your behalf. You need to grant the necessary permissions to this
5464	// role.
5465	RoleARNUpdate *string `min:"1" type:"string"`
5466}
5467
5468// String returns the string representation
5469func (s KinesisStreamsInputUpdate) String() string {
5470	return awsutil.Prettify(s)
5471}
5472
5473// GoString returns the string representation
5474func (s KinesisStreamsInputUpdate) GoString() string {
5475	return s.String()
5476}
5477
5478// Validate inspects the fields of the type to determine if they are valid.
5479func (s *KinesisStreamsInputUpdate) Validate() error {
5480	invalidParams := request.ErrInvalidParams{Context: "KinesisStreamsInputUpdate"}
5481	if s.ResourceARNUpdate != nil && len(*s.ResourceARNUpdate) < 1 {
5482		invalidParams.Add(request.NewErrParamMinLen("ResourceARNUpdate", 1))
5483	}
5484	if s.RoleARNUpdate != nil && len(*s.RoleARNUpdate) < 1 {
5485		invalidParams.Add(request.NewErrParamMinLen("RoleARNUpdate", 1))
5486	}
5487
5488	if invalidParams.Len() > 0 {
5489		return invalidParams
5490	}
5491	return nil
5492}
5493
5494// SetResourceARNUpdate sets the ResourceARNUpdate field's value.
5495func (s *KinesisStreamsInputUpdate) SetResourceARNUpdate(v string) *KinesisStreamsInputUpdate {
5496	s.ResourceARNUpdate = &v
5497	return s
5498}
5499
5500// SetRoleARNUpdate sets the RoleARNUpdate field's value.
5501func (s *KinesisStreamsInputUpdate) SetRoleARNUpdate(v string) *KinesisStreamsInputUpdate {
5502	s.RoleARNUpdate = &v
5503	return s
5504}
5505
5506// When configuring application output, identifies an Amazon Kinesis stream
5507// as the destination. You provide the stream Amazon Resource Name (ARN) and
5508// also an IAM role ARN that Amazon Kinesis Analytics can use to write to the
5509// stream on your behalf.
5510type KinesisStreamsOutput struct {
5511	_ struct{} `type:"structure"`
5512
5513	// ARN of the destination Amazon Kinesis stream to write to.
5514	//
5515	// ResourceARN is a required field
5516	ResourceARN *string `min:"1" type:"string" required:"true"`
5517
5518	// ARN of the IAM role that Amazon Kinesis Analytics can assume to write to
5519	// the destination stream on your behalf. You need to grant the necessary permissions
5520	// to this role.
5521	//
5522	// RoleARN is a required field
5523	RoleARN *string `min:"1" type:"string" required:"true"`
5524}
5525
5526// String returns the string representation
5527func (s KinesisStreamsOutput) String() string {
5528	return awsutil.Prettify(s)
5529}
5530
5531// GoString returns the string representation
5532func (s KinesisStreamsOutput) GoString() string {
5533	return s.String()
5534}
5535
5536// Validate inspects the fields of the type to determine if they are valid.
5537func (s *KinesisStreamsOutput) Validate() error {
5538	invalidParams := request.ErrInvalidParams{Context: "KinesisStreamsOutput"}
5539	if s.ResourceARN == nil {
5540		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
5541	}
5542	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
5543		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
5544	}
5545	if s.RoleARN == nil {
5546		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
5547	}
5548	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
5549		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
5550	}
5551
5552	if invalidParams.Len() > 0 {
5553		return invalidParams
5554	}
5555	return nil
5556}
5557
5558// SetResourceARN sets the ResourceARN field's value.
5559func (s *KinesisStreamsOutput) SetResourceARN(v string) *KinesisStreamsOutput {
5560	s.ResourceARN = &v
5561	return s
5562}
5563
5564// SetRoleARN sets the RoleARN field's value.
5565func (s *KinesisStreamsOutput) SetRoleARN(v string) *KinesisStreamsOutput {
5566	s.RoleARN = &v
5567	return s
5568}
5569
5570// For an application output, describes the Amazon Kinesis stream configured
5571// as its destination.
5572type KinesisStreamsOutputDescription struct {
5573	_ struct{} `type:"structure"`
5574
5575	// Amazon Resource Name (ARN) of the Amazon Kinesis stream.
5576	ResourceARN *string `min:"1" type:"string"`
5577
5578	// ARN of the IAM role that Amazon Kinesis Analytics can assume to access the
5579	// stream.
5580	RoleARN *string `min:"1" type:"string"`
5581}
5582
5583// String returns the string representation
5584func (s KinesisStreamsOutputDescription) String() string {
5585	return awsutil.Prettify(s)
5586}
5587
5588// GoString returns the string representation
5589func (s KinesisStreamsOutputDescription) GoString() string {
5590	return s.String()
5591}
5592
5593// SetResourceARN sets the ResourceARN field's value.
5594func (s *KinesisStreamsOutputDescription) SetResourceARN(v string) *KinesisStreamsOutputDescription {
5595	s.ResourceARN = &v
5596	return s
5597}
5598
5599// SetRoleARN sets the RoleARN field's value.
5600func (s *KinesisStreamsOutputDescription) SetRoleARN(v string) *KinesisStreamsOutputDescription {
5601	s.RoleARN = &v
5602	return s
5603}
5604
5605// When updating an output configuration using the UpdateApplication (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_UpdateApplication.html)
5606// operation, provides information about an Amazon Kinesis stream configured
5607// as the destination.
5608type KinesisStreamsOutputUpdate struct {
5609	_ struct{} `type:"structure"`
5610
5611	// Amazon Resource Name (ARN) of the Amazon Kinesis stream where you want to
5612	// write the output.
5613	ResourceARNUpdate *string `min:"1" type:"string"`
5614
5615	// ARN of the IAM role that Amazon Kinesis Analytics can assume to access the
5616	// stream on your behalf. You need to grant the necessary permissions to this
5617	// role.
5618	RoleARNUpdate *string `min:"1" type:"string"`
5619}
5620
5621// String returns the string representation
5622func (s KinesisStreamsOutputUpdate) String() string {
5623	return awsutil.Prettify(s)
5624}
5625
5626// GoString returns the string representation
5627func (s KinesisStreamsOutputUpdate) GoString() string {
5628	return s.String()
5629}
5630
5631// Validate inspects the fields of the type to determine if they are valid.
5632func (s *KinesisStreamsOutputUpdate) Validate() error {
5633	invalidParams := request.ErrInvalidParams{Context: "KinesisStreamsOutputUpdate"}
5634	if s.ResourceARNUpdate != nil && len(*s.ResourceARNUpdate) < 1 {
5635		invalidParams.Add(request.NewErrParamMinLen("ResourceARNUpdate", 1))
5636	}
5637	if s.RoleARNUpdate != nil && len(*s.RoleARNUpdate) < 1 {
5638		invalidParams.Add(request.NewErrParamMinLen("RoleARNUpdate", 1))
5639	}
5640
5641	if invalidParams.Len() > 0 {
5642		return invalidParams
5643	}
5644	return nil
5645}
5646
5647// SetResourceARNUpdate sets the ResourceARNUpdate field's value.
5648func (s *KinesisStreamsOutputUpdate) SetResourceARNUpdate(v string) *KinesisStreamsOutputUpdate {
5649	s.ResourceARNUpdate = &v
5650	return s
5651}
5652
5653// SetRoleARNUpdate sets the RoleARNUpdate field's value.
5654func (s *KinesisStreamsOutputUpdate) SetRoleARNUpdate(v string) *KinesisStreamsOutputUpdate {
5655	s.RoleARNUpdate = &v
5656	return s
5657}
5658
5659// When configuring application output, identifies an AWS Lambda function as
5660// the destination. You provide the function Amazon Resource Name (ARN) and
5661// also an IAM role ARN that Amazon Kinesis Analytics can use to write to the
5662// function on your behalf.
5663type LambdaOutput struct {
5664	_ struct{} `type:"structure"`
5665
5666	// Amazon Resource Name (ARN) of the destination Lambda function to write to.
5667	//
5668	// To specify an earlier version of the Lambda function than the latest, include
5669	// the Lambda function version in the Lambda function ARN. For more information
5670	// about Lambda ARNs, see Example ARNs: AWS Lambda (/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda)
5671	//
5672	// ResourceARN is a required field
5673	ResourceARN *string `min:"1" type:"string" required:"true"`
5674
5675	// ARN of the IAM role that Amazon Kinesis Analytics can assume to write to
5676	// the destination function on your behalf. You need to grant the necessary
5677	// permissions to this role.
5678	//
5679	// RoleARN is a required field
5680	RoleARN *string `min:"1" type:"string" required:"true"`
5681}
5682
5683// String returns the string representation
5684func (s LambdaOutput) String() string {
5685	return awsutil.Prettify(s)
5686}
5687
5688// GoString returns the string representation
5689func (s LambdaOutput) GoString() string {
5690	return s.String()
5691}
5692
5693// Validate inspects the fields of the type to determine if they are valid.
5694func (s *LambdaOutput) Validate() error {
5695	invalidParams := request.ErrInvalidParams{Context: "LambdaOutput"}
5696	if s.ResourceARN == nil {
5697		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
5698	}
5699	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
5700		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
5701	}
5702	if s.RoleARN == nil {
5703		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
5704	}
5705	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
5706		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
5707	}
5708
5709	if invalidParams.Len() > 0 {
5710		return invalidParams
5711	}
5712	return nil
5713}
5714
5715// SetResourceARN sets the ResourceARN field's value.
5716func (s *LambdaOutput) SetResourceARN(v string) *LambdaOutput {
5717	s.ResourceARN = &v
5718	return s
5719}
5720
5721// SetRoleARN sets the RoleARN field's value.
5722func (s *LambdaOutput) SetRoleARN(v string) *LambdaOutput {
5723	s.RoleARN = &v
5724	return s
5725}
5726
5727// For an application output, describes the AWS Lambda function configured as
5728// its destination.
5729type LambdaOutputDescription struct {
5730	_ struct{} `type:"structure"`
5731
5732	// Amazon Resource Name (ARN) of the destination Lambda function.
5733	ResourceARN *string `min:"1" type:"string"`
5734
5735	// ARN of the IAM role that Amazon Kinesis Analytics can assume to write to
5736	// the destination function.
5737	RoleARN *string `min:"1" type:"string"`
5738}
5739
5740// String returns the string representation
5741func (s LambdaOutputDescription) String() string {
5742	return awsutil.Prettify(s)
5743}
5744
5745// GoString returns the string representation
5746func (s LambdaOutputDescription) GoString() string {
5747	return s.String()
5748}
5749
5750// SetResourceARN sets the ResourceARN field's value.
5751func (s *LambdaOutputDescription) SetResourceARN(v string) *LambdaOutputDescription {
5752	s.ResourceARN = &v
5753	return s
5754}
5755
5756// SetRoleARN sets the RoleARN field's value.
5757func (s *LambdaOutputDescription) SetRoleARN(v string) *LambdaOutputDescription {
5758	s.RoleARN = &v
5759	return s
5760}
5761
5762// When updating an output configuration using the UpdateApplication (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_UpdateApplication.html)
5763// operation, provides information about an AWS Lambda function configured as
5764// the destination.
5765type LambdaOutputUpdate struct {
5766	_ struct{} `type:"structure"`
5767
5768	// Amazon Resource Name (ARN) of the destination Lambda function.
5769	//
5770	// To specify an earlier version of the Lambda function than the latest, include
5771	// the Lambda function version in the Lambda function ARN. For more information
5772	// about Lambda ARNs, see Example ARNs: AWS Lambda (/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-lambda)
5773	ResourceARNUpdate *string `min:"1" type:"string"`
5774
5775	// ARN of the IAM role that Amazon Kinesis Analytics can assume to write to
5776	// the destination function on your behalf. You need to grant the necessary
5777	// permissions to this role.
5778	RoleARNUpdate *string `min:"1" type:"string"`
5779}
5780
5781// String returns the string representation
5782func (s LambdaOutputUpdate) String() string {
5783	return awsutil.Prettify(s)
5784}
5785
5786// GoString returns the string representation
5787func (s LambdaOutputUpdate) GoString() string {
5788	return s.String()
5789}
5790
5791// Validate inspects the fields of the type to determine if they are valid.
5792func (s *LambdaOutputUpdate) Validate() error {
5793	invalidParams := request.ErrInvalidParams{Context: "LambdaOutputUpdate"}
5794	if s.ResourceARNUpdate != nil && len(*s.ResourceARNUpdate) < 1 {
5795		invalidParams.Add(request.NewErrParamMinLen("ResourceARNUpdate", 1))
5796	}
5797	if s.RoleARNUpdate != nil && len(*s.RoleARNUpdate) < 1 {
5798		invalidParams.Add(request.NewErrParamMinLen("RoleARNUpdate", 1))
5799	}
5800
5801	if invalidParams.Len() > 0 {
5802		return invalidParams
5803	}
5804	return nil
5805}
5806
5807// SetResourceARNUpdate sets the ResourceARNUpdate field's value.
5808func (s *LambdaOutputUpdate) SetResourceARNUpdate(v string) *LambdaOutputUpdate {
5809	s.ResourceARNUpdate = &v
5810	return s
5811}
5812
5813// SetRoleARNUpdate sets the RoleARNUpdate field's value.
5814func (s *LambdaOutputUpdate) SetRoleARNUpdate(v string) *LambdaOutputUpdate {
5815	s.RoleARNUpdate = &v
5816	return s
5817}
5818
5819type ListApplicationsInput struct {
5820	_ struct{} `type:"structure"`
5821
5822	// Name of the application to start the list with. When using pagination to
5823	// retrieve the list, you don't need to specify this parameter in the first
5824	// request. However, in subsequent requests, you add the last application name
5825	// from the previous response to get the next page of applications.
5826	ExclusiveStartApplicationName *string `min:"1" type:"string"`
5827
5828	// Maximum number of applications to list.
5829	Limit *int64 `min:"1" type:"integer"`
5830}
5831
5832// String returns the string representation
5833func (s ListApplicationsInput) String() string {
5834	return awsutil.Prettify(s)
5835}
5836
5837// GoString returns the string representation
5838func (s ListApplicationsInput) GoString() string {
5839	return s.String()
5840}
5841
5842// Validate inspects the fields of the type to determine if they are valid.
5843func (s *ListApplicationsInput) Validate() error {
5844	invalidParams := request.ErrInvalidParams{Context: "ListApplicationsInput"}
5845	if s.ExclusiveStartApplicationName != nil && len(*s.ExclusiveStartApplicationName) < 1 {
5846		invalidParams.Add(request.NewErrParamMinLen("ExclusiveStartApplicationName", 1))
5847	}
5848	if s.Limit != nil && *s.Limit < 1 {
5849		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
5850	}
5851
5852	if invalidParams.Len() > 0 {
5853		return invalidParams
5854	}
5855	return nil
5856}
5857
5858// SetExclusiveStartApplicationName sets the ExclusiveStartApplicationName field's value.
5859func (s *ListApplicationsInput) SetExclusiveStartApplicationName(v string) *ListApplicationsInput {
5860	s.ExclusiveStartApplicationName = &v
5861	return s
5862}
5863
5864// SetLimit sets the Limit field's value.
5865func (s *ListApplicationsInput) SetLimit(v int64) *ListApplicationsInput {
5866	s.Limit = &v
5867	return s
5868}
5869
5870type ListApplicationsOutput struct {
5871	_ struct{} `type:"structure"`
5872
5873	// List of ApplicationSummary objects.
5874	//
5875	// ApplicationSummaries is a required field
5876	ApplicationSummaries []*ApplicationSummary `type:"list" required:"true"`
5877
5878	// Returns true if there are more applications to retrieve.
5879	//
5880	// HasMoreApplications is a required field
5881	HasMoreApplications *bool `type:"boolean" required:"true"`
5882}
5883
5884// String returns the string representation
5885func (s ListApplicationsOutput) String() string {
5886	return awsutil.Prettify(s)
5887}
5888
5889// GoString returns the string representation
5890func (s ListApplicationsOutput) GoString() string {
5891	return s.String()
5892}
5893
5894// SetApplicationSummaries sets the ApplicationSummaries field's value.
5895func (s *ListApplicationsOutput) SetApplicationSummaries(v []*ApplicationSummary) *ListApplicationsOutput {
5896	s.ApplicationSummaries = v
5897	return s
5898}
5899
5900// SetHasMoreApplications sets the HasMoreApplications field's value.
5901func (s *ListApplicationsOutput) SetHasMoreApplications(v bool) *ListApplicationsOutput {
5902	s.HasMoreApplications = &v
5903	return s
5904}
5905
5906type ListTagsForResourceInput struct {
5907	_ struct{} `type:"structure"`
5908
5909	// The ARN of the application for which to retrieve tags.
5910	//
5911	// ResourceARN is a required field
5912	ResourceARN *string `min:"1" type:"string" required:"true"`
5913}
5914
5915// String returns the string representation
5916func (s ListTagsForResourceInput) String() string {
5917	return awsutil.Prettify(s)
5918}
5919
5920// GoString returns the string representation
5921func (s ListTagsForResourceInput) GoString() string {
5922	return s.String()
5923}
5924
5925// Validate inspects the fields of the type to determine if they are valid.
5926func (s *ListTagsForResourceInput) Validate() error {
5927	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
5928	if s.ResourceARN == nil {
5929		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
5930	}
5931	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
5932		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
5933	}
5934
5935	if invalidParams.Len() > 0 {
5936		return invalidParams
5937	}
5938	return nil
5939}
5940
5941// SetResourceARN sets the ResourceARN field's value.
5942func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
5943	s.ResourceARN = &v
5944	return s
5945}
5946
5947type ListTagsForResourceOutput struct {
5948	_ struct{} `type:"structure"`
5949
5950	// The key-value tags assigned to the application.
5951	Tags []*Tag `min:"1" type:"list"`
5952}
5953
5954// String returns the string representation
5955func (s ListTagsForResourceOutput) String() string {
5956	return awsutil.Prettify(s)
5957}
5958
5959// GoString returns the string representation
5960func (s ListTagsForResourceOutput) GoString() string {
5961	return s.String()
5962}
5963
5964// SetTags sets the Tags field's value.
5965func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
5966	s.Tags = v
5967	return s
5968}
5969
5970// When configuring application input at the time of creating or updating an
5971// application, provides additional mapping information specific to the record
5972// format (such as JSON, CSV, or record fields delimited by some delimiter)
5973// on the streaming source.
5974type MappingParameters struct {
5975	_ struct{} `type:"structure"`
5976
5977	// Provides additional mapping information when the record format uses delimiters
5978	// (for example, CSV).
5979	CSVMappingParameters *CSVMappingParameters `type:"structure"`
5980
5981	// Provides additional mapping information when JSON is the record format on
5982	// the streaming source.
5983	JSONMappingParameters *JSONMappingParameters `type:"structure"`
5984}
5985
5986// String returns the string representation
5987func (s MappingParameters) String() string {
5988	return awsutil.Prettify(s)
5989}
5990
5991// GoString returns the string representation
5992func (s MappingParameters) GoString() string {
5993	return s.String()
5994}
5995
5996// Validate inspects the fields of the type to determine if they are valid.
5997func (s *MappingParameters) Validate() error {
5998	invalidParams := request.ErrInvalidParams{Context: "MappingParameters"}
5999	if s.CSVMappingParameters != nil {
6000		if err := s.CSVMappingParameters.Validate(); err != nil {
6001			invalidParams.AddNested("CSVMappingParameters", err.(request.ErrInvalidParams))
6002		}
6003	}
6004	if s.JSONMappingParameters != nil {
6005		if err := s.JSONMappingParameters.Validate(); err != nil {
6006			invalidParams.AddNested("JSONMappingParameters", err.(request.ErrInvalidParams))
6007		}
6008	}
6009
6010	if invalidParams.Len() > 0 {
6011		return invalidParams
6012	}
6013	return nil
6014}
6015
6016// SetCSVMappingParameters sets the CSVMappingParameters field's value.
6017func (s *MappingParameters) SetCSVMappingParameters(v *CSVMappingParameters) *MappingParameters {
6018	s.CSVMappingParameters = v
6019	return s
6020}
6021
6022// SetJSONMappingParameters sets the JSONMappingParameters field's value.
6023func (s *MappingParameters) SetJSONMappingParameters(v *JSONMappingParameters) *MappingParameters {
6024	s.JSONMappingParameters = v
6025	return s
6026}
6027
6028// Describes application output configuration in which you identify an in-application
6029// stream and a destination where you want the in-application stream data to
6030// be written. The destination can be an Amazon Kinesis stream or an Amazon
6031// Kinesis Firehose delivery stream.
6032//
6033// For limits on how many destinations an application can write and other limitations,
6034// see Limits (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/limits.html).
6035type Output struct {
6036	_ struct{} `type:"structure"`
6037
6038	// Describes the data format when records are written to the destination. For
6039	// more information, see Configuring Application Output (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html).
6040	//
6041	// DestinationSchema is a required field
6042	DestinationSchema *DestinationSchema `type:"structure" required:"true"`
6043
6044	// Identifies an Amazon Kinesis Firehose delivery stream as the destination.
6045	KinesisFirehoseOutput *KinesisFirehoseOutput `type:"structure"`
6046
6047	// Identifies an Amazon Kinesis stream as the destination.
6048	KinesisStreamsOutput *KinesisStreamsOutput `type:"structure"`
6049
6050	// Identifies an AWS Lambda function as the destination.
6051	LambdaOutput *LambdaOutput `type:"structure"`
6052
6053	// Name of the in-application stream.
6054	//
6055	// Name is a required field
6056	Name *string `min:"1" type:"string" required:"true"`
6057}
6058
6059// String returns the string representation
6060func (s Output) String() string {
6061	return awsutil.Prettify(s)
6062}
6063
6064// GoString returns the string representation
6065func (s Output) GoString() string {
6066	return s.String()
6067}
6068
6069// Validate inspects the fields of the type to determine if they are valid.
6070func (s *Output) Validate() error {
6071	invalidParams := request.ErrInvalidParams{Context: "Output"}
6072	if s.DestinationSchema == nil {
6073		invalidParams.Add(request.NewErrParamRequired("DestinationSchema"))
6074	}
6075	if s.Name == nil {
6076		invalidParams.Add(request.NewErrParamRequired("Name"))
6077	}
6078	if s.Name != nil && len(*s.Name) < 1 {
6079		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6080	}
6081	if s.DestinationSchema != nil {
6082		if err := s.DestinationSchema.Validate(); err != nil {
6083			invalidParams.AddNested("DestinationSchema", err.(request.ErrInvalidParams))
6084		}
6085	}
6086	if s.KinesisFirehoseOutput != nil {
6087		if err := s.KinesisFirehoseOutput.Validate(); err != nil {
6088			invalidParams.AddNested("KinesisFirehoseOutput", err.(request.ErrInvalidParams))
6089		}
6090	}
6091	if s.KinesisStreamsOutput != nil {
6092		if err := s.KinesisStreamsOutput.Validate(); err != nil {
6093			invalidParams.AddNested("KinesisStreamsOutput", err.(request.ErrInvalidParams))
6094		}
6095	}
6096	if s.LambdaOutput != nil {
6097		if err := s.LambdaOutput.Validate(); err != nil {
6098			invalidParams.AddNested("LambdaOutput", err.(request.ErrInvalidParams))
6099		}
6100	}
6101
6102	if invalidParams.Len() > 0 {
6103		return invalidParams
6104	}
6105	return nil
6106}
6107
6108// SetDestinationSchema sets the DestinationSchema field's value.
6109func (s *Output) SetDestinationSchema(v *DestinationSchema) *Output {
6110	s.DestinationSchema = v
6111	return s
6112}
6113
6114// SetKinesisFirehoseOutput sets the KinesisFirehoseOutput field's value.
6115func (s *Output) SetKinesisFirehoseOutput(v *KinesisFirehoseOutput) *Output {
6116	s.KinesisFirehoseOutput = v
6117	return s
6118}
6119
6120// SetKinesisStreamsOutput sets the KinesisStreamsOutput field's value.
6121func (s *Output) SetKinesisStreamsOutput(v *KinesisStreamsOutput) *Output {
6122	s.KinesisStreamsOutput = v
6123	return s
6124}
6125
6126// SetLambdaOutput sets the LambdaOutput field's value.
6127func (s *Output) SetLambdaOutput(v *LambdaOutput) *Output {
6128	s.LambdaOutput = v
6129	return s
6130}
6131
6132// SetName sets the Name field's value.
6133func (s *Output) SetName(v string) *Output {
6134	s.Name = &v
6135	return s
6136}
6137
6138// Describes the application output configuration, which includes the in-application
6139// stream name and the destination where the stream data is written. The destination
6140// can be an Amazon Kinesis stream or an Amazon Kinesis Firehose delivery stream.
6141type OutputDescription struct {
6142	_ struct{} `type:"structure"`
6143
6144	// Data format used for writing data to the destination.
6145	DestinationSchema *DestinationSchema `type:"structure"`
6146
6147	// Describes the Amazon Kinesis Firehose delivery stream configured as the destination
6148	// where output is written.
6149	KinesisFirehoseOutputDescription *KinesisFirehoseOutputDescription `type:"structure"`
6150
6151	// Describes Amazon Kinesis stream configured as the destination where output
6152	// is written.
6153	KinesisStreamsOutputDescription *KinesisStreamsOutputDescription `type:"structure"`
6154
6155	// Describes the AWS Lambda function configured as the destination where output
6156	// is written.
6157	LambdaOutputDescription *LambdaOutputDescription `type:"structure"`
6158
6159	// Name of the in-application stream configured as output.
6160	Name *string `min:"1" type:"string"`
6161
6162	// A unique identifier for the output configuration.
6163	OutputId *string `min:"1" type:"string"`
6164}
6165
6166// String returns the string representation
6167func (s OutputDescription) String() string {
6168	return awsutil.Prettify(s)
6169}
6170
6171// GoString returns the string representation
6172func (s OutputDescription) GoString() string {
6173	return s.String()
6174}
6175
6176// SetDestinationSchema sets the DestinationSchema field's value.
6177func (s *OutputDescription) SetDestinationSchema(v *DestinationSchema) *OutputDescription {
6178	s.DestinationSchema = v
6179	return s
6180}
6181
6182// SetKinesisFirehoseOutputDescription sets the KinesisFirehoseOutputDescription field's value.
6183func (s *OutputDescription) SetKinesisFirehoseOutputDescription(v *KinesisFirehoseOutputDescription) *OutputDescription {
6184	s.KinesisFirehoseOutputDescription = v
6185	return s
6186}
6187
6188// SetKinesisStreamsOutputDescription sets the KinesisStreamsOutputDescription field's value.
6189func (s *OutputDescription) SetKinesisStreamsOutputDescription(v *KinesisStreamsOutputDescription) *OutputDescription {
6190	s.KinesisStreamsOutputDescription = v
6191	return s
6192}
6193
6194// SetLambdaOutputDescription sets the LambdaOutputDescription field's value.
6195func (s *OutputDescription) SetLambdaOutputDescription(v *LambdaOutputDescription) *OutputDescription {
6196	s.LambdaOutputDescription = v
6197	return s
6198}
6199
6200// SetName sets the Name field's value.
6201func (s *OutputDescription) SetName(v string) *OutputDescription {
6202	s.Name = &v
6203	return s
6204}
6205
6206// SetOutputId sets the OutputId field's value.
6207func (s *OutputDescription) SetOutputId(v string) *OutputDescription {
6208	s.OutputId = &v
6209	return s
6210}
6211
6212// Describes updates to the output configuration identified by the OutputId.
6213type OutputUpdate struct {
6214	_ struct{} `type:"structure"`
6215
6216	// Describes the data format when records are written to the destination. For
6217	// more information, see Configuring Application Output (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html).
6218	DestinationSchemaUpdate *DestinationSchema `type:"structure"`
6219
6220	// Describes an Amazon Kinesis Firehose delivery stream as the destination for
6221	// the output.
6222	KinesisFirehoseOutputUpdate *KinesisFirehoseOutputUpdate `type:"structure"`
6223
6224	// Describes an Amazon Kinesis stream as the destination for the output.
6225	KinesisStreamsOutputUpdate *KinesisStreamsOutputUpdate `type:"structure"`
6226
6227	// Describes an AWS Lambda function as the destination for the output.
6228	LambdaOutputUpdate *LambdaOutputUpdate `type:"structure"`
6229
6230	// If you want to specify a different in-application stream for this output
6231	// configuration, use this field to specify the new in-application stream name.
6232	NameUpdate *string `min:"1" type:"string"`
6233
6234	// Identifies the specific output configuration that you want to update.
6235	//
6236	// OutputId is a required field
6237	OutputId *string `min:"1" type:"string" required:"true"`
6238}
6239
6240// String returns the string representation
6241func (s OutputUpdate) String() string {
6242	return awsutil.Prettify(s)
6243}
6244
6245// GoString returns the string representation
6246func (s OutputUpdate) GoString() string {
6247	return s.String()
6248}
6249
6250// Validate inspects the fields of the type to determine if they are valid.
6251func (s *OutputUpdate) Validate() error {
6252	invalidParams := request.ErrInvalidParams{Context: "OutputUpdate"}
6253	if s.NameUpdate != nil && len(*s.NameUpdate) < 1 {
6254		invalidParams.Add(request.NewErrParamMinLen("NameUpdate", 1))
6255	}
6256	if s.OutputId == nil {
6257		invalidParams.Add(request.NewErrParamRequired("OutputId"))
6258	}
6259	if s.OutputId != nil && len(*s.OutputId) < 1 {
6260		invalidParams.Add(request.NewErrParamMinLen("OutputId", 1))
6261	}
6262	if s.DestinationSchemaUpdate != nil {
6263		if err := s.DestinationSchemaUpdate.Validate(); err != nil {
6264			invalidParams.AddNested("DestinationSchemaUpdate", err.(request.ErrInvalidParams))
6265		}
6266	}
6267	if s.KinesisFirehoseOutputUpdate != nil {
6268		if err := s.KinesisFirehoseOutputUpdate.Validate(); err != nil {
6269			invalidParams.AddNested("KinesisFirehoseOutputUpdate", err.(request.ErrInvalidParams))
6270		}
6271	}
6272	if s.KinesisStreamsOutputUpdate != nil {
6273		if err := s.KinesisStreamsOutputUpdate.Validate(); err != nil {
6274			invalidParams.AddNested("KinesisStreamsOutputUpdate", err.(request.ErrInvalidParams))
6275		}
6276	}
6277	if s.LambdaOutputUpdate != nil {
6278		if err := s.LambdaOutputUpdate.Validate(); err != nil {
6279			invalidParams.AddNested("LambdaOutputUpdate", err.(request.ErrInvalidParams))
6280		}
6281	}
6282
6283	if invalidParams.Len() > 0 {
6284		return invalidParams
6285	}
6286	return nil
6287}
6288
6289// SetDestinationSchemaUpdate sets the DestinationSchemaUpdate field's value.
6290func (s *OutputUpdate) SetDestinationSchemaUpdate(v *DestinationSchema) *OutputUpdate {
6291	s.DestinationSchemaUpdate = v
6292	return s
6293}
6294
6295// SetKinesisFirehoseOutputUpdate sets the KinesisFirehoseOutputUpdate field's value.
6296func (s *OutputUpdate) SetKinesisFirehoseOutputUpdate(v *KinesisFirehoseOutputUpdate) *OutputUpdate {
6297	s.KinesisFirehoseOutputUpdate = v
6298	return s
6299}
6300
6301// SetKinesisStreamsOutputUpdate sets the KinesisStreamsOutputUpdate field's value.
6302func (s *OutputUpdate) SetKinesisStreamsOutputUpdate(v *KinesisStreamsOutputUpdate) *OutputUpdate {
6303	s.KinesisStreamsOutputUpdate = v
6304	return s
6305}
6306
6307// SetLambdaOutputUpdate sets the LambdaOutputUpdate field's value.
6308func (s *OutputUpdate) SetLambdaOutputUpdate(v *LambdaOutputUpdate) *OutputUpdate {
6309	s.LambdaOutputUpdate = v
6310	return s
6311}
6312
6313// SetNameUpdate sets the NameUpdate field's value.
6314func (s *OutputUpdate) SetNameUpdate(v string) *OutputUpdate {
6315	s.NameUpdate = &v
6316	return s
6317}
6318
6319// SetOutputId sets the OutputId field's value.
6320func (s *OutputUpdate) SetOutputId(v string) *OutputUpdate {
6321	s.OutputId = &v
6322	return s
6323}
6324
6325// Describes the mapping of each data element in the streaming source to the
6326// corresponding column in the in-application stream.
6327//
6328// Also used to describe the format of the reference data source.
6329type RecordColumn struct {
6330	_ struct{} `type:"structure"`
6331
6332	// Reference to the data element in the streaming input or the reference data
6333	// source. This element is required if the RecordFormatType (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_RecordFormat.html#analytics-Type-RecordFormat-RecordFormatTypel)
6334	// is JSON.
6335	Mapping *string `type:"string"`
6336
6337	// Name of the column created in the in-application input stream or reference
6338	// table.
6339	//
6340	// Name is a required field
6341	Name *string `type:"string" required:"true"`
6342
6343	// Type of column created in the in-application input stream or reference table.
6344	//
6345	// SqlType is a required field
6346	SqlType *string `min:"1" type:"string" required:"true"`
6347}
6348
6349// String returns the string representation
6350func (s RecordColumn) String() string {
6351	return awsutil.Prettify(s)
6352}
6353
6354// GoString returns the string representation
6355func (s RecordColumn) GoString() string {
6356	return s.String()
6357}
6358
6359// Validate inspects the fields of the type to determine if they are valid.
6360func (s *RecordColumn) Validate() error {
6361	invalidParams := request.ErrInvalidParams{Context: "RecordColumn"}
6362	if s.Name == nil {
6363		invalidParams.Add(request.NewErrParamRequired("Name"))
6364	}
6365	if s.SqlType == nil {
6366		invalidParams.Add(request.NewErrParamRequired("SqlType"))
6367	}
6368	if s.SqlType != nil && len(*s.SqlType) < 1 {
6369		invalidParams.Add(request.NewErrParamMinLen("SqlType", 1))
6370	}
6371
6372	if invalidParams.Len() > 0 {
6373		return invalidParams
6374	}
6375	return nil
6376}
6377
6378// SetMapping sets the Mapping field's value.
6379func (s *RecordColumn) SetMapping(v string) *RecordColumn {
6380	s.Mapping = &v
6381	return s
6382}
6383
6384// SetName sets the Name field's value.
6385func (s *RecordColumn) SetName(v string) *RecordColumn {
6386	s.Name = &v
6387	return s
6388}
6389
6390// SetSqlType sets the SqlType field's value.
6391func (s *RecordColumn) SetSqlType(v string) *RecordColumn {
6392	s.SqlType = &v
6393	return s
6394}
6395
6396// Describes the record format and relevant mapping information that should
6397// be applied to schematize the records on the stream.
6398type RecordFormat struct {
6399	_ struct{} `type:"structure"`
6400
6401	// When configuring application input at the time of creating or updating an
6402	// application, provides additional mapping information specific to the record
6403	// format (such as JSON, CSV, or record fields delimited by some delimiter)
6404	// on the streaming source.
6405	MappingParameters *MappingParameters `type:"structure"`
6406
6407	// The type of record format.
6408	//
6409	// RecordFormatType is a required field
6410	RecordFormatType *string `type:"string" required:"true" enum:"RecordFormatType"`
6411}
6412
6413// String returns the string representation
6414func (s RecordFormat) String() string {
6415	return awsutil.Prettify(s)
6416}
6417
6418// GoString returns the string representation
6419func (s RecordFormat) GoString() string {
6420	return s.String()
6421}
6422
6423// Validate inspects the fields of the type to determine if they are valid.
6424func (s *RecordFormat) Validate() error {
6425	invalidParams := request.ErrInvalidParams{Context: "RecordFormat"}
6426	if s.RecordFormatType == nil {
6427		invalidParams.Add(request.NewErrParamRequired("RecordFormatType"))
6428	}
6429	if s.MappingParameters != nil {
6430		if err := s.MappingParameters.Validate(); err != nil {
6431			invalidParams.AddNested("MappingParameters", err.(request.ErrInvalidParams))
6432		}
6433	}
6434
6435	if invalidParams.Len() > 0 {
6436		return invalidParams
6437	}
6438	return nil
6439}
6440
6441// SetMappingParameters sets the MappingParameters field's value.
6442func (s *RecordFormat) SetMappingParameters(v *MappingParameters) *RecordFormat {
6443	s.MappingParameters = v
6444	return s
6445}
6446
6447// SetRecordFormatType sets the RecordFormatType field's value.
6448func (s *RecordFormat) SetRecordFormatType(v string) *RecordFormat {
6449	s.RecordFormatType = &v
6450	return s
6451}
6452
6453// Describes the reference data source by providing the source information (S3
6454// bucket name and object key name), the resulting in-application table name
6455// that is created, and the necessary schema to map the data elements in the
6456// Amazon S3 object to the in-application table.
6457type ReferenceDataSource struct {
6458	_ struct{} `type:"structure"`
6459
6460	// Describes the format of the data in the streaming source, and how each data
6461	// element maps to corresponding columns created in the in-application stream.
6462	//
6463	// ReferenceSchema is a required field
6464	ReferenceSchema *SourceSchema `type:"structure" required:"true"`
6465
6466	// Identifies the S3 bucket and object that contains the reference data. Also
6467	// identifies the IAM role Amazon Kinesis Analytics can assume to read this
6468	// object on your behalf. An Amazon Kinesis Analytics application loads reference
6469	// data only once. If the data changes, you call the UpdateApplication operation
6470	// to trigger reloading of data into your application.
6471	S3ReferenceDataSource *S3ReferenceDataSource `type:"structure"`
6472
6473	// Name of the in-application table to create.
6474	//
6475	// TableName is a required field
6476	TableName *string `min:"1" type:"string" required:"true"`
6477}
6478
6479// String returns the string representation
6480func (s ReferenceDataSource) String() string {
6481	return awsutil.Prettify(s)
6482}
6483
6484// GoString returns the string representation
6485func (s ReferenceDataSource) GoString() string {
6486	return s.String()
6487}
6488
6489// Validate inspects the fields of the type to determine if they are valid.
6490func (s *ReferenceDataSource) Validate() error {
6491	invalidParams := request.ErrInvalidParams{Context: "ReferenceDataSource"}
6492	if s.ReferenceSchema == nil {
6493		invalidParams.Add(request.NewErrParamRequired("ReferenceSchema"))
6494	}
6495	if s.TableName == nil {
6496		invalidParams.Add(request.NewErrParamRequired("TableName"))
6497	}
6498	if s.TableName != nil && len(*s.TableName) < 1 {
6499		invalidParams.Add(request.NewErrParamMinLen("TableName", 1))
6500	}
6501	if s.ReferenceSchema != nil {
6502		if err := s.ReferenceSchema.Validate(); err != nil {
6503			invalidParams.AddNested("ReferenceSchema", err.(request.ErrInvalidParams))
6504		}
6505	}
6506	if s.S3ReferenceDataSource != nil {
6507		if err := s.S3ReferenceDataSource.Validate(); err != nil {
6508			invalidParams.AddNested("S3ReferenceDataSource", err.(request.ErrInvalidParams))
6509		}
6510	}
6511
6512	if invalidParams.Len() > 0 {
6513		return invalidParams
6514	}
6515	return nil
6516}
6517
6518// SetReferenceSchema sets the ReferenceSchema field's value.
6519func (s *ReferenceDataSource) SetReferenceSchema(v *SourceSchema) *ReferenceDataSource {
6520	s.ReferenceSchema = v
6521	return s
6522}
6523
6524// SetS3ReferenceDataSource sets the S3ReferenceDataSource field's value.
6525func (s *ReferenceDataSource) SetS3ReferenceDataSource(v *S3ReferenceDataSource) *ReferenceDataSource {
6526	s.S3ReferenceDataSource = v
6527	return s
6528}
6529
6530// SetTableName sets the TableName field's value.
6531func (s *ReferenceDataSource) SetTableName(v string) *ReferenceDataSource {
6532	s.TableName = &v
6533	return s
6534}
6535
6536// Describes the reference data source configured for an application.
6537type ReferenceDataSourceDescription struct {
6538	_ struct{} `type:"structure"`
6539
6540	// ID of the reference data source. This is the ID that Amazon Kinesis Analytics
6541	// assigns when you add the reference data source to your application using
6542	// the AddApplicationReferenceDataSource (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_AddApplicationReferenceDataSource.html)
6543	// operation.
6544	//
6545	// ReferenceId is a required field
6546	ReferenceId *string `min:"1" type:"string" required:"true"`
6547
6548	// Describes the format of the data in the streaming source, and how each data
6549	// element maps to corresponding columns created in the in-application stream.
6550	ReferenceSchema *SourceSchema `type:"structure"`
6551
6552	// Provides the S3 bucket name, the object key name that contains the reference
6553	// data. It also provides the Amazon Resource Name (ARN) of the IAM role that
6554	// Amazon Kinesis Analytics can assume to read the Amazon S3 object and populate
6555	// the in-application reference table.
6556	//
6557	// S3ReferenceDataSourceDescription is a required field
6558	S3ReferenceDataSourceDescription *S3ReferenceDataSourceDescription `type:"structure" required:"true"`
6559
6560	// The in-application table name created by the specific reference data source
6561	// configuration.
6562	//
6563	// TableName is a required field
6564	TableName *string `min:"1" type:"string" required:"true"`
6565}
6566
6567// String returns the string representation
6568func (s ReferenceDataSourceDescription) String() string {
6569	return awsutil.Prettify(s)
6570}
6571
6572// GoString returns the string representation
6573func (s ReferenceDataSourceDescription) GoString() string {
6574	return s.String()
6575}
6576
6577// SetReferenceId sets the ReferenceId field's value.
6578func (s *ReferenceDataSourceDescription) SetReferenceId(v string) *ReferenceDataSourceDescription {
6579	s.ReferenceId = &v
6580	return s
6581}
6582
6583// SetReferenceSchema sets the ReferenceSchema field's value.
6584func (s *ReferenceDataSourceDescription) SetReferenceSchema(v *SourceSchema) *ReferenceDataSourceDescription {
6585	s.ReferenceSchema = v
6586	return s
6587}
6588
6589// SetS3ReferenceDataSourceDescription sets the S3ReferenceDataSourceDescription field's value.
6590func (s *ReferenceDataSourceDescription) SetS3ReferenceDataSourceDescription(v *S3ReferenceDataSourceDescription) *ReferenceDataSourceDescription {
6591	s.S3ReferenceDataSourceDescription = v
6592	return s
6593}
6594
6595// SetTableName sets the TableName field's value.
6596func (s *ReferenceDataSourceDescription) SetTableName(v string) *ReferenceDataSourceDescription {
6597	s.TableName = &v
6598	return s
6599}
6600
6601// When you update a reference data source configuration for an application,
6602// this object provides all the updated values (such as the source bucket name
6603// and object key name), the in-application table name that is created, and
6604// updated mapping information that maps the data in the Amazon S3 object to
6605// the in-application reference table that is created.
6606type ReferenceDataSourceUpdate struct {
6607	_ struct{} `type:"structure"`
6608
6609	// ID of the reference data source being updated. You can use the DescribeApplication
6610	// (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html)
6611	// operation to get this value.
6612	//
6613	// ReferenceId is a required field
6614	ReferenceId *string `min:"1" type:"string" required:"true"`
6615
6616	// Describes the format of the data in the streaming source, and how each data
6617	// element maps to corresponding columns created in the in-application stream.
6618	ReferenceSchemaUpdate *SourceSchema `type:"structure"`
6619
6620	// Describes the S3 bucket name, object key name, and IAM role that Amazon Kinesis
6621	// Analytics can assume to read the Amazon S3 object on your behalf and populate
6622	// the in-application reference table.
6623	S3ReferenceDataSourceUpdate *S3ReferenceDataSourceUpdate `type:"structure"`
6624
6625	// In-application table name that is created by this update.
6626	TableNameUpdate *string `min:"1" type:"string"`
6627}
6628
6629// String returns the string representation
6630func (s ReferenceDataSourceUpdate) String() string {
6631	return awsutil.Prettify(s)
6632}
6633
6634// GoString returns the string representation
6635func (s ReferenceDataSourceUpdate) GoString() string {
6636	return s.String()
6637}
6638
6639// Validate inspects the fields of the type to determine if they are valid.
6640func (s *ReferenceDataSourceUpdate) Validate() error {
6641	invalidParams := request.ErrInvalidParams{Context: "ReferenceDataSourceUpdate"}
6642	if s.ReferenceId == nil {
6643		invalidParams.Add(request.NewErrParamRequired("ReferenceId"))
6644	}
6645	if s.ReferenceId != nil && len(*s.ReferenceId) < 1 {
6646		invalidParams.Add(request.NewErrParamMinLen("ReferenceId", 1))
6647	}
6648	if s.TableNameUpdate != nil && len(*s.TableNameUpdate) < 1 {
6649		invalidParams.Add(request.NewErrParamMinLen("TableNameUpdate", 1))
6650	}
6651	if s.ReferenceSchemaUpdate != nil {
6652		if err := s.ReferenceSchemaUpdate.Validate(); err != nil {
6653			invalidParams.AddNested("ReferenceSchemaUpdate", err.(request.ErrInvalidParams))
6654		}
6655	}
6656	if s.S3ReferenceDataSourceUpdate != nil {
6657		if err := s.S3ReferenceDataSourceUpdate.Validate(); err != nil {
6658			invalidParams.AddNested("S3ReferenceDataSourceUpdate", err.(request.ErrInvalidParams))
6659		}
6660	}
6661
6662	if invalidParams.Len() > 0 {
6663		return invalidParams
6664	}
6665	return nil
6666}
6667
6668// SetReferenceId sets the ReferenceId field's value.
6669func (s *ReferenceDataSourceUpdate) SetReferenceId(v string) *ReferenceDataSourceUpdate {
6670	s.ReferenceId = &v
6671	return s
6672}
6673
6674// SetReferenceSchemaUpdate sets the ReferenceSchemaUpdate field's value.
6675func (s *ReferenceDataSourceUpdate) SetReferenceSchemaUpdate(v *SourceSchema) *ReferenceDataSourceUpdate {
6676	s.ReferenceSchemaUpdate = v
6677	return s
6678}
6679
6680// SetS3ReferenceDataSourceUpdate sets the S3ReferenceDataSourceUpdate field's value.
6681func (s *ReferenceDataSourceUpdate) SetS3ReferenceDataSourceUpdate(v *S3ReferenceDataSourceUpdate) *ReferenceDataSourceUpdate {
6682	s.S3ReferenceDataSourceUpdate = v
6683	return s
6684}
6685
6686// SetTableNameUpdate sets the TableNameUpdate field's value.
6687func (s *ReferenceDataSourceUpdate) SetTableNameUpdate(v string) *ReferenceDataSourceUpdate {
6688	s.TableNameUpdate = &v
6689	return s
6690}
6691
6692// Provides a description of an Amazon S3 data source, including the Amazon
6693// Resource Name (ARN) of the S3 bucket, the ARN of the IAM role that is used
6694// to access the bucket, and the name of the Amazon S3 object that contains
6695// the data.
6696type S3Configuration struct {
6697	_ struct{} `type:"structure"`
6698
6699	// ARN of the S3 bucket that contains the data.
6700	//
6701	// BucketARN is a required field
6702	BucketARN *string `min:"1" type:"string" required:"true"`
6703
6704	// The name of the object that contains the data.
6705	//
6706	// FileKey is a required field
6707	FileKey *string `min:"1" type:"string" required:"true"`
6708
6709	// IAM ARN of the role used to access the data.
6710	//
6711	// RoleARN is a required field
6712	RoleARN *string `min:"1" type:"string" required:"true"`
6713}
6714
6715// String returns the string representation
6716func (s S3Configuration) String() string {
6717	return awsutil.Prettify(s)
6718}
6719
6720// GoString returns the string representation
6721func (s S3Configuration) GoString() string {
6722	return s.String()
6723}
6724
6725// Validate inspects the fields of the type to determine if they are valid.
6726func (s *S3Configuration) Validate() error {
6727	invalidParams := request.ErrInvalidParams{Context: "S3Configuration"}
6728	if s.BucketARN == nil {
6729		invalidParams.Add(request.NewErrParamRequired("BucketARN"))
6730	}
6731	if s.BucketARN != nil && len(*s.BucketARN) < 1 {
6732		invalidParams.Add(request.NewErrParamMinLen("BucketARN", 1))
6733	}
6734	if s.FileKey == nil {
6735		invalidParams.Add(request.NewErrParamRequired("FileKey"))
6736	}
6737	if s.FileKey != nil && len(*s.FileKey) < 1 {
6738		invalidParams.Add(request.NewErrParamMinLen("FileKey", 1))
6739	}
6740	if s.RoleARN == nil {
6741		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
6742	}
6743	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
6744		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
6745	}
6746
6747	if invalidParams.Len() > 0 {
6748		return invalidParams
6749	}
6750	return nil
6751}
6752
6753// SetBucketARN sets the BucketARN field's value.
6754func (s *S3Configuration) SetBucketARN(v string) *S3Configuration {
6755	s.BucketARN = &v
6756	return s
6757}
6758
6759// SetFileKey sets the FileKey field's value.
6760func (s *S3Configuration) SetFileKey(v string) *S3Configuration {
6761	s.FileKey = &v
6762	return s
6763}
6764
6765// SetRoleARN sets the RoleARN field's value.
6766func (s *S3Configuration) SetRoleARN(v string) *S3Configuration {
6767	s.RoleARN = &v
6768	return s
6769}
6770
6771// Identifies the S3 bucket and object that contains the reference data. Also
6772// identifies the IAM role Amazon Kinesis Analytics can assume to read this
6773// object on your behalf.
6774//
6775// An Amazon Kinesis Analytics application loads reference data only once. If
6776// the data changes, you call the UpdateApplication (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_UpdateApplication.html)
6777// operation to trigger reloading of data into your application.
6778type S3ReferenceDataSource struct {
6779	_ struct{} `type:"structure"`
6780
6781	// Amazon Resource Name (ARN) of the S3 bucket.
6782	//
6783	// BucketARN is a required field
6784	BucketARN *string `min:"1" type:"string" required:"true"`
6785
6786	// Object key name containing reference data.
6787	//
6788	// FileKey is a required field
6789	FileKey *string `min:"1" type:"string" required:"true"`
6790
6791	// ARN of the IAM role that the service can assume to read data on your behalf.
6792	// This role must have permission for the s3:GetObject action on the object
6793	// and trust policy that allows Amazon Kinesis Analytics service principal to
6794	// assume this role.
6795	//
6796	// ReferenceRoleARN is a required field
6797	ReferenceRoleARN *string `min:"1" type:"string" required:"true"`
6798}
6799
6800// String returns the string representation
6801func (s S3ReferenceDataSource) String() string {
6802	return awsutil.Prettify(s)
6803}
6804
6805// GoString returns the string representation
6806func (s S3ReferenceDataSource) GoString() string {
6807	return s.String()
6808}
6809
6810// Validate inspects the fields of the type to determine if they are valid.
6811func (s *S3ReferenceDataSource) Validate() error {
6812	invalidParams := request.ErrInvalidParams{Context: "S3ReferenceDataSource"}
6813	if s.BucketARN == nil {
6814		invalidParams.Add(request.NewErrParamRequired("BucketARN"))
6815	}
6816	if s.BucketARN != nil && len(*s.BucketARN) < 1 {
6817		invalidParams.Add(request.NewErrParamMinLen("BucketARN", 1))
6818	}
6819	if s.FileKey == nil {
6820		invalidParams.Add(request.NewErrParamRequired("FileKey"))
6821	}
6822	if s.FileKey != nil && len(*s.FileKey) < 1 {
6823		invalidParams.Add(request.NewErrParamMinLen("FileKey", 1))
6824	}
6825	if s.ReferenceRoleARN == nil {
6826		invalidParams.Add(request.NewErrParamRequired("ReferenceRoleARN"))
6827	}
6828	if s.ReferenceRoleARN != nil && len(*s.ReferenceRoleARN) < 1 {
6829		invalidParams.Add(request.NewErrParamMinLen("ReferenceRoleARN", 1))
6830	}
6831
6832	if invalidParams.Len() > 0 {
6833		return invalidParams
6834	}
6835	return nil
6836}
6837
6838// SetBucketARN sets the BucketARN field's value.
6839func (s *S3ReferenceDataSource) SetBucketARN(v string) *S3ReferenceDataSource {
6840	s.BucketARN = &v
6841	return s
6842}
6843
6844// SetFileKey sets the FileKey field's value.
6845func (s *S3ReferenceDataSource) SetFileKey(v string) *S3ReferenceDataSource {
6846	s.FileKey = &v
6847	return s
6848}
6849
6850// SetReferenceRoleARN sets the ReferenceRoleARN field's value.
6851func (s *S3ReferenceDataSource) SetReferenceRoleARN(v string) *S3ReferenceDataSource {
6852	s.ReferenceRoleARN = &v
6853	return s
6854}
6855
6856// Provides the bucket name and object key name that stores the reference data.
6857type S3ReferenceDataSourceDescription struct {
6858	_ struct{} `type:"structure"`
6859
6860	// Amazon Resource Name (ARN) of the S3 bucket.
6861	//
6862	// BucketARN is a required field
6863	BucketARN *string `min:"1" type:"string" required:"true"`
6864
6865	// Amazon S3 object key name.
6866	//
6867	// FileKey is a required field
6868	FileKey *string `min:"1" type:"string" required:"true"`
6869
6870	// ARN of the IAM role that Amazon Kinesis Analytics can assume to read the
6871	// Amazon S3 object on your behalf to populate the in-application reference
6872	// table.
6873	//
6874	// ReferenceRoleARN is a required field
6875	ReferenceRoleARN *string `min:"1" type:"string" required:"true"`
6876}
6877
6878// String returns the string representation
6879func (s S3ReferenceDataSourceDescription) String() string {
6880	return awsutil.Prettify(s)
6881}
6882
6883// GoString returns the string representation
6884func (s S3ReferenceDataSourceDescription) GoString() string {
6885	return s.String()
6886}
6887
6888// SetBucketARN sets the BucketARN field's value.
6889func (s *S3ReferenceDataSourceDescription) SetBucketARN(v string) *S3ReferenceDataSourceDescription {
6890	s.BucketARN = &v
6891	return s
6892}
6893
6894// SetFileKey sets the FileKey field's value.
6895func (s *S3ReferenceDataSourceDescription) SetFileKey(v string) *S3ReferenceDataSourceDescription {
6896	s.FileKey = &v
6897	return s
6898}
6899
6900// SetReferenceRoleARN sets the ReferenceRoleARN field's value.
6901func (s *S3ReferenceDataSourceDescription) SetReferenceRoleARN(v string) *S3ReferenceDataSourceDescription {
6902	s.ReferenceRoleARN = &v
6903	return s
6904}
6905
6906// Describes the S3 bucket name, object key name, and IAM role that Amazon Kinesis
6907// Analytics can assume to read the Amazon S3 object on your behalf and populate
6908// the in-application reference table.
6909type S3ReferenceDataSourceUpdate struct {
6910	_ struct{} `type:"structure"`
6911
6912	// Amazon Resource Name (ARN) of the S3 bucket.
6913	BucketARNUpdate *string `min:"1" type:"string"`
6914
6915	// Object key name.
6916	FileKeyUpdate *string `min:"1" type:"string"`
6917
6918	// ARN of the IAM role that Amazon Kinesis Analytics can assume to read the
6919	// Amazon S3 object and populate the in-application.
6920	ReferenceRoleARNUpdate *string `min:"1" type:"string"`
6921}
6922
6923// String returns the string representation
6924func (s S3ReferenceDataSourceUpdate) String() string {
6925	return awsutil.Prettify(s)
6926}
6927
6928// GoString returns the string representation
6929func (s S3ReferenceDataSourceUpdate) GoString() string {
6930	return s.String()
6931}
6932
6933// Validate inspects the fields of the type to determine if they are valid.
6934func (s *S3ReferenceDataSourceUpdate) Validate() error {
6935	invalidParams := request.ErrInvalidParams{Context: "S3ReferenceDataSourceUpdate"}
6936	if s.BucketARNUpdate != nil && len(*s.BucketARNUpdate) < 1 {
6937		invalidParams.Add(request.NewErrParamMinLen("BucketARNUpdate", 1))
6938	}
6939	if s.FileKeyUpdate != nil && len(*s.FileKeyUpdate) < 1 {
6940		invalidParams.Add(request.NewErrParamMinLen("FileKeyUpdate", 1))
6941	}
6942	if s.ReferenceRoleARNUpdate != nil && len(*s.ReferenceRoleARNUpdate) < 1 {
6943		invalidParams.Add(request.NewErrParamMinLen("ReferenceRoleARNUpdate", 1))
6944	}
6945
6946	if invalidParams.Len() > 0 {
6947		return invalidParams
6948	}
6949	return nil
6950}
6951
6952// SetBucketARNUpdate sets the BucketARNUpdate field's value.
6953func (s *S3ReferenceDataSourceUpdate) SetBucketARNUpdate(v string) *S3ReferenceDataSourceUpdate {
6954	s.BucketARNUpdate = &v
6955	return s
6956}
6957
6958// SetFileKeyUpdate sets the FileKeyUpdate field's value.
6959func (s *S3ReferenceDataSourceUpdate) SetFileKeyUpdate(v string) *S3ReferenceDataSourceUpdate {
6960	s.FileKeyUpdate = &v
6961	return s
6962}
6963
6964// SetReferenceRoleARNUpdate sets the ReferenceRoleARNUpdate field's value.
6965func (s *S3ReferenceDataSourceUpdate) SetReferenceRoleARNUpdate(v string) *S3ReferenceDataSourceUpdate {
6966	s.ReferenceRoleARNUpdate = &v
6967	return s
6968}
6969
6970// Describes the format of the data in the streaming source, and how each data
6971// element maps to corresponding columns created in the in-application stream.
6972type SourceSchema struct {
6973	_ struct{} `type:"structure"`
6974
6975	// A list of RecordColumn objects.
6976	//
6977	// RecordColumns is a required field
6978	RecordColumns []*RecordColumn `min:"1" type:"list" required:"true"`
6979
6980	// Specifies the encoding of the records in the streaming source. For example,
6981	// UTF-8.
6982	RecordEncoding *string `type:"string"`
6983
6984	// Specifies the format of the records on the streaming source.
6985	//
6986	// RecordFormat is a required field
6987	RecordFormat *RecordFormat `type:"structure" required:"true"`
6988}
6989
6990// String returns the string representation
6991func (s SourceSchema) String() string {
6992	return awsutil.Prettify(s)
6993}
6994
6995// GoString returns the string representation
6996func (s SourceSchema) GoString() string {
6997	return s.String()
6998}
6999
7000// Validate inspects the fields of the type to determine if they are valid.
7001func (s *SourceSchema) Validate() error {
7002	invalidParams := request.ErrInvalidParams{Context: "SourceSchema"}
7003	if s.RecordColumns == nil {
7004		invalidParams.Add(request.NewErrParamRequired("RecordColumns"))
7005	}
7006	if s.RecordColumns != nil && len(s.RecordColumns) < 1 {
7007		invalidParams.Add(request.NewErrParamMinLen("RecordColumns", 1))
7008	}
7009	if s.RecordFormat == nil {
7010		invalidParams.Add(request.NewErrParamRequired("RecordFormat"))
7011	}
7012	if s.RecordColumns != nil {
7013		for i, v := range s.RecordColumns {
7014			if v == nil {
7015				continue
7016			}
7017			if err := v.Validate(); err != nil {
7018				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RecordColumns", i), err.(request.ErrInvalidParams))
7019			}
7020		}
7021	}
7022	if s.RecordFormat != nil {
7023		if err := s.RecordFormat.Validate(); err != nil {
7024			invalidParams.AddNested("RecordFormat", err.(request.ErrInvalidParams))
7025		}
7026	}
7027
7028	if invalidParams.Len() > 0 {
7029		return invalidParams
7030	}
7031	return nil
7032}
7033
7034// SetRecordColumns sets the RecordColumns field's value.
7035func (s *SourceSchema) SetRecordColumns(v []*RecordColumn) *SourceSchema {
7036	s.RecordColumns = v
7037	return s
7038}
7039
7040// SetRecordEncoding sets the RecordEncoding field's value.
7041func (s *SourceSchema) SetRecordEncoding(v string) *SourceSchema {
7042	s.RecordEncoding = &v
7043	return s
7044}
7045
7046// SetRecordFormat sets the RecordFormat field's value.
7047func (s *SourceSchema) SetRecordFormat(v *RecordFormat) *SourceSchema {
7048	s.RecordFormat = v
7049	return s
7050}
7051
7052type StartApplicationInput struct {
7053	_ struct{} `type:"structure"`
7054
7055	// Name of the application.
7056	//
7057	// ApplicationName is a required field
7058	ApplicationName *string `min:"1" type:"string" required:"true"`
7059
7060	// Identifies the specific input, by ID, that the application starts consuming.
7061	// Amazon Kinesis Analytics starts reading the streaming source associated with
7062	// the input. You can also specify where in the streaming source you want Amazon
7063	// Kinesis Analytics to start reading.
7064	//
7065	// InputConfigurations is a required field
7066	InputConfigurations []*InputConfiguration `type:"list" required:"true"`
7067}
7068
7069// String returns the string representation
7070func (s StartApplicationInput) String() string {
7071	return awsutil.Prettify(s)
7072}
7073
7074// GoString returns the string representation
7075func (s StartApplicationInput) GoString() string {
7076	return s.String()
7077}
7078
7079// Validate inspects the fields of the type to determine if they are valid.
7080func (s *StartApplicationInput) Validate() error {
7081	invalidParams := request.ErrInvalidParams{Context: "StartApplicationInput"}
7082	if s.ApplicationName == nil {
7083		invalidParams.Add(request.NewErrParamRequired("ApplicationName"))
7084	}
7085	if s.ApplicationName != nil && len(*s.ApplicationName) < 1 {
7086		invalidParams.Add(request.NewErrParamMinLen("ApplicationName", 1))
7087	}
7088	if s.InputConfigurations == nil {
7089		invalidParams.Add(request.NewErrParamRequired("InputConfigurations"))
7090	}
7091	if s.InputConfigurations != nil {
7092		for i, v := range s.InputConfigurations {
7093			if v == nil {
7094				continue
7095			}
7096			if err := v.Validate(); err != nil {
7097				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InputConfigurations", i), err.(request.ErrInvalidParams))
7098			}
7099		}
7100	}
7101
7102	if invalidParams.Len() > 0 {
7103		return invalidParams
7104	}
7105	return nil
7106}
7107
7108// SetApplicationName sets the ApplicationName field's value.
7109func (s *StartApplicationInput) SetApplicationName(v string) *StartApplicationInput {
7110	s.ApplicationName = &v
7111	return s
7112}
7113
7114// SetInputConfigurations sets the InputConfigurations field's value.
7115func (s *StartApplicationInput) SetInputConfigurations(v []*InputConfiguration) *StartApplicationInput {
7116	s.InputConfigurations = v
7117	return s
7118}
7119
7120type StartApplicationOutput struct {
7121	_ struct{} `type:"structure"`
7122}
7123
7124// String returns the string representation
7125func (s StartApplicationOutput) String() string {
7126	return awsutil.Prettify(s)
7127}
7128
7129// GoString returns the string representation
7130func (s StartApplicationOutput) GoString() string {
7131	return s.String()
7132}
7133
7134type StopApplicationInput struct {
7135	_ struct{} `type:"structure"`
7136
7137	// Name of the running application to stop.
7138	//
7139	// ApplicationName is a required field
7140	ApplicationName *string `min:"1" type:"string" required:"true"`
7141}
7142
7143// String returns the string representation
7144func (s StopApplicationInput) String() string {
7145	return awsutil.Prettify(s)
7146}
7147
7148// GoString returns the string representation
7149func (s StopApplicationInput) GoString() string {
7150	return s.String()
7151}
7152
7153// Validate inspects the fields of the type to determine if they are valid.
7154func (s *StopApplicationInput) Validate() error {
7155	invalidParams := request.ErrInvalidParams{Context: "StopApplicationInput"}
7156	if s.ApplicationName == nil {
7157		invalidParams.Add(request.NewErrParamRequired("ApplicationName"))
7158	}
7159	if s.ApplicationName != nil && len(*s.ApplicationName) < 1 {
7160		invalidParams.Add(request.NewErrParamMinLen("ApplicationName", 1))
7161	}
7162
7163	if invalidParams.Len() > 0 {
7164		return invalidParams
7165	}
7166	return nil
7167}
7168
7169// SetApplicationName sets the ApplicationName field's value.
7170func (s *StopApplicationInput) SetApplicationName(v string) *StopApplicationInput {
7171	s.ApplicationName = &v
7172	return s
7173}
7174
7175type StopApplicationOutput struct {
7176	_ struct{} `type:"structure"`
7177}
7178
7179// String returns the string representation
7180func (s StopApplicationOutput) String() string {
7181	return awsutil.Prettify(s)
7182}
7183
7184// GoString returns the string representation
7185func (s StopApplicationOutput) GoString() string {
7186	return s.String()
7187}
7188
7189// A key-value pair (the value is optional) that you can define and assign to
7190// AWS resources. If you specify a tag that already exists, the tag value is
7191// replaced with the value that you specify in the request. Note that the maximum
7192// number of application tags includes system tags. The maximum number of user-defined
7193// application tags is 50. For more information, see Using Tagging (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-tagging.html).
7194type Tag struct {
7195	_ struct{} `type:"structure"`
7196
7197	// The key of the key-value tag.
7198	//
7199	// Key is a required field
7200	Key *string `min:"1" type:"string" required:"true"`
7201
7202	// The value of the key-value tag. The value is optional.
7203	Value *string `type:"string"`
7204}
7205
7206// String returns the string representation
7207func (s Tag) String() string {
7208	return awsutil.Prettify(s)
7209}
7210
7211// GoString returns the string representation
7212func (s Tag) GoString() string {
7213	return s.String()
7214}
7215
7216// Validate inspects the fields of the type to determine if they are valid.
7217func (s *Tag) Validate() error {
7218	invalidParams := request.ErrInvalidParams{Context: "Tag"}
7219	if s.Key == nil {
7220		invalidParams.Add(request.NewErrParamRequired("Key"))
7221	}
7222	if s.Key != nil && len(*s.Key) < 1 {
7223		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
7224	}
7225
7226	if invalidParams.Len() > 0 {
7227		return invalidParams
7228	}
7229	return nil
7230}
7231
7232// SetKey sets the Key field's value.
7233func (s *Tag) SetKey(v string) *Tag {
7234	s.Key = &v
7235	return s
7236}
7237
7238// SetValue sets the Value field's value.
7239func (s *Tag) SetValue(v string) *Tag {
7240	s.Value = &v
7241	return s
7242}
7243
7244type TagResourceInput struct {
7245	_ struct{} `type:"structure"`
7246
7247	// The ARN of the application to assign the tags.
7248	//
7249	// ResourceARN is a required field
7250	ResourceARN *string `min:"1" type:"string" required:"true"`
7251
7252	// The key-value tags to assign to the application.
7253	//
7254	// Tags is a required field
7255	Tags []*Tag `min:"1" type:"list" required:"true"`
7256}
7257
7258// String returns the string representation
7259func (s TagResourceInput) String() string {
7260	return awsutil.Prettify(s)
7261}
7262
7263// GoString returns the string representation
7264func (s TagResourceInput) GoString() string {
7265	return s.String()
7266}
7267
7268// Validate inspects the fields of the type to determine if they are valid.
7269func (s *TagResourceInput) Validate() error {
7270	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
7271	if s.ResourceARN == nil {
7272		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
7273	}
7274	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
7275		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
7276	}
7277	if s.Tags == nil {
7278		invalidParams.Add(request.NewErrParamRequired("Tags"))
7279	}
7280	if s.Tags != nil && len(s.Tags) < 1 {
7281		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
7282	}
7283	if s.Tags != nil {
7284		for i, v := range s.Tags {
7285			if v == nil {
7286				continue
7287			}
7288			if err := v.Validate(); err != nil {
7289				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7290			}
7291		}
7292	}
7293
7294	if invalidParams.Len() > 0 {
7295		return invalidParams
7296	}
7297	return nil
7298}
7299
7300// SetResourceARN sets the ResourceARN field's value.
7301func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
7302	s.ResourceARN = &v
7303	return s
7304}
7305
7306// SetTags sets the Tags field's value.
7307func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
7308	s.Tags = v
7309	return s
7310}
7311
7312type TagResourceOutput struct {
7313	_ struct{} `type:"structure"`
7314}
7315
7316// String returns the string representation
7317func (s TagResourceOutput) String() string {
7318	return awsutil.Prettify(s)
7319}
7320
7321// GoString returns the string representation
7322func (s TagResourceOutput) GoString() string {
7323	return s.String()
7324}
7325
7326type UntagResourceInput struct {
7327	_ struct{} `type:"structure"`
7328
7329	// The ARN of the Kinesis Analytics application from which to remove the tags.
7330	//
7331	// ResourceARN is a required field
7332	ResourceARN *string `min:"1" type:"string" required:"true"`
7333
7334	// A list of keys of tags to remove from the specified application.
7335	//
7336	// TagKeys is a required field
7337	TagKeys []*string `min:"1" type:"list" required:"true"`
7338}
7339
7340// String returns the string representation
7341func (s UntagResourceInput) String() string {
7342	return awsutil.Prettify(s)
7343}
7344
7345// GoString returns the string representation
7346func (s UntagResourceInput) GoString() string {
7347	return s.String()
7348}
7349
7350// Validate inspects the fields of the type to determine if they are valid.
7351func (s *UntagResourceInput) Validate() error {
7352	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
7353	if s.ResourceARN == nil {
7354		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
7355	}
7356	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
7357		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
7358	}
7359	if s.TagKeys == nil {
7360		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
7361	}
7362	if s.TagKeys != nil && len(s.TagKeys) < 1 {
7363		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
7364	}
7365
7366	if invalidParams.Len() > 0 {
7367		return invalidParams
7368	}
7369	return nil
7370}
7371
7372// SetResourceARN sets the ResourceARN field's value.
7373func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
7374	s.ResourceARN = &v
7375	return s
7376}
7377
7378// SetTagKeys sets the TagKeys field's value.
7379func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
7380	s.TagKeys = v
7381	return s
7382}
7383
7384type UntagResourceOutput struct {
7385	_ struct{} `type:"structure"`
7386}
7387
7388// String returns the string representation
7389func (s UntagResourceOutput) String() string {
7390	return awsutil.Prettify(s)
7391}
7392
7393// GoString returns the string representation
7394func (s UntagResourceOutput) GoString() string {
7395	return s.String()
7396}
7397
7398type UpdateApplicationInput struct {
7399	_ struct{} `type:"structure"`
7400
7401	// Name of the Amazon Kinesis Analytics application to update.
7402	//
7403	// ApplicationName is a required field
7404	ApplicationName *string `min:"1" type:"string" required:"true"`
7405
7406	// Describes application updates.
7407	//
7408	// ApplicationUpdate is a required field
7409	ApplicationUpdate *ApplicationUpdate `type:"structure" required:"true"`
7410
7411	// The current application version ID. You can use the DescribeApplication (https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_DescribeApplication.html)
7412	// operation to get this value.
7413	//
7414	// CurrentApplicationVersionId is a required field
7415	CurrentApplicationVersionId *int64 `min:"1" type:"long" required:"true"`
7416}
7417
7418// String returns the string representation
7419func (s UpdateApplicationInput) String() string {
7420	return awsutil.Prettify(s)
7421}
7422
7423// GoString returns the string representation
7424func (s UpdateApplicationInput) GoString() string {
7425	return s.String()
7426}
7427
7428// Validate inspects the fields of the type to determine if they are valid.
7429func (s *UpdateApplicationInput) Validate() error {
7430	invalidParams := request.ErrInvalidParams{Context: "UpdateApplicationInput"}
7431	if s.ApplicationName == nil {
7432		invalidParams.Add(request.NewErrParamRequired("ApplicationName"))
7433	}
7434	if s.ApplicationName != nil && len(*s.ApplicationName) < 1 {
7435		invalidParams.Add(request.NewErrParamMinLen("ApplicationName", 1))
7436	}
7437	if s.ApplicationUpdate == nil {
7438		invalidParams.Add(request.NewErrParamRequired("ApplicationUpdate"))
7439	}
7440	if s.CurrentApplicationVersionId == nil {
7441		invalidParams.Add(request.NewErrParamRequired("CurrentApplicationVersionId"))
7442	}
7443	if s.CurrentApplicationVersionId != nil && *s.CurrentApplicationVersionId < 1 {
7444		invalidParams.Add(request.NewErrParamMinValue("CurrentApplicationVersionId", 1))
7445	}
7446	if s.ApplicationUpdate != nil {
7447		if err := s.ApplicationUpdate.Validate(); err != nil {
7448			invalidParams.AddNested("ApplicationUpdate", err.(request.ErrInvalidParams))
7449		}
7450	}
7451
7452	if invalidParams.Len() > 0 {
7453		return invalidParams
7454	}
7455	return nil
7456}
7457
7458// SetApplicationName sets the ApplicationName field's value.
7459func (s *UpdateApplicationInput) SetApplicationName(v string) *UpdateApplicationInput {
7460	s.ApplicationName = &v
7461	return s
7462}
7463
7464// SetApplicationUpdate sets the ApplicationUpdate field's value.
7465func (s *UpdateApplicationInput) SetApplicationUpdate(v *ApplicationUpdate) *UpdateApplicationInput {
7466	s.ApplicationUpdate = v
7467	return s
7468}
7469
7470// SetCurrentApplicationVersionId sets the CurrentApplicationVersionId field's value.
7471func (s *UpdateApplicationInput) SetCurrentApplicationVersionId(v int64) *UpdateApplicationInput {
7472	s.CurrentApplicationVersionId = &v
7473	return s
7474}
7475
7476type UpdateApplicationOutput struct {
7477	_ struct{} `type:"structure"`
7478}
7479
7480// String returns the string representation
7481func (s UpdateApplicationOutput) String() string {
7482	return awsutil.Prettify(s)
7483}
7484
7485// GoString returns the string representation
7486func (s UpdateApplicationOutput) GoString() string {
7487	return s.String()
7488}
7489
7490const (
7491	// ApplicationStatusDeleting is a ApplicationStatus enum value
7492	ApplicationStatusDeleting = "DELETING"
7493
7494	// ApplicationStatusStarting is a ApplicationStatus enum value
7495	ApplicationStatusStarting = "STARTING"
7496
7497	// ApplicationStatusStopping is a ApplicationStatus enum value
7498	ApplicationStatusStopping = "STOPPING"
7499
7500	// ApplicationStatusReady is a ApplicationStatus enum value
7501	ApplicationStatusReady = "READY"
7502
7503	// ApplicationStatusRunning is a ApplicationStatus enum value
7504	ApplicationStatusRunning = "RUNNING"
7505
7506	// ApplicationStatusUpdating is a ApplicationStatus enum value
7507	ApplicationStatusUpdating = "UPDATING"
7508)
7509
7510const (
7511	// InputStartingPositionNow is a InputStartingPosition enum value
7512	InputStartingPositionNow = "NOW"
7513
7514	// InputStartingPositionTrimHorizon is a InputStartingPosition enum value
7515	InputStartingPositionTrimHorizon = "TRIM_HORIZON"
7516
7517	// InputStartingPositionLastStoppedPoint is a InputStartingPosition enum value
7518	InputStartingPositionLastStoppedPoint = "LAST_STOPPED_POINT"
7519)
7520
7521const (
7522	// RecordFormatTypeJson is a RecordFormatType enum value
7523	RecordFormatTypeJson = "JSON"
7524
7525	// RecordFormatTypeCsv is a RecordFormatType enum value
7526	RecordFormatTypeCsv = "CSV"
7527)
7528