1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package firehose
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
14)
15
16const 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
42func (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
149func (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.
163func (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
170const 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
196func (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
243func (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.
257func (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
264const 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
290func (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
331func (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.
345func (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
352const 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
378func (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
413func (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.
427func (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
434const 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
460func (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
499func (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.
513func (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
520const 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
546func (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 KB 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
629func (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.
643func (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
650const 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
676func (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 64-bit 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
782func (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.
796func (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
803const 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
829func (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
918func (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.
932func (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
939const 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
965func (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
1029func (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.
1043func (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
1050const 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
1076func (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
1129func (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.
1143func (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
1150const 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
1176func (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
1223func (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.
1237func (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
1244const 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
1270func (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
1342func (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.
1356func (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// Describes hints for the buffering to perform before delivering data to the
1364// destination. These options are treated as hints, and therefore Kinesis Data
1365// Firehose might choose to use different values when it is optimal. The SizeInMBs
1366// and IntervalInSeconds parameters are optional. However, if specify a value
1367// for one of them, you must also provide a value for the other.
1368type BufferingHints struct {
1369	_ struct{} `type:"structure"`
1370
1371	// Buffer incoming data for the specified period of time, in seconds, before
1372	// delivering it to the destination. The default value is 300. This parameter
1373	// is optional but if you specify a value for it, you must also specify a value
1374	// for SizeInMBs, and vice versa.
1375	IntervalInSeconds *int64 `min:"60" type:"integer"`
1376
1377	// Buffer incoming data to the specified size, in MiBs, before delivering it
1378	// to the destination. The default value is 5. This parameter is optional but
1379	// if you specify a value for it, you must also specify a value for IntervalInSeconds,
1380	// and vice versa.
1381	//
1382	// We recommend setting this parameter to a value greater than the amount of
1383	// data you typically ingest into the delivery stream in 10 seconds. For example,
1384	// if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or
1385	// higher.
1386	SizeInMBs *int64 `min:"1" type:"integer"`
1387}
1388
1389// String returns the string representation
1390func (s BufferingHints) String() string {
1391	return awsutil.Prettify(s)
1392}
1393
1394// GoString returns the string representation
1395func (s BufferingHints) GoString() string {
1396	return s.String()
1397}
1398
1399// Validate inspects the fields of the type to determine if they are valid.
1400func (s *BufferingHints) Validate() error {
1401	invalidParams := request.ErrInvalidParams{Context: "BufferingHints"}
1402	if s.IntervalInSeconds != nil && *s.IntervalInSeconds < 60 {
1403		invalidParams.Add(request.NewErrParamMinValue("IntervalInSeconds", 60))
1404	}
1405	if s.SizeInMBs != nil && *s.SizeInMBs < 1 {
1406		invalidParams.Add(request.NewErrParamMinValue("SizeInMBs", 1))
1407	}
1408
1409	if invalidParams.Len() > 0 {
1410		return invalidParams
1411	}
1412	return nil
1413}
1414
1415// SetIntervalInSeconds sets the IntervalInSeconds field's value.
1416func (s *BufferingHints) SetIntervalInSeconds(v int64) *BufferingHints {
1417	s.IntervalInSeconds = &v
1418	return s
1419}
1420
1421// SetSizeInMBs sets the SizeInMBs field's value.
1422func (s *BufferingHints) SetSizeInMBs(v int64) *BufferingHints {
1423	s.SizeInMBs = &v
1424	return s
1425}
1426
1427// Describes the Amazon CloudWatch logging options for your delivery stream.
1428type CloudWatchLoggingOptions struct {
1429	_ struct{} `type:"structure"`
1430
1431	// Enables or disables CloudWatch logging.
1432	Enabled *bool `type:"boolean"`
1433
1434	// The CloudWatch group name for logging. This value is required if CloudWatch
1435	// logging is enabled.
1436	LogGroupName *string `type:"string"`
1437
1438	// The CloudWatch log stream name for logging. This value is required if CloudWatch
1439	// logging is enabled.
1440	LogStreamName *string `type:"string"`
1441}
1442
1443// String returns the string representation
1444func (s CloudWatchLoggingOptions) String() string {
1445	return awsutil.Prettify(s)
1446}
1447
1448// GoString returns the string representation
1449func (s CloudWatchLoggingOptions) GoString() string {
1450	return s.String()
1451}
1452
1453// SetEnabled sets the Enabled field's value.
1454func (s *CloudWatchLoggingOptions) SetEnabled(v bool) *CloudWatchLoggingOptions {
1455	s.Enabled = &v
1456	return s
1457}
1458
1459// SetLogGroupName sets the LogGroupName field's value.
1460func (s *CloudWatchLoggingOptions) SetLogGroupName(v string) *CloudWatchLoggingOptions {
1461	s.LogGroupName = &v
1462	return s
1463}
1464
1465// SetLogStreamName sets the LogStreamName field's value.
1466func (s *CloudWatchLoggingOptions) SetLogStreamName(v string) *CloudWatchLoggingOptions {
1467	s.LogStreamName = &v
1468	return s
1469}
1470
1471// Another modification has already happened. Fetch VersionId again and use
1472// it to update the destination.
1473type ConcurrentModificationException struct {
1474	_            struct{}                  `type:"structure"`
1475	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
1476
1477	// A message that provides information about the error.
1478	Message_ *string `locationName:"message" type:"string"`
1479}
1480
1481// String returns the string representation
1482func (s ConcurrentModificationException) String() string {
1483	return awsutil.Prettify(s)
1484}
1485
1486// GoString returns the string representation
1487func (s ConcurrentModificationException) GoString() string {
1488	return s.String()
1489}
1490
1491func newErrorConcurrentModificationException(v protocol.ResponseMetadata) error {
1492	return &ConcurrentModificationException{
1493		RespMetadata: v,
1494	}
1495}
1496
1497// Code returns the exception type name.
1498func (s *ConcurrentModificationException) Code() string {
1499	return "ConcurrentModificationException"
1500}
1501
1502// Message returns the exception's message.
1503func (s *ConcurrentModificationException) Message() string {
1504	if s.Message_ != nil {
1505		return *s.Message_
1506	}
1507	return ""
1508}
1509
1510// OrigErr always returns nil, satisfies awserr.Error interface.
1511func (s *ConcurrentModificationException) OrigErr() error {
1512	return nil
1513}
1514
1515func (s *ConcurrentModificationException) Error() string {
1516	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
1517}
1518
1519// Status code returns the HTTP status code for the request's response error.
1520func (s *ConcurrentModificationException) StatusCode() int {
1521	return s.RespMetadata.StatusCode
1522}
1523
1524// RequestID returns the service's response RequestID for request.
1525func (s *ConcurrentModificationException) RequestID() string {
1526	return s.RespMetadata.RequestID
1527}
1528
1529// Describes a COPY command for Amazon Redshift.
1530type CopyCommand struct {
1531	_ struct{} `type:"structure"`
1532
1533	// Optional parameters to use with the Amazon Redshift COPY command. For more
1534	// information, see the "Optional Parameters" section of Amazon Redshift COPY
1535	// command (https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html). Some
1536	// possible examples that would apply to Kinesis Data Firehose are as follows:
1537	//
1538	// delimiter '\t' lzop; - fields are delimited with "\t" (TAB character) and
1539	// compressed using lzop.
1540	//
1541	// delimiter '|' - fields are delimited with "|" (this is the default delimiter).
1542	//
1543	// delimiter '|' escape - the delimiter should be escaped.
1544	//
1545	// fixedwidth 'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6'
1546	// - fields are fixed width in the source, with each width specified after every
1547	// column in the table.
1548	//
1549	// JSON 's3://mybucket/jsonpaths.txt' - data is in JSON format, and the path
1550	// specified is the format of the data.
1551	//
1552	// For more examples, see Amazon Redshift COPY command examples (https://docs.aws.amazon.com/redshift/latest/dg/r_COPY_command_examples.html).
1553	CopyOptions *string `type:"string"`
1554
1555	// A comma-separated list of column names.
1556	DataTableColumns *string `type:"string"`
1557
1558	// The name of the target table. The table must already exist in the database.
1559	//
1560	// DataTableName is a required field
1561	DataTableName *string `min:"1" type:"string" required:"true"`
1562}
1563
1564// String returns the string representation
1565func (s CopyCommand) String() string {
1566	return awsutil.Prettify(s)
1567}
1568
1569// GoString returns the string representation
1570func (s CopyCommand) GoString() string {
1571	return s.String()
1572}
1573
1574// Validate inspects the fields of the type to determine if they are valid.
1575func (s *CopyCommand) Validate() error {
1576	invalidParams := request.ErrInvalidParams{Context: "CopyCommand"}
1577	if s.DataTableName == nil {
1578		invalidParams.Add(request.NewErrParamRequired("DataTableName"))
1579	}
1580	if s.DataTableName != nil && len(*s.DataTableName) < 1 {
1581		invalidParams.Add(request.NewErrParamMinLen("DataTableName", 1))
1582	}
1583
1584	if invalidParams.Len() > 0 {
1585		return invalidParams
1586	}
1587	return nil
1588}
1589
1590// SetCopyOptions sets the CopyOptions field's value.
1591func (s *CopyCommand) SetCopyOptions(v string) *CopyCommand {
1592	s.CopyOptions = &v
1593	return s
1594}
1595
1596// SetDataTableColumns sets the DataTableColumns field's value.
1597func (s *CopyCommand) SetDataTableColumns(v string) *CopyCommand {
1598	s.DataTableColumns = &v
1599	return s
1600}
1601
1602// SetDataTableName sets the DataTableName field's value.
1603func (s *CopyCommand) SetDataTableName(v string) *CopyCommand {
1604	s.DataTableName = &v
1605	return s
1606}
1607
1608type CreateDeliveryStreamInput struct {
1609	_ struct{} `type:"structure"`
1610
1611	// Used to specify the type and Amazon Resource Name (ARN) of the KMS key needed
1612	// for Server-Side Encryption (SSE).
1613	DeliveryStreamEncryptionConfigurationInput *DeliveryStreamEncryptionConfigurationInput `type:"structure"`
1614
1615	// The name of the delivery stream. This name must be unique per AWS account
1616	// in the same AWS Region. If the delivery streams are in different accounts
1617	// or different Regions, you can have multiple delivery streams with the same
1618	// name.
1619	//
1620	// DeliveryStreamName is a required field
1621	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
1622
1623	// The delivery stream type. This parameter can be one of the following values:
1624	//
1625	//    * DirectPut: Provider applications access the delivery stream directly.
1626	//
1627	//    * KinesisStreamAsSource: The delivery stream uses a Kinesis data stream
1628	//    as a source.
1629	DeliveryStreamType *string `type:"string" enum:"DeliveryStreamType"`
1630
1631	// The destination in Amazon ES. You can specify only one destination.
1632	ElasticsearchDestinationConfiguration *ElasticsearchDestinationConfiguration `type:"structure"`
1633
1634	// The destination in Amazon S3. You can specify only one destination.
1635	ExtendedS3DestinationConfiguration *ExtendedS3DestinationConfiguration `type:"structure"`
1636
1637	// Enables configuring Kinesis Firehose to deliver data to any HTTP endpoint
1638	// destination. You can specify only one destination.
1639	HttpEndpointDestinationConfiguration *HttpEndpointDestinationConfiguration `type:"structure"`
1640
1641	// When a Kinesis data stream is used as the source for the delivery stream,
1642	// a KinesisStreamSourceConfiguration containing the Kinesis data stream Amazon
1643	// Resource Name (ARN) and the role ARN for the source stream.
1644	KinesisStreamSourceConfiguration *KinesisStreamSourceConfiguration `type:"structure"`
1645
1646	// The destination in Amazon Redshift. You can specify only one destination.
1647	RedshiftDestinationConfiguration *RedshiftDestinationConfiguration `type:"structure"`
1648
1649	// [Deprecated] The destination in Amazon S3. You can specify only one destination.
1650	//
1651	// Deprecated: S3DestinationConfiguration has been deprecated
1652	S3DestinationConfiguration *S3DestinationConfiguration `deprecated:"true" type:"structure"`
1653
1654	// The destination in Splunk. You can specify only one destination.
1655	SplunkDestinationConfiguration *SplunkDestinationConfiguration `type:"structure"`
1656
1657	// A set of tags to assign to the delivery stream. A tag is a key-value pair
1658	// that you can define and assign to AWS resources. Tags are metadata. For example,
1659	// you can add friendly names and descriptions or other types of information
1660	// that can help you distinguish the delivery stream. For more information about
1661	// tags, see Using Cost Allocation Tags (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)
1662	// in the AWS Billing and Cost Management User Guide.
1663	//
1664	// You can specify up to 50 tags when creating a delivery stream.
1665	Tags []*Tag `min:"1" type:"list"`
1666}
1667
1668// String returns the string representation
1669func (s CreateDeliveryStreamInput) String() string {
1670	return awsutil.Prettify(s)
1671}
1672
1673// GoString returns the string representation
1674func (s CreateDeliveryStreamInput) GoString() string {
1675	return s.String()
1676}
1677
1678// Validate inspects the fields of the type to determine if they are valid.
1679func (s *CreateDeliveryStreamInput) Validate() error {
1680	invalidParams := request.ErrInvalidParams{Context: "CreateDeliveryStreamInput"}
1681	if s.DeliveryStreamName == nil {
1682		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
1683	}
1684	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
1685		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
1686	}
1687	if s.Tags != nil && len(s.Tags) < 1 {
1688		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
1689	}
1690	if s.DeliveryStreamEncryptionConfigurationInput != nil {
1691		if err := s.DeliveryStreamEncryptionConfigurationInput.Validate(); err != nil {
1692			invalidParams.AddNested("DeliveryStreamEncryptionConfigurationInput", err.(request.ErrInvalidParams))
1693		}
1694	}
1695	if s.ElasticsearchDestinationConfiguration != nil {
1696		if err := s.ElasticsearchDestinationConfiguration.Validate(); err != nil {
1697			invalidParams.AddNested("ElasticsearchDestinationConfiguration", err.(request.ErrInvalidParams))
1698		}
1699	}
1700	if s.ExtendedS3DestinationConfiguration != nil {
1701		if err := s.ExtendedS3DestinationConfiguration.Validate(); err != nil {
1702			invalidParams.AddNested("ExtendedS3DestinationConfiguration", err.(request.ErrInvalidParams))
1703		}
1704	}
1705	if s.HttpEndpointDestinationConfiguration != nil {
1706		if err := s.HttpEndpointDestinationConfiguration.Validate(); err != nil {
1707			invalidParams.AddNested("HttpEndpointDestinationConfiguration", err.(request.ErrInvalidParams))
1708		}
1709	}
1710	if s.KinesisStreamSourceConfiguration != nil {
1711		if err := s.KinesisStreamSourceConfiguration.Validate(); err != nil {
1712			invalidParams.AddNested("KinesisStreamSourceConfiguration", err.(request.ErrInvalidParams))
1713		}
1714	}
1715	if s.RedshiftDestinationConfiguration != nil {
1716		if err := s.RedshiftDestinationConfiguration.Validate(); err != nil {
1717			invalidParams.AddNested("RedshiftDestinationConfiguration", err.(request.ErrInvalidParams))
1718		}
1719	}
1720	if s.S3DestinationConfiguration != nil {
1721		if err := s.S3DestinationConfiguration.Validate(); err != nil {
1722			invalidParams.AddNested("S3DestinationConfiguration", err.(request.ErrInvalidParams))
1723		}
1724	}
1725	if s.SplunkDestinationConfiguration != nil {
1726		if err := s.SplunkDestinationConfiguration.Validate(); err != nil {
1727			invalidParams.AddNested("SplunkDestinationConfiguration", err.(request.ErrInvalidParams))
1728		}
1729	}
1730	if s.Tags != nil {
1731		for i, v := range s.Tags {
1732			if v == nil {
1733				continue
1734			}
1735			if err := v.Validate(); err != nil {
1736				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
1737			}
1738		}
1739	}
1740
1741	if invalidParams.Len() > 0 {
1742		return invalidParams
1743	}
1744	return nil
1745}
1746
1747// SetDeliveryStreamEncryptionConfigurationInput sets the DeliveryStreamEncryptionConfigurationInput field's value.
1748func (s *CreateDeliveryStreamInput) SetDeliveryStreamEncryptionConfigurationInput(v *DeliveryStreamEncryptionConfigurationInput) *CreateDeliveryStreamInput {
1749	s.DeliveryStreamEncryptionConfigurationInput = v
1750	return s
1751}
1752
1753// SetDeliveryStreamName sets the DeliveryStreamName field's value.
1754func (s *CreateDeliveryStreamInput) SetDeliveryStreamName(v string) *CreateDeliveryStreamInput {
1755	s.DeliveryStreamName = &v
1756	return s
1757}
1758
1759// SetDeliveryStreamType sets the DeliveryStreamType field's value.
1760func (s *CreateDeliveryStreamInput) SetDeliveryStreamType(v string) *CreateDeliveryStreamInput {
1761	s.DeliveryStreamType = &v
1762	return s
1763}
1764
1765// SetElasticsearchDestinationConfiguration sets the ElasticsearchDestinationConfiguration field's value.
1766func (s *CreateDeliveryStreamInput) SetElasticsearchDestinationConfiguration(v *ElasticsearchDestinationConfiguration) *CreateDeliveryStreamInput {
1767	s.ElasticsearchDestinationConfiguration = v
1768	return s
1769}
1770
1771// SetExtendedS3DestinationConfiguration sets the ExtendedS3DestinationConfiguration field's value.
1772func (s *CreateDeliveryStreamInput) SetExtendedS3DestinationConfiguration(v *ExtendedS3DestinationConfiguration) *CreateDeliveryStreamInput {
1773	s.ExtendedS3DestinationConfiguration = v
1774	return s
1775}
1776
1777// SetHttpEndpointDestinationConfiguration sets the HttpEndpointDestinationConfiguration field's value.
1778func (s *CreateDeliveryStreamInput) SetHttpEndpointDestinationConfiguration(v *HttpEndpointDestinationConfiguration) *CreateDeliveryStreamInput {
1779	s.HttpEndpointDestinationConfiguration = v
1780	return s
1781}
1782
1783// SetKinesisStreamSourceConfiguration sets the KinesisStreamSourceConfiguration field's value.
1784func (s *CreateDeliveryStreamInput) SetKinesisStreamSourceConfiguration(v *KinesisStreamSourceConfiguration) *CreateDeliveryStreamInput {
1785	s.KinesisStreamSourceConfiguration = v
1786	return s
1787}
1788
1789// SetRedshiftDestinationConfiguration sets the RedshiftDestinationConfiguration field's value.
1790func (s *CreateDeliveryStreamInput) SetRedshiftDestinationConfiguration(v *RedshiftDestinationConfiguration) *CreateDeliveryStreamInput {
1791	s.RedshiftDestinationConfiguration = v
1792	return s
1793}
1794
1795// SetS3DestinationConfiguration sets the S3DestinationConfiguration field's value.
1796func (s *CreateDeliveryStreamInput) SetS3DestinationConfiguration(v *S3DestinationConfiguration) *CreateDeliveryStreamInput {
1797	s.S3DestinationConfiguration = v
1798	return s
1799}
1800
1801// SetSplunkDestinationConfiguration sets the SplunkDestinationConfiguration field's value.
1802func (s *CreateDeliveryStreamInput) SetSplunkDestinationConfiguration(v *SplunkDestinationConfiguration) *CreateDeliveryStreamInput {
1803	s.SplunkDestinationConfiguration = v
1804	return s
1805}
1806
1807// SetTags sets the Tags field's value.
1808func (s *CreateDeliveryStreamInput) SetTags(v []*Tag) *CreateDeliveryStreamInput {
1809	s.Tags = v
1810	return s
1811}
1812
1813type CreateDeliveryStreamOutput struct {
1814	_ struct{} `type:"structure"`
1815
1816	// The ARN of the delivery stream.
1817	DeliveryStreamARN *string `min:"1" type:"string"`
1818}
1819
1820// String returns the string representation
1821func (s CreateDeliveryStreamOutput) String() string {
1822	return awsutil.Prettify(s)
1823}
1824
1825// GoString returns the string representation
1826func (s CreateDeliveryStreamOutput) GoString() string {
1827	return s.String()
1828}
1829
1830// SetDeliveryStreamARN sets the DeliveryStreamARN field's value.
1831func (s *CreateDeliveryStreamOutput) SetDeliveryStreamARN(v string) *CreateDeliveryStreamOutput {
1832	s.DeliveryStreamARN = &v
1833	return s
1834}
1835
1836// Specifies that you want Kinesis Data Firehose to convert data from the JSON
1837// format to the Parquet or ORC format before writing it to Amazon S3. Kinesis
1838// Data Firehose uses the serializer and deserializer that you specify, in addition
1839// to the column information from the AWS Glue table, to deserialize your input
1840// data from JSON and then serialize it to the Parquet or ORC format. For more
1841// information, see Kinesis Data Firehose Record Format Conversion (https://docs.aws.amazon.com/firehose/latest/dev/record-format-conversion.html).
1842type DataFormatConversionConfiguration struct {
1843	_ struct{} `type:"structure"`
1844
1845	// Defaults to true. Set it to false if you want to disable format conversion
1846	// while preserving the configuration details.
1847	Enabled *bool `type:"boolean"`
1848
1849	// Specifies the deserializer that you want Kinesis Data Firehose to use to
1850	// convert the format of your data from JSON. This parameter is required if
1851	// Enabled is set to true.
1852	InputFormatConfiguration *InputFormatConfiguration `type:"structure"`
1853
1854	// Specifies the serializer that you want Kinesis Data Firehose to use to convert
1855	// the format of your data to the Parquet or ORC format. This parameter is required
1856	// if Enabled is set to true.
1857	OutputFormatConfiguration *OutputFormatConfiguration `type:"structure"`
1858
1859	// Specifies the AWS Glue Data Catalog table that contains the column information.
1860	// This parameter is required if Enabled is set to true.
1861	SchemaConfiguration *SchemaConfiguration `type:"structure"`
1862}
1863
1864// String returns the string representation
1865func (s DataFormatConversionConfiguration) String() string {
1866	return awsutil.Prettify(s)
1867}
1868
1869// GoString returns the string representation
1870func (s DataFormatConversionConfiguration) GoString() string {
1871	return s.String()
1872}
1873
1874// Validate inspects the fields of the type to determine if they are valid.
1875func (s *DataFormatConversionConfiguration) Validate() error {
1876	invalidParams := request.ErrInvalidParams{Context: "DataFormatConversionConfiguration"}
1877	if s.OutputFormatConfiguration != nil {
1878		if err := s.OutputFormatConfiguration.Validate(); err != nil {
1879			invalidParams.AddNested("OutputFormatConfiguration", err.(request.ErrInvalidParams))
1880		}
1881	}
1882	if s.SchemaConfiguration != nil {
1883		if err := s.SchemaConfiguration.Validate(); err != nil {
1884			invalidParams.AddNested("SchemaConfiguration", err.(request.ErrInvalidParams))
1885		}
1886	}
1887
1888	if invalidParams.Len() > 0 {
1889		return invalidParams
1890	}
1891	return nil
1892}
1893
1894// SetEnabled sets the Enabled field's value.
1895func (s *DataFormatConversionConfiguration) SetEnabled(v bool) *DataFormatConversionConfiguration {
1896	s.Enabled = &v
1897	return s
1898}
1899
1900// SetInputFormatConfiguration sets the InputFormatConfiguration field's value.
1901func (s *DataFormatConversionConfiguration) SetInputFormatConfiguration(v *InputFormatConfiguration) *DataFormatConversionConfiguration {
1902	s.InputFormatConfiguration = v
1903	return s
1904}
1905
1906// SetOutputFormatConfiguration sets the OutputFormatConfiguration field's value.
1907func (s *DataFormatConversionConfiguration) SetOutputFormatConfiguration(v *OutputFormatConfiguration) *DataFormatConversionConfiguration {
1908	s.OutputFormatConfiguration = v
1909	return s
1910}
1911
1912// SetSchemaConfiguration sets the SchemaConfiguration field's value.
1913func (s *DataFormatConversionConfiguration) SetSchemaConfiguration(v *SchemaConfiguration) *DataFormatConversionConfiguration {
1914	s.SchemaConfiguration = v
1915	return s
1916}
1917
1918type DeleteDeliveryStreamInput struct {
1919	_ struct{} `type:"structure"`
1920
1921	// Set this to true if you want to delete the delivery stream even if Kinesis
1922	// Data Firehose is unable to retire the grant for the CMK. Kinesis Data Firehose
1923	// might be unable to retire the grant due to a customer error, such as when
1924	// the CMK or the grant are in an invalid state. If you force deletion, you
1925	// can then use the RevokeGrant (https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html)
1926	// operation to revoke the grant you gave to Kinesis Data Firehose. If a failure
1927	// to retire the grant happens due to an AWS KMS issue, Kinesis Data Firehose
1928	// keeps retrying the delete operation.
1929	//
1930	// The default value is false.
1931	AllowForceDelete *bool `type:"boolean"`
1932
1933	// The name of the delivery stream.
1934	//
1935	// DeliveryStreamName is a required field
1936	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
1937}
1938
1939// String returns the string representation
1940func (s DeleteDeliveryStreamInput) String() string {
1941	return awsutil.Prettify(s)
1942}
1943
1944// GoString returns the string representation
1945func (s DeleteDeliveryStreamInput) GoString() string {
1946	return s.String()
1947}
1948
1949// Validate inspects the fields of the type to determine if they are valid.
1950func (s *DeleteDeliveryStreamInput) Validate() error {
1951	invalidParams := request.ErrInvalidParams{Context: "DeleteDeliveryStreamInput"}
1952	if s.DeliveryStreamName == nil {
1953		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
1954	}
1955	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
1956		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
1957	}
1958
1959	if invalidParams.Len() > 0 {
1960		return invalidParams
1961	}
1962	return nil
1963}
1964
1965// SetAllowForceDelete sets the AllowForceDelete field's value.
1966func (s *DeleteDeliveryStreamInput) SetAllowForceDelete(v bool) *DeleteDeliveryStreamInput {
1967	s.AllowForceDelete = &v
1968	return s
1969}
1970
1971// SetDeliveryStreamName sets the DeliveryStreamName field's value.
1972func (s *DeleteDeliveryStreamInput) SetDeliveryStreamName(v string) *DeleteDeliveryStreamInput {
1973	s.DeliveryStreamName = &v
1974	return s
1975}
1976
1977type DeleteDeliveryStreamOutput struct {
1978	_ struct{} `type:"structure"`
1979}
1980
1981// String returns the string representation
1982func (s DeleteDeliveryStreamOutput) String() string {
1983	return awsutil.Prettify(s)
1984}
1985
1986// GoString returns the string representation
1987func (s DeleteDeliveryStreamOutput) GoString() string {
1988	return s.String()
1989}
1990
1991// Contains information about a delivery stream.
1992type DeliveryStreamDescription struct {
1993	_ struct{} `type:"structure"`
1994
1995	// The date and time that the delivery stream was created.
1996	CreateTimestamp *time.Time `type:"timestamp"`
1997
1998	// The Amazon Resource Name (ARN) of the delivery stream. For more information,
1999	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
2000	//
2001	// DeliveryStreamARN is a required field
2002	DeliveryStreamARN *string `min:"1" type:"string" required:"true"`
2003
2004	// Indicates the server-side encryption (SSE) status for the delivery stream.
2005	DeliveryStreamEncryptionConfiguration *DeliveryStreamEncryptionConfiguration `type:"structure"`
2006
2007	// The name of the delivery stream.
2008	//
2009	// DeliveryStreamName is a required field
2010	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
2011
2012	// The status of the delivery stream. If the status of a delivery stream is
2013	// CREATING_FAILED, this status doesn't change, and you can't invoke CreateDeliveryStream
2014	// again on it. However, you can invoke the DeleteDeliveryStream operation to
2015	// delete it.
2016	//
2017	// DeliveryStreamStatus is a required field
2018	DeliveryStreamStatus *string `type:"string" required:"true" enum:"DeliveryStreamStatus"`
2019
2020	// The delivery stream type. This can be one of the following values:
2021	//
2022	//    * DirectPut: Provider applications access the delivery stream directly.
2023	//
2024	//    * KinesisStreamAsSource: The delivery stream uses a Kinesis data stream
2025	//    as a source.
2026	//
2027	// DeliveryStreamType is a required field
2028	DeliveryStreamType *string `type:"string" required:"true" enum:"DeliveryStreamType"`
2029
2030	// The destinations.
2031	//
2032	// Destinations is a required field
2033	Destinations []*DestinationDescription `type:"list" required:"true"`
2034
2035	// Provides details in case one of the following operations fails due to an
2036	// error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, StartDeliveryStreamEncryption,
2037	// StopDeliveryStreamEncryption.
2038	FailureDescription *FailureDescription `type:"structure"`
2039
2040	// Indicates whether there are more destinations available to list.
2041	//
2042	// HasMoreDestinations is a required field
2043	HasMoreDestinations *bool `type:"boolean" required:"true"`
2044
2045	// The date and time that the delivery stream was last updated.
2046	LastUpdateTimestamp *time.Time `type:"timestamp"`
2047
2048	// If the DeliveryStreamType parameter is KinesisStreamAsSource, a SourceDescription
2049	// object describing the source Kinesis data stream.
2050	Source *SourceDescription `type:"structure"`
2051
2052	// Each time the destination is updated for a delivery stream, the version ID
2053	// is changed, and the current version ID is required when updating the destination.
2054	// This is so that the service knows it is applying the changes to the correct
2055	// version of the delivery stream.
2056	//
2057	// VersionId is a required field
2058	VersionId *string `min:"1" type:"string" required:"true"`
2059}
2060
2061// String returns the string representation
2062func (s DeliveryStreamDescription) String() string {
2063	return awsutil.Prettify(s)
2064}
2065
2066// GoString returns the string representation
2067func (s DeliveryStreamDescription) GoString() string {
2068	return s.String()
2069}
2070
2071// SetCreateTimestamp sets the CreateTimestamp field's value.
2072func (s *DeliveryStreamDescription) SetCreateTimestamp(v time.Time) *DeliveryStreamDescription {
2073	s.CreateTimestamp = &v
2074	return s
2075}
2076
2077// SetDeliveryStreamARN sets the DeliveryStreamARN field's value.
2078func (s *DeliveryStreamDescription) SetDeliveryStreamARN(v string) *DeliveryStreamDescription {
2079	s.DeliveryStreamARN = &v
2080	return s
2081}
2082
2083// SetDeliveryStreamEncryptionConfiguration sets the DeliveryStreamEncryptionConfiguration field's value.
2084func (s *DeliveryStreamDescription) SetDeliveryStreamEncryptionConfiguration(v *DeliveryStreamEncryptionConfiguration) *DeliveryStreamDescription {
2085	s.DeliveryStreamEncryptionConfiguration = v
2086	return s
2087}
2088
2089// SetDeliveryStreamName sets the DeliveryStreamName field's value.
2090func (s *DeliveryStreamDescription) SetDeliveryStreamName(v string) *DeliveryStreamDescription {
2091	s.DeliveryStreamName = &v
2092	return s
2093}
2094
2095// SetDeliveryStreamStatus sets the DeliveryStreamStatus field's value.
2096func (s *DeliveryStreamDescription) SetDeliveryStreamStatus(v string) *DeliveryStreamDescription {
2097	s.DeliveryStreamStatus = &v
2098	return s
2099}
2100
2101// SetDeliveryStreamType sets the DeliveryStreamType field's value.
2102func (s *DeliveryStreamDescription) SetDeliveryStreamType(v string) *DeliveryStreamDescription {
2103	s.DeliveryStreamType = &v
2104	return s
2105}
2106
2107// SetDestinations sets the Destinations field's value.
2108func (s *DeliveryStreamDescription) SetDestinations(v []*DestinationDescription) *DeliveryStreamDescription {
2109	s.Destinations = v
2110	return s
2111}
2112
2113// SetFailureDescription sets the FailureDescription field's value.
2114func (s *DeliveryStreamDescription) SetFailureDescription(v *FailureDescription) *DeliveryStreamDescription {
2115	s.FailureDescription = v
2116	return s
2117}
2118
2119// SetHasMoreDestinations sets the HasMoreDestinations field's value.
2120func (s *DeliveryStreamDescription) SetHasMoreDestinations(v bool) *DeliveryStreamDescription {
2121	s.HasMoreDestinations = &v
2122	return s
2123}
2124
2125// SetLastUpdateTimestamp sets the LastUpdateTimestamp field's value.
2126func (s *DeliveryStreamDescription) SetLastUpdateTimestamp(v time.Time) *DeliveryStreamDescription {
2127	s.LastUpdateTimestamp = &v
2128	return s
2129}
2130
2131// SetSource sets the Source field's value.
2132func (s *DeliveryStreamDescription) SetSource(v *SourceDescription) *DeliveryStreamDescription {
2133	s.Source = v
2134	return s
2135}
2136
2137// SetVersionId sets the VersionId field's value.
2138func (s *DeliveryStreamDescription) SetVersionId(v string) *DeliveryStreamDescription {
2139	s.VersionId = &v
2140	return s
2141}
2142
2143// Contains information about the server-side encryption (SSE) status for the
2144// delivery stream, the type customer master key (CMK) in use, if any, and the
2145// ARN of the CMK. You can get DeliveryStreamEncryptionConfiguration by invoking
2146// the DescribeDeliveryStream operation.
2147type DeliveryStreamEncryptionConfiguration struct {
2148	_ struct{} `type:"structure"`
2149
2150	// Provides details in case one of the following operations fails due to an
2151	// error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, StartDeliveryStreamEncryption,
2152	// StopDeliveryStreamEncryption.
2153	FailureDescription *FailureDescription `type:"structure"`
2154
2155	// If KeyType is CUSTOMER_MANAGED_CMK, this field contains the ARN of the customer
2156	// managed CMK. If KeyType is AWS_OWNED_CMK, DeliveryStreamEncryptionConfiguration
2157	// doesn't contain a value for KeyARN.
2158	KeyARN *string `min:"1" type:"string"`
2159
2160	// Indicates the type of customer master key (CMK) that is used for encryption.
2161	// The default setting is AWS_OWNED_CMK. For more information about CMKs, see
2162	// Customer Master Keys (CMKs) (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys).
2163	KeyType *string `type:"string" enum:"KeyType"`
2164
2165	// This is the server-side encryption (SSE) status for the delivery stream.
2166	// For a full description of the different values of this status, see StartDeliveryStreamEncryption
2167	// and StopDeliveryStreamEncryption. If this status is ENABLING_FAILED or DISABLING_FAILED,
2168	// it is the status of the most recent attempt to enable or disable SSE, respectively.
2169	Status *string `type:"string" enum:"DeliveryStreamEncryptionStatus"`
2170}
2171
2172// String returns the string representation
2173func (s DeliveryStreamEncryptionConfiguration) String() string {
2174	return awsutil.Prettify(s)
2175}
2176
2177// GoString returns the string representation
2178func (s DeliveryStreamEncryptionConfiguration) GoString() string {
2179	return s.String()
2180}
2181
2182// SetFailureDescription sets the FailureDescription field's value.
2183func (s *DeliveryStreamEncryptionConfiguration) SetFailureDescription(v *FailureDescription) *DeliveryStreamEncryptionConfiguration {
2184	s.FailureDescription = v
2185	return s
2186}
2187
2188// SetKeyARN sets the KeyARN field's value.
2189func (s *DeliveryStreamEncryptionConfiguration) SetKeyARN(v string) *DeliveryStreamEncryptionConfiguration {
2190	s.KeyARN = &v
2191	return s
2192}
2193
2194// SetKeyType sets the KeyType field's value.
2195func (s *DeliveryStreamEncryptionConfiguration) SetKeyType(v string) *DeliveryStreamEncryptionConfiguration {
2196	s.KeyType = &v
2197	return s
2198}
2199
2200// SetStatus sets the Status field's value.
2201func (s *DeliveryStreamEncryptionConfiguration) SetStatus(v string) *DeliveryStreamEncryptionConfiguration {
2202	s.Status = &v
2203	return s
2204}
2205
2206// Specifies the type and Amazon Resource Name (ARN) of the CMK to use for Server-Side
2207// Encryption (SSE).
2208type DeliveryStreamEncryptionConfigurationInput struct {
2209	_ struct{} `type:"structure"`
2210
2211	// If you set KeyType to CUSTOMER_MANAGED_CMK, you must specify the Amazon Resource
2212	// Name (ARN) of the CMK. If you set KeyType to AWS_OWNED_CMK, Kinesis Data
2213	// Firehose uses a service-account CMK.
2214	KeyARN *string `min:"1" type:"string"`
2215
2216	// Indicates the type of customer master key (CMK) to use for encryption. The
2217	// default setting is AWS_OWNED_CMK. For more information about CMKs, see Customer
2218	// Master Keys (CMKs) (https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys).
2219	// When you invoke CreateDeliveryStream or StartDeliveryStreamEncryption with
2220	// KeyType set to CUSTOMER_MANAGED_CMK, Kinesis Data Firehose invokes the Amazon
2221	// KMS operation CreateGrant (https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)
2222	// to create a grant that allows the Kinesis Data Firehose service to use the
2223	// customer managed CMK to perform encryption and decryption. Kinesis Data Firehose
2224	// manages that grant.
2225	//
2226	// When you invoke StartDeliveryStreamEncryption to change the CMK for a delivery
2227	// stream that is encrypted with a customer managed CMK, Kinesis Data Firehose
2228	// schedules the grant it had on the old CMK for retirement.
2229	//
2230	// You can use a CMK of type CUSTOMER_MANAGED_CMK to encrypt up to 500 delivery
2231	// streams. If a CreateDeliveryStream or StartDeliveryStreamEncryption operation
2232	// exceeds this limit, Kinesis Data Firehose throws a LimitExceededException.
2233	//
2234	// To encrypt your delivery stream, use symmetric CMKs. Kinesis Data Firehose
2235	// doesn't support asymmetric CMKs. For information about symmetric and asymmetric
2236	// CMKs, see About Symmetric and Asymmetric CMKs (https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html)
2237	// in the AWS Key Management Service developer guide.
2238	//
2239	// KeyType is a required field
2240	KeyType *string `type:"string" required:"true" enum:"KeyType"`
2241}
2242
2243// String returns the string representation
2244func (s DeliveryStreamEncryptionConfigurationInput) String() string {
2245	return awsutil.Prettify(s)
2246}
2247
2248// GoString returns the string representation
2249func (s DeliveryStreamEncryptionConfigurationInput) GoString() string {
2250	return s.String()
2251}
2252
2253// Validate inspects the fields of the type to determine if they are valid.
2254func (s *DeliveryStreamEncryptionConfigurationInput) Validate() error {
2255	invalidParams := request.ErrInvalidParams{Context: "DeliveryStreamEncryptionConfigurationInput"}
2256	if s.KeyARN != nil && len(*s.KeyARN) < 1 {
2257		invalidParams.Add(request.NewErrParamMinLen("KeyARN", 1))
2258	}
2259	if s.KeyType == nil {
2260		invalidParams.Add(request.NewErrParamRequired("KeyType"))
2261	}
2262
2263	if invalidParams.Len() > 0 {
2264		return invalidParams
2265	}
2266	return nil
2267}
2268
2269// SetKeyARN sets the KeyARN field's value.
2270func (s *DeliveryStreamEncryptionConfigurationInput) SetKeyARN(v string) *DeliveryStreamEncryptionConfigurationInput {
2271	s.KeyARN = &v
2272	return s
2273}
2274
2275// SetKeyType sets the KeyType field's value.
2276func (s *DeliveryStreamEncryptionConfigurationInput) SetKeyType(v string) *DeliveryStreamEncryptionConfigurationInput {
2277	s.KeyType = &v
2278	return s
2279}
2280
2281type DescribeDeliveryStreamInput struct {
2282	_ struct{} `type:"structure"`
2283
2284	// The name of the delivery stream.
2285	//
2286	// DeliveryStreamName is a required field
2287	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
2288
2289	// The ID of the destination to start returning the destination information.
2290	// Kinesis Data Firehose supports one destination per delivery stream.
2291	ExclusiveStartDestinationId *string `min:"1" type:"string"`
2292
2293	// The limit on the number of destinations to return. You can have one destination
2294	// per delivery stream.
2295	Limit *int64 `min:"1" type:"integer"`
2296}
2297
2298// String returns the string representation
2299func (s DescribeDeliveryStreamInput) String() string {
2300	return awsutil.Prettify(s)
2301}
2302
2303// GoString returns the string representation
2304func (s DescribeDeliveryStreamInput) GoString() string {
2305	return s.String()
2306}
2307
2308// Validate inspects the fields of the type to determine if they are valid.
2309func (s *DescribeDeliveryStreamInput) Validate() error {
2310	invalidParams := request.ErrInvalidParams{Context: "DescribeDeliveryStreamInput"}
2311	if s.DeliveryStreamName == nil {
2312		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
2313	}
2314	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
2315		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
2316	}
2317	if s.ExclusiveStartDestinationId != nil && len(*s.ExclusiveStartDestinationId) < 1 {
2318		invalidParams.Add(request.NewErrParamMinLen("ExclusiveStartDestinationId", 1))
2319	}
2320	if s.Limit != nil && *s.Limit < 1 {
2321		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
2322	}
2323
2324	if invalidParams.Len() > 0 {
2325		return invalidParams
2326	}
2327	return nil
2328}
2329
2330// SetDeliveryStreamName sets the DeliveryStreamName field's value.
2331func (s *DescribeDeliveryStreamInput) SetDeliveryStreamName(v string) *DescribeDeliveryStreamInput {
2332	s.DeliveryStreamName = &v
2333	return s
2334}
2335
2336// SetExclusiveStartDestinationId sets the ExclusiveStartDestinationId field's value.
2337func (s *DescribeDeliveryStreamInput) SetExclusiveStartDestinationId(v string) *DescribeDeliveryStreamInput {
2338	s.ExclusiveStartDestinationId = &v
2339	return s
2340}
2341
2342// SetLimit sets the Limit field's value.
2343func (s *DescribeDeliveryStreamInput) SetLimit(v int64) *DescribeDeliveryStreamInput {
2344	s.Limit = &v
2345	return s
2346}
2347
2348type DescribeDeliveryStreamOutput struct {
2349	_ struct{} `type:"structure"`
2350
2351	// Information about the delivery stream.
2352	//
2353	// DeliveryStreamDescription is a required field
2354	DeliveryStreamDescription *DeliveryStreamDescription `type:"structure" required:"true"`
2355}
2356
2357// String returns the string representation
2358func (s DescribeDeliveryStreamOutput) String() string {
2359	return awsutil.Prettify(s)
2360}
2361
2362// GoString returns the string representation
2363func (s DescribeDeliveryStreamOutput) GoString() string {
2364	return s.String()
2365}
2366
2367// SetDeliveryStreamDescription sets the DeliveryStreamDescription field's value.
2368func (s *DescribeDeliveryStreamOutput) SetDeliveryStreamDescription(v *DeliveryStreamDescription) *DescribeDeliveryStreamOutput {
2369	s.DeliveryStreamDescription = v
2370	return s
2371}
2372
2373// The deserializer you want Kinesis Data Firehose to use for converting the
2374// input data from JSON. Kinesis Data Firehose then serializes the data to its
2375// final format using the Serializer. Kinesis Data Firehose supports two types
2376// of deserializers: the Apache Hive JSON SerDe (https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-JSON)
2377// and the OpenX JSON SerDe (https://github.com/rcongiu/Hive-JSON-Serde).
2378type Deserializer struct {
2379	_ struct{} `type:"structure"`
2380
2381	// The native Hive / HCatalog JsonSerDe. Used by Kinesis Data Firehose for deserializing
2382	// data, which means converting it from the JSON format in preparation for serializing
2383	// it to the Parquet or ORC format. This is one of two deserializers you can
2384	// choose, depending on which one offers the functionality you need. The other
2385	// option is the OpenX SerDe.
2386	HiveJsonSerDe *HiveJsonSerDe `type:"structure"`
2387
2388	// The OpenX SerDe. Used by Kinesis Data Firehose for deserializing data, which
2389	// means converting it from the JSON format in preparation for serializing it
2390	// to the Parquet or ORC format. This is one of two deserializers you can choose,
2391	// depending on which one offers the functionality you need. The other option
2392	// is the native Hive / HCatalog JsonSerDe.
2393	OpenXJsonSerDe *OpenXJsonSerDe `type:"structure"`
2394}
2395
2396// String returns the string representation
2397func (s Deserializer) String() string {
2398	return awsutil.Prettify(s)
2399}
2400
2401// GoString returns the string representation
2402func (s Deserializer) GoString() string {
2403	return s.String()
2404}
2405
2406// SetHiveJsonSerDe sets the HiveJsonSerDe field's value.
2407func (s *Deserializer) SetHiveJsonSerDe(v *HiveJsonSerDe) *Deserializer {
2408	s.HiveJsonSerDe = v
2409	return s
2410}
2411
2412// SetOpenXJsonSerDe sets the OpenXJsonSerDe field's value.
2413func (s *Deserializer) SetOpenXJsonSerDe(v *OpenXJsonSerDe) *Deserializer {
2414	s.OpenXJsonSerDe = v
2415	return s
2416}
2417
2418// Describes the destination for a delivery stream.
2419type DestinationDescription struct {
2420	_ struct{} `type:"structure"`
2421
2422	// The ID of the destination.
2423	//
2424	// DestinationId is a required field
2425	DestinationId *string `min:"1" type:"string" required:"true"`
2426
2427	// The destination in Amazon ES.
2428	ElasticsearchDestinationDescription *ElasticsearchDestinationDescription `type:"structure"`
2429
2430	// The destination in Amazon S3.
2431	ExtendedS3DestinationDescription *ExtendedS3DestinationDescription `type:"structure"`
2432
2433	// Describes the specified HTTP endpoint destination.
2434	HttpEndpointDestinationDescription *HttpEndpointDestinationDescription `type:"structure"`
2435
2436	// The destination in Amazon Redshift.
2437	RedshiftDestinationDescription *RedshiftDestinationDescription `type:"structure"`
2438
2439	// [Deprecated] The destination in Amazon S3.
2440	S3DestinationDescription *S3DestinationDescription `type:"structure"`
2441
2442	// The destination in Splunk.
2443	SplunkDestinationDescription *SplunkDestinationDescription `type:"structure"`
2444}
2445
2446// String returns the string representation
2447func (s DestinationDescription) String() string {
2448	return awsutil.Prettify(s)
2449}
2450
2451// GoString returns the string representation
2452func (s DestinationDescription) GoString() string {
2453	return s.String()
2454}
2455
2456// SetDestinationId sets the DestinationId field's value.
2457func (s *DestinationDescription) SetDestinationId(v string) *DestinationDescription {
2458	s.DestinationId = &v
2459	return s
2460}
2461
2462// SetElasticsearchDestinationDescription sets the ElasticsearchDestinationDescription field's value.
2463func (s *DestinationDescription) SetElasticsearchDestinationDescription(v *ElasticsearchDestinationDescription) *DestinationDescription {
2464	s.ElasticsearchDestinationDescription = v
2465	return s
2466}
2467
2468// SetExtendedS3DestinationDescription sets the ExtendedS3DestinationDescription field's value.
2469func (s *DestinationDescription) SetExtendedS3DestinationDescription(v *ExtendedS3DestinationDescription) *DestinationDescription {
2470	s.ExtendedS3DestinationDescription = v
2471	return s
2472}
2473
2474// SetHttpEndpointDestinationDescription sets the HttpEndpointDestinationDescription field's value.
2475func (s *DestinationDescription) SetHttpEndpointDestinationDescription(v *HttpEndpointDestinationDescription) *DestinationDescription {
2476	s.HttpEndpointDestinationDescription = v
2477	return s
2478}
2479
2480// SetRedshiftDestinationDescription sets the RedshiftDestinationDescription field's value.
2481func (s *DestinationDescription) SetRedshiftDestinationDescription(v *RedshiftDestinationDescription) *DestinationDescription {
2482	s.RedshiftDestinationDescription = v
2483	return s
2484}
2485
2486// SetS3DestinationDescription sets the S3DestinationDescription field's value.
2487func (s *DestinationDescription) SetS3DestinationDescription(v *S3DestinationDescription) *DestinationDescription {
2488	s.S3DestinationDescription = v
2489	return s
2490}
2491
2492// SetSplunkDestinationDescription sets the SplunkDestinationDescription field's value.
2493func (s *DestinationDescription) SetSplunkDestinationDescription(v *SplunkDestinationDescription) *DestinationDescription {
2494	s.SplunkDestinationDescription = v
2495	return s
2496}
2497
2498// Describes the buffering to perform before delivering data to the Amazon ES
2499// destination.
2500type ElasticsearchBufferingHints struct {
2501	_ struct{} `type:"structure"`
2502
2503	// Buffer incoming data for the specified period of time, in seconds, before
2504	// delivering it to the destination. The default value is 300 (5 minutes).
2505	IntervalInSeconds *int64 `min:"60" type:"integer"`
2506
2507	// Buffer incoming data to the specified size, in MBs, before delivering it
2508	// to the destination. The default value is 5.
2509	//
2510	// We recommend setting this parameter to a value greater than the amount of
2511	// data you typically ingest into the delivery stream in 10 seconds. For example,
2512	// if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher.
2513	SizeInMBs *int64 `min:"1" type:"integer"`
2514}
2515
2516// String returns the string representation
2517func (s ElasticsearchBufferingHints) String() string {
2518	return awsutil.Prettify(s)
2519}
2520
2521// GoString returns the string representation
2522func (s ElasticsearchBufferingHints) GoString() string {
2523	return s.String()
2524}
2525
2526// Validate inspects the fields of the type to determine if they are valid.
2527func (s *ElasticsearchBufferingHints) Validate() error {
2528	invalidParams := request.ErrInvalidParams{Context: "ElasticsearchBufferingHints"}
2529	if s.IntervalInSeconds != nil && *s.IntervalInSeconds < 60 {
2530		invalidParams.Add(request.NewErrParamMinValue("IntervalInSeconds", 60))
2531	}
2532	if s.SizeInMBs != nil && *s.SizeInMBs < 1 {
2533		invalidParams.Add(request.NewErrParamMinValue("SizeInMBs", 1))
2534	}
2535
2536	if invalidParams.Len() > 0 {
2537		return invalidParams
2538	}
2539	return nil
2540}
2541
2542// SetIntervalInSeconds sets the IntervalInSeconds field's value.
2543func (s *ElasticsearchBufferingHints) SetIntervalInSeconds(v int64) *ElasticsearchBufferingHints {
2544	s.IntervalInSeconds = &v
2545	return s
2546}
2547
2548// SetSizeInMBs sets the SizeInMBs field's value.
2549func (s *ElasticsearchBufferingHints) SetSizeInMBs(v int64) *ElasticsearchBufferingHints {
2550	s.SizeInMBs = &v
2551	return s
2552}
2553
2554// Describes the configuration of a destination in Amazon ES.
2555type ElasticsearchDestinationConfiguration struct {
2556	_ struct{} `type:"structure"`
2557
2558	// The buffering options. If no value is specified, the default values for ElasticsearchBufferingHints
2559	// are used.
2560	BufferingHints *ElasticsearchBufferingHints `type:"structure"`
2561
2562	// The Amazon CloudWatch logging options for your delivery stream.
2563	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
2564
2565	// The endpoint to use when communicating with the cluster. Specify either this
2566	// ClusterEndpoint or the DomainARN field.
2567	ClusterEndpoint *string `min:"1" type:"string"`
2568
2569	// The ARN of the Amazon ES domain. The IAM role must have permissions for DescribeElasticsearchDomain,
2570	// DescribeElasticsearchDomains, and DescribeElasticsearchDomainConfig after
2571	// assuming the role specified in RoleARN. For more information, see Amazon
2572	// Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
2573	//
2574	// Specify either ClusterEndpoint or DomainARN.
2575	DomainARN *string `min:"1" type:"string"`
2576
2577	// The Elasticsearch index name.
2578	//
2579	// IndexName is a required field
2580	IndexName *string `min:"1" type:"string" required:"true"`
2581
2582	// The Elasticsearch index rotation period. Index rotation appends a timestamp
2583	// to the IndexName to facilitate the expiration of old data. For more information,
2584	// see Index Rotation for the Amazon ES Destination (https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation).
2585	// The default value is OneDay.
2586	IndexRotationPeriod *string `type:"string" enum:"ElasticsearchIndexRotationPeriod"`
2587
2588	// The data processing configuration.
2589	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
2590
2591	// The retry behavior in case Kinesis Data Firehose is unable to deliver documents
2592	// to Amazon ES. The default value is 300 (5 minutes).
2593	RetryOptions *ElasticsearchRetryOptions `type:"structure"`
2594
2595	// The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data
2596	// Firehose for calling the Amazon ES Configuration API and for indexing documents.
2597	// For more information, see Grant Kinesis Data Firehose Access to an Amazon
2598	// S3 Destination (https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3)
2599	// and Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
2600	//
2601	// RoleARN is a required field
2602	RoleARN *string `min:"1" type:"string" required:"true"`
2603
2604	// Defines how documents should be delivered to Amazon S3. When it is set to
2605	// FailedDocumentsOnly, Kinesis Data Firehose writes any documents that could
2606	// not be indexed to the configured Amazon S3 destination, with elasticsearch-failed/
2607	// appended to the key prefix. When set to AllDocuments, Kinesis Data Firehose
2608	// delivers all incoming records to Amazon S3, and also writes failed documents
2609	// with elasticsearch-failed/ appended to the prefix. For more information,
2610	// see Amazon S3 Backup for the Amazon ES Destination (https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-s3-backup).
2611	// Default value is FailedDocumentsOnly.
2612	//
2613	// You can't change this backup mode after you create the delivery stream.
2614	S3BackupMode *string `type:"string" enum:"ElasticsearchS3BackupMode"`
2615
2616	// The configuration for the backup Amazon S3 location.
2617	//
2618	// S3Configuration is a required field
2619	S3Configuration *S3DestinationConfiguration `type:"structure" required:"true"`
2620
2621	// The Elasticsearch type name. For Elasticsearch 6.x, there can be only one
2622	// type per index. If you try to specify a new type for an existing index that
2623	// already has another type, Kinesis Data Firehose returns an error during run
2624	// time.
2625	//
2626	// For Elasticsearch 7.x, don't specify a TypeName.
2627	TypeName *string `type:"string"`
2628
2629	// The details of the VPC of the Amazon ES destination.
2630	VpcConfiguration *VpcConfiguration `type:"structure"`
2631}
2632
2633// String returns the string representation
2634func (s ElasticsearchDestinationConfiguration) String() string {
2635	return awsutil.Prettify(s)
2636}
2637
2638// GoString returns the string representation
2639func (s ElasticsearchDestinationConfiguration) GoString() string {
2640	return s.String()
2641}
2642
2643// Validate inspects the fields of the type to determine if they are valid.
2644func (s *ElasticsearchDestinationConfiguration) Validate() error {
2645	invalidParams := request.ErrInvalidParams{Context: "ElasticsearchDestinationConfiguration"}
2646	if s.ClusterEndpoint != nil && len(*s.ClusterEndpoint) < 1 {
2647		invalidParams.Add(request.NewErrParamMinLen("ClusterEndpoint", 1))
2648	}
2649	if s.DomainARN != nil && len(*s.DomainARN) < 1 {
2650		invalidParams.Add(request.NewErrParamMinLen("DomainARN", 1))
2651	}
2652	if s.IndexName == nil {
2653		invalidParams.Add(request.NewErrParamRequired("IndexName"))
2654	}
2655	if s.IndexName != nil && len(*s.IndexName) < 1 {
2656		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
2657	}
2658	if s.RoleARN == nil {
2659		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
2660	}
2661	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
2662		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
2663	}
2664	if s.S3Configuration == nil {
2665		invalidParams.Add(request.NewErrParamRequired("S3Configuration"))
2666	}
2667	if s.BufferingHints != nil {
2668		if err := s.BufferingHints.Validate(); err != nil {
2669			invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
2670		}
2671	}
2672	if s.ProcessingConfiguration != nil {
2673		if err := s.ProcessingConfiguration.Validate(); err != nil {
2674			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
2675		}
2676	}
2677	if s.S3Configuration != nil {
2678		if err := s.S3Configuration.Validate(); err != nil {
2679			invalidParams.AddNested("S3Configuration", err.(request.ErrInvalidParams))
2680		}
2681	}
2682	if s.VpcConfiguration != nil {
2683		if err := s.VpcConfiguration.Validate(); err != nil {
2684			invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams))
2685		}
2686	}
2687
2688	if invalidParams.Len() > 0 {
2689		return invalidParams
2690	}
2691	return nil
2692}
2693
2694// SetBufferingHints sets the BufferingHints field's value.
2695func (s *ElasticsearchDestinationConfiguration) SetBufferingHints(v *ElasticsearchBufferingHints) *ElasticsearchDestinationConfiguration {
2696	s.BufferingHints = v
2697	return s
2698}
2699
2700// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
2701func (s *ElasticsearchDestinationConfiguration) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *ElasticsearchDestinationConfiguration {
2702	s.CloudWatchLoggingOptions = v
2703	return s
2704}
2705
2706// SetClusterEndpoint sets the ClusterEndpoint field's value.
2707func (s *ElasticsearchDestinationConfiguration) SetClusterEndpoint(v string) *ElasticsearchDestinationConfiguration {
2708	s.ClusterEndpoint = &v
2709	return s
2710}
2711
2712// SetDomainARN sets the DomainARN field's value.
2713func (s *ElasticsearchDestinationConfiguration) SetDomainARN(v string) *ElasticsearchDestinationConfiguration {
2714	s.DomainARN = &v
2715	return s
2716}
2717
2718// SetIndexName sets the IndexName field's value.
2719func (s *ElasticsearchDestinationConfiguration) SetIndexName(v string) *ElasticsearchDestinationConfiguration {
2720	s.IndexName = &v
2721	return s
2722}
2723
2724// SetIndexRotationPeriod sets the IndexRotationPeriod field's value.
2725func (s *ElasticsearchDestinationConfiguration) SetIndexRotationPeriod(v string) *ElasticsearchDestinationConfiguration {
2726	s.IndexRotationPeriod = &v
2727	return s
2728}
2729
2730// SetProcessingConfiguration sets the ProcessingConfiguration field's value.
2731func (s *ElasticsearchDestinationConfiguration) SetProcessingConfiguration(v *ProcessingConfiguration) *ElasticsearchDestinationConfiguration {
2732	s.ProcessingConfiguration = v
2733	return s
2734}
2735
2736// SetRetryOptions sets the RetryOptions field's value.
2737func (s *ElasticsearchDestinationConfiguration) SetRetryOptions(v *ElasticsearchRetryOptions) *ElasticsearchDestinationConfiguration {
2738	s.RetryOptions = v
2739	return s
2740}
2741
2742// SetRoleARN sets the RoleARN field's value.
2743func (s *ElasticsearchDestinationConfiguration) SetRoleARN(v string) *ElasticsearchDestinationConfiguration {
2744	s.RoleARN = &v
2745	return s
2746}
2747
2748// SetS3BackupMode sets the S3BackupMode field's value.
2749func (s *ElasticsearchDestinationConfiguration) SetS3BackupMode(v string) *ElasticsearchDestinationConfiguration {
2750	s.S3BackupMode = &v
2751	return s
2752}
2753
2754// SetS3Configuration sets the S3Configuration field's value.
2755func (s *ElasticsearchDestinationConfiguration) SetS3Configuration(v *S3DestinationConfiguration) *ElasticsearchDestinationConfiguration {
2756	s.S3Configuration = v
2757	return s
2758}
2759
2760// SetTypeName sets the TypeName field's value.
2761func (s *ElasticsearchDestinationConfiguration) SetTypeName(v string) *ElasticsearchDestinationConfiguration {
2762	s.TypeName = &v
2763	return s
2764}
2765
2766// SetVpcConfiguration sets the VpcConfiguration field's value.
2767func (s *ElasticsearchDestinationConfiguration) SetVpcConfiguration(v *VpcConfiguration) *ElasticsearchDestinationConfiguration {
2768	s.VpcConfiguration = v
2769	return s
2770}
2771
2772// The destination description in Amazon ES.
2773type ElasticsearchDestinationDescription struct {
2774	_ struct{} `type:"structure"`
2775
2776	// The buffering options.
2777	BufferingHints *ElasticsearchBufferingHints `type:"structure"`
2778
2779	// The Amazon CloudWatch logging options.
2780	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
2781
2782	// The endpoint to use when communicating with the cluster. Kinesis Data Firehose
2783	// uses either this ClusterEndpoint or the DomainARN field to send data to Amazon
2784	// ES.
2785	ClusterEndpoint *string `min:"1" type:"string"`
2786
2787	// The ARN of the Amazon ES domain. For more information, see Amazon Resource
2788	// Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
2789	//
2790	// Kinesis Data Firehose uses either ClusterEndpoint or DomainARN to send data
2791	// to Amazon ES.
2792	DomainARN *string `min:"1" type:"string"`
2793
2794	// The Elasticsearch index name.
2795	IndexName *string `min:"1" type:"string"`
2796
2797	// The Elasticsearch index rotation period
2798	IndexRotationPeriod *string `type:"string" enum:"ElasticsearchIndexRotationPeriod"`
2799
2800	// The data processing configuration.
2801	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
2802
2803	// The Amazon ES retry options.
2804	RetryOptions *ElasticsearchRetryOptions `type:"structure"`
2805
2806	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
2807	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
2808	RoleARN *string `min:"1" type:"string"`
2809
2810	// The Amazon S3 backup mode.
2811	S3BackupMode *string `type:"string" enum:"ElasticsearchS3BackupMode"`
2812
2813	// The Amazon S3 destination.
2814	S3DestinationDescription *S3DestinationDescription `type:"structure"`
2815
2816	// The Elasticsearch type name. This applies to Elasticsearch 6.x and lower
2817	// versions. For Elasticsearch 7.x, there's no value for TypeName.
2818	TypeName *string `type:"string"`
2819
2820	// The details of the VPC of the Amazon ES destination.
2821	VpcConfigurationDescription *VpcConfigurationDescription `type:"structure"`
2822}
2823
2824// String returns the string representation
2825func (s ElasticsearchDestinationDescription) String() string {
2826	return awsutil.Prettify(s)
2827}
2828
2829// GoString returns the string representation
2830func (s ElasticsearchDestinationDescription) GoString() string {
2831	return s.String()
2832}
2833
2834// SetBufferingHints sets the BufferingHints field's value.
2835func (s *ElasticsearchDestinationDescription) SetBufferingHints(v *ElasticsearchBufferingHints) *ElasticsearchDestinationDescription {
2836	s.BufferingHints = v
2837	return s
2838}
2839
2840// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
2841func (s *ElasticsearchDestinationDescription) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *ElasticsearchDestinationDescription {
2842	s.CloudWatchLoggingOptions = v
2843	return s
2844}
2845
2846// SetClusterEndpoint sets the ClusterEndpoint field's value.
2847func (s *ElasticsearchDestinationDescription) SetClusterEndpoint(v string) *ElasticsearchDestinationDescription {
2848	s.ClusterEndpoint = &v
2849	return s
2850}
2851
2852// SetDomainARN sets the DomainARN field's value.
2853func (s *ElasticsearchDestinationDescription) SetDomainARN(v string) *ElasticsearchDestinationDescription {
2854	s.DomainARN = &v
2855	return s
2856}
2857
2858// SetIndexName sets the IndexName field's value.
2859func (s *ElasticsearchDestinationDescription) SetIndexName(v string) *ElasticsearchDestinationDescription {
2860	s.IndexName = &v
2861	return s
2862}
2863
2864// SetIndexRotationPeriod sets the IndexRotationPeriod field's value.
2865func (s *ElasticsearchDestinationDescription) SetIndexRotationPeriod(v string) *ElasticsearchDestinationDescription {
2866	s.IndexRotationPeriod = &v
2867	return s
2868}
2869
2870// SetProcessingConfiguration sets the ProcessingConfiguration field's value.
2871func (s *ElasticsearchDestinationDescription) SetProcessingConfiguration(v *ProcessingConfiguration) *ElasticsearchDestinationDescription {
2872	s.ProcessingConfiguration = v
2873	return s
2874}
2875
2876// SetRetryOptions sets the RetryOptions field's value.
2877func (s *ElasticsearchDestinationDescription) SetRetryOptions(v *ElasticsearchRetryOptions) *ElasticsearchDestinationDescription {
2878	s.RetryOptions = v
2879	return s
2880}
2881
2882// SetRoleARN sets the RoleARN field's value.
2883func (s *ElasticsearchDestinationDescription) SetRoleARN(v string) *ElasticsearchDestinationDescription {
2884	s.RoleARN = &v
2885	return s
2886}
2887
2888// SetS3BackupMode sets the S3BackupMode field's value.
2889func (s *ElasticsearchDestinationDescription) SetS3BackupMode(v string) *ElasticsearchDestinationDescription {
2890	s.S3BackupMode = &v
2891	return s
2892}
2893
2894// SetS3DestinationDescription sets the S3DestinationDescription field's value.
2895func (s *ElasticsearchDestinationDescription) SetS3DestinationDescription(v *S3DestinationDescription) *ElasticsearchDestinationDescription {
2896	s.S3DestinationDescription = v
2897	return s
2898}
2899
2900// SetTypeName sets the TypeName field's value.
2901func (s *ElasticsearchDestinationDescription) SetTypeName(v string) *ElasticsearchDestinationDescription {
2902	s.TypeName = &v
2903	return s
2904}
2905
2906// SetVpcConfigurationDescription sets the VpcConfigurationDescription field's value.
2907func (s *ElasticsearchDestinationDescription) SetVpcConfigurationDescription(v *VpcConfigurationDescription) *ElasticsearchDestinationDescription {
2908	s.VpcConfigurationDescription = v
2909	return s
2910}
2911
2912// Describes an update for a destination in Amazon ES.
2913type ElasticsearchDestinationUpdate struct {
2914	_ struct{} `type:"structure"`
2915
2916	// The buffering options. If no value is specified, ElasticsearchBufferingHints
2917	// object default values are used.
2918	BufferingHints *ElasticsearchBufferingHints `type:"structure"`
2919
2920	// The CloudWatch logging options for your delivery stream.
2921	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
2922
2923	// The endpoint to use when communicating with the cluster. Specify either this
2924	// ClusterEndpoint or the DomainARN field.
2925	ClusterEndpoint *string `min:"1" type:"string"`
2926
2927	// The ARN of the Amazon ES domain. The IAM role must have permissions for DescribeElasticsearchDomain,
2928	// DescribeElasticsearchDomains, and DescribeElasticsearchDomainConfig after
2929	// assuming the IAM role specified in RoleARN. For more information, see Amazon
2930	// Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
2931	//
2932	// Specify either ClusterEndpoint or DomainARN.
2933	DomainARN *string `min:"1" type:"string"`
2934
2935	// The Elasticsearch index name.
2936	IndexName *string `min:"1" type:"string"`
2937
2938	// The Elasticsearch index rotation period. Index rotation appends a timestamp
2939	// to IndexName to facilitate the expiration of old data. For more information,
2940	// see Index Rotation for the Amazon ES Destination (https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation).
2941	// Default value is OneDay.
2942	IndexRotationPeriod *string `type:"string" enum:"ElasticsearchIndexRotationPeriod"`
2943
2944	// The data processing configuration.
2945	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
2946
2947	// The retry behavior in case Kinesis Data Firehose is unable to deliver documents
2948	// to Amazon ES. The default value is 300 (5 minutes).
2949	RetryOptions *ElasticsearchRetryOptions `type:"structure"`
2950
2951	// The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data
2952	// Firehose for calling the Amazon ES Configuration API and for indexing documents.
2953	// For more information, see Grant Kinesis Data Firehose Access to an Amazon
2954	// S3 Destination (https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3)
2955	// and Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
2956	RoleARN *string `min:"1" type:"string"`
2957
2958	// The Amazon S3 destination.
2959	S3Update *S3DestinationUpdate `type:"structure"`
2960
2961	// The Elasticsearch type name. For Elasticsearch 6.x, there can be only one
2962	// type per index. If you try to specify a new type for an existing index that
2963	// already has another type, Kinesis Data Firehose returns an error during runtime.
2964	//
2965	// If you upgrade Elasticsearch from 6.x to 7.x and don’t update your delivery
2966	// stream, Kinesis Data Firehose still delivers data to Elasticsearch with the
2967	// old index name and type name. If you want to update your delivery stream
2968	// with a new index name, provide an empty string for TypeName.
2969	TypeName *string `type:"string"`
2970}
2971
2972// String returns the string representation
2973func (s ElasticsearchDestinationUpdate) String() string {
2974	return awsutil.Prettify(s)
2975}
2976
2977// GoString returns the string representation
2978func (s ElasticsearchDestinationUpdate) GoString() string {
2979	return s.String()
2980}
2981
2982// Validate inspects the fields of the type to determine if they are valid.
2983func (s *ElasticsearchDestinationUpdate) Validate() error {
2984	invalidParams := request.ErrInvalidParams{Context: "ElasticsearchDestinationUpdate"}
2985	if s.ClusterEndpoint != nil && len(*s.ClusterEndpoint) < 1 {
2986		invalidParams.Add(request.NewErrParamMinLen("ClusterEndpoint", 1))
2987	}
2988	if s.DomainARN != nil && len(*s.DomainARN) < 1 {
2989		invalidParams.Add(request.NewErrParamMinLen("DomainARN", 1))
2990	}
2991	if s.IndexName != nil && len(*s.IndexName) < 1 {
2992		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
2993	}
2994	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
2995		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
2996	}
2997	if s.BufferingHints != nil {
2998		if err := s.BufferingHints.Validate(); err != nil {
2999			invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
3000		}
3001	}
3002	if s.ProcessingConfiguration != nil {
3003		if err := s.ProcessingConfiguration.Validate(); err != nil {
3004			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
3005		}
3006	}
3007	if s.S3Update != nil {
3008		if err := s.S3Update.Validate(); err != nil {
3009			invalidParams.AddNested("S3Update", err.(request.ErrInvalidParams))
3010		}
3011	}
3012
3013	if invalidParams.Len() > 0 {
3014		return invalidParams
3015	}
3016	return nil
3017}
3018
3019// SetBufferingHints sets the BufferingHints field's value.
3020func (s *ElasticsearchDestinationUpdate) SetBufferingHints(v *ElasticsearchBufferingHints) *ElasticsearchDestinationUpdate {
3021	s.BufferingHints = v
3022	return s
3023}
3024
3025// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
3026func (s *ElasticsearchDestinationUpdate) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *ElasticsearchDestinationUpdate {
3027	s.CloudWatchLoggingOptions = v
3028	return s
3029}
3030
3031// SetClusterEndpoint sets the ClusterEndpoint field's value.
3032func (s *ElasticsearchDestinationUpdate) SetClusterEndpoint(v string) *ElasticsearchDestinationUpdate {
3033	s.ClusterEndpoint = &v
3034	return s
3035}
3036
3037// SetDomainARN sets the DomainARN field's value.
3038func (s *ElasticsearchDestinationUpdate) SetDomainARN(v string) *ElasticsearchDestinationUpdate {
3039	s.DomainARN = &v
3040	return s
3041}
3042
3043// SetIndexName sets the IndexName field's value.
3044func (s *ElasticsearchDestinationUpdate) SetIndexName(v string) *ElasticsearchDestinationUpdate {
3045	s.IndexName = &v
3046	return s
3047}
3048
3049// SetIndexRotationPeriod sets the IndexRotationPeriod field's value.
3050func (s *ElasticsearchDestinationUpdate) SetIndexRotationPeriod(v string) *ElasticsearchDestinationUpdate {
3051	s.IndexRotationPeriod = &v
3052	return s
3053}
3054
3055// SetProcessingConfiguration sets the ProcessingConfiguration field's value.
3056func (s *ElasticsearchDestinationUpdate) SetProcessingConfiguration(v *ProcessingConfiguration) *ElasticsearchDestinationUpdate {
3057	s.ProcessingConfiguration = v
3058	return s
3059}
3060
3061// SetRetryOptions sets the RetryOptions field's value.
3062func (s *ElasticsearchDestinationUpdate) SetRetryOptions(v *ElasticsearchRetryOptions) *ElasticsearchDestinationUpdate {
3063	s.RetryOptions = v
3064	return s
3065}
3066
3067// SetRoleARN sets the RoleARN field's value.
3068func (s *ElasticsearchDestinationUpdate) SetRoleARN(v string) *ElasticsearchDestinationUpdate {
3069	s.RoleARN = &v
3070	return s
3071}
3072
3073// SetS3Update sets the S3Update field's value.
3074func (s *ElasticsearchDestinationUpdate) SetS3Update(v *S3DestinationUpdate) *ElasticsearchDestinationUpdate {
3075	s.S3Update = v
3076	return s
3077}
3078
3079// SetTypeName sets the TypeName field's value.
3080func (s *ElasticsearchDestinationUpdate) SetTypeName(v string) *ElasticsearchDestinationUpdate {
3081	s.TypeName = &v
3082	return s
3083}
3084
3085// Configures retry behavior in case Kinesis Data Firehose is unable to deliver
3086// documents to Amazon ES.
3087type ElasticsearchRetryOptions struct {
3088	_ struct{} `type:"structure"`
3089
3090	// After an initial failure to deliver to Amazon ES, the total amount of time
3091	// during which Kinesis Data Firehose retries delivery (including the first
3092	// attempt). After this time has elapsed, the failed documents are written to
3093	// Amazon S3. Default value is 300 seconds (5 minutes). A value of 0 (zero)
3094	// results in no retries.
3095	DurationInSeconds *int64 `type:"integer"`
3096}
3097
3098// String returns the string representation
3099func (s ElasticsearchRetryOptions) String() string {
3100	return awsutil.Prettify(s)
3101}
3102
3103// GoString returns the string representation
3104func (s ElasticsearchRetryOptions) GoString() string {
3105	return s.String()
3106}
3107
3108// SetDurationInSeconds sets the DurationInSeconds field's value.
3109func (s *ElasticsearchRetryOptions) SetDurationInSeconds(v int64) *ElasticsearchRetryOptions {
3110	s.DurationInSeconds = &v
3111	return s
3112}
3113
3114// Describes the encryption for a destination in Amazon S3.
3115type EncryptionConfiguration struct {
3116	_ struct{} `type:"structure"`
3117
3118	// The encryption key.
3119	KMSEncryptionConfig *KMSEncryptionConfig `type:"structure"`
3120
3121	// Specifically override existing encryption information to ensure that no encryption
3122	// is used.
3123	NoEncryptionConfig *string `type:"string" enum:"NoEncryptionConfig"`
3124}
3125
3126// String returns the string representation
3127func (s EncryptionConfiguration) String() string {
3128	return awsutil.Prettify(s)
3129}
3130
3131// GoString returns the string representation
3132func (s EncryptionConfiguration) GoString() string {
3133	return s.String()
3134}
3135
3136// Validate inspects the fields of the type to determine if they are valid.
3137func (s *EncryptionConfiguration) Validate() error {
3138	invalidParams := request.ErrInvalidParams{Context: "EncryptionConfiguration"}
3139	if s.KMSEncryptionConfig != nil {
3140		if err := s.KMSEncryptionConfig.Validate(); err != nil {
3141			invalidParams.AddNested("KMSEncryptionConfig", err.(request.ErrInvalidParams))
3142		}
3143	}
3144
3145	if invalidParams.Len() > 0 {
3146		return invalidParams
3147	}
3148	return nil
3149}
3150
3151// SetKMSEncryptionConfig sets the KMSEncryptionConfig field's value.
3152func (s *EncryptionConfiguration) SetKMSEncryptionConfig(v *KMSEncryptionConfig) *EncryptionConfiguration {
3153	s.KMSEncryptionConfig = v
3154	return s
3155}
3156
3157// SetNoEncryptionConfig sets the NoEncryptionConfig field's value.
3158func (s *EncryptionConfiguration) SetNoEncryptionConfig(v string) *EncryptionConfiguration {
3159	s.NoEncryptionConfig = &v
3160	return s
3161}
3162
3163// Describes the configuration of a destination in Amazon S3.
3164type ExtendedS3DestinationConfiguration struct {
3165	_ struct{} `type:"structure"`
3166
3167	// The ARN of the S3 bucket. For more information, see Amazon Resource Names
3168	// (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
3169	//
3170	// BucketARN is a required field
3171	BucketARN *string `min:"1" type:"string" required:"true"`
3172
3173	// The buffering option.
3174	BufferingHints *BufferingHints `type:"structure"`
3175
3176	// The Amazon CloudWatch logging options for your delivery stream.
3177	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
3178
3179	// The compression format. If no value is specified, the default is UNCOMPRESSED.
3180	CompressionFormat *string `type:"string" enum:"CompressionFormat"`
3181
3182	// The serializer, deserializer, and schema for converting data from the JSON
3183	// format to the Parquet or ORC format before writing it to Amazon S3.
3184	DataFormatConversionConfiguration *DataFormatConversionConfiguration `type:"structure"`
3185
3186	// The encryption configuration. If no value is specified, the default is no
3187	// encryption.
3188	EncryptionConfiguration *EncryptionConfiguration `type:"structure"`
3189
3190	// A prefix that Kinesis Data Firehose evaluates and adds to failed records
3191	// before writing them to S3. This prefix appears immediately following the
3192	// bucket name. For information about how to specify this prefix, see Custom
3193	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
3194	ErrorOutputPrefix *string `type:"string"`
3195
3196	// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
3197	// Amazon S3 files. You can also specify a custom prefix, as described in Custom
3198	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
3199	Prefix *string `type:"string"`
3200
3201	// The data processing configuration.
3202	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
3203
3204	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
3205	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
3206	//
3207	// RoleARN is a required field
3208	RoleARN *string `min:"1" type:"string" required:"true"`
3209
3210	// The configuration for backup in Amazon S3.
3211	S3BackupConfiguration *S3DestinationConfiguration `type:"structure"`
3212
3213	// The Amazon S3 backup mode. After you create a delivery stream, you can update
3214	// it to enable Amazon S3 backup if it is disabled. If backup is enabled, you
3215	// can't update the delivery stream to disable it.
3216	S3BackupMode *string `type:"string" enum:"S3BackupMode"`
3217}
3218
3219// String returns the string representation
3220func (s ExtendedS3DestinationConfiguration) String() string {
3221	return awsutil.Prettify(s)
3222}
3223
3224// GoString returns the string representation
3225func (s ExtendedS3DestinationConfiguration) GoString() string {
3226	return s.String()
3227}
3228
3229// Validate inspects the fields of the type to determine if they are valid.
3230func (s *ExtendedS3DestinationConfiguration) Validate() error {
3231	invalidParams := request.ErrInvalidParams{Context: "ExtendedS3DestinationConfiguration"}
3232	if s.BucketARN == nil {
3233		invalidParams.Add(request.NewErrParamRequired("BucketARN"))
3234	}
3235	if s.BucketARN != nil && len(*s.BucketARN) < 1 {
3236		invalidParams.Add(request.NewErrParamMinLen("BucketARN", 1))
3237	}
3238	if s.RoleARN == nil {
3239		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
3240	}
3241	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
3242		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
3243	}
3244	if s.BufferingHints != nil {
3245		if err := s.BufferingHints.Validate(); err != nil {
3246			invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
3247		}
3248	}
3249	if s.DataFormatConversionConfiguration != nil {
3250		if err := s.DataFormatConversionConfiguration.Validate(); err != nil {
3251			invalidParams.AddNested("DataFormatConversionConfiguration", err.(request.ErrInvalidParams))
3252		}
3253	}
3254	if s.EncryptionConfiguration != nil {
3255		if err := s.EncryptionConfiguration.Validate(); err != nil {
3256			invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams))
3257		}
3258	}
3259	if s.ProcessingConfiguration != nil {
3260		if err := s.ProcessingConfiguration.Validate(); err != nil {
3261			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
3262		}
3263	}
3264	if s.S3BackupConfiguration != nil {
3265		if err := s.S3BackupConfiguration.Validate(); err != nil {
3266			invalidParams.AddNested("S3BackupConfiguration", err.(request.ErrInvalidParams))
3267		}
3268	}
3269
3270	if invalidParams.Len() > 0 {
3271		return invalidParams
3272	}
3273	return nil
3274}
3275
3276// SetBucketARN sets the BucketARN field's value.
3277func (s *ExtendedS3DestinationConfiguration) SetBucketARN(v string) *ExtendedS3DestinationConfiguration {
3278	s.BucketARN = &v
3279	return s
3280}
3281
3282// SetBufferingHints sets the BufferingHints field's value.
3283func (s *ExtendedS3DestinationConfiguration) SetBufferingHints(v *BufferingHints) *ExtendedS3DestinationConfiguration {
3284	s.BufferingHints = v
3285	return s
3286}
3287
3288// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
3289func (s *ExtendedS3DestinationConfiguration) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *ExtendedS3DestinationConfiguration {
3290	s.CloudWatchLoggingOptions = v
3291	return s
3292}
3293
3294// SetCompressionFormat sets the CompressionFormat field's value.
3295func (s *ExtendedS3DestinationConfiguration) SetCompressionFormat(v string) *ExtendedS3DestinationConfiguration {
3296	s.CompressionFormat = &v
3297	return s
3298}
3299
3300// SetDataFormatConversionConfiguration sets the DataFormatConversionConfiguration field's value.
3301func (s *ExtendedS3DestinationConfiguration) SetDataFormatConversionConfiguration(v *DataFormatConversionConfiguration) *ExtendedS3DestinationConfiguration {
3302	s.DataFormatConversionConfiguration = v
3303	return s
3304}
3305
3306// SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
3307func (s *ExtendedS3DestinationConfiguration) SetEncryptionConfiguration(v *EncryptionConfiguration) *ExtendedS3DestinationConfiguration {
3308	s.EncryptionConfiguration = v
3309	return s
3310}
3311
3312// SetErrorOutputPrefix sets the ErrorOutputPrefix field's value.
3313func (s *ExtendedS3DestinationConfiguration) SetErrorOutputPrefix(v string) *ExtendedS3DestinationConfiguration {
3314	s.ErrorOutputPrefix = &v
3315	return s
3316}
3317
3318// SetPrefix sets the Prefix field's value.
3319func (s *ExtendedS3DestinationConfiguration) SetPrefix(v string) *ExtendedS3DestinationConfiguration {
3320	s.Prefix = &v
3321	return s
3322}
3323
3324// SetProcessingConfiguration sets the ProcessingConfiguration field's value.
3325func (s *ExtendedS3DestinationConfiguration) SetProcessingConfiguration(v *ProcessingConfiguration) *ExtendedS3DestinationConfiguration {
3326	s.ProcessingConfiguration = v
3327	return s
3328}
3329
3330// SetRoleARN sets the RoleARN field's value.
3331func (s *ExtendedS3DestinationConfiguration) SetRoleARN(v string) *ExtendedS3DestinationConfiguration {
3332	s.RoleARN = &v
3333	return s
3334}
3335
3336// SetS3BackupConfiguration sets the S3BackupConfiguration field's value.
3337func (s *ExtendedS3DestinationConfiguration) SetS3BackupConfiguration(v *S3DestinationConfiguration) *ExtendedS3DestinationConfiguration {
3338	s.S3BackupConfiguration = v
3339	return s
3340}
3341
3342// SetS3BackupMode sets the S3BackupMode field's value.
3343func (s *ExtendedS3DestinationConfiguration) SetS3BackupMode(v string) *ExtendedS3DestinationConfiguration {
3344	s.S3BackupMode = &v
3345	return s
3346}
3347
3348// Describes a destination in Amazon S3.
3349type ExtendedS3DestinationDescription struct {
3350	_ struct{} `type:"structure"`
3351
3352	// The ARN of the S3 bucket. For more information, see Amazon Resource Names
3353	// (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
3354	//
3355	// BucketARN is a required field
3356	BucketARN *string `min:"1" type:"string" required:"true"`
3357
3358	// The buffering option.
3359	//
3360	// BufferingHints is a required field
3361	BufferingHints *BufferingHints `type:"structure" required:"true"`
3362
3363	// The Amazon CloudWatch logging options for your delivery stream.
3364	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
3365
3366	// The compression format. If no value is specified, the default is UNCOMPRESSED.
3367	//
3368	// CompressionFormat is a required field
3369	CompressionFormat *string `type:"string" required:"true" enum:"CompressionFormat"`
3370
3371	// The serializer, deserializer, and schema for converting data from the JSON
3372	// format to the Parquet or ORC format before writing it to Amazon S3.
3373	DataFormatConversionConfiguration *DataFormatConversionConfiguration `type:"structure"`
3374
3375	// The encryption configuration. If no value is specified, the default is no
3376	// encryption.
3377	//
3378	// EncryptionConfiguration is a required field
3379	EncryptionConfiguration *EncryptionConfiguration `type:"structure" required:"true"`
3380
3381	// A prefix that Kinesis Data Firehose evaluates and adds to failed records
3382	// before writing them to S3. This prefix appears immediately following the
3383	// bucket name. For information about how to specify this prefix, see Custom
3384	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
3385	ErrorOutputPrefix *string `type:"string"`
3386
3387	// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
3388	// Amazon S3 files. You can also specify a custom prefix, as described in Custom
3389	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
3390	Prefix *string `type:"string"`
3391
3392	// The data processing configuration.
3393	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
3394
3395	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
3396	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
3397	//
3398	// RoleARN is a required field
3399	RoleARN *string `min:"1" type:"string" required:"true"`
3400
3401	// The configuration for backup in Amazon S3.
3402	S3BackupDescription *S3DestinationDescription `type:"structure"`
3403
3404	// The Amazon S3 backup mode.
3405	S3BackupMode *string `type:"string" enum:"S3BackupMode"`
3406}
3407
3408// String returns the string representation
3409func (s ExtendedS3DestinationDescription) String() string {
3410	return awsutil.Prettify(s)
3411}
3412
3413// GoString returns the string representation
3414func (s ExtendedS3DestinationDescription) GoString() string {
3415	return s.String()
3416}
3417
3418// SetBucketARN sets the BucketARN field's value.
3419func (s *ExtendedS3DestinationDescription) SetBucketARN(v string) *ExtendedS3DestinationDescription {
3420	s.BucketARN = &v
3421	return s
3422}
3423
3424// SetBufferingHints sets the BufferingHints field's value.
3425func (s *ExtendedS3DestinationDescription) SetBufferingHints(v *BufferingHints) *ExtendedS3DestinationDescription {
3426	s.BufferingHints = v
3427	return s
3428}
3429
3430// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
3431func (s *ExtendedS3DestinationDescription) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *ExtendedS3DestinationDescription {
3432	s.CloudWatchLoggingOptions = v
3433	return s
3434}
3435
3436// SetCompressionFormat sets the CompressionFormat field's value.
3437func (s *ExtendedS3DestinationDescription) SetCompressionFormat(v string) *ExtendedS3DestinationDescription {
3438	s.CompressionFormat = &v
3439	return s
3440}
3441
3442// SetDataFormatConversionConfiguration sets the DataFormatConversionConfiguration field's value.
3443func (s *ExtendedS3DestinationDescription) SetDataFormatConversionConfiguration(v *DataFormatConversionConfiguration) *ExtendedS3DestinationDescription {
3444	s.DataFormatConversionConfiguration = v
3445	return s
3446}
3447
3448// SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
3449func (s *ExtendedS3DestinationDescription) SetEncryptionConfiguration(v *EncryptionConfiguration) *ExtendedS3DestinationDescription {
3450	s.EncryptionConfiguration = v
3451	return s
3452}
3453
3454// SetErrorOutputPrefix sets the ErrorOutputPrefix field's value.
3455func (s *ExtendedS3DestinationDescription) SetErrorOutputPrefix(v string) *ExtendedS3DestinationDescription {
3456	s.ErrorOutputPrefix = &v
3457	return s
3458}
3459
3460// SetPrefix sets the Prefix field's value.
3461func (s *ExtendedS3DestinationDescription) SetPrefix(v string) *ExtendedS3DestinationDescription {
3462	s.Prefix = &v
3463	return s
3464}
3465
3466// SetProcessingConfiguration sets the ProcessingConfiguration field's value.
3467func (s *ExtendedS3DestinationDescription) SetProcessingConfiguration(v *ProcessingConfiguration) *ExtendedS3DestinationDescription {
3468	s.ProcessingConfiguration = v
3469	return s
3470}
3471
3472// SetRoleARN sets the RoleARN field's value.
3473func (s *ExtendedS3DestinationDescription) SetRoleARN(v string) *ExtendedS3DestinationDescription {
3474	s.RoleARN = &v
3475	return s
3476}
3477
3478// SetS3BackupDescription sets the S3BackupDescription field's value.
3479func (s *ExtendedS3DestinationDescription) SetS3BackupDescription(v *S3DestinationDescription) *ExtendedS3DestinationDescription {
3480	s.S3BackupDescription = v
3481	return s
3482}
3483
3484// SetS3BackupMode sets the S3BackupMode field's value.
3485func (s *ExtendedS3DestinationDescription) SetS3BackupMode(v string) *ExtendedS3DestinationDescription {
3486	s.S3BackupMode = &v
3487	return s
3488}
3489
3490// Describes an update for a destination in Amazon S3.
3491type ExtendedS3DestinationUpdate struct {
3492	_ struct{} `type:"structure"`
3493
3494	// The ARN of the S3 bucket. For more information, see Amazon Resource Names
3495	// (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
3496	BucketARN *string `min:"1" type:"string"`
3497
3498	// The buffering option.
3499	BufferingHints *BufferingHints `type:"structure"`
3500
3501	// The Amazon CloudWatch logging options for your delivery stream.
3502	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
3503
3504	// The compression format. If no value is specified, the default is UNCOMPRESSED.
3505	CompressionFormat *string `type:"string" enum:"CompressionFormat"`
3506
3507	// The serializer, deserializer, and schema for converting data from the JSON
3508	// format to the Parquet or ORC format before writing it to Amazon S3.
3509	DataFormatConversionConfiguration *DataFormatConversionConfiguration `type:"structure"`
3510
3511	// The encryption configuration. If no value is specified, the default is no
3512	// encryption.
3513	EncryptionConfiguration *EncryptionConfiguration `type:"structure"`
3514
3515	// A prefix that Kinesis Data Firehose evaluates and adds to failed records
3516	// before writing them to S3. This prefix appears immediately following the
3517	// bucket name. For information about how to specify this prefix, see Custom
3518	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
3519	ErrorOutputPrefix *string `type:"string"`
3520
3521	// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
3522	// Amazon S3 files. You can also specify a custom prefix, as described in Custom
3523	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
3524	Prefix *string `type:"string"`
3525
3526	// The data processing configuration.
3527	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
3528
3529	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
3530	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
3531	RoleARN *string `min:"1" type:"string"`
3532
3533	// You can update a delivery stream to enable Amazon S3 backup if it is disabled.
3534	// If backup is enabled, you can't update the delivery stream to disable it.
3535	S3BackupMode *string `type:"string" enum:"S3BackupMode"`
3536
3537	// The Amazon S3 destination for backup.
3538	S3BackupUpdate *S3DestinationUpdate `type:"structure"`
3539}
3540
3541// String returns the string representation
3542func (s ExtendedS3DestinationUpdate) String() string {
3543	return awsutil.Prettify(s)
3544}
3545
3546// GoString returns the string representation
3547func (s ExtendedS3DestinationUpdate) GoString() string {
3548	return s.String()
3549}
3550
3551// Validate inspects the fields of the type to determine if they are valid.
3552func (s *ExtendedS3DestinationUpdate) Validate() error {
3553	invalidParams := request.ErrInvalidParams{Context: "ExtendedS3DestinationUpdate"}
3554	if s.BucketARN != nil && len(*s.BucketARN) < 1 {
3555		invalidParams.Add(request.NewErrParamMinLen("BucketARN", 1))
3556	}
3557	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
3558		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
3559	}
3560	if s.BufferingHints != nil {
3561		if err := s.BufferingHints.Validate(); err != nil {
3562			invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
3563		}
3564	}
3565	if s.DataFormatConversionConfiguration != nil {
3566		if err := s.DataFormatConversionConfiguration.Validate(); err != nil {
3567			invalidParams.AddNested("DataFormatConversionConfiguration", err.(request.ErrInvalidParams))
3568		}
3569	}
3570	if s.EncryptionConfiguration != nil {
3571		if err := s.EncryptionConfiguration.Validate(); err != nil {
3572			invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams))
3573		}
3574	}
3575	if s.ProcessingConfiguration != nil {
3576		if err := s.ProcessingConfiguration.Validate(); err != nil {
3577			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
3578		}
3579	}
3580	if s.S3BackupUpdate != nil {
3581		if err := s.S3BackupUpdate.Validate(); err != nil {
3582			invalidParams.AddNested("S3BackupUpdate", err.(request.ErrInvalidParams))
3583		}
3584	}
3585
3586	if invalidParams.Len() > 0 {
3587		return invalidParams
3588	}
3589	return nil
3590}
3591
3592// SetBucketARN sets the BucketARN field's value.
3593func (s *ExtendedS3DestinationUpdate) SetBucketARN(v string) *ExtendedS3DestinationUpdate {
3594	s.BucketARN = &v
3595	return s
3596}
3597
3598// SetBufferingHints sets the BufferingHints field's value.
3599func (s *ExtendedS3DestinationUpdate) SetBufferingHints(v *BufferingHints) *ExtendedS3DestinationUpdate {
3600	s.BufferingHints = v
3601	return s
3602}
3603
3604// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
3605func (s *ExtendedS3DestinationUpdate) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *ExtendedS3DestinationUpdate {
3606	s.CloudWatchLoggingOptions = v
3607	return s
3608}
3609
3610// SetCompressionFormat sets the CompressionFormat field's value.
3611func (s *ExtendedS3DestinationUpdate) SetCompressionFormat(v string) *ExtendedS3DestinationUpdate {
3612	s.CompressionFormat = &v
3613	return s
3614}
3615
3616// SetDataFormatConversionConfiguration sets the DataFormatConversionConfiguration field's value.
3617func (s *ExtendedS3DestinationUpdate) SetDataFormatConversionConfiguration(v *DataFormatConversionConfiguration) *ExtendedS3DestinationUpdate {
3618	s.DataFormatConversionConfiguration = v
3619	return s
3620}
3621
3622// SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
3623func (s *ExtendedS3DestinationUpdate) SetEncryptionConfiguration(v *EncryptionConfiguration) *ExtendedS3DestinationUpdate {
3624	s.EncryptionConfiguration = v
3625	return s
3626}
3627
3628// SetErrorOutputPrefix sets the ErrorOutputPrefix field's value.
3629func (s *ExtendedS3DestinationUpdate) SetErrorOutputPrefix(v string) *ExtendedS3DestinationUpdate {
3630	s.ErrorOutputPrefix = &v
3631	return s
3632}
3633
3634// SetPrefix sets the Prefix field's value.
3635func (s *ExtendedS3DestinationUpdate) SetPrefix(v string) *ExtendedS3DestinationUpdate {
3636	s.Prefix = &v
3637	return s
3638}
3639
3640// SetProcessingConfiguration sets the ProcessingConfiguration field's value.
3641func (s *ExtendedS3DestinationUpdate) SetProcessingConfiguration(v *ProcessingConfiguration) *ExtendedS3DestinationUpdate {
3642	s.ProcessingConfiguration = v
3643	return s
3644}
3645
3646// SetRoleARN sets the RoleARN field's value.
3647func (s *ExtendedS3DestinationUpdate) SetRoleARN(v string) *ExtendedS3DestinationUpdate {
3648	s.RoleARN = &v
3649	return s
3650}
3651
3652// SetS3BackupMode sets the S3BackupMode field's value.
3653func (s *ExtendedS3DestinationUpdate) SetS3BackupMode(v string) *ExtendedS3DestinationUpdate {
3654	s.S3BackupMode = &v
3655	return s
3656}
3657
3658// SetS3BackupUpdate sets the S3BackupUpdate field's value.
3659func (s *ExtendedS3DestinationUpdate) SetS3BackupUpdate(v *S3DestinationUpdate) *ExtendedS3DestinationUpdate {
3660	s.S3BackupUpdate = v
3661	return s
3662}
3663
3664// Provides details in case one of the following operations fails due to an
3665// error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, StartDeliveryStreamEncryption,
3666// StopDeliveryStreamEncryption.
3667type FailureDescription struct {
3668	_ struct{} `type:"structure"`
3669
3670	// A message providing details about the error that caused the failure.
3671	//
3672	// Details is a required field
3673	Details *string `min:"1" type:"string" required:"true"`
3674
3675	// The type of error that caused the failure.
3676	//
3677	// Type is a required field
3678	Type *string `type:"string" required:"true" enum:"DeliveryStreamFailureType"`
3679}
3680
3681// String returns the string representation
3682func (s FailureDescription) String() string {
3683	return awsutil.Prettify(s)
3684}
3685
3686// GoString returns the string representation
3687func (s FailureDescription) GoString() string {
3688	return s.String()
3689}
3690
3691// SetDetails sets the Details field's value.
3692func (s *FailureDescription) SetDetails(v string) *FailureDescription {
3693	s.Details = &v
3694	return s
3695}
3696
3697// SetType sets the Type field's value.
3698func (s *FailureDescription) SetType(v string) *FailureDescription {
3699	s.Type = &v
3700	return s
3701}
3702
3703// The native Hive / HCatalog JsonSerDe. Used by Kinesis Data Firehose for deserializing
3704// data, which means converting it from the JSON format in preparation for serializing
3705// it to the Parquet or ORC format. This is one of two deserializers you can
3706// choose, depending on which one offers the functionality you need. The other
3707// option is the OpenX SerDe.
3708type HiveJsonSerDe struct {
3709	_ struct{} `type:"structure"`
3710
3711	// Indicates how you want Kinesis Data Firehose to parse the date and timestamps
3712	// that may be present in your input data JSON. To specify these format strings,
3713	// follow the pattern syntax of JodaTime's DateTimeFormat format strings. For
3714	// more information, see Class DateTimeFormat (https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html).
3715	// You can also use the special value millis to parse timestamps in epoch milliseconds.
3716	// If you don't specify a format, Kinesis Data Firehose uses java.sql.Timestamp::valueOf
3717	// by default.
3718	TimestampFormats []*string `type:"list"`
3719}
3720
3721// String returns the string representation
3722func (s HiveJsonSerDe) String() string {
3723	return awsutil.Prettify(s)
3724}
3725
3726// GoString returns the string representation
3727func (s HiveJsonSerDe) GoString() string {
3728	return s.String()
3729}
3730
3731// SetTimestampFormats sets the TimestampFormats field's value.
3732func (s *HiveJsonSerDe) SetTimestampFormats(v []*string) *HiveJsonSerDe {
3733	s.TimestampFormats = v
3734	return s
3735}
3736
3737// Describes the buffering options that can be applied before data is delivered
3738// to the HTTP endpoint destination. Kinesis Data Firehose treats these options
3739// as hints, and it might choose to use more optimal values. The SizeInMBs and
3740// IntervalInSeconds parameters are optional. However, if specify a value for
3741// one of them, you must also provide a value for the other.
3742type HttpEndpointBufferingHints struct {
3743	_ struct{} `type:"structure"`
3744
3745	// Buffer incoming data for the specified period of time, in seconds, before
3746	// delivering it to the destination. The default value is 300 (5 minutes).
3747	IntervalInSeconds *int64 `min:"60" type:"integer"`
3748
3749	// Buffer incoming data to the specified size, in MBs, before delivering it
3750	// to the destination. The default value is 5.
3751	//
3752	// We recommend setting this parameter to a value greater than the amount of
3753	// data you typically ingest into the delivery stream in 10 seconds. For example,
3754	// if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher.
3755	SizeInMBs *int64 `min:"1" type:"integer"`
3756}
3757
3758// String returns the string representation
3759func (s HttpEndpointBufferingHints) String() string {
3760	return awsutil.Prettify(s)
3761}
3762
3763// GoString returns the string representation
3764func (s HttpEndpointBufferingHints) GoString() string {
3765	return s.String()
3766}
3767
3768// Validate inspects the fields of the type to determine if they are valid.
3769func (s *HttpEndpointBufferingHints) Validate() error {
3770	invalidParams := request.ErrInvalidParams{Context: "HttpEndpointBufferingHints"}
3771	if s.IntervalInSeconds != nil && *s.IntervalInSeconds < 60 {
3772		invalidParams.Add(request.NewErrParamMinValue("IntervalInSeconds", 60))
3773	}
3774	if s.SizeInMBs != nil && *s.SizeInMBs < 1 {
3775		invalidParams.Add(request.NewErrParamMinValue("SizeInMBs", 1))
3776	}
3777
3778	if invalidParams.Len() > 0 {
3779		return invalidParams
3780	}
3781	return nil
3782}
3783
3784// SetIntervalInSeconds sets the IntervalInSeconds field's value.
3785func (s *HttpEndpointBufferingHints) SetIntervalInSeconds(v int64) *HttpEndpointBufferingHints {
3786	s.IntervalInSeconds = &v
3787	return s
3788}
3789
3790// SetSizeInMBs sets the SizeInMBs field's value.
3791func (s *HttpEndpointBufferingHints) SetSizeInMBs(v int64) *HttpEndpointBufferingHints {
3792	s.SizeInMBs = &v
3793	return s
3794}
3795
3796// Describes the metadata that's delivered to the specified HTTP endpoint destination.
3797type HttpEndpointCommonAttribute struct {
3798	_ struct{} `type:"structure"`
3799
3800	// The name of the HTTP endpoint common attribute.
3801	//
3802	// AttributeName is a required field
3803	AttributeName *string `min:"1" type:"string" required:"true" sensitive:"true"`
3804
3805	// The value of the HTTP endpoint common attribute.
3806	//
3807	// AttributeValue is a required field
3808	AttributeValue *string `type:"string" required:"true" sensitive:"true"`
3809}
3810
3811// String returns the string representation
3812func (s HttpEndpointCommonAttribute) String() string {
3813	return awsutil.Prettify(s)
3814}
3815
3816// GoString returns the string representation
3817func (s HttpEndpointCommonAttribute) GoString() string {
3818	return s.String()
3819}
3820
3821// Validate inspects the fields of the type to determine if they are valid.
3822func (s *HttpEndpointCommonAttribute) Validate() error {
3823	invalidParams := request.ErrInvalidParams{Context: "HttpEndpointCommonAttribute"}
3824	if s.AttributeName == nil {
3825		invalidParams.Add(request.NewErrParamRequired("AttributeName"))
3826	}
3827	if s.AttributeName != nil && len(*s.AttributeName) < 1 {
3828		invalidParams.Add(request.NewErrParamMinLen("AttributeName", 1))
3829	}
3830	if s.AttributeValue == nil {
3831		invalidParams.Add(request.NewErrParamRequired("AttributeValue"))
3832	}
3833
3834	if invalidParams.Len() > 0 {
3835		return invalidParams
3836	}
3837	return nil
3838}
3839
3840// SetAttributeName sets the AttributeName field's value.
3841func (s *HttpEndpointCommonAttribute) SetAttributeName(v string) *HttpEndpointCommonAttribute {
3842	s.AttributeName = &v
3843	return s
3844}
3845
3846// SetAttributeValue sets the AttributeValue field's value.
3847func (s *HttpEndpointCommonAttribute) SetAttributeValue(v string) *HttpEndpointCommonAttribute {
3848	s.AttributeValue = &v
3849	return s
3850}
3851
3852// Describes the configuration of the HTTP endpoint to which Kinesis Firehose
3853// delivers data.
3854type HttpEndpointConfiguration struct {
3855	_ struct{} `type:"structure"`
3856
3857	// The access key required for Kinesis Firehose to authenticate with the HTTP
3858	// endpoint selected as the destination.
3859	AccessKey *string `type:"string" sensitive:"true"`
3860
3861	// The name of the HTTP endpoint selected as the destination.
3862	Name *string `min:"1" type:"string"`
3863
3864	// The URL of the HTTP endpoint selected as the destination.
3865	//
3866	// Url is a required field
3867	Url *string `min:"1" type:"string" required:"true" sensitive:"true"`
3868}
3869
3870// String returns the string representation
3871func (s HttpEndpointConfiguration) String() string {
3872	return awsutil.Prettify(s)
3873}
3874
3875// GoString returns the string representation
3876func (s HttpEndpointConfiguration) GoString() string {
3877	return s.String()
3878}
3879
3880// Validate inspects the fields of the type to determine if they are valid.
3881func (s *HttpEndpointConfiguration) Validate() error {
3882	invalidParams := request.ErrInvalidParams{Context: "HttpEndpointConfiguration"}
3883	if s.Name != nil && len(*s.Name) < 1 {
3884		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
3885	}
3886	if s.Url == nil {
3887		invalidParams.Add(request.NewErrParamRequired("Url"))
3888	}
3889	if s.Url != nil && len(*s.Url) < 1 {
3890		invalidParams.Add(request.NewErrParamMinLen("Url", 1))
3891	}
3892
3893	if invalidParams.Len() > 0 {
3894		return invalidParams
3895	}
3896	return nil
3897}
3898
3899// SetAccessKey sets the AccessKey field's value.
3900func (s *HttpEndpointConfiguration) SetAccessKey(v string) *HttpEndpointConfiguration {
3901	s.AccessKey = &v
3902	return s
3903}
3904
3905// SetName sets the Name field's value.
3906func (s *HttpEndpointConfiguration) SetName(v string) *HttpEndpointConfiguration {
3907	s.Name = &v
3908	return s
3909}
3910
3911// SetUrl sets the Url field's value.
3912func (s *HttpEndpointConfiguration) SetUrl(v string) *HttpEndpointConfiguration {
3913	s.Url = &v
3914	return s
3915}
3916
3917// Describes the HTTP endpoint selected as the destination.
3918type HttpEndpointDescription struct {
3919	_ struct{} `type:"structure"`
3920
3921	// The name of the HTTP endpoint selected as the destination.
3922	Name *string `min:"1" type:"string"`
3923
3924	// The URL of the HTTP endpoint selected as the destination.
3925	Url *string `min:"1" type:"string" sensitive:"true"`
3926}
3927
3928// String returns the string representation
3929func (s HttpEndpointDescription) String() string {
3930	return awsutil.Prettify(s)
3931}
3932
3933// GoString returns the string representation
3934func (s HttpEndpointDescription) GoString() string {
3935	return s.String()
3936}
3937
3938// SetName sets the Name field's value.
3939func (s *HttpEndpointDescription) SetName(v string) *HttpEndpointDescription {
3940	s.Name = &v
3941	return s
3942}
3943
3944// SetUrl sets the Url field's value.
3945func (s *HttpEndpointDescription) SetUrl(v string) *HttpEndpointDescription {
3946	s.Url = &v
3947	return s
3948}
3949
3950// Describes the configuration of the HTTP endpoint destination.
3951type HttpEndpointDestinationConfiguration struct {
3952	_ struct{} `type:"structure"`
3953
3954	// The buffering options that can be used before data is delivered to the specified
3955	// destination. Kinesis Data Firehose treats these options as hints, and it
3956	// might choose to use more optimal values. The SizeInMBs and IntervalInSeconds
3957	// parameters are optional. However, if you specify a value for one of them,
3958	// you must also provide a value for the other.
3959	BufferingHints *HttpEndpointBufferingHints `type:"structure"`
3960
3961	// Describes the Amazon CloudWatch logging options for your delivery stream.
3962	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
3963
3964	// The configuration of the HTTP endpoint selected as the destination.
3965	//
3966	// EndpointConfiguration is a required field
3967	EndpointConfiguration *HttpEndpointConfiguration `type:"structure" required:"true"`
3968
3969	// Describes a data processing configuration.
3970	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
3971
3972	// The configuration of the requeste sent to the HTTP endpoint specified as
3973	// the destination.
3974	RequestConfiguration *HttpEndpointRequestConfiguration `type:"structure"`
3975
3976	// Describes the retry behavior in case Kinesis Data Firehose is unable to deliver
3977	// data to the specified HTTP endpoint destination, or if it doesn't receive
3978	// a valid acknowledgment of receipt from the specified HTTP endpoint destination.
3979	RetryOptions *HttpEndpointRetryOptions `type:"structure"`
3980
3981	// Kinesis Data Firehose uses this IAM role for all the permissions that the
3982	// delivery stream needs.
3983	RoleARN *string `min:"1" type:"string"`
3984
3985	// Describes the S3 bucket backup options for the data that Kinesis Data Firehose
3986	// delivers to the HTTP endpoint destination. You can back up all documents
3987	// (AllData) or only the documents that Kinesis Data Firehose could not deliver
3988	// to the specified HTTP endpoint destination (FailedDataOnly).
3989	S3BackupMode *string `type:"string" enum:"HttpEndpointS3BackupMode"`
3990
3991	// Describes the configuration of a destination in Amazon S3.
3992	//
3993	// S3Configuration is a required field
3994	S3Configuration *S3DestinationConfiguration `type:"structure" required:"true"`
3995}
3996
3997// String returns the string representation
3998func (s HttpEndpointDestinationConfiguration) String() string {
3999	return awsutil.Prettify(s)
4000}
4001
4002// GoString returns the string representation
4003func (s HttpEndpointDestinationConfiguration) GoString() string {
4004	return s.String()
4005}
4006
4007// Validate inspects the fields of the type to determine if they are valid.
4008func (s *HttpEndpointDestinationConfiguration) Validate() error {
4009	invalidParams := request.ErrInvalidParams{Context: "HttpEndpointDestinationConfiguration"}
4010	if s.EndpointConfiguration == nil {
4011		invalidParams.Add(request.NewErrParamRequired("EndpointConfiguration"))
4012	}
4013	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
4014		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
4015	}
4016	if s.S3Configuration == nil {
4017		invalidParams.Add(request.NewErrParamRequired("S3Configuration"))
4018	}
4019	if s.BufferingHints != nil {
4020		if err := s.BufferingHints.Validate(); err != nil {
4021			invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
4022		}
4023	}
4024	if s.EndpointConfiguration != nil {
4025		if err := s.EndpointConfiguration.Validate(); err != nil {
4026			invalidParams.AddNested("EndpointConfiguration", err.(request.ErrInvalidParams))
4027		}
4028	}
4029	if s.ProcessingConfiguration != nil {
4030		if err := s.ProcessingConfiguration.Validate(); err != nil {
4031			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
4032		}
4033	}
4034	if s.RequestConfiguration != nil {
4035		if err := s.RequestConfiguration.Validate(); err != nil {
4036			invalidParams.AddNested("RequestConfiguration", err.(request.ErrInvalidParams))
4037		}
4038	}
4039	if s.S3Configuration != nil {
4040		if err := s.S3Configuration.Validate(); err != nil {
4041			invalidParams.AddNested("S3Configuration", err.(request.ErrInvalidParams))
4042		}
4043	}
4044
4045	if invalidParams.Len() > 0 {
4046		return invalidParams
4047	}
4048	return nil
4049}
4050
4051// SetBufferingHints sets the BufferingHints field's value.
4052func (s *HttpEndpointDestinationConfiguration) SetBufferingHints(v *HttpEndpointBufferingHints) *HttpEndpointDestinationConfiguration {
4053	s.BufferingHints = v
4054	return s
4055}
4056
4057// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
4058func (s *HttpEndpointDestinationConfiguration) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *HttpEndpointDestinationConfiguration {
4059	s.CloudWatchLoggingOptions = v
4060	return s
4061}
4062
4063// SetEndpointConfiguration sets the EndpointConfiguration field's value.
4064func (s *HttpEndpointDestinationConfiguration) SetEndpointConfiguration(v *HttpEndpointConfiguration) *HttpEndpointDestinationConfiguration {
4065	s.EndpointConfiguration = v
4066	return s
4067}
4068
4069// SetProcessingConfiguration sets the ProcessingConfiguration field's value.
4070func (s *HttpEndpointDestinationConfiguration) SetProcessingConfiguration(v *ProcessingConfiguration) *HttpEndpointDestinationConfiguration {
4071	s.ProcessingConfiguration = v
4072	return s
4073}
4074
4075// SetRequestConfiguration sets the RequestConfiguration field's value.
4076func (s *HttpEndpointDestinationConfiguration) SetRequestConfiguration(v *HttpEndpointRequestConfiguration) *HttpEndpointDestinationConfiguration {
4077	s.RequestConfiguration = v
4078	return s
4079}
4080
4081// SetRetryOptions sets the RetryOptions field's value.
4082func (s *HttpEndpointDestinationConfiguration) SetRetryOptions(v *HttpEndpointRetryOptions) *HttpEndpointDestinationConfiguration {
4083	s.RetryOptions = v
4084	return s
4085}
4086
4087// SetRoleARN sets the RoleARN field's value.
4088func (s *HttpEndpointDestinationConfiguration) SetRoleARN(v string) *HttpEndpointDestinationConfiguration {
4089	s.RoleARN = &v
4090	return s
4091}
4092
4093// SetS3BackupMode sets the S3BackupMode field's value.
4094func (s *HttpEndpointDestinationConfiguration) SetS3BackupMode(v string) *HttpEndpointDestinationConfiguration {
4095	s.S3BackupMode = &v
4096	return s
4097}
4098
4099// SetS3Configuration sets the S3Configuration field's value.
4100func (s *HttpEndpointDestinationConfiguration) SetS3Configuration(v *S3DestinationConfiguration) *HttpEndpointDestinationConfiguration {
4101	s.S3Configuration = v
4102	return s
4103}
4104
4105// Describes the HTTP endpoint destination.
4106type HttpEndpointDestinationDescription struct {
4107	_ struct{} `type:"structure"`
4108
4109	// Describes buffering options that can be applied to the data before it is
4110	// delivered to the HTTPS endpoint destination. Kinesis Data Firehose teats
4111	// these options as hints, and it might choose to use more optimal values. The
4112	// SizeInMBs and IntervalInSeconds parameters are optional. However, if specify
4113	// a value for one of them, you must also provide a value for the other.
4114	BufferingHints *HttpEndpointBufferingHints `type:"structure"`
4115
4116	// Describes the Amazon CloudWatch logging options for your delivery stream.
4117	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
4118
4119	// The configuration of the specified HTTP endpoint destination.
4120	EndpointConfiguration *HttpEndpointDescription `type:"structure"`
4121
4122	// Describes a data processing configuration.
4123	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
4124
4125	// The configuration of request sent to the HTTP endpoint specified as the destination.
4126	RequestConfiguration *HttpEndpointRequestConfiguration `type:"structure"`
4127
4128	// Describes the retry behavior in case Kinesis Data Firehose is unable to deliver
4129	// data to the specified HTTP endpoint destination, or if it doesn't receive
4130	// a valid acknowledgment of receipt from the specified HTTP endpoint destination.
4131	RetryOptions *HttpEndpointRetryOptions `type:"structure"`
4132
4133	// Kinesis Data Firehose uses this IAM role for all the permissions that the
4134	// delivery stream needs.
4135	RoleARN *string `min:"1" type:"string"`
4136
4137	// Describes the S3 bucket backup options for the data that Kinesis Firehose
4138	// delivers to the HTTP endpoint destination. You can back up all documents
4139	// (AllData) or only the documents that Kinesis Data Firehose could not deliver
4140	// to the specified HTTP endpoint destination (FailedDataOnly).
4141	S3BackupMode *string `type:"string" enum:"HttpEndpointS3BackupMode"`
4142
4143	// Describes a destination in Amazon S3.
4144	S3DestinationDescription *S3DestinationDescription `type:"structure"`
4145}
4146
4147// String returns the string representation
4148func (s HttpEndpointDestinationDescription) String() string {
4149	return awsutil.Prettify(s)
4150}
4151
4152// GoString returns the string representation
4153func (s HttpEndpointDestinationDescription) GoString() string {
4154	return s.String()
4155}
4156
4157// SetBufferingHints sets the BufferingHints field's value.
4158func (s *HttpEndpointDestinationDescription) SetBufferingHints(v *HttpEndpointBufferingHints) *HttpEndpointDestinationDescription {
4159	s.BufferingHints = v
4160	return s
4161}
4162
4163// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
4164func (s *HttpEndpointDestinationDescription) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *HttpEndpointDestinationDescription {
4165	s.CloudWatchLoggingOptions = v
4166	return s
4167}
4168
4169// SetEndpointConfiguration sets the EndpointConfiguration field's value.
4170func (s *HttpEndpointDestinationDescription) SetEndpointConfiguration(v *HttpEndpointDescription) *HttpEndpointDestinationDescription {
4171	s.EndpointConfiguration = v
4172	return s
4173}
4174
4175// SetProcessingConfiguration sets the ProcessingConfiguration field's value.
4176func (s *HttpEndpointDestinationDescription) SetProcessingConfiguration(v *ProcessingConfiguration) *HttpEndpointDestinationDescription {
4177	s.ProcessingConfiguration = v
4178	return s
4179}
4180
4181// SetRequestConfiguration sets the RequestConfiguration field's value.
4182func (s *HttpEndpointDestinationDescription) SetRequestConfiguration(v *HttpEndpointRequestConfiguration) *HttpEndpointDestinationDescription {
4183	s.RequestConfiguration = v
4184	return s
4185}
4186
4187// SetRetryOptions sets the RetryOptions field's value.
4188func (s *HttpEndpointDestinationDescription) SetRetryOptions(v *HttpEndpointRetryOptions) *HttpEndpointDestinationDescription {
4189	s.RetryOptions = v
4190	return s
4191}
4192
4193// SetRoleARN sets the RoleARN field's value.
4194func (s *HttpEndpointDestinationDescription) SetRoleARN(v string) *HttpEndpointDestinationDescription {
4195	s.RoleARN = &v
4196	return s
4197}
4198
4199// SetS3BackupMode sets the S3BackupMode field's value.
4200func (s *HttpEndpointDestinationDescription) SetS3BackupMode(v string) *HttpEndpointDestinationDescription {
4201	s.S3BackupMode = &v
4202	return s
4203}
4204
4205// SetS3DestinationDescription sets the S3DestinationDescription field's value.
4206func (s *HttpEndpointDestinationDescription) SetS3DestinationDescription(v *S3DestinationDescription) *HttpEndpointDestinationDescription {
4207	s.S3DestinationDescription = v
4208	return s
4209}
4210
4211// Updates the specified HTTP endpoint destination.
4212type HttpEndpointDestinationUpdate struct {
4213	_ struct{} `type:"structure"`
4214
4215	// Describes buffering options that can be applied to the data before it is
4216	// delivered to the HTTPS endpoint destination. Kinesis Data Firehose teats
4217	// these options as hints, and it might choose to use more optimal values. The
4218	// SizeInMBs and IntervalInSeconds parameters are optional. However, if specify
4219	// a value for one of them, you must also provide a value for the other.
4220	BufferingHints *HttpEndpointBufferingHints `type:"structure"`
4221
4222	// Describes the Amazon CloudWatch logging options for your delivery stream.
4223	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
4224
4225	// Describes the configuration of the HTTP endpoint destination.
4226	EndpointConfiguration *HttpEndpointConfiguration `type:"structure"`
4227
4228	// Describes a data processing configuration.
4229	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
4230
4231	// The configuration of the request sent to the HTTP endpoint specified as the
4232	// destination.
4233	RequestConfiguration *HttpEndpointRequestConfiguration `type:"structure"`
4234
4235	// Describes the retry behavior in case Kinesis Data Firehose is unable to deliver
4236	// data to the specified HTTP endpoint destination, or if it doesn't receive
4237	// a valid acknowledgment of receipt from the specified HTTP endpoint destination.
4238	RetryOptions *HttpEndpointRetryOptions `type:"structure"`
4239
4240	// Kinesis Data Firehose uses this IAM role for all the permissions that the
4241	// delivery stream needs.
4242	RoleARN *string `min:"1" type:"string"`
4243
4244	// Describes the S3 bucket backup options for the data that Kinesis Firehose
4245	// delivers to the HTTP endpoint destination. You can back up all documents
4246	// (AllData) or only the documents that Kinesis Data Firehose could not deliver
4247	// to the specified HTTP endpoint destination (FailedDataOnly).
4248	S3BackupMode *string `type:"string" enum:"HttpEndpointS3BackupMode"`
4249
4250	// Describes an update for a destination in Amazon S3.
4251	S3Update *S3DestinationUpdate `type:"structure"`
4252}
4253
4254// String returns the string representation
4255func (s HttpEndpointDestinationUpdate) String() string {
4256	return awsutil.Prettify(s)
4257}
4258
4259// GoString returns the string representation
4260func (s HttpEndpointDestinationUpdate) GoString() string {
4261	return s.String()
4262}
4263
4264// Validate inspects the fields of the type to determine if they are valid.
4265func (s *HttpEndpointDestinationUpdate) Validate() error {
4266	invalidParams := request.ErrInvalidParams{Context: "HttpEndpointDestinationUpdate"}
4267	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
4268		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
4269	}
4270	if s.BufferingHints != nil {
4271		if err := s.BufferingHints.Validate(); err != nil {
4272			invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
4273		}
4274	}
4275	if s.EndpointConfiguration != nil {
4276		if err := s.EndpointConfiguration.Validate(); err != nil {
4277			invalidParams.AddNested("EndpointConfiguration", err.(request.ErrInvalidParams))
4278		}
4279	}
4280	if s.ProcessingConfiguration != nil {
4281		if err := s.ProcessingConfiguration.Validate(); err != nil {
4282			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
4283		}
4284	}
4285	if s.RequestConfiguration != nil {
4286		if err := s.RequestConfiguration.Validate(); err != nil {
4287			invalidParams.AddNested("RequestConfiguration", err.(request.ErrInvalidParams))
4288		}
4289	}
4290	if s.S3Update != nil {
4291		if err := s.S3Update.Validate(); err != nil {
4292			invalidParams.AddNested("S3Update", err.(request.ErrInvalidParams))
4293		}
4294	}
4295
4296	if invalidParams.Len() > 0 {
4297		return invalidParams
4298	}
4299	return nil
4300}
4301
4302// SetBufferingHints sets the BufferingHints field's value.
4303func (s *HttpEndpointDestinationUpdate) SetBufferingHints(v *HttpEndpointBufferingHints) *HttpEndpointDestinationUpdate {
4304	s.BufferingHints = v
4305	return s
4306}
4307
4308// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
4309func (s *HttpEndpointDestinationUpdate) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *HttpEndpointDestinationUpdate {
4310	s.CloudWatchLoggingOptions = v
4311	return s
4312}
4313
4314// SetEndpointConfiguration sets the EndpointConfiguration field's value.
4315func (s *HttpEndpointDestinationUpdate) SetEndpointConfiguration(v *HttpEndpointConfiguration) *HttpEndpointDestinationUpdate {
4316	s.EndpointConfiguration = v
4317	return s
4318}
4319
4320// SetProcessingConfiguration sets the ProcessingConfiguration field's value.
4321func (s *HttpEndpointDestinationUpdate) SetProcessingConfiguration(v *ProcessingConfiguration) *HttpEndpointDestinationUpdate {
4322	s.ProcessingConfiguration = v
4323	return s
4324}
4325
4326// SetRequestConfiguration sets the RequestConfiguration field's value.
4327func (s *HttpEndpointDestinationUpdate) SetRequestConfiguration(v *HttpEndpointRequestConfiguration) *HttpEndpointDestinationUpdate {
4328	s.RequestConfiguration = v
4329	return s
4330}
4331
4332// SetRetryOptions sets the RetryOptions field's value.
4333func (s *HttpEndpointDestinationUpdate) SetRetryOptions(v *HttpEndpointRetryOptions) *HttpEndpointDestinationUpdate {
4334	s.RetryOptions = v
4335	return s
4336}
4337
4338// SetRoleARN sets the RoleARN field's value.
4339func (s *HttpEndpointDestinationUpdate) SetRoleARN(v string) *HttpEndpointDestinationUpdate {
4340	s.RoleARN = &v
4341	return s
4342}
4343
4344// SetS3BackupMode sets the S3BackupMode field's value.
4345func (s *HttpEndpointDestinationUpdate) SetS3BackupMode(v string) *HttpEndpointDestinationUpdate {
4346	s.S3BackupMode = &v
4347	return s
4348}
4349
4350// SetS3Update sets the S3Update field's value.
4351func (s *HttpEndpointDestinationUpdate) SetS3Update(v *S3DestinationUpdate) *HttpEndpointDestinationUpdate {
4352	s.S3Update = v
4353	return s
4354}
4355
4356// The configuration of the HTTP endpoint request.
4357type HttpEndpointRequestConfiguration struct {
4358	_ struct{} `type:"structure"`
4359
4360	// Describes the metadata sent to the HTTP endpoint destination.
4361	CommonAttributes []*HttpEndpointCommonAttribute `type:"list"`
4362
4363	// Kinesis Data Firehose uses the content encoding to compress the body of a
4364	// request before sending the request to the destination. For more information,
4365	// see Content-Encoding (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding)
4366	// in MDN Web Docs, the official Mozilla documentation.
4367	ContentEncoding *string `type:"string" enum:"ContentEncoding"`
4368}
4369
4370// String returns the string representation
4371func (s HttpEndpointRequestConfiguration) String() string {
4372	return awsutil.Prettify(s)
4373}
4374
4375// GoString returns the string representation
4376func (s HttpEndpointRequestConfiguration) GoString() string {
4377	return s.String()
4378}
4379
4380// Validate inspects the fields of the type to determine if they are valid.
4381func (s *HttpEndpointRequestConfiguration) Validate() error {
4382	invalidParams := request.ErrInvalidParams{Context: "HttpEndpointRequestConfiguration"}
4383	if s.CommonAttributes != nil {
4384		for i, v := range s.CommonAttributes {
4385			if v == nil {
4386				continue
4387			}
4388			if err := v.Validate(); err != nil {
4389				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CommonAttributes", i), err.(request.ErrInvalidParams))
4390			}
4391		}
4392	}
4393
4394	if invalidParams.Len() > 0 {
4395		return invalidParams
4396	}
4397	return nil
4398}
4399
4400// SetCommonAttributes sets the CommonAttributes field's value.
4401func (s *HttpEndpointRequestConfiguration) SetCommonAttributes(v []*HttpEndpointCommonAttribute) *HttpEndpointRequestConfiguration {
4402	s.CommonAttributes = v
4403	return s
4404}
4405
4406// SetContentEncoding sets the ContentEncoding field's value.
4407func (s *HttpEndpointRequestConfiguration) SetContentEncoding(v string) *HttpEndpointRequestConfiguration {
4408	s.ContentEncoding = &v
4409	return s
4410}
4411
4412// Describes the retry behavior in case Kinesis Data Firehose is unable to deliver
4413// data to the specified HTTP endpoint destination, or if it doesn't receive
4414// a valid acknowledgment of receipt from the specified HTTP endpoint destination.
4415type HttpEndpointRetryOptions struct {
4416	_ struct{} `type:"structure"`
4417
4418	// The total amount of time that Kinesis Data Firehose spends on retries. This
4419	// duration starts after the initial attempt to send data to the custom destination
4420	// via HTTPS endpoint fails. It doesn't include the periods during which Kinesis
4421	// Data Firehose waits for acknowledgment from the specified destination after
4422	// each attempt.
4423	DurationInSeconds *int64 `type:"integer"`
4424}
4425
4426// String returns the string representation
4427func (s HttpEndpointRetryOptions) String() string {
4428	return awsutil.Prettify(s)
4429}
4430
4431// GoString returns the string representation
4432func (s HttpEndpointRetryOptions) GoString() string {
4433	return s.String()
4434}
4435
4436// SetDurationInSeconds sets the DurationInSeconds field's value.
4437func (s *HttpEndpointRetryOptions) SetDurationInSeconds(v int64) *HttpEndpointRetryOptions {
4438	s.DurationInSeconds = &v
4439	return s
4440}
4441
4442// Specifies the deserializer you want to use to convert the format of the input
4443// data. This parameter is required if Enabled is set to true.
4444type InputFormatConfiguration struct {
4445	_ struct{} `type:"structure"`
4446
4447	// Specifies which deserializer to use. You can choose either the Apache Hive
4448	// JSON SerDe or the OpenX JSON SerDe. If both are non-null, the server rejects
4449	// the request.
4450	Deserializer *Deserializer `type:"structure"`
4451}
4452
4453// String returns the string representation
4454func (s InputFormatConfiguration) String() string {
4455	return awsutil.Prettify(s)
4456}
4457
4458// GoString returns the string representation
4459func (s InputFormatConfiguration) GoString() string {
4460	return s.String()
4461}
4462
4463// SetDeserializer sets the Deserializer field's value.
4464func (s *InputFormatConfiguration) SetDeserializer(v *Deserializer) *InputFormatConfiguration {
4465	s.Deserializer = v
4466	return s
4467}
4468
4469// The specified input parameter has a value that is not valid.
4470type InvalidArgumentException struct {
4471	_            struct{}                  `type:"structure"`
4472	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4473
4474	// A message that provides information about the error.
4475	Message_ *string `locationName:"message" type:"string"`
4476}
4477
4478// String returns the string representation
4479func (s InvalidArgumentException) String() string {
4480	return awsutil.Prettify(s)
4481}
4482
4483// GoString returns the string representation
4484func (s InvalidArgumentException) GoString() string {
4485	return s.String()
4486}
4487
4488func newErrorInvalidArgumentException(v protocol.ResponseMetadata) error {
4489	return &InvalidArgumentException{
4490		RespMetadata: v,
4491	}
4492}
4493
4494// Code returns the exception type name.
4495func (s *InvalidArgumentException) Code() string {
4496	return "InvalidArgumentException"
4497}
4498
4499// Message returns the exception's message.
4500func (s *InvalidArgumentException) Message() string {
4501	if s.Message_ != nil {
4502		return *s.Message_
4503	}
4504	return ""
4505}
4506
4507// OrigErr always returns nil, satisfies awserr.Error interface.
4508func (s *InvalidArgumentException) OrigErr() error {
4509	return nil
4510}
4511
4512func (s *InvalidArgumentException) Error() string {
4513	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4514}
4515
4516// Status code returns the HTTP status code for the request's response error.
4517func (s *InvalidArgumentException) StatusCode() int {
4518	return s.RespMetadata.StatusCode
4519}
4520
4521// RequestID returns the service's response RequestID for request.
4522func (s *InvalidArgumentException) RequestID() string {
4523	return s.RespMetadata.RequestID
4524}
4525
4526// Kinesis Data Firehose throws this exception when an attempt to put records
4527// or to start or stop delivery stream encryption fails. This happens when the
4528// KMS service throws one of the following exception types: AccessDeniedException,
4529// InvalidStateException, DisabledException, or NotFoundException.
4530type InvalidKMSResourceException struct {
4531	_            struct{}                  `type:"structure"`
4532	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4533
4534	Code_ *string `locationName:"code" type:"string"`
4535
4536	Message_ *string `locationName:"message" type:"string"`
4537}
4538
4539// String returns the string representation
4540func (s InvalidKMSResourceException) String() string {
4541	return awsutil.Prettify(s)
4542}
4543
4544// GoString returns the string representation
4545func (s InvalidKMSResourceException) GoString() string {
4546	return s.String()
4547}
4548
4549func newErrorInvalidKMSResourceException(v protocol.ResponseMetadata) error {
4550	return &InvalidKMSResourceException{
4551		RespMetadata: v,
4552	}
4553}
4554
4555// Code returns the exception type name.
4556func (s *InvalidKMSResourceException) Code() string {
4557	return "InvalidKMSResourceException"
4558}
4559
4560// Message returns the exception's message.
4561func (s *InvalidKMSResourceException) Message() string {
4562	if s.Message_ != nil {
4563		return *s.Message_
4564	}
4565	return ""
4566}
4567
4568// OrigErr always returns nil, satisfies awserr.Error interface.
4569func (s *InvalidKMSResourceException) OrigErr() error {
4570	return nil
4571}
4572
4573func (s *InvalidKMSResourceException) Error() string {
4574	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
4575}
4576
4577// Status code returns the HTTP status code for the request's response error.
4578func (s *InvalidKMSResourceException) StatusCode() int {
4579	return s.RespMetadata.StatusCode
4580}
4581
4582// RequestID returns the service's response RequestID for request.
4583func (s *InvalidKMSResourceException) RequestID() string {
4584	return s.RespMetadata.RequestID
4585}
4586
4587// Describes an encryption key for a destination in Amazon S3.
4588type KMSEncryptionConfig struct {
4589	_ struct{} `type:"structure"`
4590
4591	// The Amazon Resource Name (ARN) of the encryption key. Must belong to the
4592	// same AWS Region as the destination Amazon S3 bucket. For more information,
4593	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
4594	//
4595	// AWSKMSKeyARN is a required field
4596	AWSKMSKeyARN *string `min:"1" type:"string" required:"true"`
4597}
4598
4599// String returns the string representation
4600func (s KMSEncryptionConfig) String() string {
4601	return awsutil.Prettify(s)
4602}
4603
4604// GoString returns the string representation
4605func (s KMSEncryptionConfig) GoString() string {
4606	return s.String()
4607}
4608
4609// Validate inspects the fields of the type to determine if they are valid.
4610func (s *KMSEncryptionConfig) Validate() error {
4611	invalidParams := request.ErrInvalidParams{Context: "KMSEncryptionConfig"}
4612	if s.AWSKMSKeyARN == nil {
4613		invalidParams.Add(request.NewErrParamRequired("AWSKMSKeyARN"))
4614	}
4615	if s.AWSKMSKeyARN != nil && len(*s.AWSKMSKeyARN) < 1 {
4616		invalidParams.Add(request.NewErrParamMinLen("AWSKMSKeyARN", 1))
4617	}
4618
4619	if invalidParams.Len() > 0 {
4620		return invalidParams
4621	}
4622	return nil
4623}
4624
4625// SetAWSKMSKeyARN sets the AWSKMSKeyARN field's value.
4626func (s *KMSEncryptionConfig) SetAWSKMSKeyARN(v string) *KMSEncryptionConfig {
4627	s.AWSKMSKeyARN = &v
4628	return s
4629}
4630
4631// The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream
4632// used as the source for a delivery stream.
4633type KinesisStreamSourceConfiguration struct {
4634	_ struct{} `type:"structure"`
4635
4636	// The ARN of the source Kinesis data stream. For more information, see Amazon
4637	// Kinesis Data Streams ARN Format (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-kinesis-streams).
4638	//
4639	// KinesisStreamARN is a required field
4640	KinesisStreamARN *string `min:"1" type:"string" required:"true"`
4641
4642	// The ARN of the role that provides access to the source Kinesis data stream.
4643	// For more information, see AWS Identity and Access Management (IAM) ARN Format
4644	// (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arn-syntax-iam).
4645	//
4646	// RoleARN is a required field
4647	RoleARN *string `min:"1" type:"string" required:"true"`
4648}
4649
4650// String returns the string representation
4651func (s KinesisStreamSourceConfiguration) String() string {
4652	return awsutil.Prettify(s)
4653}
4654
4655// GoString returns the string representation
4656func (s KinesisStreamSourceConfiguration) GoString() string {
4657	return s.String()
4658}
4659
4660// Validate inspects the fields of the type to determine if they are valid.
4661func (s *KinesisStreamSourceConfiguration) Validate() error {
4662	invalidParams := request.ErrInvalidParams{Context: "KinesisStreamSourceConfiguration"}
4663	if s.KinesisStreamARN == nil {
4664		invalidParams.Add(request.NewErrParamRequired("KinesisStreamARN"))
4665	}
4666	if s.KinesisStreamARN != nil && len(*s.KinesisStreamARN) < 1 {
4667		invalidParams.Add(request.NewErrParamMinLen("KinesisStreamARN", 1))
4668	}
4669	if s.RoleARN == nil {
4670		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
4671	}
4672	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
4673		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
4674	}
4675
4676	if invalidParams.Len() > 0 {
4677		return invalidParams
4678	}
4679	return nil
4680}
4681
4682// SetKinesisStreamARN sets the KinesisStreamARN field's value.
4683func (s *KinesisStreamSourceConfiguration) SetKinesisStreamARN(v string) *KinesisStreamSourceConfiguration {
4684	s.KinesisStreamARN = &v
4685	return s
4686}
4687
4688// SetRoleARN sets the RoleARN field's value.
4689func (s *KinesisStreamSourceConfiguration) SetRoleARN(v string) *KinesisStreamSourceConfiguration {
4690	s.RoleARN = &v
4691	return s
4692}
4693
4694// Details about a Kinesis data stream used as the source for a Kinesis Data
4695// Firehose delivery stream.
4696type KinesisStreamSourceDescription struct {
4697	_ struct{} `type:"structure"`
4698
4699	// Kinesis Data Firehose starts retrieving records from the Kinesis data stream
4700	// starting with this timestamp.
4701	DeliveryStartTimestamp *time.Time `type:"timestamp"`
4702
4703	// The Amazon Resource Name (ARN) of the source Kinesis data stream. For more
4704	// 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).
4705	KinesisStreamARN *string `min:"1" type:"string"`
4706
4707	// The ARN of the role used by the source Kinesis data stream. For more information,
4708	// 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).
4709	RoleARN *string `min:"1" type:"string"`
4710}
4711
4712// String returns the string representation
4713func (s KinesisStreamSourceDescription) String() string {
4714	return awsutil.Prettify(s)
4715}
4716
4717// GoString returns the string representation
4718func (s KinesisStreamSourceDescription) GoString() string {
4719	return s.String()
4720}
4721
4722// SetDeliveryStartTimestamp sets the DeliveryStartTimestamp field's value.
4723func (s *KinesisStreamSourceDescription) SetDeliveryStartTimestamp(v time.Time) *KinesisStreamSourceDescription {
4724	s.DeliveryStartTimestamp = &v
4725	return s
4726}
4727
4728// SetKinesisStreamARN sets the KinesisStreamARN field's value.
4729func (s *KinesisStreamSourceDescription) SetKinesisStreamARN(v string) *KinesisStreamSourceDescription {
4730	s.KinesisStreamARN = &v
4731	return s
4732}
4733
4734// SetRoleARN sets the RoleARN field's value.
4735func (s *KinesisStreamSourceDescription) SetRoleARN(v string) *KinesisStreamSourceDescription {
4736	s.RoleARN = &v
4737	return s
4738}
4739
4740// You have already reached the limit for a requested resource.
4741type LimitExceededException struct {
4742	_            struct{}                  `type:"structure"`
4743	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4744
4745	// A message that provides information about the error.
4746	Message_ *string `locationName:"message" type:"string"`
4747}
4748
4749// String returns the string representation
4750func (s LimitExceededException) String() string {
4751	return awsutil.Prettify(s)
4752}
4753
4754// GoString returns the string representation
4755func (s LimitExceededException) GoString() string {
4756	return s.String()
4757}
4758
4759func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
4760	return &LimitExceededException{
4761		RespMetadata: v,
4762	}
4763}
4764
4765// Code returns the exception type name.
4766func (s *LimitExceededException) Code() string {
4767	return "LimitExceededException"
4768}
4769
4770// Message returns the exception's message.
4771func (s *LimitExceededException) Message() string {
4772	if s.Message_ != nil {
4773		return *s.Message_
4774	}
4775	return ""
4776}
4777
4778// OrigErr always returns nil, satisfies awserr.Error interface.
4779func (s *LimitExceededException) OrigErr() error {
4780	return nil
4781}
4782
4783func (s *LimitExceededException) Error() string {
4784	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4785}
4786
4787// Status code returns the HTTP status code for the request's response error.
4788func (s *LimitExceededException) StatusCode() int {
4789	return s.RespMetadata.StatusCode
4790}
4791
4792// RequestID returns the service's response RequestID for request.
4793func (s *LimitExceededException) RequestID() string {
4794	return s.RespMetadata.RequestID
4795}
4796
4797type ListDeliveryStreamsInput struct {
4798	_ struct{} `type:"structure"`
4799
4800	// The delivery stream type. This can be one of the following values:
4801	//
4802	//    * DirectPut: Provider applications access the delivery stream directly.
4803	//
4804	//    * KinesisStreamAsSource: The delivery stream uses a Kinesis data stream
4805	//    as a source.
4806	//
4807	// This parameter is optional. If this parameter is omitted, delivery streams
4808	// of all types are returned.
4809	DeliveryStreamType *string `type:"string" enum:"DeliveryStreamType"`
4810
4811	// The list of delivery streams returned by this call to ListDeliveryStreams
4812	// will start with the delivery stream whose name comes alphabetically immediately
4813	// after the name you specify in ExclusiveStartDeliveryStreamName.
4814	ExclusiveStartDeliveryStreamName *string `min:"1" type:"string"`
4815
4816	// The maximum number of delivery streams to list. The default value is 10.
4817	Limit *int64 `min:"1" type:"integer"`
4818}
4819
4820// String returns the string representation
4821func (s ListDeliveryStreamsInput) String() string {
4822	return awsutil.Prettify(s)
4823}
4824
4825// GoString returns the string representation
4826func (s ListDeliveryStreamsInput) GoString() string {
4827	return s.String()
4828}
4829
4830// Validate inspects the fields of the type to determine if they are valid.
4831func (s *ListDeliveryStreamsInput) Validate() error {
4832	invalidParams := request.ErrInvalidParams{Context: "ListDeliveryStreamsInput"}
4833	if s.ExclusiveStartDeliveryStreamName != nil && len(*s.ExclusiveStartDeliveryStreamName) < 1 {
4834		invalidParams.Add(request.NewErrParamMinLen("ExclusiveStartDeliveryStreamName", 1))
4835	}
4836	if s.Limit != nil && *s.Limit < 1 {
4837		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
4838	}
4839
4840	if invalidParams.Len() > 0 {
4841		return invalidParams
4842	}
4843	return nil
4844}
4845
4846// SetDeliveryStreamType sets the DeliveryStreamType field's value.
4847func (s *ListDeliveryStreamsInput) SetDeliveryStreamType(v string) *ListDeliveryStreamsInput {
4848	s.DeliveryStreamType = &v
4849	return s
4850}
4851
4852// SetExclusiveStartDeliveryStreamName sets the ExclusiveStartDeliveryStreamName field's value.
4853func (s *ListDeliveryStreamsInput) SetExclusiveStartDeliveryStreamName(v string) *ListDeliveryStreamsInput {
4854	s.ExclusiveStartDeliveryStreamName = &v
4855	return s
4856}
4857
4858// SetLimit sets the Limit field's value.
4859func (s *ListDeliveryStreamsInput) SetLimit(v int64) *ListDeliveryStreamsInput {
4860	s.Limit = &v
4861	return s
4862}
4863
4864type ListDeliveryStreamsOutput struct {
4865	_ struct{} `type:"structure"`
4866
4867	// The names of the delivery streams.
4868	//
4869	// DeliveryStreamNames is a required field
4870	DeliveryStreamNames []*string `type:"list" required:"true"`
4871
4872	// Indicates whether there are more delivery streams available to list.
4873	//
4874	// HasMoreDeliveryStreams is a required field
4875	HasMoreDeliveryStreams *bool `type:"boolean" required:"true"`
4876}
4877
4878// String returns the string representation
4879func (s ListDeliveryStreamsOutput) String() string {
4880	return awsutil.Prettify(s)
4881}
4882
4883// GoString returns the string representation
4884func (s ListDeliveryStreamsOutput) GoString() string {
4885	return s.String()
4886}
4887
4888// SetDeliveryStreamNames sets the DeliveryStreamNames field's value.
4889func (s *ListDeliveryStreamsOutput) SetDeliveryStreamNames(v []*string) *ListDeliveryStreamsOutput {
4890	s.DeliveryStreamNames = v
4891	return s
4892}
4893
4894// SetHasMoreDeliveryStreams sets the HasMoreDeliveryStreams field's value.
4895func (s *ListDeliveryStreamsOutput) SetHasMoreDeliveryStreams(v bool) *ListDeliveryStreamsOutput {
4896	s.HasMoreDeliveryStreams = &v
4897	return s
4898}
4899
4900type ListTagsForDeliveryStreamInput struct {
4901	_ struct{} `type:"structure"`
4902
4903	// The name of the delivery stream whose tags you want to list.
4904	//
4905	// DeliveryStreamName is a required field
4906	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
4907
4908	// The key to use as the starting point for the list of tags. If you set this
4909	// parameter, ListTagsForDeliveryStream gets all tags that occur after ExclusiveStartTagKey.
4910	ExclusiveStartTagKey *string `min:"1" type:"string"`
4911
4912	// The number of tags to return. If this number is less than the total number
4913	// of tags associated with the delivery stream, HasMoreTags is set to true in
4914	// the response. To list additional tags, set ExclusiveStartTagKey to the last
4915	// key in the response.
4916	Limit *int64 `min:"1" type:"integer"`
4917}
4918
4919// String returns the string representation
4920func (s ListTagsForDeliveryStreamInput) String() string {
4921	return awsutil.Prettify(s)
4922}
4923
4924// GoString returns the string representation
4925func (s ListTagsForDeliveryStreamInput) GoString() string {
4926	return s.String()
4927}
4928
4929// Validate inspects the fields of the type to determine if they are valid.
4930func (s *ListTagsForDeliveryStreamInput) Validate() error {
4931	invalidParams := request.ErrInvalidParams{Context: "ListTagsForDeliveryStreamInput"}
4932	if s.DeliveryStreamName == nil {
4933		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
4934	}
4935	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
4936		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
4937	}
4938	if s.ExclusiveStartTagKey != nil && len(*s.ExclusiveStartTagKey) < 1 {
4939		invalidParams.Add(request.NewErrParamMinLen("ExclusiveStartTagKey", 1))
4940	}
4941	if s.Limit != nil && *s.Limit < 1 {
4942		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
4943	}
4944
4945	if invalidParams.Len() > 0 {
4946		return invalidParams
4947	}
4948	return nil
4949}
4950
4951// SetDeliveryStreamName sets the DeliveryStreamName field's value.
4952func (s *ListTagsForDeliveryStreamInput) SetDeliveryStreamName(v string) *ListTagsForDeliveryStreamInput {
4953	s.DeliveryStreamName = &v
4954	return s
4955}
4956
4957// SetExclusiveStartTagKey sets the ExclusiveStartTagKey field's value.
4958func (s *ListTagsForDeliveryStreamInput) SetExclusiveStartTagKey(v string) *ListTagsForDeliveryStreamInput {
4959	s.ExclusiveStartTagKey = &v
4960	return s
4961}
4962
4963// SetLimit sets the Limit field's value.
4964func (s *ListTagsForDeliveryStreamInput) SetLimit(v int64) *ListTagsForDeliveryStreamInput {
4965	s.Limit = &v
4966	return s
4967}
4968
4969type ListTagsForDeliveryStreamOutput struct {
4970	_ struct{} `type:"structure"`
4971
4972	// If this is true in the response, more tags are available. To list the remaining
4973	// tags, set ExclusiveStartTagKey to the key of the last tag returned and call
4974	// ListTagsForDeliveryStream again.
4975	//
4976	// HasMoreTags is a required field
4977	HasMoreTags *bool `type:"boolean" required:"true"`
4978
4979	// A list of tags associated with DeliveryStreamName, starting with the first
4980	// tag after ExclusiveStartTagKey and up to the specified Limit.
4981	//
4982	// Tags is a required field
4983	Tags []*Tag `type:"list" required:"true"`
4984}
4985
4986// String returns the string representation
4987func (s ListTagsForDeliveryStreamOutput) String() string {
4988	return awsutil.Prettify(s)
4989}
4990
4991// GoString returns the string representation
4992func (s ListTagsForDeliveryStreamOutput) GoString() string {
4993	return s.String()
4994}
4995
4996// SetHasMoreTags sets the HasMoreTags field's value.
4997func (s *ListTagsForDeliveryStreamOutput) SetHasMoreTags(v bool) *ListTagsForDeliveryStreamOutput {
4998	s.HasMoreTags = &v
4999	return s
5000}
5001
5002// SetTags sets the Tags field's value.
5003func (s *ListTagsForDeliveryStreamOutput) SetTags(v []*Tag) *ListTagsForDeliveryStreamOutput {
5004	s.Tags = v
5005	return s
5006}
5007
5008// The OpenX SerDe. Used by Kinesis Data Firehose for deserializing data, which
5009// means converting it from the JSON format in preparation for serializing it
5010// to the Parquet or ORC format. This is one of two deserializers you can choose,
5011// depending on which one offers the functionality you need. The other option
5012// is the native Hive / HCatalog JsonSerDe.
5013type OpenXJsonSerDe struct {
5014	_ struct{} `type:"structure"`
5015
5016	// When set to true, which is the default, Kinesis Data Firehose converts JSON
5017	// keys to lowercase before deserializing them.
5018	CaseInsensitive *bool `type:"boolean"`
5019
5020	// Maps column names to JSON keys that aren't identical to the column names.
5021	// This is useful when the JSON contains keys that are Hive keywords. For example,
5022	// timestamp is a Hive keyword. If you have a JSON key named timestamp, set
5023	// this parameter to {"ts": "timestamp"} to map this key to a column named ts.
5024	ColumnToJsonKeyMappings map[string]*string `type:"map"`
5025
5026	// When set to true, specifies that the names of the keys include dots and that
5027	// you want Kinesis Data Firehose to replace them with underscores. This is
5028	// useful because Apache Hive does not allow dots in column names. For example,
5029	// if the JSON contains a key whose name is "a.b", you can define the column
5030	// name to be "a_b" when using this option.
5031	//
5032	// The default is false.
5033	ConvertDotsInJsonKeysToUnderscores *bool `type:"boolean"`
5034}
5035
5036// String returns the string representation
5037func (s OpenXJsonSerDe) String() string {
5038	return awsutil.Prettify(s)
5039}
5040
5041// GoString returns the string representation
5042func (s OpenXJsonSerDe) GoString() string {
5043	return s.String()
5044}
5045
5046// SetCaseInsensitive sets the CaseInsensitive field's value.
5047func (s *OpenXJsonSerDe) SetCaseInsensitive(v bool) *OpenXJsonSerDe {
5048	s.CaseInsensitive = &v
5049	return s
5050}
5051
5052// SetColumnToJsonKeyMappings sets the ColumnToJsonKeyMappings field's value.
5053func (s *OpenXJsonSerDe) SetColumnToJsonKeyMappings(v map[string]*string) *OpenXJsonSerDe {
5054	s.ColumnToJsonKeyMappings = v
5055	return s
5056}
5057
5058// SetConvertDotsInJsonKeysToUnderscores sets the ConvertDotsInJsonKeysToUnderscores field's value.
5059func (s *OpenXJsonSerDe) SetConvertDotsInJsonKeysToUnderscores(v bool) *OpenXJsonSerDe {
5060	s.ConvertDotsInJsonKeysToUnderscores = &v
5061	return s
5062}
5063
5064// A serializer to use for converting data to the ORC format before storing
5065// it in Amazon S3. For more information, see Apache ORC (https://orc.apache.org/docs/).
5066type OrcSerDe struct {
5067	_ struct{} `type:"structure"`
5068
5069	// The Hadoop Distributed File System (HDFS) block size. This is useful if you
5070	// intend to copy the data from Amazon S3 to HDFS before querying. The default
5071	// is 256 MiB and the minimum is 64 MiB. Kinesis Data Firehose uses this value
5072	// for padding calculations.
5073	BlockSizeBytes *int64 `min:"6.7108864e+07" type:"integer"`
5074
5075	// The column names for which you want Kinesis Data Firehose to create bloom
5076	// filters. The default is null.
5077	BloomFilterColumns []*string `type:"list"`
5078
5079	// The Bloom filter false positive probability (FPP). The lower the FPP, the
5080	// bigger the Bloom filter. The default value is 0.05, the minimum is 0, and
5081	// the maximum is 1.
5082	BloomFilterFalsePositiveProbability *float64 `type:"double"`
5083
5084	// The compression code to use over data blocks. The default is SNAPPY.
5085	Compression *string `type:"string" enum:"OrcCompression"`
5086
5087	// Represents the fraction of the total number of non-null rows. To turn off
5088	// dictionary encoding, set this fraction to a number that is less than the
5089	// number of distinct keys in a dictionary. To always use dictionary encoding,
5090	// set this threshold to 1.
5091	DictionaryKeyThreshold *float64 `type:"double"`
5092
5093	// Set this to true to indicate that you want stripes to be padded to the HDFS
5094	// block boundaries. This is useful if you intend to copy the data from Amazon
5095	// S3 to HDFS before querying. The default is false.
5096	EnablePadding *bool `type:"boolean"`
5097
5098	// The version of the file to write. The possible values are V0_11 and V0_12.
5099	// The default is V0_12.
5100	FormatVersion *string `type:"string" enum:"OrcFormatVersion"`
5101
5102	// A number between 0 and 1 that defines the tolerance for block padding as
5103	// a decimal fraction of stripe size. The default value is 0.05, which means
5104	// 5 percent of stripe size.
5105	//
5106	// For the default values of 64 MiB ORC stripes and 256 MiB HDFS blocks, the
5107	// default block padding tolerance of 5 percent reserves a maximum of 3.2 MiB
5108	// for padding within the 256 MiB block. In such a case, if the available size
5109	// within the block is more than 3.2 MiB, a new, smaller stripe is inserted
5110	// to fit within that space. This ensures that no stripe crosses block boundaries
5111	// and causes remote reads within a node-local task.
5112	//
5113	// Kinesis Data Firehose ignores this parameter when OrcSerDe$EnablePadding
5114	// is false.
5115	PaddingTolerance *float64 `type:"double"`
5116
5117	// The number of rows between index entries. The default is 10,000 and the minimum
5118	// is 1,000.
5119	RowIndexStride *int64 `min:"1000" type:"integer"`
5120
5121	// The number of bytes in each stripe. The default is 64 MiB and the minimum
5122	// is 8 MiB.
5123	StripeSizeBytes *int64 `min:"8.388608e+06" type:"integer"`
5124}
5125
5126// String returns the string representation
5127func (s OrcSerDe) String() string {
5128	return awsutil.Prettify(s)
5129}
5130
5131// GoString returns the string representation
5132func (s OrcSerDe) GoString() string {
5133	return s.String()
5134}
5135
5136// Validate inspects the fields of the type to determine if they are valid.
5137func (s *OrcSerDe) Validate() error {
5138	invalidParams := request.ErrInvalidParams{Context: "OrcSerDe"}
5139	if s.BlockSizeBytes != nil && *s.BlockSizeBytes < 6.7108864e+07 {
5140		invalidParams.Add(request.NewErrParamMinValue("BlockSizeBytes", 6.7108864e+07))
5141	}
5142	if s.RowIndexStride != nil && *s.RowIndexStride < 1000 {
5143		invalidParams.Add(request.NewErrParamMinValue("RowIndexStride", 1000))
5144	}
5145	if s.StripeSizeBytes != nil && *s.StripeSizeBytes < 8.388608e+06 {
5146		invalidParams.Add(request.NewErrParamMinValue("StripeSizeBytes", 8.388608e+06))
5147	}
5148
5149	if invalidParams.Len() > 0 {
5150		return invalidParams
5151	}
5152	return nil
5153}
5154
5155// SetBlockSizeBytes sets the BlockSizeBytes field's value.
5156func (s *OrcSerDe) SetBlockSizeBytes(v int64) *OrcSerDe {
5157	s.BlockSizeBytes = &v
5158	return s
5159}
5160
5161// SetBloomFilterColumns sets the BloomFilterColumns field's value.
5162func (s *OrcSerDe) SetBloomFilterColumns(v []*string) *OrcSerDe {
5163	s.BloomFilterColumns = v
5164	return s
5165}
5166
5167// SetBloomFilterFalsePositiveProbability sets the BloomFilterFalsePositiveProbability field's value.
5168func (s *OrcSerDe) SetBloomFilterFalsePositiveProbability(v float64) *OrcSerDe {
5169	s.BloomFilterFalsePositiveProbability = &v
5170	return s
5171}
5172
5173// SetCompression sets the Compression field's value.
5174func (s *OrcSerDe) SetCompression(v string) *OrcSerDe {
5175	s.Compression = &v
5176	return s
5177}
5178
5179// SetDictionaryKeyThreshold sets the DictionaryKeyThreshold field's value.
5180func (s *OrcSerDe) SetDictionaryKeyThreshold(v float64) *OrcSerDe {
5181	s.DictionaryKeyThreshold = &v
5182	return s
5183}
5184
5185// SetEnablePadding sets the EnablePadding field's value.
5186func (s *OrcSerDe) SetEnablePadding(v bool) *OrcSerDe {
5187	s.EnablePadding = &v
5188	return s
5189}
5190
5191// SetFormatVersion sets the FormatVersion field's value.
5192func (s *OrcSerDe) SetFormatVersion(v string) *OrcSerDe {
5193	s.FormatVersion = &v
5194	return s
5195}
5196
5197// SetPaddingTolerance sets the PaddingTolerance field's value.
5198func (s *OrcSerDe) SetPaddingTolerance(v float64) *OrcSerDe {
5199	s.PaddingTolerance = &v
5200	return s
5201}
5202
5203// SetRowIndexStride sets the RowIndexStride field's value.
5204func (s *OrcSerDe) SetRowIndexStride(v int64) *OrcSerDe {
5205	s.RowIndexStride = &v
5206	return s
5207}
5208
5209// SetStripeSizeBytes sets the StripeSizeBytes field's value.
5210func (s *OrcSerDe) SetStripeSizeBytes(v int64) *OrcSerDe {
5211	s.StripeSizeBytes = &v
5212	return s
5213}
5214
5215// Specifies the serializer that you want Kinesis Data Firehose to use to convert
5216// the format of your data before it writes it to Amazon S3. This parameter
5217// is required if Enabled is set to true.
5218type OutputFormatConfiguration struct {
5219	_ struct{} `type:"structure"`
5220
5221	// Specifies which serializer to use. You can choose either the ORC SerDe or
5222	// the Parquet SerDe. If both are non-null, the server rejects the request.
5223	Serializer *Serializer `type:"structure"`
5224}
5225
5226// String returns the string representation
5227func (s OutputFormatConfiguration) String() string {
5228	return awsutil.Prettify(s)
5229}
5230
5231// GoString returns the string representation
5232func (s OutputFormatConfiguration) GoString() string {
5233	return s.String()
5234}
5235
5236// Validate inspects the fields of the type to determine if they are valid.
5237func (s *OutputFormatConfiguration) Validate() error {
5238	invalidParams := request.ErrInvalidParams{Context: "OutputFormatConfiguration"}
5239	if s.Serializer != nil {
5240		if err := s.Serializer.Validate(); err != nil {
5241			invalidParams.AddNested("Serializer", err.(request.ErrInvalidParams))
5242		}
5243	}
5244
5245	if invalidParams.Len() > 0 {
5246		return invalidParams
5247	}
5248	return nil
5249}
5250
5251// SetSerializer sets the Serializer field's value.
5252func (s *OutputFormatConfiguration) SetSerializer(v *Serializer) *OutputFormatConfiguration {
5253	s.Serializer = v
5254	return s
5255}
5256
5257// A serializer to use for converting data to the Parquet format before storing
5258// it in Amazon S3. For more information, see Apache Parquet (https://parquet.apache.org/documentation/latest/).
5259type ParquetSerDe struct {
5260	_ struct{} `type:"structure"`
5261
5262	// The Hadoop Distributed File System (HDFS) block size. This is useful if you
5263	// intend to copy the data from Amazon S3 to HDFS before querying. The default
5264	// is 256 MiB and the minimum is 64 MiB. Kinesis Data Firehose uses this value
5265	// for padding calculations.
5266	BlockSizeBytes *int64 `min:"6.7108864e+07" type:"integer"`
5267
5268	// The compression code to use over data blocks. The possible values are UNCOMPRESSED,
5269	// SNAPPY, and GZIP, with the default being SNAPPY. Use SNAPPY for higher decompression
5270	// speed. Use GZIP if the compression ratio is more important than speed.
5271	Compression *string `type:"string" enum:"ParquetCompression"`
5272
5273	// Indicates whether to enable dictionary compression.
5274	EnableDictionaryCompression *bool `type:"boolean"`
5275
5276	// The maximum amount of padding to apply. This is useful if you intend to copy
5277	// the data from Amazon S3 to HDFS before querying. The default is 0.
5278	MaxPaddingBytes *int64 `type:"integer"`
5279
5280	// The Parquet page size. Column chunks are divided into pages. A page is conceptually
5281	// an indivisible unit (in terms of compression and encoding). The minimum value
5282	// is 64 KiB and the default is 1 MiB.
5283	PageSizeBytes *int64 `min:"65536" type:"integer"`
5284
5285	// Indicates the version of row format to output. The possible values are V1
5286	// and V2. The default is V1.
5287	WriterVersion *string `type:"string" enum:"ParquetWriterVersion"`
5288}
5289
5290// String returns the string representation
5291func (s ParquetSerDe) String() string {
5292	return awsutil.Prettify(s)
5293}
5294
5295// GoString returns the string representation
5296func (s ParquetSerDe) GoString() string {
5297	return s.String()
5298}
5299
5300// Validate inspects the fields of the type to determine if they are valid.
5301func (s *ParquetSerDe) Validate() error {
5302	invalidParams := request.ErrInvalidParams{Context: "ParquetSerDe"}
5303	if s.BlockSizeBytes != nil && *s.BlockSizeBytes < 6.7108864e+07 {
5304		invalidParams.Add(request.NewErrParamMinValue("BlockSizeBytes", 6.7108864e+07))
5305	}
5306	if s.PageSizeBytes != nil && *s.PageSizeBytes < 65536 {
5307		invalidParams.Add(request.NewErrParamMinValue("PageSizeBytes", 65536))
5308	}
5309
5310	if invalidParams.Len() > 0 {
5311		return invalidParams
5312	}
5313	return nil
5314}
5315
5316// SetBlockSizeBytes sets the BlockSizeBytes field's value.
5317func (s *ParquetSerDe) SetBlockSizeBytes(v int64) *ParquetSerDe {
5318	s.BlockSizeBytes = &v
5319	return s
5320}
5321
5322// SetCompression sets the Compression field's value.
5323func (s *ParquetSerDe) SetCompression(v string) *ParquetSerDe {
5324	s.Compression = &v
5325	return s
5326}
5327
5328// SetEnableDictionaryCompression sets the EnableDictionaryCompression field's value.
5329func (s *ParquetSerDe) SetEnableDictionaryCompression(v bool) *ParquetSerDe {
5330	s.EnableDictionaryCompression = &v
5331	return s
5332}
5333
5334// SetMaxPaddingBytes sets the MaxPaddingBytes field's value.
5335func (s *ParquetSerDe) SetMaxPaddingBytes(v int64) *ParquetSerDe {
5336	s.MaxPaddingBytes = &v
5337	return s
5338}
5339
5340// SetPageSizeBytes sets the PageSizeBytes field's value.
5341func (s *ParquetSerDe) SetPageSizeBytes(v int64) *ParquetSerDe {
5342	s.PageSizeBytes = &v
5343	return s
5344}
5345
5346// SetWriterVersion sets the WriterVersion field's value.
5347func (s *ParquetSerDe) SetWriterVersion(v string) *ParquetSerDe {
5348	s.WriterVersion = &v
5349	return s
5350}
5351
5352// Describes a data processing configuration.
5353type ProcessingConfiguration struct {
5354	_ struct{} `type:"structure"`
5355
5356	// Enables or disables data processing.
5357	Enabled *bool `type:"boolean"`
5358
5359	// The data processors.
5360	Processors []*Processor `type:"list"`
5361}
5362
5363// String returns the string representation
5364func (s ProcessingConfiguration) String() string {
5365	return awsutil.Prettify(s)
5366}
5367
5368// GoString returns the string representation
5369func (s ProcessingConfiguration) GoString() string {
5370	return s.String()
5371}
5372
5373// Validate inspects the fields of the type to determine if they are valid.
5374func (s *ProcessingConfiguration) Validate() error {
5375	invalidParams := request.ErrInvalidParams{Context: "ProcessingConfiguration"}
5376	if s.Processors != nil {
5377		for i, v := range s.Processors {
5378			if v == nil {
5379				continue
5380			}
5381			if err := v.Validate(); err != nil {
5382				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Processors", i), err.(request.ErrInvalidParams))
5383			}
5384		}
5385	}
5386
5387	if invalidParams.Len() > 0 {
5388		return invalidParams
5389	}
5390	return nil
5391}
5392
5393// SetEnabled sets the Enabled field's value.
5394func (s *ProcessingConfiguration) SetEnabled(v bool) *ProcessingConfiguration {
5395	s.Enabled = &v
5396	return s
5397}
5398
5399// SetProcessors sets the Processors field's value.
5400func (s *ProcessingConfiguration) SetProcessors(v []*Processor) *ProcessingConfiguration {
5401	s.Processors = v
5402	return s
5403}
5404
5405// Describes a data processor.
5406type Processor struct {
5407	_ struct{} `type:"structure"`
5408
5409	// The processor parameters.
5410	Parameters []*ProcessorParameter `type:"list"`
5411
5412	// The type of processor.
5413	//
5414	// Type is a required field
5415	Type *string `type:"string" required:"true" enum:"ProcessorType"`
5416}
5417
5418// String returns the string representation
5419func (s Processor) String() string {
5420	return awsutil.Prettify(s)
5421}
5422
5423// GoString returns the string representation
5424func (s Processor) GoString() string {
5425	return s.String()
5426}
5427
5428// Validate inspects the fields of the type to determine if they are valid.
5429func (s *Processor) Validate() error {
5430	invalidParams := request.ErrInvalidParams{Context: "Processor"}
5431	if s.Type == nil {
5432		invalidParams.Add(request.NewErrParamRequired("Type"))
5433	}
5434	if s.Parameters != nil {
5435		for i, v := range s.Parameters {
5436			if v == nil {
5437				continue
5438			}
5439			if err := v.Validate(); err != nil {
5440				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Parameters", i), err.(request.ErrInvalidParams))
5441			}
5442		}
5443	}
5444
5445	if invalidParams.Len() > 0 {
5446		return invalidParams
5447	}
5448	return nil
5449}
5450
5451// SetParameters sets the Parameters field's value.
5452func (s *Processor) SetParameters(v []*ProcessorParameter) *Processor {
5453	s.Parameters = v
5454	return s
5455}
5456
5457// SetType sets the Type field's value.
5458func (s *Processor) SetType(v string) *Processor {
5459	s.Type = &v
5460	return s
5461}
5462
5463// Describes the processor parameter.
5464type ProcessorParameter struct {
5465	_ struct{} `type:"structure"`
5466
5467	// The name of the parameter.
5468	//
5469	// ParameterName is a required field
5470	ParameterName *string `type:"string" required:"true" enum:"ProcessorParameterName"`
5471
5472	// The parameter value.
5473	//
5474	// ParameterValue is a required field
5475	ParameterValue *string `min:"1" type:"string" required:"true"`
5476}
5477
5478// String returns the string representation
5479func (s ProcessorParameter) String() string {
5480	return awsutil.Prettify(s)
5481}
5482
5483// GoString returns the string representation
5484func (s ProcessorParameter) GoString() string {
5485	return s.String()
5486}
5487
5488// Validate inspects the fields of the type to determine if they are valid.
5489func (s *ProcessorParameter) Validate() error {
5490	invalidParams := request.ErrInvalidParams{Context: "ProcessorParameter"}
5491	if s.ParameterName == nil {
5492		invalidParams.Add(request.NewErrParamRequired("ParameterName"))
5493	}
5494	if s.ParameterValue == nil {
5495		invalidParams.Add(request.NewErrParamRequired("ParameterValue"))
5496	}
5497	if s.ParameterValue != nil && len(*s.ParameterValue) < 1 {
5498		invalidParams.Add(request.NewErrParamMinLen("ParameterValue", 1))
5499	}
5500
5501	if invalidParams.Len() > 0 {
5502		return invalidParams
5503	}
5504	return nil
5505}
5506
5507// SetParameterName sets the ParameterName field's value.
5508func (s *ProcessorParameter) SetParameterName(v string) *ProcessorParameter {
5509	s.ParameterName = &v
5510	return s
5511}
5512
5513// SetParameterValue sets the ParameterValue field's value.
5514func (s *ProcessorParameter) SetParameterValue(v string) *ProcessorParameter {
5515	s.ParameterValue = &v
5516	return s
5517}
5518
5519type PutRecordBatchInput struct {
5520	_ struct{} `type:"structure"`
5521
5522	// The name of the delivery stream.
5523	//
5524	// DeliveryStreamName is a required field
5525	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
5526
5527	// One or more records.
5528	//
5529	// Records is a required field
5530	Records []*Record `min:"1" type:"list" required:"true"`
5531}
5532
5533// String returns the string representation
5534func (s PutRecordBatchInput) String() string {
5535	return awsutil.Prettify(s)
5536}
5537
5538// GoString returns the string representation
5539func (s PutRecordBatchInput) GoString() string {
5540	return s.String()
5541}
5542
5543// Validate inspects the fields of the type to determine if they are valid.
5544func (s *PutRecordBatchInput) Validate() error {
5545	invalidParams := request.ErrInvalidParams{Context: "PutRecordBatchInput"}
5546	if s.DeliveryStreamName == nil {
5547		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
5548	}
5549	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
5550		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
5551	}
5552	if s.Records == nil {
5553		invalidParams.Add(request.NewErrParamRequired("Records"))
5554	}
5555	if s.Records != nil && len(s.Records) < 1 {
5556		invalidParams.Add(request.NewErrParamMinLen("Records", 1))
5557	}
5558	if s.Records != nil {
5559		for i, v := range s.Records {
5560			if v == nil {
5561				continue
5562			}
5563			if err := v.Validate(); err != nil {
5564				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Records", i), err.(request.ErrInvalidParams))
5565			}
5566		}
5567	}
5568
5569	if invalidParams.Len() > 0 {
5570		return invalidParams
5571	}
5572	return nil
5573}
5574
5575// SetDeliveryStreamName sets the DeliveryStreamName field's value.
5576func (s *PutRecordBatchInput) SetDeliveryStreamName(v string) *PutRecordBatchInput {
5577	s.DeliveryStreamName = &v
5578	return s
5579}
5580
5581// SetRecords sets the Records field's value.
5582func (s *PutRecordBatchInput) SetRecords(v []*Record) *PutRecordBatchInput {
5583	s.Records = v
5584	return s
5585}
5586
5587type PutRecordBatchOutput struct {
5588	_ struct{} `type:"structure"`
5589
5590	// Indicates whether server-side encryption (SSE) was enabled during this operation.
5591	Encrypted *bool `type:"boolean"`
5592
5593	// The number of records that might have failed processing. This number might
5594	// be greater than 0 even if the PutRecordBatch call succeeds. Check FailedPutCount
5595	// to determine whether there are records that you need to resend.
5596	//
5597	// FailedPutCount is a required field
5598	FailedPutCount *int64 `type:"integer" required:"true"`
5599
5600	// The results array. For each record, the index of the response element is
5601	// the same as the index used in the request array.
5602	//
5603	// RequestResponses is a required field
5604	RequestResponses []*PutRecordBatchResponseEntry `min:"1" type:"list" required:"true"`
5605}
5606
5607// String returns the string representation
5608func (s PutRecordBatchOutput) String() string {
5609	return awsutil.Prettify(s)
5610}
5611
5612// GoString returns the string representation
5613func (s PutRecordBatchOutput) GoString() string {
5614	return s.String()
5615}
5616
5617// SetEncrypted sets the Encrypted field's value.
5618func (s *PutRecordBatchOutput) SetEncrypted(v bool) *PutRecordBatchOutput {
5619	s.Encrypted = &v
5620	return s
5621}
5622
5623// SetFailedPutCount sets the FailedPutCount field's value.
5624func (s *PutRecordBatchOutput) SetFailedPutCount(v int64) *PutRecordBatchOutput {
5625	s.FailedPutCount = &v
5626	return s
5627}
5628
5629// SetRequestResponses sets the RequestResponses field's value.
5630func (s *PutRecordBatchOutput) SetRequestResponses(v []*PutRecordBatchResponseEntry) *PutRecordBatchOutput {
5631	s.RequestResponses = v
5632	return s
5633}
5634
5635// Contains the result for an individual record from a PutRecordBatch request.
5636// If the record is successfully added to your delivery stream, it receives
5637// a record ID. If the record fails to be added to your delivery stream, the
5638// result includes an error code and an error message.
5639type PutRecordBatchResponseEntry struct {
5640	_ struct{} `type:"structure"`
5641
5642	// The error code for an individual record result.
5643	ErrorCode *string `type:"string"`
5644
5645	// The error message for an individual record result.
5646	ErrorMessage *string `type:"string"`
5647
5648	// The ID of the record.
5649	RecordId *string `min:"1" type:"string"`
5650}
5651
5652// String returns the string representation
5653func (s PutRecordBatchResponseEntry) String() string {
5654	return awsutil.Prettify(s)
5655}
5656
5657// GoString returns the string representation
5658func (s PutRecordBatchResponseEntry) GoString() string {
5659	return s.String()
5660}
5661
5662// SetErrorCode sets the ErrorCode field's value.
5663func (s *PutRecordBatchResponseEntry) SetErrorCode(v string) *PutRecordBatchResponseEntry {
5664	s.ErrorCode = &v
5665	return s
5666}
5667
5668// SetErrorMessage sets the ErrorMessage field's value.
5669func (s *PutRecordBatchResponseEntry) SetErrorMessage(v string) *PutRecordBatchResponseEntry {
5670	s.ErrorMessage = &v
5671	return s
5672}
5673
5674// SetRecordId sets the RecordId field's value.
5675func (s *PutRecordBatchResponseEntry) SetRecordId(v string) *PutRecordBatchResponseEntry {
5676	s.RecordId = &v
5677	return s
5678}
5679
5680type PutRecordInput struct {
5681	_ struct{} `type:"structure"`
5682
5683	// The name of the delivery stream.
5684	//
5685	// DeliveryStreamName is a required field
5686	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
5687
5688	// The record.
5689	//
5690	// Record is a required field
5691	Record *Record `type:"structure" required:"true"`
5692}
5693
5694// String returns the string representation
5695func (s PutRecordInput) String() string {
5696	return awsutil.Prettify(s)
5697}
5698
5699// GoString returns the string representation
5700func (s PutRecordInput) GoString() string {
5701	return s.String()
5702}
5703
5704// Validate inspects the fields of the type to determine if they are valid.
5705func (s *PutRecordInput) Validate() error {
5706	invalidParams := request.ErrInvalidParams{Context: "PutRecordInput"}
5707	if s.DeliveryStreamName == nil {
5708		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
5709	}
5710	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
5711		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
5712	}
5713	if s.Record == nil {
5714		invalidParams.Add(request.NewErrParamRequired("Record"))
5715	}
5716	if s.Record != nil {
5717		if err := s.Record.Validate(); err != nil {
5718			invalidParams.AddNested("Record", err.(request.ErrInvalidParams))
5719		}
5720	}
5721
5722	if invalidParams.Len() > 0 {
5723		return invalidParams
5724	}
5725	return nil
5726}
5727
5728// SetDeliveryStreamName sets the DeliveryStreamName field's value.
5729func (s *PutRecordInput) SetDeliveryStreamName(v string) *PutRecordInput {
5730	s.DeliveryStreamName = &v
5731	return s
5732}
5733
5734// SetRecord sets the Record field's value.
5735func (s *PutRecordInput) SetRecord(v *Record) *PutRecordInput {
5736	s.Record = v
5737	return s
5738}
5739
5740type PutRecordOutput struct {
5741	_ struct{} `type:"structure"`
5742
5743	// Indicates whether server-side encryption (SSE) was enabled during this operation.
5744	Encrypted *bool `type:"boolean"`
5745
5746	// The ID of the record.
5747	//
5748	// RecordId is a required field
5749	RecordId *string `min:"1" type:"string" required:"true"`
5750}
5751
5752// String returns the string representation
5753func (s PutRecordOutput) String() string {
5754	return awsutil.Prettify(s)
5755}
5756
5757// GoString returns the string representation
5758func (s PutRecordOutput) GoString() string {
5759	return s.String()
5760}
5761
5762// SetEncrypted sets the Encrypted field's value.
5763func (s *PutRecordOutput) SetEncrypted(v bool) *PutRecordOutput {
5764	s.Encrypted = &v
5765	return s
5766}
5767
5768// SetRecordId sets the RecordId field's value.
5769func (s *PutRecordOutput) SetRecordId(v string) *PutRecordOutput {
5770	s.RecordId = &v
5771	return s
5772}
5773
5774// The unit of data in a delivery stream.
5775type Record struct {
5776	_ struct{} `type:"structure"`
5777
5778	// The data blob, which is base64-encoded when the blob is serialized. The maximum
5779	// size of the data blob, before base64-encoding, is 1,000 KiB.
5780	//
5781	// Data is automatically base64 encoded/decoded by the SDK.
5782	//
5783	// Data is a required field
5784	Data []byte `type:"blob" required:"true"`
5785}
5786
5787// String returns the string representation
5788func (s Record) String() string {
5789	return awsutil.Prettify(s)
5790}
5791
5792// GoString returns the string representation
5793func (s Record) GoString() string {
5794	return s.String()
5795}
5796
5797// Validate inspects the fields of the type to determine if they are valid.
5798func (s *Record) Validate() error {
5799	invalidParams := request.ErrInvalidParams{Context: "Record"}
5800	if s.Data == nil {
5801		invalidParams.Add(request.NewErrParamRequired("Data"))
5802	}
5803
5804	if invalidParams.Len() > 0 {
5805		return invalidParams
5806	}
5807	return nil
5808}
5809
5810// SetData sets the Data field's value.
5811func (s *Record) SetData(v []byte) *Record {
5812	s.Data = v
5813	return s
5814}
5815
5816// Describes the configuration of a destination in Amazon Redshift.
5817type RedshiftDestinationConfiguration struct {
5818	_ struct{} `type:"structure"`
5819
5820	// The CloudWatch logging options for your delivery stream.
5821	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
5822
5823	// The database connection string.
5824	//
5825	// ClusterJDBCURL is a required field
5826	ClusterJDBCURL *string `min:"1" type:"string" required:"true"`
5827
5828	// The COPY command.
5829	//
5830	// CopyCommand is a required field
5831	CopyCommand *CopyCommand `type:"structure" required:"true"`
5832
5833	// The user password.
5834	//
5835	// Password is a required field
5836	Password *string `min:"6" type:"string" required:"true" sensitive:"true"`
5837
5838	// The data processing configuration.
5839	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
5840
5841	// The retry behavior in case Kinesis Data Firehose is unable to deliver documents
5842	// to Amazon Redshift. Default value is 3600 (60 minutes).
5843	RetryOptions *RedshiftRetryOptions `type:"structure"`
5844
5845	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
5846	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
5847	//
5848	// RoleARN is a required field
5849	RoleARN *string `min:"1" type:"string" required:"true"`
5850
5851	// The configuration for backup in Amazon S3.
5852	S3BackupConfiguration *S3DestinationConfiguration `type:"structure"`
5853
5854	// The Amazon S3 backup mode. After you create a delivery stream, you can update
5855	// it to enable Amazon S3 backup if it is disabled. If backup is enabled, you
5856	// can't update the delivery stream to disable it.
5857	S3BackupMode *string `type:"string" enum:"RedshiftS3BackupMode"`
5858
5859	// The configuration for the intermediate Amazon S3 location from which Amazon
5860	// Redshift obtains data. Restrictions are described in the topic for CreateDeliveryStream.
5861	//
5862	// The compression formats SNAPPY or ZIP cannot be specified in RedshiftDestinationConfiguration.S3Configuration
5863	// because the Amazon Redshift COPY operation that reads from the S3 bucket
5864	// doesn't support these compression formats.
5865	//
5866	// S3Configuration is a required field
5867	S3Configuration *S3DestinationConfiguration `type:"structure" required:"true"`
5868
5869	// The name of the user.
5870	//
5871	// Username is a required field
5872	Username *string `min:"1" type:"string" required:"true" sensitive:"true"`
5873}
5874
5875// String returns the string representation
5876func (s RedshiftDestinationConfiguration) String() string {
5877	return awsutil.Prettify(s)
5878}
5879
5880// GoString returns the string representation
5881func (s RedshiftDestinationConfiguration) GoString() string {
5882	return s.String()
5883}
5884
5885// Validate inspects the fields of the type to determine if they are valid.
5886func (s *RedshiftDestinationConfiguration) Validate() error {
5887	invalidParams := request.ErrInvalidParams{Context: "RedshiftDestinationConfiguration"}
5888	if s.ClusterJDBCURL == nil {
5889		invalidParams.Add(request.NewErrParamRequired("ClusterJDBCURL"))
5890	}
5891	if s.ClusterJDBCURL != nil && len(*s.ClusterJDBCURL) < 1 {
5892		invalidParams.Add(request.NewErrParamMinLen("ClusterJDBCURL", 1))
5893	}
5894	if s.CopyCommand == nil {
5895		invalidParams.Add(request.NewErrParamRequired("CopyCommand"))
5896	}
5897	if s.Password == nil {
5898		invalidParams.Add(request.NewErrParamRequired("Password"))
5899	}
5900	if s.Password != nil && len(*s.Password) < 6 {
5901		invalidParams.Add(request.NewErrParamMinLen("Password", 6))
5902	}
5903	if s.RoleARN == nil {
5904		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
5905	}
5906	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
5907		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
5908	}
5909	if s.S3Configuration == nil {
5910		invalidParams.Add(request.NewErrParamRequired("S3Configuration"))
5911	}
5912	if s.Username == nil {
5913		invalidParams.Add(request.NewErrParamRequired("Username"))
5914	}
5915	if s.Username != nil && len(*s.Username) < 1 {
5916		invalidParams.Add(request.NewErrParamMinLen("Username", 1))
5917	}
5918	if s.CopyCommand != nil {
5919		if err := s.CopyCommand.Validate(); err != nil {
5920			invalidParams.AddNested("CopyCommand", err.(request.ErrInvalidParams))
5921		}
5922	}
5923	if s.ProcessingConfiguration != nil {
5924		if err := s.ProcessingConfiguration.Validate(); err != nil {
5925			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
5926		}
5927	}
5928	if s.S3BackupConfiguration != nil {
5929		if err := s.S3BackupConfiguration.Validate(); err != nil {
5930			invalidParams.AddNested("S3BackupConfiguration", err.(request.ErrInvalidParams))
5931		}
5932	}
5933	if s.S3Configuration != nil {
5934		if err := s.S3Configuration.Validate(); err != nil {
5935			invalidParams.AddNested("S3Configuration", err.(request.ErrInvalidParams))
5936		}
5937	}
5938
5939	if invalidParams.Len() > 0 {
5940		return invalidParams
5941	}
5942	return nil
5943}
5944
5945// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
5946func (s *RedshiftDestinationConfiguration) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *RedshiftDestinationConfiguration {
5947	s.CloudWatchLoggingOptions = v
5948	return s
5949}
5950
5951// SetClusterJDBCURL sets the ClusterJDBCURL field's value.
5952func (s *RedshiftDestinationConfiguration) SetClusterJDBCURL(v string) *RedshiftDestinationConfiguration {
5953	s.ClusterJDBCURL = &v
5954	return s
5955}
5956
5957// SetCopyCommand sets the CopyCommand field's value.
5958func (s *RedshiftDestinationConfiguration) SetCopyCommand(v *CopyCommand) *RedshiftDestinationConfiguration {
5959	s.CopyCommand = v
5960	return s
5961}
5962
5963// SetPassword sets the Password field's value.
5964func (s *RedshiftDestinationConfiguration) SetPassword(v string) *RedshiftDestinationConfiguration {
5965	s.Password = &v
5966	return s
5967}
5968
5969// SetProcessingConfiguration sets the ProcessingConfiguration field's value.
5970func (s *RedshiftDestinationConfiguration) SetProcessingConfiguration(v *ProcessingConfiguration) *RedshiftDestinationConfiguration {
5971	s.ProcessingConfiguration = v
5972	return s
5973}
5974
5975// SetRetryOptions sets the RetryOptions field's value.
5976func (s *RedshiftDestinationConfiguration) SetRetryOptions(v *RedshiftRetryOptions) *RedshiftDestinationConfiguration {
5977	s.RetryOptions = v
5978	return s
5979}
5980
5981// SetRoleARN sets the RoleARN field's value.
5982func (s *RedshiftDestinationConfiguration) SetRoleARN(v string) *RedshiftDestinationConfiguration {
5983	s.RoleARN = &v
5984	return s
5985}
5986
5987// SetS3BackupConfiguration sets the S3BackupConfiguration field's value.
5988func (s *RedshiftDestinationConfiguration) SetS3BackupConfiguration(v *S3DestinationConfiguration) *RedshiftDestinationConfiguration {
5989	s.S3BackupConfiguration = v
5990	return s
5991}
5992
5993// SetS3BackupMode sets the S3BackupMode field's value.
5994func (s *RedshiftDestinationConfiguration) SetS3BackupMode(v string) *RedshiftDestinationConfiguration {
5995	s.S3BackupMode = &v
5996	return s
5997}
5998
5999// SetS3Configuration sets the S3Configuration field's value.
6000func (s *RedshiftDestinationConfiguration) SetS3Configuration(v *S3DestinationConfiguration) *RedshiftDestinationConfiguration {
6001	s.S3Configuration = v
6002	return s
6003}
6004
6005// SetUsername sets the Username field's value.
6006func (s *RedshiftDestinationConfiguration) SetUsername(v string) *RedshiftDestinationConfiguration {
6007	s.Username = &v
6008	return s
6009}
6010
6011// Describes a destination in Amazon Redshift.
6012type RedshiftDestinationDescription struct {
6013	_ struct{} `type:"structure"`
6014
6015	// The Amazon CloudWatch logging options for your delivery stream.
6016	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
6017
6018	// The database connection string.
6019	//
6020	// ClusterJDBCURL is a required field
6021	ClusterJDBCURL *string `min:"1" type:"string" required:"true"`
6022
6023	// The COPY command.
6024	//
6025	// CopyCommand is a required field
6026	CopyCommand *CopyCommand `type:"structure" required:"true"`
6027
6028	// The data processing configuration.
6029	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
6030
6031	// The retry behavior in case Kinesis Data Firehose is unable to deliver documents
6032	// to Amazon Redshift. Default value is 3600 (60 minutes).
6033	RetryOptions *RedshiftRetryOptions `type:"structure"`
6034
6035	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
6036	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
6037	//
6038	// RoleARN is a required field
6039	RoleARN *string `min:"1" type:"string" required:"true"`
6040
6041	// The configuration for backup in Amazon S3.
6042	S3BackupDescription *S3DestinationDescription `type:"structure"`
6043
6044	// The Amazon S3 backup mode.
6045	S3BackupMode *string `type:"string" enum:"RedshiftS3BackupMode"`
6046
6047	// The Amazon S3 destination.
6048	//
6049	// S3DestinationDescription is a required field
6050	S3DestinationDescription *S3DestinationDescription `type:"structure" required:"true"`
6051
6052	// The name of the user.
6053	//
6054	// Username is a required field
6055	Username *string `min:"1" type:"string" required:"true" sensitive:"true"`
6056}
6057
6058// String returns the string representation
6059func (s RedshiftDestinationDescription) String() string {
6060	return awsutil.Prettify(s)
6061}
6062
6063// GoString returns the string representation
6064func (s RedshiftDestinationDescription) GoString() string {
6065	return s.String()
6066}
6067
6068// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
6069func (s *RedshiftDestinationDescription) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *RedshiftDestinationDescription {
6070	s.CloudWatchLoggingOptions = v
6071	return s
6072}
6073
6074// SetClusterJDBCURL sets the ClusterJDBCURL field's value.
6075func (s *RedshiftDestinationDescription) SetClusterJDBCURL(v string) *RedshiftDestinationDescription {
6076	s.ClusterJDBCURL = &v
6077	return s
6078}
6079
6080// SetCopyCommand sets the CopyCommand field's value.
6081func (s *RedshiftDestinationDescription) SetCopyCommand(v *CopyCommand) *RedshiftDestinationDescription {
6082	s.CopyCommand = v
6083	return s
6084}
6085
6086// SetProcessingConfiguration sets the ProcessingConfiguration field's value.
6087func (s *RedshiftDestinationDescription) SetProcessingConfiguration(v *ProcessingConfiguration) *RedshiftDestinationDescription {
6088	s.ProcessingConfiguration = v
6089	return s
6090}
6091
6092// SetRetryOptions sets the RetryOptions field's value.
6093func (s *RedshiftDestinationDescription) SetRetryOptions(v *RedshiftRetryOptions) *RedshiftDestinationDescription {
6094	s.RetryOptions = v
6095	return s
6096}
6097
6098// SetRoleARN sets the RoleARN field's value.
6099func (s *RedshiftDestinationDescription) SetRoleARN(v string) *RedshiftDestinationDescription {
6100	s.RoleARN = &v
6101	return s
6102}
6103
6104// SetS3BackupDescription sets the S3BackupDescription field's value.
6105func (s *RedshiftDestinationDescription) SetS3BackupDescription(v *S3DestinationDescription) *RedshiftDestinationDescription {
6106	s.S3BackupDescription = v
6107	return s
6108}
6109
6110// SetS3BackupMode sets the S3BackupMode field's value.
6111func (s *RedshiftDestinationDescription) SetS3BackupMode(v string) *RedshiftDestinationDescription {
6112	s.S3BackupMode = &v
6113	return s
6114}
6115
6116// SetS3DestinationDescription sets the S3DestinationDescription field's value.
6117func (s *RedshiftDestinationDescription) SetS3DestinationDescription(v *S3DestinationDescription) *RedshiftDestinationDescription {
6118	s.S3DestinationDescription = v
6119	return s
6120}
6121
6122// SetUsername sets the Username field's value.
6123func (s *RedshiftDestinationDescription) SetUsername(v string) *RedshiftDestinationDescription {
6124	s.Username = &v
6125	return s
6126}
6127
6128// Describes an update for a destination in Amazon Redshift.
6129type RedshiftDestinationUpdate struct {
6130	_ struct{} `type:"structure"`
6131
6132	// The Amazon CloudWatch logging options for your delivery stream.
6133	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
6134
6135	// The database connection string.
6136	ClusterJDBCURL *string `min:"1" type:"string"`
6137
6138	// The COPY command.
6139	CopyCommand *CopyCommand `type:"structure"`
6140
6141	// The user password.
6142	Password *string `min:"6" type:"string" sensitive:"true"`
6143
6144	// The data processing configuration.
6145	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
6146
6147	// The retry behavior in case Kinesis Data Firehose is unable to deliver documents
6148	// to Amazon Redshift. Default value is 3600 (60 minutes).
6149	RetryOptions *RedshiftRetryOptions `type:"structure"`
6150
6151	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
6152	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
6153	RoleARN *string `min:"1" type:"string"`
6154
6155	// You can update a delivery stream to enable Amazon S3 backup if it is disabled.
6156	// If backup is enabled, you can't update the delivery stream to disable it.
6157	S3BackupMode *string `type:"string" enum:"RedshiftS3BackupMode"`
6158
6159	// The Amazon S3 destination for backup.
6160	S3BackupUpdate *S3DestinationUpdate `type:"structure"`
6161
6162	// The Amazon S3 destination.
6163	//
6164	// The compression formats SNAPPY or ZIP cannot be specified in RedshiftDestinationUpdate.S3Update
6165	// because the Amazon Redshift COPY operation that reads from the S3 bucket
6166	// doesn't support these compression formats.
6167	S3Update *S3DestinationUpdate `type:"structure"`
6168
6169	// The name of the user.
6170	Username *string `min:"1" type:"string" sensitive:"true"`
6171}
6172
6173// String returns the string representation
6174func (s RedshiftDestinationUpdate) String() string {
6175	return awsutil.Prettify(s)
6176}
6177
6178// GoString returns the string representation
6179func (s RedshiftDestinationUpdate) GoString() string {
6180	return s.String()
6181}
6182
6183// Validate inspects the fields of the type to determine if they are valid.
6184func (s *RedshiftDestinationUpdate) Validate() error {
6185	invalidParams := request.ErrInvalidParams{Context: "RedshiftDestinationUpdate"}
6186	if s.ClusterJDBCURL != nil && len(*s.ClusterJDBCURL) < 1 {
6187		invalidParams.Add(request.NewErrParamMinLen("ClusterJDBCURL", 1))
6188	}
6189	if s.Password != nil && len(*s.Password) < 6 {
6190		invalidParams.Add(request.NewErrParamMinLen("Password", 6))
6191	}
6192	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
6193		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
6194	}
6195	if s.Username != nil && len(*s.Username) < 1 {
6196		invalidParams.Add(request.NewErrParamMinLen("Username", 1))
6197	}
6198	if s.CopyCommand != nil {
6199		if err := s.CopyCommand.Validate(); err != nil {
6200			invalidParams.AddNested("CopyCommand", err.(request.ErrInvalidParams))
6201		}
6202	}
6203	if s.ProcessingConfiguration != nil {
6204		if err := s.ProcessingConfiguration.Validate(); err != nil {
6205			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
6206		}
6207	}
6208	if s.S3BackupUpdate != nil {
6209		if err := s.S3BackupUpdate.Validate(); err != nil {
6210			invalidParams.AddNested("S3BackupUpdate", err.(request.ErrInvalidParams))
6211		}
6212	}
6213	if s.S3Update != nil {
6214		if err := s.S3Update.Validate(); err != nil {
6215			invalidParams.AddNested("S3Update", err.(request.ErrInvalidParams))
6216		}
6217	}
6218
6219	if invalidParams.Len() > 0 {
6220		return invalidParams
6221	}
6222	return nil
6223}
6224
6225// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
6226func (s *RedshiftDestinationUpdate) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *RedshiftDestinationUpdate {
6227	s.CloudWatchLoggingOptions = v
6228	return s
6229}
6230
6231// SetClusterJDBCURL sets the ClusterJDBCURL field's value.
6232func (s *RedshiftDestinationUpdate) SetClusterJDBCURL(v string) *RedshiftDestinationUpdate {
6233	s.ClusterJDBCURL = &v
6234	return s
6235}
6236
6237// SetCopyCommand sets the CopyCommand field's value.
6238func (s *RedshiftDestinationUpdate) SetCopyCommand(v *CopyCommand) *RedshiftDestinationUpdate {
6239	s.CopyCommand = v
6240	return s
6241}
6242
6243// SetPassword sets the Password field's value.
6244func (s *RedshiftDestinationUpdate) SetPassword(v string) *RedshiftDestinationUpdate {
6245	s.Password = &v
6246	return s
6247}
6248
6249// SetProcessingConfiguration sets the ProcessingConfiguration field's value.
6250func (s *RedshiftDestinationUpdate) SetProcessingConfiguration(v *ProcessingConfiguration) *RedshiftDestinationUpdate {
6251	s.ProcessingConfiguration = v
6252	return s
6253}
6254
6255// SetRetryOptions sets the RetryOptions field's value.
6256func (s *RedshiftDestinationUpdate) SetRetryOptions(v *RedshiftRetryOptions) *RedshiftDestinationUpdate {
6257	s.RetryOptions = v
6258	return s
6259}
6260
6261// SetRoleARN sets the RoleARN field's value.
6262func (s *RedshiftDestinationUpdate) SetRoleARN(v string) *RedshiftDestinationUpdate {
6263	s.RoleARN = &v
6264	return s
6265}
6266
6267// SetS3BackupMode sets the S3BackupMode field's value.
6268func (s *RedshiftDestinationUpdate) SetS3BackupMode(v string) *RedshiftDestinationUpdate {
6269	s.S3BackupMode = &v
6270	return s
6271}
6272
6273// SetS3BackupUpdate sets the S3BackupUpdate field's value.
6274func (s *RedshiftDestinationUpdate) SetS3BackupUpdate(v *S3DestinationUpdate) *RedshiftDestinationUpdate {
6275	s.S3BackupUpdate = v
6276	return s
6277}
6278
6279// SetS3Update sets the S3Update field's value.
6280func (s *RedshiftDestinationUpdate) SetS3Update(v *S3DestinationUpdate) *RedshiftDestinationUpdate {
6281	s.S3Update = v
6282	return s
6283}
6284
6285// SetUsername sets the Username field's value.
6286func (s *RedshiftDestinationUpdate) SetUsername(v string) *RedshiftDestinationUpdate {
6287	s.Username = &v
6288	return s
6289}
6290
6291// Configures retry behavior in case Kinesis Data Firehose is unable to deliver
6292// documents to Amazon Redshift.
6293type RedshiftRetryOptions struct {
6294	_ struct{} `type:"structure"`
6295
6296	// The length of time during which Kinesis Data Firehose retries delivery after
6297	// a failure, starting from the initial request and including the first attempt.
6298	// The default value is 3600 seconds (60 minutes). Kinesis Data Firehose does
6299	// not retry if the value of DurationInSeconds is 0 (zero) or if the first delivery
6300	// attempt takes longer than the current value.
6301	DurationInSeconds *int64 `type:"integer"`
6302}
6303
6304// String returns the string representation
6305func (s RedshiftRetryOptions) String() string {
6306	return awsutil.Prettify(s)
6307}
6308
6309// GoString returns the string representation
6310func (s RedshiftRetryOptions) GoString() string {
6311	return s.String()
6312}
6313
6314// SetDurationInSeconds sets the DurationInSeconds field's value.
6315func (s *RedshiftRetryOptions) SetDurationInSeconds(v int64) *RedshiftRetryOptions {
6316	s.DurationInSeconds = &v
6317	return s
6318}
6319
6320// The resource is already in use and not available for this operation.
6321type ResourceInUseException struct {
6322	_            struct{}                  `type:"structure"`
6323	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6324
6325	// A message that provides information about the error.
6326	Message_ *string `locationName:"message" type:"string"`
6327}
6328
6329// String returns the string representation
6330func (s ResourceInUseException) String() string {
6331	return awsutil.Prettify(s)
6332}
6333
6334// GoString returns the string representation
6335func (s ResourceInUseException) GoString() string {
6336	return s.String()
6337}
6338
6339func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
6340	return &ResourceInUseException{
6341		RespMetadata: v,
6342	}
6343}
6344
6345// Code returns the exception type name.
6346func (s *ResourceInUseException) Code() string {
6347	return "ResourceInUseException"
6348}
6349
6350// Message returns the exception's message.
6351func (s *ResourceInUseException) Message() string {
6352	if s.Message_ != nil {
6353		return *s.Message_
6354	}
6355	return ""
6356}
6357
6358// OrigErr always returns nil, satisfies awserr.Error interface.
6359func (s *ResourceInUseException) OrigErr() error {
6360	return nil
6361}
6362
6363func (s *ResourceInUseException) Error() string {
6364	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6365}
6366
6367// Status code returns the HTTP status code for the request's response error.
6368func (s *ResourceInUseException) StatusCode() int {
6369	return s.RespMetadata.StatusCode
6370}
6371
6372// RequestID returns the service's response RequestID for request.
6373func (s *ResourceInUseException) RequestID() string {
6374	return s.RespMetadata.RequestID
6375}
6376
6377// The specified resource could not be found.
6378type ResourceNotFoundException struct {
6379	_            struct{}                  `type:"structure"`
6380	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6381
6382	// A message that provides information about the error.
6383	Message_ *string `locationName:"message" type:"string"`
6384}
6385
6386// String returns the string representation
6387func (s ResourceNotFoundException) String() string {
6388	return awsutil.Prettify(s)
6389}
6390
6391// GoString returns the string representation
6392func (s ResourceNotFoundException) GoString() string {
6393	return s.String()
6394}
6395
6396func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
6397	return &ResourceNotFoundException{
6398		RespMetadata: v,
6399	}
6400}
6401
6402// Code returns the exception type name.
6403func (s *ResourceNotFoundException) Code() string {
6404	return "ResourceNotFoundException"
6405}
6406
6407// Message returns the exception's message.
6408func (s *ResourceNotFoundException) Message() string {
6409	if s.Message_ != nil {
6410		return *s.Message_
6411	}
6412	return ""
6413}
6414
6415// OrigErr always returns nil, satisfies awserr.Error interface.
6416func (s *ResourceNotFoundException) OrigErr() error {
6417	return nil
6418}
6419
6420func (s *ResourceNotFoundException) Error() string {
6421	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6422}
6423
6424// Status code returns the HTTP status code for the request's response error.
6425func (s *ResourceNotFoundException) StatusCode() int {
6426	return s.RespMetadata.StatusCode
6427}
6428
6429// RequestID returns the service's response RequestID for request.
6430func (s *ResourceNotFoundException) RequestID() string {
6431	return s.RespMetadata.RequestID
6432}
6433
6434// Describes the configuration of a destination in Amazon S3.
6435type S3DestinationConfiguration struct {
6436	_ struct{} `type:"structure"`
6437
6438	// The ARN of the S3 bucket. For more information, see Amazon Resource Names
6439	// (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
6440	//
6441	// BucketARN is a required field
6442	BucketARN *string `min:"1" type:"string" required:"true"`
6443
6444	// The buffering option. If no value is specified, BufferingHints object default
6445	// values are used.
6446	BufferingHints *BufferingHints `type:"structure"`
6447
6448	// The CloudWatch logging options for your delivery stream.
6449	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
6450
6451	// The compression format. If no value is specified, the default is UNCOMPRESSED.
6452	//
6453	// The compression formats SNAPPY or ZIP cannot be specified for Amazon Redshift
6454	// destinations because they are not supported by the Amazon Redshift COPY operation
6455	// that reads from the S3 bucket.
6456	CompressionFormat *string `type:"string" enum:"CompressionFormat"`
6457
6458	// The encryption configuration. If no value is specified, the default is no
6459	// encryption.
6460	EncryptionConfiguration *EncryptionConfiguration `type:"structure"`
6461
6462	// A prefix that Kinesis Data Firehose evaluates and adds to failed records
6463	// before writing them to S3. This prefix appears immediately following the
6464	// bucket name. For information about how to specify this prefix, see Custom
6465	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
6466	ErrorOutputPrefix *string `type:"string"`
6467
6468	// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
6469	// Amazon S3 files. You can also specify a custom prefix, as described in Custom
6470	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
6471	Prefix *string `type:"string"`
6472
6473	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
6474	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
6475	//
6476	// RoleARN is a required field
6477	RoleARN *string `min:"1" type:"string" required:"true"`
6478}
6479
6480// String returns the string representation
6481func (s S3DestinationConfiguration) String() string {
6482	return awsutil.Prettify(s)
6483}
6484
6485// GoString returns the string representation
6486func (s S3DestinationConfiguration) GoString() string {
6487	return s.String()
6488}
6489
6490// Validate inspects the fields of the type to determine if they are valid.
6491func (s *S3DestinationConfiguration) Validate() error {
6492	invalidParams := request.ErrInvalidParams{Context: "S3DestinationConfiguration"}
6493	if s.BucketARN == nil {
6494		invalidParams.Add(request.NewErrParamRequired("BucketARN"))
6495	}
6496	if s.BucketARN != nil && len(*s.BucketARN) < 1 {
6497		invalidParams.Add(request.NewErrParamMinLen("BucketARN", 1))
6498	}
6499	if s.RoleARN == nil {
6500		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
6501	}
6502	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
6503		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
6504	}
6505	if s.BufferingHints != nil {
6506		if err := s.BufferingHints.Validate(); err != nil {
6507			invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
6508		}
6509	}
6510	if s.EncryptionConfiguration != nil {
6511		if err := s.EncryptionConfiguration.Validate(); err != nil {
6512			invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams))
6513		}
6514	}
6515
6516	if invalidParams.Len() > 0 {
6517		return invalidParams
6518	}
6519	return nil
6520}
6521
6522// SetBucketARN sets the BucketARN field's value.
6523func (s *S3DestinationConfiguration) SetBucketARN(v string) *S3DestinationConfiguration {
6524	s.BucketARN = &v
6525	return s
6526}
6527
6528// SetBufferingHints sets the BufferingHints field's value.
6529func (s *S3DestinationConfiguration) SetBufferingHints(v *BufferingHints) *S3DestinationConfiguration {
6530	s.BufferingHints = v
6531	return s
6532}
6533
6534// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
6535func (s *S3DestinationConfiguration) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *S3DestinationConfiguration {
6536	s.CloudWatchLoggingOptions = v
6537	return s
6538}
6539
6540// SetCompressionFormat sets the CompressionFormat field's value.
6541func (s *S3DestinationConfiguration) SetCompressionFormat(v string) *S3DestinationConfiguration {
6542	s.CompressionFormat = &v
6543	return s
6544}
6545
6546// SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
6547func (s *S3DestinationConfiguration) SetEncryptionConfiguration(v *EncryptionConfiguration) *S3DestinationConfiguration {
6548	s.EncryptionConfiguration = v
6549	return s
6550}
6551
6552// SetErrorOutputPrefix sets the ErrorOutputPrefix field's value.
6553func (s *S3DestinationConfiguration) SetErrorOutputPrefix(v string) *S3DestinationConfiguration {
6554	s.ErrorOutputPrefix = &v
6555	return s
6556}
6557
6558// SetPrefix sets the Prefix field's value.
6559func (s *S3DestinationConfiguration) SetPrefix(v string) *S3DestinationConfiguration {
6560	s.Prefix = &v
6561	return s
6562}
6563
6564// SetRoleARN sets the RoleARN field's value.
6565func (s *S3DestinationConfiguration) SetRoleARN(v string) *S3DestinationConfiguration {
6566	s.RoleARN = &v
6567	return s
6568}
6569
6570// Describes a destination in Amazon S3.
6571type S3DestinationDescription struct {
6572	_ struct{} `type:"structure"`
6573
6574	// The ARN of the S3 bucket. For more information, see Amazon Resource Names
6575	// (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
6576	//
6577	// BucketARN is a required field
6578	BucketARN *string `min:"1" type:"string" required:"true"`
6579
6580	// The buffering option. If no value is specified, BufferingHints object default
6581	// values are used.
6582	//
6583	// BufferingHints is a required field
6584	BufferingHints *BufferingHints `type:"structure" required:"true"`
6585
6586	// The Amazon CloudWatch logging options for your delivery stream.
6587	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
6588
6589	// The compression format. If no value is specified, the default is UNCOMPRESSED.
6590	//
6591	// CompressionFormat is a required field
6592	CompressionFormat *string `type:"string" required:"true" enum:"CompressionFormat"`
6593
6594	// The encryption configuration. If no value is specified, the default is no
6595	// encryption.
6596	//
6597	// EncryptionConfiguration is a required field
6598	EncryptionConfiguration *EncryptionConfiguration `type:"structure" required:"true"`
6599
6600	// A prefix that Kinesis Data Firehose evaluates and adds to failed records
6601	// before writing them to S3. This prefix appears immediately following the
6602	// bucket name. For information about how to specify this prefix, see Custom
6603	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
6604	ErrorOutputPrefix *string `type:"string"`
6605
6606	// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
6607	// Amazon S3 files. You can also specify a custom prefix, as described in Custom
6608	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
6609	Prefix *string `type:"string"`
6610
6611	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
6612	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
6613	//
6614	// RoleARN is a required field
6615	RoleARN *string `min:"1" type:"string" required:"true"`
6616}
6617
6618// String returns the string representation
6619func (s S3DestinationDescription) String() string {
6620	return awsutil.Prettify(s)
6621}
6622
6623// GoString returns the string representation
6624func (s S3DestinationDescription) GoString() string {
6625	return s.String()
6626}
6627
6628// SetBucketARN sets the BucketARN field's value.
6629func (s *S3DestinationDescription) SetBucketARN(v string) *S3DestinationDescription {
6630	s.BucketARN = &v
6631	return s
6632}
6633
6634// SetBufferingHints sets the BufferingHints field's value.
6635func (s *S3DestinationDescription) SetBufferingHints(v *BufferingHints) *S3DestinationDescription {
6636	s.BufferingHints = v
6637	return s
6638}
6639
6640// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
6641func (s *S3DestinationDescription) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *S3DestinationDescription {
6642	s.CloudWatchLoggingOptions = v
6643	return s
6644}
6645
6646// SetCompressionFormat sets the CompressionFormat field's value.
6647func (s *S3DestinationDescription) SetCompressionFormat(v string) *S3DestinationDescription {
6648	s.CompressionFormat = &v
6649	return s
6650}
6651
6652// SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
6653func (s *S3DestinationDescription) SetEncryptionConfiguration(v *EncryptionConfiguration) *S3DestinationDescription {
6654	s.EncryptionConfiguration = v
6655	return s
6656}
6657
6658// SetErrorOutputPrefix sets the ErrorOutputPrefix field's value.
6659func (s *S3DestinationDescription) SetErrorOutputPrefix(v string) *S3DestinationDescription {
6660	s.ErrorOutputPrefix = &v
6661	return s
6662}
6663
6664// SetPrefix sets the Prefix field's value.
6665func (s *S3DestinationDescription) SetPrefix(v string) *S3DestinationDescription {
6666	s.Prefix = &v
6667	return s
6668}
6669
6670// SetRoleARN sets the RoleARN field's value.
6671func (s *S3DestinationDescription) SetRoleARN(v string) *S3DestinationDescription {
6672	s.RoleARN = &v
6673	return s
6674}
6675
6676// Describes an update for a destination in Amazon S3.
6677type S3DestinationUpdate struct {
6678	_ struct{} `type:"structure"`
6679
6680	// The ARN of the S3 bucket. For more information, see Amazon Resource Names
6681	// (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
6682	BucketARN *string `min:"1" type:"string"`
6683
6684	// The buffering option. If no value is specified, BufferingHints object default
6685	// values are used.
6686	BufferingHints *BufferingHints `type:"structure"`
6687
6688	// The CloudWatch logging options for your delivery stream.
6689	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
6690
6691	// The compression format. If no value is specified, the default is UNCOMPRESSED.
6692	//
6693	// The compression formats SNAPPY or ZIP cannot be specified for Amazon Redshift
6694	// destinations because they are not supported by the Amazon Redshift COPY operation
6695	// that reads from the S3 bucket.
6696	CompressionFormat *string `type:"string" enum:"CompressionFormat"`
6697
6698	// The encryption configuration. If no value is specified, the default is no
6699	// encryption.
6700	EncryptionConfiguration *EncryptionConfiguration `type:"structure"`
6701
6702	// A prefix that Kinesis Data Firehose evaluates and adds to failed records
6703	// before writing them to S3. This prefix appears immediately following the
6704	// bucket name. For information about how to specify this prefix, see Custom
6705	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
6706	ErrorOutputPrefix *string `type:"string"`
6707
6708	// The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
6709	// Amazon S3 files. You can also specify a custom prefix, as described in Custom
6710	// Prefixes for Amazon S3 Objects (https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
6711	Prefix *string `type:"string"`
6712
6713	// The Amazon Resource Name (ARN) of the AWS credentials. For more information,
6714	// see Amazon Resource Names (ARNs) and AWS Service Namespaces (https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
6715	RoleARN *string `min:"1" type:"string"`
6716}
6717
6718// String returns the string representation
6719func (s S3DestinationUpdate) String() string {
6720	return awsutil.Prettify(s)
6721}
6722
6723// GoString returns the string representation
6724func (s S3DestinationUpdate) GoString() string {
6725	return s.String()
6726}
6727
6728// Validate inspects the fields of the type to determine if they are valid.
6729func (s *S3DestinationUpdate) Validate() error {
6730	invalidParams := request.ErrInvalidParams{Context: "S3DestinationUpdate"}
6731	if s.BucketARN != nil && len(*s.BucketARN) < 1 {
6732		invalidParams.Add(request.NewErrParamMinLen("BucketARN", 1))
6733	}
6734	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
6735		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
6736	}
6737	if s.BufferingHints != nil {
6738		if err := s.BufferingHints.Validate(); err != nil {
6739			invalidParams.AddNested("BufferingHints", err.(request.ErrInvalidParams))
6740		}
6741	}
6742	if s.EncryptionConfiguration != nil {
6743		if err := s.EncryptionConfiguration.Validate(); err != nil {
6744			invalidParams.AddNested("EncryptionConfiguration", err.(request.ErrInvalidParams))
6745		}
6746	}
6747
6748	if invalidParams.Len() > 0 {
6749		return invalidParams
6750	}
6751	return nil
6752}
6753
6754// SetBucketARN sets the BucketARN field's value.
6755func (s *S3DestinationUpdate) SetBucketARN(v string) *S3DestinationUpdate {
6756	s.BucketARN = &v
6757	return s
6758}
6759
6760// SetBufferingHints sets the BufferingHints field's value.
6761func (s *S3DestinationUpdate) SetBufferingHints(v *BufferingHints) *S3DestinationUpdate {
6762	s.BufferingHints = v
6763	return s
6764}
6765
6766// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
6767func (s *S3DestinationUpdate) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *S3DestinationUpdate {
6768	s.CloudWatchLoggingOptions = v
6769	return s
6770}
6771
6772// SetCompressionFormat sets the CompressionFormat field's value.
6773func (s *S3DestinationUpdate) SetCompressionFormat(v string) *S3DestinationUpdate {
6774	s.CompressionFormat = &v
6775	return s
6776}
6777
6778// SetEncryptionConfiguration sets the EncryptionConfiguration field's value.
6779func (s *S3DestinationUpdate) SetEncryptionConfiguration(v *EncryptionConfiguration) *S3DestinationUpdate {
6780	s.EncryptionConfiguration = v
6781	return s
6782}
6783
6784// SetErrorOutputPrefix sets the ErrorOutputPrefix field's value.
6785func (s *S3DestinationUpdate) SetErrorOutputPrefix(v string) *S3DestinationUpdate {
6786	s.ErrorOutputPrefix = &v
6787	return s
6788}
6789
6790// SetPrefix sets the Prefix field's value.
6791func (s *S3DestinationUpdate) SetPrefix(v string) *S3DestinationUpdate {
6792	s.Prefix = &v
6793	return s
6794}
6795
6796// SetRoleARN sets the RoleARN field's value.
6797func (s *S3DestinationUpdate) SetRoleARN(v string) *S3DestinationUpdate {
6798	s.RoleARN = &v
6799	return s
6800}
6801
6802// Specifies the schema to which you want Kinesis Data Firehose to configure
6803// your data before it writes it to Amazon S3. This parameter is required if
6804// Enabled is set to true.
6805type SchemaConfiguration struct {
6806	_ struct{} `type:"structure"`
6807
6808	// The ID of the AWS Glue Data Catalog. If you don't supply this, the AWS account
6809	// ID is used by default.
6810	CatalogId *string `min:"1" type:"string"`
6811
6812	// Specifies the name of the AWS Glue database that contains the schema for
6813	// the output data.
6814	DatabaseName *string `min:"1" type:"string"`
6815
6816	// If you don't specify an AWS Region, the default is the current Region.
6817	Region *string `min:"1" type:"string"`
6818
6819	// The role that Kinesis Data Firehose can use to access AWS Glue. This role
6820	// must be in the same account you use for Kinesis Data Firehose. Cross-account
6821	// roles aren't allowed.
6822	RoleARN *string `min:"1" type:"string"`
6823
6824	// Specifies the AWS Glue table that contains the column information that constitutes
6825	// your data schema.
6826	TableName *string `min:"1" type:"string"`
6827
6828	// Specifies the table version for the output data schema. If you don't specify
6829	// this version ID, or if you set it to LATEST, Kinesis Data Firehose uses the
6830	// most recent version. This means that any updates to the table are automatically
6831	// picked up.
6832	VersionId *string `min:"1" type:"string"`
6833}
6834
6835// String returns the string representation
6836func (s SchemaConfiguration) String() string {
6837	return awsutil.Prettify(s)
6838}
6839
6840// GoString returns the string representation
6841func (s SchemaConfiguration) GoString() string {
6842	return s.String()
6843}
6844
6845// Validate inspects the fields of the type to determine if they are valid.
6846func (s *SchemaConfiguration) Validate() error {
6847	invalidParams := request.ErrInvalidParams{Context: "SchemaConfiguration"}
6848	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
6849		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
6850	}
6851	if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
6852		invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
6853	}
6854	if s.Region != nil && len(*s.Region) < 1 {
6855		invalidParams.Add(request.NewErrParamMinLen("Region", 1))
6856	}
6857	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
6858		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
6859	}
6860	if s.TableName != nil && len(*s.TableName) < 1 {
6861		invalidParams.Add(request.NewErrParamMinLen("TableName", 1))
6862	}
6863	if s.VersionId != nil && len(*s.VersionId) < 1 {
6864		invalidParams.Add(request.NewErrParamMinLen("VersionId", 1))
6865	}
6866
6867	if invalidParams.Len() > 0 {
6868		return invalidParams
6869	}
6870	return nil
6871}
6872
6873// SetCatalogId sets the CatalogId field's value.
6874func (s *SchemaConfiguration) SetCatalogId(v string) *SchemaConfiguration {
6875	s.CatalogId = &v
6876	return s
6877}
6878
6879// SetDatabaseName sets the DatabaseName field's value.
6880func (s *SchemaConfiguration) SetDatabaseName(v string) *SchemaConfiguration {
6881	s.DatabaseName = &v
6882	return s
6883}
6884
6885// SetRegion sets the Region field's value.
6886func (s *SchemaConfiguration) SetRegion(v string) *SchemaConfiguration {
6887	s.Region = &v
6888	return s
6889}
6890
6891// SetRoleARN sets the RoleARN field's value.
6892func (s *SchemaConfiguration) SetRoleARN(v string) *SchemaConfiguration {
6893	s.RoleARN = &v
6894	return s
6895}
6896
6897// SetTableName sets the TableName field's value.
6898func (s *SchemaConfiguration) SetTableName(v string) *SchemaConfiguration {
6899	s.TableName = &v
6900	return s
6901}
6902
6903// SetVersionId sets the VersionId field's value.
6904func (s *SchemaConfiguration) SetVersionId(v string) *SchemaConfiguration {
6905	s.VersionId = &v
6906	return s
6907}
6908
6909// The serializer that you want Kinesis Data Firehose to use to convert data
6910// to the target format before writing it to Amazon S3. Kinesis Data Firehose
6911// 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)
6912// and the Parquet SerDe (https://hive.apache.org/javadocs/r1.2.2/api/org/apache/hadoop/hive/ql/io/parquet/serde/ParquetHiveSerDe.html).
6913type Serializer struct {
6914	_ struct{} `type:"structure"`
6915
6916	// A serializer to use for converting data to the ORC format before storing
6917	// it in Amazon S3. For more information, see Apache ORC (https://orc.apache.org/docs/).
6918	OrcSerDe *OrcSerDe `type:"structure"`
6919
6920	// A serializer to use for converting data to the Parquet format before storing
6921	// it in Amazon S3. For more information, see Apache Parquet (https://parquet.apache.org/documentation/latest/).
6922	ParquetSerDe *ParquetSerDe `type:"structure"`
6923}
6924
6925// String returns the string representation
6926func (s Serializer) String() string {
6927	return awsutil.Prettify(s)
6928}
6929
6930// GoString returns the string representation
6931func (s Serializer) GoString() string {
6932	return s.String()
6933}
6934
6935// Validate inspects the fields of the type to determine if they are valid.
6936func (s *Serializer) Validate() error {
6937	invalidParams := request.ErrInvalidParams{Context: "Serializer"}
6938	if s.OrcSerDe != nil {
6939		if err := s.OrcSerDe.Validate(); err != nil {
6940			invalidParams.AddNested("OrcSerDe", err.(request.ErrInvalidParams))
6941		}
6942	}
6943	if s.ParquetSerDe != nil {
6944		if err := s.ParquetSerDe.Validate(); err != nil {
6945			invalidParams.AddNested("ParquetSerDe", err.(request.ErrInvalidParams))
6946		}
6947	}
6948
6949	if invalidParams.Len() > 0 {
6950		return invalidParams
6951	}
6952	return nil
6953}
6954
6955// SetOrcSerDe sets the OrcSerDe field's value.
6956func (s *Serializer) SetOrcSerDe(v *OrcSerDe) *Serializer {
6957	s.OrcSerDe = v
6958	return s
6959}
6960
6961// SetParquetSerDe sets the ParquetSerDe field's value.
6962func (s *Serializer) SetParquetSerDe(v *ParquetSerDe) *Serializer {
6963	s.ParquetSerDe = v
6964	return s
6965}
6966
6967// The service is unavailable. Back off and retry the operation. If you continue
6968// to see the exception, throughput limits for the delivery stream may have
6969// been exceeded. For more information about limits and how to request an increase,
6970// see Amazon Kinesis Data Firehose Limits (https://docs.aws.amazon.com/firehose/latest/dev/limits.html).
6971type ServiceUnavailableException struct {
6972	_            struct{}                  `type:"structure"`
6973	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6974
6975	// A message that provides information about the error.
6976	Message_ *string `locationName:"message" type:"string"`
6977}
6978
6979// String returns the string representation
6980func (s ServiceUnavailableException) String() string {
6981	return awsutil.Prettify(s)
6982}
6983
6984// GoString returns the string representation
6985func (s ServiceUnavailableException) GoString() string {
6986	return s.String()
6987}
6988
6989func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
6990	return &ServiceUnavailableException{
6991		RespMetadata: v,
6992	}
6993}
6994
6995// Code returns the exception type name.
6996func (s *ServiceUnavailableException) Code() string {
6997	return "ServiceUnavailableException"
6998}
6999
7000// Message returns the exception's message.
7001func (s *ServiceUnavailableException) Message() string {
7002	if s.Message_ != nil {
7003		return *s.Message_
7004	}
7005	return ""
7006}
7007
7008// OrigErr always returns nil, satisfies awserr.Error interface.
7009func (s *ServiceUnavailableException) OrigErr() error {
7010	return nil
7011}
7012
7013func (s *ServiceUnavailableException) Error() string {
7014	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7015}
7016
7017// Status code returns the HTTP status code for the request's response error.
7018func (s *ServiceUnavailableException) StatusCode() int {
7019	return s.RespMetadata.StatusCode
7020}
7021
7022// RequestID returns the service's response RequestID for request.
7023func (s *ServiceUnavailableException) RequestID() string {
7024	return s.RespMetadata.RequestID
7025}
7026
7027// Details about a Kinesis data stream used as the source for a Kinesis Data
7028// Firehose delivery stream.
7029type SourceDescription struct {
7030	_ struct{} `type:"structure"`
7031
7032	// The KinesisStreamSourceDescription value for the source Kinesis data stream.
7033	KinesisStreamSourceDescription *KinesisStreamSourceDescription `type:"structure"`
7034}
7035
7036// String returns the string representation
7037func (s SourceDescription) String() string {
7038	return awsutil.Prettify(s)
7039}
7040
7041// GoString returns the string representation
7042func (s SourceDescription) GoString() string {
7043	return s.String()
7044}
7045
7046// SetKinesisStreamSourceDescription sets the KinesisStreamSourceDescription field's value.
7047func (s *SourceDescription) SetKinesisStreamSourceDescription(v *KinesisStreamSourceDescription) *SourceDescription {
7048	s.KinesisStreamSourceDescription = v
7049	return s
7050}
7051
7052// Describes the configuration of a destination in Splunk.
7053type SplunkDestinationConfiguration struct {
7054	_ struct{} `type:"structure"`
7055
7056	// The Amazon CloudWatch logging options for your delivery stream.
7057	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
7058
7059	// The amount of time that Kinesis Data Firehose waits to receive an acknowledgment
7060	// from Splunk after it sends it data. At the end of the timeout period, Kinesis
7061	// Data Firehose either tries to send the data again or considers it an error,
7062	// based on your retry settings.
7063	HECAcknowledgmentTimeoutInSeconds *int64 `min:"180" type:"integer"`
7064
7065	// The HTTP Event Collector (HEC) endpoint to which Kinesis Data Firehose sends
7066	// your data.
7067	//
7068	// HECEndpoint is a required field
7069	HECEndpoint *string `type:"string" required:"true"`
7070
7071	// This type can be either "Raw" or "Event."
7072	//
7073	// HECEndpointType is a required field
7074	HECEndpointType *string `type:"string" required:"true" enum:"HECEndpointType"`
7075
7076	// This is a GUID that you obtain from your Splunk cluster when you create a
7077	// new HEC endpoint.
7078	//
7079	// HECToken is a required field
7080	HECToken *string `type:"string" required:"true"`
7081
7082	// The data processing configuration.
7083	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
7084
7085	// The retry behavior in case Kinesis Data Firehose is unable to deliver data
7086	// to Splunk, or if it doesn't receive an acknowledgment of receipt from Splunk.
7087	RetryOptions *SplunkRetryOptions `type:"structure"`
7088
7089	// Defines how documents should be delivered to Amazon S3. When set to FailedEventsOnly,
7090	// Kinesis Data Firehose writes any data that could not be indexed to the configured
7091	// Amazon S3 destination. When set to AllEvents, Kinesis Data Firehose delivers
7092	// all incoming records to Amazon S3, and also writes failed documents to Amazon
7093	// S3. The default value is FailedEventsOnly.
7094	//
7095	// You can update this backup mode from FailedEventsOnly to AllEvents. You can't
7096	// update it from AllEvents to FailedEventsOnly.
7097	S3BackupMode *string `type:"string" enum:"SplunkS3BackupMode"`
7098
7099	// The configuration for the backup Amazon S3 location.
7100	//
7101	// S3Configuration is a required field
7102	S3Configuration *S3DestinationConfiguration `type:"structure" required:"true"`
7103}
7104
7105// String returns the string representation
7106func (s SplunkDestinationConfiguration) String() string {
7107	return awsutil.Prettify(s)
7108}
7109
7110// GoString returns the string representation
7111func (s SplunkDestinationConfiguration) GoString() string {
7112	return s.String()
7113}
7114
7115// Validate inspects the fields of the type to determine if they are valid.
7116func (s *SplunkDestinationConfiguration) Validate() error {
7117	invalidParams := request.ErrInvalidParams{Context: "SplunkDestinationConfiguration"}
7118	if s.HECAcknowledgmentTimeoutInSeconds != nil && *s.HECAcknowledgmentTimeoutInSeconds < 180 {
7119		invalidParams.Add(request.NewErrParamMinValue("HECAcknowledgmentTimeoutInSeconds", 180))
7120	}
7121	if s.HECEndpoint == nil {
7122		invalidParams.Add(request.NewErrParamRequired("HECEndpoint"))
7123	}
7124	if s.HECEndpointType == nil {
7125		invalidParams.Add(request.NewErrParamRequired("HECEndpointType"))
7126	}
7127	if s.HECToken == nil {
7128		invalidParams.Add(request.NewErrParamRequired("HECToken"))
7129	}
7130	if s.S3Configuration == nil {
7131		invalidParams.Add(request.NewErrParamRequired("S3Configuration"))
7132	}
7133	if s.ProcessingConfiguration != nil {
7134		if err := s.ProcessingConfiguration.Validate(); err != nil {
7135			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
7136		}
7137	}
7138	if s.S3Configuration != nil {
7139		if err := s.S3Configuration.Validate(); err != nil {
7140			invalidParams.AddNested("S3Configuration", err.(request.ErrInvalidParams))
7141		}
7142	}
7143
7144	if invalidParams.Len() > 0 {
7145		return invalidParams
7146	}
7147	return nil
7148}
7149
7150// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
7151func (s *SplunkDestinationConfiguration) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *SplunkDestinationConfiguration {
7152	s.CloudWatchLoggingOptions = v
7153	return s
7154}
7155
7156// SetHECAcknowledgmentTimeoutInSeconds sets the HECAcknowledgmentTimeoutInSeconds field's value.
7157func (s *SplunkDestinationConfiguration) SetHECAcknowledgmentTimeoutInSeconds(v int64) *SplunkDestinationConfiguration {
7158	s.HECAcknowledgmentTimeoutInSeconds = &v
7159	return s
7160}
7161
7162// SetHECEndpoint sets the HECEndpoint field's value.
7163func (s *SplunkDestinationConfiguration) SetHECEndpoint(v string) *SplunkDestinationConfiguration {
7164	s.HECEndpoint = &v
7165	return s
7166}
7167
7168// SetHECEndpointType sets the HECEndpointType field's value.
7169func (s *SplunkDestinationConfiguration) SetHECEndpointType(v string) *SplunkDestinationConfiguration {
7170	s.HECEndpointType = &v
7171	return s
7172}
7173
7174// SetHECToken sets the HECToken field's value.
7175func (s *SplunkDestinationConfiguration) SetHECToken(v string) *SplunkDestinationConfiguration {
7176	s.HECToken = &v
7177	return s
7178}
7179
7180// SetProcessingConfiguration sets the ProcessingConfiguration field's value.
7181func (s *SplunkDestinationConfiguration) SetProcessingConfiguration(v *ProcessingConfiguration) *SplunkDestinationConfiguration {
7182	s.ProcessingConfiguration = v
7183	return s
7184}
7185
7186// SetRetryOptions sets the RetryOptions field's value.
7187func (s *SplunkDestinationConfiguration) SetRetryOptions(v *SplunkRetryOptions) *SplunkDestinationConfiguration {
7188	s.RetryOptions = v
7189	return s
7190}
7191
7192// SetS3BackupMode sets the S3BackupMode field's value.
7193func (s *SplunkDestinationConfiguration) SetS3BackupMode(v string) *SplunkDestinationConfiguration {
7194	s.S3BackupMode = &v
7195	return s
7196}
7197
7198// SetS3Configuration sets the S3Configuration field's value.
7199func (s *SplunkDestinationConfiguration) SetS3Configuration(v *S3DestinationConfiguration) *SplunkDestinationConfiguration {
7200	s.S3Configuration = v
7201	return s
7202}
7203
7204// Describes a destination in Splunk.
7205type SplunkDestinationDescription struct {
7206	_ struct{} `type:"structure"`
7207
7208	// The Amazon CloudWatch logging options for your delivery stream.
7209	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
7210
7211	// The amount of time that Kinesis Data Firehose waits to receive an acknowledgment
7212	// from Splunk after it sends it data. At the end of the timeout period, Kinesis
7213	// Data Firehose either tries to send the data again or considers it an error,
7214	// based on your retry settings.
7215	HECAcknowledgmentTimeoutInSeconds *int64 `min:"180" type:"integer"`
7216
7217	// The HTTP Event Collector (HEC) endpoint to which Kinesis Data Firehose sends
7218	// your data.
7219	HECEndpoint *string `type:"string"`
7220
7221	// This type can be either "Raw" or "Event."
7222	HECEndpointType *string `type:"string" enum:"HECEndpointType"`
7223
7224	// A GUID you obtain from your Splunk cluster when you create a new HEC endpoint.
7225	HECToken *string `type:"string"`
7226
7227	// The data processing configuration.
7228	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
7229
7230	// The retry behavior in case Kinesis Data Firehose is unable to deliver data
7231	// to Splunk or if it doesn't receive an acknowledgment of receipt from Splunk.
7232	RetryOptions *SplunkRetryOptions `type:"structure"`
7233
7234	// Defines how documents should be delivered to Amazon S3. When set to FailedDocumentsOnly,
7235	// Kinesis Data Firehose writes any data that could not be indexed to the configured
7236	// Amazon S3 destination. When set to AllDocuments, Kinesis Data Firehose delivers
7237	// all incoming records to Amazon S3, and also writes failed documents to Amazon
7238	// S3. Default value is FailedDocumentsOnly.
7239	S3BackupMode *string `type:"string" enum:"SplunkS3BackupMode"`
7240
7241	// The Amazon S3 destination.>
7242	S3DestinationDescription *S3DestinationDescription `type:"structure"`
7243}
7244
7245// String returns the string representation
7246func (s SplunkDestinationDescription) String() string {
7247	return awsutil.Prettify(s)
7248}
7249
7250// GoString returns the string representation
7251func (s SplunkDestinationDescription) GoString() string {
7252	return s.String()
7253}
7254
7255// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
7256func (s *SplunkDestinationDescription) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *SplunkDestinationDescription {
7257	s.CloudWatchLoggingOptions = v
7258	return s
7259}
7260
7261// SetHECAcknowledgmentTimeoutInSeconds sets the HECAcknowledgmentTimeoutInSeconds field's value.
7262func (s *SplunkDestinationDescription) SetHECAcknowledgmentTimeoutInSeconds(v int64) *SplunkDestinationDescription {
7263	s.HECAcknowledgmentTimeoutInSeconds = &v
7264	return s
7265}
7266
7267// SetHECEndpoint sets the HECEndpoint field's value.
7268func (s *SplunkDestinationDescription) SetHECEndpoint(v string) *SplunkDestinationDescription {
7269	s.HECEndpoint = &v
7270	return s
7271}
7272
7273// SetHECEndpointType sets the HECEndpointType field's value.
7274func (s *SplunkDestinationDescription) SetHECEndpointType(v string) *SplunkDestinationDescription {
7275	s.HECEndpointType = &v
7276	return s
7277}
7278
7279// SetHECToken sets the HECToken field's value.
7280func (s *SplunkDestinationDescription) SetHECToken(v string) *SplunkDestinationDescription {
7281	s.HECToken = &v
7282	return s
7283}
7284
7285// SetProcessingConfiguration sets the ProcessingConfiguration field's value.
7286func (s *SplunkDestinationDescription) SetProcessingConfiguration(v *ProcessingConfiguration) *SplunkDestinationDescription {
7287	s.ProcessingConfiguration = v
7288	return s
7289}
7290
7291// SetRetryOptions sets the RetryOptions field's value.
7292func (s *SplunkDestinationDescription) SetRetryOptions(v *SplunkRetryOptions) *SplunkDestinationDescription {
7293	s.RetryOptions = v
7294	return s
7295}
7296
7297// SetS3BackupMode sets the S3BackupMode field's value.
7298func (s *SplunkDestinationDescription) SetS3BackupMode(v string) *SplunkDestinationDescription {
7299	s.S3BackupMode = &v
7300	return s
7301}
7302
7303// SetS3DestinationDescription sets the S3DestinationDescription field's value.
7304func (s *SplunkDestinationDescription) SetS3DestinationDescription(v *S3DestinationDescription) *SplunkDestinationDescription {
7305	s.S3DestinationDescription = v
7306	return s
7307}
7308
7309// Describes an update for a destination in Splunk.
7310type SplunkDestinationUpdate struct {
7311	_ struct{} `type:"structure"`
7312
7313	// The Amazon CloudWatch logging options for your delivery stream.
7314	CloudWatchLoggingOptions *CloudWatchLoggingOptions `type:"structure"`
7315
7316	// The amount of time that Kinesis Data Firehose waits to receive an acknowledgment
7317	// from Splunk after it sends data. At the end of the timeout period, Kinesis
7318	// Data Firehose either tries to send the data again or considers it an error,
7319	// based on your retry settings.
7320	HECAcknowledgmentTimeoutInSeconds *int64 `min:"180" type:"integer"`
7321
7322	// The HTTP Event Collector (HEC) endpoint to which Kinesis Data Firehose sends
7323	// your data.
7324	HECEndpoint *string `type:"string"`
7325
7326	// This type can be either "Raw" or "Event."
7327	HECEndpointType *string `type:"string" enum:"HECEndpointType"`
7328
7329	// A GUID that you obtain from your Splunk cluster when you create a new HEC
7330	// endpoint.
7331	HECToken *string `type:"string"`
7332
7333	// The data processing configuration.
7334	ProcessingConfiguration *ProcessingConfiguration `type:"structure"`
7335
7336	// The retry behavior in case Kinesis Data Firehose is unable to deliver data
7337	// to Splunk or if it doesn't receive an acknowledgment of receipt from Splunk.
7338	RetryOptions *SplunkRetryOptions `type:"structure"`
7339
7340	// Specifies how you want Kinesis Data Firehose to back up documents to Amazon
7341	// S3. When set to FailedDocumentsOnly, Kinesis Data Firehose writes any data
7342	// that could not be indexed to the configured Amazon S3 destination. When set
7343	// to AllEvents, Kinesis Data Firehose delivers all incoming records to Amazon
7344	// S3, and also writes failed documents to Amazon S3. The default value is FailedEventsOnly.
7345	//
7346	// You can update this backup mode from FailedEventsOnly to AllEvents. You can't
7347	// update it from AllEvents to FailedEventsOnly.
7348	S3BackupMode *string `type:"string" enum:"SplunkS3BackupMode"`
7349
7350	// Your update to the configuration of the backup Amazon S3 location.
7351	S3Update *S3DestinationUpdate `type:"structure"`
7352}
7353
7354// String returns the string representation
7355func (s SplunkDestinationUpdate) String() string {
7356	return awsutil.Prettify(s)
7357}
7358
7359// GoString returns the string representation
7360func (s SplunkDestinationUpdate) GoString() string {
7361	return s.String()
7362}
7363
7364// Validate inspects the fields of the type to determine if they are valid.
7365func (s *SplunkDestinationUpdate) Validate() error {
7366	invalidParams := request.ErrInvalidParams{Context: "SplunkDestinationUpdate"}
7367	if s.HECAcknowledgmentTimeoutInSeconds != nil && *s.HECAcknowledgmentTimeoutInSeconds < 180 {
7368		invalidParams.Add(request.NewErrParamMinValue("HECAcknowledgmentTimeoutInSeconds", 180))
7369	}
7370	if s.ProcessingConfiguration != nil {
7371		if err := s.ProcessingConfiguration.Validate(); err != nil {
7372			invalidParams.AddNested("ProcessingConfiguration", err.(request.ErrInvalidParams))
7373		}
7374	}
7375	if s.S3Update != nil {
7376		if err := s.S3Update.Validate(); err != nil {
7377			invalidParams.AddNested("S3Update", err.(request.ErrInvalidParams))
7378		}
7379	}
7380
7381	if invalidParams.Len() > 0 {
7382		return invalidParams
7383	}
7384	return nil
7385}
7386
7387// SetCloudWatchLoggingOptions sets the CloudWatchLoggingOptions field's value.
7388func (s *SplunkDestinationUpdate) SetCloudWatchLoggingOptions(v *CloudWatchLoggingOptions) *SplunkDestinationUpdate {
7389	s.CloudWatchLoggingOptions = v
7390	return s
7391}
7392
7393// SetHECAcknowledgmentTimeoutInSeconds sets the HECAcknowledgmentTimeoutInSeconds field's value.
7394func (s *SplunkDestinationUpdate) SetHECAcknowledgmentTimeoutInSeconds(v int64) *SplunkDestinationUpdate {
7395	s.HECAcknowledgmentTimeoutInSeconds = &v
7396	return s
7397}
7398
7399// SetHECEndpoint sets the HECEndpoint field's value.
7400func (s *SplunkDestinationUpdate) SetHECEndpoint(v string) *SplunkDestinationUpdate {
7401	s.HECEndpoint = &v
7402	return s
7403}
7404
7405// SetHECEndpointType sets the HECEndpointType field's value.
7406func (s *SplunkDestinationUpdate) SetHECEndpointType(v string) *SplunkDestinationUpdate {
7407	s.HECEndpointType = &v
7408	return s
7409}
7410
7411// SetHECToken sets the HECToken field's value.
7412func (s *SplunkDestinationUpdate) SetHECToken(v string) *SplunkDestinationUpdate {
7413	s.HECToken = &v
7414	return s
7415}
7416
7417// SetProcessingConfiguration sets the ProcessingConfiguration field's value.
7418func (s *SplunkDestinationUpdate) SetProcessingConfiguration(v *ProcessingConfiguration) *SplunkDestinationUpdate {
7419	s.ProcessingConfiguration = v
7420	return s
7421}
7422
7423// SetRetryOptions sets the RetryOptions field's value.
7424func (s *SplunkDestinationUpdate) SetRetryOptions(v *SplunkRetryOptions) *SplunkDestinationUpdate {
7425	s.RetryOptions = v
7426	return s
7427}
7428
7429// SetS3BackupMode sets the S3BackupMode field's value.
7430func (s *SplunkDestinationUpdate) SetS3BackupMode(v string) *SplunkDestinationUpdate {
7431	s.S3BackupMode = &v
7432	return s
7433}
7434
7435// SetS3Update sets the S3Update field's value.
7436func (s *SplunkDestinationUpdate) SetS3Update(v *S3DestinationUpdate) *SplunkDestinationUpdate {
7437	s.S3Update = v
7438	return s
7439}
7440
7441// Configures retry behavior in case Kinesis Data Firehose is unable to deliver
7442// documents to Splunk, or if it doesn't receive an acknowledgment from Splunk.
7443type SplunkRetryOptions struct {
7444	_ struct{} `type:"structure"`
7445
7446	// The total amount of time that Kinesis Data Firehose spends on retries. This
7447	// duration starts after the initial attempt to send data to Splunk fails. It
7448	// doesn't include the periods during which Kinesis Data Firehose waits for
7449	// acknowledgment from Splunk after each attempt.
7450	DurationInSeconds *int64 `type:"integer"`
7451}
7452
7453// String returns the string representation
7454func (s SplunkRetryOptions) String() string {
7455	return awsutil.Prettify(s)
7456}
7457
7458// GoString returns the string representation
7459func (s SplunkRetryOptions) GoString() string {
7460	return s.String()
7461}
7462
7463// SetDurationInSeconds sets the DurationInSeconds field's value.
7464func (s *SplunkRetryOptions) SetDurationInSeconds(v int64) *SplunkRetryOptions {
7465	s.DurationInSeconds = &v
7466	return s
7467}
7468
7469type StartDeliveryStreamEncryptionInput struct {
7470	_ struct{} `type:"structure"`
7471
7472	// Used to specify the type and Amazon Resource Name (ARN) of the KMS key needed
7473	// for Server-Side Encryption (SSE).
7474	DeliveryStreamEncryptionConfigurationInput *DeliveryStreamEncryptionConfigurationInput `type:"structure"`
7475
7476	// The name of the delivery stream for which you want to enable server-side
7477	// encryption (SSE).
7478	//
7479	// DeliveryStreamName is a required field
7480	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
7481}
7482
7483// String returns the string representation
7484func (s StartDeliveryStreamEncryptionInput) String() string {
7485	return awsutil.Prettify(s)
7486}
7487
7488// GoString returns the string representation
7489func (s StartDeliveryStreamEncryptionInput) GoString() string {
7490	return s.String()
7491}
7492
7493// Validate inspects the fields of the type to determine if they are valid.
7494func (s *StartDeliveryStreamEncryptionInput) Validate() error {
7495	invalidParams := request.ErrInvalidParams{Context: "StartDeliveryStreamEncryptionInput"}
7496	if s.DeliveryStreamName == nil {
7497		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
7498	}
7499	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
7500		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
7501	}
7502	if s.DeliveryStreamEncryptionConfigurationInput != nil {
7503		if err := s.DeliveryStreamEncryptionConfigurationInput.Validate(); err != nil {
7504			invalidParams.AddNested("DeliveryStreamEncryptionConfigurationInput", err.(request.ErrInvalidParams))
7505		}
7506	}
7507
7508	if invalidParams.Len() > 0 {
7509		return invalidParams
7510	}
7511	return nil
7512}
7513
7514// SetDeliveryStreamEncryptionConfigurationInput sets the DeliveryStreamEncryptionConfigurationInput field's value.
7515func (s *StartDeliveryStreamEncryptionInput) SetDeliveryStreamEncryptionConfigurationInput(v *DeliveryStreamEncryptionConfigurationInput) *StartDeliveryStreamEncryptionInput {
7516	s.DeliveryStreamEncryptionConfigurationInput = v
7517	return s
7518}
7519
7520// SetDeliveryStreamName sets the DeliveryStreamName field's value.
7521func (s *StartDeliveryStreamEncryptionInput) SetDeliveryStreamName(v string) *StartDeliveryStreamEncryptionInput {
7522	s.DeliveryStreamName = &v
7523	return s
7524}
7525
7526type StartDeliveryStreamEncryptionOutput struct {
7527	_ struct{} `type:"structure"`
7528}
7529
7530// String returns the string representation
7531func (s StartDeliveryStreamEncryptionOutput) String() string {
7532	return awsutil.Prettify(s)
7533}
7534
7535// GoString returns the string representation
7536func (s StartDeliveryStreamEncryptionOutput) GoString() string {
7537	return s.String()
7538}
7539
7540type StopDeliveryStreamEncryptionInput struct {
7541	_ struct{} `type:"structure"`
7542
7543	// The name of the delivery stream for which you want to disable server-side
7544	// encryption (SSE).
7545	//
7546	// DeliveryStreamName is a required field
7547	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
7548}
7549
7550// String returns the string representation
7551func (s StopDeliveryStreamEncryptionInput) String() string {
7552	return awsutil.Prettify(s)
7553}
7554
7555// GoString returns the string representation
7556func (s StopDeliveryStreamEncryptionInput) GoString() string {
7557	return s.String()
7558}
7559
7560// Validate inspects the fields of the type to determine if they are valid.
7561func (s *StopDeliveryStreamEncryptionInput) Validate() error {
7562	invalidParams := request.ErrInvalidParams{Context: "StopDeliveryStreamEncryptionInput"}
7563	if s.DeliveryStreamName == nil {
7564		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
7565	}
7566	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
7567		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
7568	}
7569
7570	if invalidParams.Len() > 0 {
7571		return invalidParams
7572	}
7573	return nil
7574}
7575
7576// SetDeliveryStreamName sets the DeliveryStreamName field's value.
7577func (s *StopDeliveryStreamEncryptionInput) SetDeliveryStreamName(v string) *StopDeliveryStreamEncryptionInput {
7578	s.DeliveryStreamName = &v
7579	return s
7580}
7581
7582type StopDeliveryStreamEncryptionOutput struct {
7583	_ struct{} `type:"structure"`
7584}
7585
7586// String returns the string representation
7587func (s StopDeliveryStreamEncryptionOutput) String() string {
7588	return awsutil.Prettify(s)
7589}
7590
7591// GoString returns the string representation
7592func (s StopDeliveryStreamEncryptionOutput) GoString() string {
7593	return s.String()
7594}
7595
7596// Metadata that you can assign to a delivery stream, consisting of a key-value
7597// pair.
7598type Tag struct {
7599	_ struct{} `type:"structure"`
7600
7601	// A unique identifier for the tag. Maximum length: 128 characters. Valid characters:
7602	// Unicode letters, digits, white space, _ . / = + - % @
7603	//
7604	// Key is a required field
7605	Key *string `min:"1" type:"string" required:"true"`
7606
7607	// An optional string, which you can use to describe or define the tag. Maximum
7608	// length: 256 characters. Valid characters: Unicode letters, digits, white
7609	// space, _ . / = + - % @
7610	Value *string `type:"string"`
7611}
7612
7613// String returns the string representation
7614func (s Tag) String() string {
7615	return awsutil.Prettify(s)
7616}
7617
7618// GoString returns the string representation
7619func (s Tag) GoString() string {
7620	return s.String()
7621}
7622
7623// Validate inspects the fields of the type to determine if they are valid.
7624func (s *Tag) Validate() error {
7625	invalidParams := request.ErrInvalidParams{Context: "Tag"}
7626	if s.Key == nil {
7627		invalidParams.Add(request.NewErrParamRequired("Key"))
7628	}
7629	if s.Key != nil && len(*s.Key) < 1 {
7630		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
7631	}
7632
7633	if invalidParams.Len() > 0 {
7634		return invalidParams
7635	}
7636	return nil
7637}
7638
7639// SetKey sets the Key field's value.
7640func (s *Tag) SetKey(v string) *Tag {
7641	s.Key = &v
7642	return s
7643}
7644
7645// SetValue sets the Value field's value.
7646func (s *Tag) SetValue(v string) *Tag {
7647	s.Value = &v
7648	return s
7649}
7650
7651type TagDeliveryStreamInput struct {
7652	_ struct{} `type:"structure"`
7653
7654	// The name of the delivery stream to which you want to add the tags.
7655	//
7656	// DeliveryStreamName is a required field
7657	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
7658
7659	// A set of key-value pairs to use to create the tags.
7660	//
7661	// Tags is a required field
7662	Tags []*Tag `min:"1" type:"list" required:"true"`
7663}
7664
7665// String returns the string representation
7666func (s TagDeliveryStreamInput) String() string {
7667	return awsutil.Prettify(s)
7668}
7669
7670// GoString returns the string representation
7671func (s TagDeliveryStreamInput) GoString() string {
7672	return s.String()
7673}
7674
7675// Validate inspects the fields of the type to determine if they are valid.
7676func (s *TagDeliveryStreamInput) Validate() error {
7677	invalidParams := request.ErrInvalidParams{Context: "TagDeliveryStreamInput"}
7678	if s.DeliveryStreamName == nil {
7679		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
7680	}
7681	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
7682		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
7683	}
7684	if s.Tags == nil {
7685		invalidParams.Add(request.NewErrParamRequired("Tags"))
7686	}
7687	if s.Tags != nil && len(s.Tags) < 1 {
7688		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
7689	}
7690	if s.Tags != nil {
7691		for i, v := range s.Tags {
7692			if v == nil {
7693				continue
7694			}
7695			if err := v.Validate(); err != nil {
7696				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7697			}
7698		}
7699	}
7700
7701	if invalidParams.Len() > 0 {
7702		return invalidParams
7703	}
7704	return nil
7705}
7706
7707// SetDeliveryStreamName sets the DeliveryStreamName field's value.
7708func (s *TagDeliveryStreamInput) SetDeliveryStreamName(v string) *TagDeliveryStreamInput {
7709	s.DeliveryStreamName = &v
7710	return s
7711}
7712
7713// SetTags sets the Tags field's value.
7714func (s *TagDeliveryStreamInput) SetTags(v []*Tag) *TagDeliveryStreamInput {
7715	s.Tags = v
7716	return s
7717}
7718
7719type TagDeliveryStreamOutput struct {
7720	_ struct{} `type:"structure"`
7721}
7722
7723// String returns the string representation
7724func (s TagDeliveryStreamOutput) String() string {
7725	return awsutil.Prettify(s)
7726}
7727
7728// GoString returns the string representation
7729func (s TagDeliveryStreamOutput) GoString() string {
7730	return s.String()
7731}
7732
7733type UntagDeliveryStreamInput struct {
7734	_ struct{} `type:"structure"`
7735
7736	// The name of the delivery stream.
7737	//
7738	// DeliveryStreamName is a required field
7739	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
7740
7741	// A list of tag keys. Each corresponding tag is removed from the delivery stream.
7742	//
7743	// TagKeys is a required field
7744	TagKeys []*string `min:"1" type:"list" required:"true"`
7745}
7746
7747// String returns the string representation
7748func (s UntagDeliveryStreamInput) String() string {
7749	return awsutil.Prettify(s)
7750}
7751
7752// GoString returns the string representation
7753func (s UntagDeliveryStreamInput) GoString() string {
7754	return s.String()
7755}
7756
7757// Validate inspects the fields of the type to determine if they are valid.
7758func (s *UntagDeliveryStreamInput) Validate() error {
7759	invalidParams := request.ErrInvalidParams{Context: "UntagDeliveryStreamInput"}
7760	if s.DeliveryStreamName == nil {
7761		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
7762	}
7763	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
7764		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
7765	}
7766	if s.TagKeys == nil {
7767		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
7768	}
7769	if s.TagKeys != nil && len(s.TagKeys) < 1 {
7770		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
7771	}
7772
7773	if invalidParams.Len() > 0 {
7774		return invalidParams
7775	}
7776	return nil
7777}
7778
7779// SetDeliveryStreamName sets the DeliveryStreamName field's value.
7780func (s *UntagDeliveryStreamInput) SetDeliveryStreamName(v string) *UntagDeliveryStreamInput {
7781	s.DeliveryStreamName = &v
7782	return s
7783}
7784
7785// SetTagKeys sets the TagKeys field's value.
7786func (s *UntagDeliveryStreamInput) SetTagKeys(v []*string) *UntagDeliveryStreamInput {
7787	s.TagKeys = v
7788	return s
7789}
7790
7791type UntagDeliveryStreamOutput struct {
7792	_ struct{} `type:"structure"`
7793}
7794
7795// String returns the string representation
7796func (s UntagDeliveryStreamOutput) String() string {
7797	return awsutil.Prettify(s)
7798}
7799
7800// GoString returns the string representation
7801func (s UntagDeliveryStreamOutput) GoString() string {
7802	return s.String()
7803}
7804
7805type UpdateDestinationInput struct {
7806	_ struct{} `type:"structure"`
7807
7808	// Obtain this value from the VersionId result of DeliveryStreamDescription.
7809	// This value is required, and helps the service perform conditional operations.
7810	// For example, if there is an interleaving update and this value is null, then
7811	// the update destination fails. After the update is successful, the VersionId
7812	// value is updated. The service then performs a merge of the old configuration
7813	// with the new configuration.
7814	//
7815	// CurrentDeliveryStreamVersionId is a required field
7816	CurrentDeliveryStreamVersionId *string `min:"1" type:"string" required:"true"`
7817
7818	// The name of the delivery stream.
7819	//
7820	// DeliveryStreamName is a required field
7821	DeliveryStreamName *string `min:"1" type:"string" required:"true"`
7822
7823	// The ID of the destination.
7824	//
7825	// DestinationId is a required field
7826	DestinationId *string `min:"1" type:"string" required:"true"`
7827
7828	// Describes an update for a destination in Amazon ES.
7829	ElasticsearchDestinationUpdate *ElasticsearchDestinationUpdate `type:"structure"`
7830
7831	// Describes an update for a destination in Amazon S3.
7832	ExtendedS3DestinationUpdate *ExtendedS3DestinationUpdate `type:"structure"`
7833
7834	// Describes an update to the specified HTTP endpoint destination.
7835	HttpEndpointDestinationUpdate *HttpEndpointDestinationUpdate `type:"structure"`
7836
7837	// Describes an update for a destination in Amazon Redshift.
7838	RedshiftDestinationUpdate *RedshiftDestinationUpdate `type:"structure"`
7839
7840	// [Deprecated] Describes an update for a destination in Amazon S3.
7841	//
7842	// Deprecated: S3DestinationUpdate has been deprecated
7843	S3DestinationUpdate *S3DestinationUpdate `deprecated:"true" type:"structure"`
7844
7845	// Describes an update for a destination in Splunk.
7846	SplunkDestinationUpdate *SplunkDestinationUpdate `type:"structure"`
7847}
7848
7849// String returns the string representation
7850func (s UpdateDestinationInput) String() string {
7851	return awsutil.Prettify(s)
7852}
7853
7854// GoString returns the string representation
7855func (s UpdateDestinationInput) GoString() string {
7856	return s.String()
7857}
7858
7859// Validate inspects the fields of the type to determine if they are valid.
7860func (s *UpdateDestinationInput) Validate() error {
7861	invalidParams := request.ErrInvalidParams{Context: "UpdateDestinationInput"}
7862	if s.CurrentDeliveryStreamVersionId == nil {
7863		invalidParams.Add(request.NewErrParamRequired("CurrentDeliveryStreamVersionId"))
7864	}
7865	if s.CurrentDeliveryStreamVersionId != nil && len(*s.CurrentDeliveryStreamVersionId) < 1 {
7866		invalidParams.Add(request.NewErrParamMinLen("CurrentDeliveryStreamVersionId", 1))
7867	}
7868	if s.DeliveryStreamName == nil {
7869		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
7870	}
7871	if s.DeliveryStreamName != nil && len(*s.DeliveryStreamName) < 1 {
7872		invalidParams.Add(request.NewErrParamMinLen("DeliveryStreamName", 1))
7873	}
7874	if s.DestinationId == nil {
7875		invalidParams.Add(request.NewErrParamRequired("DestinationId"))
7876	}
7877	if s.DestinationId != nil && len(*s.DestinationId) < 1 {
7878		invalidParams.Add(request.NewErrParamMinLen("DestinationId", 1))
7879	}
7880	if s.ElasticsearchDestinationUpdate != nil {
7881		if err := s.ElasticsearchDestinationUpdate.Validate(); err != nil {
7882			invalidParams.AddNested("ElasticsearchDestinationUpdate", err.(request.ErrInvalidParams))
7883		}
7884	}
7885	if s.ExtendedS3DestinationUpdate != nil {
7886		if err := s.ExtendedS3DestinationUpdate.Validate(); err != nil {
7887			invalidParams.AddNested("ExtendedS3DestinationUpdate", err.(request.ErrInvalidParams))
7888		}
7889	}
7890	if s.HttpEndpointDestinationUpdate != nil {
7891		if err := s.HttpEndpointDestinationUpdate.Validate(); err != nil {
7892			invalidParams.AddNested("HttpEndpointDestinationUpdate", err.(request.ErrInvalidParams))
7893		}
7894	}
7895	if s.RedshiftDestinationUpdate != nil {
7896		if err := s.RedshiftDestinationUpdate.Validate(); err != nil {
7897			invalidParams.AddNested("RedshiftDestinationUpdate", err.(request.ErrInvalidParams))
7898		}
7899	}
7900	if s.S3DestinationUpdate != nil {
7901		if err := s.S3DestinationUpdate.Validate(); err != nil {
7902			invalidParams.AddNested("S3DestinationUpdate", err.(request.ErrInvalidParams))
7903		}
7904	}
7905	if s.SplunkDestinationUpdate != nil {
7906		if err := s.SplunkDestinationUpdate.Validate(); err != nil {
7907			invalidParams.AddNested("SplunkDestinationUpdate", err.(request.ErrInvalidParams))
7908		}
7909	}
7910
7911	if invalidParams.Len() > 0 {
7912		return invalidParams
7913	}
7914	return nil
7915}
7916
7917// SetCurrentDeliveryStreamVersionId sets the CurrentDeliveryStreamVersionId field's value.
7918func (s *UpdateDestinationInput) SetCurrentDeliveryStreamVersionId(v string) *UpdateDestinationInput {
7919	s.CurrentDeliveryStreamVersionId = &v
7920	return s
7921}
7922
7923// SetDeliveryStreamName sets the DeliveryStreamName field's value.
7924func (s *UpdateDestinationInput) SetDeliveryStreamName(v string) *UpdateDestinationInput {
7925	s.DeliveryStreamName = &v
7926	return s
7927}
7928
7929// SetDestinationId sets the DestinationId field's value.
7930func (s *UpdateDestinationInput) SetDestinationId(v string) *UpdateDestinationInput {
7931	s.DestinationId = &v
7932	return s
7933}
7934
7935// SetElasticsearchDestinationUpdate sets the ElasticsearchDestinationUpdate field's value.
7936func (s *UpdateDestinationInput) SetElasticsearchDestinationUpdate(v *ElasticsearchDestinationUpdate) *UpdateDestinationInput {
7937	s.ElasticsearchDestinationUpdate = v
7938	return s
7939}
7940
7941// SetExtendedS3DestinationUpdate sets the ExtendedS3DestinationUpdate field's value.
7942func (s *UpdateDestinationInput) SetExtendedS3DestinationUpdate(v *ExtendedS3DestinationUpdate) *UpdateDestinationInput {
7943	s.ExtendedS3DestinationUpdate = v
7944	return s
7945}
7946
7947// SetHttpEndpointDestinationUpdate sets the HttpEndpointDestinationUpdate field's value.
7948func (s *UpdateDestinationInput) SetHttpEndpointDestinationUpdate(v *HttpEndpointDestinationUpdate) *UpdateDestinationInput {
7949	s.HttpEndpointDestinationUpdate = v
7950	return s
7951}
7952
7953// SetRedshiftDestinationUpdate sets the RedshiftDestinationUpdate field's value.
7954func (s *UpdateDestinationInput) SetRedshiftDestinationUpdate(v *RedshiftDestinationUpdate) *UpdateDestinationInput {
7955	s.RedshiftDestinationUpdate = v
7956	return s
7957}
7958
7959// SetS3DestinationUpdate sets the S3DestinationUpdate field's value.
7960func (s *UpdateDestinationInput) SetS3DestinationUpdate(v *S3DestinationUpdate) *UpdateDestinationInput {
7961	s.S3DestinationUpdate = v
7962	return s
7963}
7964
7965// SetSplunkDestinationUpdate sets the SplunkDestinationUpdate field's value.
7966func (s *UpdateDestinationInput) SetSplunkDestinationUpdate(v *SplunkDestinationUpdate) *UpdateDestinationInput {
7967	s.SplunkDestinationUpdate = v
7968	return s
7969}
7970
7971type UpdateDestinationOutput struct {
7972	_ struct{} `type:"structure"`
7973}
7974
7975// String returns the string representation
7976func (s UpdateDestinationOutput) String() string {
7977	return awsutil.Prettify(s)
7978}
7979
7980// GoString returns the string representation
7981func (s UpdateDestinationOutput) GoString() string {
7982	return s.String()
7983}
7984
7985// The details of the VPC of the Amazon ES destination.
7986type VpcConfiguration struct {
7987	_ struct{} `type:"structure"`
7988
7989	// The ARN of the IAM role that you want the delivery stream to use to create
7990	// endpoints in the destination VPC. You can use your existing Kinesis Data
7991	// Firehose delivery role or you can specify a new role. In either case, make
7992	// sure that the role trusts the Kinesis Data Firehose service principal and
7993	// that it grants the following permissions:
7994	//
7995	//    * ec2:DescribeVpcs
7996	//
7997	//    * ec2:DescribeVpcAttribute
7998	//
7999	//    * ec2:DescribeSubnets
8000	//
8001	//    * ec2:DescribeSecurityGroups
8002	//
8003	//    * ec2:DescribeNetworkInterfaces
8004	//
8005	//    * ec2:CreateNetworkInterface
8006	//
8007	//    * ec2:CreateNetworkInterfacePermission
8008	//
8009	//    * ec2:DeleteNetworkInterface
8010	//
8011	// If you revoke these permissions after you create the delivery stream, Kinesis
8012	// Data Firehose can't scale out by creating more ENIs when necessary. You might
8013	// therefore see a degradation in performance.
8014	//
8015	// RoleARN is a required field
8016	RoleARN *string `min:"1" type:"string" required:"true"`
8017
8018	// The IDs of the security groups that you want Kinesis Data Firehose to use
8019	// when it creates ENIs in the VPC of the Amazon ES destination. You can use
8020	// the same security group that the Amazon ES domain uses or different ones.
8021	// If you specify different security groups here, ensure that they allow outbound
8022	// HTTPS traffic to the Amazon ES domain's security group. Also ensure that
8023	// the Amazon ES domain's security group allows HTTPS traffic from the security
8024	// groups specified here. If you use the same security group for both your delivery
8025	// stream and the Amazon ES domain, make sure the security group inbound rule
8026	// allows HTTPS traffic. For more information about security group rules, see
8027	// Security group rules (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#SecurityGroupRules)
8028	// in the Amazon VPC documentation.
8029	//
8030	// SecurityGroupIds is a required field
8031	SecurityGroupIds []*string `min:"1" type:"list" required:"true"`
8032
8033	// The IDs of the subnets that you want Kinesis Data Firehose to use to create
8034	// ENIs in the VPC of the Amazon ES destination. Make sure that the routing
8035	// tables and inbound and outbound rules allow traffic to flow from the subnets
8036	// whose IDs are specified here to the subnets that have the destination Amazon
8037	// ES endpoints. Kinesis Data Firehose creates at least one ENI in each of the
8038	// subnets that are specified here. Do not delete or modify these ENIs.
8039	//
8040	// The number of ENIs that Kinesis Data Firehose creates in the subnets specified
8041	// here scales up and down automatically based on throughput. To enable Kinesis
8042	// Data Firehose to scale up the number of ENIs to match throughput, ensure
8043	// that you have sufficient quota. To help you calculate the quota you need,
8044	// assume that Kinesis Data Firehose can create up to three ENIs for this delivery
8045	// stream for each of the subnets specified here. For more information about
8046	// ENI quota, see Network Interfaces (https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-enis)
8047	// in the Amazon VPC Quotas topic.
8048	//
8049	// SubnetIds is a required field
8050	SubnetIds []*string `min:"1" type:"list" required:"true"`
8051}
8052
8053// String returns the string representation
8054func (s VpcConfiguration) String() string {
8055	return awsutil.Prettify(s)
8056}
8057
8058// GoString returns the string representation
8059func (s VpcConfiguration) GoString() string {
8060	return s.String()
8061}
8062
8063// Validate inspects the fields of the type to determine if they are valid.
8064func (s *VpcConfiguration) Validate() error {
8065	invalidParams := request.ErrInvalidParams{Context: "VpcConfiguration"}
8066	if s.RoleARN == nil {
8067		invalidParams.Add(request.NewErrParamRequired("RoleARN"))
8068	}
8069	if s.RoleARN != nil && len(*s.RoleARN) < 1 {
8070		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 1))
8071	}
8072	if s.SecurityGroupIds == nil {
8073		invalidParams.Add(request.NewErrParamRequired("SecurityGroupIds"))
8074	}
8075	if s.SecurityGroupIds != nil && len(s.SecurityGroupIds) < 1 {
8076		invalidParams.Add(request.NewErrParamMinLen("SecurityGroupIds", 1))
8077	}
8078	if s.SubnetIds == nil {
8079		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
8080	}
8081	if s.SubnetIds != nil && len(s.SubnetIds) < 1 {
8082		invalidParams.Add(request.NewErrParamMinLen("SubnetIds", 1))
8083	}
8084
8085	if invalidParams.Len() > 0 {
8086		return invalidParams
8087	}
8088	return nil
8089}
8090
8091// SetRoleARN sets the RoleARN field's value.
8092func (s *VpcConfiguration) SetRoleARN(v string) *VpcConfiguration {
8093	s.RoleARN = &v
8094	return s
8095}
8096
8097// SetSecurityGroupIds sets the SecurityGroupIds field's value.
8098func (s *VpcConfiguration) SetSecurityGroupIds(v []*string) *VpcConfiguration {
8099	s.SecurityGroupIds = v
8100	return s
8101}
8102
8103// SetSubnetIds sets the SubnetIds field's value.
8104func (s *VpcConfiguration) SetSubnetIds(v []*string) *VpcConfiguration {
8105	s.SubnetIds = v
8106	return s
8107}
8108
8109// The details of the VPC of the Amazon ES destination.
8110type VpcConfigurationDescription struct {
8111	_ struct{} `type:"structure"`
8112
8113	// The ARN of the IAM role that the delivery stream uses to create endpoints
8114	// in the destination VPC. You can use your existing Kinesis Data Firehose delivery
8115	// role or you can specify a new role. In either case, make sure that the role
8116	// trusts the Kinesis Data Firehose service principal and that it grants the
8117	// following permissions:
8118	//
8119	//    * ec2:DescribeVpcs
8120	//
8121	//    * ec2:DescribeVpcAttribute
8122	//
8123	//    * ec2:DescribeSubnets
8124	//
8125	//    * ec2:DescribeSecurityGroups
8126	//
8127	//    * ec2:DescribeNetworkInterfaces
8128	//
8129	//    * ec2:CreateNetworkInterface
8130	//
8131	//    * ec2:CreateNetworkInterfacePermission
8132	//
8133	//    * ec2:DeleteNetworkInterface
8134	//
8135	// If you revoke these permissions after you create the delivery stream, Kinesis
8136	// Data Firehose can't scale out by creating more ENIs when necessary. You might
8137	// therefore see a degradation in performance.
8138	//
8139	// RoleARN is a required field
8140	RoleARN *string `min:"1" type:"string" required:"true"`
8141
8142	// The IDs of the security groups that Kinesis Data Firehose uses when it creates
8143	// ENIs in the VPC of the Amazon ES destination. You can use the same security
8144	// group that the Amazon ES domain uses or different ones. If you specify different
8145	// security groups, ensure that they allow outbound HTTPS traffic to the Amazon
8146	// ES domain's security group. Also ensure that the Amazon ES domain's security
8147	// group allows HTTPS traffic from the security groups specified here. If you
8148	// use the same security group for both your delivery stream and the Amazon
8149	// ES domain, make sure the security group inbound rule allows HTTPS traffic.
8150	// For more information about security group rules, see Security group rules
8151	// (https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#SecurityGroupRules)
8152	// in the Amazon VPC documentation.
8153	//
8154	// SecurityGroupIds is a required field
8155	SecurityGroupIds []*string `min:"1" type:"list" required:"true"`
8156
8157	// The IDs of the subnets that Kinesis Data Firehose uses to create ENIs in
8158	// the VPC of the Amazon ES destination. Make sure that the routing tables and
8159	// inbound and outbound rules allow traffic to flow from the subnets whose IDs
8160	// are specified here to the subnets that have the destination Amazon ES endpoints.
8161	// Kinesis Data Firehose creates at least one ENI in each of the subnets that
8162	// are specified here. Do not delete or modify these ENIs.
8163	//
8164	// The number of ENIs that Kinesis Data Firehose creates in the subnets specified
8165	// here scales up and down automatically based on throughput. To enable Kinesis
8166	// Data Firehose to scale up the number of ENIs to match throughput, ensure
8167	// that you have sufficient quota. To help you calculate the quota you need,
8168	// assume that Kinesis Data Firehose can create up to three ENIs for this delivery
8169	// stream for each of the subnets specified here. For more information about
8170	// ENI quota, see Network Interfaces (https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-enis)
8171	// in the Amazon VPC Quotas topic.
8172	//
8173	// SubnetIds is a required field
8174	SubnetIds []*string `min:"1" type:"list" required:"true"`
8175
8176	// The ID of the Amazon ES destination's VPC.
8177	//
8178	// VpcId is a required field
8179	VpcId *string `min:"1" type:"string" required:"true"`
8180}
8181
8182// String returns the string representation
8183func (s VpcConfigurationDescription) String() string {
8184	return awsutil.Prettify(s)
8185}
8186
8187// GoString returns the string representation
8188func (s VpcConfigurationDescription) GoString() string {
8189	return s.String()
8190}
8191
8192// SetRoleARN sets the RoleARN field's value.
8193func (s *VpcConfigurationDescription) SetRoleARN(v string) *VpcConfigurationDescription {
8194	s.RoleARN = &v
8195	return s
8196}
8197
8198// SetSecurityGroupIds sets the SecurityGroupIds field's value.
8199func (s *VpcConfigurationDescription) SetSecurityGroupIds(v []*string) *VpcConfigurationDescription {
8200	s.SecurityGroupIds = v
8201	return s
8202}
8203
8204// SetSubnetIds sets the SubnetIds field's value.
8205func (s *VpcConfigurationDescription) SetSubnetIds(v []*string) *VpcConfigurationDescription {
8206	s.SubnetIds = v
8207	return s
8208}
8209
8210// SetVpcId sets the VpcId field's value.
8211func (s *VpcConfigurationDescription) SetVpcId(v string) *VpcConfigurationDescription {
8212	s.VpcId = &v
8213	return s
8214}
8215
8216const (
8217	// CompressionFormatUncompressed is a CompressionFormat enum value
8218	CompressionFormatUncompressed = "UNCOMPRESSED"
8219
8220	// CompressionFormatGzip is a CompressionFormat enum value
8221	CompressionFormatGzip = "GZIP"
8222
8223	// CompressionFormatZip is a CompressionFormat enum value
8224	CompressionFormatZip = "ZIP"
8225
8226	// CompressionFormatSnappy is a CompressionFormat enum value
8227	CompressionFormatSnappy = "Snappy"
8228
8229	// CompressionFormatHadoopSnappy is a CompressionFormat enum value
8230	CompressionFormatHadoopSnappy = "HADOOP_SNAPPY"
8231)
8232
8233// CompressionFormat_Values returns all elements of the CompressionFormat enum
8234func CompressionFormat_Values() []string {
8235	return []string{
8236		CompressionFormatUncompressed,
8237		CompressionFormatGzip,
8238		CompressionFormatZip,
8239		CompressionFormatSnappy,
8240		CompressionFormatHadoopSnappy,
8241	}
8242}
8243
8244const (
8245	// ContentEncodingNone is a ContentEncoding enum value
8246	ContentEncodingNone = "NONE"
8247
8248	// ContentEncodingGzip is a ContentEncoding enum value
8249	ContentEncodingGzip = "GZIP"
8250)
8251
8252// ContentEncoding_Values returns all elements of the ContentEncoding enum
8253func ContentEncoding_Values() []string {
8254	return []string{
8255		ContentEncodingNone,
8256		ContentEncodingGzip,
8257	}
8258}
8259
8260const (
8261	// DeliveryStreamEncryptionStatusEnabled is a DeliveryStreamEncryptionStatus enum value
8262	DeliveryStreamEncryptionStatusEnabled = "ENABLED"
8263
8264	// DeliveryStreamEncryptionStatusEnabling is a DeliveryStreamEncryptionStatus enum value
8265	DeliveryStreamEncryptionStatusEnabling = "ENABLING"
8266
8267	// DeliveryStreamEncryptionStatusEnablingFailed is a DeliveryStreamEncryptionStatus enum value
8268	DeliveryStreamEncryptionStatusEnablingFailed = "ENABLING_FAILED"
8269
8270	// DeliveryStreamEncryptionStatusDisabled is a DeliveryStreamEncryptionStatus enum value
8271	DeliveryStreamEncryptionStatusDisabled = "DISABLED"
8272
8273	// DeliveryStreamEncryptionStatusDisabling is a DeliveryStreamEncryptionStatus enum value
8274	DeliveryStreamEncryptionStatusDisabling = "DISABLING"
8275
8276	// DeliveryStreamEncryptionStatusDisablingFailed is a DeliveryStreamEncryptionStatus enum value
8277	DeliveryStreamEncryptionStatusDisablingFailed = "DISABLING_FAILED"
8278)
8279
8280// DeliveryStreamEncryptionStatus_Values returns all elements of the DeliveryStreamEncryptionStatus enum
8281func DeliveryStreamEncryptionStatus_Values() []string {
8282	return []string{
8283		DeliveryStreamEncryptionStatusEnabled,
8284		DeliveryStreamEncryptionStatusEnabling,
8285		DeliveryStreamEncryptionStatusEnablingFailed,
8286		DeliveryStreamEncryptionStatusDisabled,
8287		DeliveryStreamEncryptionStatusDisabling,
8288		DeliveryStreamEncryptionStatusDisablingFailed,
8289	}
8290}
8291
8292const (
8293	// DeliveryStreamFailureTypeRetireKmsGrantFailed is a DeliveryStreamFailureType enum value
8294	DeliveryStreamFailureTypeRetireKmsGrantFailed = "RETIRE_KMS_GRANT_FAILED"
8295
8296	// DeliveryStreamFailureTypeCreateKmsGrantFailed is a DeliveryStreamFailureType enum value
8297	DeliveryStreamFailureTypeCreateKmsGrantFailed = "CREATE_KMS_GRANT_FAILED"
8298
8299	// DeliveryStreamFailureTypeKmsAccessDenied is a DeliveryStreamFailureType enum value
8300	DeliveryStreamFailureTypeKmsAccessDenied = "KMS_ACCESS_DENIED"
8301
8302	// DeliveryStreamFailureTypeDisabledKmsKey is a DeliveryStreamFailureType enum value
8303	DeliveryStreamFailureTypeDisabledKmsKey = "DISABLED_KMS_KEY"
8304
8305	// DeliveryStreamFailureTypeInvalidKmsKey is a DeliveryStreamFailureType enum value
8306	DeliveryStreamFailureTypeInvalidKmsKey = "INVALID_KMS_KEY"
8307
8308	// DeliveryStreamFailureTypeKmsKeyNotFound is a DeliveryStreamFailureType enum value
8309	DeliveryStreamFailureTypeKmsKeyNotFound = "KMS_KEY_NOT_FOUND"
8310
8311	// DeliveryStreamFailureTypeKmsOptInRequired is a DeliveryStreamFailureType enum value
8312	DeliveryStreamFailureTypeKmsOptInRequired = "KMS_OPT_IN_REQUIRED"
8313
8314	// DeliveryStreamFailureTypeCreateEniFailed is a DeliveryStreamFailureType enum value
8315	DeliveryStreamFailureTypeCreateEniFailed = "CREATE_ENI_FAILED"
8316
8317	// DeliveryStreamFailureTypeDeleteEniFailed is a DeliveryStreamFailureType enum value
8318	DeliveryStreamFailureTypeDeleteEniFailed = "DELETE_ENI_FAILED"
8319
8320	// DeliveryStreamFailureTypeSubnetNotFound is a DeliveryStreamFailureType enum value
8321	DeliveryStreamFailureTypeSubnetNotFound = "SUBNET_NOT_FOUND"
8322
8323	// DeliveryStreamFailureTypeSecurityGroupNotFound is a DeliveryStreamFailureType enum value
8324	DeliveryStreamFailureTypeSecurityGroupNotFound = "SECURITY_GROUP_NOT_FOUND"
8325
8326	// DeliveryStreamFailureTypeEniAccessDenied is a DeliveryStreamFailureType enum value
8327	DeliveryStreamFailureTypeEniAccessDenied = "ENI_ACCESS_DENIED"
8328
8329	// DeliveryStreamFailureTypeSubnetAccessDenied is a DeliveryStreamFailureType enum value
8330	DeliveryStreamFailureTypeSubnetAccessDenied = "SUBNET_ACCESS_DENIED"
8331
8332	// DeliveryStreamFailureTypeSecurityGroupAccessDenied is a DeliveryStreamFailureType enum value
8333	DeliveryStreamFailureTypeSecurityGroupAccessDenied = "SECURITY_GROUP_ACCESS_DENIED"
8334
8335	// DeliveryStreamFailureTypeUnknownError is a DeliveryStreamFailureType enum value
8336	DeliveryStreamFailureTypeUnknownError = "UNKNOWN_ERROR"
8337)
8338
8339// DeliveryStreamFailureType_Values returns all elements of the DeliveryStreamFailureType enum
8340func DeliveryStreamFailureType_Values() []string {
8341	return []string{
8342		DeliveryStreamFailureTypeRetireKmsGrantFailed,
8343		DeliveryStreamFailureTypeCreateKmsGrantFailed,
8344		DeliveryStreamFailureTypeKmsAccessDenied,
8345		DeliveryStreamFailureTypeDisabledKmsKey,
8346		DeliveryStreamFailureTypeInvalidKmsKey,
8347		DeliveryStreamFailureTypeKmsKeyNotFound,
8348		DeliveryStreamFailureTypeKmsOptInRequired,
8349		DeliveryStreamFailureTypeCreateEniFailed,
8350		DeliveryStreamFailureTypeDeleteEniFailed,
8351		DeliveryStreamFailureTypeSubnetNotFound,
8352		DeliveryStreamFailureTypeSecurityGroupNotFound,
8353		DeliveryStreamFailureTypeEniAccessDenied,
8354		DeliveryStreamFailureTypeSubnetAccessDenied,
8355		DeliveryStreamFailureTypeSecurityGroupAccessDenied,
8356		DeliveryStreamFailureTypeUnknownError,
8357	}
8358}
8359
8360const (
8361	// DeliveryStreamStatusCreating is a DeliveryStreamStatus enum value
8362	DeliveryStreamStatusCreating = "CREATING"
8363
8364	// DeliveryStreamStatusCreatingFailed is a DeliveryStreamStatus enum value
8365	DeliveryStreamStatusCreatingFailed = "CREATING_FAILED"
8366
8367	// DeliveryStreamStatusDeleting is a DeliveryStreamStatus enum value
8368	DeliveryStreamStatusDeleting = "DELETING"
8369
8370	// DeliveryStreamStatusDeletingFailed is a DeliveryStreamStatus enum value
8371	DeliveryStreamStatusDeletingFailed = "DELETING_FAILED"
8372
8373	// DeliveryStreamStatusActive is a DeliveryStreamStatus enum value
8374	DeliveryStreamStatusActive = "ACTIVE"
8375)
8376
8377// DeliveryStreamStatus_Values returns all elements of the DeliveryStreamStatus enum
8378func DeliveryStreamStatus_Values() []string {
8379	return []string{
8380		DeliveryStreamStatusCreating,
8381		DeliveryStreamStatusCreatingFailed,
8382		DeliveryStreamStatusDeleting,
8383		DeliveryStreamStatusDeletingFailed,
8384		DeliveryStreamStatusActive,
8385	}
8386}
8387
8388const (
8389	// DeliveryStreamTypeDirectPut is a DeliveryStreamType enum value
8390	DeliveryStreamTypeDirectPut = "DirectPut"
8391
8392	// DeliveryStreamTypeKinesisStreamAsSource is a DeliveryStreamType enum value
8393	DeliveryStreamTypeKinesisStreamAsSource = "KinesisStreamAsSource"
8394)
8395
8396// DeliveryStreamType_Values returns all elements of the DeliveryStreamType enum
8397func DeliveryStreamType_Values() []string {
8398	return []string{
8399		DeliveryStreamTypeDirectPut,
8400		DeliveryStreamTypeKinesisStreamAsSource,
8401	}
8402}
8403
8404const (
8405	// ElasticsearchIndexRotationPeriodNoRotation is a ElasticsearchIndexRotationPeriod enum value
8406	ElasticsearchIndexRotationPeriodNoRotation = "NoRotation"
8407
8408	// ElasticsearchIndexRotationPeriodOneHour is a ElasticsearchIndexRotationPeriod enum value
8409	ElasticsearchIndexRotationPeriodOneHour = "OneHour"
8410
8411	// ElasticsearchIndexRotationPeriodOneDay is a ElasticsearchIndexRotationPeriod enum value
8412	ElasticsearchIndexRotationPeriodOneDay = "OneDay"
8413
8414	// ElasticsearchIndexRotationPeriodOneWeek is a ElasticsearchIndexRotationPeriod enum value
8415	ElasticsearchIndexRotationPeriodOneWeek = "OneWeek"
8416
8417	// ElasticsearchIndexRotationPeriodOneMonth is a ElasticsearchIndexRotationPeriod enum value
8418	ElasticsearchIndexRotationPeriodOneMonth = "OneMonth"
8419)
8420
8421// ElasticsearchIndexRotationPeriod_Values returns all elements of the ElasticsearchIndexRotationPeriod enum
8422func ElasticsearchIndexRotationPeriod_Values() []string {
8423	return []string{
8424		ElasticsearchIndexRotationPeriodNoRotation,
8425		ElasticsearchIndexRotationPeriodOneHour,
8426		ElasticsearchIndexRotationPeriodOneDay,
8427		ElasticsearchIndexRotationPeriodOneWeek,
8428		ElasticsearchIndexRotationPeriodOneMonth,
8429	}
8430}
8431
8432const (
8433	// ElasticsearchS3BackupModeFailedDocumentsOnly is a ElasticsearchS3BackupMode enum value
8434	ElasticsearchS3BackupModeFailedDocumentsOnly = "FailedDocumentsOnly"
8435
8436	// ElasticsearchS3BackupModeAllDocuments is a ElasticsearchS3BackupMode enum value
8437	ElasticsearchS3BackupModeAllDocuments = "AllDocuments"
8438)
8439
8440// ElasticsearchS3BackupMode_Values returns all elements of the ElasticsearchS3BackupMode enum
8441func ElasticsearchS3BackupMode_Values() []string {
8442	return []string{
8443		ElasticsearchS3BackupModeFailedDocumentsOnly,
8444		ElasticsearchS3BackupModeAllDocuments,
8445	}
8446}
8447
8448const (
8449	// HECEndpointTypeRaw is a HECEndpointType enum value
8450	HECEndpointTypeRaw = "Raw"
8451
8452	// HECEndpointTypeEvent is a HECEndpointType enum value
8453	HECEndpointTypeEvent = "Event"
8454)
8455
8456// HECEndpointType_Values returns all elements of the HECEndpointType enum
8457func HECEndpointType_Values() []string {
8458	return []string{
8459		HECEndpointTypeRaw,
8460		HECEndpointTypeEvent,
8461	}
8462}
8463
8464const (
8465	// HttpEndpointS3BackupModeFailedDataOnly is a HttpEndpointS3BackupMode enum value
8466	HttpEndpointS3BackupModeFailedDataOnly = "FailedDataOnly"
8467
8468	// HttpEndpointS3BackupModeAllData is a HttpEndpointS3BackupMode enum value
8469	HttpEndpointS3BackupModeAllData = "AllData"
8470)
8471
8472// HttpEndpointS3BackupMode_Values returns all elements of the HttpEndpointS3BackupMode enum
8473func HttpEndpointS3BackupMode_Values() []string {
8474	return []string{
8475		HttpEndpointS3BackupModeFailedDataOnly,
8476		HttpEndpointS3BackupModeAllData,
8477	}
8478}
8479
8480const (
8481	// KeyTypeAwsOwnedCmk is a KeyType enum value
8482	KeyTypeAwsOwnedCmk = "AWS_OWNED_CMK"
8483
8484	// KeyTypeCustomerManagedCmk is a KeyType enum value
8485	KeyTypeCustomerManagedCmk = "CUSTOMER_MANAGED_CMK"
8486)
8487
8488// KeyType_Values returns all elements of the KeyType enum
8489func KeyType_Values() []string {
8490	return []string{
8491		KeyTypeAwsOwnedCmk,
8492		KeyTypeCustomerManagedCmk,
8493	}
8494}
8495
8496const (
8497	// NoEncryptionConfigNoEncryption is a NoEncryptionConfig enum value
8498	NoEncryptionConfigNoEncryption = "NoEncryption"
8499)
8500
8501// NoEncryptionConfig_Values returns all elements of the NoEncryptionConfig enum
8502func NoEncryptionConfig_Values() []string {
8503	return []string{
8504		NoEncryptionConfigNoEncryption,
8505	}
8506}
8507
8508const (
8509	// OrcCompressionNone is a OrcCompression enum value
8510	OrcCompressionNone = "NONE"
8511
8512	// OrcCompressionZlib is a OrcCompression enum value
8513	OrcCompressionZlib = "ZLIB"
8514
8515	// OrcCompressionSnappy is a OrcCompression enum value
8516	OrcCompressionSnappy = "SNAPPY"
8517)
8518
8519// OrcCompression_Values returns all elements of the OrcCompression enum
8520func OrcCompression_Values() []string {
8521	return []string{
8522		OrcCompressionNone,
8523		OrcCompressionZlib,
8524		OrcCompressionSnappy,
8525	}
8526}
8527
8528const (
8529	// OrcFormatVersionV011 is a OrcFormatVersion enum value
8530	OrcFormatVersionV011 = "V0_11"
8531
8532	// OrcFormatVersionV012 is a OrcFormatVersion enum value
8533	OrcFormatVersionV012 = "V0_12"
8534)
8535
8536// OrcFormatVersion_Values returns all elements of the OrcFormatVersion enum
8537func OrcFormatVersion_Values() []string {
8538	return []string{
8539		OrcFormatVersionV011,
8540		OrcFormatVersionV012,
8541	}
8542}
8543
8544const (
8545	// ParquetCompressionUncompressed is a ParquetCompression enum value
8546	ParquetCompressionUncompressed = "UNCOMPRESSED"
8547
8548	// ParquetCompressionGzip is a ParquetCompression enum value
8549	ParquetCompressionGzip = "GZIP"
8550
8551	// ParquetCompressionSnappy is a ParquetCompression enum value
8552	ParquetCompressionSnappy = "SNAPPY"
8553)
8554
8555// ParquetCompression_Values returns all elements of the ParquetCompression enum
8556func ParquetCompression_Values() []string {
8557	return []string{
8558		ParquetCompressionUncompressed,
8559		ParquetCompressionGzip,
8560		ParquetCompressionSnappy,
8561	}
8562}
8563
8564const (
8565	// ParquetWriterVersionV1 is a ParquetWriterVersion enum value
8566	ParquetWriterVersionV1 = "V1"
8567
8568	// ParquetWriterVersionV2 is a ParquetWriterVersion enum value
8569	ParquetWriterVersionV2 = "V2"
8570)
8571
8572// ParquetWriterVersion_Values returns all elements of the ParquetWriterVersion enum
8573func ParquetWriterVersion_Values() []string {
8574	return []string{
8575		ParquetWriterVersionV1,
8576		ParquetWriterVersionV2,
8577	}
8578}
8579
8580const (
8581	// ProcessorParameterNameLambdaArn is a ProcessorParameterName enum value
8582	ProcessorParameterNameLambdaArn = "LambdaArn"
8583
8584	// ProcessorParameterNameNumberOfRetries is a ProcessorParameterName enum value
8585	ProcessorParameterNameNumberOfRetries = "NumberOfRetries"
8586
8587	// ProcessorParameterNameRoleArn is a ProcessorParameterName enum value
8588	ProcessorParameterNameRoleArn = "RoleArn"
8589
8590	// ProcessorParameterNameBufferSizeInMbs is a ProcessorParameterName enum value
8591	ProcessorParameterNameBufferSizeInMbs = "BufferSizeInMBs"
8592
8593	// ProcessorParameterNameBufferIntervalInSeconds is a ProcessorParameterName enum value
8594	ProcessorParameterNameBufferIntervalInSeconds = "BufferIntervalInSeconds"
8595)
8596
8597// ProcessorParameterName_Values returns all elements of the ProcessorParameterName enum
8598func ProcessorParameterName_Values() []string {
8599	return []string{
8600		ProcessorParameterNameLambdaArn,
8601		ProcessorParameterNameNumberOfRetries,
8602		ProcessorParameterNameRoleArn,
8603		ProcessorParameterNameBufferSizeInMbs,
8604		ProcessorParameterNameBufferIntervalInSeconds,
8605	}
8606}
8607
8608const (
8609	// ProcessorTypeLambda is a ProcessorType enum value
8610	ProcessorTypeLambda = "Lambda"
8611)
8612
8613// ProcessorType_Values returns all elements of the ProcessorType enum
8614func ProcessorType_Values() []string {
8615	return []string{
8616		ProcessorTypeLambda,
8617	}
8618}
8619
8620const (
8621	// RedshiftS3BackupModeDisabled is a RedshiftS3BackupMode enum value
8622	RedshiftS3BackupModeDisabled = "Disabled"
8623
8624	// RedshiftS3BackupModeEnabled is a RedshiftS3BackupMode enum value
8625	RedshiftS3BackupModeEnabled = "Enabled"
8626)
8627
8628// RedshiftS3BackupMode_Values returns all elements of the RedshiftS3BackupMode enum
8629func RedshiftS3BackupMode_Values() []string {
8630	return []string{
8631		RedshiftS3BackupModeDisabled,
8632		RedshiftS3BackupModeEnabled,
8633	}
8634}
8635
8636const (
8637	// S3BackupModeDisabled is a S3BackupMode enum value
8638	S3BackupModeDisabled = "Disabled"
8639
8640	// S3BackupModeEnabled is a S3BackupMode enum value
8641	S3BackupModeEnabled = "Enabled"
8642)
8643
8644// S3BackupMode_Values returns all elements of the S3BackupMode enum
8645func S3BackupMode_Values() []string {
8646	return []string{
8647		S3BackupModeDisabled,
8648		S3BackupModeEnabled,
8649	}
8650}
8651
8652const (
8653	// SplunkS3BackupModeFailedEventsOnly is a SplunkS3BackupMode enum value
8654	SplunkS3BackupModeFailedEventsOnly = "FailedEventsOnly"
8655
8656	// SplunkS3BackupModeAllEvents is a SplunkS3BackupMode enum value
8657	SplunkS3BackupModeAllEvents = "AllEvents"
8658)
8659
8660// SplunkS3BackupMode_Values returns all elements of the SplunkS3BackupMode enum
8661func SplunkS3BackupMode_Values() []string {
8662	return []string{
8663		SplunkS3BackupModeFailedEventsOnly,
8664		SplunkS3BackupModeAllEvents,
8665	}
8666}
8667