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

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package firehose
     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 opCreateDeliveryStream = "CreateDeliveryStream"
    17  
    18  // CreateDeliveryStreamRequest generates a "aws/request.Request" representing the
    19  // client's request for the CreateDeliveryStream 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 CreateDeliveryStream for more information on using the CreateDeliveryStream
    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 CreateDeliveryStreamRequest method.
    34  //    req, resp := client.CreateDeliveryStreamRequest(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/firehose-2015-08-04/CreateDeliveryStream
    42  func (c *Firehose) CreateDeliveryStreamRequest(input *CreateDeliveryStreamInput) (req *request.Request, output *CreateDeliveryStreamOutput) {
    43  	op := &request.Operation{
    44  		Name:       opCreateDeliveryStream,
    45  		HTTPMethod: "POST",
    46  		HTTPPath:   "/",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &CreateDeliveryStreamInput{}
    51  	}
    52  
    53  	output = &CreateDeliveryStreamOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	return
    56  }
    57  
    58  // CreateDeliveryStream API operation for Amazon Kinesis Firehose.
    59  //
    60  // Creates a Kinesis Data Firehose delivery stream.
    61  //
    62  // By default, you can create up to 50 delivery streams per AWS Region.
    63  //
    64  // This is an asynchronous operation that immediately returns. The initial status
    65  // of the delivery stream is CREATING. After the delivery stream is created,
    66  // its status is ACTIVE and it now accepts data. If the delivery stream creation
    67  // fails, the status transitions to CREATING_FAILED. Attempts to send data to
    68  // a delivery stream that is not in the ACTIVE state cause an exception. To
    69  // check the state of a delivery stream, use DescribeDeliveryStream.
    70  //
    71  // If the status of a delivery stream is CREATING_FAILED, this status doesn't
    72  // change, and you can't invoke CreateDeliveryStream again on it. However, you
    73  // can invoke the DeleteDeliveryStream operation to delete it.
    74  //
    75  // A Kinesis Data Firehose delivery stream can be configured to receive records
    76  // directly from providers using PutRecord or PutRecordBatch, or it can be configured
    77  // to use an existing Kinesis stream as its source. To specify a Kinesis data
    78  // stream as input, set the DeliveryStreamType parameter to KinesisStreamAsSource,
    79  // and provide the Kinesis stream Amazon Resource Name (ARN) and role ARN in
    80  // the KinesisStreamSourceConfiguration parameter.
    81  //
    82  // To create a delivery stream with server-side encryption (SSE) enabled, include
    83  // DeliveryStreamEncryptionConfigurationInput in your request. This is optional.
    84  // You can also invoke StartDeliveryStreamEncryption to turn on SSE for an existing
    85  // delivery stream that doesn't have SSE enabled.
    86  //
    87  // A delivery stream is configured with a single destination: Amazon S3, Amazon
    88  // ES, Amazon Redshift, or Splunk. You must specify only one of the following
    89  // destination configuration parameters: ExtendedS3DestinationConfiguration,
    90  // S3DestinationConfiguration, ElasticsearchDestinationConfiguration, RedshiftDestinationConfiguration,
    91  // or SplunkDestinationConfiguration.
    92  //
    93  // When you specify S3DestinationConfiguration, you can also provide the following
    94  // optional values: BufferingHints, EncryptionConfiguration, and CompressionFormat.
    95  // By default, if no BufferingHints value is provided, Kinesis Data Firehose
    96  // buffers data up to 5 MB or for 5 minutes, whichever condition is satisfied
    97  // first. BufferingHints is a hint, so there are some cases where the service
    98  // cannot adhere to these conditions strictly. For example, record boundaries
    99  // might be such that the size is a little over or under the configured buffering
   100  // size. By default, no encryption is performed. We strongly recommend that
   101  // you enable encryption to ensure secure data storage in Amazon S3.
   102  //
   103  // A few notes about Amazon Redshift as a destination:
   104  //
   105  //    * An Amazon Redshift destination requires an S3 bucket as intermediate
   106  //    location. Kinesis Data Firehose first delivers data to Amazon S3 and then
   107  //    uses COPY syntax to load data into an Amazon Redshift table. This is specified
   108  //    in the RedshiftDestinationConfiguration.S3Configuration parameter.
   109  //
   110  //    * The compression formats SNAPPY or ZIP cannot be specified in RedshiftDestinationConfiguration.S3Configuration
   111  //    because the Amazon Redshift COPY operation that reads from the S3 bucket
   112  //    doesn't support these compression formats.
   113  //
   114  //    * We strongly recommend that you use the user name and password you provide
   115  //    exclusively with Kinesis Data Firehose, and that the permissions for the
   116  //    account are restricted for Amazon Redshift INSERT permissions.
   117  //
   118  // Kinesis Data Firehose assumes the IAM role that is configured as part of
   119  // the destination. The role should allow the Kinesis Data Firehose principal
   120  // to assume the role, and the role should have permissions that allow the service
   121  // to deliver the data. For more information, see Grant Kinesis Data Firehose
   122  // Access to an Amazon S3 Destination (https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3)
   123  // in the Amazon Kinesis Data Firehose Developer Guide.
   124  //
   125  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   126  // with awserr.Error's Code and Message methods to get detailed information about
   127  // the error.
   128  //
   129  // See the AWS API reference guide for Amazon Kinesis Firehose's
   130  // API operation CreateDeliveryStream for usage and error information.
   131  //
   132  // Returned Error Types:
   133  //   * InvalidArgumentException
   134  //   The specified input parameter has a value that is not valid.
   135  //
   136  //   * LimitExceededException
   137  //   You have already reached the limit for a requested resource.
   138  //
   139  //   * ResourceInUseException
   140  //   The resource is already in use and not available for this operation.
   141  //
   142  //   * InvalidKMSResourceException
   143  //   Kinesis Data Firehose throws this exception when an attempt to put records
   144  //   or to start or stop delivery stream encryption fails. This happens when the
   145  //   KMS service throws one of the following exception types: AccessDeniedException,
   146  //   InvalidStateException, DisabledException, or NotFoundException.
   147  //
   148  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/CreateDeliveryStream
   149  func (c *Firehose) CreateDeliveryStream(input *CreateDeliveryStreamInput) (*CreateDeliveryStreamOutput, error) {
   150  	req, out := c.CreateDeliveryStreamRequest(input)
   151  	return out, req.Send()
   152  }
   153  
   154  // CreateDeliveryStreamWithContext is the same as CreateDeliveryStream with the addition of
   155  // the ability to pass a context and additional request options.
   156  //
   157  // See CreateDeliveryStream for details on how to use this API operation.
   158  //
   159  // The context must be non-nil and will be used for request cancellation. If
   160  // the context is nil a panic will occur. In the future the SDK may create
   161  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   162  // for more information on using Contexts.
   163  func (c *Firehose) CreateDeliveryStreamWithContext(ctx aws.Context, input *CreateDeliveryStreamInput, opts ...request.Option) (*CreateDeliveryStreamOutput, error) {
   164  	req, out := c.CreateDeliveryStreamRequest(input)
   165  	req.SetContext(ctx)
   166  	req.ApplyOptions(opts...)
   167  	return out, req.Send()
   168  }
   169  
   170  const opDeleteDeliveryStream = "DeleteDeliveryStream"
   171  
   172  // DeleteDeliveryStreamRequest generates a "aws/request.Request" representing the
   173  // client's request for the DeleteDeliveryStream operation. The "output" return
   174  // value will be populated with the request's response once the request completes
   175  // successfully.
   176  //
   177  // Use "Send" method on the returned Request to send the API call to the service.
   178  // the "output" return value is not valid until after Send returns without error.
   179  //
   180  // See DeleteDeliveryStream for more information on using the DeleteDeliveryStream
   181  // API call, and error handling.
   182  //
   183  // This method is useful when you want to inject custom logic or configuration
   184  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   185  //
   186  //
   187  //    // Example sending a request using the DeleteDeliveryStreamRequest method.
   188  //    req, resp := client.DeleteDeliveryStreamRequest(params)
   189  //
   190  //    err := req.Send()
   191  //    if err == nil { // resp is now filled
   192  //        fmt.Println(resp)
   193  //    }
   194  //
   195  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/DeleteDeliveryStream
   196  func (c *Firehose) DeleteDeliveryStreamRequest(input *DeleteDeliveryStreamInput) (req *request.Request, output *DeleteDeliveryStreamOutput) {
   197  	op := &request.Operation{
   198  		Name:       opDeleteDeliveryStream,
   199  		HTTPMethod: "POST",
   200  		HTTPPath:   "/",
   201  	}
   202  
   203  	if input == nil {
   204  		input = &DeleteDeliveryStreamInput{}
   205  	}
   206  
   207  	output = &DeleteDeliveryStreamOutput{}
   208  	req = c.newRequest(op, input, output)
   209  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   210  	return
   211  }
   212  
   213  // DeleteDeliveryStream API operation for Amazon Kinesis Firehose.
   214  //
   215  // Deletes a delivery stream and its data.
   216  //
   217  // To check the state of a delivery stream, use DescribeDeliveryStream. You
   218  // can delete a delivery stream only if it is in one of the following states:
   219  // ACTIVE, DELETING, CREATING_FAILED, or DELETING_FAILED. You can't delete a
   220  // delivery stream that is in the CREATING state. While the deletion request
   221  // is in process, the delivery stream is in the DELETING state.
   222  //
   223  // While the delivery stream is in the DELETING state, the service might continue
   224  // to accept records, but it doesn't make any guarantees with respect to delivering
   225  // the data. Therefore, as a best practice, first stop any applications that
   226  // are sending records before you delete a delivery stream.
   227  //
   228  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   229  // with awserr.Error's Code and Message methods to get detailed information about
   230  // the error.
   231  //
   232  // See the AWS API reference guide for Amazon Kinesis Firehose's
   233  // API operation DeleteDeliveryStream for usage and error information.
   234  //
   235  // Returned Error Types:
   236  //   * ResourceInUseException
   237  //   The resource is already in use and not available for this operation.
   238  //
   239  //   * ResourceNotFoundException
   240  //   The specified resource could not be found.
   241  //
   242  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/DeleteDeliveryStream
   243  func (c *Firehose) DeleteDeliveryStream(input *DeleteDeliveryStreamInput) (*DeleteDeliveryStreamOutput, error) {
   244  	req, out := c.DeleteDeliveryStreamRequest(input)
   245  	return out, req.Send()
   246  }
   247  
   248  // DeleteDeliveryStreamWithContext is the same as DeleteDeliveryStream with the addition of
   249  // the ability to pass a context and additional request options.
   250  //
   251  // See DeleteDeliveryStream for details on how to use this API operation.
   252  //
   253  // The context must be non-nil and will be used for request cancellation. If
   254  // the context is nil a panic will occur. In the future the SDK may create
   255  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   256  // for more information on using Contexts.
   257  func (c *Firehose) DeleteDeliveryStreamWithContext(ctx aws.Context, input *DeleteDeliveryStreamInput, opts ...request.Option) (*DeleteDeliveryStreamOutput, error) {
   258  	req, out := c.DeleteDeliveryStreamRequest(input)
   259  	req.SetContext(ctx)
   260  	req.ApplyOptions(opts...)
   261  	return out, req.Send()
   262  }
   263  
   264  const opDescribeDeliveryStream = "DescribeDeliveryStream"
   265  
   266  // DescribeDeliveryStreamRequest generates a "aws/request.Request" representing the
   267  // client's request for the DescribeDeliveryStream operation. The "output" return
   268  // value will be populated with the request's response once the request completes
   269  // successfully.
   270  //
   271  // Use "Send" method on the returned Request to send the API call to the service.
   272  // the "output" return value is not valid until after Send returns without error.
   273  //
   274  // See DescribeDeliveryStream for more information on using the DescribeDeliveryStream
   275  // API call, and error handling.
   276  //
   277  // This method is useful when you want to inject custom logic or configuration
   278  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   279  //
   280  //
   281  //    // Example sending a request using the DescribeDeliveryStreamRequest method.
   282  //    req, resp := client.DescribeDeliveryStreamRequest(params)
   283  //
   284  //    err := req.Send()
   285  //    if err == nil { // resp is now filled
   286  //        fmt.Println(resp)
   287  //    }
   288  //
   289  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/DescribeDeliveryStream
   290  func (c *Firehose) DescribeDeliveryStreamRequest(input *DescribeDeliveryStreamInput) (req *request.Request, output *DescribeDeliveryStreamOutput) {
   291  	op := &request.Operation{
   292  		Name:       opDescribeDeliveryStream,
   293  		HTTPMethod: "POST",
   294  		HTTPPath:   "/",
   295  	}
   296  
   297  	if input == nil {
   298  		input = &DescribeDeliveryStreamInput{}
   299  	}
   300  
   301  	output = &DescribeDeliveryStreamOutput{}
   302  	req = c.newRequest(op, input, output)
   303  	return
   304  }
   305  
   306  // DescribeDeliveryStream API operation for Amazon Kinesis Firehose.
   307  //
   308  // Describes the specified delivery stream and its status. For example, after
   309  // your delivery stream is created, call DescribeDeliveryStream to see whether
   310  // the delivery stream is ACTIVE and therefore ready for data to be sent to
   311  // it.
   312  //
   313  // If the status of a delivery stream is CREATING_FAILED, this status doesn't
   314  // change, and you can't invoke CreateDeliveryStream again on it. However, you
   315  // can invoke the DeleteDeliveryStream operation to delete it. If the status
   316  // is DELETING_FAILED, you can force deletion by invoking DeleteDeliveryStream
   317  // again but with DeleteDeliveryStreamInput$AllowForceDelete set to true.
   318  //
   319  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   320  // with awserr.Error's Code and Message methods to get detailed information about
   321  // the error.
   322  //
   323  // See the AWS API reference guide for Amazon Kinesis Firehose's
   324  // API operation DescribeDeliveryStream for usage and error information.
   325  //
   326  // Returned Error Types:
   327  //   * ResourceNotFoundException
   328  //   The specified resource could not be found.
   329  //
   330  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/DescribeDeliveryStream
   331  func (c *Firehose) DescribeDeliveryStream(input *DescribeDeliveryStreamInput) (*DescribeDeliveryStreamOutput, error) {
   332  	req, out := c.DescribeDeliveryStreamRequest(input)
   333  	return out, req.Send()
   334  }
   335  
   336  // DescribeDeliveryStreamWithContext is the same as DescribeDeliveryStream with the addition of
   337  // the ability to pass a context and additional request options.
   338  //
   339  // See DescribeDeliveryStream for details on how to use this API operation.
   340  //
   341  // The context must be non-nil and will be used for request cancellation. If
   342  // the context is nil a panic will occur. In the future the SDK may create
   343  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   344  // for more information on using Contexts.
   345  func (c *Firehose) DescribeDeliveryStreamWithContext(ctx aws.Context, input *DescribeDeliveryStreamInput, opts ...request.Option) (*DescribeDeliveryStreamOutput, error) {
   346  	req, out := c.DescribeDeliveryStreamRequest(input)
   347  	req.SetContext(ctx)
   348  	req.ApplyOptions(opts...)
   349  	return out, req.Send()
   350  }
   351  
   352  const opListDeliveryStreams = "ListDeliveryStreams"
   353  
   354  // ListDeliveryStreamsRequest generates a "aws/request.Request" representing the
   355  // client's request for the ListDeliveryStreams operation. The "output" return
   356  // value will be populated with the request's response once the request completes
   357  // successfully.
   358  //
   359  // Use "Send" method on the returned Request to send the API call to the service.
   360  // the "output" return value is not valid until after Send returns without error.
   361  //
   362  // See ListDeliveryStreams for more information on using the ListDeliveryStreams
   363  // API call, and error handling.
   364  //
   365  // This method is useful when you want to inject custom logic or configuration
   366  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   367  //
   368  //
   369  //    // Example sending a request using the ListDeliveryStreamsRequest method.
   370  //    req, resp := client.ListDeliveryStreamsRequest(params)
   371  //
   372  //    err := req.Send()
   373  //    if err == nil { // resp is now filled
   374  //        fmt.Println(resp)
   375  //    }
   376  //
   377  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/ListDeliveryStreams
   378  func (c *Firehose) ListDeliveryStreamsRequest(input *ListDeliveryStreamsInput) (req *request.Request, output *ListDeliveryStreamsOutput) {
   379  	op := &request.Operation{
   380  		Name:       opListDeliveryStreams,
   381  		HTTPMethod: "POST",
   382  		HTTPPath:   "/",
   383  	}
   384  
   385  	if input == nil {
   386  		input = &ListDeliveryStreamsInput{}
   387  	}
   388  
   389  	output = &ListDeliveryStreamsOutput{}
   390  	req = c.newRequest(op, input, output)
   391  	return
   392  }
   393  
   394  // ListDeliveryStreams API operation for Amazon Kinesis Firehose.
   395  //
   396  // Lists your delivery streams in alphabetical order of their names.
   397  //
   398  // The number of delivery streams might be too large to return using a single
   399  // call to ListDeliveryStreams. You can limit the number of delivery streams
   400  // returned, using the Limit parameter. To determine whether there are more
   401  // delivery streams to list, check the value of HasMoreDeliveryStreams in the
   402  // output. If there are more delivery streams to list, you can request them
   403  // by calling this operation again and setting the ExclusiveStartDeliveryStreamName
   404  // parameter to the name of the last delivery stream returned in the last call.
   405  //
   406  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   407  // with awserr.Error's Code and Message methods to get detailed information about
   408  // the error.
   409  //
   410  // See the AWS API reference guide for Amazon Kinesis Firehose's
   411  // API operation ListDeliveryStreams for usage and error information.
   412  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/ListDeliveryStreams
   413  func (c *Firehose) ListDeliveryStreams(input *ListDeliveryStreamsInput) (*ListDeliveryStreamsOutput, error) {
   414  	req, out := c.ListDeliveryStreamsRequest(input)
   415  	return out, req.Send()
   416  }
   417  
   418  // ListDeliveryStreamsWithContext is the same as ListDeliveryStreams with the addition of
   419  // the ability to pass a context and additional request options.
   420  //
   421  // See ListDeliveryStreams for details on how to use this API operation.
   422  //
   423  // The context must be non-nil and will be used for request cancellation. If
   424  // the context is nil a panic will occur. In the future the SDK may create
   425  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   426  // for more information on using Contexts.
   427  func (c *Firehose) ListDeliveryStreamsWithContext(ctx aws.Context, input *ListDeliveryStreamsInput, opts ...request.Option) (*ListDeliveryStreamsOutput, error) {
   428  	req, out := c.ListDeliveryStreamsRequest(input)
   429  	req.SetContext(ctx)
   430  	req.ApplyOptions(opts...)
   431  	return out, req.Send()
   432  }
   433  
   434  const opListTagsForDeliveryStream = "ListTagsForDeliveryStream"
   435  
   436  // ListTagsForDeliveryStreamRequest generates a "aws/request.Request" representing the
   437  // client's request for the ListTagsForDeliveryStream operation. The "output" return
   438  // value will be populated with the request's response once the request completes
   439  // successfully.
   440  //
   441  // Use "Send" method on the returned Request to send the API call to the service.
   442  // the "output" return value is not valid until after Send returns without error.
   443  //
   444  // See ListTagsForDeliveryStream for more information on using the ListTagsForDeliveryStream
   445  // API call, and error handling.
   446  //
   447  // This method is useful when you want to inject custom logic or configuration
   448  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   449  //
   450  //
   451  //    // Example sending a request using the ListTagsForDeliveryStreamRequest method.
   452  //    req, resp := client.ListTagsForDeliveryStreamRequest(params)
   453  //
   454  //    err := req.Send()
   455  //    if err == nil { // resp is now filled
   456  //        fmt.Println(resp)
   457  //    }
   458  //
   459  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/ListTagsForDeliveryStream
   460  func (c *Firehose) ListTagsForDeliveryStreamRequest(input *ListTagsForDeliveryStreamInput) (req *request.Request, output *ListTagsForDeliveryStreamOutput) {
   461  	op := &request.Operation{
   462  		Name:       opListTagsForDeliveryStream,
   463  		HTTPMethod: "POST",
   464  		HTTPPath:   "/",
   465  	}
   466  
   467  	if input == nil {
   468  		input = &ListTagsForDeliveryStreamInput{}
   469  	}
   470  
   471  	output = &ListTagsForDeliveryStreamOutput{}
   472  	req = c.newRequest(op, input, output)
   473  	return
   474  }
   475  
   476  // ListTagsForDeliveryStream API operation for Amazon Kinesis Firehose.
   477  //
   478  // Lists the tags for the specified delivery stream. This operation has a limit
   479  // of five transactions per second per account.
   480  //
   481  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   482  // with awserr.Error's Code and Message methods to get detailed information about
   483  // the error.
   484  //
   485  // See the AWS API reference guide for Amazon Kinesis Firehose's
   486  // API operation ListTagsForDeliveryStream for usage and error information.
   487  //
   488  // Returned Error Types:
   489  //   * ResourceNotFoundException
   490  //   The specified resource could not be found.
   491  //
   492  //   * InvalidArgumentException
   493  //   The specified input parameter has a value that is not valid.
   494  //
   495  //   * LimitExceededException
   496  //   You have already reached the limit for a requested resource.
   497  //
   498  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/ListTagsForDeliveryStream
   499  func (c *Firehose) ListTagsForDeliveryStream(input *ListTagsForDeliveryStreamInput) (*ListTagsForDeliveryStreamOutput, error) {
   500  	req, out := c.ListTagsForDeliveryStreamRequest(input)
   501  	return out, req.Send()
   502  }
   503  
   504  // ListTagsForDeliveryStreamWithContext is the same as ListTagsForDeliveryStream with the addition of
   505  // the ability to pass a context and additional request options.
   506  //
   507  // See ListTagsForDeliveryStream for details on how to use this API operation.
   508  //
   509  // The context must be non-nil and will be used for request cancellation. If
   510  // the context is nil a panic will occur. In the future the SDK may create
   511  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   512  // for more information on using Contexts.
   513  func (c *Firehose) ListTagsForDeliveryStreamWithContext(ctx aws.Context, input *ListTagsForDeliveryStreamInput, opts ...request.Option) (*ListTagsForDeliveryStreamOutput, error) {
   514  	req, out := c.ListTagsForDeliveryStreamRequest(input)
   515  	req.SetContext(ctx)
   516  	req.ApplyOptions(opts...)
   517  	return out, req.Send()
   518  }
   519  
   520  const opPutRecord = "PutRecord"
   521  
   522  // PutRecordRequest generates a "aws/request.Request" representing the
   523  // client's request for the PutRecord operation. The "output" return
   524  // value will be populated with the request's response once the request completes
   525  // successfully.
   526  //
   527  // Use "Send" method on the returned Request to send the API call to the service.
   528  // the "output" return value is not valid until after Send returns without error.
   529  //
   530  // See PutRecord for more information on using the PutRecord
   531  // API call, and error handling.
   532  //
   533  // This method is useful when you want to inject custom logic or configuration
   534  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   535  //
   536  //
   537  //    // Example sending a request using the PutRecordRequest method.
   538  //    req, resp := client.PutRecordRequest(params)
   539  //
   540  //    err := req.Send()
   541  //    if err == nil { // resp is now filled
   542  //        fmt.Println(resp)
   543  //    }
   544  //
   545  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/PutRecord
   546  func (c *Firehose) PutRecordRequest(input *PutRecordInput) (req *request.Request, output *PutRecordOutput) {
   547  	op := &request.Operation{
   548  		Name:       opPutRecord,
   549  		HTTPMethod: "POST",
   550  		HTTPPath:   "/",
   551  	}
   552  
   553  	if input == nil {
   554  		input = &PutRecordInput{}
   555  	}
   556  
   557  	output = &PutRecordOutput{}
   558  	req = c.newRequest(op, input, output)
   559  	return
   560  }
   561  
   562  // PutRecord API operation for Amazon Kinesis Firehose.
   563  //
   564  // Writes a single data record into an Amazon Kinesis Data Firehose delivery
   565  // stream. To write multiple data records into a delivery stream, use PutRecordBatch.
   566  // Applications using these operations are referred to as producers.
   567  //
   568  // By default, each delivery stream can take in up to 2,000 transactions per
   569  // second, 5,000 records per second, or 5 MB per second. If you use PutRecord
   570  // and PutRecordBatch, the limits are an aggregate across these two operations
   571  // for each delivery stream. For more information about limits and how to request
   572  // an increase, see Amazon Kinesis Data Firehose Limits (https://docs.aws.amazon.com/firehose/latest/dev/limits.html).
   573  //
   574  // You must specify the name of the delivery stream and the data record when
   575  // using PutRecord. The data record consists of a data blob that can be up to
   576  // 1,000 KiB in size, and any kind of data. For example, it can be a segment
   577  // from a log file, geographic location data, website clickstream data, and
   578  // so on.
   579  //
   580  // Kinesis Data Firehose buffers records before delivering them to the destination.
   581  // To disambiguate the data blobs at the destination, a common solution is to
   582  // use delimiters in the data, such as a newline (\n) or some other character
   583  // unique within the data. This allows the consumer application to parse individual
   584  // data items when reading the data from the destination.
   585  //
   586  // The PutRecord operation returns a RecordId, which is a unique string assigned
   587  // to each record. Producer applications can use this ID for purposes such as
   588  // auditability and investigation.
   589  //
   590  // If the PutRecord operation throws a ServiceUnavailableException, back off
   591  // and retry. If the exception persists, it is possible that the throughput
   592  // limits have been exceeded for the delivery stream.
   593  //
   594  // Data records sent to Kinesis Data Firehose are stored for 24 hours from the
   595  // time they are added to a delivery stream as it tries to send the records
   596  // to the destination. If the destination is unreachable for more than 24 hours,
   597  // the data is no longer available.
   598  //
   599  // Don't concatenate two or more base64 strings to form the data fields of your
   600  // records. Instead, concatenate the raw data, then perform base64 encoding.
   601  //
   602  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   603  // with awserr.Error's Code and Message methods to get detailed information about
   604  // the error.
   605  //
   606  // See the AWS API reference guide for Amazon Kinesis Firehose's
   607  // API operation PutRecord for usage and error information.
   608  //
   609  // Returned Error Types:
   610  //   * ResourceNotFoundException
   611  //   The specified resource could not be found.
   612  //
   613  //   * InvalidArgumentException
   614  //   The specified input parameter has a value that is not valid.
   615  //
   616  //   * InvalidKMSResourceException
   617  //   Kinesis Data Firehose throws this exception when an attempt to put records
   618  //   or to start or stop delivery stream encryption fails. This happens when the
   619  //   KMS service throws one of the following exception types: AccessDeniedException,
   620  //   InvalidStateException, DisabledException, or NotFoundException.
   621  //
   622  //   * ServiceUnavailableException
   623  //   The service is unavailable. Back off and retry the operation. If you continue
   624  //   to see the exception, throughput limits for the delivery stream may have
   625  //   been exceeded. For more information about limits and how to request an increase,
   626  //   see Amazon Kinesis Data Firehose Limits (https://docs.aws.amazon.com/firehose/latest/dev/limits.html).
   627  //
   628  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/PutRecord
   629  func (c *Firehose) PutRecord(input *PutRecordInput) (*PutRecordOutput, error) {
   630  	req, out := c.PutRecordRequest(input)
   631  	return out, req.Send()
   632  }
   633  
   634  // PutRecordWithContext is the same as PutRecord with the addition of
   635  // the ability to pass a context and additional request options.
   636  //
   637  // See PutRecord for details on how to use this API operation.
   638  //
   639  // The context must be non-nil and will be used for request cancellation. If
   640  // the context is nil a panic will occur. In the future the SDK may create
   641  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   642  // for more information on using Contexts.
   643  func (c *Firehose) PutRecordWithContext(ctx aws.Context, input *PutRecordInput, opts ...request.Option) (*PutRecordOutput, error) {
   644  	req, out := c.PutRecordRequest(input)
   645  	req.SetContext(ctx)
   646  	req.ApplyOptions(opts...)
   647  	return out, req.Send()
   648  }
   649  
   650  const opPutRecordBatch = "PutRecordBatch"
   651  
   652  // PutRecordBatchRequest generates a "aws/request.Request" representing the
   653  // client's request for the PutRecordBatch operation. The "output" return
   654  // value will be populated with the request's response once the request completes
   655  // successfully.
   656  //
   657  // Use "Send" method on the returned Request to send the API call to the service.
   658  // the "output" return value is not valid until after Send returns without error.
   659  //
   660  // See PutRecordBatch for more information on using the PutRecordBatch
   661  // API call, and error handling.
   662  //
   663  // This method is useful when you want to inject custom logic or configuration
   664  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   665  //
   666  //
   667  //    // Example sending a request using the PutRecordBatchRequest method.
   668  //    req, resp := client.PutRecordBatchRequest(params)
   669  //
   670  //    err := req.Send()
   671  //    if err == nil { // resp is now filled
   672  //        fmt.Println(resp)
   673  //    }
   674  //
   675  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/PutRecordBatch
   676  func (c *Firehose) PutRecordBatchRequest(input *PutRecordBatchInput) (req *request.Request, output *PutRecordBatchOutput) {
   677  	op := &request.Operation{
   678  		Name:       opPutRecordBatch,
   679  		HTTPMethod: "POST",
   680  		HTTPPath:   "/",
   681  	}
   682  
   683  	if input == nil {
   684  		input = &PutRecordBatchInput{}
   685  	}
   686  
   687  	output = &PutRecordBatchOutput{}
   688  	req = c.newRequest(op, input, output)
   689  	return
   690  }
   691  
   692  // PutRecordBatch API operation for Amazon Kinesis Firehose.
   693  //
   694  // Writes multiple data records into a delivery stream in a single call, which
   695  // can achieve higher throughput per producer than when writing single records.
   696  // To write single data records into a delivery stream, use PutRecord. Applications
   697  // using these operations are referred to as producers.
   698  //
   699  // For information about service quota, see Amazon Kinesis Data Firehose Quota
   700  // (https://docs.aws.amazon.com/firehose/latest/dev/limits.html).
   701  //
   702  // Each PutRecordBatch request supports up to 500 records. Each record in the
   703  // request can be as large as 1,000 KB (before base64 encoding), up to a limit
   704  // of 4 MB for the entire request. These limits cannot be changed.
   705  //
   706  // You must specify the name of the delivery stream and the data record when
   707  // using PutRecord. The data record consists of a data blob that can be up to
   708  // 1,000 KB in size, and any kind of data. For example, it could be a segment
   709  // from a log file, geographic location data, website clickstream data, and
   710  // so on.
   711  //
   712  // Kinesis Data Firehose buffers records before delivering them to the destination.
   713  // To disambiguate the data blobs at the destination, a common solution is to
   714  // use delimiters in the data, such as a newline (\n) or some other character
   715  // unique within the data. This allows the consumer application to parse individual
   716  // data items when reading the data from the destination.
   717  //
   718  // The PutRecordBatch response includes a count of failed records, FailedPutCount,
   719  // and an array of responses, RequestResponses. Even if the PutRecordBatch call
   720  // succeeds, the value of FailedPutCount may be greater than 0, indicating that
   721  // there are records for which the operation didn't succeed. Each entry in the
   722  // RequestResponses array provides additional information about the processed
   723  // record. It directly correlates with a record in the request array using the
   724  // same ordering, from the top to the bottom. The response array always includes
   725  // the same number of records as the request array. RequestResponses includes
   726  // both successfully and unsuccessfully processed records. Kinesis Data Firehose
   727  // tries to process all records in each PutRecordBatch request. A single record
   728  // failure does not stop the processing of subsequent records.
   729  //
   730  // A successfully processed record includes a RecordId value, which is unique
   731  // for the record. An unsuccessfully processed record includes ErrorCode and
   732  // ErrorMessage values. ErrorCode reflects the type of error, and is one of
   733  // the following values: ServiceUnavailableException or InternalFailure. ErrorMessage
   734  // provides more detailed information about the error.
   735  //
   736  // If there is an internal server error or a timeout, the write might have completed
   737  // or it might have failed. If FailedPutCount is greater than 0, retry the request,
   738  // resending only those records that might have failed processing. This minimizes
   739  // the possible duplicate records and also reduces the total bytes sent (and
   740  // corresponding charges). We recommend that you handle any duplicates at the
   741  // destination.
   742  //
   743  // If PutRecordBatch throws ServiceUnavailableException, back off and retry.
   744  // If the exception persists, it is possible that the throughput limits have
   745  // been exceeded for the delivery stream.
   746  //
   747  // Data records sent to Kinesis Data Firehose are stored for 24 hours from the
   748  // time they are added to a delivery stream as it attempts to send the records
   749  // to the destination. If the destination is unreachable for more than 24 hours,
   750  // the data is no longer available.
   751  //
   752  // Don't concatenate two or more base64 strings to form the data fields of your
   753  // records. Instead, concatenate the raw data, then perform base64 encoding.
   754  //
   755  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   756  // with awserr.Error's Code and Message methods to get detailed information about
   757  // the error.
   758  //
   759  // See the AWS API reference guide for Amazon Kinesis Firehose's
   760  // API operation PutRecordBatch for usage and error information.
   761  //
   762  // Returned Error Types:
   763  //   * ResourceNotFoundException
   764  //   The specified resource could not be found.
   765  //
   766  //   * InvalidArgumentException
   767  //   The specified input parameter has a value that is not valid.
   768  //
   769  //   * InvalidKMSResourceException
   770  //   Kinesis Data Firehose throws this exception when an attempt to put records
   771  //   or to start or stop delivery stream encryption fails. This happens when the
   772  //   KMS service throws one of the following exception types: AccessDeniedException,
   773  //   InvalidStateException, DisabledException, or NotFoundException.
   774  //
   775  //   * ServiceUnavailableException
   776  //   The service is unavailable. Back off and retry the operation. If you continue
   777  //   to see the exception, throughput limits for the delivery stream may have
   778  //   been exceeded. For more information about limits and how to request an increase,
   779  //   see Amazon Kinesis Data Firehose Limits (https://docs.aws.amazon.com/firehose/latest/dev/limits.html).
   780  //
   781  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/PutRecordBatch
   782  func (c *Firehose) PutRecordBatch(input *PutRecordBatchInput) (*PutRecordBatchOutput, error) {
   783  	req, out := c.PutRecordBatchRequest(input)
   784  	return out, req.Send()
   785  }
   786  
   787  // PutRecordBatchWithContext is the same as PutRecordBatch with the addition of
   788  // the ability to pass a context and additional request options.
   789  //
   790  // See PutRecordBatch for details on how to use this API operation.
   791  //
   792  // The context must be non-nil and will be used for request cancellation. If
   793  // the context is nil a panic will occur. In the future the SDK may create
   794  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   795  // for more information on using Contexts.
   796  func (c *Firehose) PutRecordBatchWithContext(ctx aws.Context, input *PutRecordBatchInput, opts ...request.Option) (*PutRecordBatchOutput, error) {
   797  	req, out := c.PutRecordBatchRequest(input)
   798  	req.SetContext(ctx)
   799  	req.ApplyOptions(opts...)
   800  	return out, req.Send()
   801  }
   802  
   803  const opStartDeliveryStreamEncryption = "StartDeliveryStreamEncryption"
   804  
   805  // StartDeliveryStreamEncryptionRequest generates a "aws/request.Request" representing the
   806  // client's request for the StartDeliveryStreamEncryption operation. The "output" return
   807  // value will be populated with the request's response once the request completes
   808  // successfully.
   809  //
   810  // Use "Send" method on the returned Request to send the API call to the service.
   811  // the "output" return value is not valid until after Send returns without error.
   812  //
   813  // See StartDeliveryStreamEncryption for more information on using the StartDeliveryStreamEncryption
   814  // API call, and error handling.
   815  //
   816  // This method is useful when you want to inject custom logic or configuration
   817  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   818  //
   819  //
   820  //    // Example sending a request using the StartDeliveryStreamEncryptionRequest method.
   821  //    req, resp := client.StartDeliveryStreamEncryptionRequest(params)
   822  //
   823  //    err := req.Send()
   824  //    if err == nil { // resp is now filled
   825  //        fmt.Println(resp)
   826  //    }
   827  //
   828  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/StartDeliveryStreamEncryption
   829  func (c *Firehose) StartDeliveryStreamEncryptionRequest(input *StartDeliveryStreamEncryptionInput) (req *request.Request, output *StartDeliveryStreamEncryptionOutput) {
   830  	op := &request.Operation{
   831  		Name:       opStartDeliveryStreamEncryption,
   832  		HTTPMethod: "POST",
   833  		HTTPPath:   "/",
   834  	}
   835  
   836  	if input == nil {
   837  		input = &StartDeliveryStreamEncryptionInput{}
   838  	}
   839  
   840  	output = &StartDeliveryStreamEncryptionOutput{}
   841  	req = c.newRequest(op, input, output)
   842  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   843  	return
   844  }
   845  
   846  // StartDeliveryStreamEncryption API operation for Amazon Kinesis Firehose.
   847  //
   848  // Enables server-side encryption (SSE) for the delivery stream.
   849  //
   850  // This operation is asynchronous. It returns immediately. When you invoke it,
   851  // Kinesis Data Firehose first sets the encryption status of the stream to ENABLING,
   852  // and then to ENABLED. The encryption status of a delivery stream is the Status
   853  // property in DeliveryStreamEncryptionConfiguration. If the operation fails,
   854  // the encryption status changes to ENABLING_FAILED. You can continue to read
   855  // and write data to your delivery stream while the encryption status is ENABLING,
   856  // but the data is not encrypted. It can take up to 5 seconds after the encryption
   857  // status changes to ENABLED before all records written to the delivery stream
   858  // are encrypted. To find out whether a record or a batch of records was encrypted,
   859  // check the response elements PutRecordOutput$Encrypted and PutRecordBatchOutput$Encrypted,
   860  // respectively.
   861  //
   862  // To check the encryption status of a delivery stream, use DescribeDeliveryStream.
   863  //
   864  // Even if encryption is currently enabled for a delivery stream, you can still
   865  // invoke this operation on it to change the ARN of the CMK or both its type
   866  // and ARN. If you invoke this method to change the CMK, and the old CMK is
   867  // of type CUSTOMER_MANAGED_CMK, Kinesis Data Firehose schedules the grant it
   868  // had on the old CMK for retirement. If the new CMK is of type CUSTOMER_MANAGED_CMK,
   869  // Kinesis Data Firehose creates a grant that enables it to use the new CMK
   870  // to encrypt and decrypt data and to manage the grant.
   871  //
   872  // If a delivery stream already has encryption enabled and then you invoke this
   873  // operation to change the ARN of the CMK or both its type and ARN and you get
   874  // ENABLING_FAILED, this only means that the attempt to change the CMK failed.
   875  // In this case, encryption remains enabled with the old CMK.
   876  //
   877  // If the encryption status of your delivery stream is ENABLING_FAILED, you
   878  // can invoke this operation again with a valid CMK. The CMK must be enabled
   879  // and the key policy mustn't explicitly deny the permission for Kinesis Data
   880  // Firehose to invoke KMS encrypt and decrypt operations.
   881  //
   882  // You can enable SSE for a delivery stream only if it's a delivery stream that
   883  // uses DirectPut as its source.
   884  //
   885  // The StartDeliveryStreamEncryption and StopDeliveryStreamEncryption operations
   886  // have a combined limit of 25 calls per delivery stream per 24 hours. For example,
   887  // you reach the limit if you call StartDeliveryStreamEncryption 13 times and
   888  // StopDeliveryStreamEncryption 12 times for the same delivery stream in a 24-hour
   889  // period.
   890  //
   891  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   892  // with awserr.Error's Code and Message methods to get detailed information about
   893  // the error.
   894  //
   895  // See the AWS API reference guide for Amazon Kinesis Firehose's
   896  // API operation StartDeliveryStreamEncryption for usage and error information.
   897  //
   898  // Returned Error Types:
   899  //   * ResourceNotFoundException
   900  //   The specified resource could not be found.
   901  //
   902  //   * ResourceInUseException
   903  //   The resource is already in use and not available for this operation.
   904  //
   905  //   * InvalidArgumentException
   906  //   The specified input parameter has a value that is not valid.
   907  //
   908  //   * LimitExceededException
   909  //   You have already reached the limit for a requested resource.
   910  //
   911  //   * InvalidKMSResourceException
   912  //   Kinesis Data Firehose throws this exception when an attempt to put records
   913  //   or to start or stop delivery stream encryption fails. This happens when the
   914  //   KMS service throws one of the following exception types: AccessDeniedException,
   915  //   InvalidStateException, DisabledException, or NotFoundException.
   916  //
   917  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/StartDeliveryStreamEncryption
   918  func (c *Firehose) StartDeliveryStreamEncryption(input *StartDeliveryStreamEncryptionInput) (*StartDeliveryStreamEncryptionOutput, error) {
   919  	req, out := c.StartDeliveryStreamEncryptionRequest(input)
   920  	return out, req.Send()
   921  }
   922  
   923  // StartDeliveryStreamEncryptionWithContext is the same as StartDeliveryStreamEncryption with the addition of
   924  // the ability to pass a context and additional request options.
   925  //
   926  // See StartDeliveryStreamEncryption for details on how to use this API operation.
   927  //
   928  // The context must be non-nil and will be used for request cancellation. If
   929  // the context is nil a panic will occur. In the future the SDK may create
   930  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   931  // for more information on using Contexts.
   932  func (c *Firehose) StartDeliveryStreamEncryptionWithContext(ctx aws.Context, input *StartDeliveryStreamEncryptionInput, opts ...request.Option) (*StartDeliveryStreamEncryptionOutput, error) {
   933  	req, out := c.StartDeliveryStreamEncryptionRequest(input)
   934  	req.SetContext(ctx)
   935  	req.ApplyOptions(opts...)
   936  	return out, req.Send()
   937  }
   938  
   939  const opStopDeliveryStreamEncryption = "StopDeliveryStreamEncryption"
   940  
   941  // StopDeliveryStreamEncryptionRequest generates a "aws/request.Request" representing the
   942  // client's request for the StopDeliveryStreamEncryption operation. The "output" return
   943  // value will be populated with the request's response once the request completes
   944  // successfully.
   945  //
   946  // Use "Send" method on the returned Request to send the API call to the service.
   947  // the "output" return value is not valid until after Send returns without error.
   948  //
   949  // See StopDeliveryStreamEncryption for more information on using the StopDeliveryStreamEncryption
   950  // API call, and error handling.
   951  //
   952  // This method is useful when you want to inject custom logic or configuration
   953  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   954  //
   955  //
   956  //    // Example sending a request using the StopDeliveryStreamEncryptionRequest method.
   957  //    req, resp := client.StopDeliveryStreamEncryptionRequest(params)
   958  //
   959  //    err := req.Send()
   960  //    if err == nil { // resp is now filled
   961  //        fmt.Println(resp)
   962  //    }
   963  //
   964  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/StopDeliveryStreamEncryption
   965  func (c *Firehose) StopDeliveryStreamEncryptionRequest(input *StopDeliveryStreamEncryptionInput) (req *request.Request, output *StopDeliveryStreamEncryptionOutput) {
   966  	op := &request.Operation{
   967  		Name:       opStopDeliveryStreamEncryption,
   968  		HTTPMethod: "POST",
   969  		HTTPPath:   "/",
   970  	}
   971  
   972  	if input == nil {
   973  		input = &StopDeliveryStreamEncryptionInput{}
   974  	}
   975  
   976  	output = &StopDeliveryStreamEncryptionOutput{}
   977  	req = c.newRequest(op, input, output)
   978  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
   979  	return
   980  }
   981  
   982  // StopDeliveryStreamEncryption API operation for Amazon Kinesis Firehose.
   983  //
   984  // Disables server-side encryption (SSE) for the delivery stream.
   985  //
   986  // This operation is asynchronous. It returns immediately. When you invoke it,
   987  // Kinesis Data Firehose first sets the encryption status of the stream to DISABLING,
   988  // and then to DISABLED. You can continue to read and write data to your stream
   989  // while its status is DISABLING. It can take up to 5 seconds after the encryption
   990  // status changes to DISABLED before all records written to the delivery stream
   991  // are no longer subject to encryption. To find out whether a record or a batch
   992  // of records was encrypted, check the response elements PutRecordOutput$Encrypted
   993  // and PutRecordBatchOutput$Encrypted, respectively.
   994  //
   995  // To check the encryption state of a delivery stream, use DescribeDeliveryStream.
   996  //
   997  // If SSE is enabled using a customer managed CMK and then you invoke StopDeliveryStreamEncryption,
   998  // Kinesis Data Firehose schedules the related KMS grant for retirement and
   999  // then retires it after it ensures that it is finished delivering records to
  1000  // the destination.
  1001  //
  1002  // The StartDeliveryStreamEncryption and StopDeliveryStreamEncryption operations
  1003  // have a combined limit of 25 calls per delivery stream per 24 hours. For example,
  1004  // you reach the limit if you call StartDeliveryStreamEncryption 13 times and
  1005  // StopDeliveryStreamEncryption 12 times for the same delivery stream in a 24-hour
  1006  // period.
  1007  //
  1008  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1009  // with awserr.Error's Code and Message methods to get detailed information about
  1010  // the error.
  1011  //
  1012  // See the AWS API reference guide for Amazon Kinesis Firehose's
  1013  // API operation StopDeliveryStreamEncryption for usage and error information.
  1014  //
  1015  // Returned Error Types:
  1016  //   * ResourceNotFoundException
  1017  //   The specified resource could not be found.
  1018  //
  1019  //   * ResourceInUseException
  1020  //   The resource is already in use and not available for this operation.
  1021  //
  1022  //   * InvalidArgumentException
  1023  //   The specified input parameter has a value that is not valid.
  1024  //
  1025  //   * LimitExceededException
  1026  //   You have already reached the limit for a requested resource.
  1027  //
  1028  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/StopDeliveryStreamEncryption
  1029  func (c *Firehose) StopDeliveryStreamEncryption(input *StopDeliveryStreamEncryptionInput) (*StopDeliveryStreamEncryptionOutput, error) {
  1030  	req, out := c.StopDeliveryStreamEncryptionRequest(input)
  1031  	return out, req.Send()
  1032  }
  1033  
  1034  // StopDeliveryStreamEncryptionWithContext is the same as StopDeliveryStreamEncryption with the addition of
  1035  // the ability to pass a context and additional request options.
  1036  //
  1037  // See StopDeliveryStreamEncryption for details on how to use this API operation.
  1038  //
  1039  // The context must be non-nil and will be used for request cancellation. If
  1040  // the context is nil a panic will occur. In the future the SDK may create
  1041  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1042  // for more information on using Contexts.
  1043  func (c *Firehose) StopDeliveryStreamEncryptionWithContext(ctx aws.Context, input *StopDeliveryStreamEncryptionInput, opts ...request.Option) (*StopDeliveryStreamEncryptionOutput, error) {
  1044  	req, out := c.StopDeliveryStreamEncryptionRequest(input)
  1045  	req.SetContext(ctx)
  1046  	req.ApplyOptions(opts...)
  1047  	return out, req.Send()
  1048  }
  1049  
  1050  const opTagDeliveryStream = "TagDeliveryStream"
  1051  
  1052  // TagDeliveryStreamRequest generates a "aws/request.Request" representing the
  1053  // client's request for the TagDeliveryStream operation. The "output" return
  1054  // value will be populated with the request's response once the request completes
  1055  // successfully.
  1056  //
  1057  // Use "Send" method on the returned Request to send the API call to the service.
  1058  // the "output" return value is not valid until after Send returns without error.
  1059  //
  1060  // See TagDeliveryStream for more information on using the TagDeliveryStream
  1061  // API call, and error handling.
  1062  //
  1063  // This method is useful when you want to inject custom logic or configuration
  1064  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1065  //
  1066  //
  1067  //    // Example sending a request using the TagDeliveryStreamRequest method.
  1068  //    req, resp := client.TagDeliveryStreamRequest(params)
  1069  //
  1070  //    err := req.Send()
  1071  //    if err == nil { // resp is now filled
  1072  //        fmt.Println(resp)
  1073  //    }
  1074  //
  1075  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/TagDeliveryStream
  1076  func (c *Firehose) TagDeliveryStreamRequest(input *TagDeliveryStreamInput) (req *request.Request, output *TagDeliveryStreamOutput) {
  1077  	op := &request.Operation{
  1078  		Name:       opTagDeliveryStream,
  1079  		HTTPMethod: "POST",
  1080  		HTTPPath:   "/",
  1081  	}
  1082  
  1083  	if input == nil {
  1084  		input = &TagDeliveryStreamInput{}
  1085  	}
  1086  
  1087  	output = &TagDeliveryStreamOutput{}
  1088  	req = c.newRequest(op, input, output)
  1089  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1090  	return
  1091  }
  1092  
  1093  // TagDeliveryStream API operation for Amazon Kinesis Firehose.
  1094  //
  1095  // Adds or updates tags for the specified delivery stream. A tag is a key-value
  1096  // pair that you can define and assign to AWS resources. If you specify a tag
  1097  // that already exists, the tag value is replaced with the value that you specify
  1098  // in the request. Tags are metadata. For example, you can add friendly names
  1099  // and descriptions or other types of information that can help you distinguish
  1100  // the delivery stream. For more information about tags, see Using Cost Allocation
  1101  // Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)
  1102  // in the AWS Billing and Cost Management User Guide.
  1103  //
  1104  // Each delivery stream can have up to 50 tags.
  1105  //
  1106  // This operation has a limit of five transactions per second per account.
  1107  //
  1108  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1109  // with awserr.Error's Code and Message methods to get detailed information about
  1110  // the error.
  1111  //
  1112  // See the AWS API reference guide for Amazon Kinesis Firehose's
  1113  // API operation TagDeliveryStream for usage and error information.
  1114  //
  1115  // Returned Error Types:
  1116  //   * ResourceNotFoundException
  1117  //   The specified resource could not be found.
  1118  //
  1119  //   * ResourceInUseException
  1120  //   The resource is already in use and not available for this operation.
  1121  //
  1122  //   * InvalidArgumentException
  1123  //   The specified input parameter has a value that is not valid.
  1124  //
  1125  //   * LimitExceededException
  1126  //   You have already reached the limit for a requested resource.
  1127  //
  1128  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/TagDeliveryStream
  1129  func (c *Firehose) TagDeliveryStream(input *TagDeliveryStreamInput) (*TagDeliveryStreamOutput, error) {
  1130  	req, out := c.TagDeliveryStreamRequest(input)
  1131  	return out, req.Send()
  1132  }
  1133  
  1134  // TagDeliveryStreamWithContext is the same as TagDeliveryStream with the addition of
  1135  // the ability to pass a context and additional request options.
  1136  //
  1137  // See TagDeliveryStream for details on how to use this API operation.
  1138  //
  1139  // The context must be non-nil and will be used for request cancellation. If
  1140  // the context is nil a panic will occur. In the future the SDK may create
  1141  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1142  // for more information on using Contexts.
  1143  func (c *Firehose) TagDeliveryStreamWithContext(ctx aws.Context, input *TagDeliveryStreamInput, opts ...request.Option) (*TagDeliveryStreamOutput, error) {
  1144  	req, out := c.TagDeliveryStreamRequest(input)
  1145  	req.SetContext(ctx)
  1146  	req.ApplyOptions(opts...)
  1147  	return out, req.Send()
  1148  }
  1149  
  1150  const opUntagDeliveryStream = "UntagDeliveryStream"
  1151  
  1152  // UntagDeliveryStreamRequest generates a "aws/request.Request" representing the
  1153  // client's request for the UntagDeliveryStream operation. The "output" return
  1154  // value will be populated with the request's response once the request completes
  1155  // successfully.
  1156  //
  1157  // Use "Send" method on the returned Request to send the API call to the service.
  1158  // the "output" return value is not valid until after Send returns without error.
  1159  //
  1160  // See UntagDeliveryStream for more information on using the UntagDeliveryStream
  1161  // API call, and error handling.
  1162  //
  1163  // This method is useful when you want to inject custom logic or configuration
  1164  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1165  //
  1166  //
  1167  //    // Example sending a request using the UntagDeliveryStreamRequest method.
  1168  //    req, resp := client.UntagDeliveryStreamRequest(params)
  1169  //
  1170  //    err := req.Send()
  1171  //    if err == nil { // resp is now filled
  1172  //        fmt.Println(resp)
  1173  //    }
  1174  //
  1175  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/UntagDeliveryStream
  1176  func (c *Firehose) UntagDeliveryStreamRequest(input *UntagDeliveryStreamInput) (req *request.Request, output *UntagDeliveryStreamOutput) {
  1177  	op := &request.Operation{
  1178  		Name:       opUntagDeliveryStream,
  1179  		HTTPMethod: "POST",
  1180  		HTTPPath:   "/",
  1181  	}
  1182  
  1183  	if input == nil {
  1184  		input = &UntagDeliveryStreamInput{}
  1185  	}
  1186  
  1187  	output = &UntagDeliveryStreamOutput{}
  1188  	req = c.newRequest(op, input, output)
  1189  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1190  	return
  1191  }
  1192  
  1193  // UntagDeliveryStream API operation for Amazon Kinesis Firehose.
  1194  //
  1195  // Removes tags from the specified delivery stream. Removed tags are deleted,
  1196  // and you can't recover them after this operation successfully completes.
  1197  //
  1198  // If you specify a tag that doesn't exist, the operation ignores it.
  1199  //
  1200  // This operation has a limit of five transactions per second per account.
  1201  //
  1202  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1203  // with awserr.Error's Code and Message methods to get detailed information about
  1204  // the error.
  1205  //
  1206  // See the AWS API reference guide for Amazon Kinesis Firehose's
  1207  // API operation UntagDeliveryStream for usage and error information.
  1208  //
  1209  // Returned Error Types:
  1210  //   * ResourceNotFoundException
  1211  //   The specified resource could not be found.
  1212  //
  1213  //   * ResourceInUseException
  1214  //   The resource is already in use and not available for this operation.
  1215  //
  1216  //   * InvalidArgumentException
  1217  //   The specified input parameter has a value that is not valid.
  1218  //
  1219  //   * LimitExceededException
  1220  //   You have already reached the limit for a requested resource.
  1221  //
  1222  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/UntagDeliveryStream
  1223  func (c *Firehose) UntagDeliveryStream(input *UntagDeliveryStreamInput) (*UntagDeliveryStreamOutput, error) {
  1224  	req, out := c.UntagDeliveryStreamRequest(input)
  1225  	return out, req.Send()
  1226  }
  1227  
  1228  // UntagDeliveryStreamWithContext is the same as UntagDeliveryStream with the addition of
  1229  // the ability to pass a context and additional request options.
  1230  //
  1231  // See UntagDeliveryStream for details on how to use this API operation.
  1232  //
  1233  // The context must be non-nil and will be used for request cancellation. If
  1234  // the context is nil a panic will occur. In the future the SDK may create
  1235  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1236  // for more information on using Contexts.
  1237  func (c *Firehose) UntagDeliveryStreamWithContext(ctx aws.Context, input *UntagDeliveryStreamInput, opts ...request.Option) (*UntagDeliveryStreamOutput, error) {
  1238  	req, out := c.UntagDeliveryStreamRequest(input)
  1239  	req.SetContext(ctx)
  1240  	req.ApplyOptions(opts...)
  1241  	return out, req.Send()
  1242  }
  1243  
  1244  const opUpdateDestination = "UpdateDestination"
  1245  
  1246  // UpdateDestinationRequest generates a "aws/request.Request" representing the
  1247  // client's request for the UpdateDestination operation. The "output" return
  1248  // value will be populated with the request's response once the request completes
  1249  // successfully.
  1250  //
  1251  // Use "Send" method on the returned Request to send the API call to the service.
  1252  // the "output" return value is not valid until after Send returns without error.
  1253  //
  1254  // See UpdateDestination for more information on using the UpdateDestination
  1255  // API call, and error handling.
  1256  //
  1257  // This method is useful when you want to inject custom logic or configuration
  1258  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1259  //
  1260  //
  1261  //    // Example sending a request using the UpdateDestinationRequest method.
  1262  //    req, resp := client.UpdateDestinationRequest(params)
  1263  //
  1264  //    err := req.Send()
  1265  //    if err == nil { // resp is now filled
  1266  //        fmt.Println(resp)
  1267  //    }
  1268  //
  1269  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/UpdateDestination
  1270  func (c *Firehose) UpdateDestinationRequest(input *UpdateDestinationInput) (req *request.Request, output *UpdateDestinationOutput) {
  1271  	op := &request.Operation{
  1272  		Name:       opUpdateDestination,
  1273  		HTTPMethod: "POST",
  1274  		HTTPPath:   "/",
  1275  	}
  1276  
  1277  	if input == nil {
  1278  		input = &UpdateDestinationInput{}
  1279  	}
  1280  
  1281  	output = &UpdateDestinationOutput{}
  1282  	req = c.newRequest(op, input, output)
  1283  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  1284  	return
  1285  }
  1286  
  1287  // UpdateDestination API operation for Amazon Kinesis Firehose.
  1288  //
  1289  // Updates the specified destination of the specified delivery stream.
  1290  //
  1291  // Use this operation to change the destination type (for example, to replace
  1292  // the Amazon S3 destination with Amazon Redshift) or change the parameters
  1293  // associated with a destination (for example, to change the bucket name of
  1294  // the Amazon S3 destination). The update might not occur immediately. The target
  1295  // delivery stream remains active while the configurations are updated, so data
  1296  // writes to the delivery stream can continue during this process. The updated
  1297  // configurations are usually effective within a few minutes.
  1298  //
  1299  // Switching between Amazon ES and other services is not supported. For an Amazon
  1300  // ES destination, you can only update to another Amazon ES destination.
  1301  //
  1302  // If the destination type is the same, Kinesis Data Firehose merges the configuration
  1303  // parameters specified with the destination configuration that already exists
  1304  // on the delivery stream. If any of the parameters are not specified in the
  1305  // call, the existing values are retained. For example, in the Amazon S3 destination,
  1306  // if EncryptionConfiguration is not specified, then the existing EncryptionConfiguration
  1307  // is maintained on the destination.
  1308  //
  1309  // If the destination type is not the same, for example, changing the destination
  1310  // from Amazon S3 to Amazon Redshift, Kinesis Data Firehose does not merge any
  1311  // parameters. In this case, all parameters must be specified.
  1312  //
  1313  // Kinesis Data Firehose uses CurrentDeliveryStreamVersionId to avoid race conditions
  1314  // and conflicting merges. This is a required field, and the service updates
  1315  // the configuration only if the existing configuration has a version ID that
  1316  // matches. After the update is applied successfully, the version ID is updated,
  1317  // and can be retrieved using DescribeDeliveryStream. Use the new version ID
  1318  // to set CurrentDeliveryStreamVersionId in the next call.
  1319  //
  1320  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1321  // with awserr.Error's Code and Message methods to get detailed information about
  1322  // the error.
  1323  //
  1324  // See the AWS API reference guide for Amazon Kinesis Firehose's
  1325  // API operation UpdateDestination for usage and error information.
  1326  //
  1327  // Returned Error Types:
  1328  //   * InvalidArgumentException
  1329  //   The specified input parameter has a value that is not valid.
  1330  //
  1331  //   * ResourceInUseException
  1332  //   The resource is already in use and not available for this operation.
  1333  //
  1334  //   * ResourceNotFoundException
  1335  //   The specified resource could not be found.
  1336  //
  1337  //   * ConcurrentModificationException
  1338  //   Another modification has already happened. Fetch VersionId again and use
  1339  //   it to update the destination.
  1340  //
  1341  // See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/UpdateDestination
  1342  func (c *Firehose) UpdateDestination(input *UpdateDestinationInput) (*UpdateDestinationOutput, error) {
  1343  	req, out := c.UpdateDestinationRequest(input)
  1344  	return out, req.Send()
  1345  }
  1346  
  1347  // UpdateDestinationWithContext is the same as UpdateDestination with the addition of
  1348  // the ability to pass a context and additional request options.
  1349  //
  1350  // See UpdateDestination for details on how to use this API operation.
  1351  //
  1352  // The context must be non-nil and will be used for request cancellation. If
  1353  // the context is nil a panic will occur. In the future the SDK may create
  1354  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1355  // for more information on using Contexts.
  1356  func (c *Firehose) UpdateDestinationWithContext(ctx aws.Context, input *UpdateDestinationInput, opts ...request.Option) (*UpdateDestinationOutput, error) {
  1357  	req, out := c.UpdateDestinationRequest(input)
  1358  	req.SetContext(ctx)
  1359  	req.ApplyOptions(opts...)
  1360  	return out, req.Send()
  1361  }
  1362  
  1363  type AmazonopensearchserviceBufferingHints struct {
  1364  	_ struct{} `type:"structure"`
  1365  
  1366  	IntervalInSeconds *int64 `min:"60" type:"integer"`
  1367  
  1368  	SizeInMBs *int64 `min:"1" type:"integer"`
  1369  }
  1370  
  1371  // String returns the string representation.
  1372  //
  1373  // API parameter values that are decorated as "sensitive" in the API will not
  1374  // be included in the string output. The member name will be present, but the
  1375  // value will be replaced with "sensitive".
  1376  func (s AmazonopensearchserviceBufferingHints) String() string {
  1377  	return awsutil.Prettify(s)
  1378  }
  1379  
  1380  // GoString returns the string representation.
  1381  //
  1382  // API parameter values that are decorated as "sensitive" in the API will not
  1383  // be included in the string output. The member name will be present, but the
  1384  // value will be replaced with "sensitive".
  1385  func (s AmazonopensearchserviceBufferingHints) GoString() string {
  1386  	return s.String()
  1387  }
  1388  
  1389  // Validate inspects the fields of the type to determine if they are valid.
  1390  func (s *AmazonopensearchserviceBufferingHints) Validate() error {
  1391  	invalidParams := request.ErrInvalidParams{Context: "AmazonopensearchserviceBufferingHints"}
  1392  	if s.IntervalInSeconds != nil && *s.IntervalInSeconds < 60 {
  1393  		invalidParams.Add(request.NewErrParamMinValue("IntervalInSeconds", 60))
  1394  	}
  1395  	if s.SizeInMBs != nil && *s.SizeInMBs < 1 {
  1396  		invalidParams.Add(request.NewErrParamMinValue("SizeInMBs", 1))
  1397  	}
  1398  
  1399  	if invalidParams.Len() > 0 {
  1400  		return invalidParams
  1401  	}
  1402  	return nil
  1403  }
  1404  
  1405  // SetIntervalInSeconds sets the IntervalInSeconds field's value.
  1406  func (s *AmazonopensearchserviceBufferingHints) SetIntervalInSeconds(v int64) *AmazonopensearchserviceBufferingHints {
  1407  	s.IntervalInSeconds = &v
  1408  	return s
  1409  }
  1410  
  1411  // SetSizeInMBs sets the SizeInMBs field's value.
  1412  func (s *AmazonopensearchserviceBufferingHints) SetSizeInMBs(v int64) *AmazonopensearchserviceBufferingHints {
  1413  	s.SizeInMBs = &v
  1414  	return s
  1415  }
  1416  
  1417  type AmazonopensearchserviceDestinationConfiguration struct {
  1418  	_ struct{} `type:"structure"`
  1419  
  1420  	BufferingHints *AmazonopensearchserviceBufferingHints `type:"structure"`
  1421  
  1422  	// Describes the Amazon CloudWatch logging options for your delivery stream.
  1423  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  1424  
  1425  	ClusterEndpoint *string `min:"1" type:"string"`
  1426  
  1427  	DomainARN *string `min:"1" type:"string"`
  1428  
  1429  	// IndexName is a required field
  1430  	IndexName *string `min:"1" type:"string" required:"true"`
  1431  
  1432  	IndexRotationPeriod *string `type:"string" enum:"AmazonopensearchserviceIndexRotationPeriod"`
  1433  
  1434  	// Describes a data processing configuration.
  1435  	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
  1436  
  1437  	RetryOptions *AmazonopensearchserviceRetryOptions `type:"structure"`
  1438  
  1439  	// RoleARN is a required field
  1440  	RoleARN *string `min:"1" type:"string" required:"true"`
  1441  
  1442  	S3BackupMode *string `type:"string" enum:"AmazonopensearchserviceS3BackupMode"`
  1443  
  1444  	// Describes the configuration of a destination in Amazon S3.
  1445  	//
  1446  	// S3Configuration is a required field
  1447  	S3Configuration *S3DestinationConfiguration `type:"structure" required:"true"`
  1448  
  1449  	TypeName *string `type:"string"`
  1450  
  1451  	// The details of the VPC of the Amazon ES destination.
  1452  	VpcConfiguration *VpcConfiguration `type:"structure"`
  1453  }
  1454  
  1455  // String returns the string representation.
  1456  //
  1457  // API parameter values that are decorated as "sensitive" in the API will not
  1458  // be included in the string output. The member name will be present, but the
  1459  // value will be replaced with "sensitive".
  1460  func (s AmazonopensearchserviceDestinationConfiguration) String() string {
  1461  	return awsutil.Prettify(s)
  1462  }
  1463  
  1464  // GoString returns the string representation.
  1465  //
  1466  // API parameter values that are decorated as "sensitive" in the API will not
  1467  // be included in the string output. The member name will be present, but the
  1468  // value will be replaced with "sensitive".
  1469  func (s AmazonopensearchserviceDestinationConfiguration) GoString() string {
  1470  	return s.String()
  1471  }
  1472  
  1473  // Validate inspects the fields of the type to determine if they are valid.
  1474  func (s *AmazonopensearchserviceDestinationConfiguration) Validate() error {
  1475  	invalidParams := request.ErrInvalidParams{Context: "AmazonopensearchserviceDestinationConfiguration"}
  1476  	if s.ClusterEndpoint != nil && len(*s.ClusterEndpoint) < 1 {
  1477  		invalidParams.Add(request.NewErrParamMinLen("ClusterEndpoint", 1))
  1478  	}
  1479  	if s.DomainARN != nil && len(*s.DomainARN) < 1 {
  1480  		invalidParams.Add(request.NewErrParamMinLen("DomainARN", 1))
  1481  	}
  1482  	if s.IndexName == nil {
  1483  		invalidParams.Add(request.NewErrParamRequired("IndexName"))
  1484  	}
  1485  	if s.IndexName != nil && len(*s.IndexName) < 1 {
  1486  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
  1487  	}
  1488  	if s.RoleARN == nil {
  1489  		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
  1490  	}
  1491  	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
  1492  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
  1493  	}
  1494  	if s.S3Configuration == nil {
  1495  		invalidParams.Add(request.NewErrParamRequired("S3Configuration"))
  1496  	}
  1497  	if s.BufferingHints != nil {
  1498  		if err := s.BufferingHints.Validate(); err != nil {
  1499  			invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
  1500  		}
  1501  	}
  1502  	if s.ProcessingConfiguration != nil {
  1503  		if err := s.ProcessingConfiguration.Validate(); err != nil {
  1504  			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
  1505  		}
  1506  	}
  1507  	if s.S3Configuration != nil {
  1508  		if err := s.S3Configuration.Validate(); err != nil {
  1509  			invalidParams.AddNested("S3Configuration", err.(request.ErrInvalidParams))
  1510  		}
  1511  	}
  1512  	if s.VpcConfiguration != nil {
  1513  		if err := s.VpcConfiguration.Validate(); err != nil {
  1514  			invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams))
  1515  		}
  1516  	}
  1517  
  1518  	if invalidParams.Len() > 0 {
  1519  		return invalidParams
  1520  	}
  1521  	return nil
  1522  }
  1523  
  1524  // SetBufferingHints sets the BufferingHints field's value.
  1525  func (s *AmazonopensearchserviceDestinationConfiguration) SetBufferingHints(v *AmazonopensearchserviceBufferingHints) *AmazonopensearchserviceDestinationConfiguration {
  1526  	s.BufferingHints = v
  1527  	return s
  1528  }
  1529  
  1530  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  1531  func (s *AmazonopensearchserviceDestinationConfiguration) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *AmazonopensearchserviceDestinationConfiguration {
  1532  	s.CloudWatchLoggingOptions = v
  1533  	return s
  1534  }
  1535  
  1536  // SetClusterEndpoint sets the ClusterEndpoint field's value.
  1537  func (s *AmazonopensearchserviceDestinationConfiguration) SetClusterEndpoint(v string) *AmazonopensearchserviceDestinationConfiguration {
  1538  	s.ClusterEndpoint = &v
  1539  	return s
  1540  }
  1541  
  1542  // SetDomainARN sets the DomainARN field's value.
  1543  func (s *AmazonopensearchserviceDestinationConfiguration) SetDomainARN(v string) *AmazonopensearchserviceDestinationConfiguration {
  1544  	s.DomainARN = &v
  1545  	return s
  1546  }
  1547  
  1548  // SetIndexName sets the IndexName field's value.
  1549  func (s *AmazonopensearchserviceDestinationConfiguration) SetIndexName(v string) *AmazonopensearchserviceDestinationConfiguration {
  1550  	s.IndexName = &v
  1551  	return s
  1552  }
  1553  
  1554  // SetIndexRotationPeriod sets the IndexRotationPeriod field's value.
  1555  func (s *AmazonopensearchserviceDestinationConfiguration) SetIndexRotationPeriod(v string) *AmazonopensearchserviceDestinationConfiguration {
  1556  	s.IndexRotationPeriod = &v
  1557  	return s
  1558  }
  1559  
  1560  // SetProcessingConfiguration sets the ProcessingConfiguration field's value.
  1561  func (s *AmazonopensearchserviceDestinationConfiguration) SetProcessingConfiguration(v *ProcessingConfiguration) *AmazonopensearchserviceDestinationConfiguration {
  1562  	s.ProcessingConfiguration = v
  1563  	return s
  1564  }
  1565  
  1566  // SetRetryOptions sets the RetryOptions field's value.
  1567  func (s *AmazonopensearchserviceDestinationConfiguration) SetRetryOptions(v *AmazonopensearchserviceRetryOptions) *AmazonopensearchserviceDestinationConfiguration {
  1568  	s.RetryOptions = v
  1569  	return s
  1570  }
  1571  
  1572  // SetRoleARN sets the RoleARN field's value.
  1573  func (s *AmazonopensearchserviceDestinationConfiguration) SetRoleARN(v string) *AmazonopensearchserviceDestinationConfiguration {
  1574  	s.RoleARN = &v
  1575  	return s
  1576  }
  1577  
  1578  // SetS3BackupMode sets the S3BackupMode field's value.
  1579  func (s *AmazonopensearchserviceDestinationConfiguration) SetS3BackupMode(v string) *AmazonopensearchserviceDestinationConfiguration {
  1580  	s.S3BackupMode = &v
  1581  	return s
  1582  }
  1583  
  1584  // SetS3Configuration sets the S3Configuration field's value.
  1585  func (s *AmazonopensearchserviceDestinationConfiguration) SetS3Configuration(v *S3DestinationConfiguration) *AmazonopensearchserviceDestinationConfiguration {
  1586  	s.S3Configuration = v
  1587  	return s
  1588  }
  1589  
  1590  // SetTypeName sets the TypeName field's value.
  1591  func (s *AmazonopensearchserviceDestinationConfiguration) SetTypeName(v string) *AmazonopensearchserviceDestinationConfiguration {
  1592  	s.TypeName = &v
  1593  	return s
  1594  }
  1595  
  1596  // SetVpcConfiguration sets the VpcConfiguration field's value.
  1597  func (s *AmazonopensearchserviceDestinationConfiguration) SetVpcConfiguration(v *VpcConfiguration) *AmazonopensearchserviceDestinationConfiguration {
  1598  	s.VpcConfiguration = v
  1599  	return s
  1600  }
  1601  
  1602  type AmazonopensearchserviceDestinationDescription struct {
  1603  	_ struct{} `type:"structure"`
  1604  
  1605  	BufferingHints *AmazonopensearchserviceBufferingHints `type:"structure"`
  1606  
  1607  	// Describes the Amazon CloudWatch logging options for your delivery stream.
  1608  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  1609  
  1610  	ClusterEndpoint *string `min:"1" type:"string"`
  1611  
  1612  	DomainARN *string `min:"1" type:"string"`
  1613  
  1614  	IndexName *string `min:"1" type:"string"`
  1615  
  1616  	IndexRotationPeriod *string `type:"string" enum:"AmazonopensearchserviceIndexRotationPeriod"`
  1617  
  1618  	// Describes a data processing configuration.
  1619  	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
  1620  
  1621  	RetryOptions *AmazonopensearchserviceRetryOptions `type:"structure"`
  1622  
  1623  	RoleARN *string `min:"1" type:"string"`
  1624  
  1625  	S3BackupMode *string `type:"string" enum:"AmazonopensearchserviceS3BackupMode"`
  1626  
  1627  	// Describes a destination in Amazon S3.
  1628  	S3DestinationDescription *S3DestinationDescription `type:"structure"`
  1629  
  1630  	TypeName *string `type:"string"`
  1631  
  1632  	// The details of the VPC of the Amazon ES destination.
  1633  	VpcConfigurationDescription *VpcConfigurationDescription `type:"structure"`
  1634  }
  1635  
  1636  // String returns the string representation.
  1637  //
  1638  // API parameter values that are decorated as "sensitive" in the API will not
  1639  // be included in the string output. The member name will be present, but the
  1640  // value will be replaced with "sensitive".
  1641  func (s AmazonopensearchserviceDestinationDescription) String() string {
  1642  	return awsutil.Prettify(s)
  1643  }
  1644  
  1645  // GoString returns the string representation.
  1646  //
  1647  // API parameter values that are decorated as "sensitive" in the API will not
  1648  // be included in the string output. The member name will be present, but the
  1649  // value will be replaced with "sensitive".
  1650  func (s AmazonopensearchserviceDestinationDescription) GoString() string {
  1651  	return s.String()
  1652  }
  1653  
  1654  // SetBufferingHints sets the BufferingHints field's value.
  1655  func (s *AmazonopensearchserviceDestinationDescription) SetBufferingHints(v *AmazonopensearchserviceBufferingHints) *AmazonopensearchserviceDestinationDescription {
  1656  	s.BufferingHints = v
  1657  	return s
  1658  }
  1659  
  1660  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  1661  func (s *AmazonopensearchserviceDestinationDescription) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *AmazonopensearchserviceDestinationDescription {
  1662  	s.CloudWatchLoggingOptions = v
  1663  	return s
  1664  }
  1665  
  1666  // SetClusterEndpoint sets the ClusterEndpoint field's value.
  1667  func (s *AmazonopensearchserviceDestinationDescription) SetClusterEndpoint(v string) *AmazonopensearchserviceDestinationDescription {
  1668  	s.ClusterEndpoint = &v
  1669  	return s
  1670  }
  1671  
  1672  // SetDomainARN sets the DomainARN field's value.
  1673  func (s *AmazonopensearchserviceDestinationDescription) SetDomainARN(v string) *AmazonopensearchserviceDestinationDescription {
  1674  	s.DomainARN = &v
  1675  	return s
  1676  }
  1677  
  1678  // SetIndexName sets the IndexName field's value.
  1679  func (s *AmazonopensearchserviceDestinationDescription) SetIndexName(v string) *AmazonopensearchserviceDestinationDescription {
  1680  	s.IndexName = &v
  1681  	return s
  1682  }
  1683  
  1684  // SetIndexRotationPeriod sets the IndexRotationPeriod field's value.
  1685  func (s *AmazonopensearchserviceDestinationDescription) SetIndexRotationPeriod(v string) *AmazonopensearchserviceDestinationDescription {
  1686  	s.IndexRotationPeriod = &v
  1687  	return s
  1688  }
  1689  
  1690  // SetProcessingConfiguration sets the ProcessingConfiguration field's value.
  1691  func (s *AmazonopensearchserviceDestinationDescription) SetProcessingConfiguration(v *ProcessingConfiguration) *AmazonopensearchserviceDestinationDescription {
  1692  	s.ProcessingConfiguration = v
  1693  	return s
  1694  }
  1695  
  1696  // SetRetryOptions sets the RetryOptions field's value.
  1697  func (s *AmazonopensearchserviceDestinationDescription) SetRetryOptions(v *AmazonopensearchserviceRetryOptions) *AmazonopensearchserviceDestinationDescription {
  1698  	s.RetryOptions = v
  1699  	return s
  1700  }
  1701  
  1702  // SetRoleARN sets the RoleARN field's value.
  1703  func (s *AmazonopensearchserviceDestinationDescription) SetRoleARN(v string) *AmazonopensearchserviceDestinationDescription {
  1704  	s.RoleARN = &v
  1705  	return s
  1706  }
  1707  
  1708  // SetS3BackupMode sets the S3BackupMode field's value.
  1709  func (s *AmazonopensearchserviceDestinationDescription) SetS3BackupMode(v string) *AmazonopensearchserviceDestinationDescription {
  1710  	s.S3BackupMode = &v
  1711  	return s
  1712  }
  1713  
  1714  // SetS3DestinationDescription sets the S3DestinationDescription field's value.
  1715  func (s *AmazonopensearchserviceDestinationDescription) SetS3DestinationDescription(v *S3DestinationDescription) *AmazonopensearchserviceDestinationDescription {
  1716  	s.S3DestinationDescription = v
  1717  	return s
  1718  }
  1719  
  1720  // SetTypeName sets the TypeName field's value.
  1721  func (s *AmazonopensearchserviceDestinationDescription) SetTypeName(v string) *AmazonopensearchserviceDestinationDescription {
  1722  	s.TypeName = &v
  1723  	return s
  1724  }
  1725  
  1726  // SetVpcConfigurationDescription sets the VpcConfigurationDescription field's value.
  1727  func (s *AmazonopensearchserviceDestinationDescription) SetVpcConfigurationDescription(v *VpcConfigurationDescription) *AmazonopensearchserviceDestinationDescription {
  1728  	s.VpcConfigurationDescription = v
  1729  	return s
  1730  }
  1731  
  1732  type AmazonopensearchserviceDestinationUpdate struct {
  1733  	_ struct{} `type:"structure"`
  1734  
  1735  	BufferingHints *AmazonopensearchserviceBufferingHints `type:"structure"`
  1736  
  1737  	// Describes the Amazon CloudWatch logging options for your delivery stream.
  1738  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  1739  
  1740  	ClusterEndpoint *string `min:"1" type:"string"`
  1741  
  1742  	DomainARN *string `min:"1" type:"string"`
  1743  
  1744  	IndexName *string `min:"1" type:"string"`
  1745  
  1746  	IndexRotationPeriod *string `type:"string" enum:"AmazonopensearchserviceIndexRotationPeriod"`
  1747  
  1748  	// Describes a data processing configuration.
  1749  	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
  1750  
  1751  	RetryOptions *AmazonopensearchserviceRetryOptions `type:"structure"`
  1752  
  1753  	RoleARN *string `min:"1" type:"string"`
  1754  
  1755  	// Describes an update for a destination in Amazon S3.
  1756  	S3Update *S3DestinationUpdate `type:"structure"`
  1757  
  1758  	TypeName *string `type:"string"`
  1759  }
  1760  
  1761  // String returns the string representation.
  1762  //
  1763  // API parameter values that are decorated as "sensitive" in the API will not
  1764  // be included in the string output. The member name will be present, but the
  1765  // value will be replaced with "sensitive".
  1766  func (s AmazonopensearchserviceDestinationUpdate) String() string {
  1767  	return awsutil.Prettify(s)
  1768  }
  1769  
  1770  // GoString returns the string representation.
  1771  //
  1772  // API parameter values that are decorated as "sensitive" in the API will not
  1773  // be included in the string output. The member name will be present, but the
  1774  // value will be replaced with "sensitive".
  1775  func (s AmazonopensearchserviceDestinationUpdate) GoString() string {
  1776  	return s.String()
  1777  }
  1778  
  1779  // Validate inspects the fields of the type to determine if they are valid.
  1780  func (s *AmazonopensearchserviceDestinationUpdate) Validate() error {
  1781  	invalidParams := request.ErrInvalidParams{Context: "AmazonopensearchserviceDestinationUpdate"}
  1782  	if s.ClusterEndpoint != nil && len(*s.ClusterEndpoint) < 1 {
  1783  		invalidParams.Add(request.NewErrParamMinLen("ClusterEndpoint", 1))
  1784  	}
  1785  	if s.DomainARN != nil && len(*s.DomainARN) < 1 {
  1786  		invalidParams.Add(request.NewErrParamMinLen("DomainARN", 1))
  1787  	}
  1788  	if s.IndexName != nil && len(*s.IndexName) < 1 {
  1789  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
  1790  	}
  1791  	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
  1792  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
  1793  	}
  1794  	if s.BufferingHints != nil {
  1795  		if err := s.BufferingHints.Validate(); err != nil {
  1796  			invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
  1797  		}
  1798  	}
  1799  	if s.ProcessingConfiguration != nil {
  1800  		if err := s.ProcessingConfiguration.Validate(); err != nil {
  1801  			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
  1802  		}
  1803  	}
  1804  	if s.S3Update != nil {
  1805  		if err := s.S3Update.Validate(); err != nil {
  1806  			invalidParams.AddNested("S3Update", err.(request.ErrInvalidParams))
  1807  		}
  1808  	}
  1809  
  1810  	if invalidParams.Len() > 0 {
  1811  		return invalidParams
  1812  	}
  1813  	return nil
  1814  }
  1815  
  1816  // SetBufferingHints sets the BufferingHints field's value.
  1817  func (s *AmazonopensearchserviceDestinationUpdate) SetBufferingHints(v *AmazonopensearchserviceBufferingHints) *AmazonopensearchserviceDestinationUpdate {
  1818  	s.BufferingHints = v
  1819  	return s
  1820  }
  1821  
  1822  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  1823  func (s *AmazonopensearchserviceDestinationUpdate) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *AmazonopensearchserviceDestinationUpdate {
  1824  	s.CloudWatchLoggingOptions = v
  1825  	return s
  1826  }
  1827  
  1828  // SetClusterEndpoint sets the ClusterEndpoint field's value.
  1829  func (s *AmazonopensearchserviceDestinationUpdate) SetClusterEndpoint(v string) *AmazonopensearchserviceDestinationUpdate {
  1830  	s.ClusterEndpoint = &v
  1831  	return s
  1832  }
  1833  
  1834  // SetDomainARN sets the DomainARN field's value.
  1835  func (s *AmazonopensearchserviceDestinationUpdate) SetDomainARN(v string) *AmazonopensearchserviceDestinationUpdate {
  1836  	s.DomainARN = &v
  1837  	return s
  1838  }
  1839  
  1840  // SetIndexName sets the IndexName field's value.
  1841  func (s *AmazonopensearchserviceDestinationUpdate) SetIndexName(v string) *AmazonopensearchserviceDestinationUpdate {
  1842  	s.IndexName = &v
  1843  	return s
  1844  }
  1845  
  1846  // SetIndexRotationPeriod sets the IndexRotationPeriod field's value.
  1847  func (s *AmazonopensearchserviceDestinationUpdate) SetIndexRotationPeriod(v string) *AmazonopensearchserviceDestinationUpdate {
  1848  	s.IndexRotationPeriod = &v
  1849  	return s
  1850  }
  1851  
  1852  // SetProcessingConfiguration sets the ProcessingConfiguration field's value.
  1853  func (s *AmazonopensearchserviceDestinationUpdate) SetProcessingConfiguration(v *ProcessingConfiguration) *AmazonopensearchserviceDestinationUpdate {
  1854  	s.ProcessingConfiguration = v
  1855  	return s
  1856  }
  1857  
  1858  // SetRetryOptions sets the RetryOptions field's value.
  1859  func (s *AmazonopensearchserviceDestinationUpdate) SetRetryOptions(v *AmazonopensearchserviceRetryOptions) *AmazonopensearchserviceDestinationUpdate {
  1860  	s.RetryOptions = v
  1861  	return s
  1862  }
  1863  
  1864  // SetRoleARN sets the RoleARN field's value.
  1865  func (s *AmazonopensearchserviceDestinationUpdate) SetRoleARN(v string) *AmazonopensearchserviceDestinationUpdate {
  1866  	s.RoleARN = &v
  1867  	return s
  1868  }
  1869  
  1870  // SetS3Update sets the S3Update field's value.
  1871  func (s *AmazonopensearchserviceDestinationUpdate) SetS3Update(v *S3DestinationUpdate) *AmazonopensearchserviceDestinationUpdate {
  1872  	s.S3Update = v
  1873  	return s
  1874  }
  1875  
  1876  // SetTypeName sets the TypeName field's value.
  1877  func (s *AmazonopensearchserviceDestinationUpdate) SetTypeName(v string) *AmazonopensearchserviceDestinationUpdate {
  1878  	s.TypeName = &v
  1879  	return s
  1880  }
  1881  
  1882  type AmazonopensearchserviceRetryOptions struct {
  1883  	_ struct{} `type:"structure"`
  1884  
  1885  	DurationInSeconds *int64 `type:"integer"`
  1886  }
  1887  
  1888  // String returns the string representation.
  1889  //
  1890  // API parameter values that are decorated as "sensitive" in the API will not
  1891  // be included in the string output. The member name will be present, but the
  1892  // value will be replaced with "sensitive".
  1893  func (s AmazonopensearchserviceRetryOptions) String() string {
  1894  	return awsutil.Prettify(s)
  1895  }
  1896  
  1897  // GoString returns the string representation.
  1898  //
  1899  // API parameter values that are decorated as "sensitive" in the API will not
  1900  // be included in the string output. The member name will be present, but the
  1901  // value will be replaced with "sensitive".
  1902  func (s AmazonopensearchserviceRetryOptions) GoString() string {
  1903  	return s.String()
  1904  }
  1905  
  1906  // SetDurationInSeconds sets the DurationInSeconds field's value.
  1907  func (s *AmazonopensearchserviceRetryOptions) SetDurationInSeconds(v int64) *AmazonopensearchserviceRetryOptions {
  1908  	s.DurationInSeconds = &v
  1909  	return s
  1910  }
  1911  
  1912  // Describes hints for the buffering to perform before delivering data to the
  1913  // destination. These options are treated as hints, and therefore Kinesis Data
  1914  // Firehose might choose to use different values when it is optimal. The SizeInMBs
  1915  // and IntervalInSeconds parameters are optional. However, if specify a value
  1916  // for one of them, you must also provide a value for the other.
  1917  type BufferingHints struct {
  1918  	_ struct{} `type:"structure"`
  1919  
  1920  	// Buffer incoming data for the specified period of time, in seconds, before
  1921  	// delivering it to the destination. The default value is 300. This parameter
  1922  	// is optional but if you specify a value for it, you must also specify a value
  1923  	// for SizeInMBs, and vice versa.
  1924  	IntervalInSeconds *int64 `min:"60" type:"integer"`
  1925  
  1926  	// Buffer incoming data to the specified size, in MiBs, before delivering it
  1927  	// to the destination. The default value is 5. This parameter is optional but
  1928  	// if you specify a value for it, you must also specify a value for IntervalInSeconds,
  1929  	// and vice versa.
  1930  	//
  1931  	// We recommend setting this parameter to a value greater than the amount of
  1932  	// data you typically ingest into the delivery stream in 10 seconds. For example,
  1933  	// if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or
  1934  	// higher.
  1935  	SizeInMBs *int64 `min:"1" type:"integer"`
  1936  }
  1937  
  1938  // String returns the string representation.
  1939  //
  1940  // API parameter values that are decorated as "sensitive" in the API will not
  1941  // be included in the string output. The member name will be present, but the
  1942  // value will be replaced with "sensitive".
  1943  func (s BufferingHints) String() string {
  1944  	return awsutil.Prettify(s)
  1945  }
  1946  
  1947  // GoString returns the string representation.
  1948  //
  1949  // API parameter values that are decorated as "sensitive" in the API will not
  1950  // be included in the string output. The member name will be present, but the
  1951  // value will be replaced with "sensitive".
  1952  func (s BufferingHints) GoString() string {
  1953  	return s.String()
  1954  }
  1955  
  1956  // Validate inspects the fields of the type to determine if they are valid.
  1957  func (s *BufferingHints) Validate() error {
  1958  	invalidParams := request.ErrInvalidParams{Context: "BufferingHints"}
  1959  	if s.IntervalInSeconds != nil && *s.IntervalInSeconds < 60 {
  1960  		invalidParams.Add(request.NewErrParamMinValue("IntervalInSeconds", 60))
  1961  	}
  1962  	if s.SizeInMBs != nil && *s.SizeInMBs < 1 {
  1963  		invalidParams.Add(request.NewErrParamMinValue("SizeInMBs", 1))
  1964  	}
  1965  
  1966  	if invalidParams.Len() > 0 {
  1967  		return invalidParams
  1968  	}
  1969  	return nil
  1970  }
  1971  
  1972  // SetIntervalInSeconds sets the IntervalInSeconds field's value.
  1973  func (s *BufferingHints) SetIntervalInSeconds(v int64) *BufferingHints {
  1974  	s.IntervalInSeconds = &v
  1975  	return s
  1976  }
  1977  
  1978  // SetSizeInMBs sets the SizeInMBs field's value.
  1979  func (s *BufferingHints) SetSizeInMBs(v int64) *BufferingHints {
  1980  	s.SizeInMBs = &v
  1981  	return s
  1982  }
  1983  
  1984  // Describes the Amazon CloudWatch logging options for your delivery stream.
  1985  type CloudWatchLoggingOptions struct {
  1986  	_ struct{} `type:"structure"`
  1987  
  1988  	// Enables or disables CloudWatch logging.
  1989  	Enabled *bool `type:"boolean"`
  1990  
  1991  	// The CloudWatch group name for logging. This value is required if CloudWatch
  1992  	// logging is enabled.
  1993  	LogGroupName *string `type:"string"`
  1994  
  1995  	// The CloudWatch log stream name for logging. This value is required if CloudWatch
  1996  	// logging is enabled.
  1997  	LogStreamName *string `type:"string"`
  1998  }
  1999  
  2000  // String returns the string representation.
  2001  //
  2002  // API parameter values that are decorated as "sensitive" in the API will not
  2003  // be included in the string output. The member name will be present, but the
  2004  // value will be replaced with "sensitive".
  2005  func (s CloudWatchLoggingOptions) String() string {
  2006  	return awsutil.Prettify(s)
  2007  }
  2008  
  2009  // GoString returns the string representation.
  2010  //
  2011  // API parameter values that are decorated as "sensitive" in the API will not
  2012  // be included in the string output. The member name will be present, but the
  2013  // value will be replaced with "sensitive".
  2014  func (s CloudWatchLoggingOptions) GoString() string {
  2015  	return s.String()
  2016  }
  2017  
  2018  // SetEnabled sets the Enabled field's value.
  2019  func (s *CloudWatchLoggingOptions) SetEnabled(v bool) *CloudWatchLoggingOptions {
  2020  	s.Enabled = &v
  2021  	return s
  2022  }
  2023  
  2024  // SetLogGroupName sets the LogGroupName field's value.
  2025  func (s *CloudWatchLoggingOptions) SetLogGroupName(v string) *CloudWatchLoggingOptions {
  2026  	s.LogGroupName = &v
  2027  	return s
  2028  }
  2029  
  2030  // SetLogStreamName sets the LogStreamName field's value.
  2031  func (s *CloudWatchLoggingOptions) SetLogStreamName(v string) *CloudWatchLoggingOptions {
  2032  	s.LogStreamName = &v
  2033  	return s
  2034  }
  2035  
  2036  // Another modification has already happened. Fetch VersionId again and use
  2037  // it to update the destination.
  2038  type ConcurrentModificationException struct {
  2039  	_            struct{}                  `type:"structure"`
  2040  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  2041  
  2042  	// A message that provides information about the error.
  2043  	Message_ *string `locationName:"message" type:"string"`
  2044  }
  2045  
  2046  // String returns the string representation.
  2047  //
  2048  // API parameter values that are decorated as "sensitive" in the API will not
  2049  // be included in the string output. The member name will be present, but the
  2050  // value will be replaced with "sensitive".
  2051  func (s ConcurrentModificationException) String() string {
  2052  	return awsutil.Prettify(s)
  2053  }
  2054  
  2055  // GoString returns the string representation.
  2056  //
  2057  // API parameter values that are decorated as "sensitive" in the API will not
  2058  // be included in the string output. The member name will be present, but the
  2059  // value will be replaced with "sensitive".
  2060  func (s ConcurrentModificationException) GoString() string {
  2061  	return s.String()
  2062  }
  2063  
  2064  func newErrorConcurrentModificationException(v protocol.ResponseMetadata) error {
  2065  	return &ConcurrentModificationException{
  2066  		RespMetadata: v,
  2067  	}
  2068  }
  2069  
  2070  // Code returns the exception type name.
  2071  func (s *ConcurrentModificationException) Code() string {
  2072  	return "ConcurrentModificationException"
  2073  }
  2074  
  2075  // Message returns the exception's message.
  2076  func (s *ConcurrentModificationException) Message() string {
  2077  	if s.Message_ != nil {
  2078  		return *s.Message_
  2079  	}
  2080  	return ""
  2081  }
  2082  
  2083  // OrigErr always returns nil, satisfies awserr.Error interface.
  2084  func (s *ConcurrentModificationException) OrigErr() error {
  2085  	return nil
  2086  }
  2087  
  2088  func (s *ConcurrentModificationException) Error() string {
  2089  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  2090  }
  2091  
  2092  // Status code returns the HTTP status code for the request's response error.
  2093  func (s *ConcurrentModificationException) StatusCode() int {
  2094  	return s.RespMetadata.StatusCode
  2095  }
  2096  
  2097  // RequestID returns the service's response RequestID for request.
  2098  func (s *ConcurrentModificationException) RequestID() string {
  2099  	return s.RespMetadata.RequestID
  2100  }
  2101  
  2102  // Describes a COPY command for Amazon Redshift.
  2103  type CopyCommand struct {
  2104  	_ struct{} `type:"structure"`
  2105  
  2106  	// Optional parameters to use with the Amazon Redshift COPY command. For more
  2107  	// information, see the "Optional Parameters" section of Amazon Redshift COPY
  2108  	// command (https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html). Some
  2109  	// possible examples that would apply to Kinesis Data Firehose are as follows:
  2110  	//
  2111  	// delimiter '\t' lzop; - fields are delimited with "\t" (TAB character) and
  2112  	// compressed using lzop.
  2113  	//
  2114  	// delimiter '|' - fields are delimited with "|" (this is the default delimiter).
  2115  	//
  2116  	// delimiter '|' escape - the delimiter should be escaped.
  2117  	//
  2118  	// fixedwidth 'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6'
  2119  	// - fields are fixed width in the source, with each width specified after every
  2120  	// column in the table.
  2121  	//
  2122  	// JSON 's3://mybucket/jsonpaths.txt' - data is in JSON format, and the path
  2123  	// specified is the format of the data.
  2124  	//
  2125  	// For more examples, see Amazon Redshift COPY command examples (https://docs.aws.amazon.com/redshift/latest/dg/r_COPY_command_examples.html).
  2126  	CopyOptions *string `type:"string"`
  2127  
  2128  	// A comma-separated list of column names.
  2129  	DataTableColumns *string `type:"string"`
  2130  
  2131  	// The name of the target table. The table must already exist in the database.
  2132  	//
  2133  	// DataTableName is a required field
  2134  	DataTableName *string `min:"1" type:"string" required:"true"`
  2135  }
  2136  
  2137  // String returns the string representation.
  2138  //
  2139  // API parameter values that are decorated as "sensitive" in the API will not
  2140  // be included in the string output. The member name will be present, but the
  2141  // value will be replaced with "sensitive".
  2142  func (s CopyCommand) String() string {
  2143  	return awsutil.Prettify(s)
  2144  }
  2145  
  2146  // GoString returns the string representation.
  2147  //
  2148  // API parameter values that are decorated as "sensitive" in the API will not
  2149  // be included in the string output. The member name will be present, but the
  2150  // value will be replaced with "sensitive".
  2151  func (s CopyCommand) GoString() string {
  2152  	return s.String()
  2153  }
  2154  
  2155  // Validate inspects the fields of the type to determine if they are valid.
  2156  func (s *CopyCommand) Validate() error {
  2157  	invalidParams := request.ErrInvalidParams{Context: "CopyCommand"}
  2158  	if s.DataTableName == nil {
  2159  		invalidParams.Add(request.NewErrParamRequired("DataTableName"))
  2160  	}
  2161  	if s.DataTableName != nil && len(*s.DataTableName) < 1 {
  2162  		invalidParams.Add(request.NewErrParamMinLen("DataTableName", 1))
  2163  	}
  2164  
  2165  	if invalidParams.Len() > 0 {
  2166  		return invalidParams
  2167  	}
  2168  	return nil
  2169  }
  2170  
  2171  // SetCopyOptions sets the CopyOptions field's value.
  2172  func (s *CopyCommand) SetCopyOptions(v string) *CopyCommand {
  2173  	s.CopyOptions = &v
  2174  	return s
  2175  }
  2176  
  2177  // SetDataTableColumns sets the DataTableColumns field's value.
  2178  func (s *CopyCommand) SetDataTableColumns(v string) *CopyCommand {
  2179  	s.DataTableColumns = &v
  2180  	return s
  2181  }
  2182  
  2183  // SetDataTableName sets the DataTableName field's value.
  2184  func (s *CopyCommand) SetDataTableName(v string) *CopyCommand {
  2185  	s.DataTableName = &v
  2186  	return s
  2187  }
  2188  
  2189  type CreateDeliveryStreamInput struct {
  2190  	_ struct{} `type:"structure"`
  2191  
  2192  	AmazonopensearchserviceDestinationConfiguration *AmazonopensearchserviceDestinationConfiguration `type:"structure"`
  2193  
  2194  	// Used to specify the type and Amazon Resource Name (ARN) of the KMS key needed
  2195  	// for Server-Side Encryption (SSE).
  2196  	DeliveryStreamEncryptionConfigurationInput *DeliveryStreamEncryptionConfigurationInput `type:"structure"`
  2197  
  2198  	// The name of the delivery stream. This name must be unique per AWS account
  2199  	// in the same AWS Region. If the delivery streams are in different accounts
  2200  	// or different Regions, you can have multiple delivery streams with the same
  2201  	// name.
  2202  	//
  2203  	// DeliveryStreamName is a required field
  2204  	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
  2205  
  2206  	// The delivery stream type. This parameter can be one of the following values:
  2207  	//
  2208  	//    * DirectPut: Provider applications access the delivery stream directly.
  2209  	//
  2210  	//    * KinesisStreamAsSource: The delivery stream uses a Kinesis data stream
  2211  	//    as a source.
  2212  	DeliveryStreamType *string `type:"string" enum:"DeliveryStreamType"`
  2213  
  2214  	// The destination in Amazon ES. You can specify only one destination.
  2215  	ElasticsearchDestinationConfiguration *ElasticsearchDestinationConfiguration `type:"structure"`
  2216  
  2217  	// The destination in Amazon S3. You can specify only one destination.
  2218  	ExtendedS3DestinationConfiguration *ExtendedS3DestinationConfiguration `type:"structure"`
  2219  
  2220  	// Enables configuring Kinesis Firehose to deliver data to any HTTP endpoint
  2221  	// destination. You can specify only one destination.
  2222  	HttpEndpointDestinationConfiguration *HttpEndpointDestinationConfiguration `type:"structure"`
  2223  
  2224  	// When a Kinesis data stream is used as the source for the delivery stream,
  2225  	// a KinesisStreamSourceConfiguration containing the Kinesis data stream Amazon
  2226  	// Resource Name (ARN) and the role ARN for the source stream.
  2227  	KinesisStreamSourceConfiguration *KinesisStreamSourceConfiguration `type:"structure"`
  2228  
  2229  	// The destination in Amazon Redshift. You can specify only one destination.
  2230  	RedshiftDestinationConfiguration *RedshiftDestinationConfiguration `type:"structure"`
  2231  
  2232  	// [Deprecated] The destination in Amazon S3. You can specify only one destination.
  2233  	//
  2234  	// Deprecated: S3DestinationConfiguration has been deprecated
  2235  	S3DestinationConfiguration *S3DestinationConfiguration `deprecated:"true" type:"structure"`
  2236  
  2237  	// The destination in Splunk. You can specify only one destination.
  2238  	SplunkDestinationConfiguration *SplunkDestinationConfiguration `type:"structure"`
  2239  
  2240  	// A set of tags to assign to the delivery stream. A tag is a key-value pair
  2241  	// that you can define and assign to AWS resources. Tags are metadata. For example,
  2242  	// you can add friendly names and descriptions or other types of information
  2243  	// that can help you distinguish the delivery stream. For more information about
  2244  	// tags, see Using Cost Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)
  2245  	// in the AWS Billing and Cost Management User Guide.
  2246  	//
  2247  	// You can specify up to 50 tags when creating a delivery stream.
  2248  	Tags []*Tag `min:"1" type:"list"`
  2249  }
  2250  
  2251  // String returns the string representation.
  2252  //
  2253  // API parameter values that are decorated as "sensitive" in the API will not
  2254  // be included in the string output. The member name will be present, but the
  2255  // value will be replaced with "sensitive".
  2256  func (s CreateDeliveryStreamInput) String() string {
  2257  	return awsutil.Prettify(s)
  2258  }
  2259  
  2260  // GoString returns the string representation.
  2261  //
  2262  // API parameter values that are decorated as "sensitive" in the API will not
  2263  // be included in the string output. The member name will be present, but the
  2264  // value will be replaced with "sensitive".
  2265  func (s CreateDeliveryStreamInput) GoString() string {
  2266  	return s.String()
  2267  }
  2268  
  2269  // Validate inspects the fields of the type to determine if they are valid.
  2270  func (s *CreateDeliveryStreamInput) Validate() error {
  2271  	invalidParams := request.ErrInvalidParams{Context: "CreateDeliveryStreamInput"}
  2272  	if s.DeliveryStreamName == nil {
  2273  		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
  2274  	}
  2275  	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
  2276  		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
  2277  	}
  2278  	if s.Tags != nil && len(s.Tags) < 1 {
  2279  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  2280  	}
  2281  	if s.AmazonopensearchserviceDestinationConfiguration != nil {
  2282  		if err := s.AmazonopensearchserviceDestinationConfiguration.Validate(); err != nil {
  2283  			invalidParams.AddNested("AmazonopensearchserviceDestinationConfiguration", err.(request.ErrInvalidParams))
  2284  		}
  2285  	}
  2286  	if s.DeliveryStreamEncryptionConfigurationInput != nil {
  2287  		if err := s.DeliveryStreamEncryptionConfigurationInput.Validate(); err != nil {
  2288  			invalidParams.AddNested("DeliveryStreamEncryptionConfigurationInput", err.(request.ErrInvalidParams))
  2289  		}
  2290  	}
  2291  	if s.ElasticsearchDestinationConfiguration != nil {
  2292  		if err := s.ElasticsearchDestinationConfiguration.Validate(); err != nil {
  2293  			invalidParams.AddNested("ElasticsearchDestinationConfiguration", err.(request.ErrInvalidParams))
  2294  		}
  2295  	}
  2296  	if s.ExtendedS3DestinationConfiguration != nil {
  2297  		if err := s.ExtendedS3DestinationConfiguration.Validate(); err != nil {
  2298  			invalidParams.AddNested("ExtendedS3DestinationConfiguration", err.(request.ErrInvalidParams))
  2299  		}
  2300  	}
  2301  	if s.HttpEndpointDestinationConfiguration != nil {
  2302  		if err := s.HttpEndpointDestinationConfiguration.Validate(); err != nil {
  2303  			invalidParams.AddNested("HttpEndpointDestinationConfiguration", err.(request.ErrInvalidParams))
  2304  		}
  2305  	}
  2306  	if s.KinesisStreamSourceConfiguration != nil {
  2307  		if err := s.KinesisStreamSourceConfiguration.Validate(); err != nil {
  2308  			invalidParams.AddNested("KinesisStreamSourceConfiguration", err.(request.ErrInvalidParams))
  2309  		}
  2310  	}
  2311  	if s.RedshiftDestinationConfiguration != nil {
  2312  		if err := s.RedshiftDestinationConfiguration.Validate(); err != nil {
  2313  			invalidParams.AddNested("RedshiftDestinationConfiguration", err.(request.ErrInvalidParams))
  2314  		}
  2315  	}
  2316  	if s.S3DestinationConfiguration != nil {
  2317  		if err := s.S3DestinationConfiguration.Validate(); err != nil {
  2318  			invalidParams.AddNested("S3DestinationConfiguration", err.(request.ErrInvalidParams))
  2319  		}
  2320  	}
  2321  	if s.SplunkDestinationConfiguration != nil {
  2322  		if err := s.SplunkDestinationConfiguration.Validate(); err != nil {
  2323  			invalidParams.AddNested("SplunkDestinationConfiguration", err.(request.ErrInvalidParams))
  2324  		}
  2325  	}
  2326  	if s.Tags != nil {
  2327  		for i, v := range s.Tags {
  2328  			if v == nil {
  2329  				continue
  2330  			}
  2331  			if err := v.Validate(); err != nil {
  2332  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  2333  			}
  2334  		}
  2335  	}
  2336  
  2337  	if invalidParams.Len() > 0 {
  2338  		return invalidParams
  2339  	}
  2340  	return nil
  2341  }
  2342  
  2343  // SetAmazonopensearchserviceDestinationConfiguration sets the AmazonopensearchserviceDestinationConfiguration field's value.
  2344  func (s *CreateDeliveryStreamInput) SetAmazonopensearchserviceDestinationConfiguration(v *AmazonopensearchserviceDestinationConfiguration) *CreateDeliveryStreamInput {
  2345  	s.AmazonopensearchserviceDestinationConfiguration = v
  2346  	return s
  2347  }
  2348  
  2349  // SetDeliveryStreamEncryptionConfigurationInput sets the DeliveryStreamEncryptionConfigurationInput field's value.
  2350  func (s *CreateDeliveryStreamInput) SetDeliveryStreamEncryptionConfigurationInput(v *DeliveryStreamEncryptionConfigurationInput) *CreateDeliveryStreamInput {
  2351  	s.DeliveryStreamEncryptionConfigurationInput = v
  2352  	return s
  2353  }
  2354  
  2355  // SetDeliveryStreamName sets the DeliveryStreamName field's value.
  2356  func (s *CreateDeliveryStreamInput) SetDeliveryStreamName(v string) *CreateDeliveryStreamInput {
  2357  	s.DeliveryStreamName = &v
  2358  	return s
  2359  }
  2360  
  2361  // SetDeliveryStreamType sets the DeliveryStreamType field's value.
  2362  func (s *CreateDeliveryStreamInput) SetDeliveryStreamType(v string) *CreateDeliveryStreamInput {
  2363  	s.DeliveryStreamType = &v
  2364  	return s
  2365  }
  2366  
  2367  // SetElasticsearchDestinationConfiguration sets the ElasticsearchDestinationConfiguration field's value.
  2368  func (s *CreateDeliveryStreamInput) SetElasticsearchDestinationConfiguration(v *ElasticsearchDestinationConfiguration) *CreateDeliveryStreamInput {
  2369  	s.ElasticsearchDestinationConfiguration = v
  2370  	return s
  2371  }
  2372  
  2373  // SetExtendedS3DestinationConfiguration sets the ExtendedS3DestinationConfiguration field's value.
  2374  func (s *CreateDeliveryStreamInput) SetExtendedS3DestinationConfiguration(v *ExtendedS3DestinationConfiguration) *CreateDeliveryStreamInput {
  2375  	s.ExtendedS3DestinationConfiguration = v
  2376  	return s
  2377  }
  2378  
  2379  // SetHttpEndpointDestinationConfiguration sets the HttpEndpointDestinationConfiguration field's value.
  2380  func (s *CreateDeliveryStreamInput) SetHttpEndpointDestinationConfiguration(v *HttpEndpointDestinationConfiguration) *CreateDeliveryStreamInput {
  2381  	s.HttpEndpointDestinationConfiguration = v
  2382  	return s
  2383  }
  2384  
  2385  // SetKinesisStreamSourceConfiguration sets the KinesisStreamSourceConfiguration field's value.
  2386  func (s *CreateDeliveryStreamInput) SetKinesisStreamSourceConfiguration(v *KinesisStreamSourceConfiguration) *CreateDeliveryStreamInput {
  2387  	s.KinesisStreamSourceConfiguration = v
  2388  	return s
  2389  }
  2390  
  2391  // SetRedshiftDestinationConfiguration sets the RedshiftDestinationConfiguration field's value.
  2392  func (s *CreateDeliveryStreamInput) SetRedshiftDestinationConfiguration(v *RedshiftDestinationConfiguration) *CreateDeliveryStreamInput {
  2393  	s.RedshiftDestinationConfiguration = v
  2394  	return s
  2395  }
  2396  
  2397  // SetS3DestinationConfiguration sets the S3DestinationConfiguration field's value.
  2398  func (s *CreateDeliveryStreamInput) SetS3DestinationConfiguration(v *S3DestinationConfiguration) *CreateDeliveryStreamInput {
  2399  	s.S3DestinationConfiguration = v
  2400  	return s
  2401  }
  2402  
  2403  // SetSplunkDestinationConfiguration sets the SplunkDestinationConfiguration field's value.
  2404  func (s *CreateDeliveryStreamInput) SetSplunkDestinationConfiguration(v *SplunkDestinationConfiguration) *CreateDeliveryStreamInput {
  2405  	s.SplunkDestinationConfiguration = v
  2406  	return s
  2407  }
  2408  
  2409  // SetTags sets the Tags field's value.
  2410  func (s *CreateDeliveryStreamInput) SetTags(v []*Tag) *CreateDeliveryStreamInput {
  2411  	s.Tags = v
  2412  	return s
  2413  }
  2414  
  2415  type CreateDeliveryStreamOutput struct {
  2416  	_ struct{} `type:"structure"`
  2417  
  2418  	// The ARN of the delivery stream.
  2419  	DeliveryStreamARN *string `min:"1" type:"string"`
  2420  }
  2421  
  2422  // String returns the string representation.
  2423  //
  2424  // API parameter values that are decorated as "sensitive" in the API will not
  2425  // be included in the string output. The member name will be present, but the
  2426  // value will be replaced with "sensitive".
  2427  func (s CreateDeliveryStreamOutput) String() string {
  2428  	return awsutil.Prettify(s)
  2429  }
  2430  
  2431  // GoString returns the string representation.
  2432  //
  2433  // API parameter values that are decorated as "sensitive" in the API will not
  2434  // be included in the string output. The member name will be present, but the
  2435  // value will be replaced with "sensitive".
  2436  func (s CreateDeliveryStreamOutput) GoString() string {
  2437  	return s.String()
  2438  }
  2439  
  2440  // SetDeliveryStreamARN sets the DeliveryStreamARN field's value.
  2441  func (s *CreateDeliveryStreamOutput) SetDeliveryStreamARN(v string) *CreateDeliveryStreamOutput {
  2442  	s.DeliveryStreamARN = &v
  2443  	return s
  2444  }
  2445  
  2446  // Specifies that you want Kinesis Data Firehose to convert data from the JSON
  2447  // format to the Parquet or ORC format before writing it to Amazon S3. Kinesis
  2448  // Data Firehose uses the serializer and deserializer that you specify, in addition
  2449  // to the column information from the AWS Glue table, to deserialize your input
  2450  // data from JSON and then serialize it to the Parquet or ORC format. For more
  2451  // information, see Kinesis Data Firehose Record Format Conversion (https://docs.aws.amazon.com/firehose/latest/dev/record-format-conversion.html).
  2452  type DataFormatConversionConfiguration struct {
  2453  	_ struct{} `type:"structure"`
  2454  
  2455  	// Defaults to true. Set it to false if you want to disable format conversion
  2456  	// while preserving the configuration details.
  2457  	Enabled *bool `type:"boolean"`
  2458  
  2459  	// Specifies the deserializer that you want Kinesis Data Firehose to use to
  2460  	// convert the format of your data from JSON. This parameter is required if
  2461  	// Enabled is set to true.
  2462  	InputFormatConfiguration *InputFormatConfiguration `type:"structure"`
  2463  
  2464  	// Specifies the serializer that you want Kinesis Data Firehose to use to convert
  2465  	// the format of your data to the Parquet or ORC format. This parameter is required
  2466  	// if Enabled is set to true.
  2467  	OutputFormatConfiguration *OutputFormatConfiguration `type:"structure"`
  2468  
  2469  	// Specifies the AWS Glue Data Catalog table that contains the column information.
  2470  	// This parameter is required if Enabled is set to true.
  2471  	SchemaConfiguration *SchemaConfiguration `type:"structure"`
  2472  }
  2473  
  2474  // String returns the string representation.
  2475  //
  2476  // API parameter values that are decorated as "sensitive" in the API will not
  2477  // be included in the string output. The member name will be present, but the
  2478  // value will be replaced with "sensitive".
  2479  func (s DataFormatConversionConfiguration) String() string {
  2480  	return awsutil.Prettify(s)
  2481  }
  2482  
  2483  // GoString returns the string representation.
  2484  //
  2485  // API parameter values that are decorated as "sensitive" in the API will not
  2486  // be included in the string output. The member name will be present, but the
  2487  // value will be replaced with "sensitive".
  2488  func (s DataFormatConversionConfiguration) GoString() string {
  2489  	return s.String()
  2490  }
  2491  
  2492  // Validate inspects the fields of the type to determine if they are valid.
  2493  func (s *DataFormatConversionConfiguration) Validate() error {
  2494  	invalidParams := request.ErrInvalidParams{Context: "DataFormatConversionConfiguration"}
  2495  	if s.OutputFormatConfiguration != nil {
  2496  		if err := s.OutputFormatConfiguration.Validate(); err != nil {
  2497  			invalidParams.AddNested("OutputFormatConfiguration", err.(request.ErrInvalidParams))
  2498  		}
  2499  	}
  2500  	if s.SchemaConfiguration != nil {
  2501  		if err := s.SchemaConfiguration.Validate(); err != nil {
  2502  			invalidParams.AddNested("SchemaConfiguration", err.(request.ErrInvalidParams))
  2503  		}
  2504  	}
  2505  
  2506  	if invalidParams.Len() > 0 {
  2507  		return invalidParams
  2508  	}
  2509  	return nil
  2510  }
  2511  
  2512  // SetEnabled sets the Enabled field's value.
  2513  func (s *DataFormatConversionConfiguration) SetEnabled(v bool) *DataFormatConversionConfiguration {
  2514  	s.Enabled = &v
  2515  	return s
  2516  }
  2517  
  2518  // SetInputFormatConfiguration sets the InputFormatConfiguration field's value.
  2519  func (s *DataFormatConversionConfiguration) SetInputFormatConfiguration(v *InputFormatConfiguration) *DataFormatConversionConfiguration {
  2520  	s.InputFormatConfiguration = v
  2521  	return s
  2522  }
  2523  
  2524  // SetOutputFormatConfiguration sets the OutputFormatConfiguration field's value.
  2525  func (s *DataFormatConversionConfiguration) SetOutputFormatConfiguration(v *OutputFormatConfiguration) *DataFormatConversionConfiguration {
  2526  	s.OutputFormatConfiguration = v
  2527  	return s
  2528  }
  2529  
  2530  // SetSchemaConfiguration sets the SchemaConfiguration field's value.
  2531  func (s *DataFormatConversionConfiguration) SetSchemaConfiguration(v *SchemaConfiguration) *DataFormatConversionConfiguration {
  2532  	s.SchemaConfiguration = v
  2533  	return s
  2534  }
  2535  
  2536  type DeleteDeliveryStreamInput struct {
  2537  	_ struct{} `type:"structure"`
  2538  
  2539  	// Set this to true if you want to delete the delivery stream even if Kinesis
  2540  	// Data Firehose is unable to retire the grant for the CMK. Kinesis Data Firehose
  2541  	// might be unable to retire the grant due to a customer error, such as when
  2542  	// the CMK or the grant are in an invalid state. If you force deletion, you
  2543  	// can then use the RevokeGrant (https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)
  2544  	// operation to revoke the grant you gave to Kinesis Data Firehose. If a failure
  2545  	// to retire the grant happens due to an AWS KMS issue, Kinesis Data Firehose
  2546  	// keeps retrying the delete operation.
  2547  	//
  2548  	// The default value is false.
  2549  	AllowForceDelete *bool `type:"boolean"`
  2550  
  2551  	// The name of the delivery stream.
  2552  	//
  2553  	// DeliveryStreamName is a required field
  2554  	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
  2555  }
  2556  
  2557  // String returns the string representation.
  2558  //
  2559  // API parameter values that are decorated as "sensitive" in the API will not
  2560  // be included in the string output. The member name will be present, but the
  2561  // value will be replaced with "sensitive".
  2562  func (s DeleteDeliveryStreamInput) String() string {
  2563  	return awsutil.Prettify(s)
  2564  }
  2565  
  2566  // GoString returns the string representation.
  2567  //
  2568  // API parameter values that are decorated as "sensitive" in the API will not
  2569  // be included in the string output. The member name will be present, but the
  2570  // value will be replaced with "sensitive".
  2571  func (s DeleteDeliveryStreamInput) GoString() string {
  2572  	return s.String()
  2573  }
  2574  
  2575  // Validate inspects the fields of the type to determine if they are valid.
  2576  func (s *DeleteDeliveryStreamInput) Validate() error {
  2577  	invalidParams := request.ErrInvalidParams{Context: "DeleteDeliveryStreamInput"}
  2578  	if s.DeliveryStreamName == nil {
  2579  		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
  2580  	}
  2581  	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
  2582  		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
  2583  	}
  2584  
  2585  	if invalidParams.Len() > 0 {
  2586  		return invalidParams
  2587  	}
  2588  	return nil
  2589  }
  2590  
  2591  // SetAllowForceDelete sets the AllowForceDelete field's value.
  2592  func (s *DeleteDeliveryStreamInput) SetAllowForceDelete(v bool) *DeleteDeliveryStreamInput {
  2593  	s.AllowForceDelete = &v
  2594  	return s
  2595  }
  2596  
  2597  // SetDeliveryStreamName sets the DeliveryStreamName field's value.
  2598  func (s *DeleteDeliveryStreamInput) SetDeliveryStreamName(v string) *DeleteDeliveryStreamInput {
  2599  	s.DeliveryStreamName = &v
  2600  	return s
  2601  }
  2602  
  2603  type DeleteDeliveryStreamOutput struct {
  2604  	_ struct{} `type:"structure"`
  2605  }
  2606  
  2607  // String returns the string representation.
  2608  //
  2609  // API parameter values that are decorated as "sensitive" in the API will not
  2610  // be included in the string output. The member name will be present, but the
  2611  // value will be replaced with "sensitive".
  2612  func (s DeleteDeliveryStreamOutput) String() string {
  2613  	return awsutil.Prettify(s)
  2614  }
  2615  
  2616  // GoString returns the string representation.
  2617  //
  2618  // API parameter values that are decorated as "sensitive" in the API will not
  2619  // be included in the string output. The member name will be present, but the
  2620  // value will be replaced with "sensitive".
  2621  func (s DeleteDeliveryStreamOutput) GoString() string {
  2622  	return s.String()
  2623  }
  2624  
  2625  // Contains information about a delivery stream.
  2626  type DeliveryStreamDescription struct {
  2627  	_ struct{} `type:"structure"`
  2628  
  2629  	// The date and time that the delivery stream was created.
  2630  	CreateTimestamp *time.Time `type:"timestamp"`
  2631  
  2632  	// The Amazon Resource Name (ARN) of the delivery stream. For more information,
  2633  	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  2634  	//
  2635  	// DeliveryStreamARN is a required field
  2636  	DeliveryStreamARN *string `min:"1" type:"string" required:"true"`
  2637  
  2638  	// Indicates the server-side encryption (SSE) status for the delivery stream.
  2639  	DeliveryStreamEncryptionConfiguration *DeliveryStreamEncryptionConfiguration `type:"structure"`
  2640  
  2641  	// The name of the delivery stream.
  2642  	//
  2643  	// DeliveryStreamName is a required field
  2644  	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
  2645  
  2646  	// The status of the delivery stream. If the status of a delivery stream is
  2647  	// CREATING_FAILED, this status doesn't change, and you can't invoke CreateDeliveryStream
  2648  	// again on it. However, you can invoke the DeleteDeliveryStream operation to
  2649  	// delete it.
  2650  	//
  2651  	// DeliveryStreamStatus is a required field
  2652  	DeliveryStreamStatus *string `type:"string" required:"true" enum:"DeliveryStreamStatus"`
  2653  
  2654  	// The delivery stream type. This can be one of the following values:
  2655  	//
  2656  	//    * DirectPut: Provider applications access the delivery stream directly.
  2657  	//
  2658  	//    * KinesisStreamAsSource: The delivery stream uses a Kinesis data stream
  2659  	//    as a source.
  2660  	//
  2661  	// DeliveryStreamType is a required field
  2662  	DeliveryStreamType *string `type:"string" required:"true" enum:"DeliveryStreamType"`
  2663  
  2664  	// The destinations.
  2665  	//
  2666  	// Destinations is a required field
  2667  	Destinations []*DestinationDescription `type:"list" required:"true"`
  2668  
  2669  	// Provides details in case one of the following operations fails due to an
  2670  	// error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, StartDeliveryStreamEncryption,
  2671  	// StopDeliveryStreamEncryption.
  2672  	FailureDescription *FailureDescription `type:"structure"`
  2673  
  2674  	// Indicates whether there are more destinations available to list.
  2675  	//
  2676  	// HasMoreDestinations is a required field
  2677  	HasMoreDestinations *bool `type:"boolean" required:"true"`
  2678  
  2679  	// The date and time that the delivery stream was last updated.
  2680  	LastUpdateTimestamp *time.Time `type:"timestamp"`
  2681  
  2682  	// If the DeliveryStreamType parameter is KinesisStreamAsSource, a SourceDescription
  2683  	// object describing the source Kinesis data stream.
  2684  	Source *SourceDescription `type:"structure"`
  2685  
  2686  	// Each time the destination is updated for a delivery stream, the version ID
  2687  	// is changed, and the current version ID is required when updating the destination.
  2688  	// This is so that the service knows it is applying the changes to the correct
  2689  	// version of the delivery stream.
  2690  	//
  2691  	// VersionId is a required field
  2692  	VersionId *string `min:"1" type:"string" required:"true"`
  2693  }
  2694  
  2695  // String returns the string representation.
  2696  //
  2697  // API parameter values that are decorated as "sensitive" in the API will not
  2698  // be included in the string output. The member name will be present, but the
  2699  // value will be replaced with "sensitive".
  2700  func (s DeliveryStreamDescription) String() string {
  2701  	return awsutil.Prettify(s)
  2702  }
  2703  
  2704  // GoString returns the string representation.
  2705  //
  2706  // API parameter values that are decorated as "sensitive" in the API will not
  2707  // be included in the string output. The member name will be present, but the
  2708  // value will be replaced with "sensitive".
  2709  func (s DeliveryStreamDescription) GoString() string {
  2710  	return s.String()
  2711  }
  2712  
  2713  // SetCreateTimestamp sets the CreateTimestamp field's value.
  2714  func (s *DeliveryStreamDescription) SetCreateTimestamp(v time.Time) *DeliveryStreamDescription {
  2715  	s.CreateTimestamp = &v
  2716  	return s
  2717  }
  2718  
  2719  // SetDeliveryStreamARN sets the DeliveryStreamARN field's value.
  2720  func (s *DeliveryStreamDescription) SetDeliveryStreamARN(v string) *DeliveryStreamDescription {
  2721  	s.DeliveryStreamARN = &v
  2722  	return s
  2723  }
  2724  
  2725  // SetDeliveryStreamEncryptionConfiguration sets the DeliveryStreamEncryptionConfiguration field's value.
  2726  func (s *DeliveryStreamDescription) SetDeliveryStreamEncryptionConfiguration(v *DeliveryStreamEncryptionConfiguration) *DeliveryStreamDescription {
  2727  	s.DeliveryStreamEncryptionConfiguration = v
  2728  	return s
  2729  }
  2730  
  2731  // SetDeliveryStreamName sets the DeliveryStreamName field's value.
  2732  func (s *DeliveryStreamDescription) SetDeliveryStreamName(v string) *DeliveryStreamDescription {
  2733  	s.DeliveryStreamName = &v
  2734  	return s
  2735  }
  2736  
  2737  // SetDeliveryStreamStatus sets the DeliveryStreamStatus field's value.
  2738  func (s *DeliveryStreamDescription) SetDeliveryStreamStatus(v string) *DeliveryStreamDescription {
  2739  	s.DeliveryStreamStatus = &v
  2740  	return s
  2741  }
  2742  
  2743  // SetDeliveryStreamType sets the DeliveryStreamType field's value.
  2744  func (s *DeliveryStreamDescription) SetDeliveryStreamType(v string) *DeliveryStreamDescription {
  2745  	s.DeliveryStreamType = &v
  2746  	return s
  2747  }
  2748  
  2749  // SetDestinations sets the Destinations field's value.
  2750  func (s *DeliveryStreamDescription) SetDestinations(v []*DestinationDescription) *DeliveryStreamDescription {
  2751  	s.Destinations = v
  2752  	return s
  2753  }
  2754  
  2755  // SetFailureDescription sets the FailureDescription field's value.
  2756  func (s *DeliveryStreamDescription) SetFailureDescription(v *FailureDescription) *DeliveryStreamDescription {
  2757  	s.FailureDescription = v
  2758  	return s
  2759  }
  2760  
  2761  // SetHasMoreDestinations sets the HasMoreDestinations field's value.
  2762  func (s *DeliveryStreamDescription) SetHasMoreDestinations(v bool) *DeliveryStreamDescription {
  2763  	s.HasMoreDestinations = &v
  2764  	return s
  2765  }
  2766  
  2767  // SetLastUpdateTimestamp sets the LastUpdateTimestamp field's value.
  2768  func (s *DeliveryStreamDescription) SetLastUpdateTimestamp(v time.Time) *DeliveryStreamDescription {
  2769  	s.LastUpdateTimestamp = &v
  2770  	return s
  2771  }
  2772  
  2773  // SetSource sets the Source field's value.
  2774  func (s *DeliveryStreamDescription) SetSource(v *SourceDescription) *DeliveryStreamDescription {
  2775  	s.Source = v
  2776  	return s
  2777  }
  2778  
  2779  // SetVersionId sets the VersionId field's value.
  2780  func (s *DeliveryStreamDescription) SetVersionId(v string) *DeliveryStreamDescription {
  2781  	s.VersionId = &v
  2782  	return s
  2783  }
  2784  
  2785  // Contains information about the server-side encryption (SSE) status for the
  2786  // delivery stream, the type customer master key (CMK) in use, if any, and the
  2787  // ARN of the CMK. You can get DeliveryStreamEncryptionConfiguration by invoking
  2788  // the DescribeDeliveryStream operation.
  2789  type DeliveryStreamEncryptionConfiguration struct {
  2790  	_ struct{} `type:"structure"`
  2791  
  2792  	// Provides details in case one of the following operations fails due to an
  2793  	// error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, StartDeliveryStreamEncryption,
  2794  	// StopDeliveryStreamEncryption.
  2795  	FailureDescription *FailureDescription `type:"structure"`
  2796  
  2797  	// If KeyType is CUSTOMER_MANAGED_CMK, this field contains the ARN of the customer
  2798  	// managed CMK. If KeyType is AWS_OWNED_CMK, DeliveryStreamEncryptionConfiguration
  2799  	// doesn't contain a value for KeyARN.
  2800  	KeyARN *string `min:"1" type:"string"`
  2801  
  2802  	// Indicates the type of customer master key (CMK) that is used for encryption.
  2803  	// The default setting is AWS_OWNED_CMK. For more information about CMKs, see
  2804  	// Customer Master Keys (CMKs) (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys).
  2805  	KeyType *string `type:"string" enum:"KeyType"`
  2806  
  2807  	// This is the server-side encryption (SSE) status for the delivery stream.
  2808  	// For a full description of the different values of this status, see StartDeliveryStreamEncryption
  2809  	// and StopDeliveryStreamEncryption. If this status is ENABLING_FAILED or DISABLING_FAILED,
  2810  	// it is the status of the most recent attempt to enable or disable SSE, respectively.
  2811  	Status *string `type:"string" enum:"DeliveryStreamEncryptionStatus"`
  2812  }
  2813  
  2814  // String returns the string representation.
  2815  //
  2816  // API parameter values that are decorated as "sensitive" in the API will not
  2817  // be included in the string output. The member name will be present, but the
  2818  // value will be replaced with "sensitive".
  2819  func (s DeliveryStreamEncryptionConfiguration) String() string {
  2820  	return awsutil.Prettify(s)
  2821  }
  2822  
  2823  // GoString returns the string representation.
  2824  //
  2825  // API parameter values that are decorated as "sensitive" in the API will not
  2826  // be included in the string output. The member name will be present, but the
  2827  // value will be replaced with "sensitive".
  2828  func (s DeliveryStreamEncryptionConfiguration) GoString() string {
  2829  	return s.String()
  2830  }
  2831  
  2832  // SetFailureDescription sets the FailureDescription field's value.
  2833  func (s *DeliveryStreamEncryptionConfiguration) SetFailureDescription(v *FailureDescription) *DeliveryStreamEncryptionConfiguration {
  2834  	s.FailureDescription = v
  2835  	return s
  2836  }
  2837  
  2838  // SetKeyARN sets the KeyARN field's value.
  2839  func (s *DeliveryStreamEncryptionConfiguration) SetKeyARN(v string) *DeliveryStreamEncryptionConfiguration {
  2840  	s.KeyARN = &v
  2841  	return s
  2842  }
  2843  
  2844  // SetKeyType sets the KeyType field's value.
  2845  func (s *DeliveryStreamEncryptionConfiguration) SetKeyType(v string) *DeliveryStreamEncryptionConfiguration {
  2846  	s.KeyType = &v
  2847  	return s
  2848  }
  2849  
  2850  // SetStatus sets the Status field's value.
  2851  func (s *DeliveryStreamEncryptionConfiguration) SetStatus(v string) *DeliveryStreamEncryptionConfiguration {
  2852  	s.Status = &v
  2853  	return s
  2854  }
  2855  
  2856  // Specifies the type and Amazon Resource Name (ARN) of the CMK to use for Server-Side
  2857  // Encryption (SSE).
  2858  type DeliveryStreamEncryptionConfigurationInput struct {
  2859  	_ struct{} `type:"structure"`
  2860  
  2861  	// If you set KeyType to CUSTOMER_MANAGED_CMK, you must specify the Amazon Resource
  2862  	// Name (ARN) of the CMK. If you set KeyType to AWS_OWNED_CMK, Kinesis Data
  2863  	// Firehose uses a service-account CMK.
  2864  	KeyARN *string `min:"1" type:"string"`
  2865  
  2866  	// Indicates the type of customer master key (CMK) to use for encryption. The
  2867  	// default setting is AWS_OWNED_CMK. For more information about CMKs, see Customer
  2868  	// Master Keys (CMKs) (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys).
  2869  	// When you invoke CreateDeliveryStream or StartDeliveryStreamEncryption with
  2870  	// KeyType set to CUSTOMER_MANAGED_CMK, Kinesis Data Firehose invokes the Amazon
  2871  	// KMS operation CreateGrant (https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)
  2872  	// to create a grant that allows the Kinesis Data Firehose service to use the
  2873  	// customer managed CMK to perform encryption and decryption. Kinesis Data Firehose
  2874  	// manages that grant.
  2875  	//
  2876  	// When you invoke StartDeliveryStreamEncryption to change the CMK for a delivery
  2877  	// stream that is encrypted with a customer managed CMK, Kinesis Data Firehose
  2878  	// schedules the grant it had on the old CMK for retirement.
  2879  	//
  2880  	// You can use a CMK of type CUSTOMER_MANAGED_CMK to encrypt up to 500 delivery
  2881  	// streams. If a CreateDeliveryStream or StartDeliveryStreamEncryption operation
  2882  	// exceeds this limit, Kinesis Data Firehose throws a LimitExceededException.
  2883  	//
  2884  	// To encrypt your delivery stream, use symmetric CMKs. Kinesis Data Firehose
  2885  	// doesn't support asymmetric CMKs. For information about symmetric and asymmetric
  2886  	// CMKs, see About Symmetric and Asymmetric CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html)
  2887  	// in the AWS Key Management Service developer guide.
  2888  	//
  2889  	// KeyType is a required field
  2890  	KeyType *string `type:"string" required:"true" enum:"KeyType"`
  2891  }
  2892  
  2893  // String returns the string representation.
  2894  //
  2895  // API parameter values that are decorated as "sensitive" in the API will not
  2896  // be included in the string output. The member name will be present, but the
  2897  // value will be replaced with "sensitive".
  2898  func (s DeliveryStreamEncryptionConfigurationInput) String() string {
  2899  	return awsutil.Prettify(s)
  2900  }
  2901  
  2902  // GoString 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 DeliveryStreamEncryptionConfigurationInput) GoString() string {
  2908  	return s.String()
  2909  }
  2910  
  2911  // Validate inspects the fields of the type to determine if they are valid.
  2912  func (s *DeliveryStreamEncryptionConfigurationInput) Validate() error {
  2913  	invalidParams := request.ErrInvalidParams{Context: "DeliveryStreamEncryptionConfigurationInput"}
  2914  	if s.KeyARN != nil && len(*s.KeyARN) < 1 {
  2915  		invalidParams.Add(request.NewErrParamMinLen("KeyARN", 1))
  2916  	}
  2917  	if s.KeyType == nil {
  2918  		invalidParams.Add(request.NewErrParamRequired("KeyType"))
  2919  	}
  2920  
  2921  	if invalidParams.Len() > 0 {
  2922  		return invalidParams
  2923  	}
  2924  	return nil
  2925  }
  2926  
  2927  // SetKeyARN sets the KeyARN field's value.
  2928  func (s *DeliveryStreamEncryptionConfigurationInput) SetKeyARN(v string) *DeliveryStreamEncryptionConfigurationInput {
  2929  	s.KeyARN = &v
  2930  	return s
  2931  }
  2932  
  2933  // SetKeyType sets the KeyType field's value.
  2934  func (s *DeliveryStreamEncryptionConfigurationInput) SetKeyType(v string) *DeliveryStreamEncryptionConfigurationInput {
  2935  	s.KeyType = &v
  2936  	return s
  2937  }
  2938  
  2939  type DescribeDeliveryStreamInput struct {
  2940  	_ struct{} `type:"structure"`
  2941  
  2942  	// The name of the delivery stream.
  2943  	//
  2944  	// DeliveryStreamName is a required field
  2945  	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
  2946  
  2947  	// The ID of the destination to start returning the destination information.
  2948  	// Kinesis Data Firehose supports one destination per delivery stream.
  2949  	ExclusiveStartDestinationId *string `min:"1" type:"string"`
  2950  
  2951  	// The limit on the number of destinations to return. You can have one destination
  2952  	// per delivery stream.
  2953  	Limit *int64 `min:"1" type:"integer"`
  2954  }
  2955  
  2956  // String returns the string representation.
  2957  //
  2958  // API parameter values that are decorated as "sensitive" in the API will not
  2959  // be included in the string output. The member name will be present, but the
  2960  // value will be replaced with "sensitive".
  2961  func (s DescribeDeliveryStreamInput) String() string {
  2962  	return awsutil.Prettify(s)
  2963  }
  2964  
  2965  // GoString returns the string representation.
  2966  //
  2967  // API parameter values that are decorated as "sensitive" in the API will not
  2968  // be included in the string output. The member name will be present, but the
  2969  // value will be replaced with "sensitive".
  2970  func (s DescribeDeliveryStreamInput) GoString() string {
  2971  	return s.String()
  2972  }
  2973  
  2974  // Validate inspects the fields of the type to determine if they are valid.
  2975  func (s *DescribeDeliveryStreamInput) Validate() error {
  2976  	invalidParams := request.ErrInvalidParams{Context: "DescribeDeliveryStreamInput"}
  2977  	if s.DeliveryStreamName == nil {
  2978  		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
  2979  	}
  2980  	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
  2981  		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
  2982  	}
  2983  	if s.ExclusiveStartDestinationId != nil && len(*s.ExclusiveStartDestinationId) < 1 {
  2984  		invalidParams.Add(request.NewErrParamMinLen("ExclusiveStartDestinationId", 1))
  2985  	}
  2986  	if s.Limit != nil && *s.Limit < 1 {
  2987  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
  2988  	}
  2989  
  2990  	if invalidParams.Len() > 0 {
  2991  		return invalidParams
  2992  	}
  2993  	return nil
  2994  }
  2995  
  2996  // SetDeliveryStreamName sets the DeliveryStreamName field's value.
  2997  func (s *DescribeDeliveryStreamInput) SetDeliveryStreamName(v string) *DescribeDeliveryStreamInput {
  2998  	s.DeliveryStreamName = &v
  2999  	return s
  3000  }
  3001  
  3002  // SetExclusiveStartDestinationId sets the ExclusiveStartDestinationId field's value.
  3003  func (s *DescribeDeliveryStreamInput) SetExclusiveStartDestinationId(v string) *DescribeDeliveryStreamInput {
  3004  	s.ExclusiveStartDestinationId = &v
  3005  	return s
  3006  }
  3007  
  3008  // SetLimit sets the Limit field's value.
  3009  func (s *DescribeDeliveryStreamInput) SetLimit(v int64) *DescribeDeliveryStreamInput {
  3010  	s.Limit = &v
  3011  	return s
  3012  }
  3013  
  3014  type DescribeDeliveryStreamOutput struct {
  3015  	_ struct{} `type:"structure"`
  3016  
  3017  	// Information about the delivery stream.
  3018  	//
  3019  	// DeliveryStreamDescription is a required field
  3020  	DeliveryStreamDescription *DeliveryStreamDescription `type:"structure" required:"true"`
  3021  }
  3022  
  3023  // String returns the string representation.
  3024  //
  3025  // API parameter values that are decorated as "sensitive" in the API will not
  3026  // be included in the string output. The member name will be present, but the
  3027  // value will be replaced with "sensitive".
  3028  func (s DescribeDeliveryStreamOutput) String() string {
  3029  	return awsutil.Prettify(s)
  3030  }
  3031  
  3032  // GoString returns the string representation.
  3033  //
  3034  // API parameter values that are decorated as "sensitive" in the API will not
  3035  // be included in the string output. The member name will be present, but the
  3036  // value will be replaced with "sensitive".
  3037  func (s DescribeDeliveryStreamOutput) GoString() string {
  3038  	return s.String()
  3039  }
  3040  
  3041  // SetDeliveryStreamDescription sets the DeliveryStreamDescription field's value.
  3042  func (s *DescribeDeliveryStreamOutput) SetDeliveryStreamDescription(v *DeliveryStreamDescription) *DescribeDeliveryStreamOutput {
  3043  	s.DeliveryStreamDescription = v
  3044  	return s
  3045  }
  3046  
  3047  // The deserializer you want Kinesis Data Firehose to use for converting the
  3048  // input data from JSON. Kinesis Data Firehose then serializes the data to its
  3049  // final format using the Serializer. Kinesis Data Firehose supports two types
  3050  // of deserializers: the Apache Hive JSON SerDe (https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-JSON)
  3051  // and the OpenX JSON SerDe (https://github.com/rcongiu/Hive-JSON-Serde).
  3052  type Deserializer struct {
  3053  	_ struct{} `type:"structure"`
  3054  
  3055  	// The native Hive / HCatalog JsonSerDe. Used by Kinesis Data Firehose for deserializing
  3056  	// data, which means converting it from the JSON format in preparation for serializing
  3057  	// it to the Parquet or ORC format. This is one of two deserializers you can
  3058  	// choose, depending on which one offers the functionality you need. The other
  3059  	// option is the OpenX SerDe.
  3060  	HiveJsonSerDe *HiveJsonSerDe `type:"structure"`
  3061  
  3062  	// The OpenX SerDe. Used by Kinesis Data Firehose for deserializing data, which
  3063  	// means converting it from the JSON format in preparation for serializing it
  3064  	// to the Parquet or ORC format. This is one of two deserializers you can choose,
  3065  	// depending on which one offers the functionality you need. The other option
  3066  	// is the native Hive / HCatalog JsonSerDe.
  3067  	OpenXJsonSerDe *OpenXJsonSerDe `type:"structure"`
  3068  }
  3069  
  3070  // String returns the string representation.
  3071  //
  3072  // API parameter values that are decorated as "sensitive" in the API will not
  3073  // be included in the string output. The member name will be present, but the
  3074  // value will be replaced with "sensitive".
  3075  func (s Deserializer) String() string {
  3076  	return awsutil.Prettify(s)
  3077  }
  3078  
  3079  // GoString 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 Deserializer) GoString() string {
  3085  	return s.String()
  3086  }
  3087  
  3088  // SetHiveJsonSerDe sets the HiveJsonSerDe field's value.
  3089  func (s *Deserializer) SetHiveJsonSerDe(v *HiveJsonSerDe) *Deserializer {
  3090  	s.HiveJsonSerDe = v
  3091  	return s
  3092  }
  3093  
  3094  // SetOpenXJsonSerDe sets the OpenXJsonSerDe field's value.
  3095  func (s *Deserializer) SetOpenXJsonSerDe(v *OpenXJsonSerDe) *Deserializer {
  3096  	s.OpenXJsonSerDe = v
  3097  	return s
  3098  }
  3099  
  3100  // Describes the destination for a delivery stream.
  3101  type DestinationDescription struct {
  3102  	_ struct{} `type:"structure"`
  3103  
  3104  	AmazonopensearchserviceDestinationDescription *AmazonopensearchserviceDestinationDescription `type:"structure"`
  3105  
  3106  	// The ID of the destination.
  3107  	//
  3108  	// DestinationId is a required field
  3109  	DestinationId *string `min:"1" type:"string" required:"true"`
  3110  
  3111  	// The destination in Amazon ES.
  3112  	ElasticsearchDestinationDescription *ElasticsearchDestinationDescription `type:"structure"`
  3113  
  3114  	// The destination in Amazon S3.
  3115  	ExtendedS3DestinationDescription *ExtendedS3DestinationDescription `type:"structure"`
  3116  
  3117  	// Describes the specified HTTP endpoint destination.
  3118  	HttpEndpointDestinationDescription *HttpEndpointDestinationDescription `type:"structure"`
  3119  
  3120  	// The destination in Amazon Redshift.
  3121  	RedshiftDestinationDescription *RedshiftDestinationDescription `type:"structure"`
  3122  
  3123  	// [Deprecated] The destination in Amazon S3.
  3124  	S3DestinationDescription *S3DestinationDescription `type:"structure"`
  3125  
  3126  	// The destination in Splunk.
  3127  	SplunkDestinationDescription *SplunkDestinationDescription `type:"structure"`
  3128  }
  3129  
  3130  // String returns the string representation.
  3131  //
  3132  // API parameter values that are decorated as "sensitive" in the API will not
  3133  // be included in the string output. The member name will be present, but the
  3134  // value will be replaced with "sensitive".
  3135  func (s DestinationDescription) String() string {
  3136  	return awsutil.Prettify(s)
  3137  }
  3138  
  3139  // GoString returns the string representation.
  3140  //
  3141  // API parameter values that are decorated as "sensitive" in the API will not
  3142  // be included in the string output. The member name will be present, but the
  3143  // value will be replaced with "sensitive".
  3144  func (s DestinationDescription) GoString() string {
  3145  	return s.String()
  3146  }
  3147  
  3148  // SetAmazonopensearchserviceDestinationDescription sets the AmazonopensearchserviceDestinationDescription field's value.
  3149  func (s *DestinationDescription) SetAmazonopensearchserviceDestinationDescription(v *AmazonopensearchserviceDestinationDescription) *DestinationDescription {
  3150  	s.AmazonopensearchserviceDestinationDescription = v
  3151  	return s
  3152  }
  3153  
  3154  // SetDestinationId sets the DestinationId field's value.
  3155  func (s *DestinationDescription) SetDestinationId(v string) *DestinationDescription {
  3156  	s.DestinationId = &v
  3157  	return s
  3158  }
  3159  
  3160  // SetElasticsearchDestinationDescription sets the ElasticsearchDestinationDescription field's value.
  3161  func (s *DestinationDescription) SetElasticsearchDestinationDescription(v *ElasticsearchDestinationDescription) *DestinationDescription {
  3162  	s.ElasticsearchDestinationDescription = v
  3163  	return s
  3164  }
  3165  
  3166  // SetExtendedS3DestinationDescription sets the ExtendedS3DestinationDescription field's value.
  3167  func (s *DestinationDescription) SetExtendedS3DestinationDescription(v *ExtendedS3DestinationDescription) *DestinationDescription {
  3168  	s.ExtendedS3DestinationDescription = v
  3169  	return s
  3170  }
  3171  
  3172  // SetHttpEndpointDestinationDescription sets the HttpEndpointDestinationDescription field's value.
  3173  func (s *DestinationDescription) SetHttpEndpointDestinationDescription(v *HttpEndpointDestinationDescription) *DestinationDescription {
  3174  	s.HttpEndpointDestinationDescription = v
  3175  	return s
  3176  }
  3177  
  3178  // SetRedshiftDestinationDescription sets the RedshiftDestinationDescription field's value.
  3179  func (s *DestinationDescription) SetRedshiftDestinationDescription(v *RedshiftDestinationDescription) *DestinationDescription {
  3180  	s.RedshiftDestinationDescription = v
  3181  	return s
  3182  }
  3183  
  3184  // SetS3DestinationDescription sets the S3DestinationDescription field's value.
  3185  func (s *DestinationDescription) SetS3DestinationDescription(v *S3DestinationDescription) *DestinationDescription {
  3186  	s.S3DestinationDescription = v
  3187  	return s
  3188  }
  3189  
  3190  // SetSplunkDestinationDescription sets the SplunkDestinationDescription field's value.
  3191  func (s *DestinationDescription) SetSplunkDestinationDescription(v *SplunkDestinationDescription) *DestinationDescription {
  3192  	s.SplunkDestinationDescription = v
  3193  	return s
  3194  }
  3195  
  3196  // The configuration of the dynamic partitioning mechanism that creates smaller
  3197  // data sets from the streaming data by partitioning it based on partition keys.
  3198  // Currently, dynamic partitioning is only supported for Amazon S3 destinations.
  3199  // For more information, see https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html
  3200  // (https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html)
  3201  type DynamicPartitioningConfiguration struct {
  3202  	_ struct{} `type:"structure"`
  3203  
  3204  	// Specifies that the dynamic partitioning is enabled for this Kinesis Data
  3205  	// Firehose delivery stream.
  3206  	Enabled *bool `type:"boolean"`
  3207  
  3208  	// The retry behavior in case Kinesis Data Firehose is unable to deliver data
  3209  	// to an Amazon S3 prefix.
  3210  	RetryOptions *RetryOptions `type:"structure"`
  3211  }
  3212  
  3213  // String returns the string representation.
  3214  //
  3215  // API parameter values that are decorated as "sensitive" in the API will not
  3216  // be included in the string output. The member name will be present, but the
  3217  // value will be replaced with "sensitive".
  3218  func (s DynamicPartitioningConfiguration) String() string {
  3219  	return awsutil.Prettify(s)
  3220  }
  3221  
  3222  // GoString returns the string representation.
  3223  //
  3224  // API parameter values that are decorated as "sensitive" in the API will not
  3225  // be included in the string output. The member name will be present, but the
  3226  // value will be replaced with "sensitive".
  3227  func (s DynamicPartitioningConfiguration) GoString() string {
  3228  	return s.String()
  3229  }
  3230  
  3231  // SetEnabled sets the Enabled field's value.
  3232  func (s *DynamicPartitioningConfiguration) SetEnabled(v bool) *DynamicPartitioningConfiguration {
  3233  	s.Enabled = &v
  3234  	return s
  3235  }
  3236  
  3237  // SetRetryOptions sets the RetryOptions field's value.
  3238  func (s *DynamicPartitioningConfiguration) SetRetryOptions(v *RetryOptions) *DynamicPartitioningConfiguration {
  3239  	s.RetryOptions = v
  3240  	return s
  3241  }
  3242  
  3243  // Describes the buffering to perform before delivering data to the Amazon ES
  3244  // destination.
  3245  type ElasticsearchBufferingHints struct {
  3246  	_ struct{} `type:"structure"`
  3247  
  3248  	// Buffer incoming data for the specified period of time, in seconds, before
  3249  	// delivering it to the destination. The default value is 300 (5 minutes).
  3250  	IntervalInSeconds *int64 `min:"60" type:"integer"`
  3251  
  3252  	// Buffer incoming data to the specified size, in MBs, before delivering it
  3253  	// to the destination. The default value is 5.
  3254  	//
  3255  	// We recommend setting this parameter to a value greater than the amount of
  3256  	// data you typically ingest into the delivery stream in 10 seconds. For example,
  3257  	// if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher.
  3258  	SizeInMBs *int64 `min:"1" type:"integer"`
  3259  }
  3260  
  3261  // String returns the string representation.
  3262  //
  3263  // API parameter values that are decorated as "sensitive" in the API will not
  3264  // be included in the string output. The member name will be present, but the
  3265  // value will be replaced with "sensitive".
  3266  func (s ElasticsearchBufferingHints) String() string {
  3267  	return awsutil.Prettify(s)
  3268  }
  3269  
  3270  // GoString returns the string representation.
  3271  //
  3272  // API parameter values that are decorated as "sensitive" in the API will not
  3273  // be included in the string output. The member name will be present, but the
  3274  // value will be replaced with "sensitive".
  3275  func (s ElasticsearchBufferingHints) GoString() string {
  3276  	return s.String()
  3277  }
  3278  
  3279  // Validate inspects the fields of the type to determine if they are valid.
  3280  func (s *ElasticsearchBufferingHints) Validate() error {
  3281  	invalidParams := request.ErrInvalidParams{Context: "ElasticsearchBufferingHints"}
  3282  	if s.IntervalInSeconds != nil && *s.IntervalInSeconds < 60 {
  3283  		invalidParams.Add(request.NewErrParamMinValue("IntervalInSeconds", 60))
  3284  	}
  3285  	if s.SizeInMBs != nil && *s.SizeInMBs < 1 {
  3286  		invalidParams.Add(request.NewErrParamMinValue("SizeInMBs", 1))
  3287  	}
  3288  
  3289  	if invalidParams.Len() > 0 {
  3290  		return invalidParams
  3291  	}
  3292  	return nil
  3293  }
  3294  
  3295  // SetIntervalInSeconds sets the IntervalInSeconds field's value.
  3296  func (s *ElasticsearchBufferingHints) SetIntervalInSeconds(v int64) *ElasticsearchBufferingHints {
  3297  	s.IntervalInSeconds = &v
  3298  	return s
  3299  }
  3300  
  3301  // SetSizeInMBs sets the SizeInMBs field's value.
  3302  func (s *ElasticsearchBufferingHints) SetSizeInMBs(v int64) *ElasticsearchBufferingHints {
  3303  	s.SizeInMBs = &v
  3304  	return s
  3305  }
  3306  
  3307  // Describes the configuration of a destination in Amazon ES.
  3308  type ElasticsearchDestinationConfiguration struct {
  3309  	_ struct{} `type:"structure"`
  3310  
  3311  	// The buffering options. If no value is specified, the default values for ElasticsearchBufferingHints
  3312  	// are used.
  3313  	BufferingHints *ElasticsearchBufferingHints `type:"structure"`
  3314  
  3315  	// The Amazon CloudWatch logging options for your delivery stream.
  3316  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  3317  
  3318  	// The endpoint to use when communicating with the cluster. Specify either this
  3319  	// ClusterEndpoint or the DomainARN field.
  3320  	ClusterEndpoint *string `min:"1" type:"string"`
  3321  
  3322  	// The ARN of the Amazon ES domain. The IAM role must have permissions for DescribeElasticsearchDomain,
  3323  	// DescribeElasticsearchDomains, and DescribeElasticsearchDomainConfig after
  3324  	// assuming the role specified in RoleARN. For more information, see Amazon
  3325  	// Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  3326  	//
  3327  	// Specify either ClusterEndpoint or DomainARN.
  3328  	DomainARN *string `min:"1" type:"string"`
  3329  
  3330  	// The Elasticsearch index name.
  3331  	//
  3332  	// IndexName is a required field
  3333  	IndexName *string `min:"1" type:"string" required:"true"`
  3334  
  3335  	// The Elasticsearch index rotation period. Index rotation appends a timestamp
  3336  	// to the IndexName to facilitate the expiration of old data. For more information,
  3337  	// see Index Rotation for the Amazon ES Destination (https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation).
  3338  	// The default value is OneDay.
  3339  	IndexRotationPeriod *string `type:"string" enum:"ElasticsearchIndexRotationPeriod"`
  3340  
  3341  	// The data processing configuration.
  3342  	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
  3343  
  3344  	// The retry behavior in case Kinesis Data Firehose is unable to deliver documents
  3345  	// to Amazon ES. The default value is 300 (5 minutes).
  3346  	RetryOptions *ElasticsearchRetryOptions `type:"structure"`
  3347  
  3348  	// The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data
  3349  	// Firehose for calling the Amazon ES Configuration API and for indexing documents.
  3350  	// For more information, see Grant Kinesis Data Firehose Access to an Amazon
  3351  	// S3 Destination (https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3)
  3352  	// and Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  3353  	//
  3354  	// RoleARN is a required field
  3355  	RoleARN *string `min:"1" type:"string" required:"true"`
  3356  
  3357  	// Defines how documents should be delivered to Amazon S3. When it is set to
  3358  	// FailedDocumentsOnly, Kinesis Data Firehose writes any documents that could
  3359  	// not be indexed to the configured Amazon S3 destination, with elasticsearch-failed/
  3360  	// appended to the key prefix. When set to AllDocuments, Kinesis Data Firehose
  3361  	// delivers all incoming records to Amazon S3, and also writes failed documents
  3362  	// with elasticsearch-failed/ appended to the prefix. For more information,
  3363  	// see Amazon S3 Backup for the Amazon ES Destination (https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-s3-backup).
  3364  	// Default value is FailedDocumentsOnly.
  3365  	//
  3366  	// You can't change this backup mode after you create the delivery stream.
  3367  	S3BackupMode *string `type:"string" enum:"ElasticsearchS3BackupMode"`
  3368  
  3369  	// The configuration for the backup Amazon S3 location.
  3370  	//
  3371  	// S3Configuration is a required field
  3372  	S3Configuration *S3DestinationConfiguration `type:"structure" required:"true"`
  3373  
  3374  	// The Elasticsearch type name. For Elasticsearch 6.x, there can be only one
  3375  	// type per index. If you try to specify a new type for an existing index that
  3376  	// already has another type, Kinesis Data Firehose returns an error during run
  3377  	// time.
  3378  	//
  3379  	// For Elasticsearch 7.x, don't specify a TypeName.
  3380  	TypeName *string `type:"string"`
  3381  
  3382  	// The details of the VPC of the Amazon ES destination.
  3383  	VpcConfiguration *VpcConfiguration `type:"structure"`
  3384  }
  3385  
  3386  // String returns the string representation.
  3387  //
  3388  // API parameter values that are decorated as "sensitive" in the API will not
  3389  // be included in the string output. The member name will be present, but the
  3390  // value will be replaced with "sensitive".
  3391  func (s ElasticsearchDestinationConfiguration) String() string {
  3392  	return awsutil.Prettify(s)
  3393  }
  3394  
  3395  // GoString returns the string representation.
  3396  //
  3397  // API parameter values that are decorated as "sensitive" in the API will not
  3398  // be included in the string output. The member name will be present, but the
  3399  // value will be replaced with "sensitive".
  3400  func (s ElasticsearchDestinationConfiguration) GoString() string {
  3401  	return s.String()
  3402  }
  3403  
  3404  // Validate inspects the fields of the type to determine if they are valid.
  3405  func (s *ElasticsearchDestinationConfiguration) Validate() error {
  3406  	invalidParams := request.ErrInvalidParams{Context: "ElasticsearchDestinationConfiguration"}
  3407  	if s.ClusterEndpoint != nil && len(*s.ClusterEndpoint) < 1 {
  3408  		invalidParams.Add(request.NewErrParamMinLen("ClusterEndpoint", 1))
  3409  	}
  3410  	if s.DomainARN != nil && len(*s.DomainARN) < 1 {
  3411  		invalidParams.Add(request.NewErrParamMinLen("DomainARN", 1))
  3412  	}
  3413  	if s.IndexName == nil {
  3414  		invalidParams.Add(request.NewErrParamRequired("IndexName"))
  3415  	}
  3416  	if s.IndexName != nil && len(*s.IndexName) < 1 {
  3417  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
  3418  	}
  3419  	if s.RoleARN == nil {
  3420  		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
  3421  	}
  3422  	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
  3423  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
  3424  	}
  3425  	if s.S3Configuration == nil {
  3426  		invalidParams.Add(request.NewErrParamRequired("S3Configuration"))
  3427  	}
  3428  	if s.BufferingHints != nil {
  3429  		if err := s.BufferingHints.Validate(); err != nil {
  3430  			invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
  3431  		}
  3432  	}
  3433  	if s.ProcessingConfiguration != nil {
  3434  		if err := s.ProcessingConfiguration.Validate(); err != nil {
  3435  			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
  3436  		}
  3437  	}
  3438  	if s.S3Configuration != nil {
  3439  		if err := s.S3Configuration.Validate(); err != nil {
  3440  			invalidParams.AddNested("S3Configuration", err.(request.ErrInvalidParams))
  3441  		}
  3442  	}
  3443  	if s.VpcConfiguration != nil {
  3444  		if err := s.VpcConfiguration.Validate(); err != nil {
  3445  			invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams))
  3446  		}
  3447  	}
  3448  
  3449  	if invalidParams.Len() > 0 {
  3450  		return invalidParams
  3451  	}
  3452  	return nil
  3453  }
  3454  
  3455  // SetBufferingHints sets the BufferingHints field's value.
  3456  func (s *ElasticsearchDestinationConfiguration) SetBufferingHints(v *ElasticsearchBufferingHints) *ElasticsearchDestinationConfiguration {
  3457  	s.BufferingHints = v
  3458  	return s
  3459  }
  3460  
  3461  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  3462  func (s *ElasticsearchDestinationConfiguration) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *ElasticsearchDestinationConfiguration {
  3463  	s.CloudWatchLoggingOptions = v
  3464  	return s
  3465  }
  3466  
  3467  // SetClusterEndpoint sets the ClusterEndpoint field's value.
  3468  func (s *ElasticsearchDestinationConfiguration) SetClusterEndpoint(v string) *ElasticsearchDestinationConfiguration {
  3469  	s.ClusterEndpoint = &v
  3470  	return s
  3471  }
  3472  
  3473  // SetDomainARN sets the DomainARN field's value.
  3474  func (s *ElasticsearchDestinationConfiguration) SetDomainARN(v string) *ElasticsearchDestinationConfiguration {
  3475  	s.DomainARN = &v
  3476  	return s
  3477  }
  3478  
  3479  // SetIndexName sets the IndexName field's value.
  3480  func (s *ElasticsearchDestinationConfiguration) SetIndexName(v string) *ElasticsearchDestinationConfiguration {
  3481  	s.IndexName = &v
  3482  	return s
  3483  }
  3484  
  3485  // SetIndexRotationPeriod sets the IndexRotationPeriod field's value.
  3486  func (s *ElasticsearchDestinationConfiguration) SetIndexRotationPeriod(v string) *ElasticsearchDestinationConfiguration {
  3487  	s.IndexRotationPeriod = &v
  3488  	return s
  3489  }
  3490  
  3491  // SetProcessingConfiguration sets the ProcessingConfiguration field's value.
  3492  func (s *ElasticsearchDestinationConfiguration) SetProcessingConfiguration(v *ProcessingConfiguration) *ElasticsearchDestinationConfiguration {
  3493  	s.ProcessingConfiguration = v
  3494  	return s
  3495  }
  3496  
  3497  // SetRetryOptions sets the RetryOptions field's value.
  3498  func (s *ElasticsearchDestinationConfiguration) SetRetryOptions(v *ElasticsearchRetryOptions) *ElasticsearchDestinationConfiguration {
  3499  	s.RetryOptions = v
  3500  	return s
  3501  }
  3502  
  3503  // SetRoleARN sets the RoleARN field's value.
  3504  func (s *ElasticsearchDestinationConfiguration) SetRoleARN(v string) *ElasticsearchDestinationConfiguration {
  3505  	s.RoleARN = &v
  3506  	return s
  3507  }
  3508  
  3509  // SetS3BackupMode sets the S3BackupMode field's value.
  3510  func (s *ElasticsearchDestinationConfiguration) SetS3BackupMode(v string) *ElasticsearchDestinationConfiguration {
  3511  	s.S3BackupMode = &v
  3512  	return s
  3513  }
  3514  
  3515  // SetS3Configuration sets the S3Configuration field's value.
  3516  func (s *ElasticsearchDestinationConfiguration) SetS3Configuration(v *S3DestinationConfiguration) *ElasticsearchDestinationConfiguration {
  3517  	s.S3Configuration = v
  3518  	return s
  3519  }
  3520  
  3521  // SetTypeName sets the TypeName field's value.
  3522  func (s *ElasticsearchDestinationConfiguration) SetTypeName(v string) *ElasticsearchDestinationConfiguration {
  3523  	s.TypeName = &v
  3524  	return s
  3525  }
  3526  
  3527  // SetVpcConfiguration sets the VpcConfiguration field's value.
  3528  func (s *ElasticsearchDestinationConfiguration) SetVpcConfiguration(v *VpcConfiguration) *ElasticsearchDestinationConfiguration {
  3529  	s.VpcConfiguration = v
  3530  	return s
  3531  }
  3532  
  3533  // The destination description in Amazon ES.
  3534  type ElasticsearchDestinationDescription struct {
  3535  	_ struct{} `type:"structure"`
  3536  
  3537  	// The buffering options.
  3538  	BufferingHints *ElasticsearchBufferingHints `type:"structure"`
  3539  
  3540  	// The Amazon CloudWatch logging options.
  3541  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  3542  
  3543  	// The endpoint to use when communicating with the cluster. Kinesis Data Firehose
  3544  	// uses either this ClusterEndpoint or the DomainARN field to send data to Amazon
  3545  	// ES.
  3546  	ClusterEndpoint *string `min:"1" type:"string"`
  3547  
  3548  	// The ARN of the Amazon ES domain. For more information, see Amazon Resource
  3549  	// Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  3550  	//
  3551  	// Kinesis Data Firehose uses either ClusterEndpoint or DomainARN to send data
  3552  	// to Amazon ES.
  3553  	DomainARN *string `min:"1" type:"string"`
  3554  
  3555  	// The Elasticsearch index name.
  3556  	IndexName *string `min:"1" type:"string"`
  3557  
  3558  	// The Elasticsearch index rotation period
  3559  	IndexRotationPeriod *string `type:"string" enum:"ElasticsearchIndexRotationPeriod"`
  3560  
  3561  	// The data processing configuration.
  3562  	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
  3563  
  3564  	// The Amazon ES retry options.
  3565  	RetryOptions *ElasticsearchRetryOptions `type:"structure"`
  3566  
  3567  	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
  3568  	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  3569  	RoleARN *string `min:"1" type:"string"`
  3570  
  3571  	// The Amazon S3 backup mode.
  3572  	S3BackupMode *string `type:"string" enum:"ElasticsearchS3BackupMode"`
  3573  
  3574  	// The Amazon S3 destination.
  3575  	S3DestinationDescription *S3DestinationDescription `type:"structure"`
  3576  
  3577  	// The Elasticsearch type name. This applies to Elasticsearch 6.x and lower
  3578  	// versions. For Elasticsearch 7.x, there's no value for TypeName.
  3579  	TypeName *string `type:"string"`
  3580  
  3581  	// The details of the VPC of the Amazon ES destination.
  3582  	VpcConfigurationDescription *VpcConfigurationDescription `type:"structure"`
  3583  }
  3584  
  3585  // String returns the string representation.
  3586  //
  3587  // API parameter values that are decorated as "sensitive" in the API will not
  3588  // be included in the string output. The member name will be present, but the
  3589  // value will be replaced with "sensitive".
  3590  func (s ElasticsearchDestinationDescription) String() string {
  3591  	return awsutil.Prettify(s)
  3592  }
  3593  
  3594  // GoString returns the string representation.
  3595  //
  3596  // API parameter values that are decorated as "sensitive" in the API will not
  3597  // be included in the string output. The member name will be present, but the
  3598  // value will be replaced with "sensitive".
  3599  func (s ElasticsearchDestinationDescription) GoString() string {
  3600  	return s.String()
  3601  }
  3602  
  3603  // SetBufferingHints sets the BufferingHints field's value.
  3604  func (s *ElasticsearchDestinationDescription) SetBufferingHints(v *ElasticsearchBufferingHints) *ElasticsearchDestinationDescription {
  3605  	s.BufferingHints = v
  3606  	return s
  3607  }
  3608  
  3609  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  3610  func (s *ElasticsearchDestinationDescription) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *ElasticsearchDestinationDescription {
  3611  	s.CloudWatchLoggingOptions = v
  3612  	return s
  3613  }
  3614  
  3615  // SetClusterEndpoint sets the ClusterEndpoint field's value.
  3616  func (s *ElasticsearchDestinationDescription) SetClusterEndpoint(v string) *ElasticsearchDestinationDescription {
  3617  	s.ClusterEndpoint = &v
  3618  	return s
  3619  }
  3620  
  3621  // SetDomainARN sets the DomainARN field's value.
  3622  func (s *ElasticsearchDestinationDescription) SetDomainARN(v string) *ElasticsearchDestinationDescription {
  3623  	s.DomainARN = &v
  3624  	return s
  3625  }
  3626  
  3627  // SetIndexName sets the IndexName field's value.
  3628  func (s *ElasticsearchDestinationDescription) SetIndexName(v string) *ElasticsearchDestinationDescription {
  3629  	s.IndexName = &v
  3630  	return s
  3631  }
  3632  
  3633  // SetIndexRotationPeriod sets the IndexRotationPeriod field's value.
  3634  func (s *ElasticsearchDestinationDescription) SetIndexRotationPeriod(v string) *ElasticsearchDestinationDescription {
  3635  	s.IndexRotationPeriod = &v
  3636  	return s
  3637  }
  3638  
  3639  // SetProcessingConfiguration sets the ProcessingConfiguration field's value.
  3640  func (s *ElasticsearchDestinationDescription) SetProcessingConfiguration(v *ProcessingConfiguration) *ElasticsearchDestinationDescription {
  3641  	s.ProcessingConfiguration = v
  3642  	return s
  3643  }
  3644  
  3645  // SetRetryOptions sets the RetryOptions field's value.
  3646  func (s *ElasticsearchDestinationDescription) SetRetryOptions(v *ElasticsearchRetryOptions) *ElasticsearchDestinationDescription {
  3647  	s.RetryOptions = v
  3648  	return s
  3649  }
  3650  
  3651  // SetRoleARN sets the RoleARN field's value.
  3652  func (s *ElasticsearchDestinationDescription) SetRoleARN(v string) *ElasticsearchDestinationDescription {
  3653  	s.RoleARN = &v
  3654  	return s
  3655  }
  3656  
  3657  // SetS3BackupMode sets the S3BackupMode field's value.
  3658  func (s *ElasticsearchDestinationDescription) SetS3BackupMode(v string) *ElasticsearchDestinationDescription {
  3659  	s.S3BackupMode = &v
  3660  	return s
  3661  }
  3662  
  3663  // SetS3DestinationDescription sets the S3DestinationDescription field's value.
  3664  func (s *ElasticsearchDestinationDescription) SetS3DestinationDescription(v *S3DestinationDescription) *ElasticsearchDestinationDescription {
  3665  	s.S3DestinationDescription = v
  3666  	return s
  3667  }
  3668  
  3669  // SetTypeName sets the TypeName field's value.
  3670  func (s *ElasticsearchDestinationDescription) SetTypeName(v string) *ElasticsearchDestinationDescription {
  3671  	s.TypeName = &v
  3672  	return s
  3673  }
  3674  
  3675  // SetVpcConfigurationDescription sets the VpcConfigurationDescription field's value.
  3676  func (s *ElasticsearchDestinationDescription) SetVpcConfigurationDescription(v *VpcConfigurationDescription) *ElasticsearchDestinationDescription {
  3677  	s.VpcConfigurationDescription = v
  3678  	return s
  3679  }
  3680  
  3681  // Describes an update for a destination in Amazon ES.
  3682  type ElasticsearchDestinationUpdate struct {
  3683  	_ struct{} `type:"structure"`
  3684  
  3685  	// The buffering options. If no value is specified, ElasticsearchBufferingHints
  3686  	// object default values are used.
  3687  	BufferingHints *ElasticsearchBufferingHints `type:"structure"`
  3688  
  3689  	// The CloudWatch logging options for your delivery stream.
  3690  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  3691  
  3692  	// The endpoint to use when communicating with the cluster. Specify either this
  3693  	// ClusterEndpoint or the DomainARN field.
  3694  	ClusterEndpoint *string `min:"1" type:"string"`
  3695  
  3696  	// The ARN of the Amazon ES domain. The IAM role must have permissions for DescribeElasticsearchDomain,
  3697  	// DescribeElasticsearchDomains, and DescribeElasticsearchDomainConfig after
  3698  	// assuming the IAM role specified in RoleARN. For more information, see Amazon
  3699  	// Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  3700  	//
  3701  	// Specify either ClusterEndpoint or DomainARN.
  3702  	DomainARN *string `min:"1" type:"string"`
  3703  
  3704  	// The Elasticsearch index name.
  3705  	IndexName *string `min:"1" type:"string"`
  3706  
  3707  	// The Elasticsearch index rotation period. Index rotation appends a timestamp
  3708  	// to IndexName to facilitate the expiration of old data. For more information,
  3709  	// see Index Rotation for the Amazon ES Destination (https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation).
  3710  	// Default value is OneDay.
  3711  	IndexRotationPeriod *string `type:"string" enum:"ElasticsearchIndexRotationPeriod"`
  3712  
  3713  	// The data processing configuration.
  3714  	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
  3715  
  3716  	// The retry behavior in case Kinesis Data Firehose is unable to deliver documents
  3717  	// to Amazon ES. The default value is 300 (5 minutes).
  3718  	RetryOptions *ElasticsearchRetryOptions `type:"structure"`
  3719  
  3720  	// The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data
  3721  	// Firehose for calling the Amazon ES Configuration API and for indexing documents.
  3722  	// For more information, see Grant Kinesis Data Firehose Access to an Amazon
  3723  	// S3 Destination (https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3)
  3724  	// and Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  3725  	RoleARN *string `min:"1" type:"string"`
  3726  
  3727  	// The Amazon S3 destination.
  3728  	S3Update *S3DestinationUpdate `type:"structure"`
  3729  
  3730  	// The Elasticsearch type name. For Elasticsearch 6.x, there can be only one
  3731  	// type per index. If you try to specify a new type for an existing index that
  3732  	// already has another type, Kinesis Data Firehose returns an error during runtime.
  3733  	//
  3734  	// If you upgrade Elasticsearch from 6.x to 7.x and don’t update your delivery
  3735  	// stream, Kinesis Data Firehose still delivers data to Elasticsearch with the
  3736  	// old index name and type name. If you want to update your delivery stream
  3737  	// with a new index name, provide an empty string for TypeName.
  3738  	TypeName *string `type:"string"`
  3739  }
  3740  
  3741  // String returns the string representation.
  3742  //
  3743  // API parameter values that are decorated as "sensitive" in the API will not
  3744  // be included in the string output. The member name will be present, but the
  3745  // value will be replaced with "sensitive".
  3746  func (s ElasticsearchDestinationUpdate) String() string {
  3747  	return awsutil.Prettify(s)
  3748  }
  3749  
  3750  // GoString returns the string representation.
  3751  //
  3752  // API parameter values that are decorated as "sensitive" in the API will not
  3753  // be included in the string output. The member name will be present, but the
  3754  // value will be replaced with "sensitive".
  3755  func (s ElasticsearchDestinationUpdate) GoString() string {
  3756  	return s.String()
  3757  }
  3758  
  3759  // Validate inspects the fields of the type to determine if they are valid.
  3760  func (s *ElasticsearchDestinationUpdate) Validate() error {
  3761  	invalidParams := request.ErrInvalidParams{Context: "ElasticsearchDestinationUpdate"}
  3762  	if s.ClusterEndpoint != nil && len(*s.ClusterEndpoint) < 1 {
  3763  		invalidParams.Add(request.NewErrParamMinLen("ClusterEndpoint", 1))
  3764  	}
  3765  	if s.DomainARN != nil && len(*s.DomainARN) < 1 {
  3766  		invalidParams.Add(request.NewErrParamMinLen("DomainARN", 1))
  3767  	}
  3768  	if s.IndexName != nil && len(*s.IndexName) < 1 {
  3769  		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
  3770  	}
  3771  	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
  3772  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
  3773  	}
  3774  	if s.BufferingHints != nil {
  3775  		if err := s.BufferingHints.Validate(); err != nil {
  3776  			invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
  3777  		}
  3778  	}
  3779  	if s.ProcessingConfiguration != nil {
  3780  		if err := s.ProcessingConfiguration.Validate(); err != nil {
  3781  			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
  3782  		}
  3783  	}
  3784  	if s.S3Update != nil {
  3785  		if err := s.S3Update.Validate(); err != nil {
  3786  			invalidParams.AddNested("S3Update", err.(request.ErrInvalidParams))
  3787  		}
  3788  	}
  3789  
  3790  	if invalidParams.Len() > 0 {
  3791  		return invalidParams
  3792  	}
  3793  	return nil
  3794  }
  3795  
  3796  // SetBufferingHints sets the BufferingHints field's value.
  3797  func (s *ElasticsearchDestinationUpdate) SetBufferingHints(v *ElasticsearchBufferingHints) *ElasticsearchDestinationUpdate {
  3798  	s.BufferingHints = v
  3799  	return s
  3800  }
  3801  
  3802  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  3803  func (s *ElasticsearchDestinationUpdate) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *ElasticsearchDestinationUpdate {
  3804  	s.CloudWatchLoggingOptions = v
  3805  	return s
  3806  }
  3807  
  3808  // SetClusterEndpoint sets the ClusterEndpoint field's value.
  3809  func (s *ElasticsearchDestinationUpdate) SetClusterEndpoint(v string) *ElasticsearchDestinationUpdate {
  3810  	s.ClusterEndpoint = &v
  3811  	return s
  3812  }
  3813  
  3814  // SetDomainARN sets the DomainARN field's value.
  3815  func (s *ElasticsearchDestinationUpdate) SetDomainARN(v string) *ElasticsearchDestinationUpdate {
  3816  	s.DomainARN = &v
  3817  	return s
  3818  }
  3819  
  3820  // SetIndexName sets the IndexName field's value.
  3821  func (s *ElasticsearchDestinationUpdate) SetIndexName(v string) *ElasticsearchDestinationUpdate {
  3822  	s.IndexName = &v
  3823  	return s
  3824  }
  3825  
  3826  // SetIndexRotationPeriod sets the IndexRotationPeriod field's value.
  3827  func (s *ElasticsearchDestinationUpdate) SetIndexRotationPeriod(v string) *ElasticsearchDestinationUpdate {
  3828  	s.IndexRotationPeriod = &v
  3829  	return s
  3830  }
  3831  
  3832  // SetProcessingConfiguration sets the ProcessingConfiguration field's value.
  3833  func (s *ElasticsearchDestinationUpdate) SetProcessingConfiguration(v *ProcessingConfiguration) *ElasticsearchDestinationUpdate {
  3834  	s.ProcessingConfiguration = v
  3835  	return s
  3836  }
  3837  
  3838  // SetRetryOptions sets the RetryOptions field's value.
  3839  func (s *ElasticsearchDestinationUpdate) SetRetryOptions(v *ElasticsearchRetryOptions) *ElasticsearchDestinationUpdate {
  3840  	s.RetryOptions = v
  3841  	return s
  3842  }
  3843  
  3844  // SetRoleARN sets the RoleARN field's value.
  3845  func (s *ElasticsearchDestinationUpdate) SetRoleARN(v string) *ElasticsearchDestinationUpdate {
  3846  	s.RoleARN = &v
  3847  	return s
  3848  }
  3849  
  3850  // SetS3Update sets the S3Update field's value.
  3851  func (s *ElasticsearchDestinationUpdate) SetS3Update(v *S3DestinationUpdate) *ElasticsearchDestinationUpdate {
  3852  	s.S3Update = v
  3853  	return s
  3854  }
  3855  
  3856  // SetTypeName sets the TypeName field's value.
  3857  func (s *ElasticsearchDestinationUpdate) SetTypeName(v string) *ElasticsearchDestinationUpdate {
  3858  	s.TypeName = &v
  3859  	return s
  3860  }
  3861  
  3862  // Configures retry behavior in case Kinesis Data Firehose is unable to deliver
  3863  // documents to Amazon ES.
  3864  type ElasticsearchRetryOptions struct {
  3865  	_ struct{} `type:"structure"`
  3866  
  3867  	// After an initial failure to deliver to Amazon ES, the total amount of time
  3868  	// during which Kinesis Data Firehose retries delivery (including the first
  3869  	// attempt). After this time has elapsed, the failed documents are written to
  3870  	// Amazon S3. Default value is 300 seconds (5 minutes). A value of 0 (zero)
  3871  	// results in no retries.
  3872  	DurationInSeconds *int64 `type:"integer"`
  3873  }
  3874  
  3875  // String returns the string representation.
  3876  //
  3877  // API parameter values that are decorated as "sensitive" in the API will not
  3878  // be included in the string output. The member name will be present, but the
  3879  // value will be replaced with "sensitive".
  3880  func (s ElasticsearchRetryOptions) String() string {
  3881  	return awsutil.Prettify(s)
  3882  }
  3883  
  3884  // GoString returns the string representation.
  3885  //
  3886  // API parameter values that are decorated as "sensitive" in the API will not
  3887  // be included in the string output. The member name will be present, but the
  3888  // value will be replaced with "sensitive".
  3889  func (s ElasticsearchRetryOptions) GoString() string {
  3890  	return s.String()
  3891  }
  3892  
  3893  // SetDurationInSeconds sets the DurationInSeconds field's value.
  3894  func (s *ElasticsearchRetryOptions) SetDurationInSeconds(v int64) *ElasticsearchRetryOptions {
  3895  	s.DurationInSeconds = &v
  3896  	return s
  3897  }
  3898  
  3899  // Describes the encryption for a destination in Amazon S3.
  3900  type EncryptionConfiguration struct {
  3901  	_ struct{} `type:"structure"`
  3902  
  3903  	// The encryption key.
  3904  	KMSEncryptionConfig *KMSEncryptionConfig `type:"structure"`
  3905  
  3906  	// Specifically override existing encryption information to ensure that no encryption
  3907  	// is used.
  3908  	NoEncryptionConfig *string `type:"string" enum:"NoEncryptionConfig"`
  3909  }
  3910  
  3911  // String returns the string representation.
  3912  //
  3913  // API parameter values that are decorated as "sensitive" in the API will not
  3914  // be included in the string output. The member name will be present, but the
  3915  // value will be replaced with "sensitive".
  3916  func (s EncryptionConfiguration) String() string {
  3917  	return awsutil.Prettify(s)
  3918  }
  3919  
  3920  // GoString returns the string representation.
  3921  //
  3922  // API parameter values that are decorated as "sensitive" in the API will not
  3923  // be included in the string output. The member name will be present, but the
  3924  // value will be replaced with "sensitive".
  3925  func (s EncryptionConfiguration) GoString() string {
  3926  	return s.String()
  3927  }
  3928  
  3929  // Validate inspects the fields of the type to determine if they are valid.
  3930  func (s *EncryptionConfiguration) Validate() error {
  3931  	invalidParams := request.ErrInvalidParams{Context: "EncryptionConfiguration"}
  3932  	if s.KMSEncryptionConfig != nil {
  3933  		if err := s.KMSEncryptionConfig.Validate(); err != nil {
  3934  			invalidParams.AddNested("KMSEncryptionConfig", err.(request.ErrInvalidParams))
  3935  		}
  3936  	}
  3937  
  3938  	if invalidParams.Len() > 0 {
  3939  		return invalidParams
  3940  	}
  3941  	return nil
  3942  }
  3943  
  3944  // SetKMSEncryptionConfig sets the KMSEncryptionConfig field's value.
  3945  func (s *EncryptionConfiguration) SetKMSEncryptionConfig(v *KMSEncryptionConfig) *EncryptionConfiguration {
  3946  	s.KMSEncryptionConfig = v
  3947  	return s
  3948  }
  3949  
  3950  // SetNoEncryptionConfig sets the NoEncryptionConfig field's value.
  3951  func (s *EncryptionConfiguration) SetNoEncryptionConfig(v string) *EncryptionConfiguration {
  3952  	s.NoEncryptionConfig = &v
  3953  	return s
  3954  }
  3955  
  3956  // Describes the configuration of a destination in Amazon S3.
  3957  type ExtendedS3DestinationConfiguration struct {
  3958  	_ struct{} `type:"structure"`
  3959  
  3960  	// The ARN of the S3 bucket. For more information, see Amazon Resource Names
  3961  	// (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  3962  	//
  3963  	// BucketARN is a required field
  3964  	BucketARN *string `min:"1" type:"string" required:"true"`
  3965  
  3966  	// The buffering option.
  3967  	BufferingHints *BufferingHints `type:"structure"`
  3968  
  3969  	// The Amazon CloudWatch logging options for your delivery stream.
  3970  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  3971  
  3972  	// The compression format. If no value is specified, the default is UNCOMPRESSED.
  3973  	CompressionFormat *string `type:"string" enum:"CompressionFormat"`
  3974  
  3975  	// The serializer, deserializer, and schema for converting data from the JSON
  3976  	// format to the Parquet or ORC format before writing it to Amazon S3.
  3977  	DataFormatConversionConfiguration *DataFormatConversionConfiguration `type:"structure"`
  3978  
  3979  	// The configuration of the dynamic partitioning mechanism that creates smaller
  3980  	// data sets from the streaming data by partitioning it based on partition keys.
  3981  	// Currently, dynamic partitioning is only supported for Amazon S3 destinations.
  3982  	// For more information, see https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html
  3983  	// (https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html)
  3984  	DynamicPartitioningConfiguration *DynamicPartitioningConfiguration `type:"structure"`
  3985  
  3986  	// The encryption configuration. If no value is specified, the default is no
  3987  	// encryption.
  3988  	EncryptionConfiguration *EncryptionConfiguration `type:"structure"`
  3989  
  3990  	// A prefix that Kinesis Data Firehose evaluates and adds to failed records
  3991  	// before writing them to S3. This prefix appears immediately following the
  3992  	// bucket name. For information about how to specify this prefix, see Custom
  3993  	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
  3994  	ErrorOutputPrefix *string `type:"string"`
  3995  
  3996  	// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
  3997  	// Amazon S3 files. You can also specify a custom prefix, as described in Custom
  3998  	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
  3999  	Prefix *string `type:"string"`
  4000  
  4001  	// The data processing configuration.
  4002  	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
  4003  
  4004  	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
  4005  	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  4006  	//
  4007  	// RoleARN is a required field
  4008  	RoleARN *string `min:"1" type:"string" required:"true"`
  4009  
  4010  	// The configuration for backup in Amazon S3.
  4011  	S3BackupConfiguration *S3DestinationConfiguration `type:"structure"`
  4012  
  4013  	// The Amazon S3 backup mode. After you create a delivery stream, you can update
  4014  	// it to enable Amazon S3 backup if it is disabled. If backup is enabled, you
  4015  	// can't update the delivery stream to disable it.
  4016  	S3BackupMode *string `type:"string" enum:"S3BackupMode"`
  4017  }
  4018  
  4019  // String returns the string representation.
  4020  //
  4021  // API parameter values that are decorated as "sensitive" in the API will not
  4022  // be included in the string output. The member name will be present, but the
  4023  // value will be replaced with "sensitive".
  4024  func (s ExtendedS3DestinationConfiguration) String() string {
  4025  	return awsutil.Prettify(s)
  4026  }
  4027  
  4028  // GoString returns the string representation.
  4029  //
  4030  // API parameter values that are decorated as "sensitive" in the API will not
  4031  // be included in the string output. The member name will be present, but the
  4032  // value will be replaced with "sensitive".
  4033  func (s ExtendedS3DestinationConfiguration) GoString() string {
  4034  	return s.String()
  4035  }
  4036  
  4037  // Validate inspects the fields of the type to determine if they are valid.
  4038  func (s *ExtendedS3DestinationConfiguration) Validate() error {
  4039  	invalidParams := request.ErrInvalidParams{Context: "ExtendedS3DestinationConfiguration"}
  4040  	if s.BucketARN == nil {
  4041  		invalidParams.Add(request.NewErrParamRequired("BucketARN"))
  4042  	}
  4043  	if s.BucketARN != nil && len(*s.BucketARN) < 1 {
  4044  		invalidParams.Add(request.NewErrParamMinLen("BucketARN", 1))
  4045  	}
  4046  	if s.RoleARN == nil {
  4047  		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
  4048  	}
  4049  	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
  4050  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
  4051  	}
  4052  	if s.BufferingHints != nil {
  4053  		if err := s.BufferingHints.Validate(); err != nil {
  4054  			invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
  4055  		}
  4056  	}
  4057  	if s.DataFormatConversionConfiguration != nil {
  4058  		if err := s.DataFormatConversionConfiguration.Validate(); err != nil {
  4059  			invalidParams.AddNested("DataFormatConversionConfiguration", err.(request.ErrInvalidParams))
  4060  		}
  4061  	}
  4062  	if s.EncryptionConfiguration != nil {
  4063  		if err := s.EncryptionConfiguration.Validate(); err != nil {
  4064  			invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams))
  4065  		}
  4066  	}
  4067  	if s.ProcessingConfiguration != nil {
  4068  		if err := s.ProcessingConfiguration.Validate(); err != nil {
  4069  			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
  4070  		}
  4071  	}
  4072  	if s.S3BackupConfiguration != nil {
  4073  		if err := s.S3BackupConfiguration.Validate(); err != nil {
  4074  			invalidParams.AddNested("S3BackupConfiguration", err.(request.ErrInvalidParams))
  4075  		}
  4076  	}
  4077  
  4078  	if invalidParams.Len() > 0 {
  4079  		return invalidParams
  4080  	}
  4081  	return nil
  4082  }
  4083  
  4084  // SetBucketARN sets the BucketARN field's value.
  4085  func (s *ExtendedS3DestinationConfiguration) SetBucketARN(v string) *ExtendedS3DestinationConfiguration {
  4086  	s.BucketARN = &v
  4087  	return s
  4088  }
  4089  
  4090  // SetBufferingHints sets the BufferingHints field's value.
  4091  func (s *ExtendedS3DestinationConfiguration) SetBufferingHints(v *BufferingHints) *ExtendedS3DestinationConfiguration {
  4092  	s.BufferingHints = v
  4093  	return s
  4094  }
  4095  
  4096  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  4097  func (s *ExtendedS3DestinationConfiguration) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *ExtendedS3DestinationConfiguration {
  4098  	s.CloudWatchLoggingOptions = v
  4099  	return s
  4100  }
  4101  
  4102  // SetCompressionFormat sets the CompressionFormat field's value.
  4103  func (s *ExtendedS3DestinationConfiguration) SetCompressionFormat(v string) *ExtendedS3DestinationConfiguration {
  4104  	s.CompressionFormat = &v
  4105  	return s
  4106  }
  4107  
  4108  // SetDataFormatConversionConfiguration sets the DataFormatConversionConfiguration field's value.
  4109  func (s *ExtendedS3DestinationConfiguration) SetDataFormatConversionConfiguration(v *DataFormatConversionConfiguration) *ExtendedS3DestinationConfiguration {
  4110  	s.DataFormatConversionConfiguration = v
  4111  	return s
  4112  }
  4113  
  4114  // SetDynamicPartitioningConfiguration sets the DynamicPartitioningConfiguration field's value.
  4115  func (s *ExtendedS3DestinationConfiguration) SetDynamicPartitioningConfiguration(v *DynamicPartitioningConfiguration) *ExtendedS3DestinationConfiguration {
  4116  	s.DynamicPartitioningConfiguration = v
  4117  	return s
  4118  }
  4119  
  4120  // SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
  4121  func (s *ExtendedS3DestinationConfiguration) SetEncryptionConfiguration(v *EncryptionConfiguration) *ExtendedS3DestinationConfiguration {
  4122  	s.EncryptionConfiguration = v
  4123  	return s
  4124  }
  4125  
  4126  // SetErrorOutputPrefix sets the ErrorOutputPrefix field's value.
  4127  func (s *ExtendedS3DestinationConfiguration) SetErrorOutputPrefix(v string) *ExtendedS3DestinationConfiguration {
  4128  	s.ErrorOutputPrefix = &v
  4129  	return s
  4130  }
  4131  
  4132  // SetPrefix sets the Prefix field's value.
  4133  func (s *ExtendedS3DestinationConfiguration) SetPrefix(v string) *ExtendedS3DestinationConfiguration {
  4134  	s.Prefix = &v
  4135  	return s
  4136  }
  4137  
  4138  // SetProcessingConfiguration sets the ProcessingConfiguration field's value.
  4139  func (s *ExtendedS3DestinationConfiguration) SetProcessingConfiguration(v *ProcessingConfiguration) *ExtendedS3DestinationConfiguration {
  4140  	s.ProcessingConfiguration = v
  4141  	return s
  4142  }
  4143  
  4144  // SetRoleARN sets the RoleARN field's value.
  4145  func (s *ExtendedS3DestinationConfiguration) SetRoleARN(v string) *ExtendedS3DestinationConfiguration {
  4146  	s.RoleARN = &v
  4147  	return s
  4148  }
  4149  
  4150  // SetS3BackupConfiguration sets the S3BackupConfiguration field's value.
  4151  func (s *ExtendedS3DestinationConfiguration) SetS3BackupConfiguration(v *S3DestinationConfiguration) *ExtendedS3DestinationConfiguration {
  4152  	s.S3BackupConfiguration = v
  4153  	return s
  4154  }
  4155  
  4156  // SetS3BackupMode sets the S3BackupMode field's value.
  4157  func (s *ExtendedS3DestinationConfiguration) SetS3BackupMode(v string) *ExtendedS3DestinationConfiguration {
  4158  	s.S3BackupMode = &v
  4159  	return s
  4160  }
  4161  
  4162  // Describes a destination in Amazon S3.
  4163  type ExtendedS3DestinationDescription struct {
  4164  	_ struct{} `type:"structure"`
  4165  
  4166  	// The ARN of the S3 bucket. For more information, see Amazon Resource Names
  4167  	// (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  4168  	//
  4169  	// BucketARN is a required field
  4170  	BucketARN *string `min:"1" type:"string" required:"true"`
  4171  
  4172  	// The buffering option.
  4173  	//
  4174  	// BufferingHints is a required field
  4175  	BufferingHints *BufferingHints `type:"structure" required:"true"`
  4176  
  4177  	// The Amazon CloudWatch logging options for your delivery stream.
  4178  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  4179  
  4180  	// The compression format. If no value is specified, the default is UNCOMPRESSED.
  4181  	//
  4182  	// CompressionFormat is a required field
  4183  	CompressionFormat *string `type:"string" required:"true" enum:"CompressionFormat"`
  4184  
  4185  	// The serializer, deserializer, and schema for converting data from the JSON
  4186  	// format to the Parquet or ORC format before writing it to Amazon S3.
  4187  	DataFormatConversionConfiguration *DataFormatConversionConfiguration `type:"structure"`
  4188  
  4189  	// The configuration of the dynamic partitioning mechanism that creates smaller
  4190  	// data sets from the streaming data by partitioning it based on partition keys.
  4191  	// Currently, dynamic partitioning is only supported for Amazon S3 destinations.
  4192  	// For more information, see https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html
  4193  	// (https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html)
  4194  	DynamicPartitioningConfiguration *DynamicPartitioningConfiguration `type:"structure"`
  4195  
  4196  	// The encryption configuration. If no value is specified, the default is no
  4197  	// encryption.
  4198  	//
  4199  	// EncryptionConfiguration is a required field
  4200  	EncryptionConfiguration *EncryptionConfiguration `type:"structure" required:"true"`
  4201  
  4202  	// A prefix that Kinesis Data Firehose evaluates and adds to failed records
  4203  	// before writing them to S3. This prefix appears immediately following the
  4204  	// bucket name. For information about how to specify this prefix, see Custom
  4205  	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
  4206  	ErrorOutputPrefix *string `type:"string"`
  4207  
  4208  	// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
  4209  	// Amazon S3 files. You can also specify a custom prefix, as described in Custom
  4210  	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
  4211  	Prefix *string `type:"string"`
  4212  
  4213  	// The data processing configuration.
  4214  	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
  4215  
  4216  	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
  4217  	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  4218  	//
  4219  	// RoleARN is a required field
  4220  	RoleARN *string `min:"1" type:"string" required:"true"`
  4221  
  4222  	// The configuration for backup in Amazon S3.
  4223  	S3BackupDescription *S3DestinationDescription `type:"structure"`
  4224  
  4225  	// The Amazon S3 backup mode.
  4226  	S3BackupMode *string `type:"string" enum:"S3BackupMode"`
  4227  }
  4228  
  4229  // String returns the string representation.
  4230  //
  4231  // API parameter values that are decorated as "sensitive" in the API will not
  4232  // be included in the string output. The member name will be present, but the
  4233  // value will be replaced with "sensitive".
  4234  func (s ExtendedS3DestinationDescription) String() string {
  4235  	return awsutil.Prettify(s)
  4236  }
  4237  
  4238  // GoString returns the string representation.
  4239  //
  4240  // API parameter values that are decorated as "sensitive" in the API will not
  4241  // be included in the string output. The member name will be present, but the
  4242  // value will be replaced with "sensitive".
  4243  func (s ExtendedS3DestinationDescription) GoString() string {
  4244  	return s.String()
  4245  }
  4246  
  4247  // SetBucketARN sets the BucketARN field's value.
  4248  func (s *ExtendedS3DestinationDescription) SetBucketARN(v string) *ExtendedS3DestinationDescription {
  4249  	s.BucketARN = &v
  4250  	return s
  4251  }
  4252  
  4253  // SetBufferingHints sets the BufferingHints field's value.
  4254  func (s *ExtendedS3DestinationDescription) SetBufferingHints(v *BufferingHints) *ExtendedS3DestinationDescription {
  4255  	s.BufferingHints = v
  4256  	return s
  4257  }
  4258  
  4259  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  4260  func (s *ExtendedS3DestinationDescription) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *ExtendedS3DestinationDescription {
  4261  	s.CloudWatchLoggingOptions = v
  4262  	return s
  4263  }
  4264  
  4265  // SetCompressionFormat sets the CompressionFormat field's value.
  4266  func (s *ExtendedS3DestinationDescription) SetCompressionFormat(v string) *ExtendedS3DestinationDescription {
  4267  	s.CompressionFormat = &v
  4268  	return s
  4269  }
  4270  
  4271  // SetDataFormatConversionConfiguration sets the DataFormatConversionConfiguration field's value.
  4272  func (s *ExtendedS3DestinationDescription) SetDataFormatConversionConfiguration(v *DataFormatConversionConfiguration) *ExtendedS3DestinationDescription {
  4273  	s.DataFormatConversionConfiguration = v
  4274  	return s
  4275  }
  4276  
  4277  // SetDynamicPartitioningConfiguration sets the DynamicPartitioningConfiguration field's value.
  4278  func (s *ExtendedS3DestinationDescription) SetDynamicPartitioningConfiguration(v *DynamicPartitioningConfiguration) *ExtendedS3DestinationDescription {
  4279  	s.DynamicPartitioningConfiguration = v
  4280  	return s
  4281  }
  4282  
  4283  // SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
  4284  func (s *ExtendedS3DestinationDescription) SetEncryptionConfiguration(v *EncryptionConfiguration) *ExtendedS3DestinationDescription {
  4285  	s.EncryptionConfiguration = v
  4286  	return s
  4287  }
  4288  
  4289  // SetErrorOutputPrefix sets the ErrorOutputPrefix field's value.
  4290  func (s *ExtendedS3DestinationDescription) SetErrorOutputPrefix(v string) *ExtendedS3DestinationDescription {
  4291  	s.ErrorOutputPrefix = &v
  4292  	return s
  4293  }
  4294  
  4295  // SetPrefix sets the Prefix field's value.
  4296  func (s *ExtendedS3DestinationDescription) SetPrefix(v string) *ExtendedS3DestinationDescription {
  4297  	s.Prefix = &v
  4298  	return s
  4299  }
  4300  
  4301  // SetProcessingConfiguration sets the ProcessingConfiguration field's value.
  4302  func (s *ExtendedS3DestinationDescription) SetProcessingConfiguration(v *ProcessingConfiguration) *ExtendedS3DestinationDescription {
  4303  	s.ProcessingConfiguration = v
  4304  	return s
  4305  }
  4306  
  4307  // SetRoleARN sets the RoleARN field's value.
  4308  func (s *ExtendedS3DestinationDescription) SetRoleARN(v string) *ExtendedS3DestinationDescription {
  4309  	s.RoleARN = &v
  4310  	return s
  4311  }
  4312  
  4313  // SetS3BackupDescription sets the S3BackupDescription field's value.
  4314  func (s *ExtendedS3DestinationDescription) SetS3BackupDescription(v *S3DestinationDescription) *ExtendedS3DestinationDescription {
  4315  	s.S3BackupDescription = v
  4316  	return s
  4317  }
  4318  
  4319  // SetS3BackupMode sets the S3BackupMode field's value.
  4320  func (s *ExtendedS3DestinationDescription) SetS3BackupMode(v string) *ExtendedS3DestinationDescription {
  4321  	s.S3BackupMode = &v
  4322  	return s
  4323  }
  4324  
  4325  // Describes an update for a destination in Amazon S3.
  4326  type ExtendedS3DestinationUpdate struct {
  4327  	_ struct{} `type:"structure"`
  4328  
  4329  	// The ARN of the S3 bucket. For more information, see Amazon Resource Names
  4330  	// (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  4331  	BucketARN *string `min:"1" type:"string"`
  4332  
  4333  	// The buffering option.
  4334  	BufferingHints *BufferingHints `type:"structure"`
  4335  
  4336  	// The Amazon CloudWatch logging options for your delivery stream.
  4337  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  4338  
  4339  	// The compression format. If no value is specified, the default is UNCOMPRESSED.
  4340  	CompressionFormat *string `type:"string" enum:"CompressionFormat"`
  4341  
  4342  	// The serializer, deserializer, and schema for converting data from the JSON
  4343  	// format to the Parquet or ORC format before writing it to Amazon S3.
  4344  	DataFormatConversionConfiguration *DataFormatConversionConfiguration `type:"structure"`
  4345  
  4346  	// The configuration of the dynamic partitioning mechanism that creates smaller
  4347  	// data sets from the streaming data by partitioning it based on partition keys.
  4348  	// Currently, dynamic partitioning is only supported for Amazon S3 destinations.
  4349  	// For more information, see https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html
  4350  	// (https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html)
  4351  	DynamicPartitioningConfiguration *DynamicPartitioningConfiguration `type:"structure"`
  4352  
  4353  	// The encryption configuration. If no value is specified, the default is no
  4354  	// encryption.
  4355  	EncryptionConfiguration *EncryptionConfiguration `type:"structure"`
  4356  
  4357  	// A prefix that Kinesis Data Firehose evaluates and adds to failed records
  4358  	// before writing them to S3. This prefix appears immediately following the
  4359  	// bucket name. For information about how to specify this prefix, see Custom
  4360  	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
  4361  	ErrorOutputPrefix *string `type:"string"`
  4362  
  4363  	// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
  4364  	// Amazon S3 files. You can also specify a custom prefix, as described in Custom
  4365  	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
  4366  	Prefix *string `type:"string"`
  4367  
  4368  	// The data processing configuration.
  4369  	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
  4370  
  4371  	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
  4372  	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  4373  	RoleARN *string `min:"1" type:"string"`
  4374  
  4375  	// You can update a delivery stream to enable Amazon S3 backup if it is disabled.
  4376  	// If backup is enabled, you can't update the delivery stream to disable it.
  4377  	S3BackupMode *string `type:"string" enum:"S3BackupMode"`
  4378  
  4379  	// The Amazon S3 destination for backup.
  4380  	S3BackupUpdate *S3DestinationUpdate `type:"structure"`
  4381  }
  4382  
  4383  // String returns the string representation.
  4384  //
  4385  // API parameter values that are decorated as "sensitive" in the API will not
  4386  // be included in the string output. The member name will be present, but the
  4387  // value will be replaced with "sensitive".
  4388  func (s ExtendedS3DestinationUpdate) String() string {
  4389  	return awsutil.Prettify(s)
  4390  }
  4391  
  4392  // GoString returns the string representation.
  4393  //
  4394  // API parameter values that are decorated as "sensitive" in the API will not
  4395  // be included in the string output. The member name will be present, but the
  4396  // value will be replaced with "sensitive".
  4397  func (s ExtendedS3DestinationUpdate) GoString() string {
  4398  	return s.String()
  4399  }
  4400  
  4401  // Validate inspects the fields of the type to determine if they are valid.
  4402  func (s *ExtendedS3DestinationUpdate) Validate() error {
  4403  	invalidParams := request.ErrInvalidParams{Context: "ExtendedS3DestinationUpdate"}
  4404  	if s.BucketARN != nil && len(*s.BucketARN) < 1 {
  4405  		invalidParams.Add(request.NewErrParamMinLen("BucketARN", 1))
  4406  	}
  4407  	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
  4408  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
  4409  	}
  4410  	if s.BufferingHints != nil {
  4411  		if err := s.BufferingHints.Validate(); err != nil {
  4412  			invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
  4413  		}
  4414  	}
  4415  	if s.DataFormatConversionConfiguration != nil {
  4416  		if err := s.DataFormatConversionConfiguration.Validate(); err != nil {
  4417  			invalidParams.AddNested("DataFormatConversionConfiguration", err.(request.ErrInvalidParams))
  4418  		}
  4419  	}
  4420  	if s.EncryptionConfiguration != nil {
  4421  		if err := s.EncryptionConfiguration.Validate(); err != nil {
  4422  			invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams))
  4423  		}
  4424  	}
  4425  	if s.ProcessingConfiguration != nil {
  4426  		if err := s.ProcessingConfiguration.Validate(); err != nil {
  4427  			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
  4428  		}
  4429  	}
  4430  	if s.S3BackupUpdate != nil {
  4431  		if err := s.S3BackupUpdate.Validate(); err != nil {
  4432  			invalidParams.AddNested("S3BackupUpdate", err.(request.ErrInvalidParams))
  4433  		}
  4434  	}
  4435  
  4436  	if invalidParams.Len() > 0 {
  4437  		return invalidParams
  4438  	}
  4439  	return nil
  4440  }
  4441  
  4442  // SetBucketARN sets the BucketARN field's value.
  4443  func (s *ExtendedS3DestinationUpdate) SetBucketARN(v string) *ExtendedS3DestinationUpdate {
  4444  	s.BucketARN = &v
  4445  	return s
  4446  }
  4447  
  4448  // SetBufferingHints sets the BufferingHints field's value.
  4449  func (s *ExtendedS3DestinationUpdate) SetBufferingHints(v *BufferingHints) *ExtendedS3DestinationUpdate {
  4450  	s.BufferingHints = v
  4451  	return s
  4452  }
  4453  
  4454  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  4455  func (s *ExtendedS3DestinationUpdate) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *ExtendedS3DestinationUpdate {
  4456  	s.CloudWatchLoggingOptions = v
  4457  	return s
  4458  }
  4459  
  4460  // SetCompressionFormat sets the CompressionFormat field's value.
  4461  func (s *ExtendedS3DestinationUpdate) SetCompressionFormat(v string) *ExtendedS3DestinationUpdate {
  4462  	s.CompressionFormat = &v
  4463  	return s
  4464  }
  4465  
  4466  // SetDataFormatConversionConfiguration sets the DataFormatConversionConfiguration field's value.
  4467  func (s *ExtendedS3DestinationUpdate) SetDataFormatConversionConfiguration(v *DataFormatConversionConfiguration) *ExtendedS3DestinationUpdate {
  4468  	s.DataFormatConversionConfiguration = v
  4469  	return s
  4470  }
  4471  
  4472  // SetDynamicPartitioningConfiguration sets the DynamicPartitioningConfiguration field's value.
  4473  func (s *ExtendedS3DestinationUpdate) SetDynamicPartitioningConfiguration(v *DynamicPartitioningConfiguration) *ExtendedS3DestinationUpdate {
  4474  	s.DynamicPartitioningConfiguration = v
  4475  	return s
  4476  }
  4477  
  4478  // SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
  4479  func (s *ExtendedS3DestinationUpdate) SetEncryptionConfiguration(v *EncryptionConfiguration) *ExtendedS3DestinationUpdate {
  4480  	s.EncryptionConfiguration = v
  4481  	return s
  4482  }
  4483  
  4484  // SetErrorOutputPrefix sets the ErrorOutputPrefix field's value.
  4485  func (s *ExtendedS3DestinationUpdate) SetErrorOutputPrefix(v string) *ExtendedS3DestinationUpdate {
  4486  	s.ErrorOutputPrefix = &v
  4487  	return s
  4488  }
  4489  
  4490  // SetPrefix sets the Prefix field's value.
  4491  func (s *ExtendedS3DestinationUpdate) SetPrefix(v string) *ExtendedS3DestinationUpdate {
  4492  	s.Prefix = &v
  4493  	return s
  4494  }
  4495  
  4496  // SetProcessingConfiguration sets the ProcessingConfiguration field's value.
  4497  func (s *ExtendedS3DestinationUpdate) SetProcessingConfiguration(v *ProcessingConfiguration) *ExtendedS3DestinationUpdate {
  4498  	s.ProcessingConfiguration = v
  4499  	return s
  4500  }
  4501  
  4502  // SetRoleARN sets the RoleARN field's value.
  4503  func (s *ExtendedS3DestinationUpdate) SetRoleARN(v string) *ExtendedS3DestinationUpdate {
  4504  	s.RoleARN = &v
  4505  	return s
  4506  }
  4507  
  4508  // SetS3BackupMode sets the S3BackupMode field's value.
  4509  func (s *ExtendedS3DestinationUpdate) SetS3BackupMode(v string) *ExtendedS3DestinationUpdate {
  4510  	s.S3BackupMode = &v
  4511  	return s
  4512  }
  4513  
  4514  // SetS3BackupUpdate sets the S3BackupUpdate field's value.
  4515  func (s *ExtendedS3DestinationUpdate) SetS3BackupUpdate(v *S3DestinationUpdate) *ExtendedS3DestinationUpdate {
  4516  	s.S3BackupUpdate = v
  4517  	return s
  4518  }
  4519  
  4520  // Provides details in case one of the following operations fails due to an
  4521  // error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, StartDeliveryStreamEncryption,
  4522  // StopDeliveryStreamEncryption.
  4523  type FailureDescription struct {
  4524  	_ struct{} `type:"structure"`
  4525  
  4526  	// A message providing details about the error that caused the failure.
  4527  	//
  4528  	// Details is a required field
  4529  	Details *string `min:"1" type:"string" required:"true"`
  4530  
  4531  	// The type of error that caused the failure.
  4532  	//
  4533  	// Type is a required field
  4534  	Type *string `type:"string" required:"true" enum:"DeliveryStreamFailureType"`
  4535  }
  4536  
  4537  // String returns the string representation.
  4538  //
  4539  // API parameter values that are decorated as "sensitive" in the API will not
  4540  // be included in the string output. The member name will be present, but the
  4541  // value will be replaced with "sensitive".
  4542  func (s FailureDescription) String() string {
  4543  	return awsutil.Prettify(s)
  4544  }
  4545  
  4546  // GoString returns the string representation.
  4547  //
  4548  // API parameter values that are decorated as "sensitive" in the API will not
  4549  // be included in the string output. The member name will be present, but the
  4550  // value will be replaced with "sensitive".
  4551  func (s FailureDescription) GoString() string {
  4552  	return s.String()
  4553  }
  4554  
  4555  // SetDetails sets the Details field's value.
  4556  func (s *FailureDescription) SetDetails(v string) *FailureDescription {
  4557  	s.Details = &v
  4558  	return s
  4559  }
  4560  
  4561  // SetType sets the Type field's value.
  4562  func (s *FailureDescription) SetType(v string) *FailureDescription {
  4563  	s.Type = &v
  4564  	return s
  4565  }
  4566  
  4567  // The native Hive / HCatalog JsonSerDe. Used by Kinesis Data Firehose for deserializing
  4568  // data, which means converting it from the JSON format in preparation for serializing
  4569  // it to the Parquet or ORC format. This is one of two deserializers you can
  4570  // choose, depending on which one offers the functionality you need. The other
  4571  // option is the OpenX SerDe.
  4572  type HiveJsonSerDe struct {
  4573  	_ struct{} `type:"structure"`
  4574  
  4575  	// Indicates how you want Kinesis Data Firehose to parse the date and timestamps
  4576  	// that may be present in your input data JSON. To specify these format strings,
  4577  	// follow the pattern syntax of JodaTime's DateTimeFormat format strings. For
  4578  	// more information, see Class DateTimeFormat (https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html).
  4579  	// You can also use the special value millis to parse timestamps in epoch milliseconds.
  4580  	// If you don't specify a format, Kinesis Data Firehose uses java.sql.Timestamp::valueOf
  4581  	// by default.
  4582  	TimestampFormats []*string `type:"list"`
  4583  }
  4584  
  4585  // String returns the string representation.
  4586  //
  4587  // API parameter values that are decorated as "sensitive" in the API will not
  4588  // be included in the string output. The member name will be present, but the
  4589  // value will be replaced with "sensitive".
  4590  func (s HiveJsonSerDe) String() string {
  4591  	return awsutil.Prettify(s)
  4592  }
  4593  
  4594  // GoString returns the string representation.
  4595  //
  4596  // API parameter values that are decorated as "sensitive" in the API will not
  4597  // be included in the string output. The member name will be present, but the
  4598  // value will be replaced with "sensitive".
  4599  func (s HiveJsonSerDe) GoString() string {
  4600  	return s.String()
  4601  }
  4602  
  4603  // SetTimestampFormats sets the TimestampFormats field's value.
  4604  func (s *HiveJsonSerDe) SetTimestampFormats(v []*string) *HiveJsonSerDe {
  4605  	s.TimestampFormats = v
  4606  	return s
  4607  }
  4608  
  4609  // Describes the buffering options that can be applied before data is delivered
  4610  // to the HTTP endpoint destination. Kinesis Data Firehose treats these options
  4611  // as hints, and it might choose to use more optimal values. The SizeInMBs and
  4612  // IntervalInSeconds parameters are optional. However, if specify a value for
  4613  // one of them, you must also provide a value for the other.
  4614  type HttpEndpointBufferingHints struct {
  4615  	_ struct{} `type:"structure"`
  4616  
  4617  	// Buffer incoming data for the specified period of time, in seconds, before
  4618  	// delivering it to the destination. The default value is 300 (5 minutes).
  4619  	IntervalInSeconds *int64 `min:"60" type:"integer"`
  4620  
  4621  	// Buffer incoming data to the specified size, in MBs, before delivering it
  4622  	// to the destination. The default value is 5.
  4623  	//
  4624  	// We recommend setting this parameter to a value greater than the amount of
  4625  	// data you typically ingest into the delivery stream in 10 seconds. For example,
  4626  	// if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher.
  4627  	SizeInMBs *int64 `min:"1" type:"integer"`
  4628  }
  4629  
  4630  // String returns the string representation.
  4631  //
  4632  // API parameter values that are decorated as "sensitive" in the API will not
  4633  // be included in the string output. The member name will be present, but the
  4634  // value will be replaced with "sensitive".
  4635  func (s HttpEndpointBufferingHints) String() string {
  4636  	return awsutil.Prettify(s)
  4637  }
  4638  
  4639  // GoString returns the string representation.
  4640  //
  4641  // API parameter values that are decorated as "sensitive" in the API will not
  4642  // be included in the string output. The member name will be present, but the
  4643  // value will be replaced with "sensitive".
  4644  func (s HttpEndpointBufferingHints) GoString() string {
  4645  	return s.String()
  4646  }
  4647  
  4648  // Validate inspects the fields of the type to determine if they are valid.
  4649  func (s *HttpEndpointBufferingHints) Validate() error {
  4650  	invalidParams := request.ErrInvalidParams{Context: "HttpEndpointBufferingHints"}
  4651  	if s.IntervalInSeconds != nil && *s.IntervalInSeconds < 60 {
  4652  		invalidParams.Add(request.NewErrParamMinValue("IntervalInSeconds", 60))
  4653  	}
  4654  	if s.SizeInMBs != nil && *s.SizeInMBs < 1 {
  4655  		invalidParams.Add(request.NewErrParamMinValue("SizeInMBs", 1))
  4656  	}
  4657  
  4658  	if invalidParams.Len() > 0 {
  4659  		return invalidParams
  4660  	}
  4661  	return nil
  4662  }
  4663  
  4664  // SetIntervalInSeconds sets the IntervalInSeconds field's value.
  4665  func (s *HttpEndpointBufferingHints) SetIntervalInSeconds(v int64) *HttpEndpointBufferingHints {
  4666  	s.IntervalInSeconds = &v
  4667  	return s
  4668  }
  4669  
  4670  // SetSizeInMBs sets the SizeInMBs field's value.
  4671  func (s *HttpEndpointBufferingHints) SetSizeInMBs(v int64) *HttpEndpointBufferingHints {
  4672  	s.SizeInMBs = &v
  4673  	return s
  4674  }
  4675  
  4676  // Describes the metadata that's delivered to the specified HTTP endpoint destination.
  4677  type HttpEndpointCommonAttribute struct {
  4678  	_ struct{} `type:"structure"`
  4679  
  4680  	// The name of the HTTP endpoint common attribute.
  4681  	//
  4682  	// AttributeName is a sensitive parameter and its value will be
  4683  	// replaced with "sensitive" in string returned by HttpEndpointCommonAttribute's
  4684  	// String and GoString methods.
  4685  	//
  4686  	// AttributeName is a required field
  4687  	AttributeName *string `min:"1" type:"string" required:"true" sensitive:"true"`
  4688  
  4689  	// The value of the HTTP endpoint common attribute.
  4690  	//
  4691  	// AttributeValue is a sensitive parameter and its value will be
  4692  	// replaced with "sensitive" in string returned by HttpEndpointCommonAttribute's
  4693  	// String and GoString methods.
  4694  	//
  4695  	// AttributeValue is a required field
  4696  	AttributeValue *string `type:"string" required:"true" sensitive:"true"`
  4697  }
  4698  
  4699  // String returns the string representation.
  4700  //
  4701  // API parameter values that are decorated as "sensitive" in the API will not
  4702  // be included in the string output. The member name will be present, but the
  4703  // value will be replaced with "sensitive".
  4704  func (s HttpEndpointCommonAttribute) String() string {
  4705  	return awsutil.Prettify(s)
  4706  }
  4707  
  4708  // GoString returns the string representation.
  4709  //
  4710  // API parameter values that are decorated as "sensitive" in the API will not
  4711  // be included in the string output. The member name will be present, but the
  4712  // value will be replaced with "sensitive".
  4713  func (s HttpEndpointCommonAttribute) GoString() string {
  4714  	return s.String()
  4715  }
  4716  
  4717  // Validate inspects the fields of the type to determine if they are valid.
  4718  func (s *HttpEndpointCommonAttribute) Validate() error {
  4719  	invalidParams := request.ErrInvalidParams{Context: "HttpEndpointCommonAttribute"}
  4720  	if s.AttributeName == nil {
  4721  		invalidParams.Add(request.NewErrParamRequired("AttributeName"))
  4722  	}
  4723  	if s.AttributeName != nil && len(*s.AttributeName) < 1 {
  4724  		invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1))
  4725  	}
  4726  	if s.AttributeValue == nil {
  4727  		invalidParams.Add(request.NewErrParamRequired("AttributeValue"))
  4728  	}
  4729  
  4730  	if invalidParams.Len() > 0 {
  4731  		return invalidParams
  4732  	}
  4733  	return nil
  4734  }
  4735  
  4736  // SetAttributeName sets the AttributeName field's value.
  4737  func (s *HttpEndpointCommonAttribute) SetAttributeName(v string) *HttpEndpointCommonAttribute {
  4738  	s.AttributeName = &v
  4739  	return s
  4740  }
  4741  
  4742  // SetAttributeValue sets the AttributeValue field's value.
  4743  func (s *HttpEndpointCommonAttribute) SetAttributeValue(v string) *HttpEndpointCommonAttribute {
  4744  	s.AttributeValue = &v
  4745  	return s
  4746  }
  4747  
  4748  // Describes the configuration of the HTTP endpoint to which Kinesis Firehose
  4749  // delivers data.
  4750  type HttpEndpointConfiguration struct {
  4751  	_ struct{} `type:"structure"`
  4752  
  4753  	// The access key required for Kinesis Firehose to authenticate with the HTTP
  4754  	// endpoint selected as the destination.
  4755  	//
  4756  	// AccessKey is a sensitive parameter and its value will be
  4757  	// replaced with "sensitive" in string returned by HttpEndpointConfiguration's
  4758  	// String and GoString methods.
  4759  	AccessKey *string `type:"string" sensitive:"true"`
  4760  
  4761  	// The name of the HTTP endpoint selected as the destination.
  4762  	Name *string `min:"1" type:"string"`
  4763  
  4764  	// The URL of the HTTP endpoint selected as the destination.
  4765  	//
  4766  	// If you choose an HTTP endpoint as your destination, review and follow the
  4767  	// instructions in the Appendix - HTTP Endpoint Delivery Request and Response
  4768  	// Specifications (https://docs.aws.amazon.com/firehose/latest/dev/httpdeliveryrequestresponse.html).
  4769  	//
  4770  	// Url is a sensitive parameter and its value will be
  4771  	// replaced with "sensitive" in string returned by HttpEndpointConfiguration's
  4772  	// String and GoString methods.
  4773  	//
  4774  	// Url is a required field
  4775  	Url *string `min:"1" type:"string" required:"true" sensitive:"true"`
  4776  }
  4777  
  4778  // String returns the string representation.
  4779  //
  4780  // API parameter values that are decorated as "sensitive" in the API will not
  4781  // be included in the string output. The member name will be present, but the
  4782  // value will be replaced with "sensitive".
  4783  func (s HttpEndpointConfiguration) String() string {
  4784  	return awsutil.Prettify(s)
  4785  }
  4786  
  4787  // GoString returns the string representation.
  4788  //
  4789  // API parameter values that are decorated as "sensitive" in the API will not
  4790  // be included in the string output. The member name will be present, but the
  4791  // value will be replaced with "sensitive".
  4792  func (s HttpEndpointConfiguration) GoString() string {
  4793  	return s.String()
  4794  }
  4795  
  4796  // Validate inspects the fields of the type to determine if they are valid.
  4797  func (s *HttpEndpointConfiguration) Validate() error {
  4798  	invalidParams := request.ErrInvalidParams{Context: "HttpEndpointConfiguration"}
  4799  	if s.Name != nil && len(*s.Name) < 1 {
  4800  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
  4801  	}
  4802  	if s.Url == nil {
  4803  		invalidParams.Add(request.NewErrParamRequired("Url"))
  4804  	}
  4805  	if s.Url != nil && len(*s.Url) < 1 {
  4806  		invalidParams.Add(request.NewErrParamMinLen("Url", 1))
  4807  	}
  4808  
  4809  	if invalidParams.Len() > 0 {
  4810  		return invalidParams
  4811  	}
  4812  	return nil
  4813  }
  4814  
  4815  // SetAccessKey sets the AccessKey field's value.
  4816  func (s *HttpEndpointConfiguration) SetAccessKey(v string) *HttpEndpointConfiguration {
  4817  	s.AccessKey = &v
  4818  	return s
  4819  }
  4820  
  4821  // SetName sets the Name field's value.
  4822  func (s *HttpEndpointConfiguration) SetName(v string) *HttpEndpointConfiguration {
  4823  	s.Name = &v
  4824  	return s
  4825  }
  4826  
  4827  // SetUrl sets the Url field's value.
  4828  func (s *HttpEndpointConfiguration) SetUrl(v string) *HttpEndpointConfiguration {
  4829  	s.Url = &v
  4830  	return s
  4831  }
  4832  
  4833  // Describes the HTTP endpoint selected as the destination.
  4834  type HttpEndpointDescription struct {
  4835  	_ struct{} `type:"structure"`
  4836  
  4837  	// The name of the HTTP endpoint selected as the destination.
  4838  	Name *string `min:"1" type:"string"`
  4839  
  4840  	// The URL of the HTTP endpoint selected as the destination.
  4841  	//
  4842  	// Url is a sensitive parameter and its value will be
  4843  	// replaced with "sensitive" in string returned by HttpEndpointDescription's
  4844  	// String and GoString methods.
  4845  	Url *string `min:"1" type:"string" sensitive:"true"`
  4846  }
  4847  
  4848  // String returns the string representation.
  4849  //
  4850  // API parameter values that are decorated as "sensitive" in the API will not
  4851  // be included in the string output. The member name will be present, but the
  4852  // value will be replaced with "sensitive".
  4853  func (s HttpEndpointDescription) String() string {
  4854  	return awsutil.Prettify(s)
  4855  }
  4856  
  4857  // GoString returns the string representation.
  4858  //
  4859  // API parameter values that are decorated as "sensitive" in the API will not
  4860  // be included in the string output. The member name will be present, but the
  4861  // value will be replaced with "sensitive".
  4862  func (s HttpEndpointDescription) GoString() string {
  4863  	return s.String()
  4864  }
  4865  
  4866  // SetName sets the Name field's value.
  4867  func (s *HttpEndpointDescription) SetName(v string) *HttpEndpointDescription {
  4868  	s.Name = &v
  4869  	return s
  4870  }
  4871  
  4872  // SetUrl sets the Url field's value.
  4873  func (s *HttpEndpointDescription) SetUrl(v string) *HttpEndpointDescription {
  4874  	s.Url = &v
  4875  	return s
  4876  }
  4877  
  4878  // Describes the configuration of the HTTP endpoint destination.
  4879  type HttpEndpointDestinationConfiguration struct {
  4880  	_ struct{} `type:"structure"`
  4881  
  4882  	// The buffering options that can be used before data is delivered to the specified
  4883  	// destination. Kinesis Data Firehose treats these options as hints, and it
  4884  	// might choose to use more optimal values. The SizeInMBs and IntervalInSeconds
  4885  	// parameters are optional. However, if you specify a value for one of them,
  4886  	// you must also provide a value for the other.
  4887  	BufferingHints *HttpEndpointBufferingHints `type:"structure"`
  4888  
  4889  	// Describes the Amazon CloudWatch logging options for your delivery stream.
  4890  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  4891  
  4892  	// The configuration of the HTTP endpoint selected as the destination.
  4893  	//
  4894  	// EndpointConfiguration is a required field
  4895  	EndpointConfiguration *HttpEndpointConfiguration `type:"structure" required:"true"`
  4896  
  4897  	// Describes a data processing configuration.
  4898  	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
  4899  
  4900  	// The configuration of the requeste sent to the HTTP endpoint specified as
  4901  	// the destination.
  4902  	RequestConfiguration *HttpEndpointRequestConfiguration `type:"structure"`
  4903  
  4904  	// Describes the retry behavior in case Kinesis Data Firehose is unable to deliver
  4905  	// data to the specified HTTP endpoint destination, or if it doesn't receive
  4906  	// a valid acknowledgment of receipt from the specified HTTP endpoint destination.
  4907  	RetryOptions *HttpEndpointRetryOptions `type:"structure"`
  4908  
  4909  	// Kinesis Data Firehose uses this IAM role for all the permissions that the
  4910  	// delivery stream needs.
  4911  	RoleARN *string `min:"1" type:"string"`
  4912  
  4913  	// Describes the S3 bucket backup options for the data that Kinesis Data Firehose
  4914  	// delivers to the HTTP endpoint destination. You can back up all documents
  4915  	// (AllData) or only the documents that Kinesis Data Firehose could not deliver
  4916  	// to the specified HTTP endpoint destination (FailedDataOnly).
  4917  	S3BackupMode *string `type:"string" enum:"HttpEndpointS3BackupMode"`
  4918  
  4919  	// Describes the configuration of a destination in Amazon S3.
  4920  	//
  4921  	// S3Configuration is a required field
  4922  	S3Configuration *S3DestinationConfiguration `type:"structure" required:"true"`
  4923  }
  4924  
  4925  // String returns the string representation.
  4926  //
  4927  // API parameter values that are decorated as "sensitive" in the API will not
  4928  // be included in the string output. The member name will be present, but the
  4929  // value will be replaced with "sensitive".
  4930  func (s HttpEndpointDestinationConfiguration) String() string {
  4931  	return awsutil.Prettify(s)
  4932  }
  4933  
  4934  // GoString returns the string representation.
  4935  //
  4936  // API parameter values that are decorated as "sensitive" in the API will not
  4937  // be included in the string output. The member name will be present, but the
  4938  // value will be replaced with "sensitive".
  4939  func (s HttpEndpointDestinationConfiguration) GoString() string {
  4940  	return s.String()
  4941  }
  4942  
  4943  // Validate inspects the fields of the type to determine if they are valid.
  4944  func (s *HttpEndpointDestinationConfiguration) Validate() error {
  4945  	invalidParams := request.ErrInvalidParams{Context: "HttpEndpointDestinationConfiguration"}
  4946  	if s.EndpointConfiguration == nil {
  4947  		invalidParams.Add(request.NewErrParamRequired("EndpointConfiguration"))
  4948  	}
  4949  	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
  4950  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
  4951  	}
  4952  	if s.S3Configuration == nil {
  4953  		invalidParams.Add(request.NewErrParamRequired("S3Configuration"))
  4954  	}
  4955  	if s.BufferingHints != nil {
  4956  		if err := s.BufferingHints.Validate(); err != nil {
  4957  			invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
  4958  		}
  4959  	}
  4960  	if s.EndpointConfiguration != nil {
  4961  		if err := s.EndpointConfiguration.Validate(); err != nil {
  4962  			invalidParams.AddNested("EndpointConfiguration", err.(request.ErrInvalidParams))
  4963  		}
  4964  	}
  4965  	if s.ProcessingConfiguration != nil {
  4966  		if err := s.ProcessingConfiguration.Validate(); err != nil {
  4967  			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
  4968  		}
  4969  	}
  4970  	if s.RequestConfiguration != nil {
  4971  		if err := s.RequestConfiguration.Validate(); err != nil {
  4972  			invalidParams.AddNested("RequestConfiguration", err.(request.ErrInvalidParams))
  4973  		}
  4974  	}
  4975  	if s.S3Configuration != nil {
  4976  		if err := s.S3Configuration.Validate(); err != nil {
  4977  			invalidParams.AddNested("S3Configuration", err.(request.ErrInvalidParams))
  4978  		}
  4979  	}
  4980  
  4981  	if invalidParams.Len() > 0 {
  4982  		return invalidParams
  4983  	}
  4984  	return nil
  4985  }
  4986  
  4987  // SetBufferingHints sets the BufferingHints field's value.
  4988  func (s *HttpEndpointDestinationConfiguration) SetBufferingHints(v *HttpEndpointBufferingHints) *HttpEndpointDestinationConfiguration {
  4989  	s.BufferingHints = v
  4990  	return s
  4991  }
  4992  
  4993  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  4994  func (s *HttpEndpointDestinationConfiguration) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *HttpEndpointDestinationConfiguration {
  4995  	s.CloudWatchLoggingOptions = v
  4996  	return s
  4997  }
  4998  
  4999  // SetEndpointConfiguration sets the EndpointConfiguration field's value.
  5000  func (s *HttpEndpointDestinationConfiguration) SetEndpointConfiguration(v *HttpEndpointConfiguration) *HttpEndpointDestinationConfiguration {
  5001  	s.EndpointConfiguration = v
  5002  	return s
  5003  }
  5004  
  5005  // SetProcessingConfiguration sets the ProcessingConfiguration field's value.
  5006  func (s *HttpEndpointDestinationConfiguration) SetProcessingConfiguration(v *ProcessingConfiguration) *HttpEndpointDestinationConfiguration {
  5007  	s.ProcessingConfiguration = v
  5008  	return s
  5009  }
  5010  
  5011  // SetRequestConfiguration sets the RequestConfiguration field's value.
  5012  func (s *HttpEndpointDestinationConfiguration) SetRequestConfiguration(v *HttpEndpointRequestConfiguration) *HttpEndpointDestinationConfiguration {
  5013  	s.RequestConfiguration = v
  5014  	return s
  5015  }
  5016  
  5017  // SetRetryOptions sets the RetryOptions field's value.
  5018  func (s *HttpEndpointDestinationConfiguration) SetRetryOptions(v *HttpEndpointRetryOptions) *HttpEndpointDestinationConfiguration {
  5019  	s.RetryOptions = v
  5020  	return s
  5021  }
  5022  
  5023  // SetRoleARN sets the RoleARN field's value.
  5024  func (s *HttpEndpointDestinationConfiguration) SetRoleARN(v string) *HttpEndpointDestinationConfiguration {
  5025  	s.RoleARN = &v
  5026  	return s
  5027  }
  5028  
  5029  // SetS3BackupMode sets the S3BackupMode field's value.
  5030  func (s *HttpEndpointDestinationConfiguration) SetS3BackupMode(v string) *HttpEndpointDestinationConfiguration {
  5031  	s.S3BackupMode = &v
  5032  	return s
  5033  }
  5034  
  5035  // SetS3Configuration sets the S3Configuration field's value.
  5036  func (s *HttpEndpointDestinationConfiguration) SetS3Configuration(v *S3DestinationConfiguration) *HttpEndpointDestinationConfiguration {
  5037  	s.S3Configuration = v
  5038  	return s
  5039  }
  5040  
  5041  // Describes the HTTP endpoint destination.
  5042  type HttpEndpointDestinationDescription struct {
  5043  	_ struct{} `type:"structure"`
  5044  
  5045  	// Describes buffering options that can be applied to the data before it is
  5046  	// delivered to the HTTPS endpoint destination. Kinesis Data Firehose teats
  5047  	// these options as hints, and it might choose to use more optimal values. The
  5048  	// SizeInMBs and IntervalInSeconds parameters are optional. However, if specify
  5049  	// a value for one of them, you must also provide a value for the other.
  5050  	BufferingHints *HttpEndpointBufferingHints `type:"structure"`
  5051  
  5052  	// Describes the Amazon CloudWatch logging options for your delivery stream.
  5053  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  5054  
  5055  	// The configuration of the specified HTTP endpoint destination.
  5056  	EndpointConfiguration *HttpEndpointDescription `type:"structure"`
  5057  
  5058  	// Describes a data processing configuration.
  5059  	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
  5060  
  5061  	// The configuration of request sent to the HTTP endpoint specified as the destination.
  5062  	RequestConfiguration *HttpEndpointRequestConfiguration `type:"structure"`
  5063  
  5064  	// Describes the retry behavior in case Kinesis Data Firehose is unable to deliver
  5065  	// data to the specified HTTP endpoint destination, or if it doesn't receive
  5066  	// a valid acknowledgment of receipt from the specified HTTP endpoint destination.
  5067  	RetryOptions *HttpEndpointRetryOptions `type:"structure"`
  5068  
  5069  	// Kinesis Data Firehose uses this IAM role for all the permissions that the
  5070  	// delivery stream needs.
  5071  	RoleARN *string `min:"1" type:"string"`
  5072  
  5073  	// Describes the S3 bucket backup options for the data that Kinesis Firehose
  5074  	// delivers to the HTTP endpoint destination. You can back up all documents
  5075  	// (AllData) or only the documents that Kinesis Data Firehose could not deliver
  5076  	// to the specified HTTP endpoint destination (FailedDataOnly).
  5077  	S3BackupMode *string `type:"string" enum:"HttpEndpointS3BackupMode"`
  5078  
  5079  	// Describes a destination in Amazon S3.
  5080  	S3DestinationDescription *S3DestinationDescription `type:"structure"`
  5081  }
  5082  
  5083  // String returns the string representation.
  5084  //
  5085  // API parameter values that are decorated as "sensitive" in the API will not
  5086  // be included in the string output. The member name will be present, but the
  5087  // value will be replaced with "sensitive".
  5088  func (s HttpEndpointDestinationDescription) String() string {
  5089  	return awsutil.Prettify(s)
  5090  }
  5091  
  5092  // GoString returns the string representation.
  5093  //
  5094  // API parameter values that are decorated as "sensitive" in the API will not
  5095  // be included in the string output. The member name will be present, but the
  5096  // value will be replaced with "sensitive".
  5097  func (s HttpEndpointDestinationDescription) GoString() string {
  5098  	return s.String()
  5099  }
  5100  
  5101  // SetBufferingHints sets the BufferingHints field's value.
  5102  func (s *HttpEndpointDestinationDescription) SetBufferingHints(v *HttpEndpointBufferingHints) *HttpEndpointDestinationDescription {
  5103  	s.BufferingHints = v
  5104  	return s
  5105  }
  5106  
  5107  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  5108  func (s *HttpEndpointDestinationDescription) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *HttpEndpointDestinationDescription {
  5109  	s.CloudWatchLoggingOptions = v
  5110  	return s
  5111  }
  5112  
  5113  // SetEndpointConfiguration sets the EndpointConfiguration field's value.
  5114  func (s *HttpEndpointDestinationDescription) SetEndpointConfiguration(v *HttpEndpointDescription) *HttpEndpointDestinationDescription {
  5115  	s.EndpointConfiguration = v
  5116  	return s
  5117  }
  5118  
  5119  // SetProcessingConfiguration sets the ProcessingConfiguration field's value.
  5120  func (s *HttpEndpointDestinationDescription) SetProcessingConfiguration(v *ProcessingConfiguration) *HttpEndpointDestinationDescription {
  5121  	s.ProcessingConfiguration = v
  5122  	return s
  5123  }
  5124  
  5125  // SetRequestConfiguration sets the RequestConfiguration field's value.
  5126  func (s *HttpEndpointDestinationDescription) SetRequestConfiguration(v *HttpEndpointRequestConfiguration) *HttpEndpointDestinationDescription {
  5127  	s.RequestConfiguration = v
  5128  	return s
  5129  }
  5130  
  5131  // SetRetryOptions sets the RetryOptions field's value.
  5132  func (s *HttpEndpointDestinationDescription) SetRetryOptions(v *HttpEndpointRetryOptions) *HttpEndpointDestinationDescription {
  5133  	s.RetryOptions = v
  5134  	return s
  5135  }
  5136  
  5137  // SetRoleARN sets the RoleARN field's value.
  5138  func (s *HttpEndpointDestinationDescription) SetRoleARN(v string) *HttpEndpointDestinationDescription {
  5139  	s.RoleARN = &v
  5140  	return s
  5141  }
  5142  
  5143  // SetS3BackupMode sets the S3BackupMode field's value.
  5144  func (s *HttpEndpointDestinationDescription) SetS3BackupMode(v string) *HttpEndpointDestinationDescription {
  5145  	s.S3BackupMode = &v
  5146  	return s
  5147  }
  5148  
  5149  // SetS3DestinationDescription sets the S3DestinationDescription field's value.
  5150  func (s *HttpEndpointDestinationDescription) SetS3DestinationDescription(v *S3DestinationDescription) *HttpEndpointDestinationDescription {
  5151  	s.S3DestinationDescription = v
  5152  	return s
  5153  }
  5154  
  5155  // Updates the specified HTTP endpoint destination.
  5156  type HttpEndpointDestinationUpdate struct {
  5157  	_ struct{} `type:"structure"`
  5158  
  5159  	// Describes buffering options that can be applied to the data before it is
  5160  	// delivered to the HTTPS endpoint destination. Kinesis Data Firehose teats
  5161  	// these options as hints, and it might choose to use more optimal values. The
  5162  	// SizeInMBs and IntervalInSeconds parameters are optional. However, if specify
  5163  	// a value for one of them, you must also provide a value for the other.
  5164  	BufferingHints *HttpEndpointBufferingHints `type:"structure"`
  5165  
  5166  	// Describes the Amazon CloudWatch logging options for your delivery stream.
  5167  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  5168  
  5169  	// Describes the configuration of the HTTP endpoint destination.
  5170  	EndpointConfiguration *HttpEndpointConfiguration `type:"structure"`
  5171  
  5172  	// Describes a data processing configuration.
  5173  	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
  5174  
  5175  	// The configuration of the request sent to the HTTP endpoint specified as the
  5176  	// destination.
  5177  	RequestConfiguration *HttpEndpointRequestConfiguration `type:"structure"`
  5178  
  5179  	// Describes the retry behavior in case Kinesis Data Firehose is unable to deliver
  5180  	// data to the specified HTTP endpoint destination, or if it doesn't receive
  5181  	// a valid acknowledgment of receipt from the specified HTTP endpoint destination.
  5182  	RetryOptions *HttpEndpointRetryOptions `type:"structure"`
  5183  
  5184  	// Kinesis Data Firehose uses this IAM role for all the permissions that the
  5185  	// delivery stream needs.
  5186  	RoleARN *string `min:"1" type:"string"`
  5187  
  5188  	// Describes the S3 bucket backup options for the data that Kinesis Firehose
  5189  	// delivers to the HTTP endpoint destination. You can back up all documents
  5190  	// (AllData) or only the documents that Kinesis Data Firehose could not deliver
  5191  	// to the specified HTTP endpoint destination (FailedDataOnly).
  5192  	S3BackupMode *string `type:"string" enum:"HttpEndpointS3BackupMode"`
  5193  
  5194  	// Describes an update for a destination in Amazon S3.
  5195  	S3Update *S3DestinationUpdate `type:"structure"`
  5196  }
  5197  
  5198  // String returns the string representation.
  5199  //
  5200  // API parameter values that are decorated as "sensitive" in the API will not
  5201  // be included in the string output. The member name will be present, but the
  5202  // value will be replaced with "sensitive".
  5203  func (s HttpEndpointDestinationUpdate) String() string {
  5204  	return awsutil.Prettify(s)
  5205  }
  5206  
  5207  // GoString returns the string representation.
  5208  //
  5209  // API parameter values that are decorated as "sensitive" in the API will not
  5210  // be included in the string output. The member name will be present, but the
  5211  // value will be replaced with "sensitive".
  5212  func (s HttpEndpointDestinationUpdate) GoString() string {
  5213  	return s.String()
  5214  }
  5215  
  5216  // Validate inspects the fields of the type to determine if they are valid.
  5217  func (s *HttpEndpointDestinationUpdate) Validate() error {
  5218  	invalidParams := request.ErrInvalidParams{Context: "HttpEndpointDestinationUpdate"}
  5219  	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
  5220  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
  5221  	}
  5222  	if s.BufferingHints != nil {
  5223  		if err := s.BufferingHints.Validate(); err != nil {
  5224  			invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
  5225  		}
  5226  	}
  5227  	if s.EndpointConfiguration != nil {
  5228  		if err := s.EndpointConfiguration.Validate(); err != nil {
  5229  			invalidParams.AddNested("EndpointConfiguration", err.(request.ErrInvalidParams))
  5230  		}
  5231  	}
  5232  	if s.ProcessingConfiguration != nil {
  5233  		if err := s.ProcessingConfiguration.Validate(); err != nil {
  5234  			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
  5235  		}
  5236  	}
  5237  	if s.RequestConfiguration != nil {
  5238  		if err := s.RequestConfiguration.Validate(); err != nil {
  5239  			invalidParams.AddNested("RequestConfiguration", err.(request.ErrInvalidParams))
  5240  		}
  5241  	}
  5242  	if s.S3Update != nil {
  5243  		if err := s.S3Update.Validate(); err != nil {
  5244  			invalidParams.AddNested("S3Update", err.(request.ErrInvalidParams))
  5245  		}
  5246  	}
  5247  
  5248  	if invalidParams.Len() > 0 {
  5249  		return invalidParams
  5250  	}
  5251  	return nil
  5252  }
  5253  
  5254  // SetBufferingHints sets the BufferingHints field's value.
  5255  func (s *HttpEndpointDestinationUpdate) SetBufferingHints(v *HttpEndpointBufferingHints) *HttpEndpointDestinationUpdate {
  5256  	s.BufferingHints = v
  5257  	return s
  5258  }
  5259  
  5260  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  5261  func (s *HttpEndpointDestinationUpdate) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *HttpEndpointDestinationUpdate {
  5262  	s.CloudWatchLoggingOptions = v
  5263  	return s
  5264  }
  5265  
  5266  // SetEndpointConfiguration sets the EndpointConfiguration field's value.
  5267  func (s *HttpEndpointDestinationUpdate) SetEndpointConfiguration(v *HttpEndpointConfiguration) *HttpEndpointDestinationUpdate {
  5268  	s.EndpointConfiguration = v
  5269  	return s
  5270  }
  5271  
  5272  // SetProcessingConfiguration sets the ProcessingConfiguration field's value.
  5273  func (s *HttpEndpointDestinationUpdate) SetProcessingConfiguration(v *ProcessingConfiguration) *HttpEndpointDestinationUpdate {
  5274  	s.ProcessingConfiguration = v
  5275  	return s
  5276  }
  5277  
  5278  // SetRequestConfiguration sets the RequestConfiguration field's value.
  5279  func (s *HttpEndpointDestinationUpdate) SetRequestConfiguration(v *HttpEndpointRequestConfiguration) *HttpEndpointDestinationUpdate {
  5280  	s.RequestConfiguration = v
  5281  	return s
  5282  }
  5283  
  5284  // SetRetryOptions sets the RetryOptions field's value.
  5285  func (s *HttpEndpointDestinationUpdate) SetRetryOptions(v *HttpEndpointRetryOptions) *HttpEndpointDestinationUpdate {
  5286  	s.RetryOptions = v
  5287  	return s
  5288  }
  5289  
  5290  // SetRoleARN sets the RoleARN field's value.
  5291  func (s *HttpEndpointDestinationUpdate) SetRoleARN(v string) *HttpEndpointDestinationUpdate {
  5292  	s.RoleARN = &v
  5293  	return s
  5294  }
  5295  
  5296  // SetS3BackupMode sets the S3BackupMode field's value.
  5297  func (s *HttpEndpointDestinationUpdate) SetS3BackupMode(v string) *HttpEndpointDestinationUpdate {
  5298  	s.S3BackupMode = &v
  5299  	return s
  5300  }
  5301  
  5302  // SetS3Update sets the S3Update field's value.
  5303  func (s *HttpEndpointDestinationUpdate) SetS3Update(v *S3DestinationUpdate) *HttpEndpointDestinationUpdate {
  5304  	s.S3Update = v
  5305  	return s
  5306  }
  5307  
  5308  // The configuration of the HTTP endpoint request.
  5309  type HttpEndpointRequestConfiguration struct {
  5310  	_ struct{} `type:"structure"`
  5311  
  5312  	// Describes the metadata sent to the HTTP endpoint destination.
  5313  	CommonAttributes []*HttpEndpointCommonAttribute `type:"list"`
  5314  
  5315  	// Kinesis Data Firehose uses the content encoding to compress the body of a
  5316  	// request before sending the request to the destination. For more information,
  5317  	// see Content-Encoding (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding)
  5318  	// in MDN Web Docs, the official Mozilla documentation.
  5319  	ContentEncoding *string `type:"string" enum:"ContentEncoding"`
  5320  }
  5321  
  5322  // String returns the string representation.
  5323  //
  5324  // API parameter values that are decorated as "sensitive" in the API will not
  5325  // be included in the string output. The member name will be present, but the
  5326  // value will be replaced with "sensitive".
  5327  func (s HttpEndpointRequestConfiguration) String() string {
  5328  	return awsutil.Prettify(s)
  5329  }
  5330  
  5331  // GoString returns the string representation.
  5332  //
  5333  // API parameter values that are decorated as "sensitive" in the API will not
  5334  // be included in the string output. The member name will be present, but the
  5335  // value will be replaced with "sensitive".
  5336  func (s HttpEndpointRequestConfiguration) GoString() string {
  5337  	return s.String()
  5338  }
  5339  
  5340  // Validate inspects the fields of the type to determine if they are valid.
  5341  func (s *HttpEndpointRequestConfiguration) Validate() error {
  5342  	invalidParams := request.ErrInvalidParams{Context: "HttpEndpointRequestConfiguration"}
  5343  	if s.CommonAttributes != nil {
  5344  		for i, v := range s.CommonAttributes {
  5345  			if v == nil {
  5346  				continue
  5347  			}
  5348  			if err := v.Validate(); err != nil {
  5349  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CommonAttributes", i), err.(request.ErrInvalidParams))
  5350  			}
  5351  		}
  5352  	}
  5353  
  5354  	if invalidParams.Len() > 0 {
  5355  		return invalidParams
  5356  	}
  5357  	return nil
  5358  }
  5359  
  5360  // SetCommonAttributes sets the CommonAttributes field's value.
  5361  func (s *HttpEndpointRequestConfiguration) SetCommonAttributes(v []*HttpEndpointCommonAttribute) *HttpEndpointRequestConfiguration {
  5362  	s.CommonAttributes = v
  5363  	return s
  5364  }
  5365  
  5366  // SetContentEncoding sets the ContentEncoding field's value.
  5367  func (s *HttpEndpointRequestConfiguration) SetContentEncoding(v string) *HttpEndpointRequestConfiguration {
  5368  	s.ContentEncoding = &v
  5369  	return s
  5370  }
  5371  
  5372  // Describes the retry behavior in case Kinesis Data Firehose is unable to deliver
  5373  // data to the specified HTTP endpoint destination, or if it doesn't receive
  5374  // a valid acknowledgment of receipt from the specified HTTP endpoint destination.
  5375  type HttpEndpointRetryOptions struct {
  5376  	_ struct{} `type:"structure"`
  5377  
  5378  	// The total amount of time that Kinesis Data Firehose spends on retries. This
  5379  	// duration starts after the initial attempt to send data to the custom destination
  5380  	// via HTTPS endpoint fails. It doesn't include the periods during which Kinesis
  5381  	// Data Firehose waits for acknowledgment from the specified destination after
  5382  	// each attempt.
  5383  	DurationInSeconds *int64 `type:"integer"`
  5384  }
  5385  
  5386  // String returns the string representation.
  5387  //
  5388  // API parameter values that are decorated as "sensitive" in the API will not
  5389  // be included in the string output. The member name will be present, but the
  5390  // value will be replaced with "sensitive".
  5391  func (s HttpEndpointRetryOptions) String() string {
  5392  	return awsutil.Prettify(s)
  5393  }
  5394  
  5395  // GoString returns the string representation.
  5396  //
  5397  // API parameter values that are decorated as "sensitive" in the API will not
  5398  // be included in the string output. The member name will be present, but the
  5399  // value will be replaced with "sensitive".
  5400  func (s HttpEndpointRetryOptions) GoString() string {
  5401  	return s.String()
  5402  }
  5403  
  5404  // SetDurationInSeconds sets the DurationInSeconds field's value.
  5405  func (s *HttpEndpointRetryOptions) SetDurationInSeconds(v int64) *HttpEndpointRetryOptions {
  5406  	s.DurationInSeconds = &v
  5407  	return s
  5408  }
  5409  
  5410  // Specifies the deserializer you want to use to convert the format of the input
  5411  // data. This parameter is required if Enabled is set to true.
  5412  type InputFormatConfiguration struct {
  5413  	_ struct{} `type:"structure"`
  5414  
  5415  	// Specifies which deserializer to use. You can choose either the Apache Hive
  5416  	// JSON SerDe or the OpenX JSON SerDe. If both are non-null, the server rejects
  5417  	// the request.
  5418  	Deserializer *Deserializer `type:"structure"`
  5419  }
  5420  
  5421  // String returns the string representation.
  5422  //
  5423  // API parameter values that are decorated as "sensitive" in the API will not
  5424  // be included in the string output. The member name will be present, but the
  5425  // value will be replaced with "sensitive".
  5426  func (s InputFormatConfiguration) String() string {
  5427  	return awsutil.Prettify(s)
  5428  }
  5429  
  5430  // GoString returns the string representation.
  5431  //
  5432  // API parameter values that are decorated as "sensitive" in the API will not
  5433  // be included in the string output. The member name will be present, but the
  5434  // value will be replaced with "sensitive".
  5435  func (s InputFormatConfiguration) GoString() string {
  5436  	return s.String()
  5437  }
  5438  
  5439  // SetDeserializer sets the Deserializer field's value.
  5440  func (s *InputFormatConfiguration) SetDeserializer(v *Deserializer) *InputFormatConfiguration {
  5441  	s.Deserializer = v
  5442  	return s
  5443  }
  5444  
  5445  // The specified input parameter has a value that is not valid.
  5446  type InvalidArgumentException struct {
  5447  	_            struct{}                  `type:"structure"`
  5448  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5449  
  5450  	// A message that provides information about the error.
  5451  	Message_ *string `locationName:"message" type:"string"`
  5452  }
  5453  
  5454  // String returns the string representation.
  5455  //
  5456  // API parameter values that are decorated as "sensitive" in the API will not
  5457  // be included in the string output. The member name will be present, but the
  5458  // value will be replaced with "sensitive".
  5459  func (s InvalidArgumentException) String() string {
  5460  	return awsutil.Prettify(s)
  5461  }
  5462  
  5463  // GoString returns the string representation.
  5464  //
  5465  // API parameter values that are decorated as "sensitive" in the API will not
  5466  // be included in the string output. The member name will be present, but the
  5467  // value will be replaced with "sensitive".
  5468  func (s InvalidArgumentException) GoString() string {
  5469  	return s.String()
  5470  }
  5471  
  5472  func newErrorInvalidArgumentException(v protocol.ResponseMetadata) error {
  5473  	return &InvalidArgumentException{
  5474  		RespMetadata: v,
  5475  	}
  5476  }
  5477  
  5478  // Code returns the exception type name.
  5479  func (s *InvalidArgumentException) Code() string {
  5480  	return "InvalidArgumentException"
  5481  }
  5482  
  5483  // Message returns the exception's message.
  5484  func (s *InvalidArgumentException) Message() string {
  5485  	if s.Message_ != nil {
  5486  		return *s.Message_
  5487  	}
  5488  	return ""
  5489  }
  5490  
  5491  // OrigErr always returns nil, satisfies awserr.Error interface.
  5492  func (s *InvalidArgumentException) OrigErr() error {
  5493  	return nil
  5494  }
  5495  
  5496  func (s *InvalidArgumentException) Error() string {
  5497  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5498  }
  5499  
  5500  // Status code returns the HTTP status code for the request's response error.
  5501  func (s *InvalidArgumentException) StatusCode() int {
  5502  	return s.RespMetadata.StatusCode
  5503  }
  5504  
  5505  // RequestID returns the service's response RequestID for request.
  5506  func (s *InvalidArgumentException) RequestID() string {
  5507  	return s.RespMetadata.RequestID
  5508  }
  5509  
  5510  // Kinesis Data Firehose throws this exception when an attempt to put records
  5511  // or to start or stop delivery stream encryption fails. This happens when the
  5512  // KMS service throws one of the following exception types: AccessDeniedException,
  5513  // InvalidStateException, DisabledException, or NotFoundException.
  5514  type InvalidKMSResourceException struct {
  5515  	_            struct{}                  `type:"structure"`
  5516  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5517  
  5518  	Code_ *string `locationName:"code" type:"string"`
  5519  
  5520  	Message_ *string `locationName:"message" type:"string"`
  5521  }
  5522  
  5523  // String returns the string representation.
  5524  //
  5525  // API parameter values that are decorated as "sensitive" in the API will not
  5526  // be included in the string output. The member name will be present, but the
  5527  // value will be replaced with "sensitive".
  5528  func (s InvalidKMSResourceException) String() string {
  5529  	return awsutil.Prettify(s)
  5530  }
  5531  
  5532  // GoString returns the string representation.
  5533  //
  5534  // API parameter values that are decorated as "sensitive" in the API will not
  5535  // be included in the string output. The member name will be present, but the
  5536  // value will be replaced with "sensitive".
  5537  func (s InvalidKMSResourceException) GoString() string {
  5538  	return s.String()
  5539  }
  5540  
  5541  func newErrorInvalidKMSResourceException(v protocol.ResponseMetadata) error {
  5542  	return &InvalidKMSResourceException{
  5543  		RespMetadata: v,
  5544  	}
  5545  }
  5546  
  5547  // Code returns the exception type name.
  5548  func (s *InvalidKMSResourceException) Code() string {
  5549  	return "InvalidKMSResourceException"
  5550  }
  5551  
  5552  // Message returns the exception's message.
  5553  func (s *InvalidKMSResourceException) Message() string {
  5554  	if s.Message_ != nil {
  5555  		return *s.Message_
  5556  	}
  5557  	return ""
  5558  }
  5559  
  5560  // OrigErr always returns nil, satisfies awserr.Error interface.
  5561  func (s *InvalidKMSResourceException) OrigErr() error {
  5562  	return nil
  5563  }
  5564  
  5565  func (s *InvalidKMSResourceException) Error() string {
  5566  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
  5567  }
  5568  
  5569  // Status code returns the HTTP status code for the request's response error.
  5570  func (s *InvalidKMSResourceException) StatusCode() int {
  5571  	return s.RespMetadata.StatusCode
  5572  }
  5573  
  5574  // RequestID returns the service's response RequestID for request.
  5575  func (s *InvalidKMSResourceException) RequestID() string {
  5576  	return s.RespMetadata.RequestID
  5577  }
  5578  
  5579  // Describes an encryption key for a destination in Amazon S3.
  5580  type KMSEncryptionConfig struct {
  5581  	_ struct{} `type:"structure"`
  5582  
  5583  	// The Amazon Resource Name (ARN) of the encryption key. Must belong to the
  5584  	// same AWS Region as the destination Amazon S3 bucket. For more information,
  5585  	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  5586  	//
  5587  	// AWSKMSKeyARN is a required field
  5588  	AWSKMSKeyARN *string `min:"1" type:"string" required:"true"`
  5589  }
  5590  
  5591  // String returns the string representation.
  5592  //
  5593  // API parameter values that are decorated as "sensitive" in the API will not
  5594  // be included in the string output. The member name will be present, but the
  5595  // value will be replaced with "sensitive".
  5596  func (s KMSEncryptionConfig) String() string {
  5597  	return awsutil.Prettify(s)
  5598  }
  5599  
  5600  // GoString returns the string representation.
  5601  //
  5602  // API parameter values that are decorated as "sensitive" in the API will not
  5603  // be included in the string output. The member name will be present, but the
  5604  // value will be replaced with "sensitive".
  5605  func (s KMSEncryptionConfig) GoString() string {
  5606  	return s.String()
  5607  }
  5608  
  5609  // Validate inspects the fields of the type to determine if they are valid.
  5610  func (s *KMSEncryptionConfig) Validate() error {
  5611  	invalidParams := request.ErrInvalidParams{Context: "KMSEncryptionConfig"}
  5612  	if s.AWSKMSKeyARN == nil {
  5613  		invalidParams.Add(request.NewErrParamRequired("AWSKMSKeyARN"))
  5614  	}
  5615  	if s.AWSKMSKeyARN != nil && len(*s.AWSKMSKeyARN) < 1 {
  5616  		invalidParams.Add(request.NewErrParamMinLen("AWSKMSKeyARN", 1))
  5617  	}
  5618  
  5619  	if invalidParams.Len() > 0 {
  5620  		return invalidParams
  5621  	}
  5622  	return nil
  5623  }
  5624  
  5625  // SetAWSKMSKeyARN sets the AWSKMSKeyARN field's value.
  5626  func (s *KMSEncryptionConfig) SetAWSKMSKeyARN(v string) *KMSEncryptionConfig {
  5627  	s.AWSKMSKeyARN = &v
  5628  	return s
  5629  }
  5630  
  5631  // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream
  5632  // used as the source for a delivery stream.
  5633  type KinesisStreamSourceConfiguration struct {
  5634  	_ struct{} `type:"structure"`
  5635  
  5636  	// The ARN of the source Kinesis data stream. For more information, see Amazon
  5637  	// Kinesis Data Streams ARN Format (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kinesis-streams).
  5638  	//
  5639  	// KinesisStreamARN is a required field
  5640  	KinesisStreamARN *string `min:"1" type:"string" required:"true"`
  5641  
  5642  	// The ARN of the role that provides access to the source Kinesis data stream.
  5643  	// For more information, see AWS Identity and Access Management (IAM) ARN Format
  5644  	// (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam).
  5645  	//
  5646  	// RoleARN is a required field
  5647  	RoleARN *string `min:"1" type:"string" required:"true"`
  5648  }
  5649  
  5650  // String returns the string representation.
  5651  //
  5652  // API parameter values that are decorated as "sensitive" in the API will not
  5653  // be included in the string output. The member name will be present, but the
  5654  // value will be replaced with "sensitive".
  5655  func (s KinesisStreamSourceConfiguration) String() string {
  5656  	return awsutil.Prettify(s)
  5657  }
  5658  
  5659  // GoString returns the string representation.
  5660  //
  5661  // API parameter values that are decorated as "sensitive" in the API will not
  5662  // be included in the string output. The member name will be present, but the
  5663  // value will be replaced with "sensitive".
  5664  func (s KinesisStreamSourceConfiguration) GoString() string {
  5665  	return s.String()
  5666  }
  5667  
  5668  // Validate inspects the fields of the type to determine if they are valid.
  5669  func (s *KinesisStreamSourceConfiguration) Validate() error {
  5670  	invalidParams := request.ErrInvalidParams{Context: "KinesisStreamSourceConfiguration"}
  5671  	if s.KinesisStreamARN == nil {
  5672  		invalidParams.Add(request.NewErrParamRequired("KinesisStreamARN"))
  5673  	}
  5674  	if s.KinesisStreamARN != nil && len(*s.KinesisStreamARN) < 1 {
  5675  		invalidParams.Add(request.NewErrParamMinLen("KinesisStreamARN", 1))
  5676  	}
  5677  	if s.RoleARN == nil {
  5678  		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
  5679  	}
  5680  	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
  5681  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
  5682  	}
  5683  
  5684  	if invalidParams.Len() > 0 {
  5685  		return invalidParams
  5686  	}
  5687  	return nil
  5688  }
  5689  
  5690  // SetKinesisStreamARN sets the KinesisStreamARN field's value.
  5691  func (s *KinesisStreamSourceConfiguration) SetKinesisStreamARN(v string) *KinesisStreamSourceConfiguration {
  5692  	s.KinesisStreamARN = &v
  5693  	return s
  5694  }
  5695  
  5696  // SetRoleARN sets the RoleARN field's value.
  5697  func (s *KinesisStreamSourceConfiguration) SetRoleARN(v string) *KinesisStreamSourceConfiguration {
  5698  	s.RoleARN = &v
  5699  	return s
  5700  }
  5701  
  5702  // Details about a Kinesis data stream used as the source for a Kinesis Data
  5703  // Firehose delivery stream.
  5704  type KinesisStreamSourceDescription struct {
  5705  	_ struct{} `type:"structure"`
  5706  
  5707  	// Kinesis Data Firehose starts retrieving records from the Kinesis data stream
  5708  	// starting with this timestamp.
  5709  	DeliveryStartTimestamp *time.Time `type:"timestamp"`
  5710  
  5711  	// The Amazon Resource Name (ARN) of the source Kinesis data stream. For more
  5712  	// information, see Amazon Kinesis Data Streams ARN Format (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kinesis-streams).
  5713  	KinesisStreamARN *string `min:"1" type:"string"`
  5714  
  5715  	// The ARN of the role used by the source Kinesis data stream. For more information,
  5716  	// see AWS Identity and Access Management (IAM) ARN Format (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam).
  5717  	RoleARN *string `min:"1" type:"string"`
  5718  }
  5719  
  5720  // String returns the string representation.
  5721  //
  5722  // API parameter values that are decorated as "sensitive" in the API will not
  5723  // be included in the string output. The member name will be present, but the
  5724  // value will be replaced with "sensitive".
  5725  func (s KinesisStreamSourceDescription) String() string {
  5726  	return awsutil.Prettify(s)
  5727  }
  5728  
  5729  // GoString returns the string representation.
  5730  //
  5731  // API parameter values that are decorated as "sensitive" in the API will not
  5732  // be included in the string output. The member name will be present, but the
  5733  // value will be replaced with "sensitive".
  5734  func (s KinesisStreamSourceDescription) GoString() string {
  5735  	return s.String()
  5736  }
  5737  
  5738  // SetDeliveryStartTimestamp sets the DeliveryStartTimestamp field's value.
  5739  func (s *KinesisStreamSourceDescription) SetDeliveryStartTimestamp(v time.Time) *KinesisStreamSourceDescription {
  5740  	s.DeliveryStartTimestamp = &v
  5741  	return s
  5742  }
  5743  
  5744  // SetKinesisStreamARN sets the KinesisStreamARN field's value.
  5745  func (s *KinesisStreamSourceDescription) SetKinesisStreamARN(v string) *KinesisStreamSourceDescription {
  5746  	s.KinesisStreamARN = &v
  5747  	return s
  5748  }
  5749  
  5750  // SetRoleARN sets the RoleARN field's value.
  5751  func (s *KinesisStreamSourceDescription) SetRoleARN(v string) *KinesisStreamSourceDescription {
  5752  	s.RoleARN = &v
  5753  	return s
  5754  }
  5755  
  5756  // You have already reached the limit for a requested resource.
  5757  type LimitExceededException struct {
  5758  	_            struct{}                  `type:"structure"`
  5759  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  5760  
  5761  	// A message that provides information about the error.
  5762  	Message_ *string `locationName:"message" type:"string"`
  5763  }
  5764  
  5765  // String returns the string representation.
  5766  //
  5767  // API parameter values that are decorated as "sensitive" in the API will not
  5768  // be included in the string output. The member name will be present, but the
  5769  // value will be replaced with "sensitive".
  5770  func (s LimitExceededException) String() string {
  5771  	return awsutil.Prettify(s)
  5772  }
  5773  
  5774  // GoString returns the string representation.
  5775  //
  5776  // API parameter values that are decorated as "sensitive" in the API will not
  5777  // be included in the string output. The member name will be present, but the
  5778  // value will be replaced with "sensitive".
  5779  func (s LimitExceededException) GoString() string {
  5780  	return s.String()
  5781  }
  5782  
  5783  func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
  5784  	return &LimitExceededException{
  5785  		RespMetadata: v,
  5786  	}
  5787  }
  5788  
  5789  // Code returns the exception type name.
  5790  func (s *LimitExceededException) Code() string {
  5791  	return "LimitExceededException"
  5792  }
  5793  
  5794  // Message returns the exception's message.
  5795  func (s *LimitExceededException) Message() string {
  5796  	if s.Message_ != nil {
  5797  		return *s.Message_
  5798  	}
  5799  	return ""
  5800  }
  5801  
  5802  // OrigErr always returns nil, satisfies awserr.Error interface.
  5803  func (s *LimitExceededException) OrigErr() error {
  5804  	return nil
  5805  }
  5806  
  5807  func (s *LimitExceededException) Error() string {
  5808  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  5809  }
  5810  
  5811  // Status code returns the HTTP status code for the request's response error.
  5812  func (s *LimitExceededException) StatusCode() int {
  5813  	return s.RespMetadata.StatusCode
  5814  }
  5815  
  5816  // RequestID returns the service's response RequestID for request.
  5817  func (s *LimitExceededException) RequestID() string {
  5818  	return s.RespMetadata.RequestID
  5819  }
  5820  
  5821  type ListDeliveryStreamsInput struct {
  5822  	_ struct{} `type:"structure"`
  5823  
  5824  	// The delivery stream type. This can be one of the following values:
  5825  	//
  5826  	//    * DirectPut: Provider applications access the delivery stream directly.
  5827  	//
  5828  	//    * KinesisStreamAsSource: The delivery stream uses a Kinesis data stream
  5829  	//    as a source.
  5830  	//
  5831  	// This parameter is optional. If this parameter is omitted, delivery streams
  5832  	// of all types are returned.
  5833  	DeliveryStreamType *string `type:"string" enum:"DeliveryStreamType"`
  5834  
  5835  	// The list of delivery streams returned by this call to ListDeliveryStreams
  5836  	// will start with the delivery stream whose name comes alphabetically immediately
  5837  	// after the name you specify in ExclusiveStartDeliveryStreamName.
  5838  	ExclusiveStartDeliveryStreamName *string `min:"1" type:"string"`
  5839  
  5840  	// The maximum number of delivery streams to list. The default value is 10.
  5841  	Limit *int64 `min:"1" type:"integer"`
  5842  }
  5843  
  5844  // String returns the string representation.
  5845  //
  5846  // API parameter values that are decorated as "sensitive" in the API will not
  5847  // be included in the string output. The member name will be present, but the
  5848  // value will be replaced with "sensitive".
  5849  func (s ListDeliveryStreamsInput) String() string {
  5850  	return awsutil.Prettify(s)
  5851  }
  5852  
  5853  // GoString returns the string representation.
  5854  //
  5855  // API parameter values that are decorated as "sensitive" in the API will not
  5856  // be included in the string output. The member name will be present, but the
  5857  // value will be replaced with "sensitive".
  5858  func (s ListDeliveryStreamsInput) GoString() string {
  5859  	return s.String()
  5860  }
  5861  
  5862  // Validate inspects the fields of the type to determine if they are valid.
  5863  func (s *ListDeliveryStreamsInput) Validate() error {
  5864  	invalidParams := request.ErrInvalidParams{Context: "ListDeliveryStreamsInput"}
  5865  	if s.ExclusiveStartDeliveryStreamName != nil && len(*s.ExclusiveStartDeliveryStreamName) < 1 {
  5866  		invalidParams.Add(request.NewErrParamMinLen("ExclusiveStartDeliveryStreamName", 1))
  5867  	}
  5868  	if s.Limit != nil && *s.Limit < 1 {
  5869  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
  5870  	}
  5871  
  5872  	if invalidParams.Len() > 0 {
  5873  		return invalidParams
  5874  	}
  5875  	return nil
  5876  }
  5877  
  5878  // SetDeliveryStreamType sets the DeliveryStreamType field's value.
  5879  func (s *ListDeliveryStreamsInput) SetDeliveryStreamType(v string) *ListDeliveryStreamsInput {
  5880  	s.DeliveryStreamType = &v
  5881  	return s
  5882  }
  5883  
  5884  // SetExclusiveStartDeliveryStreamName sets the ExclusiveStartDeliveryStreamName field's value.
  5885  func (s *ListDeliveryStreamsInput) SetExclusiveStartDeliveryStreamName(v string) *ListDeliveryStreamsInput {
  5886  	s.ExclusiveStartDeliveryStreamName = &v
  5887  	return s
  5888  }
  5889  
  5890  // SetLimit sets the Limit field's value.
  5891  func (s *ListDeliveryStreamsInput) SetLimit(v int64) *ListDeliveryStreamsInput {
  5892  	s.Limit = &v
  5893  	return s
  5894  }
  5895  
  5896  type ListDeliveryStreamsOutput struct {
  5897  	_ struct{} `type:"structure"`
  5898  
  5899  	// The names of the delivery streams.
  5900  	//
  5901  	// DeliveryStreamNames is a required field
  5902  	DeliveryStreamNames []*string `type:"list" required:"true"`
  5903  
  5904  	// Indicates whether there are more delivery streams available to list.
  5905  	//
  5906  	// HasMoreDeliveryStreams is a required field
  5907  	HasMoreDeliveryStreams *bool `type:"boolean" required:"true"`
  5908  }
  5909  
  5910  // String returns the string representation.
  5911  //
  5912  // API parameter values that are decorated as "sensitive" in the API will not
  5913  // be included in the string output. The member name will be present, but the
  5914  // value will be replaced with "sensitive".
  5915  func (s ListDeliveryStreamsOutput) String() string {
  5916  	return awsutil.Prettify(s)
  5917  }
  5918  
  5919  // GoString returns the string representation.
  5920  //
  5921  // API parameter values that are decorated as "sensitive" in the API will not
  5922  // be included in the string output. The member name will be present, but the
  5923  // value will be replaced with "sensitive".
  5924  func (s ListDeliveryStreamsOutput) GoString() string {
  5925  	return s.String()
  5926  }
  5927  
  5928  // SetDeliveryStreamNames sets the DeliveryStreamNames field's value.
  5929  func (s *ListDeliveryStreamsOutput) SetDeliveryStreamNames(v []*string) *ListDeliveryStreamsOutput {
  5930  	s.DeliveryStreamNames = v
  5931  	return s
  5932  }
  5933  
  5934  // SetHasMoreDeliveryStreams sets the HasMoreDeliveryStreams field's value.
  5935  func (s *ListDeliveryStreamsOutput) SetHasMoreDeliveryStreams(v bool) *ListDeliveryStreamsOutput {
  5936  	s.HasMoreDeliveryStreams = &v
  5937  	return s
  5938  }
  5939  
  5940  type ListTagsForDeliveryStreamInput struct {
  5941  	_ struct{} `type:"structure"`
  5942  
  5943  	// The name of the delivery stream whose tags you want to list.
  5944  	//
  5945  	// DeliveryStreamName is a required field
  5946  	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
  5947  
  5948  	// The key to use as the starting point for the list of tags. If you set this
  5949  	// parameter, ListTagsForDeliveryStream gets all tags that occur after ExclusiveStartTagKey.
  5950  	ExclusiveStartTagKey *string `min:"1" type:"string"`
  5951  
  5952  	// The number of tags to return. If this number is less than the total number
  5953  	// of tags associated with the delivery stream, HasMoreTags is set to true in
  5954  	// the response. To list additional tags, set ExclusiveStartTagKey to the last
  5955  	// key in the response.
  5956  	Limit *int64 `min:"1" type:"integer"`
  5957  }
  5958  
  5959  // String returns the string representation.
  5960  //
  5961  // API parameter values that are decorated as "sensitive" in the API will not
  5962  // be included in the string output. The member name will be present, but the
  5963  // value will be replaced with "sensitive".
  5964  func (s ListTagsForDeliveryStreamInput) String() string {
  5965  	return awsutil.Prettify(s)
  5966  }
  5967  
  5968  // GoString returns the string representation.
  5969  //
  5970  // API parameter values that are decorated as "sensitive" in the API will not
  5971  // be included in the string output. The member name will be present, but the
  5972  // value will be replaced with "sensitive".
  5973  func (s ListTagsForDeliveryStreamInput) GoString() string {
  5974  	return s.String()
  5975  }
  5976  
  5977  // Validate inspects the fields of the type to determine if they are valid.
  5978  func (s *ListTagsForDeliveryStreamInput) Validate() error {
  5979  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForDeliveryStreamInput"}
  5980  	if s.DeliveryStreamName == nil {
  5981  		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
  5982  	}
  5983  	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
  5984  		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
  5985  	}
  5986  	if s.ExclusiveStartTagKey != nil && len(*s.ExclusiveStartTagKey) < 1 {
  5987  		invalidParams.Add(request.NewErrParamMinLen("ExclusiveStartTagKey", 1))
  5988  	}
  5989  	if s.Limit != nil && *s.Limit < 1 {
  5990  		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
  5991  	}
  5992  
  5993  	if invalidParams.Len() > 0 {
  5994  		return invalidParams
  5995  	}
  5996  	return nil
  5997  }
  5998  
  5999  // SetDeliveryStreamName sets the DeliveryStreamName field's value.
  6000  func (s *ListTagsForDeliveryStreamInput) SetDeliveryStreamName(v string) *ListTagsForDeliveryStreamInput {
  6001  	s.DeliveryStreamName = &v
  6002  	return s
  6003  }
  6004  
  6005  // SetExclusiveStartTagKey sets the ExclusiveStartTagKey field's value.
  6006  func (s *ListTagsForDeliveryStreamInput) SetExclusiveStartTagKey(v string) *ListTagsForDeliveryStreamInput {
  6007  	s.ExclusiveStartTagKey = &v
  6008  	return s
  6009  }
  6010  
  6011  // SetLimit sets the Limit field's value.
  6012  func (s *ListTagsForDeliveryStreamInput) SetLimit(v int64) *ListTagsForDeliveryStreamInput {
  6013  	s.Limit = &v
  6014  	return s
  6015  }
  6016  
  6017  type ListTagsForDeliveryStreamOutput struct {
  6018  	_ struct{} `type:"structure"`
  6019  
  6020  	// If this is true in the response, more tags are available. To list the remaining
  6021  	// tags, set ExclusiveStartTagKey to the key of the last tag returned and call
  6022  	// ListTagsForDeliveryStream again.
  6023  	//
  6024  	// HasMoreTags is a required field
  6025  	HasMoreTags *bool `type:"boolean" required:"true"`
  6026  
  6027  	// A list of tags associated with DeliveryStreamName, starting with the first
  6028  	// tag after ExclusiveStartTagKey and up to the specified Limit.
  6029  	//
  6030  	// Tags is a required field
  6031  	Tags []*Tag `type:"list" required:"true"`
  6032  }
  6033  
  6034  // String returns the string representation.
  6035  //
  6036  // API parameter values that are decorated as "sensitive" in the API will not
  6037  // be included in the string output. The member name will be present, but the
  6038  // value will be replaced with "sensitive".
  6039  func (s ListTagsForDeliveryStreamOutput) String() string {
  6040  	return awsutil.Prettify(s)
  6041  }
  6042  
  6043  // GoString returns the string representation.
  6044  //
  6045  // API parameter values that are decorated as "sensitive" in the API will not
  6046  // be included in the string output. The member name will be present, but the
  6047  // value will be replaced with "sensitive".
  6048  func (s ListTagsForDeliveryStreamOutput) GoString() string {
  6049  	return s.String()
  6050  }
  6051  
  6052  // SetHasMoreTags sets the HasMoreTags field's value.
  6053  func (s *ListTagsForDeliveryStreamOutput) SetHasMoreTags(v bool) *ListTagsForDeliveryStreamOutput {
  6054  	s.HasMoreTags = &v
  6055  	return s
  6056  }
  6057  
  6058  // SetTags sets the Tags field's value.
  6059  func (s *ListTagsForDeliveryStreamOutput) SetTags(v []*Tag) *ListTagsForDeliveryStreamOutput {
  6060  	s.Tags = v
  6061  	return s
  6062  }
  6063  
  6064  // The OpenX SerDe. Used by Kinesis Data Firehose for deserializing data, which
  6065  // means converting it from the JSON format in preparation for serializing it
  6066  // to the Parquet or ORC format. This is one of two deserializers you can choose,
  6067  // depending on which one offers the functionality you need. The other option
  6068  // is the native Hive / HCatalog JsonSerDe.
  6069  type OpenXJsonSerDe struct {
  6070  	_ struct{} `type:"structure"`
  6071  
  6072  	// When set to true, which is the default, Kinesis Data Firehose converts JSON
  6073  	// keys to lowercase before deserializing them.
  6074  	CaseInsensitive *bool `type:"boolean"`
  6075  
  6076  	// Maps column names to JSON keys that aren't identical to the column names.
  6077  	// This is useful when the JSON contains keys that are Hive keywords. For example,
  6078  	// timestamp is a Hive keyword. If you have a JSON key named timestamp, set
  6079  	// this parameter to {"ts": "timestamp"} to map this key to a column named ts.
  6080  	ColumnToJsonKeyMappings map[string]*string `type:"map"`
  6081  
  6082  	// When set to true, specifies that the names of the keys include dots and that
  6083  	// you want Kinesis Data Firehose to replace them with underscores. This is
  6084  	// useful because Apache Hive does not allow dots in column names. For example,
  6085  	// if the JSON contains a key whose name is "a.b", you can define the column
  6086  	// name to be "a_b" when using this option.
  6087  	//
  6088  	// The default is false.
  6089  	ConvertDotsInJsonKeysToUnderscores *bool `type:"boolean"`
  6090  }
  6091  
  6092  // String returns the string representation.
  6093  //
  6094  // API parameter values that are decorated as "sensitive" in the API will not
  6095  // be included in the string output. The member name will be present, but the
  6096  // value will be replaced with "sensitive".
  6097  func (s OpenXJsonSerDe) String() string {
  6098  	return awsutil.Prettify(s)
  6099  }
  6100  
  6101  // GoString returns the string representation.
  6102  //
  6103  // API parameter values that are decorated as "sensitive" in the API will not
  6104  // be included in the string output. The member name will be present, but the
  6105  // value will be replaced with "sensitive".
  6106  func (s OpenXJsonSerDe) GoString() string {
  6107  	return s.String()
  6108  }
  6109  
  6110  // SetCaseInsensitive sets the CaseInsensitive field's value.
  6111  func (s *OpenXJsonSerDe) SetCaseInsensitive(v bool) *OpenXJsonSerDe {
  6112  	s.CaseInsensitive = &v
  6113  	return s
  6114  }
  6115  
  6116  // SetColumnToJsonKeyMappings sets the ColumnToJsonKeyMappings field's value.
  6117  func (s *OpenXJsonSerDe) SetColumnToJsonKeyMappings(v map[string]*string) *OpenXJsonSerDe {
  6118  	s.ColumnToJsonKeyMappings = v
  6119  	return s
  6120  }
  6121  
  6122  // SetConvertDotsInJsonKeysToUnderscores sets the ConvertDotsInJsonKeysToUnderscores field's value.
  6123  func (s *OpenXJsonSerDe) SetConvertDotsInJsonKeysToUnderscores(v bool) *OpenXJsonSerDe {
  6124  	s.ConvertDotsInJsonKeysToUnderscores = &v
  6125  	return s
  6126  }
  6127  
  6128  // A serializer to use for converting data to the ORC format before storing
  6129  // it in Amazon S3. For more information, see Apache ORC (https://orc.apache.org/docs/).
  6130  type OrcSerDe struct {
  6131  	_ struct{} `type:"structure"`
  6132  
  6133  	// The Hadoop Distributed File System (HDFS) block size. This is useful if you
  6134  	// intend to copy the data from Amazon S3 to HDFS before querying. The default
  6135  	// is 256 MiB and the minimum is 64 MiB. Kinesis Data Firehose uses this value
  6136  	// for padding calculations.
  6137  	BlockSizeBytes *int64 `min:"6.7108864e+07" type:"integer"`
  6138  
  6139  	// The column names for which you want Kinesis Data Firehose to create bloom
  6140  	// filters. The default is null.
  6141  	BloomFilterColumns []*string `type:"list"`
  6142  
  6143  	// The Bloom filter false positive probability (FPP). The lower the FPP, the
  6144  	// bigger the Bloom filter. The default value is 0.05, the minimum is 0, and
  6145  	// the maximum is 1.
  6146  	BloomFilterFalsePositiveProbability *float64 `type:"double"`
  6147  
  6148  	// The compression code to use over data blocks. The default is SNAPPY.
  6149  	Compression *string `type:"string" enum:"OrcCompression"`
  6150  
  6151  	// Represents the fraction of the total number of non-null rows. To turn off
  6152  	// dictionary encoding, set this fraction to a number that is less than the
  6153  	// number of distinct keys in a dictionary. To always use dictionary encoding,
  6154  	// set this threshold to 1.
  6155  	DictionaryKeyThreshold *float64 `type:"double"`
  6156  
  6157  	// Set this to true to indicate that you want stripes to be padded to the HDFS
  6158  	// block boundaries. This is useful if you intend to copy the data from Amazon
  6159  	// S3 to HDFS before querying. The default is false.
  6160  	EnablePadding *bool `type:"boolean"`
  6161  
  6162  	// The version of the file to write. The possible values are V0_11 and V0_12.
  6163  	// The default is V0_12.
  6164  	FormatVersion *string `type:"string" enum:"OrcFormatVersion"`
  6165  
  6166  	// A number between 0 and 1 that defines the tolerance for block padding as
  6167  	// a decimal fraction of stripe size. The default value is 0.05, which means
  6168  	// 5 percent of stripe size.
  6169  	//
  6170  	// For the default values of 64 MiB ORC stripes and 256 MiB HDFS blocks, the
  6171  	// default block padding tolerance of 5 percent reserves a maximum of 3.2 MiB
  6172  	// for padding within the 256 MiB block. In such a case, if the available size
  6173  	// within the block is more than 3.2 MiB, a new, smaller stripe is inserted
  6174  	// to fit within that space. This ensures that no stripe crosses block boundaries
  6175  	// and causes remote reads within a node-local task.
  6176  	//
  6177  	// Kinesis Data Firehose ignores this parameter when OrcSerDe$EnablePadding
  6178  	// is false.
  6179  	PaddingTolerance *float64 `type:"double"`
  6180  
  6181  	// The number of rows between index entries. The default is 10,000 and the minimum
  6182  	// is 1,000.
  6183  	RowIndexStride *int64 `min:"1000" type:"integer"`
  6184  
  6185  	// The number of bytes in each stripe. The default is 64 MiB and the minimum
  6186  	// is 8 MiB.
  6187  	StripeSizeBytes *int64 `min:"8.388608e+06" type:"integer"`
  6188  }
  6189  
  6190  // String returns the string representation.
  6191  //
  6192  // API parameter values that are decorated as "sensitive" in the API will not
  6193  // be included in the string output. The member name will be present, but the
  6194  // value will be replaced with "sensitive".
  6195  func (s OrcSerDe) String() string {
  6196  	return awsutil.Prettify(s)
  6197  }
  6198  
  6199  // GoString returns the string representation.
  6200  //
  6201  // API parameter values that are decorated as "sensitive" in the API will not
  6202  // be included in the string output. The member name will be present, but the
  6203  // value will be replaced with "sensitive".
  6204  func (s OrcSerDe) GoString() string {
  6205  	return s.String()
  6206  }
  6207  
  6208  // Validate inspects the fields of the type to determine if they are valid.
  6209  func (s *OrcSerDe) Validate() error {
  6210  	invalidParams := request.ErrInvalidParams{Context: "OrcSerDe"}
  6211  	if s.BlockSizeBytes != nil && *s.BlockSizeBytes < 6.7108864e+07 {
  6212  		invalidParams.Add(request.NewErrParamMinValue("BlockSizeBytes", 6.7108864e+07))
  6213  	}
  6214  	if s.RowIndexStride != nil && *s.RowIndexStride < 1000 {
  6215  		invalidParams.Add(request.NewErrParamMinValue("RowIndexStride", 1000))
  6216  	}
  6217  	if s.StripeSizeBytes != nil && *s.StripeSizeBytes < 8.388608e+06 {
  6218  		invalidParams.Add(request.NewErrParamMinValue("StripeSizeBytes", 8.388608e+06))
  6219  	}
  6220  
  6221  	if invalidParams.Len() > 0 {
  6222  		return invalidParams
  6223  	}
  6224  	return nil
  6225  }
  6226  
  6227  // SetBlockSizeBytes sets the BlockSizeBytes field's value.
  6228  func (s *OrcSerDe) SetBlockSizeBytes(v int64) *OrcSerDe {
  6229  	s.BlockSizeBytes = &v
  6230  	return s
  6231  }
  6232  
  6233  // SetBloomFilterColumns sets the BloomFilterColumns field's value.
  6234  func (s *OrcSerDe) SetBloomFilterColumns(v []*string) *OrcSerDe {
  6235  	s.BloomFilterColumns = v
  6236  	return s
  6237  }
  6238  
  6239  // SetBloomFilterFalsePositiveProbability sets the BloomFilterFalsePositiveProbability field's value.
  6240  func (s *OrcSerDe) SetBloomFilterFalsePositiveProbability(v float64) *OrcSerDe {
  6241  	s.BloomFilterFalsePositiveProbability = &v
  6242  	return s
  6243  }
  6244  
  6245  // SetCompression sets the Compression field's value.
  6246  func (s *OrcSerDe) SetCompression(v string) *OrcSerDe {
  6247  	s.Compression = &v
  6248  	return s
  6249  }
  6250  
  6251  // SetDictionaryKeyThreshold sets the DictionaryKeyThreshold field's value.
  6252  func (s *OrcSerDe) SetDictionaryKeyThreshold(v float64) *OrcSerDe {
  6253  	s.DictionaryKeyThreshold = &v
  6254  	return s
  6255  }
  6256  
  6257  // SetEnablePadding sets the EnablePadding field's value.
  6258  func (s *OrcSerDe) SetEnablePadding(v bool) *OrcSerDe {
  6259  	s.EnablePadding = &v
  6260  	return s
  6261  }
  6262  
  6263  // SetFormatVersion sets the FormatVersion field's value.
  6264  func (s *OrcSerDe) SetFormatVersion(v string) *OrcSerDe {
  6265  	s.FormatVersion = &v
  6266  	return s
  6267  }
  6268  
  6269  // SetPaddingTolerance sets the PaddingTolerance field's value.
  6270  func (s *OrcSerDe) SetPaddingTolerance(v float64) *OrcSerDe {
  6271  	s.PaddingTolerance = &v
  6272  	return s
  6273  }
  6274  
  6275  // SetRowIndexStride sets the RowIndexStride field's value.
  6276  func (s *OrcSerDe) SetRowIndexStride(v int64) *OrcSerDe {
  6277  	s.RowIndexStride = &v
  6278  	return s
  6279  }
  6280  
  6281  // SetStripeSizeBytes sets the StripeSizeBytes field's value.
  6282  func (s *OrcSerDe) SetStripeSizeBytes(v int64) *OrcSerDe {
  6283  	s.StripeSizeBytes = &v
  6284  	return s
  6285  }
  6286  
  6287  // Specifies the serializer that you want Kinesis Data Firehose to use to convert
  6288  // the format of your data before it writes it to Amazon S3. This parameter
  6289  // is required if Enabled is set to true.
  6290  type OutputFormatConfiguration struct {
  6291  	_ struct{} `type:"structure"`
  6292  
  6293  	// Specifies which serializer to use. You can choose either the ORC SerDe or
  6294  	// the Parquet SerDe. If both are non-null, the server rejects the request.
  6295  	Serializer *Serializer `type:"structure"`
  6296  }
  6297  
  6298  // String returns the string representation.
  6299  //
  6300  // API parameter values that are decorated as "sensitive" in the API will not
  6301  // be included in the string output. The member name will be present, but the
  6302  // value will be replaced with "sensitive".
  6303  func (s OutputFormatConfiguration) String() string {
  6304  	return awsutil.Prettify(s)
  6305  }
  6306  
  6307  // GoString returns the string representation.
  6308  //
  6309  // API parameter values that are decorated as "sensitive" in the API will not
  6310  // be included in the string output. The member name will be present, but the
  6311  // value will be replaced with "sensitive".
  6312  func (s OutputFormatConfiguration) GoString() string {
  6313  	return s.String()
  6314  }
  6315  
  6316  // Validate inspects the fields of the type to determine if they are valid.
  6317  func (s *OutputFormatConfiguration) Validate() error {
  6318  	invalidParams := request.ErrInvalidParams{Context: "OutputFormatConfiguration"}
  6319  	if s.Serializer != nil {
  6320  		if err := s.Serializer.Validate(); err != nil {
  6321  			invalidParams.AddNested("Serializer", err.(request.ErrInvalidParams))
  6322  		}
  6323  	}
  6324  
  6325  	if invalidParams.Len() > 0 {
  6326  		return invalidParams
  6327  	}
  6328  	return nil
  6329  }
  6330  
  6331  // SetSerializer sets the Serializer field's value.
  6332  func (s *OutputFormatConfiguration) SetSerializer(v *Serializer) *OutputFormatConfiguration {
  6333  	s.Serializer = v
  6334  	return s
  6335  }
  6336  
  6337  // A serializer to use for converting data to the Parquet format before storing
  6338  // it in Amazon S3. For more information, see Apache Parquet (https://parquet.apache.org/documentation/latest/).
  6339  type ParquetSerDe struct {
  6340  	_ struct{} `type:"structure"`
  6341  
  6342  	// The Hadoop Distributed File System (HDFS) block size. This is useful if you
  6343  	// intend to copy the data from Amazon S3 to HDFS before querying. The default
  6344  	// is 256 MiB and the minimum is 64 MiB. Kinesis Data Firehose uses this value
  6345  	// for padding calculations.
  6346  	BlockSizeBytes *int64 `min:"6.7108864e+07" type:"integer"`
  6347  
  6348  	// The compression code to use over data blocks. The possible values are UNCOMPRESSED,
  6349  	// SNAPPY, and GZIP, with the default being SNAPPY. Use SNAPPY for higher decompression
  6350  	// speed. Use GZIP if the compression ratio is more important than speed.
  6351  	Compression *string `type:"string" enum:"ParquetCompression"`
  6352  
  6353  	// Indicates whether to enable dictionary compression.
  6354  	EnableDictionaryCompression *bool `type:"boolean"`
  6355  
  6356  	// The maximum amount of padding to apply. This is useful if you intend to copy
  6357  	// the data from Amazon S3 to HDFS before querying. The default is 0.
  6358  	MaxPaddingBytes *int64 `type:"integer"`
  6359  
  6360  	// The Parquet page size. Column chunks are divided into pages. A page is conceptually
  6361  	// an indivisible unit (in terms of compression and encoding). The minimum value
  6362  	// is 64 KiB and the default is 1 MiB.
  6363  	PageSizeBytes *int64 `min:"65536" type:"integer"`
  6364  
  6365  	// Indicates the version of row format to output. The possible values are V1
  6366  	// and V2. The default is V1.
  6367  	WriterVersion *string `type:"string" enum:"ParquetWriterVersion"`
  6368  }
  6369  
  6370  // String returns the string representation.
  6371  //
  6372  // API parameter values that are decorated as "sensitive" in the API will not
  6373  // be included in the string output. The member name will be present, but the
  6374  // value will be replaced with "sensitive".
  6375  func (s ParquetSerDe) String() string {
  6376  	return awsutil.Prettify(s)
  6377  }
  6378  
  6379  // GoString returns the string representation.
  6380  //
  6381  // API parameter values that are decorated as "sensitive" in the API will not
  6382  // be included in the string output. The member name will be present, but the
  6383  // value will be replaced with "sensitive".
  6384  func (s ParquetSerDe) GoString() string {
  6385  	return s.String()
  6386  }
  6387  
  6388  // Validate inspects the fields of the type to determine if they are valid.
  6389  func (s *ParquetSerDe) Validate() error {
  6390  	invalidParams := request.ErrInvalidParams{Context: "ParquetSerDe"}
  6391  	if s.BlockSizeBytes != nil && *s.BlockSizeBytes < 6.7108864e+07 {
  6392  		invalidParams.Add(request.NewErrParamMinValue("BlockSizeBytes", 6.7108864e+07))
  6393  	}
  6394  	if s.PageSizeBytes != nil && *s.PageSizeBytes < 65536 {
  6395  		invalidParams.Add(request.NewErrParamMinValue("PageSizeBytes", 65536))
  6396  	}
  6397  
  6398  	if invalidParams.Len() > 0 {
  6399  		return invalidParams
  6400  	}
  6401  	return nil
  6402  }
  6403  
  6404  // SetBlockSizeBytes sets the BlockSizeBytes field's value.
  6405  func (s *ParquetSerDe) SetBlockSizeBytes(v int64) *ParquetSerDe {
  6406  	s.BlockSizeBytes = &v
  6407  	return s
  6408  }
  6409  
  6410  // SetCompression sets the Compression field's value.
  6411  func (s *ParquetSerDe) SetCompression(v string) *ParquetSerDe {
  6412  	s.Compression = &v
  6413  	return s
  6414  }
  6415  
  6416  // SetEnableDictionaryCompression sets the EnableDictionaryCompression field's value.
  6417  func (s *ParquetSerDe) SetEnableDictionaryCompression(v bool) *ParquetSerDe {
  6418  	s.EnableDictionaryCompression = &v
  6419  	return s
  6420  }
  6421  
  6422  // SetMaxPaddingBytes sets the MaxPaddingBytes field's value.
  6423  func (s *ParquetSerDe) SetMaxPaddingBytes(v int64) *ParquetSerDe {
  6424  	s.MaxPaddingBytes = &v
  6425  	return s
  6426  }
  6427  
  6428  // SetPageSizeBytes sets the PageSizeBytes field's value.
  6429  func (s *ParquetSerDe) SetPageSizeBytes(v int64) *ParquetSerDe {
  6430  	s.PageSizeBytes = &v
  6431  	return s
  6432  }
  6433  
  6434  // SetWriterVersion sets the WriterVersion field's value.
  6435  func (s *ParquetSerDe) SetWriterVersion(v string) *ParquetSerDe {
  6436  	s.WriterVersion = &v
  6437  	return s
  6438  }
  6439  
  6440  // Describes a data processing configuration.
  6441  type ProcessingConfiguration struct {
  6442  	_ struct{} `type:"structure"`
  6443  
  6444  	// Enables or disables data processing.
  6445  	Enabled *bool `type:"boolean"`
  6446  
  6447  	// The data processors.
  6448  	Processors []*Processor `type:"list"`
  6449  }
  6450  
  6451  // String returns the string representation.
  6452  //
  6453  // API parameter values that are decorated as "sensitive" in the API will not
  6454  // be included in the string output. The member name will be present, but the
  6455  // value will be replaced with "sensitive".
  6456  func (s ProcessingConfiguration) String() string {
  6457  	return awsutil.Prettify(s)
  6458  }
  6459  
  6460  // GoString returns the string representation.
  6461  //
  6462  // API parameter values that are decorated as "sensitive" in the API will not
  6463  // be included in the string output. The member name will be present, but the
  6464  // value will be replaced with "sensitive".
  6465  func (s ProcessingConfiguration) GoString() string {
  6466  	return s.String()
  6467  }
  6468  
  6469  // Validate inspects the fields of the type to determine if they are valid.
  6470  func (s *ProcessingConfiguration) Validate() error {
  6471  	invalidParams := request.ErrInvalidParams{Context: "ProcessingConfiguration"}
  6472  	if s.Processors != nil {
  6473  		for i, v := range s.Processors {
  6474  			if v == nil {
  6475  				continue
  6476  			}
  6477  			if err := v.Validate(); err != nil {
  6478  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Processors", i), err.(request.ErrInvalidParams))
  6479  			}
  6480  		}
  6481  	}
  6482  
  6483  	if invalidParams.Len() > 0 {
  6484  		return invalidParams
  6485  	}
  6486  	return nil
  6487  }
  6488  
  6489  // SetEnabled sets the Enabled field's value.
  6490  func (s *ProcessingConfiguration) SetEnabled(v bool) *ProcessingConfiguration {
  6491  	s.Enabled = &v
  6492  	return s
  6493  }
  6494  
  6495  // SetProcessors sets the Processors field's value.
  6496  func (s *ProcessingConfiguration) SetProcessors(v []*Processor) *ProcessingConfiguration {
  6497  	s.Processors = v
  6498  	return s
  6499  }
  6500  
  6501  // Describes a data processor.
  6502  type Processor struct {
  6503  	_ struct{} `type:"structure"`
  6504  
  6505  	// The processor parameters.
  6506  	Parameters []*ProcessorParameter `type:"list"`
  6507  
  6508  	// The type of processor.
  6509  	//
  6510  	// Type is a required field
  6511  	Type *string `type:"string" required:"true" enum:"ProcessorType"`
  6512  }
  6513  
  6514  // String returns the string representation.
  6515  //
  6516  // API parameter values that are decorated as "sensitive" in the API will not
  6517  // be included in the string output. The member name will be present, but the
  6518  // value will be replaced with "sensitive".
  6519  func (s Processor) String() string {
  6520  	return awsutil.Prettify(s)
  6521  }
  6522  
  6523  // GoString returns the string representation.
  6524  //
  6525  // API parameter values that are decorated as "sensitive" in the API will not
  6526  // be included in the string output. The member name will be present, but the
  6527  // value will be replaced with "sensitive".
  6528  func (s Processor) GoString() string {
  6529  	return s.String()
  6530  }
  6531  
  6532  // Validate inspects the fields of the type to determine if they are valid.
  6533  func (s *Processor) Validate() error {
  6534  	invalidParams := request.ErrInvalidParams{Context: "Processor"}
  6535  	if s.Type == nil {
  6536  		invalidParams.Add(request.NewErrParamRequired("Type"))
  6537  	}
  6538  	if s.Parameters != nil {
  6539  		for i, v := range s.Parameters {
  6540  			if v == nil {
  6541  				continue
  6542  			}
  6543  			if err := v.Validate(); err != nil {
  6544  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Parameters", i), err.(request.ErrInvalidParams))
  6545  			}
  6546  		}
  6547  	}
  6548  
  6549  	if invalidParams.Len() > 0 {
  6550  		return invalidParams
  6551  	}
  6552  	return nil
  6553  }
  6554  
  6555  // SetParameters sets the Parameters field's value.
  6556  func (s *Processor) SetParameters(v []*ProcessorParameter) *Processor {
  6557  	s.Parameters = v
  6558  	return s
  6559  }
  6560  
  6561  // SetType sets the Type field's value.
  6562  func (s *Processor) SetType(v string) *Processor {
  6563  	s.Type = &v
  6564  	return s
  6565  }
  6566  
  6567  // Describes the processor parameter.
  6568  type ProcessorParameter struct {
  6569  	_ struct{} `type:"structure"`
  6570  
  6571  	// The name of the parameter.
  6572  	//
  6573  	// ParameterName is a required field
  6574  	ParameterName *string `type:"string" required:"true" enum:"ProcessorParameterName"`
  6575  
  6576  	// The parameter value.
  6577  	//
  6578  	// ParameterValue is a required field
  6579  	ParameterValue *string `min:"1" type:"string" required:"true"`
  6580  }
  6581  
  6582  // String returns the string representation.
  6583  //
  6584  // API parameter values that are decorated as "sensitive" in the API will not
  6585  // be included in the string output. The member name will be present, but the
  6586  // value will be replaced with "sensitive".
  6587  func (s ProcessorParameter) String() string {
  6588  	return awsutil.Prettify(s)
  6589  }
  6590  
  6591  // GoString returns the string representation.
  6592  //
  6593  // API parameter values that are decorated as "sensitive" in the API will not
  6594  // be included in the string output. The member name will be present, but the
  6595  // value will be replaced with "sensitive".
  6596  func (s ProcessorParameter) GoString() string {
  6597  	return s.String()
  6598  }
  6599  
  6600  // Validate inspects the fields of the type to determine if they are valid.
  6601  func (s *ProcessorParameter) Validate() error {
  6602  	invalidParams := request.ErrInvalidParams{Context: "ProcessorParameter"}
  6603  	if s.ParameterName == nil {
  6604  		invalidParams.Add(request.NewErrParamRequired("ParameterName"))
  6605  	}
  6606  	if s.ParameterValue == nil {
  6607  		invalidParams.Add(request.NewErrParamRequired("ParameterValue"))
  6608  	}
  6609  	if s.ParameterValue != nil && len(*s.ParameterValue) < 1 {
  6610  		invalidParams.Add(request.NewErrParamMinLen("ParameterValue", 1))
  6611  	}
  6612  
  6613  	if invalidParams.Len() > 0 {
  6614  		return invalidParams
  6615  	}
  6616  	return nil
  6617  }
  6618  
  6619  // SetParameterName sets the ParameterName field's value.
  6620  func (s *ProcessorParameter) SetParameterName(v string) *ProcessorParameter {
  6621  	s.ParameterName = &v
  6622  	return s
  6623  }
  6624  
  6625  // SetParameterValue sets the ParameterValue field's value.
  6626  func (s *ProcessorParameter) SetParameterValue(v string) *ProcessorParameter {
  6627  	s.ParameterValue = &v
  6628  	return s
  6629  }
  6630  
  6631  type PutRecordBatchInput struct {
  6632  	_ struct{} `type:"structure"`
  6633  
  6634  	// The name of the delivery stream.
  6635  	//
  6636  	// DeliveryStreamName is a required field
  6637  	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
  6638  
  6639  	// One or more records.
  6640  	//
  6641  	// Records is a required field
  6642  	Records []*Record `min:"1" type:"list" required:"true"`
  6643  }
  6644  
  6645  // String returns the string representation.
  6646  //
  6647  // API parameter values that are decorated as "sensitive" in the API will not
  6648  // be included in the string output. The member name will be present, but the
  6649  // value will be replaced with "sensitive".
  6650  func (s PutRecordBatchInput) String() string {
  6651  	return awsutil.Prettify(s)
  6652  }
  6653  
  6654  // GoString returns the string representation.
  6655  //
  6656  // API parameter values that are decorated as "sensitive" in the API will not
  6657  // be included in the string output. The member name will be present, but the
  6658  // value will be replaced with "sensitive".
  6659  func (s PutRecordBatchInput) GoString() string {
  6660  	return s.String()
  6661  }
  6662  
  6663  // Validate inspects the fields of the type to determine if they are valid.
  6664  func (s *PutRecordBatchInput) Validate() error {
  6665  	invalidParams := request.ErrInvalidParams{Context: "PutRecordBatchInput"}
  6666  	if s.DeliveryStreamName == nil {
  6667  		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
  6668  	}
  6669  	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
  6670  		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
  6671  	}
  6672  	if s.Records == nil {
  6673  		invalidParams.Add(request.NewErrParamRequired("Records"))
  6674  	}
  6675  	if s.Records != nil && len(s.Records) < 1 {
  6676  		invalidParams.Add(request.NewErrParamMinLen("Records", 1))
  6677  	}
  6678  	if s.Records != nil {
  6679  		for i, v := range s.Records {
  6680  			if v == nil {
  6681  				continue
  6682  			}
  6683  			if err := v.Validate(); err != nil {
  6684  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Records", i), err.(request.ErrInvalidParams))
  6685  			}
  6686  		}
  6687  	}
  6688  
  6689  	if invalidParams.Len() > 0 {
  6690  		return invalidParams
  6691  	}
  6692  	return nil
  6693  }
  6694  
  6695  // SetDeliveryStreamName sets the DeliveryStreamName field's value.
  6696  func (s *PutRecordBatchInput) SetDeliveryStreamName(v string) *PutRecordBatchInput {
  6697  	s.DeliveryStreamName = &v
  6698  	return s
  6699  }
  6700  
  6701  // SetRecords sets the Records field's value.
  6702  func (s *PutRecordBatchInput) SetRecords(v []*Record) *PutRecordBatchInput {
  6703  	s.Records = v
  6704  	return s
  6705  }
  6706  
  6707  type PutRecordBatchOutput struct {
  6708  	_ struct{} `type:"structure"`
  6709  
  6710  	// Indicates whether server-side encryption (SSE) was enabled during this operation.
  6711  	Encrypted *bool `type:"boolean"`
  6712  
  6713  	// The number of records that might have failed processing. This number might
  6714  	// be greater than 0 even if the PutRecordBatch call succeeds. Check FailedPutCount
  6715  	// to determine whether there are records that you need to resend.
  6716  	//
  6717  	// FailedPutCount is a required field
  6718  	FailedPutCount *int64 `type:"integer" required:"true"`
  6719  
  6720  	// The results array. For each record, the index of the response element is
  6721  	// the same as the index used in the request array.
  6722  	//
  6723  	// RequestResponses is a required field
  6724  	RequestResponses []*PutRecordBatchResponseEntry `min:"1" type:"list" required:"true"`
  6725  }
  6726  
  6727  // String returns the string representation.
  6728  //
  6729  // API parameter values that are decorated as "sensitive" in the API will not
  6730  // be included in the string output. The member name will be present, but the
  6731  // value will be replaced with "sensitive".
  6732  func (s PutRecordBatchOutput) String() string {
  6733  	return awsutil.Prettify(s)
  6734  }
  6735  
  6736  // GoString returns the string representation.
  6737  //
  6738  // API parameter values that are decorated as "sensitive" in the API will not
  6739  // be included in the string output. The member name will be present, but the
  6740  // value will be replaced with "sensitive".
  6741  func (s PutRecordBatchOutput) GoString() string {
  6742  	return s.String()
  6743  }
  6744  
  6745  // SetEncrypted sets the Encrypted field's value.
  6746  func (s *PutRecordBatchOutput) SetEncrypted(v bool) *PutRecordBatchOutput {
  6747  	s.Encrypted = &v
  6748  	return s
  6749  }
  6750  
  6751  // SetFailedPutCount sets the FailedPutCount field's value.
  6752  func (s *PutRecordBatchOutput) SetFailedPutCount(v int64) *PutRecordBatchOutput {
  6753  	s.FailedPutCount = &v
  6754  	return s
  6755  }
  6756  
  6757  // SetRequestResponses sets the RequestResponses field's value.
  6758  func (s *PutRecordBatchOutput) SetRequestResponses(v []*PutRecordBatchResponseEntry) *PutRecordBatchOutput {
  6759  	s.RequestResponses = v
  6760  	return s
  6761  }
  6762  
  6763  // Contains the result for an individual record from a PutRecordBatch request.
  6764  // If the record is successfully added to your delivery stream, it receives
  6765  // a record ID. If the record fails to be added to your delivery stream, the
  6766  // result includes an error code and an error message.
  6767  type PutRecordBatchResponseEntry struct {
  6768  	_ struct{} `type:"structure"`
  6769  
  6770  	// The error code for an individual record result.
  6771  	ErrorCode *string `type:"string"`
  6772  
  6773  	// The error message for an individual record result.
  6774  	ErrorMessage *string `type:"string"`
  6775  
  6776  	// The ID of the record.
  6777  	RecordId *string `min:"1" type:"string"`
  6778  }
  6779  
  6780  // String returns the string representation.
  6781  //
  6782  // API parameter values that are decorated as "sensitive" in the API will not
  6783  // be included in the string output. The member name will be present, but the
  6784  // value will be replaced with "sensitive".
  6785  func (s PutRecordBatchResponseEntry) String() string {
  6786  	return awsutil.Prettify(s)
  6787  }
  6788  
  6789  // GoString returns the string representation.
  6790  //
  6791  // API parameter values that are decorated as "sensitive" in the API will not
  6792  // be included in the string output. The member name will be present, but the
  6793  // value will be replaced with "sensitive".
  6794  func (s PutRecordBatchResponseEntry) GoString() string {
  6795  	return s.String()
  6796  }
  6797  
  6798  // SetErrorCode sets the ErrorCode field's value.
  6799  func (s *PutRecordBatchResponseEntry) SetErrorCode(v string) *PutRecordBatchResponseEntry {
  6800  	s.ErrorCode = &v
  6801  	return s
  6802  }
  6803  
  6804  // SetErrorMessage sets the ErrorMessage field's value.
  6805  func (s *PutRecordBatchResponseEntry) SetErrorMessage(v string) *PutRecordBatchResponseEntry {
  6806  	s.ErrorMessage = &v
  6807  	return s
  6808  }
  6809  
  6810  // SetRecordId sets the RecordId field's value.
  6811  func (s *PutRecordBatchResponseEntry) SetRecordId(v string) *PutRecordBatchResponseEntry {
  6812  	s.RecordId = &v
  6813  	return s
  6814  }
  6815  
  6816  type PutRecordInput struct {
  6817  	_ struct{} `type:"structure"`
  6818  
  6819  	// The name of the delivery stream.
  6820  	//
  6821  	// DeliveryStreamName is a required field
  6822  	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
  6823  
  6824  	// The record.
  6825  	//
  6826  	// Record is a required field
  6827  	Record *Record `type:"structure" required:"true"`
  6828  }
  6829  
  6830  // String returns the string representation.
  6831  //
  6832  // API parameter values that are decorated as "sensitive" in the API will not
  6833  // be included in the string output. The member name will be present, but the
  6834  // value will be replaced with "sensitive".
  6835  func (s PutRecordInput) String() string {
  6836  	return awsutil.Prettify(s)
  6837  }
  6838  
  6839  // GoString returns the string representation.
  6840  //
  6841  // API parameter values that are decorated as "sensitive" in the API will not
  6842  // be included in the string output. The member name will be present, but the
  6843  // value will be replaced with "sensitive".
  6844  func (s PutRecordInput) GoString() string {
  6845  	return s.String()
  6846  }
  6847  
  6848  // Validate inspects the fields of the type to determine if they are valid.
  6849  func (s *PutRecordInput) Validate() error {
  6850  	invalidParams := request.ErrInvalidParams{Context: "PutRecordInput"}
  6851  	if s.DeliveryStreamName == nil {
  6852  		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
  6853  	}
  6854  	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
  6855  		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
  6856  	}
  6857  	if s.Record == nil {
  6858  		invalidParams.Add(request.NewErrParamRequired("Record"))
  6859  	}
  6860  	if s.Record != nil {
  6861  		if err := s.Record.Validate(); err != nil {
  6862  			invalidParams.AddNested("Record", err.(request.ErrInvalidParams))
  6863  		}
  6864  	}
  6865  
  6866  	if invalidParams.Len() > 0 {
  6867  		return invalidParams
  6868  	}
  6869  	return nil
  6870  }
  6871  
  6872  // SetDeliveryStreamName sets the DeliveryStreamName field's value.
  6873  func (s *PutRecordInput) SetDeliveryStreamName(v string) *PutRecordInput {
  6874  	s.DeliveryStreamName = &v
  6875  	return s
  6876  }
  6877  
  6878  // SetRecord sets the Record field's value.
  6879  func (s *PutRecordInput) SetRecord(v *Record) *PutRecordInput {
  6880  	s.Record = v
  6881  	return s
  6882  }
  6883  
  6884  type PutRecordOutput struct {
  6885  	_ struct{} `type:"structure"`
  6886  
  6887  	// Indicates whether server-side encryption (SSE) was enabled during this operation.
  6888  	Encrypted *bool `type:"boolean"`
  6889  
  6890  	// The ID of the record.
  6891  	//
  6892  	// RecordId is a required field
  6893  	RecordId *string `min:"1" type:"string" required:"true"`
  6894  }
  6895  
  6896  // String returns the string representation.
  6897  //
  6898  // API parameter values that are decorated as "sensitive" in the API will not
  6899  // be included in the string output. The member name will be present, but the
  6900  // value will be replaced with "sensitive".
  6901  func (s PutRecordOutput) String() string {
  6902  	return awsutil.Prettify(s)
  6903  }
  6904  
  6905  // GoString returns the string representation.
  6906  //
  6907  // API parameter values that are decorated as "sensitive" in the API will not
  6908  // be included in the string output. The member name will be present, but the
  6909  // value will be replaced with "sensitive".
  6910  func (s PutRecordOutput) GoString() string {
  6911  	return s.String()
  6912  }
  6913  
  6914  // SetEncrypted sets the Encrypted field's value.
  6915  func (s *PutRecordOutput) SetEncrypted(v bool) *PutRecordOutput {
  6916  	s.Encrypted = &v
  6917  	return s
  6918  }
  6919  
  6920  // SetRecordId sets the RecordId field's value.
  6921  func (s *PutRecordOutput) SetRecordId(v string) *PutRecordOutput {
  6922  	s.RecordId = &v
  6923  	return s
  6924  }
  6925  
  6926  // The unit of data in a delivery stream.
  6927  type Record struct {
  6928  	_ struct{} `type:"structure"`
  6929  
  6930  	// The data blob, which is base64-encoded when the blob is serialized. The maximum
  6931  	// size of the data blob, before base64-encoding, is 1,000 KiB.
  6932  	// Data is automatically base64 encoded/decoded by the SDK.
  6933  	//
  6934  	// Data is a required field
  6935  	Data []byte `type:"blob" required:"true"`
  6936  }
  6937  
  6938  // String returns the string representation.
  6939  //
  6940  // API parameter values that are decorated as "sensitive" in the API will not
  6941  // be included in the string output. The member name will be present, but the
  6942  // value will be replaced with "sensitive".
  6943  func (s Record) String() string {
  6944  	return awsutil.Prettify(s)
  6945  }
  6946  
  6947  // GoString returns the string representation.
  6948  //
  6949  // API parameter values that are decorated as "sensitive" in the API will not
  6950  // be included in the string output. The member name will be present, but the
  6951  // value will be replaced with "sensitive".
  6952  func (s Record) GoString() string {
  6953  	return s.String()
  6954  }
  6955  
  6956  // Validate inspects the fields of the type to determine if they are valid.
  6957  func (s *Record) Validate() error {
  6958  	invalidParams := request.ErrInvalidParams{Context: "Record"}
  6959  	if s.Data == nil {
  6960  		invalidParams.Add(request.NewErrParamRequired("Data"))
  6961  	}
  6962  
  6963  	if invalidParams.Len() > 0 {
  6964  		return invalidParams
  6965  	}
  6966  	return nil
  6967  }
  6968  
  6969  // SetData sets the Data field's value.
  6970  func (s *Record) SetData(v []byte) *Record {
  6971  	s.Data = v
  6972  	return s
  6973  }
  6974  
  6975  // Describes the configuration of a destination in Amazon Redshift.
  6976  type RedshiftDestinationConfiguration struct {
  6977  	_ struct{} `type:"structure"`
  6978  
  6979  	// The CloudWatch logging options for your delivery stream.
  6980  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  6981  
  6982  	// The database connection string.
  6983  	//
  6984  	// ClusterJDBCURL is a required field
  6985  	ClusterJDBCURL *string `min:"1" type:"string" required:"true"`
  6986  
  6987  	// The COPY command.
  6988  	//
  6989  	// CopyCommand is a required field
  6990  	CopyCommand *CopyCommand `type:"structure" required:"true"`
  6991  
  6992  	// The user password.
  6993  	//
  6994  	// Password is a sensitive parameter and its value will be
  6995  	// replaced with "sensitive" in string returned by RedshiftDestinationConfiguration's
  6996  	// String and GoString methods.
  6997  	//
  6998  	// Password is a required field
  6999  	Password *string `min:"6" type:"string" required:"true" sensitive:"true"`
  7000  
  7001  	// The data processing configuration.
  7002  	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
  7003  
  7004  	// The retry behavior in case Kinesis Data Firehose is unable to deliver documents
  7005  	// to Amazon Redshift. Default value is 3600 (60 minutes).
  7006  	RetryOptions *RedshiftRetryOptions `type:"structure"`
  7007  
  7008  	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
  7009  	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  7010  	//
  7011  	// RoleARN is a required field
  7012  	RoleARN *string `min:"1" type:"string" required:"true"`
  7013  
  7014  	// The configuration for backup in Amazon S3.
  7015  	S3BackupConfiguration *S3DestinationConfiguration `type:"structure"`
  7016  
  7017  	// The Amazon S3 backup mode. After you create a delivery stream, you can update
  7018  	// it to enable Amazon S3 backup if it is disabled. If backup is enabled, you
  7019  	// can't update the delivery stream to disable it.
  7020  	S3BackupMode *string `type:"string" enum:"RedshiftS3BackupMode"`
  7021  
  7022  	// The configuration for the intermediate Amazon S3 location from which Amazon
  7023  	// Redshift obtains data. Restrictions are described in the topic for CreateDeliveryStream.
  7024  	//
  7025  	// The compression formats SNAPPY or ZIP cannot be specified in RedshiftDestinationConfiguration.S3Configuration
  7026  	// because the Amazon Redshift COPY operation that reads from the S3 bucket
  7027  	// doesn't support these compression formats.
  7028  	//
  7029  	// S3Configuration is a required field
  7030  	S3Configuration *S3DestinationConfiguration `type:"structure" required:"true"`
  7031  
  7032  	// The name of the user.
  7033  	//
  7034  	// Username is a sensitive parameter and its value will be
  7035  	// replaced with "sensitive" in string returned by RedshiftDestinationConfiguration's
  7036  	// String and GoString methods.
  7037  	//
  7038  	// Username is a required field
  7039  	Username *string `min:"1" type:"string" required:"true" sensitive:"true"`
  7040  }
  7041  
  7042  // String returns the string representation.
  7043  //
  7044  // API parameter values that are decorated as "sensitive" in the API will not
  7045  // be included in the string output. The member name will be present, but the
  7046  // value will be replaced with "sensitive".
  7047  func (s RedshiftDestinationConfiguration) String() string {
  7048  	return awsutil.Prettify(s)
  7049  }
  7050  
  7051  // GoString 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 RedshiftDestinationConfiguration) GoString() string {
  7057  	return s.String()
  7058  }
  7059  
  7060  // Validate inspects the fields of the type to determine if they are valid.
  7061  func (s *RedshiftDestinationConfiguration) Validate() error {
  7062  	invalidParams := request.ErrInvalidParams{Context: "RedshiftDestinationConfiguration"}
  7063  	if s.ClusterJDBCURL == nil {
  7064  		invalidParams.Add(request.NewErrParamRequired("ClusterJDBCURL"))
  7065  	}
  7066  	if s.ClusterJDBCURL != nil && len(*s.ClusterJDBCURL) < 1 {
  7067  		invalidParams.Add(request.NewErrParamMinLen("ClusterJDBCURL", 1))
  7068  	}
  7069  	if s.CopyCommand == nil {
  7070  		invalidParams.Add(request.NewErrParamRequired("CopyCommand"))
  7071  	}
  7072  	if s.Password == nil {
  7073  		invalidParams.Add(request.NewErrParamRequired("Password"))
  7074  	}
  7075  	if s.Password != nil && len(*s.Password) < 6 {
  7076  		invalidParams.Add(request.NewErrParamMinLen("Password", 6))
  7077  	}
  7078  	if s.RoleARN == nil {
  7079  		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
  7080  	}
  7081  	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
  7082  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
  7083  	}
  7084  	if s.S3Configuration == nil {
  7085  		invalidParams.Add(request.NewErrParamRequired("S3Configuration"))
  7086  	}
  7087  	if s.Username == nil {
  7088  		invalidParams.Add(request.NewErrParamRequired("Username"))
  7089  	}
  7090  	if s.Username != nil && len(*s.Username) < 1 {
  7091  		invalidParams.Add(request.NewErrParamMinLen("Username", 1))
  7092  	}
  7093  	if s.CopyCommand != nil {
  7094  		if err := s.CopyCommand.Validate(); err != nil {
  7095  			invalidParams.AddNested("CopyCommand", err.(request.ErrInvalidParams))
  7096  		}
  7097  	}
  7098  	if s.ProcessingConfiguration != nil {
  7099  		if err := s.ProcessingConfiguration.Validate(); err != nil {
  7100  			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
  7101  		}
  7102  	}
  7103  	if s.S3BackupConfiguration != nil {
  7104  		if err := s.S3BackupConfiguration.Validate(); err != nil {
  7105  			invalidParams.AddNested("S3BackupConfiguration", err.(request.ErrInvalidParams))
  7106  		}
  7107  	}
  7108  	if s.S3Configuration != nil {
  7109  		if err := s.S3Configuration.Validate(); err != nil {
  7110  			invalidParams.AddNested("S3Configuration", err.(request.ErrInvalidParams))
  7111  		}
  7112  	}
  7113  
  7114  	if invalidParams.Len() > 0 {
  7115  		return invalidParams
  7116  	}
  7117  	return nil
  7118  }
  7119  
  7120  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  7121  func (s *RedshiftDestinationConfiguration) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *RedshiftDestinationConfiguration {
  7122  	s.CloudWatchLoggingOptions = v
  7123  	return s
  7124  }
  7125  
  7126  // SetClusterJDBCURL sets the ClusterJDBCURL field's value.
  7127  func (s *RedshiftDestinationConfiguration) SetClusterJDBCURL(v string) *RedshiftDestinationConfiguration {
  7128  	s.ClusterJDBCURL = &v
  7129  	return s
  7130  }
  7131  
  7132  // SetCopyCommand sets the CopyCommand field's value.
  7133  func (s *RedshiftDestinationConfiguration) SetCopyCommand(v *CopyCommand) *RedshiftDestinationConfiguration {
  7134  	s.CopyCommand = v
  7135  	return s
  7136  }
  7137  
  7138  // SetPassword sets the Password field's value.
  7139  func (s *RedshiftDestinationConfiguration) SetPassword(v string) *RedshiftDestinationConfiguration {
  7140  	s.Password = &v
  7141  	return s
  7142  }
  7143  
  7144  // SetProcessingConfiguration sets the ProcessingConfiguration field's value.
  7145  func (s *RedshiftDestinationConfiguration) SetProcessingConfiguration(v *ProcessingConfiguration) *RedshiftDestinationConfiguration {
  7146  	s.ProcessingConfiguration = v
  7147  	return s
  7148  }
  7149  
  7150  // SetRetryOptions sets the RetryOptions field's value.
  7151  func (s *RedshiftDestinationConfiguration) SetRetryOptions(v *RedshiftRetryOptions) *RedshiftDestinationConfiguration {
  7152  	s.RetryOptions = v
  7153  	return s
  7154  }
  7155  
  7156  // SetRoleARN sets the RoleARN field's value.
  7157  func (s *RedshiftDestinationConfiguration) SetRoleARN(v string) *RedshiftDestinationConfiguration {
  7158  	s.RoleARN = &v
  7159  	return s
  7160  }
  7161  
  7162  // SetS3BackupConfiguration sets the S3BackupConfiguration field's value.
  7163  func (s *RedshiftDestinationConfiguration) SetS3BackupConfiguration(v *S3DestinationConfiguration) *RedshiftDestinationConfiguration {
  7164  	s.S3BackupConfiguration = v
  7165  	return s
  7166  }
  7167  
  7168  // SetS3BackupMode sets the S3BackupMode field's value.
  7169  func (s *RedshiftDestinationConfiguration) SetS3BackupMode(v string) *RedshiftDestinationConfiguration {
  7170  	s.S3BackupMode = &v
  7171  	return s
  7172  }
  7173  
  7174  // SetS3Configuration sets the S3Configuration field's value.
  7175  func (s *RedshiftDestinationConfiguration) SetS3Configuration(v *S3DestinationConfiguration) *RedshiftDestinationConfiguration {
  7176  	s.S3Configuration = v
  7177  	return s
  7178  }
  7179  
  7180  // SetUsername sets the Username field's value.
  7181  func (s *RedshiftDestinationConfiguration) SetUsername(v string) *RedshiftDestinationConfiguration {
  7182  	s.Username = &v
  7183  	return s
  7184  }
  7185  
  7186  // Describes a destination in Amazon Redshift.
  7187  type RedshiftDestinationDescription struct {
  7188  	_ struct{} `type:"structure"`
  7189  
  7190  	// The Amazon CloudWatch logging options for your delivery stream.
  7191  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  7192  
  7193  	// The database connection string.
  7194  	//
  7195  	// ClusterJDBCURL is a required field
  7196  	ClusterJDBCURL *string `min:"1" type:"string" required:"true"`
  7197  
  7198  	// The COPY command.
  7199  	//
  7200  	// CopyCommand is a required field
  7201  	CopyCommand *CopyCommand `type:"structure" required:"true"`
  7202  
  7203  	// The data processing configuration.
  7204  	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
  7205  
  7206  	// The retry behavior in case Kinesis Data Firehose is unable to deliver documents
  7207  	// to Amazon Redshift. Default value is 3600 (60 minutes).
  7208  	RetryOptions *RedshiftRetryOptions `type:"structure"`
  7209  
  7210  	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
  7211  	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  7212  	//
  7213  	// RoleARN is a required field
  7214  	RoleARN *string `min:"1" type:"string" required:"true"`
  7215  
  7216  	// The configuration for backup in Amazon S3.
  7217  	S3BackupDescription *S3DestinationDescription `type:"structure"`
  7218  
  7219  	// The Amazon S3 backup mode.
  7220  	S3BackupMode *string `type:"string" enum:"RedshiftS3BackupMode"`
  7221  
  7222  	// The Amazon S3 destination.
  7223  	//
  7224  	// S3DestinationDescription is a required field
  7225  	S3DestinationDescription *S3DestinationDescription `type:"structure" required:"true"`
  7226  
  7227  	// The name of the user.
  7228  	//
  7229  	// Username is a sensitive parameter and its value will be
  7230  	// replaced with "sensitive" in string returned by RedshiftDestinationDescription's
  7231  	// String and GoString methods.
  7232  	//
  7233  	// Username is a required field
  7234  	Username *string `min:"1" type:"string" required:"true" sensitive:"true"`
  7235  }
  7236  
  7237  // String returns the string representation.
  7238  //
  7239  // API parameter values that are decorated as "sensitive" in the API will not
  7240  // be included in the string output. The member name will be present, but the
  7241  // value will be replaced with "sensitive".
  7242  func (s RedshiftDestinationDescription) String() string {
  7243  	return awsutil.Prettify(s)
  7244  }
  7245  
  7246  // GoString returns the string representation.
  7247  //
  7248  // API parameter values that are decorated as "sensitive" in the API will not
  7249  // be included in the string output. The member name will be present, but the
  7250  // value will be replaced with "sensitive".
  7251  func (s RedshiftDestinationDescription) GoString() string {
  7252  	return s.String()
  7253  }
  7254  
  7255  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  7256  func (s *RedshiftDestinationDescription) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *RedshiftDestinationDescription {
  7257  	s.CloudWatchLoggingOptions = v
  7258  	return s
  7259  }
  7260  
  7261  // SetClusterJDBCURL sets the ClusterJDBCURL field's value.
  7262  func (s *RedshiftDestinationDescription) SetClusterJDBCURL(v string) *RedshiftDestinationDescription {
  7263  	s.ClusterJDBCURL = &v
  7264  	return s
  7265  }
  7266  
  7267  // SetCopyCommand sets the CopyCommand field's value.
  7268  func (s *RedshiftDestinationDescription) SetCopyCommand(v *CopyCommand) *RedshiftDestinationDescription {
  7269  	s.CopyCommand = v
  7270  	return s
  7271  }
  7272  
  7273  // SetProcessingConfiguration sets the ProcessingConfiguration field's value.
  7274  func (s *RedshiftDestinationDescription) SetProcessingConfiguration(v *ProcessingConfiguration) *RedshiftDestinationDescription {
  7275  	s.ProcessingConfiguration = v
  7276  	return s
  7277  }
  7278  
  7279  // SetRetryOptions sets the RetryOptions field's value.
  7280  func (s *RedshiftDestinationDescription) SetRetryOptions(v *RedshiftRetryOptions) *RedshiftDestinationDescription {
  7281  	s.RetryOptions = v
  7282  	return s
  7283  }
  7284  
  7285  // SetRoleARN sets the RoleARN field's value.
  7286  func (s *RedshiftDestinationDescription) SetRoleARN(v string) *RedshiftDestinationDescription {
  7287  	s.RoleARN = &v
  7288  	return s
  7289  }
  7290  
  7291  // SetS3BackupDescription sets the S3BackupDescription field's value.
  7292  func (s *RedshiftDestinationDescription) SetS3BackupDescription(v *S3DestinationDescription) *RedshiftDestinationDescription {
  7293  	s.S3BackupDescription = v
  7294  	return s
  7295  }
  7296  
  7297  // SetS3BackupMode sets the S3BackupMode field's value.
  7298  func (s *RedshiftDestinationDescription) SetS3BackupMode(v string) *RedshiftDestinationDescription {
  7299  	s.S3BackupMode = &v
  7300  	return s
  7301  }
  7302  
  7303  // SetS3DestinationDescription sets the S3DestinationDescription field's value.
  7304  func (s *RedshiftDestinationDescription) SetS3DestinationDescription(v *S3DestinationDescription) *RedshiftDestinationDescription {
  7305  	s.S3DestinationDescription = v
  7306  	return s
  7307  }
  7308  
  7309  // SetUsername sets the Username field's value.
  7310  func (s *RedshiftDestinationDescription) SetUsername(v string) *RedshiftDestinationDescription {
  7311  	s.Username = &v
  7312  	return s
  7313  }
  7314  
  7315  // Describes an update for a destination in Amazon Redshift.
  7316  type RedshiftDestinationUpdate struct {
  7317  	_ struct{} `type:"structure"`
  7318  
  7319  	// The Amazon CloudWatch logging options for your delivery stream.
  7320  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  7321  
  7322  	// The database connection string.
  7323  	ClusterJDBCURL *string `min:"1" type:"string"`
  7324  
  7325  	// The COPY command.
  7326  	CopyCommand *CopyCommand `type:"structure"`
  7327  
  7328  	// The user password.
  7329  	//
  7330  	// Password is a sensitive parameter and its value will be
  7331  	// replaced with "sensitive" in string returned by RedshiftDestinationUpdate's
  7332  	// String and GoString methods.
  7333  	Password *string `min:"6" type:"string" sensitive:"true"`
  7334  
  7335  	// The data processing configuration.
  7336  	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
  7337  
  7338  	// The retry behavior in case Kinesis Data Firehose is unable to deliver documents
  7339  	// to Amazon Redshift. Default value is 3600 (60 minutes).
  7340  	RetryOptions *RedshiftRetryOptions `type:"structure"`
  7341  
  7342  	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
  7343  	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  7344  	RoleARN *string `min:"1" type:"string"`
  7345  
  7346  	// You can update a delivery stream to enable Amazon S3 backup if it is disabled.
  7347  	// If backup is enabled, you can't update the delivery stream to disable it.
  7348  	S3BackupMode *string `type:"string" enum:"RedshiftS3BackupMode"`
  7349  
  7350  	// The Amazon S3 destination for backup.
  7351  	S3BackupUpdate *S3DestinationUpdate `type:"structure"`
  7352  
  7353  	// The Amazon S3 destination.
  7354  	//
  7355  	// The compression formats SNAPPY or ZIP cannot be specified in RedshiftDestinationUpdate.S3Update
  7356  	// because the Amazon Redshift COPY operation that reads from the S3 bucket
  7357  	// doesn't support these compression formats.
  7358  	S3Update *S3DestinationUpdate `type:"structure"`
  7359  
  7360  	// The name of the user.
  7361  	//
  7362  	// Username is a sensitive parameter and its value will be
  7363  	// replaced with "sensitive" in string returned by RedshiftDestinationUpdate's
  7364  	// String and GoString methods.
  7365  	Username *string `min:"1" type:"string" sensitive:"true"`
  7366  }
  7367  
  7368  // String returns the string representation.
  7369  //
  7370  // API parameter values that are decorated as "sensitive" in the API will not
  7371  // be included in the string output. The member name will be present, but the
  7372  // value will be replaced with "sensitive".
  7373  func (s RedshiftDestinationUpdate) String() string {
  7374  	return awsutil.Prettify(s)
  7375  }
  7376  
  7377  // GoString returns the string representation.
  7378  //
  7379  // API parameter values that are decorated as "sensitive" in the API will not
  7380  // be included in the string output. The member name will be present, but the
  7381  // value will be replaced with "sensitive".
  7382  func (s RedshiftDestinationUpdate) GoString() string {
  7383  	return s.String()
  7384  }
  7385  
  7386  // Validate inspects the fields of the type to determine if they are valid.
  7387  func (s *RedshiftDestinationUpdate) Validate() error {
  7388  	invalidParams := request.ErrInvalidParams{Context: "RedshiftDestinationUpdate"}
  7389  	if s.ClusterJDBCURL != nil && len(*s.ClusterJDBCURL) < 1 {
  7390  		invalidParams.Add(request.NewErrParamMinLen("ClusterJDBCURL", 1))
  7391  	}
  7392  	if s.Password != nil && len(*s.Password) < 6 {
  7393  		invalidParams.Add(request.NewErrParamMinLen("Password", 6))
  7394  	}
  7395  	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
  7396  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
  7397  	}
  7398  	if s.Username != nil && len(*s.Username) < 1 {
  7399  		invalidParams.Add(request.NewErrParamMinLen("Username", 1))
  7400  	}
  7401  	if s.CopyCommand != nil {
  7402  		if err := s.CopyCommand.Validate(); err != nil {
  7403  			invalidParams.AddNested("CopyCommand", err.(request.ErrInvalidParams))
  7404  		}
  7405  	}
  7406  	if s.ProcessingConfiguration != nil {
  7407  		if err := s.ProcessingConfiguration.Validate(); err != nil {
  7408  			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
  7409  		}
  7410  	}
  7411  	if s.S3BackupUpdate != nil {
  7412  		if err := s.S3BackupUpdate.Validate(); err != nil {
  7413  			invalidParams.AddNested("S3BackupUpdate", err.(request.ErrInvalidParams))
  7414  		}
  7415  	}
  7416  	if s.S3Update != nil {
  7417  		if err := s.S3Update.Validate(); err != nil {
  7418  			invalidParams.AddNested("S3Update", err.(request.ErrInvalidParams))
  7419  		}
  7420  	}
  7421  
  7422  	if invalidParams.Len() > 0 {
  7423  		return invalidParams
  7424  	}
  7425  	return nil
  7426  }
  7427  
  7428  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  7429  func (s *RedshiftDestinationUpdate) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *RedshiftDestinationUpdate {
  7430  	s.CloudWatchLoggingOptions = v
  7431  	return s
  7432  }
  7433  
  7434  // SetClusterJDBCURL sets the ClusterJDBCURL field's value.
  7435  func (s *RedshiftDestinationUpdate) SetClusterJDBCURL(v string) *RedshiftDestinationUpdate {
  7436  	s.ClusterJDBCURL = &v
  7437  	return s
  7438  }
  7439  
  7440  // SetCopyCommand sets the CopyCommand field's value.
  7441  func (s *RedshiftDestinationUpdate) SetCopyCommand(v *CopyCommand) *RedshiftDestinationUpdate {
  7442  	s.CopyCommand = v
  7443  	return s
  7444  }
  7445  
  7446  // SetPassword sets the Password field's value.
  7447  func (s *RedshiftDestinationUpdate) SetPassword(v string) *RedshiftDestinationUpdate {
  7448  	s.Password = &v
  7449  	return s
  7450  }
  7451  
  7452  // SetProcessingConfiguration sets the ProcessingConfiguration field's value.
  7453  func (s *RedshiftDestinationUpdate) SetProcessingConfiguration(v *ProcessingConfiguration) *RedshiftDestinationUpdate {
  7454  	s.ProcessingConfiguration = v
  7455  	return s
  7456  }
  7457  
  7458  // SetRetryOptions sets the RetryOptions field's value.
  7459  func (s *RedshiftDestinationUpdate) SetRetryOptions(v *RedshiftRetryOptions) *RedshiftDestinationUpdate {
  7460  	s.RetryOptions = v
  7461  	return s
  7462  }
  7463  
  7464  // SetRoleARN sets the RoleARN field's value.
  7465  func (s *RedshiftDestinationUpdate) SetRoleARN(v string) *RedshiftDestinationUpdate {
  7466  	s.RoleARN = &v
  7467  	return s
  7468  }
  7469  
  7470  // SetS3BackupMode sets the S3BackupMode field's value.
  7471  func (s *RedshiftDestinationUpdate) SetS3BackupMode(v string) *RedshiftDestinationUpdate {
  7472  	s.S3BackupMode = &v
  7473  	return s
  7474  }
  7475  
  7476  // SetS3BackupUpdate sets the S3BackupUpdate field's value.
  7477  func (s *RedshiftDestinationUpdate) SetS3BackupUpdate(v *S3DestinationUpdate) *RedshiftDestinationUpdate {
  7478  	s.S3BackupUpdate = v
  7479  	return s
  7480  }
  7481  
  7482  // SetS3Update sets the S3Update field's value.
  7483  func (s *RedshiftDestinationUpdate) SetS3Update(v *S3DestinationUpdate) *RedshiftDestinationUpdate {
  7484  	s.S3Update = v
  7485  	return s
  7486  }
  7487  
  7488  // SetUsername sets the Username field's value.
  7489  func (s *RedshiftDestinationUpdate) SetUsername(v string) *RedshiftDestinationUpdate {
  7490  	s.Username = &v
  7491  	return s
  7492  }
  7493  
  7494  // Configures retry behavior in case Kinesis Data Firehose is unable to deliver
  7495  // documents to Amazon Redshift.
  7496  type RedshiftRetryOptions struct {
  7497  	_ struct{} `type:"structure"`
  7498  
  7499  	// The length of time during which Kinesis Data Firehose retries delivery after
  7500  	// a failure, starting from the initial request and including the first attempt.
  7501  	// The default value is 3600 seconds (60 minutes). Kinesis Data Firehose does
  7502  	// not retry if the value of DurationInSeconds is 0 (zero) or if the first delivery
  7503  	// attempt takes longer than the current value.
  7504  	DurationInSeconds *int64 `type:"integer"`
  7505  }
  7506  
  7507  // String returns the string representation.
  7508  //
  7509  // API parameter values that are decorated as "sensitive" in the API will not
  7510  // be included in the string output. The member name will be present, but the
  7511  // value will be replaced with "sensitive".
  7512  func (s RedshiftRetryOptions) String() string {
  7513  	return awsutil.Prettify(s)
  7514  }
  7515  
  7516  // GoString returns the string representation.
  7517  //
  7518  // API parameter values that are decorated as "sensitive" in the API will not
  7519  // be included in the string output. The member name will be present, but the
  7520  // value will be replaced with "sensitive".
  7521  func (s RedshiftRetryOptions) GoString() string {
  7522  	return s.String()
  7523  }
  7524  
  7525  // SetDurationInSeconds sets the DurationInSeconds field's value.
  7526  func (s *RedshiftRetryOptions) SetDurationInSeconds(v int64) *RedshiftRetryOptions {
  7527  	s.DurationInSeconds = &v
  7528  	return s
  7529  }
  7530  
  7531  // The resource is already in use and not available for this operation.
  7532  type ResourceInUseException struct {
  7533  	_            struct{}                  `type:"structure"`
  7534  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7535  
  7536  	// A message that provides information about the error.
  7537  	Message_ *string `locationName:"message" type:"string"`
  7538  }
  7539  
  7540  // String returns the string representation.
  7541  //
  7542  // API parameter values that are decorated as "sensitive" in the API will not
  7543  // be included in the string output. The member name will be present, but the
  7544  // value will be replaced with "sensitive".
  7545  func (s ResourceInUseException) String() string {
  7546  	return awsutil.Prettify(s)
  7547  }
  7548  
  7549  // GoString returns the string representation.
  7550  //
  7551  // API parameter values that are decorated as "sensitive" in the API will not
  7552  // be included in the string output. The member name will be present, but the
  7553  // value will be replaced with "sensitive".
  7554  func (s ResourceInUseException) GoString() string {
  7555  	return s.String()
  7556  }
  7557  
  7558  func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
  7559  	return &ResourceInUseException{
  7560  		RespMetadata: v,
  7561  	}
  7562  }
  7563  
  7564  // Code returns the exception type name.
  7565  func (s *ResourceInUseException) Code() string {
  7566  	return "ResourceInUseException"
  7567  }
  7568  
  7569  // Message returns the exception's message.
  7570  func (s *ResourceInUseException) Message() string {
  7571  	if s.Message_ != nil {
  7572  		return *s.Message_
  7573  	}
  7574  	return ""
  7575  }
  7576  
  7577  // OrigErr always returns nil, satisfies awserr.Error interface.
  7578  func (s *ResourceInUseException) OrigErr() error {
  7579  	return nil
  7580  }
  7581  
  7582  func (s *ResourceInUseException) Error() string {
  7583  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7584  }
  7585  
  7586  // Status code returns the HTTP status code for the request's response error.
  7587  func (s *ResourceInUseException) StatusCode() int {
  7588  	return s.RespMetadata.StatusCode
  7589  }
  7590  
  7591  // RequestID returns the service's response RequestID for request.
  7592  func (s *ResourceInUseException) RequestID() string {
  7593  	return s.RespMetadata.RequestID
  7594  }
  7595  
  7596  // The specified resource could not be found.
  7597  type ResourceNotFoundException struct {
  7598  	_            struct{}                  `type:"structure"`
  7599  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  7600  
  7601  	// A message that provides information about the error.
  7602  	Message_ *string `locationName:"message" type:"string"`
  7603  }
  7604  
  7605  // String returns the string representation.
  7606  //
  7607  // API parameter values that are decorated as "sensitive" in the API will not
  7608  // be included in the string output. The member name will be present, but the
  7609  // value will be replaced with "sensitive".
  7610  func (s ResourceNotFoundException) String() string {
  7611  	return awsutil.Prettify(s)
  7612  }
  7613  
  7614  // GoString returns the string representation.
  7615  //
  7616  // API parameter values that are decorated as "sensitive" in the API will not
  7617  // be included in the string output. The member name will be present, but the
  7618  // value will be replaced with "sensitive".
  7619  func (s ResourceNotFoundException) GoString() string {
  7620  	return s.String()
  7621  }
  7622  
  7623  func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
  7624  	return &ResourceNotFoundException{
  7625  		RespMetadata: v,
  7626  	}
  7627  }
  7628  
  7629  // Code returns the exception type name.
  7630  func (s *ResourceNotFoundException) Code() string {
  7631  	return "ResourceNotFoundException"
  7632  }
  7633  
  7634  // Message returns the exception's message.
  7635  func (s *ResourceNotFoundException) Message() string {
  7636  	if s.Message_ != nil {
  7637  		return *s.Message_
  7638  	}
  7639  	return ""
  7640  }
  7641  
  7642  // OrigErr always returns nil, satisfies awserr.Error interface.
  7643  func (s *ResourceNotFoundException) OrigErr() error {
  7644  	return nil
  7645  }
  7646  
  7647  func (s *ResourceNotFoundException) Error() string {
  7648  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  7649  }
  7650  
  7651  // Status code returns the HTTP status code for the request's response error.
  7652  func (s *ResourceNotFoundException) StatusCode() int {
  7653  	return s.RespMetadata.StatusCode
  7654  }
  7655  
  7656  // RequestID returns the service's response RequestID for request.
  7657  func (s *ResourceNotFoundException) RequestID() string {
  7658  	return s.RespMetadata.RequestID
  7659  }
  7660  
  7661  // The retry behavior in case Kinesis Data Firehose is unable to deliver data
  7662  // to an Amazon S3 prefix.
  7663  type RetryOptions struct {
  7664  	_ struct{} `type:"structure"`
  7665  
  7666  	// The period of time during which Kinesis Data Firehose retries to deliver
  7667  	// data to the specified Amazon S3 prefix.
  7668  	DurationInSeconds *int64 `type:"integer"`
  7669  }
  7670  
  7671  // String returns the string representation.
  7672  //
  7673  // API parameter values that are decorated as "sensitive" in the API will not
  7674  // be included in the string output. The member name will be present, but the
  7675  // value will be replaced with "sensitive".
  7676  func (s RetryOptions) String() string {
  7677  	return awsutil.Prettify(s)
  7678  }
  7679  
  7680  // GoString returns the string representation.
  7681  //
  7682  // API parameter values that are decorated as "sensitive" in the API will not
  7683  // be included in the string output. The member name will be present, but the
  7684  // value will be replaced with "sensitive".
  7685  func (s RetryOptions) GoString() string {
  7686  	return s.String()
  7687  }
  7688  
  7689  // SetDurationInSeconds sets the DurationInSeconds field's value.
  7690  func (s *RetryOptions) SetDurationInSeconds(v int64) *RetryOptions {
  7691  	s.DurationInSeconds = &v
  7692  	return s
  7693  }
  7694  
  7695  // Describes the configuration of a destination in Amazon S3.
  7696  type S3DestinationConfiguration struct {
  7697  	_ struct{} `type:"structure"`
  7698  
  7699  	// The ARN of the S3 bucket. For more information, see Amazon Resource Names
  7700  	// (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  7701  	//
  7702  	// BucketARN is a required field
  7703  	BucketARN *string `min:"1" type:"string" required:"true"`
  7704  
  7705  	// The buffering option. If no value is specified, BufferingHints object default
  7706  	// values are used.
  7707  	BufferingHints *BufferingHints `type:"structure"`
  7708  
  7709  	// The CloudWatch logging options for your delivery stream.
  7710  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  7711  
  7712  	// The compression format. If no value is specified, the default is UNCOMPRESSED.
  7713  	//
  7714  	// The compression formats SNAPPY or ZIP cannot be specified for Amazon Redshift
  7715  	// destinations because they are not supported by the Amazon Redshift COPY operation
  7716  	// that reads from the S3 bucket.
  7717  	CompressionFormat *string `type:"string" enum:"CompressionFormat"`
  7718  
  7719  	// The encryption configuration. If no value is specified, the default is no
  7720  	// encryption.
  7721  	EncryptionConfiguration *EncryptionConfiguration `type:"structure"`
  7722  
  7723  	// A prefix that Kinesis Data Firehose evaluates and adds to failed records
  7724  	// before writing them to S3. This prefix appears immediately following the
  7725  	// bucket name. For information about how to specify this prefix, see Custom
  7726  	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
  7727  	ErrorOutputPrefix *string `type:"string"`
  7728  
  7729  	// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
  7730  	// Amazon S3 files. You can also specify a custom prefix, as described in Custom
  7731  	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
  7732  	Prefix *string `type:"string"`
  7733  
  7734  	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
  7735  	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  7736  	//
  7737  	// RoleARN is a required field
  7738  	RoleARN *string `min:"1" type:"string" required:"true"`
  7739  }
  7740  
  7741  // String returns the string representation.
  7742  //
  7743  // API parameter values that are decorated as "sensitive" in the API will not
  7744  // be included in the string output. The member name will be present, but the
  7745  // value will be replaced with "sensitive".
  7746  func (s S3DestinationConfiguration) String() string {
  7747  	return awsutil.Prettify(s)
  7748  }
  7749  
  7750  // GoString returns the string representation.
  7751  //
  7752  // API parameter values that are decorated as "sensitive" in the API will not
  7753  // be included in the string output. The member name will be present, but the
  7754  // value will be replaced with "sensitive".
  7755  func (s S3DestinationConfiguration) GoString() string {
  7756  	return s.String()
  7757  }
  7758  
  7759  // Validate inspects the fields of the type to determine if they are valid.
  7760  func (s *S3DestinationConfiguration) Validate() error {
  7761  	invalidParams := request.ErrInvalidParams{Context: "S3DestinationConfiguration"}
  7762  	if s.BucketARN == nil {
  7763  		invalidParams.Add(request.NewErrParamRequired("BucketARN"))
  7764  	}
  7765  	if s.BucketARN != nil && len(*s.BucketARN) < 1 {
  7766  		invalidParams.Add(request.NewErrParamMinLen("BucketARN", 1))
  7767  	}
  7768  	if s.RoleARN == nil {
  7769  		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
  7770  	}
  7771  	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
  7772  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
  7773  	}
  7774  	if s.BufferingHints != nil {
  7775  		if err := s.BufferingHints.Validate(); err != nil {
  7776  			invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
  7777  		}
  7778  	}
  7779  	if s.EncryptionConfiguration != nil {
  7780  		if err := s.EncryptionConfiguration.Validate(); err != nil {
  7781  			invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams))
  7782  		}
  7783  	}
  7784  
  7785  	if invalidParams.Len() > 0 {
  7786  		return invalidParams
  7787  	}
  7788  	return nil
  7789  }
  7790  
  7791  // SetBucketARN sets the BucketARN field's value.
  7792  func (s *S3DestinationConfiguration) SetBucketARN(v string) *S3DestinationConfiguration {
  7793  	s.BucketARN = &v
  7794  	return s
  7795  }
  7796  
  7797  // SetBufferingHints sets the BufferingHints field's value.
  7798  func (s *S3DestinationConfiguration) SetBufferingHints(v *BufferingHints) *S3DestinationConfiguration {
  7799  	s.BufferingHints = v
  7800  	return s
  7801  }
  7802  
  7803  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  7804  func (s *S3DestinationConfiguration) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *S3DestinationConfiguration {
  7805  	s.CloudWatchLoggingOptions = v
  7806  	return s
  7807  }
  7808  
  7809  // SetCompressionFormat sets the CompressionFormat field's value.
  7810  func (s *S3DestinationConfiguration) SetCompressionFormat(v string) *S3DestinationConfiguration {
  7811  	s.CompressionFormat = &v
  7812  	return s
  7813  }
  7814  
  7815  // SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
  7816  func (s *S3DestinationConfiguration) SetEncryptionConfiguration(v *EncryptionConfiguration) *S3DestinationConfiguration {
  7817  	s.EncryptionConfiguration = v
  7818  	return s
  7819  }
  7820  
  7821  // SetErrorOutputPrefix sets the ErrorOutputPrefix field's value.
  7822  func (s *S3DestinationConfiguration) SetErrorOutputPrefix(v string) *S3DestinationConfiguration {
  7823  	s.ErrorOutputPrefix = &v
  7824  	return s
  7825  }
  7826  
  7827  // SetPrefix sets the Prefix field's value.
  7828  func (s *S3DestinationConfiguration) SetPrefix(v string) *S3DestinationConfiguration {
  7829  	s.Prefix = &v
  7830  	return s
  7831  }
  7832  
  7833  // SetRoleARN sets the RoleARN field's value.
  7834  func (s *S3DestinationConfiguration) SetRoleARN(v string) *S3DestinationConfiguration {
  7835  	s.RoleARN = &v
  7836  	return s
  7837  }
  7838  
  7839  // Describes a destination in Amazon S3.
  7840  type S3DestinationDescription struct {
  7841  	_ struct{} `type:"structure"`
  7842  
  7843  	// The ARN of the S3 bucket. For more information, see Amazon Resource Names
  7844  	// (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  7845  	//
  7846  	// BucketARN is a required field
  7847  	BucketARN *string `min:"1" type:"string" required:"true"`
  7848  
  7849  	// The buffering option. If no value is specified, BufferingHints object default
  7850  	// values are used.
  7851  	//
  7852  	// BufferingHints is a required field
  7853  	BufferingHints *BufferingHints `type:"structure" required:"true"`
  7854  
  7855  	// The Amazon CloudWatch logging options for your delivery stream.
  7856  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  7857  
  7858  	// The compression format. If no value is specified, the default is UNCOMPRESSED.
  7859  	//
  7860  	// CompressionFormat is a required field
  7861  	CompressionFormat *string `type:"string" required:"true" enum:"CompressionFormat"`
  7862  
  7863  	// The encryption configuration. If no value is specified, the default is no
  7864  	// encryption.
  7865  	//
  7866  	// EncryptionConfiguration is a required field
  7867  	EncryptionConfiguration *EncryptionConfiguration `type:"structure" required:"true"`
  7868  
  7869  	// A prefix that Kinesis Data Firehose evaluates and adds to failed records
  7870  	// before writing them to S3. This prefix appears immediately following the
  7871  	// bucket name. For information about how to specify this prefix, see Custom
  7872  	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
  7873  	ErrorOutputPrefix *string `type:"string"`
  7874  
  7875  	// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
  7876  	// Amazon S3 files. You can also specify a custom prefix, as described in Custom
  7877  	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
  7878  	Prefix *string `type:"string"`
  7879  
  7880  	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
  7881  	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  7882  	//
  7883  	// RoleARN is a required field
  7884  	RoleARN *string `min:"1" type:"string" required:"true"`
  7885  }
  7886  
  7887  // String returns the string representation.
  7888  //
  7889  // API parameter values that are decorated as "sensitive" in the API will not
  7890  // be included in the string output. The member name will be present, but the
  7891  // value will be replaced with "sensitive".
  7892  func (s S3DestinationDescription) String() string {
  7893  	return awsutil.Prettify(s)
  7894  }
  7895  
  7896  // GoString returns the string representation.
  7897  //
  7898  // API parameter values that are decorated as "sensitive" in the API will not
  7899  // be included in the string output. The member name will be present, but the
  7900  // value will be replaced with "sensitive".
  7901  func (s S3DestinationDescription) GoString() string {
  7902  	return s.String()
  7903  }
  7904  
  7905  // SetBucketARN sets the BucketARN field's value.
  7906  func (s *S3DestinationDescription) SetBucketARN(v string) *S3DestinationDescription {
  7907  	s.BucketARN = &v
  7908  	return s
  7909  }
  7910  
  7911  // SetBufferingHints sets the BufferingHints field's value.
  7912  func (s *S3DestinationDescription) SetBufferingHints(v *BufferingHints) *S3DestinationDescription {
  7913  	s.BufferingHints = v
  7914  	return s
  7915  }
  7916  
  7917  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  7918  func (s *S3DestinationDescription) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *S3DestinationDescription {
  7919  	s.CloudWatchLoggingOptions = v
  7920  	return s
  7921  }
  7922  
  7923  // SetCompressionFormat sets the CompressionFormat field's value.
  7924  func (s *S3DestinationDescription) SetCompressionFormat(v string) *S3DestinationDescription {
  7925  	s.CompressionFormat = &v
  7926  	return s
  7927  }
  7928  
  7929  // SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
  7930  func (s *S3DestinationDescription) SetEncryptionConfiguration(v *EncryptionConfiguration) *S3DestinationDescription {
  7931  	s.EncryptionConfiguration = v
  7932  	return s
  7933  }
  7934  
  7935  // SetErrorOutputPrefix sets the ErrorOutputPrefix field's value.
  7936  func (s *S3DestinationDescription) SetErrorOutputPrefix(v string) *S3DestinationDescription {
  7937  	s.ErrorOutputPrefix = &v
  7938  	return s
  7939  }
  7940  
  7941  // SetPrefix sets the Prefix field's value.
  7942  func (s *S3DestinationDescription) SetPrefix(v string) *S3DestinationDescription {
  7943  	s.Prefix = &v
  7944  	return s
  7945  }
  7946  
  7947  // SetRoleARN sets the RoleARN field's value.
  7948  func (s *S3DestinationDescription) SetRoleARN(v string) *S3DestinationDescription {
  7949  	s.RoleARN = &v
  7950  	return s
  7951  }
  7952  
  7953  // Describes an update for a destination in Amazon S3.
  7954  type S3DestinationUpdate struct {
  7955  	_ struct{} `type:"structure"`
  7956  
  7957  	// The ARN of the S3 bucket. For more information, see Amazon Resource Names
  7958  	// (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  7959  	BucketARN *string `min:"1" type:"string"`
  7960  
  7961  	// The buffering option. If no value is specified, BufferingHints object default
  7962  	// values are used.
  7963  	BufferingHints *BufferingHints `type:"structure"`
  7964  
  7965  	// The CloudWatch logging options for your delivery stream.
  7966  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  7967  
  7968  	// The compression format. If no value is specified, the default is UNCOMPRESSED.
  7969  	//
  7970  	// The compression formats SNAPPY or ZIP cannot be specified for Amazon Redshift
  7971  	// destinations because they are not supported by the Amazon Redshift COPY operation
  7972  	// that reads from the S3 bucket.
  7973  	CompressionFormat *string `type:"string" enum:"CompressionFormat"`
  7974  
  7975  	// The encryption configuration. If no value is specified, the default is no
  7976  	// encryption.
  7977  	EncryptionConfiguration *EncryptionConfiguration `type:"structure"`
  7978  
  7979  	// A prefix that Kinesis Data Firehose evaluates and adds to failed records
  7980  	// before writing them to S3. This prefix appears immediately following the
  7981  	// bucket name. For information about how to specify this prefix, see Custom
  7982  	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
  7983  	ErrorOutputPrefix *string `type:"string"`
  7984  
  7985  	// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
  7986  	// Amazon S3 files. You can also specify a custom prefix, as described in Custom
  7987  	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
  7988  	Prefix *string `type:"string"`
  7989  
  7990  	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
  7991  	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  7992  	RoleARN *string `min:"1" type:"string"`
  7993  }
  7994  
  7995  // String returns the string representation.
  7996  //
  7997  // API parameter values that are decorated as "sensitive" in the API will not
  7998  // be included in the string output. The member name will be present, but the
  7999  // value will be replaced with "sensitive".
  8000  func (s S3DestinationUpdate) String() string {
  8001  	return awsutil.Prettify(s)
  8002  }
  8003  
  8004  // GoString returns the string representation.
  8005  //
  8006  // API parameter values that are decorated as "sensitive" in the API will not
  8007  // be included in the string output. The member name will be present, but the
  8008  // value will be replaced with "sensitive".
  8009  func (s S3DestinationUpdate) GoString() string {
  8010  	return s.String()
  8011  }
  8012  
  8013  // Validate inspects the fields of the type to determine if they are valid.
  8014  func (s *S3DestinationUpdate) Validate() error {
  8015  	invalidParams := request.ErrInvalidParams{Context: "S3DestinationUpdate"}
  8016  	if s.BucketARN != nil && len(*s.BucketARN) < 1 {
  8017  		invalidParams.Add(request.NewErrParamMinLen("BucketARN", 1))
  8018  	}
  8019  	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
  8020  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
  8021  	}
  8022  	if s.BufferingHints != nil {
  8023  		if err := s.BufferingHints.Validate(); err != nil {
  8024  			invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
  8025  		}
  8026  	}
  8027  	if s.EncryptionConfiguration != nil {
  8028  		if err := s.EncryptionConfiguration.Validate(); err != nil {
  8029  			invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams))
  8030  		}
  8031  	}
  8032  
  8033  	if invalidParams.Len() > 0 {
  8034  		return invalidParams
  8035  	}
  8036  	return nil
  8037  }
  8038  
  8039  // SetBucketARN sets the BucketARN field's value.
  8040  func (s *S3DestinationUpdate) SetBucketARN(v string) *S3DestinationUpdate {
  8041  	s.BucketARN = &v
  8042  	return s
  8043  }
  8044  
  8045  // SetBufferingHints sets the BufferingHints field's value.
  8046  func (s *S3DestinationUpdate) SetBufferingHints(v *BufferingHints) *S3DestinationUpdate {
  8047  	s.BufferingHints = v
  8048  	return s
  8049  }
  8050  
  8051  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  8052  func (s *S3DestinationUpdate) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *S3DestinationUpdate {
  8053  	s.CloudWatchLoggingOptions = v
  8054  	return s
  8055  }
  8056  
  8057  // SetCompressionFormat sets the CompressionFormat field's value.
  8058  func (s *S3DestinationUpdate) SetCompressionFormat(v string) *S3DestinationUpdate {
  8059  	s.CompressionFormat = &v
  8060  	return s
  8061  }
  8062  
  8063  // SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
  8064  func (s *S3DestinationUpdate) SetEncryptionConfiguration(v *EncryptionConfiguration) *S3DestinationUpdate {
  8065  	s.EncryptionConfiguration = v
  8066  	return s
  8067  }
  8068  
  8069  // SetErrorOutputPrefix sets the ErrorOutputPrefix field's value.
  8070  func (s *S3DestinationUpdate) SetErrorOutputPrefix(v string) *S3DestinationUpdate {
  8071  	s.ErrorOutputPrefix = &v
  8072  	return s
  8073  }
  8074  
  8075  // SetPrefix sets the Prefix field's value.
  8076  func (s *S3DestinationUpdate) SetPrefix(v string) *S3DestinationUpdate {
  8077  	s.Prefix = &v
  8078  	return s
  8079  }
  8080  
  8081  // SetRoleARN sets the RoleARN field's value.
  8082  func (s *S3DestinationUpdate) SetRoleARN(v string) *S3DestinationUpdate {
  8083  	s.RoleARN = &v
  8084  	return s
  8085  }
  8086  
  8087  // Specifies the schema to which you want Kinesis Data Firehose to configure
  8088  // your data before it writes it to Amazon S3. This parameter is required if
  8089  // Enabled is set to true.
  8090  type SchemaConfiguration struct {
  8091  	_ struct{} `type:"structure"`
  8092  
  8093  	// The ID of the AWS Glue Data Catalog. If you don't supply this, the AWS account
  8094  	// ID is used by default.
  8095  	CatalogId *string `min:"1" type:"string"`
  8096  
  8097  	// Specifies the name of the AWS Glue database that contains the schema for
  8098  	// the output data.
  8099  	//
  8100  	// If the SchemaConfiguration request parameter is used as part of invoking
  8101  	// the CreateDeliveryStream API, then the DatabaseName property is required
  8102  	// and its value must be specified.
  8103  	DatabaseName *string `min:"1" type:"string"`
  8104  
  8105  	// If you don't specify an AWS Region, the default is the current Region.
  8106  	Region *string `min:"1" type:"string"`
  8107  
  8108  	// The role that Kinesis Data Firehose can use to access AWS Glue. This role
  8109  	// must be in the same account you use for Kinesis Data Firehose. Cross-account
  8110  	// roles aren't allowed.
  8111  	//
  8112  	// If the SchemaConfiguration request parameter is used as part of invoking
  8113  	// the CreateDeliveryStream API, then the RoleARN property is required and its
  8114  	// value must be specified.
  8115  	RoleARN *string `min:"1" type:"string"`
  8116  
  8117  	// Specifies the AWS Glue table that contains the column information that constitutes
  8118  	// your data schema.
  8119  	//
  8120  	// If the SchemaConfiguration request parameter is used as part of invoking
  8121  	// the CreateDeliveryStream API, then the TableName property is required and
  8122  	// its value must be specified.
  8123  	TableName *string `min:"1" type:"string"`
  8124  
  8125  	// Specifies the table version for the output data schema. If you don't specify
  8126  	// this version ID, or if you set it to LATEST, Kinesis Data Firehose uses the
  8127  	// most recent version. This means that any updates to the table are automatically
  8128  	// picked up.
  8129  	VersionId *string `min:"1" type:"string"`
  8130  }
  8131  
  8132  // String returns the string representation.
  8133  //
  8134  // API parameter values that are decorated as "sensitive" in the API will not
  8135  // be included in the string output. The member name will be present, but the
  8136  // value will be replaced with "sensitive".
  8137  func (s SchemaConfiguration) String() string {
  8138  	return awsutil.Prettify(s)
  8139  }
  8140  
  8141  // GoString returns the string representation.
  8142  //
  8143  // API parameter values that are decorated as "sensitive" in the API will not
  8144  // be included in the string output. The member name will be present, but the
  8145  // value will be replaced with "sensitive".
  8146  func (s SchemaConfiguration) GoString() string {
  8147  	return s.String()
  8148  }
  8149  
  8150  // Validate inspects the fields of the type to determine if they are valid.
  8151  func (s *SchemaConfiguration) Validate() error {
  8152  	invalidParams := request.ErrInvalidParams{Context: "SchemaConfiguration"}
  8153  	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
  8154  		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
  8155  	}
  8156  	if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
  8157  		invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
  8158  	}
  8159  	if s.Region != nil && len(*s.Region) < 1 {
  8160  		invalidParams.Add(request.NewErrParamMinLen("Region", 1))
  8161  	}
  8162  	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
  8163  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
  8164  	}
  8165  	if s.TableName != nil && len(*s.TableName) < 1 {
  8166  		invalidParams.Add(request.NewErrParamMinLen("TableName", 1))
  8167  	}
  8168  	if s.VersionId != nil && len(*s.VersionId) < 1 {
  8169  		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
  8170  	}
  8171  
  8172  	if invalidParams.Len() > 0 {
  8173  		return invalidParams
  8174  	}
  8175  	return nil
  8176  }
  8177  
  8178  // SetCatalogId sets the CatalogId field's value.
  8179  func (s *SchemaConfiguration) SetCatalogId(v string) *SchemaConfiguration {
  8180  	s.CatalogId = &v
  8181  	return s
  8182  }
  8183  
  8184  // SetDatabaseName sets the DatabaseName field's value.
  8185  func (s *SchemaConfiguration) SetDatabaseName(v string) *SchemaConfiguration {
  8186  	s.DatabaseName = &v
  8187  	return s
  8188  }
  8189  
  8190  // SetRegion sets the Region field's value.
  8191  func (s *SchemaConfiguration) SetRegion(v string) *SchemaConfiguration {
  8192  	s.Region = &v
  8193  	return s
  8194  }
  8195  
  8196  // SetRoleARN sets the RoleARN field's value.
  8197  func (s *SchemaConfiguration) SetRoleARN(v string) *SchemaConfiguration {
  8198  	s.RoleARN = &v
  8199  	return s
  8200  }
  8201  
  8202  // SetTableName sets the TableName field's value.
  8203  func (s *SchemaConfiguration) SetTableName(v string) *SchemaConfiguration {
  8204  	s.TableName = &v
  8205  	return s
  8206  }
  8207  
  8208  // SetVersionId sets the VersionId field's value.
  8209  func (s *SchemaConfiguration) SetVersionId(v string) *SchemaConfiguration {
  8210  	s.VersionId = &v
  8211  	return s
  8212  }
  8213  
  8214  // The serializer that you want Kinesis Data Firehose to use to convert data
  8215  // to the target format before writing it to Amazon S3. Kinesis Data Firehose
  8216  // supports two types of serializers: the ORC SerDe (https://hive.apache.org/javadocs/r1.2.2/api/org/apache/hadoop/hive/ql/io/orc/OrcSerde.html)
  8217  // and the Parquet SerDe (https://hive.apache.org/javadocs/r1.2.2/api/org/apache/hadoop/hive/ql/io/parquet/serde/ParquetHiveSerDe.html).
  8218  type Serializer struct {
  8219  	_ struct{} `type:"structure"`
  8220  
  8221  	// A serializer to use for converting data to the ORC format before storing
  8222  	// it in Amazon S3. For more information, see Apache ORC (https://orc.apache.org/docs/).
  8223  	OrcSerDe *OrcSerDe `type:"structure"`
  8224  
  8225  	// A serializer to use for converting data to the Parquet format before storing
  8226  	// it in Amazon S3. For more information, see Apache Parquet (https://parquet.apache.org/documentation/latest/).
  8227  	ParquetSerDe *ParquetSerDe `type:"structure"`
  8228  }
  8229  
  8230  // String returns the string representation.
  8231  //
  8232  // API parameter values that are decorated as "sensitive" in the API will not
  8233  // be included in the string output. The member name will be present, but the
  8234  // value will be replaced with "sensitive".
  8235  func (s Serializer) String() string {
  8236  	return awsutil.Prettify(s)
  8237  }
  8238  
  8239  // GoString returns the string representation.
  8240  //
  8241  // API parameter values that are decorated as "sensitive" in the API will not
  8242  // be included in the string output. The member name will be present, but the
  8243  // value will be replaced with "sensitive".
  8244  func (s Serializer) GoString() string {
  8245  	return s.String()
  8246  }
  8247  
  8248  // Validate inspects the fields of the type to determine if they are valid.
  8249  func (s *Serializer) Validate() error {
  8250  	invalidParams := request.ErrInvalidParams{Context: "Serializer"}
  8251  	if s.OrcSerDe != nil {
  8252  		if err := s.OrcSerDe.Validate(); err != nil {
  8253  			invalidParams.AddNested("OrcSerDe", err.(request.ErrInvalidParams))
  8254  		}
  8255  	}
  8256  	if s.ParquetSerDe != nil {
  8257  		if err := s.ParquetSerDe.Validate(); err != nil {
  8258  			invalidParams.AddNested("ParquetSerDe", err.(request.ErrInvalidParams))
  8259  		}
  8260  	}
  8261  
  8262  	if invalidParams.Len() > 0 {
  8263  		return invalidParams
  8264  	}
  8265  	return nil
  8266  }
  8267  
  8268  // SetOrcSerDe sets the OrcSerDe field's value.
  8269  func (s *Serializer) SetOrcSerDe(v *OrcSerDe) *Serializer {
  8270  	s.OrcSerDe = v
  8271  	return s
  8272  }
  8273  
  8274  // SetParquetSerDe sets the ParquetSerDe field's value.
  8275  func (s *Serializer) SetParquetSerDe(v *ParquetSerDe) *Serializer {
  8276  	s.ParquetSerDe = v
  8277  	return s
  8278  }
  8279  
  8280  // The service is unavailable. Back off and retry the operation. If you continue
  8281  // to see the exception, throughput limits for the delivery stream may have
  8282  // been exceeded. For more information about limits and how to request an increase,
  8283  // see Amazon Kinesis Data Firehose Limits (https://docs.aws.amazon.com/firehose/latest/dev/limits.html).
  8284  type ServiceUnavailableException struct {
  8285  	_            struct{}                  `type:"structure"`
  8286  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
  8287  
  8288  	// A message that provides information about the error.
  8289  	Message_ *string `locationName:"message" type:"string"`
  8290  }
  8291  
  8292  // String returns the string representation.
  8293  //
  8294  // API parameter values that are decorated as "sensitive" in the API will not
  8295  // be included in the string output. The member name will be present, but the
  8296  // value will be replaced with "sensitive".
  8297  func (s ServiceUnavailableException) String() string {
  8298  	return awsutil.Prettify(s)
  8299  }
  8300  
  8301  // GoString returns the string representation.
  8302  //
  8303  // API parameter values that are decorated as "sensitive" in the API will not
  8304  // be included in the string output. The member name will be present, but the
  8305  // value will be replaced with "sensitive".
  8306  func (s ServiceUnavailableException) GoString() string {
  8307  	return s.String()
  8308  }
  8309  
  8310  func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
  8311  	return &ServiceUnavailableException{
  8312  		RespMetadata: v,
  8313  	}
  8314  }
  8315  
  8316  // Code returns the exception type name.
  8317  func (s *ServiceUnavailableException) Code() string {
  8318  	return "ServiceUnavailableException"
  8319  }
  8320  
  8321  // Message returns the exception's message.
  8322  func (s *ServiceUnavailableException) Message() string {
  8323  	if s.Message_ != nil {
  8324  		return *s.Message_
  8325  	}
  8326  	return ""
  8327  }
  8328  
  8329  // OrigErr always returns nil, satisfies awserr.Error interface.
  8330  func (s *ServiceUnavailableException) OrigErr() error {
  8331  	return nil
  8332  }
  8333  
  8334  func (s *ServiceUnavailableException) Error() string {
  8335  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
  8336  }
  8337  
  8338  // Status code returns the HTTP status code for the request's response error.
  8339  func (s *ServiceUnavailableException) StatusCode() int {
  8340  	return s.RespMetadata.StatusCode
  8341  }
  8342  
  8343  // RequestID returns the service's response RequestID for request.
  8344  func (s *ServiceUnavailableException) RequestID() string {
  8345  	return s.RespMetadata.RequestID
  8346  }
  8347  
  8348  // Details about a Kinesis data stream used as the source for a Kinesis Data
  8349  // Firehose delivery stream.
  8350  type SourceDescription struct {
  8351  	_ struct{} `type:"structure"`
  8352  
  8353  	// The KinesisStreamSourceDescription value for the source Kinesis data stream.
  8354  	KinesisStreamSourceDescription *KinesisStreamSourceDescription `type:"structure"`
  8355  }
  8356  
  8357  // String returns the string representation.
  8358  //
  8359  // API parameter values that are decorated as "sensitive" in the API will not
  8360  // be included in the string output. The member name will be present, but the
  8361  // value will be replaced with "sensitive".
  8362  func (s SourceDescription) String() string {
  8363  	return awsutil.Prettify(s)
  8364  }
  8365  
  8366  // GoString returns the string representation.
  8367  //
  8368  // API parameter values that are decorated as "sensitive" in the API will not
  8369  // be included in the string output. The member name will be present, but the
  8370  // value will be replaced with "sensitive".
  8371  func (s SourceDescription) GoString() string {
  8372  	return s.String()
  8373  }
  8374  
  8375  // SetKinesisStreamSourceDescription sets the KinesisStreamSourceDescription field's value.
  8376  func (s *SourceDescription) SetKinesisStreamSourceDescription(v *KinesisStreamSourceDescription) *SourceDescription {
  8377  	s.KinesisStreamSourceDescription = v
  8378  	return s
  8379  }
  8380  
  8381  // Describes the configuration of a destination in Splunk.
  8382  type SplunkDestinationConfiguration struct {
  8383  	_ struct{} `type:"structure"`
  8384  
  8385  	// The Amazon CloudWatch logging options for your delivery stream.
  8386  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  8387  
  8388  	// The amount of time that Kinesis Data Firehose waits to receive an acknowledgment
  8389  	// from Splunk after it sends it data. At the end of the timeout period, Kinesis
  8390  	// Data Firehose either tries to send the data again or considers it an error,
  8391  	// based on your retry settings.
  8392  	HECAcknowledgmentTimeoutInSeconds *int64 `min:"180" type:"integer"`
  8393  
  8394  	// The HTTP Event Collector (HEC) endpoint to which Kinesis Data Firehose sends
  8395  	// your data.
  8396  	//
  8397  	// HECEndpoint is a required field
  8398  	HECEndpoint *string `type:"string" required:"true"`
  8399  
  8400  	// This type can be either "Raw" or "Event."
  8401  	//
  8402  	// HECEndpointType is a required field
  8403  	HECEndpointType *string `type:"string" required:"true" enum:"HECEndpointType"`
  8404  
  8405  	// This is a GUID that you obtain from your Splunk cluster when you create a
  8406  	// new HEC endpoint.
  8407  	//
  8408  	// HECToken is a required field
  8409  	HECToken *string `type:"string" required:"true"`
  8410  
  8411  	// The data processing configuration.
  8412  	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
  8413  
  8414  	// The retry behavior in case Kinesis Data Firehose is unable to deliver data
  8415  	// to Splunk, or if it doesn't receive an acknowledgment of receipt from Splunk.
  8416  	RetryOptions *SplunkRetryOptions `type:"structure"`
  8417  
  8418  	// Defines how documents should be delivered to Amazon S3. When set to FailedEventsOnly,
  8419  	// Kinesis Data Firehose writes any data that could not be indexed to the configured
  8420  	// Amazon S3 destination. When set to AllEvents, Kinesis Data Firehose delivers
  8421  	// all incoming records to Amazon S3, and also writes failed documents to Amazon
  8422  	// S3. The default value is FailedEventsOnly.
  8423  	//
  8424  	// You can update this backup mode from FailedEventsOnly to AllEvents. You can't
  8425  	// update it from AllEvents to FailedEventsOnly.
  8426  	S3BackupMode *string `type:"string" enum:"SplunkS3BackupMode"`
  8427  
  8428  	// The configuration for the backup Amazon S3 location.
  8429  	//
  8430  	// S3Configuration is a required field
  8431  	S3Configuration *S3DestinationConfiguration `type:"structure" required:"true"`
  8432  }
  8433  
  8434  // String returns the string representation.
  8435  //
  8436  // API parameter values that are decorated as "sensitive" in the API will not
  8437  // be included in the string output. The member name will be present, but the
  8438  // value will be replaced with "sensitive".
  8439  func (s SplunkDestinationConfiguration) String() string {
  8440  	return awsutil.Prettify(s)
  8441  }
  8442  
  8443  // GoString 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 SplunkDestinationConfiguration) GoString() string {
  8449  	return s.String()
  8450  }
  8451  
  8452  // Validate inspects the fields of the type to determine if they are valid.
  8453  func (s *SplunkDestinationConfiguration) Validate() error {
  8454  	invalidParams := request.ErrInvalidParams{Context: "SplunkDestinationConfiguration"}
  8455  	if s.HECAcknowledgmentTimeoutInSeconds != nil && *s.HECAcknowledgmentTimeoutInSeconds < 180 {
  8456  		invalidParams.Add(request.NewErrParamMinValue("HECAcknowledgmentTimeoutInSeconds", 180))
  8457  	}
  8458  	if s.HECEndpoint == nil {
  8459  		invalidParams.Add(request.NewErrParamRequired("HECEndpoint"))
  8460  	}
  8461  	if s.HECEndpointType == nil {
  8462  		invalidParams.Add(request.NewErrParamRequired("HECEndpointType"))
  8463  	}
  8464  	if s.HECToken == nil {
  8465  		invalidParams.Add(request.NewErrParamRequired("HECToken"))
  8466  	}
  8467  	if s.S3Configuration == nil {
  8468  		invalidParams.Add(request.NewErrParamRequired("S3Configuration"))
  8469  	}
  8470  	if s.ProcessingConfiguration != nil {
  8471  		if err := s.ProcessingConfiguration.Validate(); err != nil {
  8472  			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
  8473  		}
  8474  	}
  8475  	if s.S3Configuration != nil {
  8476  		if err := s.S3Configuration.Validate(); err != nil {
  8477  			invalidParams.AddNested("S3Configuration", err.(request.ErrInvalidParams))
  8478  		}
  8479  	}
  8480  
  8481  	if invalidParams.Len() > 0 {
  8482  		return invalidParams
  8483  	}
  8484  	return nil
  8485  }
  8486  
  8487  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  8488  func (s *SplunkDestinationConfiguration) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *SplunkDestinationConfiguration {
  8489  	s.CloudWatchLoggingOptions = v
  8490  	return s
  8491  }
  8492  
  8493  // SetHECAcknowledgmentTimeoutInSeconds sets the HECAcknowledgmentTimeoutInSeconds field's value.
  8494  func (s *SplunkDestinationConfiguration) SetHECAcknowledgmentTimeoutInSeconds(v int64) *SplunkDestinationConfiguration {
  8495  	s.HECAcknowledgmentTimeoutInSeconds = &v
  8496  	return s
  8497  }
  8498  
  8499  // SetHECEndpoint sets the HECEndpoint field's value.
  8500  func (s *SplunkDestinationConfiguration) SetHECEndpoint(v string) *SplunkDestinationConfiguration {
  8501  	s.HECEndpoint = &v
  8502  	return s
  8503  }
  8504  
  8505  // SetHECEndpointType sets the HECEndpointType field's value.
  8506  func (s *SplunkDestinationConfiguration) SetHECEndpointType(v string) *SplunkDestinationConfiguration {
  8507  	s.HECEndpointType = &v
  8508  	return s
  8509  }
  8510  
  8511  // SetHECToken sets the HECToken field's value.
  8512  func (s *SplunkDestinationConfiguration) SetHECToken(v string) *SplunkDestinationConfiguration {
  8513  	s.HECToken = &v
  8514  	return s
  8515  }
  8516  
  8517  // SetProcessingConfiguration sets the ProcessingConfiguration field's value.
  8518  func (s *SplunkDestinationConfiguration) SetProcessingConfiguration(v *ProcessingConfiguration) *SplunkDestinationConfiguration {
  8519  	s.ProcessingConfiguration = v
  8520  	return s
  8521  }
  8522  
  8523  // SetRetryOptions sets the RetryOptions field's value.
  8524  func (s *SplunkDestinationConfiguration) SetRetryOptions(v *SplunkRetryOptions) *SplunkDestinationConfiguration {
  8525  	s.RetryOptions = v
  8526  	return s
  8527  }
  8528  
  8529  // SetS3BackupMode sets the S3BackupMode field's value.
  8530  func (s *SplunkDestinationConfiguration) SetS3BackupMode(v string) *SplunkDestinationConfiguration {
  8531  	s.S3BackupMode = &v
  8532  	return s
  8533  }
  8534  
  8535  // SetS3Configuration sets the S3Configuration field's value.
  8536  func (s *SplunkDestinationConfiguration) SetS3Configuration(v *S3DestinationConfiguration) *SplunkDestinationConfiguration {
  8537  	s.S3Configuration = v
  8538  	return s
  8539  }
  8540  
  8541  // Describes a destination in Splunk.
  8542  type SplunkDestinationDescription struct {
  8543  	_ struct{} `type:"structure"`
  8544  
  8545  	// The Amazon CloudWatch logging options for your delivery stream.
  8546  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  8547  
  8548  	// The amount of time that Kinesis Data Firehose waits to receive an acknowledgment
  8549  	// from Splunk after it sends it data. At the end of the timeout period, Kinesis
  8550  	// Data Firehose either tries to send the data again or considers it an error,
  8551  	// based on your retry settings.
  8552  	HECAcknowledgmentTimeoutInSeconds *int64 `min:"180" type:"integer"`
  8553  
  8554  	// The HTTP Event Collector (HEC) endpoint to which Kinesis Data Firehose sends
  8555  	// your data.
  8556  	HECEndpoint *string `type:"string"`
  8557  
  8558  	// This type can be either "Raw" or "Event."
  8559  	HECEndpointType *string `type:"string" enum:"HECEndpointType"`
  8560  
  8561  	// A GUID you obtain from your Splunk cluster when you create a new HEC endpoint.
  8562  	HECToken *string `type:"string"`
  8563  
  8564  	// The data processing configuration.
  8565  	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
  8566  
  8567  	// The retry behavior in case Kinesis Data Firehose is unable to deliver data
  8568  	// to Splunk or if it doesn't receive an acknowledgment of receipt from Splunk.
  8569  	RetryOptions *SplunkRetryOptions `type:"structure"`
  8570  
  8571  	// Defines how documents should be delivered to Amazon S3. When set to FailedDocumentsOnly,
  8572  	// Kinesis Data Firehose writes any data that could not be indexed to the configured
  8573  	// Amazon S3 destination. When set to AllDocuments, Kinesis Data Firehose delivers
  8574  	// all incoming records to Amazon S3, and also writes failed documents to Amazon
  8575  	// S3. Default value is FailedDocumentsOnly.
  8576  	S3BackupMode *string `type:"string" enum:"SplunkS3BackupMode"`
  8577  
  8578  	// The Amazon S3 destination.>
  8579  	S3DestinationDescription *S3DestinationDescription `type:"structure"`
  8580  }
  8581  
  8582  // String returns the string representation.
  8583  //
  8584  // API parameter values that are decorated as "sensitive" in the API will not
  8585  // be included in the string output. The member name will be present, but the
  8586  // value will be replaced with "sensitive".
  8587  func (s SplunkDestinationDescription) String() string {
  8588  	return awsutil.Prettify(s)
  8589  }
  8590  
  8591  // GoString returns the string representation.
  8592  //
  8593  // API parameter values that are decorated as "sensitive" in the API will not
  8594  // be included in the string output. The member name will be present, but the
  8595  // value will be replaced with "sensitive".
  8596  func (s SplunkDestinationDescription) GoString() string {
  8597  	return s.String()
  8598  }
  8599  
  8600  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  8601  func (s *SplunkDestinationDescription) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *SplunkDestinationDescription {
  8602  	s.CloudWatchLoggingOptions = v
  8603  	return s
  8604  }
  8605  
  8606  // SetHECAcknowledgmentTimeoutInSeconds sets the HECAcknowledgmentTimeoutInSeconds field's value.
  8607  func (s *SplunkDestinationDescription) SetHECAcknowledgmentTimeoutInSeconds(v int64) *SplunkDestinationDescription {
  8608  	s.HECAcknowledgmentTimeoutInSeconds = &v
  8609  	return s
  8610  }
  8611  
  8612  // SetHECEndpoint sets the HECEndpoint field's value.
  8613  func (s *SplunkDestinationDescription) SetHECEndpoint(v string) *SplunkDestinationDescription {
  8614  	s.HECEndpoint = &v
  8615  	return s
  8616  }
  8617  
  8618  // SetHECEndpointType sets the HECEndpointType field's value.
  8619  func (s *SplunkDestinationDescription) SetHECEndpointType(v string) *SplunkDestinationDescription {
  8620  	s.HECEndpointType = &v
  8621  	return s
  8622  }
  8623  
  8624  // SetHECToken sets the HECToken field's value.
  8625  func (s *SplunkDestinationDescription) SetHECToken(v string) *SplunkDestinationDescription {
  8626  	s.HECToken = &v
  8627  	return s
  8628  }
  8629  
  8630  // SetProcessingConfiguration sets the ProcessingConfiguration field's value.
  8631  func (s *SplunkDestinationDescription) SetProcessingConfiguration(v *ProcessingConfiguration) *SplunkDestinationDescription {
  8632  	s.ProcessingConfiguration = v
  8633  	return s
  8634  }
  8635  
  8636  // SetRetryOptions sets the RetryOptions field's value.
  8637  func (s *SplunkDestinationDescription) SetRetryOptions(v *SplunkRetryOptions) *SplunkDestinationDescription {
  8638  	s.RetryOptions = v
  8639  	return s
  8640  }
  8641  
  8642  // SetS3BackupMode sets the S3BackupMode field's value.
  8643  func (s *SplunkDestinationDescription) SetS3BackupMode(v string) *SplunkDestinationDescription {
  8644  	s.S3BackupMode = &v
  8645  	return s
  8646  }
  8647  
  8648  // SetS3DestinationDescription sets the S3DestinationDescription field's value.
  8649  func (s *SplunkDestinationDescription) SetS3DestinationDescription(v *S3DestinationDescription) *SplunkDestinationDescription {
  8650  	s.S3DestinationDescription = v
  8651  	return s
  8652  }
  8653  
  8654  // Describes an update for a destination in Splunk.
  8655  type SplunkDestinationUpdate struct {
  8656  	_ struct{} `type:"structure"`
  8657  
  8658  	// The Amazon CloudWatch logging options for your delivery stream.
  8659  	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
  8660  
  8661  	// The amount of time that Kinesis Data Firehose waits to receive an acknowledgment
  8662  	// from Splunk after it sends data. At the end of the timeout period, Kinesis
  8663  	// Data Firehose either tries to send the data again or considers it an error,
  8664  	// based on your retry settings.
  8665  	HECAcknowledgmentTimeoutInSeconds *int64 `min:"180" type:"integer"`
  8666  
  8667  	// The HTTP Event Collector (HEC) endpoint to which Kinesis Data Firehose sends
  8668  	// your data.
  8669  	HECEndpoint *string `type:"string"`
  8670  
  8671  	// This type can be either "Raw" or "Event."
  8672  	HECEndpointType *string `type:"string" enum:"HECEndpointType"`
  8673  
  8674  	// A GUID that you obtain from your Splunk cluster when you create a new HEC
  8675  	// endpoint.
  8676  	HECToken *string `type:"string"`
  8677  
  8678  	// The data processing configuration.
  8679  	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
  8680  
  8681  	// The retry behavior in case Kinesis Data Firehose is unable to deliver data
  8682  	// to Splunk or if it doesn't receive an acknowledgment of receipt from Splunk.
  8683  	RetryOptions *SplunkRetryOptions `type:"structure"`
  8684  
  8685  	// Specifies how you want Kinesis Data Firehose to back up documents to Amazon
  8686  	// S3. When set to FailedDocumentsOnly, Kinesis Data Firehose writes any data
  8687  	// that could not be indexed to the configured Amazon S3 destination. When set
  8688  	// to AllEvents, Kinesis Data Firehose delivers all incoming records to Amazon
  8689  	// S3, and also writes failed documents to Amazon S3. The default value is FailedEventsOnly.
  8690  	//
  8691  	// You can update this backup mode from FailedEventsOnly to AllEvents. You can't
  8692  	// update it from AllEvents to FailedEventsOnly.
  8693  	S3BackupMode *string `type:"string" enum:"SplunkS3BackupMode"`
  8694  
  8695  	// Your update to the configuration of the backup Amazon S3 location.
  8696  	S3Update *S3DestinationUpdate `type:"structure"`
  8697  }
  8698  
  8699  // String returns the string representation.
  8700  //
  8701  // API parameter values that are decorated as "sensitive" in the API will not
  8702  // be included in the string output. The member name will be present, but the
  8703  // value will be replaced with "sensitive".
  8704  func (s SplunkDestinationUpdate) String() string {
  8705  	return awsutil.Prettify(s)
  8706  }
  8707  
  8708  // GoString returns the string representation.
  8709  //
  8710  // API parameter values that are decorated as "sensitive" in the API will not
  8711  // be included in the string output. The member name will be present, but the
  8712  // value will be replaced with "sensitive".
  8713  func (s SplunkDestinationUpdate) GoString() string {
  8714  	return s.String()
  8715  }
  8716  
  8717  // Validate inspects the fields of the type to determine if they are valid.
  8718  func (s *SplunkDestinationUpdate) Validate() error {
  8719  	invalidParams := request.ErrInvalidParams{Context: "SplunkDestinationUpdate"}
  8720  	if s.HECAcknowledgmentTimeoutInSeconds != nil && *s.HECAcknowledgmentTimeoutInSeconds < 180 {
  8721  		invalidParams.Add(request.NewErrParamMinValue("HECAcknowledgmentTimeoutInSeconds", 180))
  8722  	}
  8723  	if s.ProcessingConfiguration != nil {
  8724  		if err := s.ProcessingConfiguration.Validate(); err != nil {
  8725  			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
  8726  		}
  8727  	}
  8728  	if s.S3Update != nil {
  8729  		if err := s.S3Update.Validate(); err != nil {
  8730  			invalidParams.AddNested("S3Update", err.(request.ErrInvalidParams))
  8731  		}
  8732  	}
  8733  
  8734  	if invalidParams.Len() > 0 {
  8735  		return invalidParams
  8736  	}
  8737  	return nil
  8738  }
  8739  
  8740  // SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
  8741  func (s *SplunkDestinationUpdate) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *SplunkDestinationUpdate {
  8742  	s.CloudWatchLoggingOptions = v
  8743  	return s
  8744  }
  8745  
  8746  // SetHECAcknowledgmentTimeoutInSeconds sets the HECAcknowledgmentTimeoutInSeconds field's value.
  8747  func (s *SplunkDestinationUpdate) SetHECAcknowledgmentTimeoutInSeconds(v int64) *SplunkDestinationUpdate {
  8748  	s.HECAcknowledgmentTimeoutInSeconds = &v
  8749  	return s
  8750  }
  8751  
  8752  // SetHECEndpoint sets the HECEndpoint field's value.
  8753  func (s *SplunkDestinationUpdate) SetHECEndpoint(v string) *SplunkDestinationUpdate {
  8754  	s.HECEndpoint = &v
  8755  	return s
  8756  }
  8757  
  8758  // SetHECEndpointType sets the HECEndpointType field's value.
  8759  func (s *SplunkDestinationUpdate) SetHECEndpointType(v string) *SplunkDestinationUpdate {
  8760  	s.HECEndpointType = &v
  8761  	return s
  8762  }
  8763  
  8764  // SetHECToken sets the HECToken field's value.
  8765  func (s *SplunkDestinationUpdate) SetHECToken(v string) *SplunkDestinationUpdate {
  8766  	s.HECToken = &v
  8767  	return s
  8768  }
  8769  
  8770  // SetProcessingConfiguration sets the ProcessingConfiguration field's value.
  8771  func (s *SplunkDestinationUpdate) SetProcessingConfiguration(v *ProcessingConfiguration) *SplunkDestinationUpdate {
  8772  	s.ProcessingConfiguration = v
  8773  	return s
  8774  }
  8775  
  8776  // SetRetryOptions sets the RetryOptions field's value.
  8777  func (s *SplunkDestinationUpdate) SetRetryOptions(v *SplunkRetryOptions) *SplunkDestinationUpdate {
  8778  	s.RetryOptions = v
  8779  	return s
  8780  }
  8781  
  8782  // SetS3BackupMode sets the S3BackupMode field's value.
  8783  func (s *SplunkDestinationUpdate) SetS3BackupMode(v string) *SplunkDestinationUpdate {
  8784  	s.S3BackupMode = &v
  8785  	return s
  8786  }
  8787  
  8788  // SetS3Update sets the S3Update field's value.
  8789  func (s *SplunkDestinationUpdate) SetS3Update(v *S3DestinationUpdate) *SplunkDestinationUpdate {
  8790  	s.S3Update = v
  8791  	return s
  8792  }
  8793  
  8794  // Configures retry behavior in case Kinesis Data Firehose is unable to deliver
  8795  // documents to Splunk, or if it doesn't receive an acknowledgment from Splunk.
  8796  type SplunkRetryOptions struct {
  8797  	_ struct{} `type:"structure"`
  8798  
  8799  	// The total amount of time that Kinesis Data Firehose spends on retries. This
  8800  	// duration starts after the initial attempt to send data to Splunk fails. It
  8801  	// doesn't include the periods during which Kinesis Data Firehose waits for
  8802  	// acknowledgment from Splunk after each attempt.
  8803  	DurationInSeconds *int64 `type:"integer"`
  8804  }
  8805  
  8806  // String returns the string representation.
  8807  //
  8808  // API parameter values that are decorated as "sensitive" in the API will not
  8809  // be included in the string output. The member name will be present, but the
  8810  // value will be replaced with "sensitive".
  8811  func (s SplunkRetryOptions) String() string {
  8812  	return awsutil.Prettify(s)
  8813  }
  8814  
  8815  // GoString returns the string representation.
  8816  //
  8817  // API parameter values that are decorated as "sensitive" in the API will not
  8818  // be included in the string output. The member name will be present, but the
  8819  // value will be replaced with "sensitive".
  8820  func (s SplunkRetryOptions) GoString() string {
  8821  	return s.String()
  8822  }
  8823  
  8824  // SetDurationInSeconds sets the DurationInSeconds field's value.
  8825  func (s *SplunkRetryOptions) SetDurationInSeconds(v int64) *SplunkRetryOptions {
  8826  	s.DurationInSeconds = &v
  8827  	return s
  8828  }
  8829  
  8830  type StartDeliveryStreamEncryptionInput struct {
  8831  	_ struct{} `type:"structure"`
  8832  
  8833  	// Used to specify the type and Amazon Resource Name (ARN) of the KMS key needed
  8834  	// for Server-Side Encryption (SSE).
  8835  	DeliveryStreamEncryptionConfigurationInput *DeliveryStreamEncryptionConfigurationInput `type:"structure"`
  8836  
  8837  	// The name of the delivery stream for which you want to enable server-side
  8838  	// encryption (SSE).
  8839  	//
  8840  	// DeliveryStreamName is a required field
  8841  	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
  8842  }
  8843  
  8844  // String returns the string representation.
  8845  //
  8846  // API parameter values that are decorated as "sensitive" in the API will not
  8847  // be included in the string output. The member name will be present, but the
  8848  // value will be replaced with "sensitive".
  8849  func (s StartDeliveryStreamEncryptionInput) String() string {
  8850  	return awsutil.Prettify(s)
  8851  }
  8852  
  8853  // GoString returns the string representation.
  8854  //
  8855  // API parameter values that are decorated as "sensitive" in the API will not
  8856  // be included in the string output. The member name will be present, but the
  8857  // value will be replaced with "sensitive".
  8858  func (s StartDeliveryStreamEncryptionInput) GoString() string {
  8859  	return s.String()
  8860  }
  8861  
  8862  // Validate inspects the fields of the type to determine if they are valid.
  8863  func (s *StartDeliveryStreamEncryptionInput) Validate() error {
  8864  	invalidParams := request.ErrInvalidParams{Context: "StartDeliveryStreamEncryptionInput"}
  8865  	if s.DeliveryStreamName == nil {
  8866  		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
  8867  	}
  8868  	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
  8869  		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
  8870  	}
  8871  	if s.DeliveryStreamEncryptionConfigurationInput != nil {
  8872  		if err := s.DeliveryStreamEncryptionConfigurationInput.Validate(); err != nil {
  8873  			invalidParams.AddNested("DeliveryStreamEncryptionConfigurationInput", err.(request.ErrInvalidParams))
  8874  		}
  8875  	}
  8876  
  8877  	if invalidParams.Len() > 0 {
  8878  		return invalidParams
  8879  	}
  8880  	return nil
  8881  }
  8882  
  8883  // SetDeliveryStreamEncryptionConfigurationInput sets the DeliveryStreamEncryptionConfigurationInput field's value.
  8884  func (s *StartDeliveryStreamEncryptionInput) SetDeliveryStreamEncryptionConfigurationInput(v *DeliveryStreamEncryptionConfigurationInput) *StartDeliveryStreamEncryptionInput {
  8885  	s.DeliveryStreamEncryptionConfigurationInput = v
  8886  	return s
  8887  }
  8888  
  8889  // SetDeliveryStreamName sets the DeliveryStreamName field's value.
  8890  func (s *StartDeliveryStreamEncryptionInput) SetDeliveryStreamName(v string) *StartDeliveryStreamEncryptionInput {
  8891  	s.DeliveryStreamName = &v
  8892  	return s
  8893  }
  8894  
  8895  type StartDeliveryStreamEncryptionOutput struct {
  8896  	_ struct{} `type:"structure"`
  8897  }
  8898  
  8899  // String returns the string representation.
  8900  //
  8901  // API parameter values that are decorated as "sensitive" in the API will not
  8902  // be included in the string output. The member name will be present, but the
  8903  // value will be replaced with "sensitive".
  8904  func (s StartDeliveryStreamEncryptionOutput) String() string {
  8905  	return awsutil.Prettify(s)
  8906  }
  8907  
  8908  // GoString returns the string representation.
  8909  //
  8910  // API parameter values that are decorated as "sensitive" in the API will not
  8911  // be included in the string output. The member name will be present, but the
  8912  // value will be replaced with "sensitive".
  8913  func (s StartDeliveryStreamEncryptionOutput) GoString() string {
  8914  	return s.String()
  8915  }
  8916  
  8917  type StopDeliveryStreamEncryptionInput struct {
  8918  	_ struct{} `type:"structure"`
  8919  
  8920  	// The name of the delivery stream for which you want to disable server-side
  8921  	// encryption (SSE).
  8922  	//
  8923  	// DeliveryStreamName is a required field
  8924  	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
  8925  }
  8926  
  8927  // String returns the string representation.
  8928  //
  8929  // API parameter values that are decorated as "sensitive" in the API will not
  8930  // be included in the string output. The member name will be present, but the
  8931  // value will be replaced with "sensitive".
  8932  func (s StopDeliveryStreamEncryptionInput) String() string {
  8933  	return awsutil.Prettify(s)
  8934  }
  8935  
  8936  // GoString returns the string representation.
  8937  //
  8938  // API parameter values that are decorated as "sensitive" in the API will not
  8939  // be included in the string output. The member name will be present, but the
  8940  // value will be replaced with "sensitive".
  8941  func (s StopDeliveryStreamEncryptionInput) GoString() string {
  8942  	return s.String()
  8943  }
  8944  
  8945  // Validate inspects the fields of the type to determine if they are valid.
  8946  func (s *StopDeliveryStreamEncryptionInput) Validate() error {
  8947  	invalidParams := request.ErrInvalidParams{Context: "StopDeliveryStreamEncryptionInput"}
  8948  	if s.DeliveryStreamName == nil {
  8949  		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
  8950  	}
  8951  	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
  8952  		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
  8953  	}
  8954  
  8955  	if invalidParams.Len() > 0 {
  8956  		return invalidParams
  8957  	}
  8958  	return nil
  8959  }
  8960  
  8961  // SetDeliveryStreamName sets the DeliveryStreamName field's value.
  8962  func (s *StopDeliveryStreamEncryptionInput) SetDeliveryStreamName(v string) *StopDeliveryStreamEncryptionInput {
  8963  	s.DeliveryStreamName = &v
  8964  	return s
  8965  }
  8966  
  8967  type StopDeliveryStreamEncryptionOutput struct {
  8968  	_ struct{} `type:"structure"`
  8969  }
  8970  
  8971  // String returns the string representation.
  8972  //
  8973  // API parameter values that are decorated as "sensitive" in the API will not
  8974  // be included in the string output. The member name will be present, but the
  8975  // value will be replaced with "sensitive".
  8976  func (s StopDeliveryStreamEncryptionOutput) String() string {
  8977  	return awsutil.Prettify(s)
  8978  }
  8979  
  8980  // GoString returns the string representation.
  8981  //
  8982  // API parameter values that are decorated as "sensitive" in the API will not
  8983  // be included in the string output. The member name will be present, but the
  8984  // value will be replaced with "sensitive".
  8985  func (s StopDeliveryStreamEncryptionOutput) GoString() string {
  8986  	return s.String()
  8987  }
  8988  
  8989  // Metadata that you can assign to a delivery stream, consisting of a key-value
  8990  // pair.
  8991  type Tag struct {
  8992  	_ struct{} `type:"structure"`
  8993  
  8994  	// A unique identifier for the tag. Maximum length: 128 characters. Valid characters:
  8995  	// Unicode letters, digits, white space, _ . / = + - % @
  8996  	//
  8997  	// Key is a required field
  8998  	Key *string `min:"1" type:"string" required:"true"`
  8999  
  9000  	// An optional string, which you can use to describe or define the tag. Maximum
  9001  	// length: 256 characters. Valid characters: Unicode letters, digits, white
  9002  	// space, _ . / = + - % @
  9003  	Value *string `type:"string"`
  9004  }
  9005  
  9006  // String returns the string representation.
  9007  //
  9008  // API parameter values that are decorated as "sensitive" in the API will not
  9009  // be included in the string output. The member name will be present, but the
  9010  // value will be replaced with "sensitive".
  9011  func (s Tag) String() string {
  9012  	return awsutil.Prettify(s)
  9013  }
  9014  
  9015  // GoString returns the string representation.
  9016  //
  9017  // API parameter values that are decorated as "sensitive" in the API will not
  9018  // be included in the string output. The member name will be present, but the
  9019  // value will be replaced with "sensitive".
  9020  func (s Tag) GoString() string {
  9021  	return s.String()
  9022  }
  9023  
  9024  // Validate inspects the fields of the type to determine if they are valid.
  9025  func (s *Tag) Validate() error {
  9026  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
  9027  	if s.Key == nil {
  9028  		invalidParams.Add(request.NewErrParamRequired("Key"))
  9029  	}
  9030  	if s.Key != nil && len(*s.Key) < 1 {
  9031  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
  9032  	}
  9033  
  9034  	if invalidParams.Len() > 0 {
  9035  		return invalidParams
  9036  	}
  9037  	return nil
  9038  }
  9039  
  9040  // SetKey sets the Key field's value.
  9041  func (s *Tag) SetKey(v string) *Tag {
  9042  	s.Key = &v
  9043  	return s
  9044  }
  9045  
  9046  // SetValue sets the Value field's value.
  9047  func (s *Tag) SetValue(v string) *Tag {
  9048  	s.Value = &v
  9049  	return s
  9050  }
  9051  
  9052  type TagDeliveryStreamInput struct {
  9053  	_ struct{} `type:"structure"`
  9054  
  9055  	// The name of the delivery stream to which you want to add the tags.
  9056  	//
  9057  	// DeliveryStreamName is a required field
  9058  	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
  9059  
  9060  	// A set of key-value pairs to use to create the tags.
  9061  	//
  9062  	// Tags is a required field
  9063  	Tags []*Tag `min:"1" type:"list" required:"true"`
  9064  }
  9065  
  9066  // String returns the string representation.
  9067  //
  9068  // API parameter values that are decorated as "sensitive" in the API will not
  9069  // be included in the string output. The member name will be present, but the
  9070  // value will be replaced with "sensitive".
  9071  func (s TagDeliveryStreamInput) String() string {
  9072  	return awsutil.Prettify(s)
  9073  }
  9074  
  9075  // GoString returns the string representation.
  9076  //
  9077  // API parameter values that are decorated as "sensitive" in the API will not
  9078  // be included in the string output. The member name will be present, but the
  9079  // value will be replaced with "sensitive".
  9080  func (s TagDeliveryStreamInput) GoString() string {
  9081  	return s.String()
  9082  }
  9083  
  9084  // Validate inspects the fields of the type to determine if they are valid.
  9085  func (s *TagDeliveryStreamInput) Validate() error {
  9086  	invalidParams := request.ErrInvalidParams{Context: "TagDeliveryStreamInput"}
  9087  	if s.DeliveryStreamName == nil {
  9088  		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
  9089  	}
  9090  	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
  9091  		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
  9092  	}
  9093  	if s.Tags == nil {
  9094  		invalidParams.Add(request.NewErrParamRequired("Tags"))
  9095  	}
  9096  	if s.Tags != nil && len(s.Tags) < 1 {
  9097  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
  9098  	}
  9099  	if s.Tags != nil {
  9100  		for i, v := range s.Tags {
  9101  			if v == nil {
  9102  				continue
  9103  			}
  9104  			if err := v.Validate(); err != nil {
  9105  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  9106  			}
  9107  		}
  9108  	}
  9109  
  9110  	if invalidParams.Len() > 0 {
  9111  		return invalidParams
  9112  	}
  9113  	return nil
  9114  }
  9115  
  9116  // SetDeliveryStreamName sets the DeliveryStreamName field's value.
  9117  func (s *TagDeliveryStreamInput) SetDeliveryStreamName(v string) *TagDeliveryStreamInput {
  9118  	s.DeliveryStreamName = &v
  9119  	return s
  9120  }
  9121  
  9122  // SetTags sets the Tags field's value.
  9123  func (s *TagDeliveryStreamInput) SetTags(v []*Tag) *TagDeliveryStreamInput {
  9124  	s.Tags = v
  9125  	return s
  9126  }
  9127  
  9128  type TagDeliveryStreamOutput struct {
  9129  	_ struct{} `type:"structure"`
  9130  }
  9131  
  9132  // String returns the string representation.
  9133  //
  9134  // API parameter values that are decorated as "sensitive" in the API will not
  9135  // be included in the string output. The member name will be present, but the
  9136  // value will be replaced with "sensitive".
  9137  func (s TagDeliveryStreamOutput) String() string {
  9138  	return awsutil.Prettify(s)
  9139  }
  9140  
  9141  // GoString returns the string representation.
  9142  //
  9143  // API parameter values that are decorated as "sensitive" in the API will not
  9144  // be included in the string output. The member name will be present, but the
  9145  // value will be replaced with "sensitive".
  9146  func (s TagDeliveryStreamOutput) GoString() string {
  9147  	return s.String()
  9148  }
  9149  
  9150  type UntagDeliveryStreamInput struct {
  9151  	_ struct{} `type:"structure"`
  9152  
  9153  	// The name of the delivery stream.
  9154  	//
  9155  	// DeliveryStreamName is a required field
  9156  	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
  9157  
  9158  	// A list of tag keys. Each corresponding tag is removed from the delivery stream.
  9159  	//
  9160  	// TagKeys is a required field
  9161  	TagKeys []*string `min:"1" type:"list" required:"true"`
  9162  }
  9163  
  9164  // String returns the string representation.
  9165  //
  9166  // API parameter values that are decorated as "sensitive" in the API will not
  9167  // be included in the string output. The member name will be present, but the
  9168  // value will be replaced with "sensitive".
  9169  func (s UntagDeliveryStreamInput) String() string {
  9170  	return awsutil.Prettify(s)
  9171  }
  9172  
  9173  // GoString returns the string representation.
  9174  //
  9175  // API parameter values that are decorated as "sensitive" in the API will not
  9176  // be included in the string output. The member name will be present, but the
  9177  // value will be replaced with "sensitive".
  9178  func (s UntagDeliveryStreamInput) GoString() string {
  9179  	return s.String()
  9180  }
  9181  
  9182  // Validate inspects the fields of the type to determine if they are valid.
  9183  func (s *UntagDeliveryStreamInput) Validate() error {
  9184  	invalidParams := request.ErrInvalidParams{Context: "UntagDeliveryStreamInput"}
  9185  	if s.DeliveryStreamName == nil {
  9186  		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
  9187  	}
  9188  	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
  9189  		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
  9190  	}
  9191  	if s.TagKeys == nil {
  9192  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
  9193  	}
  9194  	if s.TagKeys != nil && len(s.TagKeys) < 1 {
  9195  		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
  9196  	}
  9197  
  9198  	if invalidParams.Len() > 0 {
  9199  		return invalidParams
  9200  	}
  9201  	return nil
  9202  }
  9203  
  9204  // SetDeliveryStreamName sets the DeliveryStreamName field's value.
  9205  func (s *UntagDeliveryStreamInput) SetDeliveryStreamName(v string) *UntagDeliveryStreamInput {
  9206  	s.DeliveryStreamName = &v
  9207  	return s
  9208  }
  9209  
  9210  // SetTagKeys sets the TagKeys field's value.
  9211  func (s *UntagDeliveryStreamInput) SetTagKeys(v []*string) *UntagDeliveryStreamInput {
  9212  	s.TagKeys = v
  9213  	return s
  9214  }
  9215  
  9216  type UntagDeliveryStreamOutput struct {
  9217  	_ struct{} `type:"structure"`
  9218  }
  9219  
  9220  // String returns the string representation.
  9221  //
  9222  // API parameter values that are decorated as "sensitive" in the API will not
  9223  // be included in the string output. The member name will be present, but the
  9224  // value will be replaced with "sensitive".
  9225  func (s UntagDeliveryStreamOutput) String() string {
  9226  	return awsutil.Prettify(s)
  9227  }
  9228  
  9229  // GoString returns the string representation.
  9230  //
  9231  // API parameter values that are decorated as "sensitive" in the API will not
  9232  // be included in the string output. The member name will be present, but the
  9233  // value will be replaced with "sensitive".
  9234  func (s UntagDeliveryStreamOutput) GoString() string {
  9235  	return s.String()
  9236  }
  9237  
  9238  type UpdateDestinationInput struct {
  9239  	_ struct{} `type:"structure"`
  9240  
  9241  	AmazonopensearchserviceDestinationUpdate *AmazonopensearchserviceDestinationUpdate `type:"structure"`
  9242  
  9243  	// Obtain this value from the VersionId result of DeliveryStreamDescription.
  9244  	// This value is required, and helps the service perform conditional operations.
  9245  	// For example, if there is an interleaving update and this value is null, then
  9246  	// the update destination fails. After the update is successful, the VersionId
  9247  	// value is updated. The service then performs a merge of the old configuration
  9248  	// with the new configuration.
  9249  	//
  9250  	// CurrentDeliveryStreamVersionId is a required field
  9251  	CurrentDeliveryStreamVersionId *string `min:"1" type:"string" required:"true"`
  9252  
  9253  	// The name of the delivery stream.
  9254  	//
  9255  	// DeliveryStreamName is a required field
  9256  	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
  9257  
  9258  	// The ID of the destination.
  9259  	//
  9260  	// DestinationId is a required field
  9261  	DestinationId *string `min:"1" type:"string" required:"true"`
  9262  
  9263  	// Describes an update for a destination in Amazon ES.
  9264  	ElasticsearchDestinationUpdate *ElasticsearchDestinationUpdate `type:"structure"`
  9265  
  9266  	// Describes an update for a destination in Amazon S3.
  9267  	ExtendedS3DestinationUpdate *ExtendedS3DestinationUpdate `type:"structure"`
  9268  
  9269  	// Describes an update to the specified HTTP endpoint destination.
  9270  	HttpEndpointDestinationUpdate *HttpEndpointDestinationUpdate `type:"structure"`
  9271  
  9272  	// Describes an update for a destination in Amazon Redshift.
  9273  	RedshiftDestinationUpdate *RedshiftDestinationUpdate `type:"structure"`
  9274  
  9275  	// [Deprecated] Describes an update for a destination in Amazon S3.
  9276  	//
  9277  	// Deprecated: S3DestinationUpdate has been deprecated
  9278  	S3DestinationUpdate *S3DestinationUpdate `deprecated:"true" type:"structure"`
  9279  
  9280  	// Describes an update for a destination in Splunk.
  9281  	SplunkDestinationUpdate *SplunkDestinationUpdate `type:"structure"`
  9282  }
  9283  
  9284  // String returns the string representation.
  9285  //
  9286  // API parameter values that are decorated as "sensitive" in the API will not
  9287  // be included in the string output. The member name will be present, but the
  9288  // value will be replaced with "sensitive".
  9289  func (s UpdateDestinationInput) String() string {
  9290  	return awsutil.Prettify(s)
  9291  }
  9292  
  9293  // GoString returns the string representation.
  9294  //
  9295  // API parameter values that are decorated as "sensitive" in the API will not
  9296  // be included in the string output. The member name will be present, but the
  9297  // value will be replaced with "sensitive".
  9298  func (s UpdateDestinationInput) GoString() string {
  9299  	return s.String()
  9300  }
  9301  
  9302  // Validate inspects the fields of the type to determine if they are valid.
  9303  func (s *UpdateDestinationInput) Validate() error {
  9304  	invalidParams := request.ErrInvalidParams{Context: "UpdateDestinationInput"}
  9305  	if s.CurrentDeliveryStreamVersionId == nil {
  9306  		invalidParams.Add(request.NewErrParamRequired("CurrentDeliveryStreamVersionId"))
  9307  	}
  9308  	if s.CurrentDeliveryStreamVersionId != nil && len(*s.CurrentDeliveryStreamVersionId) < 1 {
  9309  		invalidParams.Add(request.NewErrParamMinLen("CurrentDeliveryStreamVersionId", 1))
  9310  	}
  9311  	if s.DeliveryStreamName == nil {
  9312  		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
  9313  	}
  9314  	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
  9315  		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
  9316  	}
  9317  	if s.DestinationId == nil {
  9318  		invalidParams.Add(request.NewErrParamRequired("DestinationId"))
  9319  	}
  9320  	if s.DestinationId != nil && len(*s.DestinationId) < 1 {
  9321  		invalidParams.Add(request.NewErrParamMinLen("DestinationId", 1))
  9322  	}
  9323  	if s.AmazonopensearchserviceDestinationUpdate != nil {
  9324  		if err := s.AmazonopensearchserviceDestinationUpdate.Validate(); err != nil {
  9325  			invalidParams.AddNested("AmazonopensearchserviceDestinationUpdate", err.(request.ErrInvalidParams))
  9326  		}
  9327  	}
  9328  	if s.ElasticsearchDestinationUpdate != nil {
  9329  		if err := s.ElasticsearchDestinationUpdate.Validate(); err != nil {
  9330  			invalidParams.AddNested("ElasticsearchDestinationUpdate", err.(request.ErrInvalidParams))
  9331  		}
  9332  	}
  9333  	if s.ExtendedS3DestinationUpdate != nil {
  9334  		if err := s.ExtendedS3DestinationUpdate.Validate(); err != nil {
  9335  			invalidParams.AddNested("ExtendedS3DestinationUpdate", err.(request.ErrInvalidParams))
  9336  		}
  9337  	}
  9338  	if s.HttpEndpointDestinationUpdate != nil {
  9339  		if err := s.HttpEndpointDestinationUpdate.Validate(); err != nil {
  9340  			invalidParams.AddNested("HttpEndpointDestinationUpdate", err.(request.ErrInvalidParams))
  9341  		}
  9342  	}
  9343  	if s.RedshiftDestinationUpdate != nil {
  9344  		if err := s.RedshiftDestinationUpdate.Validate(); err != nil {
  9345  			invalidParams.AddNested("RedshiftDestinationUpdate", err.(request.ErrInvalidParams))
  9346  		}
  9347  	}
  9348  	if s.S3DestinationUpdate != nil {
  9349  		if err := s.S3DestinationUpdate.Validate(); err != nil {
  9350  			invalidParams.AddNested("S3DestinationUpdate", err.(request.ErrInvalidParams))
  9351  		}
  9352  	}
  9353  	if s.SplunkDestinationUpdate != nil {
  9354  		if err := s.SplunkDestinationUpdate.Validate(); err != nil {
  9355  			invalidParams.AddNested("SplunkDestinationUpdate", err.(request.ErrInvalidParams))
  9356  		}
  9357  	}
  9358  
  9359  	if invalidParams.Len() > 0 {
  9360  		return invalidParams
  9361  	}
  9362  	return nil
  9363  }
  9364  
  9365  // SetAmazonopensearchserviceDestinationUpdate sets the AmazonopensearchserviceDestinationUpdate field's value.
  9366  func (s *UpdateDestinationInput) SetAmazonopensearchserviceDestinationUpdate(v *AmazonopensearchserviceDestinationUpdate) *UpdateDestinationInput {
  9367  	s.AmazonopensearchserviceDestinationUpdate = v
  9368  	return s
  9369  }
  9370  
  9371  // SetCurrentDeliveryStreamVersionId sets the CurrentDeliveryStreamVersionId field's value.
  9372  func (s *UpdateDestinationInput) SetCurrentDeliveryStreamVersionId(v string) *UpdateDestinationInput {
  9373  	s.CurrentDeliveryStreamVersionId = &v
  9374  	return s
  9375  }
  9376  
  9377  // SetDeliveryStreamName sets the DeliveryStreamName field's value.
  9378  func (s *UpdateDestinationInput) SetDeliveryStreamName(v string) *UpdateDestinationInput {
  9379  	s.DeliveryStreamName = &v
  9380  	return s
  9381  }
  9382  
  9383  // SetDestinationId sets the DestinationId field's value.
  9384  func (s *UpdateDestinationInput) SetDestinationId(v string) *UpdateDestinationInput {
  9385  	s.DestinationId = &v
  9386  	return s
  9387  }
  9388  
  9389  // SetElasticsearchDestinationUpdate sets the ElasticsearchDestinationUpdate field's value.
  9390  func (s *UpdateDestinationInput) SetElasticsearchDestinationUpdate(v *ElasticsearchDestinationUpdate) *UpdateDestinationInput {
  9391  	s.ElasticsearchDestinationUpdate = v
  9392  	return s
  9393  }
  9394  
  9395  // SetExtendedS3DestinationUpdate sets the ExtendedS3DestinationUpdate field's value.
  9396  func (s *UpdateDestinationInput) SetExtendedS3DestinationUpdate(v *ExtendedS3DestinationUpdate) *UpdateDestinationInput {
  9397  	s.ExtendedS3DestinationUpdate = v
  9398  	return s
  9399  }
  9400  
  9401  // SetHttpEndpointDestinationUpdate sets the HttpEndpointDestinationUpdate field's value.
  9402  func (s *UpdateDestinationInput) SetHttpEndpointDestinationUpdate(v *HttpEndpointDestinationUpdate) *UpdateDestinationInput {
  9403  	s.HttpEndpointDestinationUpdate = v
  9404  	return s
  9405  }
  9406  
  9407  // SetRedshiftDestinationUpdate sets the RedshiftDestinationUpdate field's value.
  9408  func (s *UpdateDestinationInput) SetRedshiftDestinationUpdate(v *RedshiftDestinationUpdate) *UpdateDestinationInput {
  9409  	s.RedshiftDestinationUpdate = v
  9410  	return s
  9411  }
  9412  
  9413  // SetS3DestinationUpdate sets the S3DestinationUpdate field's value.
  9414  func (s *UpdateDestinationInput) SetS3DestinationUpdate(v *S3DestinationUpdate) *UpdateDestinationInput {
  9415  	s.S3DestinationUpdate = v
  9416  	return s
  9417  }
  9418  
  9419  // SetSplunkDestinationUpdate sets the SplunkDestinationUpdate field's value.
  9420  func (s *UpdateDestinationInput) SetSplunkDestinationUpdate(v *SplunkDestinationUpdate) *UpdateDestinationInput {
  9421  	s.SplunkDestinationUpdate = v
  9422  	return s
  9423  }
  9424  
  9425  type UpdateDestinationOutput struct {
  9426  	_ struct{} `type:"structure"`
  9427  }
  9428  
  9429  // String returns the string representation.
  9430  //
  9431  // API parameter values that are decorated as "sensitive" in the API will not
  9432  // be included in the string output. The member name will be present, but the
  9433  // value will be replaced with "sensitive".
  9434  func (s UpdateDestinationOutput) String() string {
  9435  	return awsutil.Prettify(s)
  9436  }
  9437  
  9438  // GoString returns the string representation.
  9439  //
  9440  // API parameter values that are decorated as "sensitive" in the API will not
  9441  // be included in the string output. The member name will be present, but the
  9442  // value will be replaced with "sensitive".
  9443  func (s UpdateDestinationOutput) GoString() string {
  9444  	return s.String()
  9445  }
  9446  
  9447  // The details of the VPC of the Amazon ES destination.
  9448  type VpcConfiguration struct {
  9449  	_ struct{} `type:"structure"`
  9450  
  9451  	// The ARN of the IAM role that you want the delivery stream to use to create
  9452  	// endpoints in the destination VPC. You can use your existing Kinesis Data
  9453  	// Firehose delivery role or you can specify a new role. In either case, make
  9454  	// sure that the role trusts the Kinesis Data Firehose service principal and
  9455  	// that it grants the following permissions:
  9456  	//
  9457  	//    * ec2:DescribeVpcs
  9458  	//
  9459  	//    * ec2:DescribeVpcAttribute
  9460  	//
  9461  	//    * ec2:DescribeSubnets
  9462  	//
  9463  	//    * ec2:DescribeSecurityGroups
  9464  	//
  9465  	//    * ec2:DescribeNetworkInterfaces
  9466  	//
  9467  	//    * ec2:CreateNetworkInterface
  9468  	//
  9469  	//    * ec2:CreateNetworkInterfacePermission
  9470  	//
  9471  	//    * ec2:DeleteNetworkInterface
  9472  	//
  9473  	// If you revoke these permissions after you create the delivery stream, Kinesis
  9474  	// Data Firehose can't scale out by creating more ENIs when necessary. You might
  9475  	// therefore see a degradation in performance.
  9476  	//
  9477  	// RoleARN is a required field
  9478  	RoleARN *string `min:"1" type:"string" required:"true"`
  9479  
  9480  	// The IDs of the security groups that you want Kinesis Data Firehose to use
  9481  	// when it creates ENIs in the VPC of the Amazon ES destination. You can use
  9482  	// the same security group that the Amazon ES domain uses or different ones.
  9483  	// If you specify different security groups here, ensure that they allow outbound
  9484  	// HTTPS traffic to the Amazon ES domain's security group. Also ensure that
  9485  	// the Amazon ES domain's security group allows HTTPS traffic from the security
  9486  	// groups specified here. If you use the same security group for both your delivery
  9487  	// stream and the Amazon ES domain, make sure the security group inbound rule
  9488  	// allows HTTPS traffic. For more information about security group rules, see
  9489  	// Security group rules (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#SecurityGroupRules)
  9490  	// in the Amazon VPC documentation.
  9491  	//
  9492  	// SecurityGroupIds is a required field
  9493  	SecurityGroupIds []*string `min:"1" type:"list" required:"true"`
  9494  
  9495  	// The IDs of the subnets that you want Kinesis Data Firehose to use to create
  9496  	// ENIs in the VPC of the Amazon ES destination. Make sure that the routing
  9497  	// tables and inbound and outbound rules allow traffic to flow from the subnets
  9498  	// whose IDs are specified here to the subnets that have the destination Amazon
  9499  	// ES endpoints. Kinesis Data Firehose creates at least one ENI in each of the
  9500  	// subnets that are specified here. Do not delete or modify these ENIs.
  9501  	//
  9502  	// The number of ENIs that Kinesis Data Firehose creates in the subnets specified
  9503  	// here scales up and down automatically based on throughput. To enable Kinesis
  9504  	// Data Firehose to scale up the number of ENIs to match throughput, ensure
  9505  	// that you have sufficient quota. To help you calculate the quota you need,
  9506  	// assume that Kinesis Data Firehose can create up to three ENIs for this delivery
  9507  	// stream for each of the subnets specified here. For more information about
  9508  	// ENI quota, see Network Interfaces (https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-enis)
  9509  	// in the Amazon VPC Quotas topic.
  9510  	//
  9511  	// SubnetIds is a required field
  9512  	SubnetIds []*string `min:"1" type:"list" required:"true"`
  9513  }
  9514  
  9515  // String returns the string representation.
  9516  //
  9517  // API parameter values that are decorated as "sensitive" in the API will not
  9518  // be included in the string output. The member name will be present, but the
  9519  // value will be replaced with "sensitive".
  9520  func (s VpcConfiguration) String() string {
  9521  	return awsutil.Prettify(s)
  9522  }
  9523  
  9524  // GoString returns the string representation.
  9525  //
  9526  // API parameter values that are decorated as "sensitive" in the API will not
  9527  // be included in the string output. The member name will be present, but the
  9528  // value will be replaced with "sensitive".
  9529  func (s VpcConfiguration) GoString() string {
  9530  	return s.String()
  9531  }
  9532  
  9533  // Validate inspects the fields of the type to determine if they are valid.
  9534  func (s *VpcConfiguration) Validate() error {
  9535  	invalidParams := request.ErrInvalidParams{Context: "VpcConfiguration"}
  9536  	if s.RoleARN == nil {
  9537  		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
  9538  	}
  9539  	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
  9540  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
  9541  	}
  9542  	if s.SecurityGroupIds == nil {
  9543  		invalidParams.Add(request.NewErrParamRequired("SecurityGroupIds"))
  9544  	}
  9545  	if s.SecurityGroupIds != nil && len(s.SecurityGroupIds) < 1 {
  9546  		invalidParams.Add(request.NewErrParamMinLen("SecurityGroupIds", 1))
  9547  	}
  9548  	if s.SubnetIds == nil {
  9549  		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
  9550  	}
  9551  	if s.SubnetIds != nil && len(s.SubnetIds) < 1 {
  9552  		invalidParams.Add(request.NewErrParamMinLen("SubnetIds", 1))
  9553  	}
  9554  
  9555  	if invalidParams.Len() > 0 {
  9556  		return invalidParams
  9557  	}
  9558  	return nil
  9559  }
  9560  
  9561  // SetRoleARN sets the RoleARN field's value.
  9562  func (s *VpcConfiguration) SetRoleARN(v string) *VpcConfiguration {
  9563  	s.RoleARN = &v
  9564  	return s
  9565  }
  9566  
  9567  // SetSecurityGroupIds sets the SecurityGroupIds field's value.
  9568  func (s *VpcConfiguration) SetSecurityGroupIds(v []*string) *VpcConfiguration {
  9569  	s.SecurityGroupIds = v
  9570  	return s
  9571  }
  9572  
  9573  // SetSubnetIds sets the SubnetIds field's value.
  9574  func (s *VpcConfiguration) SetSubnetIds(v []*string) *VpcConfiguration {
  9575  	s.SubnetIds = v
  9576  	return s
  9577  }
  9578  
  9579  // The details of the VPC of the Amazon ES destination.
  9580  type VpcConfigurationDescription struct {
  9581  	_ struct{} `type:"structure"`
  9582  
  9583  	// The ARN of the IAM role that the delivery stream uses to create endpoints
  9584  	// in the destination VPC. You can use your existing Kinesis Data Firehose delivery
  9585  	// role or you can specify a new role. In either case, make sure that the role
  9586  	// trusts the Kinesis Data Firehose service principal and that it grants the
  9587  	// following permissions:
  9588  	//
  9589  	//    * ec2:DescribeVpcs
  9590  	//
  9591  	//    * ec2:DescribeVpcAttribute
  9592  	//
  9593  	//    * ec2:DescribeSubnets
  9594  	//
  9595  	//    * ec2:DescribeSecurityGroups
  9596  	//
  9597  	//    * ec2:DescribeNetworkInterfaces
  9598  	//
  9599  	//    * ec2:CreateNetworkInterface
  9600  	//
  9601  	//    * ec2:CreateNetworkInterfacePermission
  9602  	//
  9603  	//    * ec2:DeleteNetworkInterface
  9604  	//
  9605  	// If you revoke these permissions after you create the delivery stream, Kinesis
  9606  	// Data Firehose can't scale out by creating more ENIs when necessary. You might
  9607  	// therefore see a degradation in performance.
  9608  	//
  9609  	// RoleARN is a required field
  9610  	RoleARN *string `min:"1" type:"string" required:"true"`
  9611  
  9612  	// The IDs of the security groups that Kinesis Data Firehose uses when it creates
  9613  	// ENIs in the VPC of the Amazon ES destination. You can use the same security
  9614  	// group that the Amazon ES domain uses or different ones. If you specify different
  9615  	// security groups, ensure that they allow outbound HTTPS traffic to the Amazon
  9616  	// ES domain's security group. Also ensure that the Amazon ES domain's security
  9617  	// group allows HTTPS traffic from the security groups specified here. If you
  9618  	// use the same security group for both your delivery stream and the Amazon
  9619  	// ES domain, make sure the security group inbound rule allows HTTPS traffic.
  9620  	// For more information about security group rules, see Security group rules
  9621  	// (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#SecurityGroupRules)
  9622  	// in the Amazon VPC documentation.
  9623  	//
  9624  	// SecurityGroupIds is a required field
  9625  	SecurityGroupIds []*string `min:"1" type:"list" required:"true"`
  9626  
  9627  	// The IDs of the subnets that Kinesis Data Firehose uses to create ENIs in
  9628  	// the VPC of the Amazon ES destination. Make sure that the routing tables and
  9629  	// inbound and outbound rules allow traffic to flow from the subnets whose IDs
  9630  	// are specified here to the subnets that have the destination Amazon ES endpoints.
  9631  	// Kinesis Data Firehose creates at least one ENI in each of the subnets that
  9632  	// are specified here. Do not delete or modify these ENIs.
  9633  	//
  9634  	// The number of ENIs that Kinesis Data Firehose creates in the subnets specified
  9635  	// here scales up and down automatically based on throughput. To enable Kinesis
  9636  	// Data Firehose to scale up the number of ENIs to match throughput, ensure
  9637  	// that you have sufficient quota. To help you calculate the quota you need,
  9638  	// assume that Kinesis Data Firehose can create up to three ENIs for this delivery
  9639  	// stream for each of the subnets specified here. For more information about
  9640  	// ENI quota, see Network Interfaces (https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-enis)
  9641  	// in the Amazon VPC Quotas topic.
  9642  	//
  9643  	// SubnetIds is a required field
  9644  	SubnetIds []*string `min:"1" type:"list" required:"true"`
  9645  
  9646  	// The ID of the Amazon ES destination's VPC.
  9647  	//
  9648  	// VpcId is a required field
  9649  	VpcId *string `min:"1" type:"string" required:"true"`
  9650  }
  9651  
  9652  // String returns the string representation.
  9653  //
  9654  // API parameter values that are decorated as "sensitive" in the API will not
  9655  // be included in the string output. The member name will be present, but the
  9656  // value will be replaced with "sensitive".
  9657  func (s VpcConfigurationDescription) String() string {
  9658  	return awsutil.Prettify(s)
  9659  }
  9660  
  9661  // GoString returns the string representation.
  9662  //
  9663  // API parameter values that are decorated as "sensitive" in the API will not
  9664  // be included in the string output. The member name will be present, but the
  9665  // value will be replaced with "sensitive".
  9666  func (s VpcConfigurationDescription) GoString() string {
  9667  	return s.String()
  9668  }
  9669  
  9670  // SetRoleARN sets the RoleARN field's value.
  9671  func (s *VpcConfigurationDescription) SetRoleARN(v string) *VpcConfigurationDescription {
  9672  	s.RoleARN = &v
  9673  	return s
  9674  }
  9675  
  9676  // SetSecurityGroupIds sets the SecurityGroupIds field's value.
  9677  func (s *VpcConfigurationDescription) SetSecurityGroupIds(v []*string) *VpcConfigurationDescription {
  9678  	s.SecurityGroupIds = v
  9679  	return s
  9680  }
  9681  
  9682  // SetSubnetIds sets the SubnetIds field's value.
  9683  func (s *VpcConfigurationDescription) SetSubnetIds(v []*string) *VpcConfigurationDescription {
  9684  	s.SubnetIds = v
  9685  	return s
  9686  }
  9687  
  9688  // SetVpcId sets the VpcId field's value.
  9689  func (s *VpcConfigurationDescription) SetVpcId(v string) *VpcConfigurationDescription {
  9690  	s.VpcId = &v
  9691  	return s
  9692  }
  9693  
  9694  const (
  9695  	// AmazonopensearchserviceIndexRotationPeriodNoRotation is a AmazonopensearchserviceIndexRotationPeriod enum value
  9696  	AmazonopensearchserviceIndexRotationPeriodNoRotation = "NoRotation"
  9697  
  9698  	// AmazonopensearchserviceIndexRotationPeriodOneHour is a AmazonopensearchserviceIndexRotationPeriod enum value
  9699  	AmazonopensearchserviceIndexRotationPeriodOneHour = "OneHour"
  9700  
  9701  	// AmazonopensearchserviceIndexRotationPeriodOneDay is a AmazonopensearchserviceIndexRotationPeriod enum value
  9702  	AmazonopensearchserviceIndexRotationPeriodOneDay = "OneDay"
  9703  
  9704  	// AmazonopensearchserviceIndexRotationPeriodOneWeek is a AmazonopensearchserviceIndexRotationPeriod enum value
  9705  	AmazonopensearchserviceIndexRotationPeriodOneWeek = "OneWeek"
  9706  
  9707  	// AmazonopensearchserviceIndexRotationPeriodOneMonth is a AmazonopensearchserviceIndexRotationPeriod enum value
  9708  	AmazonopensearchserviceIndexRotationPeriodOneMonth = "OneMonth"
  9709  )
  9710  
  9711  // AmazonopensearchserviceIndexRotationPeriod_Values returns all elements of the AmazonopensearchserviceIndexRotationPeriod enum
  9712  func AmazonopensearchserviceIndexRotationPeriod_Values() []string {
  9713  	return []string{
  9714  		AmazonopensearchserviceIndexRotationPeriodNoRotation,
  9715  		AmazonopensearchserviceIndexRotationPeriodOneHour,
  9716  		AmazonopensearchserviceIndexRotationPeriodOneDay,
  9717  		AmazonopensearchserviceIndexRotationPeriodOneWeek,
  9718  		AmazonopensearchserviceIndexRotationPeriodOneMonth,
  9719  	}
  9720  }
  9721  
  9722  const (
  9723  	// AmazonopensearchserviceS3BackupModeFailedDocumentsOnly is a AmazonopensearchserviceS3BackupMode enum value
  9724  	AmazonopensearchserviceS3BackupModeFailedDocumentsOnly = "FailedDocumentsOnly"
  9725  
  9726  	// AmazonopensearchserviceS3BackupModeAllDocuments is a AmazonopensearchserviceS3BackupMode enum value
  9727  	AmazonopensearchserviceS3BackupModeAllDocuments = "AllDocuments"
  9728  )
  9729  
  9730  // AmazonopensearchserviceS3BackupMode_Values returns all elements of the AmazonopensearchserviceS3BackupMode enum
  9731  func AmazonopensearchserviceS3BackupMode_Values() []string {
  9732  	return []string{
  9733  		AmazonopensearchserviceS3BackupModeFailedDocumentsOnly,
  9734  		AmazonopensearchserviceS3BackupModeAllDocuments,
  9735  	}
  9736  }
  9737  
  9738  const (
  9739  	// CompressionFormatUncompressed is a CompressionFormat enum value
  9740  	CompressionFormatUncompressed = "UNCOMPRESSED"
  9741  
  9742  	// CompressionFormatGzip is a CompressionFormat enum value
  9743  	CompressionFormatGzip = "GZIP"
  9744  
  9745  	// CompressionFormatZip is a CompressionFormat enum value
  9746  	CompressionFormatZip = "ZIP"
  9747  
  9748  	// CompressionFormatSnappy is a CompressionFormat enum value
  9749  	CompressionFormatSnappy = "Snappy"
  9750  
  9751  	// CompressionFormatHadoopSnappy is a CompressionFormat enum value
  9752  	CompressionFormatHadoopSnappy = "HADOOP_SNAPPY"
  9753  )
  9754  
  9755  // CompressionFormat_Values returns all elements of the CompressionFormat enum
  9756  func CompressionFormat_Values() []string {
  9757  	return []string{
  9758  		CompressionFormatUncompressed,
  9759  		CompressionFormatGzip,
  9760  		CompressionFormatZip,
  9761  		CompressionFormatSnappy,
  9762  		CompressionFormatHadoopSnappy,
  9763  	}
  9764  }
  9765  
  9766  const (
  9767  	// ContentEncodingNone is a ContentEncoding enum value
  9768  	ContentEncodingNone = "NONE"
  9769  
  9770  	// ContentEncodingGzip is a ContentEncoding enum value
  9771  	ContentEncodingGzip = "GZIP"
  9772  )
  9773  
  9774  // ContentEncoding_Values returns all elements of the ContentEncoding enum
  9775  func ContentEncoding_Values() []string {
  9776  	return []string{
  9777  		ContentEncodingNone,
  9778  		ContentEncodingGzip,
  9779  	}
  9780  }
  9781  
  9782  const (
  9783  	// DeliveryStreamEncryptionStatusEnabled is a DeliveryStreamEncryptionStatus enum value
  9784  	DeliveryStreamEncryptionStatusEnabled = "ENABLED"
  9785  
  9786  	// DeliveryStreamEncryptionStatusEnabling is a DeliveryStreamEncryptionStatus enum value
  9787  	DeliveryStreamEncryptionStatusEnabling = "ENABLING"
  9788  
  9789  	// DeliveryStreamEncryptionStatusEnablingFailed is a DeliveryStreamEncryptionStatus enum value
  9790  	DeliveryStreamEncryptionStatusEnablingFailed = "ENABLING_FAILED"
  9791  
  9792  	// DeliveryStreamEncryptionStatusDisabled is a DeliveryStreamEncryptionStatus enum value
  9793  	DeliveryStreamEncryptionStatusDisabled = "DISABLED"
  9794  
  9795  	// DeliveryStreamEncryptionStatusDisabling is a DeliveryStreamEncryptionStatus enum value
  9796  	DeliveryStreamEncryptionStatusDisabling = "DISABLING"
  9797  
  9798  	// DeliveryStreamEncryptionStatusDisablingFailed is a DeliveryStreamEncryptionStatus enum value
  9799  	DeliveryStreamEncryptionStatusDisablingFailed = "DISABLING_FAILED"
  9800  )
  9801  
  9802  // DeliveryStreamEncryptionStatus_Values returns all elements of the DeliveryStreamEncryptionStatus enum
  9803  func DeliveryStreamEncryptionStatus_Values() []string {
  9804  	return []string{
  9805  		DeliveryStreamEncryptionStatusEnabled,
  9806  		DeliveryStreamEncryptionStatusEnabling,
  9807  		DeliveryStreamEncryptionStatusEnablingFailed,
  9808  		DeliveryStreamEncryptionStatusDisabled,
  9809  		DeliveryStreamEncryptionStatusDisabling,
  9810  		DeliveryStreamEncryptionStatusDisablingFailed,
  9811  	}
  9812  }
  9813  
  9814  const (
  9815  	// DeliveryStreamFailureTypeRetireKmsGrantFailed is a DeliveryStreamFailureType enum value
  9816  	DeliveryStreamFailureTypeRetireKmsGrantFailed = "RETIRE_KMS_GRANT_FAILED"
  9817  
  9818  	// DeliveryStreamFailureTypeCreateKmsGrantFailed is a DeliveryStreamFailureType enum value
  9819  	DeliveryStreamFailureTypeCreateKmsGrantFailed = "CREATE_KMS_GRANT_FAILED"
  9820  
  9821  	// DeliveryStreamFailureTypeKmsAccessDenied is a DeliveryStreamFailureType enum value
  9822  	DeliveryStreamFailureTypeKmsAccessDenied = "KMS_ACCESS_DENIED"
  9823  
  9824  	// DeliveryStreamFailureTypeDisabledKmsKey is a DeliveryStreamFailureType enum value
  9825  	DeliveryStreamFailureTypeDisabledKmsKey = "DISABLED_KMS_KEY"
  9826  
  9827  	// DeliveryStreamFailureTypeInvalidKmsKey is a DeliveryStreamFailureType enum value
  9828  	DeliveryStreamFailureTypeInvalidKmsKey = "INVALID_KMS_KEY"
  9829  
  9830  	// DeliveryStreamFailureTypeKmsKeyNotFound is a DeliveryStreamFailureType enum value
  9831  	DeliveryStreamFailureTypeKmsKeyNotFound = "KMS_KEY_NOT_FOUND"
  9832  
  9833  	// DeliveryStreamFailureTypeKmsOptInRequired is a DeliveryStreamFailureType enum value
  9834  	DeliveryStreamFailureTypeKmsOptInRequired = "KMS_OPT_IN_REQUIRED"
  9835  
  9836  	// DeliveryStreamFailureTypeCreateEniFailed is a DeliveryStreamFailureType enum value
  9837  	DeliveryStreamFailureTypeCreateEniFailed = "CREATE_ENI_FAILED"
  9838  
  9839  	// DeliveryStreamFailureTypeDeleteEniFailed is a DeliveryStreamFailureType enum value
  9840  	DeliveryStreamFailureTypeDeleteEniFailed = "DELETE_ENI_FAILED"
  9841  
  9842  	// DeliveryStreamFailureTypeSubnetNotFound is a DeliveryStreamFailureType enum value
  9843  	DeliveryStreamFailureTypeSubnetNotFound = "SUBNET_NOT_FOUND"
  9844  
  9845  	// DeliveryStreamFailureTypeSecurityGroupNotFound is a DeliveryStreamFailureType enum value
  9846  	DeliveryStreamFailureTypeSecurityGroupNotFound = "SECURITY_GROUP_NOT_FOUND"
  9847  
  9848  	// DeliveryStreamFailureTypeEniAccessDenied is a DeliveryStreamFailureType enum value
  9849  	DeliveryStreamFailureTypeEniAccessDenied = "ENI_ACCESS_DENIED"
  9850  
  9851  	// DeliveryStreamFailureTypeSubnetAccessDenied is a DeliveryStreamFailureType enum value
  9852  	DeliveryStreamFailureTypeSubnetAccessDenied = "SUBNET_ACCESS_DENIED"
  9853  
  9854  	// DeliveryStreamFailureTypeSecurityGroupAccessDenied is a DeliveryStreamFailureType enum value
  9855  	DeliveryStreamFailureTypeSecurityGroupAccessDenied = "SECURITY_GROUP_ACCESS_DENIED"
  9856  
  9857  	// DeliveryStreamFailureTypeUnknownError is a DeliveryStreamFailureType enum value
  9858  	DeliveryStreamFailureTypeUnknownError = "UNKNOWN_ERROR"
  9859  )
  9860  
  9861  // DeliveryStreamFailureType_Values returns all elements of the DeliveryStreamFailureType enum
  9862  func DeliveryStreamFailureType_Values() []string {
  9863  	return []string{
  9864  		DeliveryStreamFailureTypeRetireKmsGrantFailed,
  9865  		DeliveryStreamFailureTypeCreateKmsGrantFailed,
  9866  		DeliveryStreamFailureTypeKmsAccessDenied,
  9867  		DeliveryStreamFailureTypeDisabledKmsKey,
  9868  		DeliveryStreamFailureTypeInvalidKmsKey,
  9869  		DeliveryStreamFailureTypeKmsKeyNotFound,
  9870  		DeliveryStreamFailureTypeKmsOptInRequired,
  9871  		DeliveryStreamFailureTypeCreateEniFailed,
  9872  		DeliveryStreamFailureTypeDeleteEniFailed,
  9873  		DeliveryStreamFailureTypeSubnetNotFound,
  9874  		DeliveryStreamFailureTypeSecurityGroupNotFound,
  9875  		DeliveryStreamFailureTypeEniAccessDenied,
  9876  		DeliveryStreamFailureTypeSubnetAccessDenied,
  9877  		DeliveryStreamFailureTypeSecurityGroupAccessDenied,
  9878  		DeliveryStreamFailureTypeUnknownError,
  9879  	}
  9880  }
  9881  
  9882  const (
  9883  	// DeliveryStreamStatusCreating is a DeliveryStreamStatus enum value
  9884  	DeliveryStreamStatusCreating = "CREATING"
  9885  
  9886  	// DeliveryStreamStatusCreatingFailed is a DeliveryStreamStatus enum value
  9887  	DeliveryStreamStatusCreatingFailed = "CREATING_FAILED"
  9888  
  9889  	// DeliveryStreamStatusDeleting is a DeliveryStreamStatus enum value
  9890  	DeliveryStreamStatusDeleting = "DELETING"
  9891  
  9892  	// DeliveryStreamStatusDeletingFailed is a DeliveryStreamStatus enum value
  9893  	DeliveryStreamStatusDeletingFailed = "DELETING_FAILED"
  9894  
  9895  	// DeliveryStreamStatusActive is a DeliveryStreamStatus enum value
  9896  	DeliveryStreamStatusActive = "ACTIVE"
  9897  )
  9898  
  9899  // DeliveryStreamStatus_Values returns all elements of the DeliveryStreamStatus enum
  9900  func DeliveryStreamStatus_Values() []string {
  9901  	return []string{
  9902  		DeliveryStreamStatusCreating,
  9903  		DeliveryStreamStatusCreatingFailed,
  9904  		DeliveryStreamStatusDeleting,
  9905  		DeliveryStreamStatusDeletingFailed,
  9906  		DeliveryStreamStatusActive,
  9907  	}
  9908  }
  9909  
  9910  const (
  9911  	// DeliveryStreamTypeDirectPut is a DeliveryStreamType enum value
  9912  	DeliveryStreamTypeDirectPut = "DirectPut"
  9913  
  9914  	// DeliveryStreamTypeKinesisStreamAsSource is a DeliveryStreamType enum value
  9915  	DeliveryStreamTypeKinesisStreamAsSource = "KinesisStreamAsSource"
  9916  )
  9917  
  9918  // DeliveryStreamType_Values returns all elements of the DeliveryStreamType enum
  9919  func DeliveryStreamType_Values() []string {
  9920  	return []string{
  9921  		DeliveryStreamTypeDirectPut,
  9922  		DeliveryStreamTypeKinesisStreamAsSource,
  9923  	}
  9924  }
  9925  
  9926  const (
  9927  	// ElasticsearchIndexRotationPeriodNoRotation is a ElasticsearchIndexRotationPeriod enum value
  9928  	ElasticsearchIndexRotationPeriodNoRotation = "NoRotation"
  9929  
  9930  	// ElasticsearchIndexRotationPeriodOneHour is a ElasticsearchIndexRotationPeriod enum value
  9931  	ElasticsearchIndexRotationPeriodOneHour = "OneHour"
  9932  
  9933  	// ElasticsearchIndexRotationPeriodOneDay is a ElasticsearchIndexRotationPeriod enum value
  9934  	ElasticsearchIndexRotationPeriodOneDay = "OneDay"
  9935  
  9936  	// ElasticsearchIndexRotationPeriodOneWeek is a ElasticsearchIndexRotationPeriod enum value
  9937  	ElasticsearchIndexRotationPeriodOneWeek = "OneWeek"
  9938  
  9939  	// ElasticsearchIndexRotationPeriodOneMonth is a ElasticsearchIndexRotationPeriod enum value
  9940  	ElasticsearchIndexRotationPeriodOneMonth = "OneMonth"
  9941  )
  9942  
  9943  // ElasticsearchIndexRotationPeriod_Values returns all elements of the ElasticsearchIndexRotationPeriod enum
  9944  func ElasticsearchIndexRotationPeriod_Values() []string {
  9945  	return []string{
  9946  		ElasticsearchIndexRotationPeriodNoRotation,
  9947  		ElasticsearchIndexRotationPeriodOneHour,
  9948  		ElasticsearchIndexRotationPeriodOneDay,
  9949  		ElasticsearchIndexRotationPeriodOneWeek,
  9950  		ElasticsearchIndexRotationPeriodOneMonth,
  9951  	}
  9952  }
  9953  
  9954  const (
  9955  	// ElasticsearchS3BackupModeFailedDocumentsOnly is a ElasticsearchS3BackupMode enum value
  9956  	ElasticsearchS3BackupModeFailedDocumentsOnly = "FailedDocumentsOnly"
  9957  
  9958  	// ElasticsearchS3BackupModeAllDocuments is a ElasticsearchS3BackupMode enum value
  9959  	ElasticsearchS3BackupModeAllDocuments = "AllDocuments"
  9960  )
  9961  
  9962  // ElasticsearchS3BackupMode_Values returns all elements of the ElasticsearchS3BackupMode enum
  9963  func ElasticsearchS3BackupMode_Values() []string {
  9964  	return []string{
  9965  		ElasticsearchS3BackupModeFailedDocumentsOnly,
  9966  		ElasticsearchS3BackupModeAllDocuments,
  9967  	}
  9968  }
  9969  
  9970  const (
  9971  	// HECEndpointTypeRaw is a HECEndpointType enum value
  9972  	HECEndpointTypeRaw = "Raw"
  9973  
  9974  	// HECEndpointTypeEvent is a HECEndpointType enum value
  9975  	HECEndpointTypeEvent = "Event"
  9976  )
  9977  
  9978  // HECEndpointType_Values returns all elements of the HECEndpointType enum
  9979  func HECEndpointType_Values() []string {
  9980  	return []string{
  9981  		HECEndpointTypeRaw,
  9982  		HECEndpointTypeEvent,
  9983  	}
  9984  }
  9985  
  9986  const (
  9987  	// HttpEndpointS3BackupModeFailedDataOnly is a HttpEndpointS3BackupMode enum value
  9988  	HttpEndpointS3BackupModeFailedDataOnly = "FailedDataOnly"
  9989  
  9990  	// HttpEndpointS3BackupModeAllData is a HttpEndpointS3BackupMode enum value
  9991  	HttpEndpointS3BackupModeAllData = "AllData"
  9992  )
  9993  
  9994  // HttpEndpointS3BackupMode_Values returns all elements of the HttpEndpointS3BackupMode enum
  9995  func HttpEndpointS3BackupMode_Values() []string {
  9996  	return []string{
  9997  		HttpEndpointS3BackupModeFailedDataOnly,
  9998  		HttpEndpointS3BackupModeAllData,
  9999  	}
 10000  }
 10001  
 10002  const (
 10003  	// KeyTypeAwsOwnedCmk is a KeyType enum value
 10004  	KeyTypeAwsOwnedCmk = "AWS_OWNED_CMK"
 10005  
 10006  	// KeyTypeCustomerManagedCmk is a KeyType enum value
 10007  	KeyTypeCustomerManagedCmk = "CUSTOMER_MANAGED_CMK"
 10008  )
 10009  
 10010  // KeyType_Values returns all elements of the KeyType enum
 10011  func KeyType_Values() []string {
 10012  	return []string{
 10013  		KeyTypeAwsOwnedCmk,
 10014  		KeyTypeCustomerManagedCmk,
 10015  	}
 10016  }
 10017  
 10018  const (
 10019  	// NoEncryptionConfigNoEncryption is a NoEncryptionConfig enum value
 10020  	NoEncryptionConfigNoEncryption = "NoEncryption"
 10021  )
 10022  
 10023  // NoEncryptionConfig_Values returns all elements of the NoEncryptionConfig enum
 10024  func NoEncryptionConfig_Values() []string {
 10025  	return []string{
 10026  		NoEncryptionConfigNoEncryption,
 10027  	}
 10028  }
 10029  
 10030  const (
 10031  	// OrcCompressionNone is a OrcCompression enum value
 10032  	OrcCompressionNone = "NONE"
 10033  
 10034  	// OrcCompressionZlib is a OrcCompression enum value
 10035  	OrcCompressionZlib = "ZLIB"
 10036  
 10037  	// OrcCompressionSnappy is a OrcCompression enum value
 10038  	OrcCompressionSnappy = "SNAPPY"
 10039  )
 10040  
 10041  // OrcCompression_Values returns all elements of the OrcCompression enum
 10042  func OrcCompression_Values() []string {
 10043  	return []string{
 10044  		OrcCompressionNone,
 10045  		OrcCompressionZlib,
 10046  		OrcCompressionSnappy,
 10047  	}
 10048  }
 10049  
 10050  const (
 10051  	// OrcFormatVersionV011 is a OrcFormatVersion enum value
 10052  	OrcFormatVersionV011 = "V0_11"
 10053  
 10054  	// OrcFormatVersionV012 is a OrcFormatVersion enum value
 10055  	OrcFormatVersionV012 = "V0_12"
 10056  )
 10057  
 10058  // OrcFormatVersion_Values returns all elements of the OrcFormatVersion enum
 10059  func OrcFormatVersion_Values() []string {
 10060  	return []string{
 10061  		OrcFormatVersionV011,
 10062  		OrcFormatVersionV012,
 10063  	}
 10064  }
 10065  
 10066  const (
 10067  	// ParquetCompressionUncompressed is a ParquetCompression enum value
 10068  	ParquetCompressionUncompressed = "UNCOMPRESSED"
 10069  
 10070  	// ParquetCompressionGzip is a ParquetCompression enum value
 10071  	ParquetCompressionGzip = "GZIP"
 10072  
 10073  	// ParquetCompressionSnappy is a ParquetCompression enum value
 10074  	ParquetCompressionSnappy = "SNAPPY"
 10075  )
 10076  
 10077  // ParquetCompression_Values returns all elements of the ParquetCompression enum
 10078  func ParquetCompression_Values() []string {
 10079  	return []string{
 10080  		ParquetCompressionUncompressed,
 10081  		ParquetCompressionGzip,
 10082  		ParquetCompressionSnappy,
 10083  	}
 10084  }
 10085  
 10086  const (
 10087  	// ParquetWriterVersionV1 is a ParquetWriterVersion enum value
 10088  	ParquetWriterVersionV1 = "V1"
 10089  
 10090  	// ParquetWriterVersionV2 is a ParquetWriterVersion enum value
 10091  	ParquetWriterVersionV2 = "V2"
 10092  )
 10093  
 10094  // ParquetWriterVersion_Values returns all elements of the ParquetWriterVersion enum
 10095  func ParquetWriterVersion_Values() []string {
 10096  	return []string{
 10097  		ParquetWriterVersionV1,
 10098  		ParquetWriterVersionV2,
 10099  	}
 10100  }
 10101  
 10102  const (
 10103  	// ProcessorParameterNameLambdaArn is a ProcessorParameterName enum value
 10104  	ProcessorParameterNameLambdaArn = "LambdaArn"
 10105  
 10106  	// ProcessorParameterNameNumberOfRetries is a ProcessorParameterName enum value
 10107  	ProcessorParameterNameNumberOfRetries = "NumberOfRetries"
 10108  
 10109  	// ProcessorParameterNameMetadataExtractionQuery is a ProcessorParameterName enum value
 10110  	ProcessorParameterNameMetadataExtractionQuery = "MetadataExtractionQuery"
 10111  
 10112  	// ProcessorParameterNameJsonParsingEngine is a ProcessorParameterName enum value
 10113  	ProcessorParameterNameJsonParsingEngine = "JsonParsingEngine"
 10114  
 10115  	// ProcessorParameterNameRoleArn is a ProcessorParameterName enum value
 10116  	ProcessorParameterNameRoleArn = "RoleArn"
 10117  
 10118  	// ProcessorParameterNameBufferSizeInMbs is a ProcessorParameterName enum value
 10119  	ProcessorParameterNameBufferSizeInMbs = "BufferSizeInMBs"
 10120  
 10121  	// ProcessorParameterNameBufferIntervalInSeconds is a ProcessorParameterName enum value
 10122  	ProcessorParameterNameBufferIntervalInSeconds = "BufferIntervalInSeconds"
 10123  
 10124  	// ProcessorParameterNameSubRecordType is a ProcessorParameterName enum value
 10125  	ProcessorParameterNameSubRecordType = "SubRecordType"
 10126  
 10127  	// ProcessorParameterNameDelimiter is a ProcessorParameterName enum value
 10128  	ProcessorParameterNameDelimiter = "Delimiter"
 10129  )
 10130  
 10131  // ProcessorParameterName_Values returns all elements of the ProcessorParameterName enum
 10132  func ProcessorParameterName_Values() []string {
 10133  	return []string{
 10134  		ProcessorParameterNameLambdaArn,
 10135  		ProcessorParameterNameNumberOfRetries,
 10136  		ProcessorParameterNameMetadataExtractionQuery,
 10137  		ProcessorParameterNameJsonParsingEngine,
 10138  		ProcessorParameterNameRoleArn,
 10139  		ProcessorParameterNameBufferSizeInMbs,
 10140  		ProcessorParameterNameBufferIntervalInSeconds,
 10141  		ProcessorParameterNameSubRecordType,
 10142  		ProcessorParameterNameDelimiter,
 10143  	}
 10144  }
 10145  
 10146  const (
 10147  	// ProcessorTypeRecordDeAggregation is a ProcessorType enum value
 10148  	ProcessorTypeRecordDeAggregation = "RecordDeAggregation"
 10149  
 10150  	// ProcessorTypeLambda is a ProcessorType enum value
 10151  	ProcessorTypeLambda = "Lambda"
 10152  
 10153  	// ProcessorTypeMetadataExtraction is a ProcessorType enum value
 10154  	ProcessorTypeMetadataExtraction = "MetadataExtraction"
 10155  
 10156  	// ProcessorTypeAppendDelimiterToRecord is a ProcessorType enum value
 10157  	ProcessorTypeAppendDelimiterToRecord = "AppendDelimiterToRecord"
 10158  )
 10159  
 10160  // ProcessorType_Values returns all elements of the ProcessorType enum
 10161  func ProcessorType_Values() []string {
 10162  	return []string{
 10163  		ProcessorTypeRecordDeAggregation,
 10164  		ProcessorTypeLambda,
 10165  		ProcessorTypeMetadataExtraction,
 10166  		ProcessorTypeAppendDelimiterToRecord,
 10167  	}
 10168  }
 10169  
 10170  const (
 10171  	// RedshiftS3BackupModeDisabled is a RedshiftS3BackupMode enum value
 10172  	RedshiftS3BackupModeDisabled = "Disabled"
 10173  
 10174  	// RedshiftS3BackupModeEnabled is a RedshiftS3BackupMode enum value
 10175  	RedshiftS3BackupModeEnabled = "Enabled"
 10176  )
 10177  
 10178  // RedshiftS3BackupMode_Values returns all elements of the RedshiftS3BackupMode enum
 10179  func RedshiftS3BackupMode_Values() []string {
 10180  	return []string{
 10181  		RedshiftS3BackupModeDisabled,
 10182  		RedshiftS3BackupModeEnabled,
 10183  	}
 10184  }
 10185  
 10186  const (
 10187  	// S3BackupModeDisabled is a S3BackupMode enum value
 10188  	S3BackupModeDisabled = "Disabled"
 10189  
 10190  	// S3BackupModeEnabled is a S3BackupMode enum value
 10191  	S3BackupModeEnabled = "Enabled"
 10192  )
 10193  
 10194  // S3BackupMode_Values returns all elements of the S3BackupMode enum
 10195  func S3BackupMode_Values() []string {
 10196  	return []string{
 10197  		S3BackupModeDisabled,
 10198  		S3BackupModeEnabled,
 10199  	}
 10200  }
 10201  
 10202  const (
 10203  	// SplunkS3BackupModeFailedEventsOnly is a SplunkS3BackupMode enum value
 10204  	SplunkS3BackupModeFailedEventsOnly = "FailedEventsOnly"
 10205  
 10206  	// SplunkS3BackupModeAllEvents is a SplunkS3BackupMode enum value
 10207  	SplunkS3BackupModeAllEvents = "AllEvents"
 10208  )
 10209  
 10210  // SplunkS3BackupMode_Values returns all elements of the SplunkS3BackupMode enum
 10211  func SplunkS3BackupMode_Values() []string {
 10212  	return []string{
 10213  		SplunkS3BackupModeFailedEventsOnly,
 10214  		SplunkS3BackupModeAllEvents,
 10215  	}
 10216  }