github.com/aavshr/aws-sdk-go@v1.41.3/service/kinesisanalytics/api.go (about)

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