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